14 log <<
"+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ \n";
17 log <<
" TtGenEvent says: ";
18 if( !this->
genEvent()->isTtBar() ) log <<
"Not TtBar";
19 else if( this->
genEvent()->isFullHadronic() ) log <<
"Fully Hadronic TtBar";
20 else if( this->
genEvent()->isSemiLeptonic() ) log <<
"Semi-leptonic TtBar";
21 else if( this->
genEvent()->isFullLeptonic() ) {
22 log <<
"Fully Leptonic TtBar, ";
27 default : log <<
"Unknown-" ;
break;
33 default : log <<
"Unknown-" ;
break;
43 log <<
" - JetLepComb: ";
53 typedef std::map<HypoClassKey, std::vector<HypoCombPair> >::const_iterator EventHypo;
54 for(EventHypo hyp =
evtHyp_.begin(); hyp !=
evtHyp_.end(); ++hyp) {
57 log <<
"------------------------------------------------------------ \n";
59 case kGeom : log <<
" Geom not (yet) applicable to TtFullLeptonicEvent --> skipping" ;
continue;
60 case kWMassMaxSumPt : log <<
" WMassMaxSumPt not (yet) applicable to TtFullLeptonicEvent --> skipping" ;
continue;
61 case kMaxSumPtWMass : log <<
" MaxSumPtWMass not (yet) applicable to TtFullLeptonicEvent --> skipping" ;
continue;
62 case kGenMatch : log <<
" GenMatch" ;
break;
63 case kMVADisc : log <<
" MVADisc not (yet) applicable to TtFullLeptonicEvent --> skipping" ;
continue;
64 case kKinFit : log <<
" KinFit not (yet) applicable to TtFullLeptonicEvent --> skipping" ;
continue;
66 case kWMassDeltaTopMass : log <<
" WMassDeltaTopMass not (yet) applicable to TtFullLeptonicEvent --> skipping";
continue;
67 case kHitFit : log <<
" HitFit not (yet) applicable to TtFullLeptonicEvent --> skipping" ;
continue;
68 default : log <<
" Unknown TtEvent::HypoClassKey provided --> skipping" ;
continue;
70 log <<
"-Hypothesis: \n";
73 log <<
" * Number of available jet combinations: " << nOfHyp <<
"\n";
75 log <<
" The following was found to be the best one:\n";
80 for(
unsigned cmb=0; cmb<nOfHyp; cmb++) {
83 log <<
" * Not valid! \n";
87 log <<
" * JetLepComb:";
89 for(
unsigned int iJet = 0; iJet < jets.size(); iJet++) {
90 log <<
" " << jets[iJet] <<
" ";
96 <<
" * Sum(DeltaPt): " << this->
genMatchSumPt(cmb) <<
" \n";
break;
98 <<
" * isWrongCharge: " << this->
isWrongCharge() <<
" \n";
break;
102 if(verbosity%10 >= 2) {
103 log <<
" * Candidates (pt; eta; phi; mass):\n";
104 if(verbosity%10 >= 3)
108 if(verbosity%10 >= 3) {
115 if(verbosity%10 >= 3) {
125 log <<
"+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++";
HypoClassKey
supported classes of event hypotheses
const reco::Candidate * bBar(const std::string &key, const unsigned &cmb=0) const
get anti-b of the given hypothesis
const edm::RefProd< TtGenEvent > & genEvent() const
get TtGenEvent
const math::XYZTLorentzVector * topPair() const
get combined 4-vector of top and topBar from the TtGenEvent
unsigned int numberOfAvailableHypos(const std::string &key) const
return number of available hypotheses within a given hypothesis class
const reco::Candidate * top(const std::string &key, const unsigned &cmb=0) const
get top of the given hypothesis
unsigned int numberOfAvailableHypoClasses() const
return number of available hypothesis classes
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
const reco::Candidate * lepton(const std::string &key, const unsigned &cmb=0) const
get lepton of the given hypothesis
U second(std::pair< T, U > const &p)
double genMatchSumDR(const unsigned &cmb=0) const
return the sum dr of the generator match if available; -1 else
void print(const int verbosity=1) const
const reco::Candidate * neutrino(const std::string &key, const unsigned &cmb=0) const
get neutrino of the given hypothesis
bool isWrongCharge() const
return if the kinematic solution of hypothesis 'cmb' is right or wrong charge if available; -1 else ...
const reco::Candidate * neutrinoBar(const std::string &key, const unsigned &cmb=0) const
get anti-neutrino of the given hypothesis
const reco::Candidate * b(const std::string &key, const unsigned &cmb=0) const
get b of the given hypothesis
const reco::Candidate * topBar(const std::string &key, const unsigned &cmb=0) const
get anti-top of the given hypothesis
double solWeight(const unsigned &cmb=0) const
return the weight of the kinematic solution of hypothesis 'cmb' if available; -1 else ...
const reco::Candidate * wPlus(const std::string &key, const unsigned &cmb=0) const
get Wplus of the given hypothesis
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...
double genMatchSumPt(const unsigned &cmb=0) const
return the sum pt of the generator match if available; -1 else
const reco::Candidate * wMinus(const std::string &key, const unsigned &cmb=0) const
get Wminus of the given hypothesis
std::map< HypoClassKey, std::vector< HypoCombPair > > evtHyp_
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
const reco::Candidate * leptonBar(const std::string &key, const unsigned &cmb=0) const
get anti-lepton of the given hypothesis