CMS 3D CMS Logo

Public Member Functions

TtFullHadronicEvent Class Reference

Class derived from the TtEvent for the full hadronic decay channel. More...

#include <AnalysisDataFormats/TopObjects/interface/TtFullHadronicEvent.h>

Inheritance diagram for TtFullHadronicEvent:
TtEvent

List of all members.

Public Member Functions

const reco::Candidateb (const std::string &key, const unsigned &cmb=0) const
 get b of the given hypothesis
const reco::Candidateb (const HypoClassKey &key, const unsigned &cmb=0) const
 get b of the given hypothesis
const reco::GenParticleb () const
 get b of the TtGenEvent
const reco::CandidatebBar (const HypoClassKey &key, const unsigned &cmb=0) const
 get anti-b of the given hypothesis
const reco::CandidatebBar (const std::string &key, const unsigned &cmb=0) const
 get anti-b of the given hypothesis
const reco::GenParticlebBar () const
 get anti-b of the TtGenEvent
const reco::CandidatelightP (const std::string &key, const unsigned &cmb=0) const
 get light P of the given hypothesis
const reco::CandidatelightP (const HypoClassKey &key, const unsigned &cmb=0) const
 get light P of the given hypothesis
const reco::GenParticlelightP () const
 get light P of the TtGenEvent
const reco::CandidatelightPBar (const std::string &key, const unsigned &cmb=0) const
 get light P bar of the given hypothesis
const reco::CandidatelightPBar (const HypoClassKey &key, const unsigned &cmb=0) const
 get light P bar of the given hypothesis
const reco::GenParticlelightPBar () const
 get light P bar of the TtGenEvent
const reco::CandidatelightQ (const HypoClassKey &key, const unsigned &cmb=0) const
 get light Q of the given hypothesis
const reco::CandidatelightQ (const std::string &key, const unsigned &cmb=0) const
 get light Q of the given hypothesis
const reco::GenParticlelightQ () const
 get light Q of the TtGenEvent
const reco::CandidatelightQBar (const std::string &key, const unsigned &cmb=0) const
 get light Q bar of the given hypothesis
const reco::CandidatelightQBar (const HypoClassKey &key, const unsigned &cmb=0) const
 get light Q bar of the given hypothesis
const reco::GenParticlelightQBar () const
 get light Q bar of the TtGenEvent
void print (const int verbosity=1) const
const reco::Candidatetop (const std::string &key, const unsigned &cmb=0) const
 get top of the given hypothesis
const reco::Candidatetop (const HypoClassKey &key, const unsigned &cmb=0) const
 get top of the given hypothesis
const reco::GenParticletop () const
 get top of the TtGenEvent
const reco::CandidatetopBar (const std::string &key, const unsigned &cmb=0) const
 get anti-top of the given hypothesis
const reco::CandidatetopBar (const HypoClassKey &key, const unsigned &cmb=0) const
 get anti-top of the given hypothesis
const reco::GenParticletopBar () const
 get anti-top of the TtGenEvent
 TtFullHadronicEvent ()
 empty constructor
const reco::CandidatewMinus (const HypoClassKey &key, const unsigned &cmb=0) const
 get Wminus of the given hypothesis
const reco::CandidatewMinus (const std::string &key, const unsigned &cmb=0) const
 get Wminus of the given hypothesis
const reco::GenParticlewMinus () const
 get Wminus of the TtGenEvent
const reco::GenParticlewPlus () const
 get Wplus of the TtGenEvent
const reco::CandidatewPlus (const HypoClassKey &key, const unsigned &cmb=0) const
 get Wplus of the given hypothesis
const reco::CandidatewPlus (const std::string &key, const unsigned &cmb=0) const
 get Wplus of the given hypothesis
virtual ~TtFullHadronicEvent ()
 default destructor

Detailed Description

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.


Constructor & Destructor Documentation

TtFullHadronicEvent::TtFullHadronicEvent ( ) [inline]

empty constructor

Definition at line 28 of file TtFullHadronicEvent.h.

{};
virtual TtFullHadronicEvent::~TtFullHadronicEvent ( ) [inline, virtual]

default destructor

Definition at line 30 of file TtFullHadronicEvent.h.

{};

Member Function Documentation

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_.

Referenced by b(), and print().

{ return (!genEvt_ ? 0 : this->genEvent()->b()    ); };
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_.

Referenced by bBar(), and print().

{ return (!genEvt_ ? 0 : this->genEvent()->bBar()    ); };
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().

{ return (!genEvt_ ? 0 : this->genEvent()->daughterQuarkOfWMinus()  ); };
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().

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().

{ return (!genEvt_ ? 0 : this->genEvent()->daughterQuarkBarOfWMinus()  ); };
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().

{ return (!genEvt_ ? 0 : this->genEvent()->daughterQuarkOfWPlus()   ); };
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().

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().

{ return (!genEvt_ ? 0 : this->genEvent()->daughterQuarkBarOfWPlus()   ); };
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().

Referenced by b(), print(), top(), and wPlus().

{ return (!genEvt_ ? 0 : this->genEvent()->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().

Referenced by bBar(), print(), topBar(), and wMinus().

{ return (!genEvt_ ? 0 : this->genEvent()->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().

{ return (!genEvt_ ? 0 : this->genEvent()->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().

{ return (!genEvt_ ? 0 : this->genEvent()->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); };