CMS 3D CMS Logo

List of all members | Public Member Functions | Protected Attributes
TtFullLeptonicEvent Class Reference

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

#include "AnalysisDataFormats/TopObjects/interface/TtFullLeptonicEvent.h"

Inheritance diagram for TtFullLeptonicEvent:
TtEvent

Public Member Functions

const reco::Candidateb (const HypoClassKey &key, const unsigned &cmb=0) const
 get b of the given hypothesis More...
 
const reco::Candidateb (const std::string &key, const unsigned &cmb=0) const
 get 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::CandidatebBar (const std::string &key, const unsigned &cmb=0) const
 get anti-b of the given hypothesis More...
 
const reco::GenParticlegenB () const
 get b of the TtGenEvent More...
 
const reco::GenParticlegenBBar () const
 get anti-b of the TtGenEvent More...
 
const reco::GenParticlegenLepton () const
 get lepton of the TtGenEvent More...
 
const reco::GenParticlegenLeptonBar () const
 get anti-lepton of the TtGenEvent More...
 
const reco::GenParticlegenNeutrino () const
 get neutrino of the TtGenEvent More...
 
const reco::GenParticlegenNeutrinoBar () const
 get anti-neutrino of the TtGenEvent More...
 
const reco::GenParticlegenTop () const
 get top of the TtGenEvent More...
 
const reco::GenParticlegenTopBar () const
 get anti-top of the TtGenEvent More...
 
const reco::GenParticlegenWMinus () const
 get Wminus of the TtGenEvent More...
 
const reco::GenParticlegenWPlus () const
 get Wplus of the TtGenEvent More...
 
bool isWrongCharge () const
 return if the kinematic solution of hypothesis 'cmb' is right or wrong charge if available; -1 else More...
 
const reco::Candidatelepton (const HypoClassKey &key, const unsigned &cmb=0) const
 get lepton of the given hypothesis More...
 
const reco::Candidatelepton (const std::string &key, const unsigned &cmb=0) const
 get lepton of the given hypothesis More...
 
const reco::CandidateleptonBar (const HypoClassKey &key, const unsigned &cmb=0) const
 get anti-lepton of the given hypothesis More...
 
const reco::CandidateleptonBar (const std::string &key, const unsigned &cmb=0) const
 get anti-lepton of the given hypothesis More...
 
const reco::Candidateneutrino (const HypoClassKey &key, const unsigned &cmb=0) const
 get neutrino of the given hypothesis More...
 
const reco::Candidateneutrino (const std::string &key, const unsigned &cmb=0) const
 get neutrino of the given hypothesis More...
 
const reco::CandidateneutrinoBar (const HypoClassKey &key, const unsigned &cmb=0) const
 get anti-neutrino of the given hypothesis More...
 
const reco::CandidateneutrinoBar (const std::string &key, const unsigned &cmb=0) const
 get anti-neutrino of the given hypothesis More...
 
void print (const int verbosity=1) const
 
void setSolWeight (const std::vector< double > &val)
 set weight of kKinSolution hypothesis More...
 
void setWrongCharge (const bool &val)
 set right or wrong charge combination of kKinSolution hypothesis More...
 
double solWeight (const unsigned &cmb=0) const
 return the weight of the kinematic solution of hypothesis 'cmb' if available; -1 else More...
 
const reco::Candidatetop (const HypoClassKey &key, const unsigned &cmb=0) const
 get top of the given hypothesis More...
 
const reco::Candidatetop (const std::string &key, const unsigned &cmb=0) const
 get 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::CandidatetopBar (const std::string &key, const unsigned &cmb=0) const
 get anti-top of the given hypothesis More...
 
 TtFullLeptonicEvent ()
 empty constructor More...
 
const reco::CandidatewMinus (const HypoClassKey &key, const unsigned &cmb=0) const
 get Wminus of the given hypothesis More...
 
const reco::CandidatewMinus (const std::string &key, const unsigned &cmb=0) const
 get Wminus 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::CandidatewPlus (const std::string &key, const unsigned &cmb=0) const
 get Wplus of the given hypothesis More...
 
 ~TtFullLeptonicEvent () override
 default destructor More...
 
- Public Member Functions inherited from TtEvent
void addEventHypo (const HypoClassKey &key, const HypoCombPair &hyp)
 add new hypotheses 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...
 
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...
 
const reco::CompositeCandidateeventHypo (const HypoClassKey &key, const unsigned &cmb=0) const
 
double fitChi2 (const unsigned &cmb=0) const
 return the chi2 of the kinematic 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...
 
double hitFitChi2 (const unsigned &cmb=0) const
 return the hitfit chi2 of hypothesis 'cmb' if available; -1 else More...
 
double hitFitMT (const unsigned &cmb=0) const
 return the hitfit top mass of hypothesis 'cmb' if available; -1 else More...
 
double hitFitProb (const unsigned &cmb=0) const
 return the hitfit probability of hypothesis 'cmb' if available; -1 else More...
 
double hitFitSigMT (const unsigned &cmb=0) const
 return the hitfit top mass uncertainty of hypothesis 'cmb' if available; -1 else More...
 
