CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | 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

Public Member Functions

const reco::Candidateb (const std::string &key, const unsigned &cmb=0) const
 get b of the given hypothesis More...
 
const reco::Candidateb (const HypoClassKey &key, const unsigned &cmb=0) const
 get b of the given hypothesis More...
 
const reco::GenParticleb () const
 get b of the TtGenEvent More...
 
const reco::CandidatebBar (const std::string &key, const unsigned &cmb=0) const
 get anti-b of the given hypothesis More...
 
const reco::CandidatebBar (const HypoClassKey &key, const unsigned &cmb=0) const
 get anti-b of the given hypothesis More...
 
const reco::GenParticlebBar () const
 get anti-b of the TtGenEvent More...
 
const reco::CandidatelightP (const std::string &key, const unsigned &cmb=0) const
 get light P of the given hypothesis More...
 
const reco::CandidatelightP (const HypoClassKey &key, const unsigned &cmb=0) const
 get light P of the given hypothesis More...
 
const reco::GenParticlelightP () const
 get light P of the TtGenEvent More...
 
const reco::CandidatelightPBar (const std::string &key, const unsigned &cmb=0) const
 get light P bar of the given hypothesis More...
 
const reco::CandidatelightPBar (const HypoClassKey &key, const unsigned &cmb=0) const
 get light P bar of the given hypothesis More...
 
const reco::GenParticlelightPBar () const
 get light P bar of the TtGenEvent More...
 
const reco::CandidatelightQ (const std::string &key, const unsigned &cmb=0) const
 get light Q of the given hypothesis More...
 
const reco::CandidatelightQ (const HypoClassKey &key, const unsigned &cmb=0) const
 get light Q of the given hypothesis More...
 
const reco::GenParticlelightQ () const
 get light Q of the TtGenEvent More...
 
const reco::CandidatelightQBar (const std::string &key, const unsigned &cmb=0) const
 get light Q bar of the given hypothesis More...
 
const reco::CandidatelightQBar (const HypoClassKey &key, const unsigned &cmb=0) const
 get light Q bar of the given hypothesis More...
 
const reco::GenParticlelightQBar () const
 get light Q bar of the TtGenEvent More...
 
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 More...
 
const reco::Candidatetop (const HypoClassKey &key, const unsigned &cmb=0) const
 get top of the given hypothesis More...
 
const reco::GenParticletop () const
 get top of the TtGenEvent More...
 
const reco::CandidatetopBar (const std::string &key, const unsigned &cmb=0) const
 get anti-top of the given hypothesis More...
 
const reco::CandidatetopBar (const HypoClassKey &key, const unsigned &cmb=0) const
 get anti-top of the given hypothesis More...
 
const reco::GenParticletopBar () const
 get anti-top of the TtGenEvent More...
 
 TtFullHadronicEvent ()
 empty constructor More...
 
const reco::CandidatewMinus (const std::string &key, const unsigned &cmb=0) const
 get Wminus of the given hypothesis More...
 
const reco::CandidatewMinus (const HypoClassKey &key, const unsigned &cmb=0) const
 get Wminus of the given hypothesis More...
 
const reco::GenParticlewMinus () const
 get Wminus of the TtGenEvent More...
 
const reco::CandidatewPlus (const std::string &key, const unsigned &cmb=0) const
 get Wplus of the given hypothesis More...
 
const reco::CandidatewPlus (const HypoClassKey &key, const unsigned &cmb=0) const
 get Wplus of the given hypothesis More...
 
const reco::GenParticlewPlus () const
 get Wplus of the TtGenEvent More...
 
virtual ~TtFullHadronicEvent ()
 default destructor More...
 
- Public Member Functions inherited from TtEvent
void addEventHypo (const HypoClassKey &key, HypoCombPair hyp)
 add new hypotheses More...
 
int correspondingHypo (const std::string &key1, const unsigned &hyp1, const std::string &key2) const
 return the hypothesis in hypothesis class 'key2', which corresponds to hypothesis 'hyp1' in hypothesis class 'key1' More...
 
