CMS 3D CMS Logo

RecoTauIsolationDiscriminantPlugins.cc
Go to the documentation of this file.
3 
4 namespace reco::tau {
5 
6 template<class Extractor>
9  public:
12  std::vector<reco::CandidatePtr> extractIsoObjects(
13  const reco::PFTauRef& tau) const override {
14  return extractor_(tau);
15  }
16  private:
17  Extractor extractor_;
18 };
19 
20 } // end namespace reco::tau
21 
22 
23 // Methods to get the right kind of canddiates
24 namespace {
25 
26 class TrackExtractor {
27  public:
28  TrackExtractor(const edm::ParameterSet& pset){};
29  std::vector<reco::CandidatePtr> operator()(const reco::PFTauRef& tau) const {
30  return tau->isolationChargedHadrCands();
31  }
32 };
33 
34 class ECALExtractor {
35  public:
36  ECALExtractor(const edm::ParameterSet& pset){};
37  std::vector<reco::CandidatePtr> operator()(const reco::PFTauRef& tau) const {
38  return tau->isolationGammaCands();
39  }
40 };
41 
42 class MaskedECALExtractor {
43  public:
44  MaskedECALExtractor(const edm::ParameterSet& pset)
45  :mask_(pset.getParameter<edm::ParameterSet>("mask")){};
46  std::vector<reco::CandidatePtr> operator()(const reco::PFTauRef& tau) const {
47  std::vector<reco::CandidatePtr> output;
49  result = mask_.mask(*tau);
50  output.reserve(result.gammas.size());
51  for(auto const& gamma : result.gammas) {
52  output.push_back(gamma);
53  }
54  return output;
55  }
56  private:
58 };
59 
60 class HCALExtractor {
61  public:
62  HCALExtractor(const edm::ParameterSet& pset){};
63  std::vector<reco::CandidatePtr> operator()(const reco::PFTauRef& tau) const {
64  return tau->isolationNeutrHadrCands();
65  }
66 };
67 
68 class MaskedHCALExtractor {
69  public:
70  MaskedHCALExtractor(const edm::ParameterSet& pset)
71  :mask_(pset.getParameter<edm::ParameterSet>("mask")){};
72  std::vector<reco::CandidatePtr> operator()(const reco::PFTauRef& tau) const {
73  std::vector<reco::CandidatePtr> output;
75  result = mask_.mask(*tau);
76  output.reserve(result.h0s.size());
77  for(auto const& h0 : result.h0s) {
78  output.push_back(h0);
79  }
80  return output;
81  }
82  private:
84 };
85 }
86 
90  "RecoTauDiscriminationBinnedTrackIsolation");
93  "RecoTauDiscriminationBinnedECALIsolation");
96  "RecoTauDiscriminationBinnedMaskedECALIsolation");
99  "RecoTauDiscriminationBinnedHCALIsolation");
102  "RecoTauDiscriminationBinnedMaskedHCALIsolation");
T getParameter(std::string const &) const
std::vector< double > operator()(const reco::PFTauRef &tau) const override
#define DEFINE_EDM_PLUGIN(factory, type, name)
std::vector< reco::CandidatePtr > extractIsoObjects(const reco::PFTauRef &tau) const override