Class derived from the TtEvent for the full hadronic decay channel. More...
#include <AnalysisDataFormats/TopObjects/interface/TtFullHadronicEvent.h>
Public Member Functions | |
const reco::Candidate * | b (const std::string &key, const unsigned &cmb=0) const |
get b of the given hypothesis | |
const reco::Candidate * | b (const HypoClassKey &key, const unsigned &cmb=0) const |
get b of the given hypothesis | |
const reco::GenParticle * | b () const |
get b of the TtGenEvent | |
const reco::Candidate * | bBar (const HypoClassKey &key, const unsigned &cmb=0) const |
get anti-b of the given hypothesis | |
const reco::Candidate * | bBar (const std::string &key, const unsigned &cmb=0) const |
get anti-b of the given hypothesis | |
const reco::GenParticle * | bBar () const |
get anti-b of the TtGenEvent | |
const reco::Candidate * | lightP (const std::string &key, const unsigned &cmb=0) const |
get light P of the given hypothesis | |
const reco::Candidate * | lightP (const HypoClassKey &key, const unsigned &cmb=0) const |
get light P of the given hypothesis | |
const reco::GenParticle * | lightP () const |
get light P of the TtGenEvent | |
const reco::Candidate * | lightPBar (const std::string &key, const unsigned &cmb=0) const |
get light P bar of the given hypothesis | |
const reco::Candidate * | lightPBar (const HypoClassKey &key, const unsigned &cmb=0) const |
get light P bar of the given hypothesis | |
const reco::GenParticle * | lightPBar () const |
get light P bar of the TtGenEvent | |
const reco::Candidate * | lightQ (const HypoClassKey &key, const unsigned &cmb=0) const |
get light Q of the given hypothesis | |
const reco::Candidate * | lightQ (const std::string &key, const unsigned &cmb=0) const |
get light Q of the given hypothesis | |
const reco::GenParticle * | lightQ () const |
get light Q of the TtGenEvent | |
const reco::Candidate * | lightQBar (const std::string &key, const unsigned &cmb=0) const |
get light Q bar of the given hypothesis | |
const reco::Candidate * | lightQBar (const HypoClassKey &key, const unsigned &cmb=0) const |
get light Q bar of the given hypothesis | |
const reco::GenParticle * | lightQBar () const |
get light Q bar of the TtGenEvent | |
void | print (const int verbosity=1) const |
const reco::Candidate * | top (const std::string &key, const unsigned &cmb=0) const |
get top of the given hypothesis | |
const reco::Candidate * | top (const HypoClassKey &key, const unsigned &cmb=0) const |
get top of the given hypothesis | |
const reco::GenParticle * | top () const |
get top of the TtGenEvent | |
const reco::Candidate * | topBar (const std::string &key, const unsigned &cmb=0) const |
get anti-top of the given hypothesis | |
const reco::Candidate * | topBar (const HypoClassKey &key, const unsigned &cmb=0) const |
get anti-top of the given hypothesis | |
const reco::GenParticle * | topBar () const |
get anti-top of the TtGenEvent | |
TtFullHadronicEvent () | |
empty constructor | |
const reco::Candidate * | wMinus (const HypoClassKey &key, const unsigned &cmb=0) const |
get Wminus of the given hypothesis | |
const reco::Candidate * | wMinus (const std::string &key, const unsigned &cmb=0) const |
get Wminus of the given hypothesis | |
const reco::GenParticle * | wMinus () const |
get Wminus of the TtGenEvent | |
const reco::GenParticle * | wPlus () const |
get Wplus of the TtGenEvent | |
const reco::Candidate * | wPlus (const HypoClassKey &key, const unsigned &cmb=0) const |
get Wplus of the given hypothesis | |
const reco::Candidate * | wPlus (const std::string &key, const unsigned &cmb=0) const |
get Wplus of the given hypothesis | |
virtual | ~TtFullHadronicEvent () |
default destructor |
Class derived from the TtEvent for the full hadronic decay channel.
The structure holds information on the hadronic decay channels, all event hypotheses of different classes (user defined during production) and a reference to the TtGenEvent (if available). It provides access and administration.
Definition at line 24 of file TtFullHadronicEvent.h.
TtFullHadronicEvent::TtFullHadronicEvent | ( | ) | [inline] |
virtual TtFullHadronicEvent::~TtFullHadronicEvent | ( | ) | [inline, virtual] |
const reco::Candidate* TtFullHadronicEvent::b | ( | const std::string & | key, |
const unsigned & | cmb = 0 |
||
) | const [inline] |
get b of the given hypothesis
Definition at line 37 of file TtFullHadronicEvent.h.
References b(), and TtEvent::hypoClassKeyFromString().
Referenced by b().
{ return b(hypoClassKeyFromString(key), cmb); };
const reco::Candidate* TtFullHadronicEvent::b | ( | const HypoClassKey & | key, |
const unsigned & | cmb = 0 |
||
) | const [inline] |
get b of the given hypothesis
Definition at line 39 of file TtFullHadronicEvent.h.
References TtFullHadDaughter::B, reco::CompositeRefCandidateT< D >::daughter(), TtEvent::isHypoValid(), and top().
{ return !isHypoValid(key,cmb) ? 0 : top(key,cmb)->daughter(TtFullHadDaughter::B); };
const reco::GenParticle* TtFullHadronicEvent::b | ( | ) | const [inline] |
get b of the TtGenEvent
Definition at line 83 of file TtFullHadronicEvent.h.
References b(), TtEvent::genEvent(), and TtEvent::genEvt_.
const reco::Candidate* TtFullHadronicEvent::bBar | ( | const std::string & | key, |
const unsigned & | cmb = 0 |
||
) | const [inline] |
get anti-b of the given hypothesis
Definition at line 61 of file TtFullHadronicEvent.h.
References bBar(), and TtEvent::hypoClassKeyFromString().
Referenced by bBar().
{ return bBar(hypoClassKeyFromString(key), cmb); };
const reco::GenParticle* TtFullHadronicEvent::bBar | ( | ) | const [inline] |
get anti-b of the TtGenEvent
Definition at line 96 of file TtFullHadronicEvent.h.
References bBar(), TtEvent::genEvent(), and TtEvent::genEvt_.
const reco::Candidate* TtFullHadronicEvent::bBar | ( | const HypoClassKey & | key, |
const unsigned & | cmb = 0 |
||
) | const [inline] |
get anti-b of the given hypothesis
Definition at line 63 of file TtFullHadronicEvent.h.
References TtFullHadDaughter::BBar, reco::CompositeRefCandidateT< D >::daughter(), TtEvent::isHypoValid(), and topBar().
{ return !isHypoValid(key,cmb) ? 0 : topBar(key,cmb)->daughter(TtFullHadDaughter::BBar ); };
const reco::Candidate* TtFullHadronicEvent::lightP | ( | const HypoClassKey & | key, |
const unsigned & | cmb = 0 |
||
) | const [inline] |
get light P of the given hypothesis
Definition at line 49 of file TtFullHadronicEvent.h.
References reco::CompositeRefCandidateT< D >::daughter(), TtEvent::isHypoValid(), TtFullHadDaughter::LightP, and wMinus().
{ return !isHypoValid(key,cmb) ? 0 : wMinus(key,cmb)->daughter(TtFullHadDaughter::LightP); };
const reco::GenParticle* TtFullHadronicEvent::lightP | ( | ) | const [inline] |
get light P of the TtGenEvent
Definition at line 88 of file TtFullHadronicEvent.h.
References TtEvent::genEvent(), and TtEvent::genEvt_.
Referenced by print().
const reco::Candidate* TtFullHadronicEvent::lightP | ( | const std::string & | key, |
const unsigned & | cmb = 0 |
||
) | const [inline] |
get light P of the given hypothesis
Definition at line 47 of file TtFullHadronicEvent.h.
References TtEvent::hypoClassKeyFromString(), and lightP().
Referenced by lightP().
{ return lightP(hypoClassKeyFromString(key), cmb); };
const reco::Candidate* TtFullHadronicEvent::lightPBar | ( | const std::string & | key, |
const unsigned & | cmb = 0 |
||
) | const [inline] |
get light P bar of the given hypothesis
Definition at line 71 of file TtFullHadronicEvent.h.
References TtEvent::hypoClassKeyFromString(), and lightPBar().
Referenced by lightPBar().
{ return lightPBar(hypoClassKeyFromString(key), cmb); };
const reco::Candidate* TtFullHadronicEvent::lightPBar | ( | const HypoClassKey & | key, |
const unsigned & | cmb = 0 |
||
) | const [inline] |
get light P bar of the given hypothesis
Definition at line 73 of file TtFullHadronicEvent.h.
References reco::CompositeRefCandidateT< D >::daughter(), TtEvent::isHypoValid(), TtFullHadDaughter::LightPBar, and wMinus().
{ return !isHypoValid(key,cmb) ? 0 : wMinus(key,cmb)->daughter(TtFullHadDaughter::LightPBar); };
const reco::GenParticle* TtFullHadronicEvent::lightPBar | ( | ) | const [inline] |
get light P bar of the TtGenEvent
Definition at line 101 of file TtFullHadronicEvent.h.
References TtEvent::genEvent(), and TtEvent::genEvt_.
Referenced by print().
const reco::Candidate* TtFullHadronicEvent::lightQ | ( | const std::string & | key, |
const unsigned & | cmb = 0 |
||
) | const [inline] |
get light Q of the given hypothesis
Definition at line 42 of file TtFullHadronicEvent.h.
References TtEvent::hypoClassKeyFromString(), and lightQ().
Referenced by lightQ().
{ return lightQ(hypoClassKeyFromString(key), cmb); };
const reco::GenParticle* TtFullHadronicEvent::lightQ | ( | ) | const [inline] |
get light Q of the TtGenEvent
Definition at line 86 of file TtFullHadronicEvent.h.
References TtEvent::genEvent(), and TtEvent::genEvt_.
Referenced by print().
const reco::Candidate* TtFullHadronicEvent::lightQ | ( | const HypoClassKey & | key, |
const unsigned & | cmb = 0 |
||
) | const [inline] |
get light Q of the given hypothesis
Definition at line 44 of file TtFullHadronicEvent.h.
References reco::CompositeRefCandidateT< D >::daughter(), TtEvent::isHypoValid(), TtFullHadDaughter::LightQ, and wPlus().
{ return !isHypoValid(key,cmb) ? 0 : wPlus(key,cmb)->daughter(TtFullHadDaughter::LightQ); };
const reco::Candidate* TtFullHadronicEvent::lightQBar | ( | const HypoClassKey & | key, |
const unsigned & | cmb = 0 |
||
) | const [inline] |
get light Q bar of the given hypothesis
Definition at line 68 of file TtFullHadronicEvent.h.
References reco::CompositeRefCandidateT< D >::daughter(), TtEvent::isHypoValid(), TtFullHadDaughter::LightQBar, and wPlus().
{ return !isHypoValid(key,cmb) ? 0 : wPlus(key,cmb)->daughter(TtFullHadDaughter::LightQBar); };
const reco::GenParticle* TtFullHadronicEvent::lightQBar | ( | ) | const [inline] |
get light Q bar of the TtGenEvent
Definition at line 99 of file TtFullHadronicEvent.h.
References TtEvent::genEvent(), and TtEvent::genEvt_.
Referenced by print().
const reco::Candidate* TtFullHadronicEvent::lightQBar | ( | const std::string & | key, |
const unsigned & | cmb = 0 |
||
) | const [inline] |
get light Q bar of the given hypothesis
Definition at line 66 of file TtFullHadronicEvent.h.
References TtEvent::hypoClassKeyFromString(), and lightQBar().
Referenced by lightQBar().
{ return lightQBar(hypoClassKeyFromString(key), cmb); };
void TtFullHadronicEvent::print | ( | const int | verbosity = 1 | ) | const |
print full content of the structure as formated LogInfo to the MessageLogger output for debugging
Definition at line 7 of file TtFullHadronicEvent.cc.
References TtFullHadEvtPartons::B, b(), bBar(), TtFullHadEvtPartons::BBar, TtEvent::evtHyp_, TtEvent::fitChi2(), TtEvent::fitProb(), TtEvent::genEvent(), TtEvent::genEvt_, TtEvent::genMatchSumDR(), TtEvent::genMatchSumPt(), UserOptions_cff::idx, TtEvent::isHypoValid(), TtEvent::jetLeptonCombination(), analyzePatCleaning_cfg::jets, TtEvent::kGenMatch, TtEvent::kGeom, TtEvent::kHitFit, TtEvent::kKinFit, TtEvent::kKinSolution, TtEvent::kMaxSumPtWMass, TtEvent::kMVADisc, TtEvent::kWMassDeltaTopMass, TtEvent::kWMassMaxSumPt, lightP(), TtFullHadEvtPartons::LightP, TtFullHadEvtPartons::LightPBar, lightPBar(), lightQ(), TtFullHadEvtPartons::LightQ, lightQBar(), TtFullHadEvtPartons::LightQBar, funct::log(), TtEvent::mvaDisc(), TtEvent::mvaMethod(), TtEvent::numberOfAvailableHypoClasses(), TtEvent::numberOfAvailableHypos(), TtEvent::printParticle(), top(), topBar(), TtEvent::topPair(), wMinus(), and wPlus().
{ if(verbosity%10<=0) return; edm::LogInfo log("TtFullHadronicEvent"); log << "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ \n"; // get some information from the genEvent if( !genEvt_ ) log << " TtGenEvent not available! \n"; else { log << " TtGenEvent says: "; if( !this->genEvent()->isTtBar() ) log << "Not TtBar"; else if( this->genEvent()->isFullHadronic() ) log << "Fully Hadronic TtBar"; else if( this->genEvent()->isSemiLeptonic() ) log << "Semi-leptonic TtBar"; else if( this->genEvent()->isFullLeptonic() ) log << "Fully Leptonic TtBar"; log << "\n"; } // get number of available hypothesis classes log << " Number of available event hypothesis classes: " << this->numberOfAvailableHypoClasses() << " \n"; // create a legend for the jetLepComb log << " - JetCombi : "; for(unsigned idx = 0; idx < 6; idx++) { switch(idx) { case TtFullHadEvtPartons::LightQ : log << " LightQ "; break; case TtFullHadEvtPartons::LightQBar : log << " LightQBar"; break; case TtFullHadEvtPartons::B : log << " B "; break; case TtFullHadEvtPartons::LightP : log << " LightP "; break; case TtFullHadEvtPartons::LightPBar : log << " LightPBar"; break; case TtFullHadEvtPartons::BBar : log << " BBar "; break; } } log << "\n"; // get details from the hypotheses typedef std::map<HypoClassKey, std::vector<HypoCombPair> >::const_iterator EventHypo; for(EventHypo hyp = evtHyp_.begin(); hyp != evtHyp_.end(); ++hyp) { HypoClassKey hypKey = (*hyp).first; // header for each hypothesis log << "---------------------------------------------------------------------------- \n"; switch(hypKey) { case kGeom : log << " Geom not (yet) applicable to TtFullHadronicEvent --> skipping" ; continue; case kWMassMaxSumPt : log << " WMassMaxSumPt not (yet) applicable to TtFullHadronicEvent --> skipping" ; continue; case kMaxSumPtWMass : log << " MaxSumPtWMass not (yet) applicable to TtFullHadronicEvent --> skipping" ; continue; case kGenMatch : log << " GenMatch" ; break; case kMVADisc : log << " MVADisc" ; break; case kKinFit : log << " KinFit" ; break; case kKinSolution : log << " KinSolution not (yet) applicable to TtFullHadronicEvent --> skipping" ; continue; case kWMassDeltaTopMass : log << " WMassDeltaTopMass not (yet) applicable to TtFullHadronicEvent --> skipping"; continue; case kHitFit : log << " HitFit not (yet) applicable to TtFullHadronicEvent --> skipping" ; continue; default : log << " Unknown TtEvent::HypoClassKey provided --> skipping" ; continue; } log << "-Hypothesis: \n"; unsigned nOfHyp = this->numberOfAvailableHypos(hypKey); if( nOfHyp > 1 ) { log << " * Number of available jet combinations: " << nOfHyp << " \n"; if(verbosity < 10) log << " The following was found to be the best one: \n"; } // if verbosity level is smaller than 10, never show more than the best jet combination if(verbosity < 10) nOfHyp = 1; for(unsigned cmb=0; cmb<nOfHyp; ++cmb) { // check if hypothesis is valid if( !this->isHypoValid(hypKey, cmb) ) log << " * Not valid! \n"; // get meta information for valid hypothesis else { // jetLepComb log << " * JetCombi :"; std::vector<int> jets = this->jetLeptonCombination( hypKey , cmb ); for(unsigned int iJet = 0; iJet < jets.size(); iJet++) { log << " " << jets[iJet] << " "; } log << "\n"; // specialties for some hypotheses switch(hypKey) { case kGenMatch : log << " * Sum(DeltaR) : " << this->genMatchSumDR(cmb) << " \n" << " * Sum(DeltaPt): " << this->genMatchSumPt(cmb) << " \n"; break; case kMVADisc : log << " * Method : " << this->mvaMethod() << " \n" << " * Discrim. : " << this->mvaDisc(cmb) << " \n"; break; case kKinFit : log << " * Chi^2 : " << this->fitChi2(cmb) << " \n" << " * Prob(Chi^2) : " << this->fitProb(cmb) << " \n"; break; default : break; } // kinematic quantities of particles (if last digit of verbosity level > 1) if(verbosity%10 >= 2) { log << " * Candidates (pt; eta; phi; mass) :\n"; if(verbosity%10 >= 3) printParticle(log, "top pair", this->topPair(hypKey, cmb)); printParticle(log, "top ", this->top (hypKey, cmb)); printParticle(log, "W plus ", this->wPlus(hypKey, cmb)); if(verbosity%10 >= 3) { printParticle(log, "b ", this->b (hypKey, cmb)); printParticle(log, "lightQ ", this->lightQ (hypKey, cmb)); printParticle(log, "lightQBar ", this->lightQBar(hypKey, cmb)); } printParticle(log, "topBar ", this->topBar(hypKey, cmb)); printParticle(log, "W minus ", this->wMinus(hypKey, cmb)); if(verbosity%10 >= 3) { printParticle(log, "bBar ", this->bBar (hypKey, cmb)); printParticle(log, "lightP ", this->lightP (hypKey, cmb)); printParticle(log, "lightPBar ", this->lightPBar(hypKey, cmb)); } } } } } log << "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"; }
const reco::Candidate* TtFullHadronicEvent::top | ( | const HypoClassKey & | key, |
const unsigned & | cmb = 0 |
||
) | const [inline] |
get top of the given hypothesis
Definition at line 35 of file TtFullHadronicEvent.h.
References TtEvent::eventHypo(), TtEvent::isHypoValid(), and TtFullHadDaughter::Top.
{ return !isHypoValid(key,cmb) ? 0 : eventHypo(key,cmb). daughter(TtFullHadDaughter::Top); };
const reco::GenParticle* TtFullHadronicEvent::top | ( | ) | const [inline] |
get top of the TtGenEvent
Definition at line 81 of file TtFullHadronicEvent.h.
References TtEvent::genEvent(), TtEvent::genEvt_, and top().
const reco::Candidate* TtFullHadronicEvent::top | ( | const std::string & | key, |
const unsigned & | cmb = 0 |
||
) | const [inline] |
get top of the given hypothesis
Definition at line 33 of file TtFullHadronicEvent.h.
References TtEvent::hypoClassKeyFromString(), and top().
Referenced by top().
{ return top(hypoClassKeyFromString(key), cmb); };
const reco::GenParticle* TtFullHadronicEvent::topBar | ( | ) | const [inline] |
get anti-top of the TtGenEvent
Definition at line 94 of file TtFullHadronicEvent.h.
References TtEvent::genEvent(), TtEvent::genEvt_, and topBar().
const reco::Candidate* TtFullHadronicEvent::topBar | ( | const std::string & | key, |
const unsigned & | cmb = 0 |
||
) | const [inline] |
get anti-top of the given hypothesis
Definition at line 57 of file TtFullHadronicEvent.h.
References TtEvent::hypoClassKeyFromString(), and topBar().
Referenced by topBar().
{ return topBar(hypoClassKeyFromString(key), cmb); };
const reco::Candidate* TtFullHadronicEvent::topBar | ( | const HypoClassKey & | key, |
const unsigned & | cmb = 0 |
||
) | const [inline] |
get anti-top of the given hypothesis
Definition at line 59 of file TtFullHadronicEvent.h.
References TtEvent::eventHypo(), TtEvent::isHypoValid(), and TtFullHadDaughter::TopBar.
{ return !isHypoValid(key,cmb) ? 0 : eventHypo(key,cmb). daughter(TtFullHadDaughter::TopBar); };
const reco::Candidate* TtFullHadronicEvent::wMinus | ( | const std::string & | key, |
const unsigned & | cmb = 0 |
||
) | const [inline] |
get Wminus of the given hypothesis
Definition at line 76 of file TtFullHadronicEvent.h.
References TtEvent::hypoClassKeyFromString(), and wMinus().
Referenced by wMinus().
{ return wMinus(hypoClassKeyFromString(key), cmb); };
const reco::GenParticle* TtFullHadronicEvent::wMinus | ( | ) | const [inline] |
get Wminus of the TtGenEvent
Definition at line 104 of file TtFullHadronicEvent.h.
References TtEvent::genEvent(), TtEvent::genEvt_, and wMinus().
Referenced by lightP(), lightPBar(), print(), and wMinus().
const reco::Candidate* TtFullHadronicEvent::wMinus | ( | const HypoClassKey & | key, |
const unsigned & | cmb = 0 |
||
) | const [inline] |
get Wminus of the given hypothesis
Definition at line 78 of file TtFullHadronicEvent.h.
References reco::CompositeRefCandidateT< D >::daughter(), TtEvent::isHypoValid(), topBar(), and TtFullHadDaughter::WMinus.
{ return !isHypoValid(key,cmb) ? 0 : topBar(key,cmb)->daughter(TtFullHadDaughter::WMinus); };
const reco::GenParticle* TtFullHadronicEvent::wPlus | ( | ) | const [inline] |
get Wplus of the TtGenEvent
Definition at line 91 of file TtFullHadronicEvent.h.
References TtEvent::genEvent(), TtEvent::genEvt_, and wPlus().
Referenced by lightQ(), lightQBar(), print(), and wPlus().
const reco::Candidate* TtFullHadronicEvent::wPlus | ( | const HypoClassKey & | key, |
const unsigned & | cmb = 0 |
||
) | const [inline] |
get Wplus of the given hypothesis
Definition at line 54 of file TtFullHadronicEvent.h.
References reco::CompositeRefCandidateT< D >::daughter(), TtEvent::isHypoValid(), top(), and TtFullHadDaughter::WPlus.
{ return !isHypoValid(key,cmb) ? 0 : top(key,cmb)->daughter(TtFullHadDaughter::WPlus); };
const reco::Candidate* TtFullHadronicEvent::wPlus | ( | const std::string & | key, |
const unsigned & | cmb = 0 |
||
) | const [inline] |
get Wplus of the given hypothesis
Definition at line 52 of file TtFullHadronicEvent.h.
References TtEvent::hypoClassKeyFromString(), and wPlus().
Referenced by wPlus().
{ return wPlus(hypoClassKeyFromString(key), cmb); };