File indexing completed on 2024-04-06 12:27:52
0001
0002
0003
0004
0005
0006
0007
0008
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 }
0053
0054 #include "FWCore/Framework/interface/MakerMacros.h"
0055 DEFINE_EDM_PLUGIN(RecoTauPiZeroBuilderPluginFactory,
0056 reco::tau::RecoTauPiZeroTrivialPlugin,
0057 "RecoTauPiZeroTrivialPlugin");