bool isHypoAvailable (const HypoClassKey &key, const unsigned &cmb=0) const
 check if hypothesis 'cmb' is available within the hypothesis class More...
 
bool isHypoAvailable (const std::string &key, const unsigned &cmb=0) const
 
bool isHypoClassAvailable (const HypoClassKey &key) const
 check if hypothesis class 'key' was added to the event structure More...
 
bool isHypoClassAvailable (const std::string &key) const
 check if hypothesis class 'key' was added to the event structure 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...
 
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...
 
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::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::pair< WDecay::LeptonType, WDecay::LeptonTypelepDecays () 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 HypoClassKey &key) const
 return number of available hypotheses within a given hypothesis class More...
 
unsigned int numberOfAvailableHypos (const std::string &key) const
 return number of available hypotheses within a given hypothesis class More...
 
int numberOfConsideredJets (const HypoClassKey &key) const
 return number of jets that were considered when building a given hypothesis More...
 
int numberOfConsideredJets (const std::string &key) const
 return number of jets that were considered when building a given hypothesis 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 setHitFitChi2 (const std::vector< double > &val)
 set chi2 of kHitFit hypothesis More...
 
void setHitFitMT (const std::vector< double > &val)
 set fitted top mass of kHitFit hypothesis More...
 
void setHitFitProb (const std::vector< double > &val)
 set fit probability of kHitFit hypothesis More...
 
void setHitFitSigMT (const std::vector< double > &val)
 set fitted top mass uncertainty of kHitFit 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...
 
void setNumberOfConsideredJets (const HypoClassKey &key, const unsigned int nJets)
 set number of jets considered when building a given hypothesis More...
 
const math::XYZTLorentzVectortopPair () const
 get combined 4-vector of top and topBar from the TtGenEvent More...
 
const reco::CandidatetopPair (const HypoClassKey &key, const unsigned &cmb=0) const
 get combined 4-vector of top and topBar of the given hypothesis More...
 
const reco::CandidatetopPair (const std::string &key, const unsigned &cmb=0) const
 get combined 4-vector of top and topBar of the given hypothesis More...
 
 TtEvent ()
 empty constructor More...
 
virtual ~TtEvent ()
 default destructor More...
 

Protected Attributes

std::vector< double > solWeight_
 result of kinematic solution More...
 
bool wrongCharge_
 right/wrong charge booleans 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::vector< double > hitFitChi2_
 
std::vector< double > hitFitMT_
 result of hitfit More...
 
std::vector< double > hitFitProb_
 
std::vector< double > hitFitSigMT_
 
std::pair< WDecay::LeptonType, WDecay::LeptonTypelepDecays_
 leptonic decay channels More...
 
std::vector< double > mvaDisc_
 MVA discriminants. More...
 
std::string mvaMethod_
 label of the MVA method More...
 
std::map< HypoClassKey, int > nJetsConsidered_
 number of jets considered when building the hypotheses More...
 

Additional Inherited Members

- Public Types inherited from TtEvent
enum  HypoClassKey {
  kGeom, kWMassMaxSumPt, kMaxSumPtWMass, kGenMatch,
  kMVADisc, kKinFit, kKinSolution, kWMassDeltaTopMass,
  kHitFit
}
 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...
 

Detailed Description

Class derived from the TtEvent for the full leptonic decay channel.

The structure holds information on the leptonic 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 TtFullLeptonicEvent.h.

Constructor & Destructor Documentation

◆ TtFullLeptonicEvent()

TtFullLeptonicEvent::TtFullLeptonicEvent ( )
inline

empty constructor

Definition at line 27 of file TtFullLeptonicEvent.h.

27 {};

◆ ~TtFullLeptonicEvent()

TtFullLeptonicEvent::~TtFullLeptonicEvent ( )
inlineoverride

default destructor

Definition at line 29 of file TtFullLeptonicEvent.h.

29 {};

Member Function Documentation

◆ b() [1/2]

const reco::Candidate* TtFullLeptonicEvent::b ( const HypoClassKey key,
const unsigned &  cmb = 0 
) const
inline

get b of the given hypothesis

Definition at line 44 of file TtFullLeptonicEvent.h.

44  {
45  return !isHypoValid(key, cmb) ? nullptr : top(key, cmb)->daughter(TtFullLepDaughter::B);
46  };

References TtFullLepDaughter::B, reco::Candidate::daughter(), TtEvent::isHypoValid(), crabWrapper::key, and top().

◆ b() [2/2]

const reco::Candidate* TtFullLeptonicEvent::b ( const std::string &  key,
const unsigned &  cmb = 0 
) const
inline

get b of the given hypothesis

Definition at line 40 of file TtFullLeptonicEvent.h.

40  {
41  return b(hypoClassKeyFromString(key), cmb);
42  };

References TtEvent::hypoClassKeyFromString(), and crabWrapper::key.

Referenced by genB(), and print().

◆ bBar() [1/2]

const reco::Candidate* TtFullLeptonicEvent::bBar ( const HypoClassKey key,
const unsigned &  cmb = 0 
) const
inline

get anti-b of the given hypothesis

Definition at line 84 of file TtFullLeptonicEvent.h.

84  {
85  return !isHypoValid(key, cmb) ? nullptr : topBar(key, cmb)->daughter(TtFullLepDaughter::BBar);
86  };