int correspondingHypo (const HypoClassKey &key1, const unsigned &hyp1, const HypoClassKey &key2) const
 return the hypothesis in hypothesis class 'key2', which corresponds to hypothesis 'hyp1' in hypothesis class 'key1' More...
 
const reco::CompositeCandidateeventHypo (const HypoClassKey &key, const unsigned &cmb=0) const
 
double fitChi2 (const unsigned &cmb=0) const
 return the chi2 of the kinemtaic fit of hypothesis 'cmb' if available; -1 else More...
 
double fitProb (const unsigned &cmb=0) const
 return the fit probability of hypothesis 'cmb' if available; -1 else More...
 
const edm::RefProd< TtGenEvent > & genEvent () const
 get TtGenEvent More...
 
double genMatchSumDR (const unsigned &cmb=0) const
 return the sum dr of the generator match if available; -1 else More...
 
double genMatchSumPt (const unsigned &cmb=0) const
 return the sum pt of the generator match if available; -1 else More...
 
bool isHypoAvailable (const std::string &key, const unsigned &cmb=0) const
 
bool isHypoAvailable (const HypoClassKey &key, const unsigned &cmb=0) const
 check if hypothesis 'cmb' is available within the hypothesis class More...
 
bool isHypoClassAvailable (const std::string &key) const
 check if hypothesis class 'key' was added to the event structure More...
 
bool isHypoClassAvailable (const HypoClassKey &key) const
 check if hypothesis class 'key' was added to the event structure More...
 
bool isHypoValid (const std::string &key, const unsigned &cmb=0) const
 check if hypothesis 'cmb' within the hypothesis class was valid; if not it lead to an empty CompositeCandidate More...
 
bool isHypoValid (const HypoClassKey &key, const unsigned &cmb=0) const
 check if hypothesis 'cmb' within the hypothesis class was valid; if not it lead to an empty CompositeCandidate More...
 
std::vector< int > jetLeptonCombination (const std::string &key, const unsigned &cmb=0) const
 return the vector of jet lepton combinatorics for a given hypothesis and class More...
 
std::vector< int > jetLeptonCombination (const HypoClassKey &key, const unsigned &cmb=0) const
 return the vector of jet lepton combinatorics for a given hypothesis and class More...
 
std::pair< WDecay::LeptonType,
WDecay::LeptonType
lepDecays () const
 get leptonic decay channels More...
 
double mvaDisc (const unsigned &cmb=0) const
 return the mva discriminant value of hypothesis 'cmb' if available; -1 else More...
 
std::string mvaMethod () const
 return the label of the mva method in use for the jet parton association (if kMVADisc is not available the string is empty) More...
 
unsigned int numberOfAvailableHypoClasses () const
 return number of available hypothesis classes More...
 
unsigned int numberOfAvailableHypos (const std::string &key) const
 return number of available hypotheses within a given hypothesis class More...
 
unsigned int numberOfAvailableHypos (const HypoClassKey &key) const
 return number of available hypotheses within a given hypothesis class More...
 
void printParticle (edm::LogInfo &log, const char *name, const reco::Candidate *cand) const
 print pt, eta, phi, mass of a given candidate into an existing LogInfo More...
 
void setFitChi2 (const std::vector< double > &val)
 set chi2 of kKinFit hypothesis More...
 
void setFitProb (const std::vector< double > &val)
 set fit probability of kKinFit hypothesis More...
 
void setGenEvent (const edm::Handle< TtGenEvent > &evt)
 set TtGenEvent More...
 
void setGenMatchSumDR (const std::vector< double > &val)
 set sum dr of kGenMatch hypothesis More...
 
void setGenMatchSumPt (const std::vector< double > &val)
 set sum pt of kGenMatch hypothesis More...
 
void setLepDecays (const WDecay::LeptonType &lepDecTop1, const WDecay::LeptonType &lepDecTop2)
 set leptonic decay channels More...
 
void setMvaDiscriminators (const std::vector< double > &val)
 set mva discriminant values of kMVADisc hypothesis More...
 
void setMvaMethod (const std::string &name)
 set label of mva method for kMVADisc hypothesis More...
 
 TtEvent ()
 empty constructor More...
 
