CMS 3D CMS Logo

RecoTauDecayModeCutMultiplexer.cc
Go to the documentation of this file.
1 #include <boost/foreach.hpp>
4 
6  public:
8 
10  double discriminate(const reco::PFTauRef&) const override;
11  void beginEvent(const edm::Event& event, const edm::EventSetup& eventSetup) override;
12 
13  private:
14  typedef std::pair<unsigned int, unsigned int> IntPair;
15  typedef std::map<IntPair, double> DecayModeCutMap;
16 
17  DecayModeCutMap decayModeCuts_;
21 };
22 
25  toMultiplex_ = pset.getParameter<edm::InputTag>("toMultiplex");
26  toMultiplex_token = consumes<reco::PFTauDiscriminator>(toMultiplex_);
27  typedef std::vector<edm::ParameterSet> VPSet;
28  const VPSet& decayModes = pset.getParameter<VPSet>("decayModes");
29  // Setup our cut map
30  BOOST_FOREACH(const edm::ParameterSet &dm, decayModes) {
31  // Get the mass window for each decay mode
32  decayModeCuts_.insert(std::make_pair(
33  // The decay mode as a key
34  std::make_pair(
35  dm.getParameter<uint32_t>("nCharged"),
36  dm.getParameter<uint32_t>("nPiZeros")),
37  // The selection
38  dm.getParameter<double>("cut")
39  ));
40  }
41 }
42 
43 void
45  const edm::Event& evt, const edm::EventSetup& es) {
47 }
48 
49 double
51  double disc_result = (*handle_)[tau];
52  DecayModeCutMap::const_iterator cutIter =
53  decayModeCuts_.find(std::make_pair(tau->signalPFChargedHadrCands().size(),
54  tau->signalPiZeroCandidates().size()));
55 
56  // Return null if it doesn't exist
57  if (cutIter == decayModeCuts_.end()) {
59  }
60  // See if the discriminator passes our cuts
61  return disc_result > cutIter->second;
62 }
63 
T getParameter(std::string const &) const
edm::Handle< reco::PFTauDiscriminator > handle_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:460
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:17
std::pair< unsigned int, unsigned int > IntPair
edm::EDGetTokenT< reco::PFTauDiscriminator > toMultiplex_token
void beginEvent(const edm::Event &event, const edm::EventSetup &eventSetup) override
RecoTauDecayModeCutMultiplexer(const edm::ParameterSet &pset)
double discriminate(const reco::PFTauRef &) const override
Definition: event.py:1