References TtFullLepDaughter::BBar, reco::Candidate::daughter(), TtEvent::isHypoValid(), crabWrapper::key, and topBar().

◆ bBar() [2/2]

const reco::Candidate* TtFullLeptonicEvent::bBar ( const std::string &  key,
const unsigned &  cmb = 0 
) const
inline

get anti-b of the given hypothesis

Definition at line 80 of file TtFullLeptonicEvent.h.

80  {
81  return bBar(hypoClassKeyFromString(key), cmb);
82  };

References TtEvent::hypoClassKeyFromString(), and crabWrapper::key.

Referenced by genBBar(), and print().

◆ genB()

const reco::GenParticle* TtFullLeptonicEvent::genB ( ) const
inline

get b of the TtGenEvent

Definition at line 115 of file TtFullLeptonicEvent.h.

115 { return (!genEvt_ ? nullptr : this->genEvent()->b()); };

References b(), TtEvent::genEvent(), and TtEvent::genEvt_.

◆ genBBar()

const reco::GenParticle* TtFullLeptonicEvent::genBBar ( ) const
inline

get anti-b of the TtGenEvent

Definition at line 125 of file TtFullLeptonicEvent.h.

125 { return (!genEvt_ ? nullptr : this->genEvent()->bBar()); };

References bBar(), TtEvent::genEvent(), and TtEvent::genEvt_.

◆ genLepton()

const reco::GenParticle* TtFullLeptonicEvent::genLepton ( ) const
inline

get lepton of the TtGenEvent

Definition at line 129 of file TtFullLeptonicEvent.h.

129 { return (!genEvt_ ? nullptr : this->genEvent()->lepton()); };

References TtEvent::genEvent(), TtEvent::genEvt_, and lepton().

◆ genLeptonBar()

const reco::GenParticle* TtFullLeptonicEvent::genLeptonBar ( ) const
inline

get anti-lepton of the TtGenEvent

Definition at line 119 of file TtFullLeptonicEvent.h.

119 { return (!genEvt_ ? nullptr : this->genEvent()->leptonBar()); };

References TtEvent::genEvent(), TtEvent::genEvt_, and leptonBar().

◆ genNeutrino()

const reco::GenParticle* TtFullLeptonicEvent::genNeutrino ( ) const
inline

get neutrino of the TtGenEvent

Definition at line 121 of file TtFullLeptonicEvent.h.

121 { return (!genEvt_ ? nullptr : this->genEvent()->neutrino()); };

References TtEvent::genEvent(), TtEvent::genEvt_, and neutrino().

◆ genNeutrinoBar()

const reco::GenParticle* TtFullLeptonicEvent::genNeutrinoBar ( ) const
inline

get anti-neutrino of the TtGenEvent

Definition at line 131 of file TtFullLeptonicEvent.h.

131 { return (!genEvt_ ? nullptr : this->genEvent()->neutrinoBar()); };

References TtEvent::genEvent(), TtEvent::genEvt_, and neutrinoBar().

◆ genTop()

const reco::GenParticle* TtFullLeptonicEvent::genTop ( ) const
inline

get top of the TtGenEvent

Definition at line 113 of file TtFullLeptonicEvent.h.

113 { return (!genEvt_ ? nullptr : this->genEvent()->top()); };

References TtEvent::genEvent(), TtEvent::genEvt_, and top().

◆ genTopBar()

const reco::GenParticle* TtFullLeptonicEvent::genTopBar ( ) const
inline

get anti-top of the TtGenEvent

Definition at line 123 of file TtFullLeptonicEvent.h.

123 { return (!genEvt_ ? nullptr : this->genEvent()->topBar()); };

References TtEvent::genEvent(), TtEvent::genEvt_, and topBar().

◆ genWMinus()

const reco::GenParticle* TtFullLeptonicEvent::genWMinus ( ) const
inline

get Wminus of the TtGenEvent

Definition at line 127 of file TtFullLeptonicEvent.h.

127 { return (!genEvt_ ? nullptr : this->genEvent()->wMinus()); };

References TtEvent::genEvent(), TtEvent::genEvt_, and wMinus().

◆ genWPlus()

const reco::GenParticle* TtFullLeptonicEvent::genWPlus ( ) const
inline

get Wplus of the TtGenEvent

Definition at line 117 of file TtFullLeptonicEvent.h.

117 { return (!genEvt_ ? nullptr : this->genEvent()->wPlus()); };

References TtEvent::genEvent(), TtEvent::genEvt_, and wPlus().

◆ isWrongCharge()

bool TtFullLeptonicEvent::isWrongCharge ( ) const
inline

return if the kinematic solution of hypothesis 'cmb' is right or wrong charge if available; -1 else

Definition at line 136 of file TtFullLeptonicEvent.h.

136 { return wrongCharge_; }

References wrongCharge_.

Referenced by print().

◆ lepton() [1/2]

const reco::Candidate* TtFullLeptonicEvent::lepton ( const HypoClassKey key,
const unsigned &  cmb = 0 
) const
inline

get lepton of the given hypothesis

Definition at line 100 of file TtFullLeptonicEvent.h.