virtual ~TtEvent ()
 default destructor More...
 

Additional Inherited Members

- Public Types inherited from TtEvent
enum  HypoClassKey {
  kGeom, kWMassMaxSumPt, kMaxSumPtWMass, kGenMatch,
  kMVADisc, kKinFit, kKinSolution, kWMassDeltaTopMass
}
 supported classes of event hypotheses More...
 
typedef std::pair
< reco::CompositeCandidate,
std::vector< int > > 
HypoCombPair
 pair of hypothesis and lepton jet combinatorics for a given hypothesis More...
 
- Protected Member Functions inherited from TtEvent
HypoClassKey hypoClassKeyFromString (const std::string &label) const
 return the corresponding enum value from a string More...
 
- Protected Attributes inherited from TtEvent
std::map< HypoClassKey,
std::vector< HypoCombPair > > 
evtHyp_
 
std::vector< double > fitChi2_
 result of kinematic fit More...
 
std::vector< double > fitProb_
 result of kinematic fit More...
 
edm::RefProd< TtGenEventgenEvt_
 reference to TtGenEvent (has to be kept in the event!) More...
 
std::vector< double > genMatchSumDR_
 result of gen match More...
 
std::vector< double > genMatchSumPt_
 result of gen match More...
 
std::pair< WDecay::LeptonType,
WDecay::LeptonType
lepDecays_
 leptonic decay channels More...
 
std::vector< double > mvaDisc_
 MVA discriminants. More...
 
std::string mvaMethod_
 label of the MVA method More...
 

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.

28 {};
virtual TtFullHadronicEvent::~TtFullHadronicEvent ( )
inlinevirtual

default destructor

Definition at line 30 of file TtFullHadronicEvent.h.

30 {};

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

37 { return b(hypoClassKeyFromString(key), cmb); };
HypoClassKey hypoClassKeyFromString(const std::string &label) const
return the corresponding enum value from a string
Definition: TtEvent.cc:18
const reco::GenParticle * b() const
get b of the TtGenEvent
list key
Definition: combine.py:13
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().

39 { return !isHypoValid(key,cmb) ? 0 : top(key,cmb)->daughter(TtFullHadDaughter::B); };
const reco::GenParticle * top() const
get top of the TtGenEvent
virtual const Candidate * daughter(size_type) const
return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode) ...
static const std::string B
bool isHypoValid(const std::string &key, const unsigned &cmb=0) const
check if hypothesis &#39;cmb&#39; within the hypothesis class was valid; if not it lead to an empty Composite...
Definition: TtEvent.h:64
list key
Definition: combine.py:13
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().

83 { return (!genEvt_ ? 0 : this->genEvent()->b() ); };
const edm::RefProd< TtGenEvent > & genEvent() const
get TtGenEvent
Definition: TtEvent.h:53
const reco::GenParticle * b() const
get b of the TtGenEvent
edm::RefProd< TtGenEvent > genEvt_
reference to TtGenEvent (has to be kept in the event!)
Definition: TtEvent.h:121
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().

61 { return bBar(hypoClassKeyFromString(key), cmb); };
const reco::GenParticle * bBar() const
get anti-b of the TtGenEvent
HypoClassKey hypoClassKeyFromString(const std::string &label) const
return the corresponding enum value from a string
Definition: TtEvent.cc:18
list key
Definition: combine.py:13
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().

63 { return !isHypoValid(key,cmb) ? 0 : topBar(key,cmb)->daughter(TtFullHadDaughter::BBar ); };
const reco::GenParticle * topBar() const
get anti-top of the TtGenEvent
virtual const Candidate * daughter(size_type) const
return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode) ...
static const std::string BBar
bool isHypoValid(const std::string &key, const unsigned &cmb=0) const
check if hypothesis &#39;cmb&#39; within the hypothesis class was valid; if not it lead to an empty Composite...
Definition: TtEvent.h:64
list key
Definition: combine.py:13
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().

