19 invert_ ( cfg.getParameter<bool>(
"invert" ) ),
30 allowedTauDecays.
existsAs<
bool>(
"muon" )||
31 allowedTauDecays.
existsAs<
bool>(
"oneProng" )||
32 allowedTauDecays.
existsAs<
bool>(
"threeProng") );
44 decayBranchA_.push_back(decayBranchA.getParameter<
bool>(
"electron"));
45 decayBranchA_.push_back(decayBranchA.getParameter<
bool>(
"muon" ));
46 decayBranchA_.push_back(decayBranchA.getParameter<
bool>(
"tau" ));
69 unsigned int iTop=0,iBeauty=0,iElec=0,iMuon=0,iTau=0;
70 for(reco::GenParticleCollection::const_iterator top=parts.begin(); top!=parts.end(); ++top){
107 log <<
"----------------------" <<
"\n"
108 <<
" iTop : " << iTop <<
"\n"
109 <<
" iBeauty : " << iBeauty <<
"\n"
110 <<
" iElec : " << iElec <<
"\n"
111 <<
" iMuon : " << iMuon <<
"\n"
112 <<
" iTau : " << iTau+iLep;
114 log <<
" (" << iTau <<
")\n";
119 log <<
"- - - - - - - - - - - " <<
"\n";
121 iLep+=iElec+iMuon+iTau;
125 if( (iTop==2) && (iBeauty==2) ){
143 if(iElec+iMuon+iTau!=channel){
147 if((iElec==2)||(iMuon==2)||(iTau==2)) {
178 return (
std::abs(part->pdgId())==pdgId) ?
true :
false;
198 return (part.
charge()!=0);
211 bool electronTau =
false;
212 bool muonTau =
false;
213 unsigned int nch = 0;
220 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
Abs< T >::type abs(const T &t)
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 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
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 allow1Prong_
allow 1-prong tau decays
volatile std::atomic< bool > shutdown_flag false
bool invert_
invert selection