100  {
101  return !isHypoValid(key, cmb) ? nullptr : wMinus(key, cmb)->daughter(TtFullLepDaughter::Lep);
102  };

References reco::Candidate::daughter(), TtEvent::isHypoValid(), crabWrapper::key, TtFullLepDaughter::Lep, and wMinus().

◆ lepton() [2/2]

const reco::Candidate* TtFullLeptonicEvent::lepton ( const std::string &  key,
const unsigned &  cmb = 0 
) const
inline

get lepton of the given hypothesis

Definition at line 96 of file TtFullLeptonicEvent.h.

96  {
97  return lepton(hypoClassKeyFromString(key), cmb);
98  };

References TtEvent::hypoClassKeyFromString(), and crabWrapper::key.

Referenced by genLepton(), and print().

◆ leptonBar() [1/2]

const reco::Candidate* TtFullLeptonicEvent::leptonBar ( const HypoClassKey key,
const unsigned &  cmb = 0 
) const
inline

get anti-lepton of the given hypothesis

Definition at line 60 of file TtFullLeptonicEvent.h.

60  {
61  return !isHypoValid(key, cmb) ? nullptr : wPlus(key, cmb)->daughter(TtFullLepDaughter::LepBar);
62  };

References reco::Candidate::daughter(), TtEvent::isHypoValid(), crabWrapper::key, TtFullLepDaughter::LepBar, and wPlus().

◆ leptonBar() [2/2]

const reco::Candidate* TtFullLeptonicEvent::leptonBar ( const std::string &  key,
const unsigned &  cmb = 0 
) const
inline

get anti-lepton of the given hypothesis

Definition at line 56 of file TtFullLeptonicEvent.h.

56  {
57  return leptonBar(hypoClassKeyFromString(key), cmb);
58  };

References TtEvent::hypoClassKeyFromString(), and crabWrapper::key.

Referenced by genLeptonBar(), and print().

◆ neutrino() [1/2]

const reco::Candidate* TtFullLeptonicEvent::neutrino ( const HypoClassKey key,
const unsigned &  cmb = 0 
) const
inline

get neutrino of the given hypothesis

Definition at line 68 of file TtFullLeptonicEvent.h.

68  {
69  return !isHypoValid(key, cmb) ? nullptr : wPlus(key, cmb)->daughter(TtFullLepDaughter::Nu);
70  };

References reco::Candidate::daughter(), TtEvent::isHypoValid(), crabWrapper::key, TtFullLepDaughter::Nu, and wPlus().

◆ neutrino() [2/2]

const reco::Candidate* TtFullLeptonicEvent::neutrino ( const std::string &  key,
const unsigned &  cmb = 0 
) const
inline

get neutrino of the given hypothesis

Definition at line 64 of file TtFullLeptonicEvent.h.

64  {
65  return neutrino(hypoClassKeyFromString(key), cmb);
66  };

References TtEvent::hypoClassKeyFromString(), and crabWrapper::key.

Referenced by genNeutrino(), and print().

◆ neutrinoBar() [1/2]

const reco::Candidate* TtFullLeptonicEvent::neutrinoBar ( const HypoClassKey key,
const unsigned &  cmb = 0 
) const
inline

get anti-neutrino of the given hypothesis

Definition at line 108 of file TtFullLeptonicEvent.h.

108  {
109  return !isHypoValid(key, cmb) ? nullptr : wMinus(key, cmb)->daughter(TtFullLepDaughter::NuBar);
110  };

References reco::Candidate::daughter(), TtEvent::isHypoValid(), crabWrapper::key, TtFullLepDaughter::NuBar, and wMinus().

◆ neutrinoBar() [2/2]

const reco::Candidate* TtFullLeptonicEvent::neutrinoBar ( const std::string &  key,
const unsigned &  cmb = 0 
) const
inline

get anti-neutrino of the given hypothesis

Definition at line 104 of file TtFullLeptonicEvent.h.

104  {
105  return neutrinoBar(hypoClassKeyFromString(key), cmb);
106  };

References TtEvent::hypoClassKeyFromString(), and crabWrapper::key.

Referenced by genNeutrinoBar(), and print().

◆ print()

void TtFullLeptonicEvent::print ( const int  verbosity = 1) const

print full content of the structure as formated LogInfo to the MessageLogger output for debugging

Definition at line 9 of file TtFullLeptonicEvent.cc.