96 { return (!genEvt_ ? 0 : this->genEvent()->bBar() ); };
const edm::RefProd< TtGenEvent > & genEvent() const
get TtGenEvent
Definition: TtEvent.h:53
const reco::GenParticle * bBar() const
get anti-b of the TtGenEvent
edm::RefProd< TtGenEvent > genEvt_
reference to TtGenEvent (has to be kept in the event!)
Definition: TtEvent.h:121
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().

47 { return lightP(hypoClassKeyFromString(key), cmb); };
HypoClassKey hypoClassKeyFromString(const std::string &label) const
return the corresponding enum value from a string
Definition: TtEvent.cc:18
const reco::GenParticle * lightP() const
get light P of the TtGenEvent
list key
Definition: combine.py:13
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().

49 { return !isHypoValid(key,cmb) ? 0 : wMinus(key,cmb)->daughter(TtFullHadDaughter::LightP); };
const reco::GenParticle * wMinus() const
get Wminus of the TtGenEvent
virtual const Candidate * daughter(size_type) const
return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode) ...
static const std::string LightP
bool isHypoValid(const std::string &key, const unsigned &cmb=0) const
check if hypothesis &#39;cmb&#39; within the hypothesis class was valid; if not it lead to an empty Composite...
Definition: TtEvent.h:64
list key
Definition: combine.py:13
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().

88 { return (!genEvt_ ? 0 : this->genEvent()->daughterQuarkOfWMinus() ); };
const edm::RefProd< TtGenEvent > & genEvent() const
get TtGenEvent
Definition: TtEvent.h:53
edm::RefProd< TtGenEvent > genEvt_
reference to TtGenEvent (has to be kept in the event!)
Definition: TtEvent.h:121
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().

71 { return lightPBar(hypoClassKeyFromString(key), cmb); };
HypoClassKey hypoClassKeyFromString(const std::string &label) const
return the corresponding enum value from a string
Definition: TtEvent.cc:18
const reco::GenParticle * lightPBar() const
get light P bar of the TtGenEvent
list key
Definition: combine.py:13
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().

73 { return !isHypoValid(key,cmb) ? 0 : wMinus(key,cmb)->daughter(TtFullHadDaughter::LightPBar); };
const reco::GenParticle * wMinus() const
get Wminus of the TtGenEvent
static const std::string LightPBar
virtual const Candidate * daughter(size_type) const
return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode) ...
bool isHypoValid(const std::string &key, const unsigned &cmb=0) const
check if hypothesis &#39;cmb&#39; within the hypothesis class was valid; if not it lead to an empty Composite...
Definition: TtEvent.h:64
list key
Definition: combine.py:13
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().

101 { return (!genEvt_ ? 0 : this->genEvent()->daughterQuarkBarOfWMinus() ); };
const edm::RefProd< TtGenEvent > & genEvent() const
get TtGenEvent
Definition: TtEvent.h:53
edm::RefProd< TtGenEvent > genEvt_
reference to TtGenEvent (has to be kept in the event!)
Definition: TtEvent.h:121
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().

42 { return lightQ(hypoClassKeyFromString(key), cmb); };
const reco::GenParticle * lightQ() const
get light Q of the TtGenEvent
HypoClassKey hypoClassKeyFromString(const std::string &label) const
return the corresponding enum value from a string
Definition: TtEvent.cc:18
list key
Definition: combine.py:13
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().

44 { return !isHypoValid(key,cmb) ? 0 : wPlus(key,cmb)->daughter(TtFullHadDaughter::LightQ); };
static const std::string LightQ
const reco::GenParticle * wPlus() const
get Wplus of the TtGenEvent
virtual const Candidate * daughter(size_type) const
return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode) ...
bool isHypoValid(const std::string &key, const unsigned &cmb=0) const
check if hypothesis &#39;cmb&#39; within the hypothesis class was valid; if not it lead to an empty Composite...
Definition: TtEvent.h:64
list key
Definition: combine.py:13
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().

86 { return (!genEvt_ ? 0 : this->genEvent()->daughterQuarkOfWPlus() ); };
const edm::RefProd< TtGenEvent > & genEvent() const
get TtGenEvent
Definition: TtEvent.h:53
edm::RefProd< TtGenEvent > genEvt_
reference to TtGenEvent (has to be kept in the event!)
Definition: TtEvent.h:121
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().

