Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 /*
0002  * RecoTauPiZeroTrivialPlugin
0003  *
0004  * Author: Evan K. Friis (UC Davis)
0005  *
0006  * Given an input PFJet, produces collection of trivial 'un-merged' PiZero
0007  * RecoTauPiZeros.  Each PiZero is composed of only one photon from
0008  * the jet.
0009  *
0010  *
0011  */
0012 
0013 #include "RecoTauTag/RecoTau/interface/RecoTauPiZeroPlugins.h"
0014 #include "DataFormats/Candidate/interface/CandidateFwd.h"
0015 #include "DataFormats/Candidate/interface/Candidate.h"
0016 #include "DataFormats/JetReco/interface/PFJet.h"
0017 #include "DataFormats/TauReco/interface/RecoTauPiZero.h"
0018 
0019 #include "RecoTauTag/RecoTau/interface/RecoTauCommonUtilities.h"
0020 #include "RecoTauTag/RecoTau/interface/RecoTauQualityCuts.h"
0021 
0022 namespace reco::tau {
0023 
0024   class RecoTauPiZeroTrivialPlugin : public RecoTauPiZeroBuilderPlugin {
0025   public:
0026     explicit RecoTauPiZeroTrivialPlugin(const edm::ParameterSet& pset, edm::ConsumesCollector&& iC);
0027     ~RecoTauPiZeroTrivialPlugin() override {}
0028     return_type operator()(const reco::Jet& jet) const override;
0029 
0030   private:
0031     RecoTauQualityCuts qcuts_;
0032   };
0033 
0034   RecoTauPiZeroTrivialPlugin::RecoTauPiZeroTrivialPlugin(const edm::ParameterSet& pset, edm::ConsumesCollector&& iC)
0035       : RecoTauPiZeroBuilderPlugin(pset, std::move(iC)),
0036         qcuts_(pset.getParameterSet("qualityCuts").getParameterSet("signalQualityCuts")) {}
0037 
0038   RecoTauPiZeroBuilderPlugin::return_type RecoTauPiZeroTrivialPlugin::operator()(const reco::Jet& jet) const {
0039     std::vector<CandidatePtr> pfGammaCands = qcuts_.filterCandRefs(pfGammas(jet));
0040     PiZeroVector output;
0041     output.reserve(pfGammaCands.size());
0042 
0043     for (auto const& gamma : pfGammaCands) {
0044       auto piZero =
0045           std::make_unique<RecoTauPiZero>(0, (*gamma).p4(), (*gamma).vertex(), 22, 1000, true, RecoTauPiZero::kTrivial);
0046       piZero->addDaughter(gamma);
0047       output.push_back(std::move(piZero));
0048     }
0049     return output;
0050   }
0051 
0052 }  // namespace reco::tau
0053 
0054 #include "FWCore/Framework/interface/MakerMacros.h"
0055 DEFINE_EDM_PLUGIN(RecoTauPiZeroBuilderPluginFactory,
0056                   reco::tau::RecoTauPiZeroTrivialPlugin,
0057                   "RecoTauPiZeroTrivialPlugin");