9  {
10  if (verbosity % 10 <= 0)
11  return;
12 
13  edm::LogInfo log("TtFullLeptonicEvent");
14 
15  log << "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ \n";
16 
17  // get some information from the genEvent
18  log << " TtGenEvent says: ";
19  if (!this->genEvent()->isTtBar())
20  log << "Not TtBar";
21  else if (this->genEvent()->isFullHadronic())
22  log << "Fully Hadronic TtBar";
23  else if (this->genEvent()->isSemiLeptonic())
24  log << "Semi-leptonic TtBar";
25  else if (this->genEvent()->isFullLeptonic()) {
26  log << "Fully Leptonic TtBar, ";
27  switch (this->genEvent()->fullLeptonicChannel().first) {
28  case WDecay::kElec:
29  log << "Electron-";
30  break;
31  case WDecay::kMuon:
32  log << "Muon-";
33  break;
34  case WDecay::kTau:
35  log << "Tau-";
36  break;
37  default:
38  log << "Unknown-";
39  break;
40  }
41  switch (this->genEvent()->fullLeptonicChannel().second) {
42  case WDecay::kElec:
43  log << "Electron-";
44  break;
45  case WDecay::kMuon:
46  log << "Muon-";
47  break;
48  case WDecay::kTau:
49  log << "Tau-";
50  break;
51  default:
52  log << "Unknown-";
53  break;
54  }
55  log << "Channel";
56  }
57  log << "\n";
58 
59  // get number of available hypothesis classes
60  log << " Number of available event hypothesis classes: " << this->numberOfAvailableHypoClasses() << " \n";
61 
62  // create a legend for the jetLepComb
63  log << " - JetLepComb: ";
64  log << " b ";
65  log << " bbar ";
66  log << " e1(+) ";
67  log << " e2(-) ";
68  log << " mu1(+)";
69  log << " mu2(-)";
70  log << "\n";
71 
72  // get details from the hypotheses
73  typedef std::map<HypoClassKey, std::vector<HypoCombPair> >::const_iterator EventHypo;
74  for (EventHypo hyp = evtHyp_.begin(); hyp != evtHyp_.end(); ++hyp) {
75  HypoClassKey hypKey = (*hyp).first;
76  // header for each hypothesis
77  log << "------------------------------------------------------------ \n";
78  switch (hypKey) {
79  case kGeom:
80  log << " Geom not (yet) applicable to TtFullLeptonicEvent --> skipping";
81  continue;
82  case kWMassMaxSumPt:
83  log << " WMassMaxSumPt not (yet) applicable to TtFullLeptonicEvent --> skipping";
84  continue;
85  case kMaxSumPtWMass:
86  log << " MaxSumPtWMass not (yet) applicable to TtFullLeptonicEvent --> skipping";
87  continue;
88  case kGenMatch:
89  log << " GenMatch";
90  break;
91  case kMVADisc:
92  log << " MVADisc not (yet) applicable to TtFullLeptonicEvent --> skipping";
93  continue;
94  case kKinFit:
95  log << " KinFit not (yet) applicable to TtFullLeptonicEvent --> skipping";
96  continue;
97  case kKinSolution:
98  log << " KinSolution";
99  break;
100  case kWMassDeltaTopMass:
101  log << " WMassDeltaTopMass not (yet) applicable to TtFullLeptonicEvent --> skipping";
102  continue;
103  case kHitFit:
104  log << " HitFit not (yet) applicable to TtFullLeptonicEvent --> skipping";
105  continue;
106  default:
107  log << " Unknown TtEvent::HypoClassKey provided --> skipping";
108  continue;
109  }
110  log << "-Hypothesis: \n";
111  unsigned nOfHyp = this->numberOfAvailableHypos(hypKey);
112  if (nOfHyp > 1) {
113  log << " * Number of available jet combinations: " << nOfHyp << "\n";
114  if (verbosity < 10)
115  log << " The following was found to be the best one:\n";
116  }
117  // if verbosity level is smaller than 10, never show more than the best jet combination
118  if (verbosity < 10)
119  nOfHyp = 1;
120  for (unsigned cmb = 0; cmb < nOfHyp; cmb++) {
121  // check if hypothesis is valid
122  if (!this->isHypoValid(hypKey, cmb))
123  log << " * Not valid! \n";
124  // get meta information for valid hypothesis
125  else {
126  // jetLepComb
127  log << " * JetLepComb:";
128  std::vector<int> jets = this->jetLeptonCombination(hypKey, cmb);
129  for (unsigned int iJet = 0; iJet < jets.size(); iJet++) {
130  log << " " << jets[iJet] << " ";
131  }
132  log << "\n";
133  // specialties for some hypotheses
134  switch (hypKey) {
135  case kGenMatch:
136  log << " * Sum(DeltaR) : " << this->genMatchSumDR(cmb) << " \n"
137  << " * Sum(DeltaPt): " << this->genMatchSumPt(cmb) << " \n";
138  break;
139  case kKinSolution:
140  log << " * Weight : " << this->solWeight(cmb) << " \n"
141  << " * isWrongCharge: " << this->isWrongCharge() << " \n";
142  break;
143  default:
144  break;
145  }
146  // kinematic quantities of particles (if last digit of verbosity level > 1)
147  if (verbosity % 10 >= 2) {
148  log << " * Candidates (pt; eta; phi; mass):\n";
149  if (verbosity % 10 >= 3)
150  printParticle(log, "top pair", this->topPair(hypKey, cmb));
151  printParticle(log, "top ", this->top(hypKey, cmb));
152  printParticle(log, "W plus ", this->wPlus(hypKey, cmb));
153  if (verbosity % 10 >= 3) {
154  printParticle(log, "b ", this->b(hypKey, cmb));
155  printParticle(log, "leptonBar ", this->leptonBar(hypKey, cmb));
156  printParticle(log, "neutrino ", this->neutrino(hypKey, cmb));
157  }
158  printParticle(log, "topBar ", this->topBar(hypKey, cmb));
159  printParticle(log, "W minus ", this->wMinus(hypKey, cmb));
160  if (verbosity % 10 >= 3) {
161  printParticle(log, "bBar ", this->bBar(hypKey, cmb));
162  printParticle(log, "lepton ", this->lepton(hypKey, cmb));
163  printParticle(log, "neutrinoBar ", this->neutrinoBar(hypKey, cmb));
164  }
165  }
166  }
167  }
168  }
169 
170  log << "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++";
171 }