66 { return lightQBar(hypoClassKeyFromString(key), cmb); };
const reco::GenParticle * lightQBar() const
get light Q bar of the TtGenEvent
HypoClassKey hypoClassKeyFromString(const std::string &label) const
return the corresponding enum value from a string
Definition: TtEvent.cc:18
list key
Definition: combine.py:13
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().

68 { return !isHypoValid(key,cmb) ? 0 : wPlus(key,cmb)->daughter(TtFullHadDaughter::LightQBar); };
const reco::GenParticle * wPlus() const
get Wplus of the TtGenEvent
virtual const Candidate * daughter(size_type) const
return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode) ...
bool isHypoValid(const std::string &key, const unsigned &cmb=0) const
check if hypothesis &#39;cmb&#39; within the hypothesis class was valid; if not it lead to an empty Composite...
Definition: TtEvent.h:64
list key
Definition: combine.py:13
static const std::string 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().

99 { return (!genEvt_ ? 0 : this->genEvent()->daughterQuarkBarOfWPlus() ); };
const edm::RefProd< TtGenEvent > & genEvent() const
get TtGenEvent
Definition: TtEvent.h:53
edm::RefProd< TtGenEvent > genEvt_
reference to TtGenEvent (has to be kept in the event!)
Definition: TtEvent.h:121
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(), TtFullHadEvtPartons::BBar, bBar(), TtEvent::evtHyp_, TtEvent::fitChi2(), TtEvent::fitProb(), TtEvent::genEvent(), TtEvent::genEvt_, TtEvent::genMatchSumDR(), TtEvent::genMatchSumPt(), TtEvent::isHypoValid(), TtEvent::jetLeptonCombination(), analyzePatCleaning_cfg::jets, TtEvent::kGenMatch, TtEvent::kGeom, TtEvent::kKinFit, TtEvent::kMaxSumPtWMass, TtEvent::kMVADisc, TtEvent::kWMassMaxSumPt, TtFullHadEvtPartons::LightP, lightP(), TtFullHadEvtPartons::LightPBar, lightPBar(), TtFullHadEvtPartons::LightQ, lightQ(), TtFullHadEvtPartons::LightQBar, lightQBar(), funct::log(), TtEvent::mvaDisc(), TtEvent::mvaMethod(), TtEvent::numberOfAvailableHypoClasses(), TtEvent::numberOfAvailableHypos(), TtEvent::printParticle(), top(), topBar(), wMinus(), and wPlus().

