![]() |
![]() |
Functions | |
bool | decayFromBHadron (const reco::Candidate &c) |
bool | decayFromCHadron (const reco::Candidate &c) |
double | EnergyRatioFromBHadrons (const reco::Candidate &c) |
double | EnergyRatioFromCHadrons (const reco::Candidate &c) |
std::string | genTauDecayMode (const reco::CompositePtrCandidate &c) |
bool JetMCTagUtils::decayFromBHadron | ( | const reco::Candidate & | c | ) |
Definition at line 40 of file JetMCTag.cc.
References CandMCTagUtils::getAncestors(), and CandMCTagUtils::hasBottom().
Referenced by EnergyRatioFromBHadrons(), and HFFilter::filter().
{ bool isFromB = false; vector<const Candidate *> allParents = getAncestors( c ); for( vector<const Candidate *>::const_iterator aParent = allParents.begin(); aParent != allParents.end(); aParent ++ ) { if( hasBottom(**aParent) ) isFromB = true; /* cout << " particle Parent is " << (*aParent)->status() << " type " << (*aParent)->pdgId() << " pt=" << (*aParent)->pt() << " isB = " << isFromB << endl; */ } return isFromB; }
bool JetMCTagUtils::decayFromCHadron | ( | const reco::Candidate & | c | ) |
Definition at line 61 of file JetMCTag.cc.
References CandMCTagUtils::getAncestors(), and CandMCTagUtils::hasCharm().
Referenced by EnergyRatioFromCHadrons(), and HFFilter::filter().
{ bool isFromC = false; vector<const Candidate *> allParents = getAncestors( c ); for( vector<const Candidate *>::const_iterator aParent = allParents.begin(); aParent != allParents.end(); aParent ++ ) { if( hasCharm(**aParent) ) isFromC = true; /* cout << " particle Parent is " << (*aParent)->status() << " type " << (*aParent)->pdgId() << " pt=" << (*aParent)->pt() << " isC = " << isFromC << endl; */ } return isFromC; }
double JetMCTagUtils::EnergyRatioFromBHadrons | ( | const reco::Candidate & | c | ) |
Definition at line 12 of file JetMCTag.cc.
References reco::Candidate::begin(), decayFromBHadron(), reco::Candidate::end(), and reco::Candidate::energy().
Referenced by GenJetBCEnergyRatio::produce().
{ double ratioForBjet=0; double ratio = 0; for( Candidate::const_iterator itC = c.begin(); itC != c.end(); itC ++) { bool isFromB = decayFromBHadron(*itC); ratio = itC->energy() / c.energy() ; if( isFromB ) ratioForBjet += ratio; } return ratioForBjet; }
double JetMCTagUtils::EnergyRatioFromCHadrons | ( | const reco::Candidate & | c | ) |
Definition at line 26 of file JetMCTag.cc.
References reco::Candidate::begin(), decayFromCHadron(), reco::Candidate::end(), and reco::Candidate::energy().
Referenced by GenJetBCEnergyRatio::produce().
{ double ratioForCjet=0; double ratio = 0; for( Candidate::const_iterator itC = c.begin(); itC != c.end(); itC ++) { bool isFromC = decayFromCHadron(*itC); ratio = itC->energy() / c.energy() ; if( isFromC ) ratioForCjet += ratio; } return ratioForCjet; }
std::string JetMCTagUtils::genTauDecayMode | ( | const reco::CompositePtrCandidate & | c | ) |
Definition at line 81 of file JetMCTag.cc.
References abs, reco::CompositePtrCandidate::daughterPtrVector(), and patZpeak::numMuons.
Referenced by TauGenJetDumper::analyze(), reco::tau::getDecayMode(), and TauGenJetDecayModeSelectorImp::operator()().
{ int numElectrons = 0; int numMuons = 0; int numChargedHadrons = 0; int numNeutralHadrons = 0; int numPhotons = 0; const CompositePtrCandidate::daughters& daughters = c.daughterPtrVector(); for ( CompositePtrCandidate::daughters::const_iterator daughter = daughters.begin(); daughter != daughters.end(); ++daughter ) { int pdg_id = abs((*daughter)->pdgId()); switch ( pdg_id ) { case 22: numPhotons++; break; case 11: numElectrons++; break; case 13: numMuons++; break; default : {if ((*daughter)->charge() != 0) numChargedHadrons++; else numNeutralHadrons++;} } } if (numElectrons == 1) return std::string("electron"); else if (numMuons == 1) return std::string("muon"); switch ( numChargedHadrons ) { case 1 : if (numNeutralHadrons != 0) return std::string("oneProngOther"); switch ( numPhotons ) { case 0: return std::string("oneProng0Pi0"); case 2: return std::string("oneProng1Pi0"); case 4: return std::string("oneProng2Pi0"); default: return std::string("oneProngOther"); } case 3 : if (numNeutralHadrons != 0) return std::string("threeProngOther"); switch ( numPhotons ) { case 0: return std::string("threeProng0Pi0"); case 2: return std::string("threeProng1Pi0"); default: return std::string("threeProngOther"); } default: return std::string("rare"); } }