References b(), bBar(), TtEvent::evtHyp_, first, TtEvent::genEvent(), TtEvent::genMatchSumDR(), TtEvent::genMatchSumPt(), TtEvent::isHypoValid(), isWrongCharge(), TtEvent::jetLeptonCombination(), singleTopDQM_cfi::jets, WDecay::kElec, TtEvent::kGenMatch, TtEvent::kGeom, TtEvent::kHitFit, TtEvent::kKinFit, TtEvent::kKinSolution, TtEvent::kMaxSumPtWMass, WDecay::kMuon, TtEvent::kMVADisc, WDecay::kTau, TtEvent::kWMassDeltaTopMass, TtEvent::kWMassMaxSumPt, lepton(), leptonBar(), dqm-mbProfile::log, neutrino(), neutrinoBar(), TtEvent::numberOfAvailableHypoClasses(), TtEvent::numberOfAvailableHypos(), ttevent::printParticle(), edm::second(), solWeight(), top(), topBar(), TtEvent::topPair(), HIPAlignmentAlgorithm_cfi::verbosity, wMinus(), and wPlus().

◆ setSolWeight()

void TtFullLeptonicEvent::setSolWeight ( const std::vector< double > &  val)
inline

set weight of kKinSolution hypothesis

Definition at line 139 of file TtFullLeptonicEvent.h.

139 { solWeight_ = val; };

References solWeight_, and heppy_batch::val.

Referenced by TtEvtBuilder< C >::fillSpecific().

◆ setWrongCharge()

void TtFullLeptonicEvent::setWrongCharge ( const bool &  val)
inline

set right or wrong charge combination of kKinSolution hypothesis

Definition at line 141 of file TtFullLeptonicEvent.h.

141 { wrongCharge_ = val; };

References heppy_batch::val, and wrongCharge_.

Referenced by TtEvtBuilder< C >::fillSpecific().

◆ solWeight()

double TtFullLeptonicEvent::solWeight ( const unsigned &  cmb = 0) const
inline

return the weight of the kinematic solution of hypothesis 'cmb' if available; -1 else

Definition at line 134 of file TtFullLeptonicEvent.h.

134 { return (cmb < solWeight_.size() ? solWeight_[cmb] : -1.); }

References solWeight_.

Referenced by print().

◆ top() [1/2]

const reco::Candidate* TtFullLeptonicEvent::top ( const HypoClassKey key,
const unsigned &  cmb = 0 
) const
inline

get top of the given hypothesis

Definition at line 36 of file TtFullLeptonicEvent.h.

36  {
37  return !isHypoValid(key, cmb) ? nullptr : eventHypo(key, cmb).daughter(TtFullLepDaughter::Top);
38  };

References reco::CompositeCandidate::daughter(), TtEvent::eventHypo(), TtEvent::isHypoValid(), crabWrapper::key, and TtFullLepDaughter::Top.

◆ top() [2/2]

const reco::Candidate* TtFullLeptonicEvent::top ( const std::string &  key,
const unsigned &  cmb = 0 
) const
inline

get top of the given hypothesis

Definition at line 32 of file TtFullLeptonicEvent.h.

32  {
33  return top(hypoClassKeyFromString(key), cmb);
34  };

References TtEvent::hypoClassKeyFromString(), and crabWrapper::key.

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

◆ topBar() [1/2]

const reco::Candidate* TtFullLeptonicEvent::topBar ( const HypoClassKey key,
const unsigned &  cmb = 0 
) const
inline

get anti-top of the given hypothesis

Definition at line 76 of file TtFullLeptonicEvent.h.

76  {
77  return !isHypoValid(key, cmb) ? nullptr : eventHypo(key, cmb).daughter(TtFullLepDaughter::TopBar);
78  };

References reco::CompositeCandidate::daughter(), TtEvent::eventHypo(), TtEvent::isHypoValid(), crabWrapper::key, and TtFullLepDaughter::TopBar.

◆ topBar() [2/2]

const reco::Candidate* TtFullLeptonicEvent::topBar ( const std::string &  key,
const unsigned &  cmb = 0 
) const
inline

get anti-top of the given hypothesis

Definition at line 72 of file TtFullLeptonicEvent.h.

72  {
73  return topBar(hypoClassKeyFromString(key), cmb);
74  };

References TtEvent::hypoClassKeyFromString(), and crabWrapper::key.

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

◆ wMinus() [1/2]

const reco::Candidate* TtFullLeptonicEvent::wMinus ( const HypoClassKey key,
const unsigned &  cmb = 0 
) const
inline

get Wminus of the given hypothesis

Definition at line 92 of file TtFullLeptonicEvent.h.

92  {
93  return !isHypoValid(key, cmb) ? nullptr : topBar(key, cmb)->daughter(TtFullLepDaughter::WMinus);
94  };