8 {
9  if(verbosity%10<=0)
10  return;
11 
12  edm::LogInfo log("TtFullHadronicEvent");
13 
14  log << "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ \n";
15 
16  // get some information from the genEvent
17  if( !genEvt_ ) log << " TtGenEvent not available! \n";
18  else {
19  log << " TtGenEvent says: ";
20  if( !this->genEvent()->isTtBar() ) log << "Not TtBar";
21  else if( this->genEvent()->isFullHadronic() ) log << "Fully Hadronic TtBar";
22  else if( this->genEvent()->isSemiLeptonic() ) log << "Semi-leptonic TtBar";
23  else if( this->genEvent()->isFullLeptonic() ) log << "Fully Leptonic TtBar";
24  log << "\n";
25  }
26  // get number of available hypothesis classes
27  log << " Number of available event hypothesis classes: " << this->numberOfAvailableHypoClasses() << " \n";
28 
29  // create a legend for the jetLepComb
30  log << " - JetCombi : ";
31  for(unsigned idx = 0; idx < 6; idx++) {
32  switch(idx) {
33  case TtFullHadEvtPartons::LightQ : log << " LightQ "; break;
34  case TtFullHadEvtPartons::LightQBar : log << " LightQBar"; break;
35  case TtFullHadEvtPartons::B : log << " B "; break;
36  case TtFullHadEvtPartons::LightP : log << " LightP "; break;
37  case TtFullHadEvtPartons::LightPBar : log << " LightPBar"; break;
38  case TtFullHadEvtPartons::BBar : log << " BBar "; break;
39  }
40  }
41  log << "\n";
42 
43 
44  // get details from the hypotheses
45  typedef std::map<HypoClassKey, std::vector<HypoCombPair> >::const_iterator EventHypo;
46  for(EventHypo hyp = evtHyp_.begin(); hyp != evtHyp_.end(); ++hyp) {
47  HypoClassKey hypKey = (*hyp).first;
48  // header for each hypothesis
49  log << "---------------------------------------------------------------------------- \n";
50  switch(hypKey) {
51  case kGeom : log << " Geom" ; break;
52  case kWMassMaxSumPt : log << " WMassMaxSumPt"; break;
53  case kMaxSumPtWMass : log << " MaxSumPtWMass"; break;
54  case kGenMatch : log << " GenMatch" ; break;
55  case kMVADisc : log << " MVADisc" ; break;
56  case kKinFit : log << " KinFit" ; break;
57  default : log << " Unknown";
58  }
59  log << "-Hypothesis: \n";
60  unsigned nOfHyp = this->numberOfAvailableHypos(hypKey);
61  if( nOfHyp > 1 ) {
62  log << " * Number of available jet combinations: " << nOfHyp << " \n";
63  if(verbosity < 10) log << " The following was found to be the best one: \n";
64  }
65  // if verbosity level is smaller than 10, never show more than the best jet combination
66  if(verbosity < 10)
67  nOfHyp = 1;
68  for(unsigned cmb=0; cmb<nOfHyp; ++cmb) {
69  // check if hypothesis is valid
70  if( !this->isHypoValid(hypKey, cmb) )
71  log << " * Not valid! \n";
72  // get meta information for valid hypothesis
73  else {
74  // jetLepComb
75  log << " * JetCombi :";
76  std::vector<int> jets = this->jetLeptonCombination( hypKey , cmb );
77  for(unsigned int iJet = 0; iJet < jets.size(); iJet++) {
78  log << " " << jets[iJet] << " ";
79  }
80  log << "\n";
81  // specialties for some hypotheses
82  switch(hypKey) {
83  case kGenMatch : log << " * Sum(DeltaR) : " << this->genMatchSumDR(cmb) << " \n"
84  << " * Sum(DeltaPt): " << this->genMatchSumPt(cmb) << " \n"; break;
85  case kMVADisc : log << " * Method : " << this->mvaMethod() << " \n"
86  << " * Discrim. : " << this->mvaDisc(cmb) << " \n"; break;
87  case kKinFit : log << " * Chi^2 : " << this->fitChi2(cmb) << " \n"
88  << " * Prob(Chi^2) : " << this->fitProb(cmb) << " \n"; break;
89  default : break;
90  }
91  // kinematic quantities of particles (if last digit of verbosity level > 1)
92  if(verbosity%10 >= 2) {
93  log << " * Candidates (pt; eta; phi; mass) :\n";
94  printParticle(log, "top ", this->top (hypKey, cmb));
95  printParticle(log, "W plus ", this->wPlus(hypKey, cmb));
96  if(verbosity%10 >= 3) {
97  printParticle(log, "b ", this->b (hypKey, cmb));
98  printParticle(log, "lightQ ", this->lightQ (hypKey, cmb));
99  printParticle(log, "lightQBar ", this->lightQBar(hypKey, cmb));
100  }
101  printParticle(log, "topBar ", this->topBar(hypKey, cmb));
102  printParticle(log, "W minus ", this->wMinus(hypKey, cmb));
103  if(verbosity%10 >= 3) {
104  printParticle(log, "bBar ", this->bBar (hypKey, cmb));
105  printParticle(log, "lightP ", this->lightP (hypKey, cmb));
106  printParticle(log, "lightPBar ", this->lightPBar(hypKey, cmb));
107  }
108  }
109  }
110  }
111  }
112  log << "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++";
113 }
HypoClassKey
supported classes of event hypotheses
Definition: TtEvent.h:31
const reco::GenParticle * lightQBar() const
get light Q bar of the TtGenEvent
const edm::RefProd< TtGenEvent > & genEvent() const
get TtGenEvent
Definition: TtEvent.h:53
const reco::GenParticle * wMinus() const
get Wminus of the TtGenEvent
const reco::GenParticle * topBar() const
get anti-top of the TtGenEvent
unsigned int numberOfAvailableHypos(const std::string &key) const
return number of available hypotheses within a given hypothesis class
Definition: TtEvent.h:70
const reco::GenParticle * lightQ() const
get light Q of the TtGenEvent
unsigned int numberOfAvailableHypoClasses() const
return number of available hypothesis classes
Definition: TtEvent.h:68
const reco::GenParticle * wPlus() const
get Wplus of the TtGenEvent
const reco::GenParticle * bBar() const
get anti-b of the TtGenEvent
void printParticle(edm::LogInfo &log, const char *name, const reco::Candidate *cand) const
print pt, eta, phi, mass of a given candidate into an existing LogInfo
Definition: TtEvent.cc:50
const reco::GenParticle * top() const
get top of the TtGenEvent
double fitChi2(const unsigned &cmb=0) const
return the chi2 of the kinemtaic fit of hypothesis &#39;cmb&#39; if available; -1 else
Definition: TtEvent.h:86
double genMatchSumDR(const unsigned &cmb=0) const
return the sum dr of the generator match if available; -1 else
Definition: TtEvent.h:80
const reco::GenParticle * b() const
get b of the TtGenEvent
double mvaDisc(const unsigned &cmb=0) const
return the mva discriminant value of hypothesis &#39;cmb&#39; if available; -1 else
Definition: TtEvent.h:84
const int verbosity
Log< T >::type log(const T &t)
Definition: Log.h:22
const reco::GenParticle * lightP() const
get light P of the TtGenEvent
const reco::GenParticle * lightPBar() const
get light P bar of the TtGenEvent
edm::RefProd< TtGenEvent > genEvt_
reference to TtGenEvent (has to be kept in the event!)
Definition: TtEvent.h:121
double fitProb(const unsigned &cmb=0) const
return the fit probability of hypothesis &#39;cmb&#39; if available; -1 else
Definition: TtEvent.h:88
bool isHypoValid(const std::string &key, const unsigned &cmb=0) const
check if hypothesis &#39;cmb&#39; within the hypothesis class was valid; if not it lead to an empty Composite...
Definition: TtEvent.h:64
double genMatchSumPt(const unsigned &cmb=0) const
return the sum pt of the generator match if available; -1 else
Definition: TtEvent.h:78
std::string mvaMethod() const
return the label of the mva method in use for the jet parton association (if kMVADisc is not availabl...
Definition: TtEvent.h:82
std::map< HypoClassKey, std::vector< HypoCombPair > > evtHyp_
Definition: TtEvent.h:124
std::vector< int > jetLeptonCombination(const std::string &key, const unsigned &cmb=0) const
return the vector of jet lepton combinatorics for a given hypothesis and class
Definition: TtEvent.h:74
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().

33 { return top(hypoClassKeyFromString(key), cmb); };
const reco::GenParticle * top() const
get top of the TtGenEvent
HypoClassKey hypoClassKeyFromString(const std::string &label) const
return the corresponding enum value from a string
Definition: TtEvent.cc:18
list key
Definition: combine.py:13
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.

35 { return !isHypoValid(key,cmb) ? 0 : eventHypo(key,cmb). daughter(TtFullHadDaughter::Top); };
static const std::string Top
const reco::CompositeCandidate & eventHypo(const HypoClassKey &key, const unsigned &cmb=0) const
Definition: TtEvent.h:51
bool isHypoValid(const std::string &key, const unsigned &cmb=0) const
check if hypothesis &#39;cmb&#39; within the hypothesis class was valid; if not it lead to an empty Composite...
Definition: TtEvent.h:64
list key
Definition: combine.py:13
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().

81 { return (!genEvt_ ? 0 : this->genEvent()->top() ); };
const edm::RefProd< TtGenEvent > & genEvent() const
get TtGenEvent
Definition: TtEvent.h:53
const reco::GenParticle * top() const
get top of the TtGenEvent
edm::RefProd< TtGenEvent > genEvt_
reference to TtGenEvent (has to be kept in the event!)
Definition: TtEvent.h:121
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().

57 { return topBar(hypoClassKeyFromString(key), cmb); };
const reco::GenParticle * topBar() const
get anti-top of the TtGenEvent
HypoClassKey hypoClassKeyFromString(const std::string &label) const
return the corresponding enum value from a string
Definition: TtEvent.cc:18
list key
Definition: combine.py:13
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.

59 { return !isHypoValid(key,cmb) ? 0 : eventHypo(key,cmb). daughter(TtFullHadDaughter::TopBar); };
static const std::string TopBar
const reco::CompositeCandidate & eventHypo(const HypoClassKey &key, const unsigned &cmb=0) const
Definition: TtEvent.h:51
bool isHypoValid(const std::string &key, const unsigned &cmb=0) const
check if hypothesis &#39;cmb&#39; within the hypothesis class was valid; if not it lead to an empty Composite...
Definition: TtEvent.h:64
list key
Definition: combine.py:13
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().

94 { return (!genEvt_ ? 0 : this->genEvent()->topBar() ); };
const edm::RefProd< TtGenEvent > & genEvent() const
get TtGenEvent
Definition: TtEvent.h:53
const reco::GenParticle * topBar() const
get anti-top of the TtGenEvent
edm::RefProd< TtGenEvent > genEvt_
reference to TtGenEvent (has to be kept in the event!)
Definition: TtEvent.h:121
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().

76 { return wMinus(hypoClassKeyFromString(key), cmb); };
const reco::GenParticle * wMinus() const
get Wminus of the TtGenEvent
HypoClassKey hypoClassKeyFromString(const std::string &label) const
return the corresponding enum value from a string
Definition: TtEvent.cc:18
list key
Definition: combine.py:13
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.

78 { return !isHypoValid(key,cmb) ? 0 : topBar(key,cmb)->daughter(TtFullHadDaughter::WMinus); };
const reco::GenParticle * topBar() const
get anti-top of the TtGenEvent
virtual const Candidate * daughter(size_type) const
return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode) ...
static const std::string WMinus
bool isHypoValid(const std::string &key, const unsigned &cmb=0) const
check if hypothesis &#39;cmb&#39; within the hypothesis class was valid; if not it lead to an empty Composite...
Definition: TtEvent.h:64
list key
Definition: combine.py:13
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().

