CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
TtDecayChannelSelector.h
Go to the documentation of this file.
1 #include <vector>
2 #include <cstring>
3 #include <iostream>
4 
7 
9 public:
11  enum { Elec = 0, Muon = 1, Tau = 2 };
13  typedef std::vector<int> Decay;
14 
20  bool operator()(const reco::GenParticleCollection& parts, std::string inputType) const;
21 
22 private:
24  unsigned int decayChannel() const;
25  // return the check sum of all entries
26  unsigned int checkSum(const Decay& vec) const;
28  bool search(reco::GenParticleCollection::const_iterator& part, int pdgId, std::string& inputType) const;
30  bool search(reco::GenParticle::const_iterator& part, int pdgId, std::string& inputType) const;
32  bool tauDecay(const reco::Candidate&) const;
34  unsigned int countProngs(const reco::Candidate& part) const;
35 
36 private:
38  bool invert_;
44  bool allowMuon_;
56 };
57 
58 inline unsigned int TtDecayChannelSelector::decayChannel() const {
59  unsigned int channel = 0;
60  if (std::count(decayBranchA_.begin(), decayBranchA_.end(), 1) > 0) {
61  ++channel;
62  }
63  if (std::count(decayBranchB_.begin(), decayBranchB_.end(), 1) > 0) {
64  ++channel;
65  }
66  return channel;
67 }
68 
69 inline unsigned int TtDecayChannelSelector::checkSum(const Decay& vec) const {
70  unsigned int sum = 0;
71  for (unsigned int d = 0; d < vec.size(); ++d) {
72  sum += vec[d];
73  }
74  return sum;
75 }
std::vector< GenParticle > GenParticleCollection
collection of GenParticles
Decay decayBranchA_
top decay branch 1
bool search(reco::GenParticleCollection::const_iterator &part, int pdgId, std::string &inputType) const
search for particle with pdgId in given listing (for top)
tuple d
Definition: ztail.py:151
bool restrictTauDecays_
restrict tau decays
TtDecayChannelSelector(const edm::ParameterSet &)
std contructor
unsigned int countProngs(const reco::Candidate &part) const
count the number of charged particles for tau decays
Decay decayBranchB_
top decay branch 2
bool allowElectron_
allow tau decays into electron
bool tauDecay(const reco::Candidate &) const
check tau decay to be leptonic, 1-prong or 3-prong
bool allow3Prong_
allow 2-prong tau decays
bool allowMuon_
allow tau decays into muon
part
Definition: HCALResponse.h:20
std::vector< int > Decay
typedef to simplify the decay vectors
unsigned int decayChannel() const
return decay channel to select for from configuration
unsigned int checkSum(const Decay &vec) const
~TtDecayChannelSelector()
default destructor
bool operator()(const reco::GenParticleCollection &parts, std::string inputType) const
operator for decay channel selection
bool allow1Prong_
allow 1-prong tau decays
bool invert_
invert selection