References reco::Candidate::daughter(), TtEvent::isHypoValid(), crabWrapper::key, topBar(), and TtFullLepDaughter::WMinus.

◆ wMinus() [2/2]

const reco::Candidate* TtFullLeptonicEvent::wMinus ( const std::string &  key,
const unsigned &  cmb = 0 
) const
inline

get Wminus of the given hypothesis

Definition at line 88 of file TtFullLeptonicEvent.h.

88  {
89  return wMinus(hypoClassKeyFromString(key), cmb);
90  };

References TtEvent::hypoClassKeyFromString(), and crabWrapper::key.

Referenced by genWMinus(), lepton(), neutrinoBar(), and print().

◆ wPlus() [1/2]

const reco::Candidate* TtFullLeptonicEvent::wPlus ( const HypoClassKey key,
const unsigned &  cmb = 0 
) const
inline

get Wplus of the given hypothesis

Definition at line 52 of file TtFullLeptonicEvent.h.

52  {
53  return !isHypoValid(key, cmb) ? nullptr : top(key, cmb)->daughter(TtFullLepDaughter::WPlus);
54  };

References reco::Candidate::daughter(), TtEvent::isHypoValid(), crabWrapper::key, top(), and TtFullLepDaughter::WPlus.

◆ wPlus() [2/2]

const reco::Candidate* TtFullLeptonicEvent::wPlus ( const std::string &  key,
const unsigned &  cmb = 0 
) const
inline

get Wplus of the given hypothesis

Definition at line 48 of file TtFullLeptonicEvent.h.

48  {
49  return wPlus(hypoClassKeyFromString(key), cmb);
50  };

References TtEvent::hypoClassKeyFromString(), and crabWrapper::key.

Referenced by genWPlus(), leptonBar(), neutrino(), and print().

Member Data Documentation

◆ solWeight_

std::vector<double> TtFullLeptonicEvent::solWeight_
protected

result of kinematic solution

Definition at line 149 of file TtFullLeptonicEvent.h.

Referenced by setSolWeight(), and solWeight().

◆ wrongCharge_

bool TtFullLeptonicEvent::wrongCharge_
protected

right/wrong charge booleans

Definition at line 151 of file TtFullLeptonicEvent.h.

Referenced by isWrongCharge(), and setWrongCharge().

