10 if (verbosity % 10 <= 0)
15 log <<
"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ \n";
19 log <<
" TtGenEvent not available! \n";
21 log <<
" TtGenEvent says: ";
24 else if (this->
genEvent()->isFullHadronic())
25 log <<
"Fully Hadronic TtBar";
26 else if (this->
genEvent()->isSemiLeptonic())
27 log <<
"Semi-leptonic TtBar";
28 else if (this->
genEvent()->isFullLeptonic())
29 log <<
"Fully Leptonic TtBar";
36 log <<
" - JetCombi : ";
37 for (
unsigned idx = 0; idx < 6; idx++) {
62 typedef std::map<HypoClassKey, std::vector<HypoCombPair> >::const_iterator EventHypo;
63 for (EventHypo hyp =
evtHyp_.begin(); hyp !=
evtHyp_.end(); ++hyp) {
66 log <<
"---------------------------------------------------------------------------- \n";
69 log <<
" Geom not (yet) applicable to TtFullHadronicEvent --> skipping";
72 log <<
" WMassMaxSumPt not (yet) applicable to TtFullHadronicEvent --> skipping";
75 log <<
" MaxSumPtWMass not (yet) applicable to TtFullHadronicEvent --> skipping";
81 log <<
" MVADisc not (yet) applicable to TtFullHadronicEvent --> skipping";
87 log <<
" KinSolution not (yet) applicable to TtFullHadronicEvent --> skipping";
90 log <<
" WMassDeltaTopMass not (yet) applicable to TtFullHadronicEvent --> skipping";
93 log <<
" HitFit not (yet) applicable to TtFullHadronicEvent --> skipping";
96 log <<
" Unknown TtEvent::HypoClassKey provided --> skipping";
99 log <<
"-Hypothesis: \n";
102 log <<
" * Number of available jet combinations: " << nOfHyp <<
" \n";
104 log <<
" The following was found to be the best one: \n";
109 for (
unsigned cmb = 0; cmb < nOfHyp; ++cmb) {
112 log <<
" * Not valid! \n";
116 log <<
" * JetCombi :";
118 for (
unsigned int iJet = 0; iJet < jets.size(); iJet++) {
119 log <<
" " << jets[iJet] <<
" ";
125 log <<
" * Sum(DeltaR) : " << this->
genMatchSumDR(cmb) <<
" \n"
129 log <<
" * Chi^2 : " << this->
fitChi2(cmb) <<
" \n"
130 <<
" * Prob(Chi^2) : " << this->
fitProb(cmb) <<
" \n";
136 if (verbosity % 10 >= 2) {
137 log <<
" * Candidates (pt; eta; phi; mass) :\n";
138 if (verbosity % 10 >= 3)
142 if (verbosity % 10 >= 3) {
149 if (verbosity % 10 >= 3) {
158 log <<
"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++";
HypoClassKey
supported classes of event hypotheses
static std::vector< std::string > checklist log
const reco::GenParticle * lightQBar() const
get light Q bar of the TtGenEvent
const edm::RefProd< TtGenEvent > & genEvent() const
get TtGenEvent
const math::XYZTLorentzVector * topPair() const
get combined 4-vector of top and topBar from the TtGenEvent
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
const reco::GenParticle * lightQ() const
get light Q of the TtGenEvent
unsigned int numberOfAvailableHypoClasses() const
return number of available hypothesis classes
const reco::GenParticle * wPlus() const
get Wplus of the TtGenEvent
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
const reco::GenParticle * bBar() const
get anti-b of the TtGenEvent
const reco::GenParticle * top() const
get top of the TtGenEvent
double fitChi2(const unsigned &cmb=0) const
return the chi2 of the kinematic fit of hypothesis 'cmb' if available; -1 else
double genMatchSumDR(const unsigned &cmb=0) const
return the sum dr of the generator match if available; -1 else
const reco::GenParticle * b() const
get b of the TtGenEvent
void print(const int verbosity=1) const
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!)
double fitProb(const unsigned &cmb=0) const
return the fit probability of hypothesis 'cmb' if available; -1 else
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
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