19 invert_ ( cfg.getParameter<bool>(
"invert" ) ),
30 allowedTauDecays.
existsAs<
bool>(
"oneProng" )||
31 allowedTauDecays.
existsAs<
bool>(
"threeProng") );
42 decayBranchA_.push_back(decayBranchA.getParameter<
bool>(
"electron"));
43 decayBranchA_.push_back(decayBranchA.getParameter<
bool>(
"muon" ));
44 decayBranchA_.push_back(decayBranchA.getParameter<
bool>(
"tau" ));
67 unsigned int iTop=0,iBeauty=0,iElec=0,iMuon=0,iTau=0;
68 for(reco::GenParticleCollection::const_iterator top=parts.begin(); top!=parts.end(); ++top){
105 log <<
"----------------------" <<
"\n"
106 <<
" iTop : " << iTop <<
"\n"
107 <<
" iBeauty : " << iBeauty <<
"\n"
108 <<
" iElec : " << iElec <<
"\n"
109 <<
" iMuon : " << iMuon <<
"\n"
110 <<
" iTau : " << iTau+iLep;
112 log <<
" (" << iTau <<
")\n";
117 log <<
"- - - - - - - - - - - " <<
"\n";
119 iLep+=iElec+iMuon+iTau;
123 if( (iTop==2) && (iBeauty==2) ){
141 if(iElec+iMuon+iTau!=channel){
145 if((iElec==2)||(iMuon==2)||(iTau==2)) {
176 return (
std::abs(part->pdgId())==pdgId) ?
true :
false;
196 return (part.
charge()!=0);
209 bool leptonic =
false;
210 unsigned int nch = 0;
217 if(daughter->pdgId()==tau.
pdgId()){
std::vector< GenParticle > GenParticleCollection
collection of GenParticles
T getParameter(std::string const &) const
bool existsAs(std::string const ¶meterName, bool trackiness=true) const
checks if a parameter exists as a given type
Decay decayBranchA_
top decay branch 1
virtual int status() const =0
status word
bool accept(const edm::Event &event, const edm::TriggerResults &triggerTable, const std::string &triggerPath)
bool search(reco::GenParticleCollection::const_iterator &part, int pdgId, std::string &inputType) const
search for particle with pdgId in given listing (for top)
static const unsigned int kDecayChannels
virtual const_iterator end() const =0
last daughter const_iterator
static const unsigned int kTopBranches
bool restrictTauDecays_
restrict tau decays
virtual int charge() const =0
electric charge
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
virtual int pdgId() const =0
PDG identifier.
bool tauDecay(const reco::Candidate &) const
check tau decay to be leptonic, 1-prong or 3-prong
bool allow3Prong_
allow 2-prong tau decays
Log< T >::type log(const T &t)
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
static const std::string kGenParticles
virtual const_iterator begin() const =0
first daughter const_iterator
bool allowLepton_
allow leptonic tau decays
bool allow1Prong_
allow 1-prong tau decays
bool invert_
invert selection