TtFullLeptonicEvent::lepton
const reco::Candidate * lepton(const std::string &key, const unsigned &cmb=0) const
get lepton of the given hypothesis
Definition: TtFullLeptonicEvent.h:96
TtEvent::kWMassMaxSumPt
Definition: TtEvent.h:28
reco::Candidate::daughter
virtual const Candidate * daughter(size_type i) const =0
return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode)
HIPAlignmentAlgorithm_cfi.verbosity
verbosity
Definition: HIPAlignmentAlgorithm_cfi.py:7
TtEvent::genEvt_
edm::RefProd< TtGenEvent > genEvt_
reference to TtGenEvent (has to be kept in the event!)
Definition: TtEvent.h:188
TtEvent::isHypoValid
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 Composite...
Definition: TtEvent.h:78
TtFullLeptonicEvent::solWeight_
std::vector< double > solWeight_
result of kinematic solution
Definition: TtFullLeptonicEvent.h:149
TtFullLepDaughter::B
static const std::string B
Definition: TtFullLeptonicEvent.h:9
TtEvent::evtHyp_
std::map< HypoClassKey, std::vector< HypoCombPair > > evtHyp_
Definition: TtEvent.h:191
TtFullLeptonicEvent::neutrino
const reco::Candidate * neutrino(const std::string &key, const unsigned &cmb=0) const
get neutrino of the given hypothesis
Definition: TtFullLeptonicEvent.h:64
TtFullLeptonicEvent::wrongCharge_
bool wrongCharge_
right/wrong charge booleans
Definition: TtFullLeptonicEvent.h:151
edm::second
U second(std::pair< T, U > const &p)
Definition: ParameterSet.cc:222
TtEvent::genMatchSumDR
double genMatchSumDR(const unsigned &cmb=0) const
return the sum dr of the generator match if available; -1 else
Definition: TtEvent.h:116
singleTopDQM_cfi.jets
jets
Definition: singleTopDQM_cfi.py:42
TtEvent::kKinFit
Definition: TtEvent.h:32
TtFullLepDaughter::LepBar
static const std::string LepBar
Definition: TtFullLeptonicEvent.h:9
TtFullLeptonicEvent::top
const reco::Candidate * top(const std::string &key, const unsigned &cmb=0) const
get top of the given hypothesis
Definition: TtFullLeptonicEvent.h:32
TtEvent::jetLeptonCombination
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:104
TtEvent::eventHypo
const reco::CompositeCandidate & eventHypo(const HypoClassKey &key, const unsigned &cmb=0) const
Definition: TtEvent.h:59
TtFullLeptonicEvent::solWeight
double solWeight(const unsigned &cmb=0) const
return the weight of the kinematic solution of hypothesis 'cmb' if available; -1 else
Definition: TtFullLeptonicEvent.h:134
TtEvent::numberOfAvailableHypos
unsigned int numberOfAvailableHypos(const std::string &key) const
return number of available hypotheses within a given hypothesis class
Definition: TtEvent.h:88
TtEvent::genEvent
const edm::RefProd< TtGenEvent > & genEvent() const
get TtGenEvent
Definition: TtEvent.h:63
TtFullLeptonicEvent::topBar
const reco::Candidate * topBar(const std::string &key, const unsigned &cmb=0) const
get anti-top of the given hypothesis
Definition: TtFullLeptonicEvent.h:72
TtEvent::hypoClassKeyFromString
HypoClassKey hypoClassKeyFromString(const std::string &label) const
return the corresponding enum value from a string
Definition: TtEvent.cc:15
TtEvent::kMVADisc
Definition: TtEvent.h:31
TtFullLeptonicEvent::leptonBar
const reco::Candidate * leptonBar(const std::string &key, const unsigned &cmb=0) const
get anti-lepton of the given hypothesis
Definition: TtFullLeptonicEvent.h:56
ttevent::printParticle
void printParticle(edm::LogInfo &log, const char *name, const reco::Candidate *cand)
print pt, eta, phi, mass of a given candidate into an existing LogInfo
Definition: printParticle.cc:20
first
auto first
Definition: CAHitNtupletGeneratorKernelsImpl.h:112
TtFullLepDaughter::NuBar
static const std::string NuBar
Definition: TtFullLeptonicEvent.h:10
TtFullLeptonicEvent::wPlus
const reco::Candidate * wPlus(const std::string &key, const unsigned &cmb=0) const
get Wplus of the given hypothesis
Definition: TtFullLeptonicEvent.h:48
TtFullLepDaughter::WPlus
static const std::string WPlus
Definition: TtFullLeptonicEvent.h:9
TtEvent::kHitFit
Definition: TtEvent.h:35
TtEvent::HypoClassKey
HypoClassKey
supported classes of event hypotheses
Definition: TtEvent.h:26
TtFullLepDaughter::WMinus
static const std::string WMinus
Definition: TtFullLeptonicEvent.h:10
TtFullLepDaughter::Lep
static const std::string Lep
Definition: TtFullLeptonicEvent.h:10
TtEvent::kWMassDeltaTopMass
Definition: TtEvent.h:34
WDecay::kTau
Definition: TopGenEvent.h:27
TtFullLepDaughter::BBar
static const std::string BBar
Definition: TtFullLeptonicEvent.h:10
TtEvent::kGenMatch
Definition: TtEvent.h:30
heppy_batch.val
val
Definition: heppy_batch.py:351
TtEvent::kKinSolution
Definition: TtEvent.h:33
WDecay::kMuon
Definition: TopGenEvent.h:27
TtEvent::topPair
const math::XYZTLorentzVector * topPair() const
get combined 4-vector of top and topBar from the TtGenEvent
Definition: TtEvent.h:151
TtFullLeptonicEvent::bBar
const reco::Candidate * bBar(const std::string &key, const unsigned &cmb=0) const
get anti-b of the given hypothesis
Definition: TtFullLeptonicEvent.h:80
TtFullLeptonicEvent::wMinus
const reco::Candidate * wMinus(const std::string &key, const unsigned &cmb=0) const
get Wminus of the given hypothesis
Definition: TtFullLeptonicEvent.h:88
dqm-mbProfile.log
log
Definition: dqm-mbProfile.py:17
TtFullLepDaughter::Nu
static const std::string Nu
Definition: TtFullLeptonicEvent.h:9
TtFullLeptonicEvent::b
const reco::Candidate * b(const std::string &key, const unsigned &cmb=0) const
get b of the given hypothesis
Definition: TtFullLeptonicEvent.h:40
TtEvent::kMaxSumPtWMass
Definition: TtEvent.h:29
TtEvent::numberOfAvailableHypoClasses
unsigned int numberOfAvailableHypoClasses() const
return number of available hypothesis classes
Definition: TtEvent.h:86
TtFullLeptonicEvent::isWrongCharge
bool isWrongCharge() const
return if the kinematic solution of hypothesis 'cmb' is right or wrong charge if available; -1 else
Definition: TtFullLeptonicEvent.h:136
TtFullLepDaughter::TopBar
static const std::string TopBar
Definition: TtFullLeptonicEvent.h:10
WDecay::kElec
Definition: TopGenEvent.h:27
crabWrapper.key
key
Definition: crabWrapper.py:19
reco::CompositeCandidate::daughter
const Candidate * daughter(size_type) const override
return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode)
Definition: CompositeCandidate.cc:30
edm::Log
Definition: MessageLogger.h:70
TtFullLeptonicEvent::neutrinoBar
const reco::Candidate * neutrinoBar(const std::string &key, const unsigned &cmb=0) const
get anti-neutrino of the given hypothesis
Definition: TtFullLeptonicEvent.h:104
TtEvent::kGeom
Definition: TtEvent.h:27
TtEvent::genMatchSumPt
double genMatchSumPt(const unsigned &cmb=0) const
return the sum pt of the generator match if available; -1 else
Definition: TtEvent.h:112
TtFullLepDaughter::Top
static const std::string Top
Definition: TtFullLeptonicEvent.h:9