104 { return (!genEvt_ ? 0 : this->genEvent()->wMinus() ); };
const edm::RefProd< TtGenEvent > & genEvent() const
get TtGenEvent
Definition: TtEvent.h:53
const reco::GenParticle * wMinus() const
get Wminus of the TtGenEvent
edm::RefProd< TtGenEvent > genEvt_
reference to TtGenEvent (has to be kept in the event!)
Definition: TtEvent.h:121
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().

52 { return wPlus(hypoClassKeyFromString(key), cmb); };
const reco::GenParticle * wPlus() const
get Wplus of the TtGenEvent
HypoClassKey hypoClassKeyFromString(const std::string &label) const
return the corresponding enum value from a string
Definition: TtEvent.cc:18
list key
Definition: combine.py:13
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.

54 { return !isHypoValid(key,cmb) ? 0 : top(key,cmb)->daughter(TtFullHadDaughter::WPlus); };
const reco::GenParticle * top() const
get top of the TtGenEvent
virtual const Candidate * daughter(size_type) const
return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode) ...
static const std::string WPlus
bool isHypoValid(const std::string &key, const unsigned &cmb=0) const
check if hypothesis &#39;cmb&#39; within the hypothesis class was valid; if not it lead to an empty Composite...
Definition: TtEvent.h:64
list key
Definition: combine.py:13
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().

91 { return (!genEvt_ ? 0 : this->genEvent()->wPlus() ); };
const edm::RefProd< TtGenEvent > & genEvent() const
get TtGenEvent
Definition: TtEvent.h:53
const reco::GenParticle * wPlus() const
get Wplus of the TtGenEvent
edm::RefProd< TtGenEvent > genEvt_
reference to TtGenEvent (has to be kept in the event!)
Definition: TtEvent.h:121