Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:27:52

0001 /*
0002  * RecoTauSoftTwoProngTausCleanerPlugin
0003  *
0004  * Author: Christian Veelken, NICPB Tallinn
0005  *
0006  * Remove 2-prong PFTaus with a low pT track, in order to reduce rate of 1-prong taus migrating to 2-prong decay mode
0007  */
0008 
0009 #include "RecoTauTag/RecoTau/interface/RecoTauBuilderPlugins.h"
0010 #include "DataFormats/TauReco/interface/PFTauDiscriminator.h"
0011 #include "RecoTauTag/RecoTau/interface/pfRecoTauChargedHadronAuxFunctions.h"
0012 
0013 namespace reco {
0014   namespace tau {
0015 
0016     class RecoTauSoftTwoProngTausCleanerPlugin : public RecoTauCleanerPlugin {
0017     public:
0018       RecoTauSoftTwoProngTausCleanerPlugin(const edm::ParameterSet& pset, edm::ConsumesCollector&& iC);
0019 
0020       // Get ranking value for a given tau Ref
0021       double operator()(const reco::PFTauRef&) const override;
0022 
0023     private:
0024       double minTrackPt_;
0025     };
0026 
0027     RecoTauSoftTwoProngTausCleanerPlugin::RecoTauSoftTwoProngTausCleanerPlugin(const edm::ParameterSet& pset,
0028                                                                                edm::ConsumesCollector&& iC)
0029         : RecoTauCleanerPlugin(pset, std::move(iC)) {
0030       minTrackPt_ = pset.getParameter<double>("minTrackPt");
0031     }
0032 
0033     double RecoTauSoftTwoProngTausCleanerPlugin::operator()(const reco::PFTauRef& tau) const {
0034       double result = 0.;
0035       const std::vector<PFRecoTauChargedHadron>& chargedHadrons = tau->signalTauChargedHadronCandidates();
0036       if (chargedHadrons.size() == 2) {
0037         for (std::vector<PFRecoTauChargedHadron>::const_iterator chargedHadron = chargedHadrons.begin();
0038              chargedHadron != chargedHadrons.end();
0039              ++chargedHadron) {
0040           const reco::Track* track = getTrackFromChargedHadron(*chargedHadron);
0041           if (!(track != nullptr && track->pt() > minTrackPt_))
0042             result += 1.e+3;
0043         }
0044       }
0045       return result;
0046     }
0047 
0048   }  // namespace tau
0049 }  // namespace reco
0050 
0051 // Register our plugin
0052 #include "FWCore/Framework/interface/MakerMacros.h"
0053 DEFINE_EDM_PLUGIN(RecoTauCleanerPluginFactory,
0054                   reco::tau::RecoTauSoftTwoProngTausCleanerPlugin,
0055                   "RecoTauSoftTwoProngTausCleanerPlugin");