Steering class for the overall hadronic top likelihood. More...
#include <TtHadLRJetCombObservables.h>
Public Member Functions | |
void | operator() (TtHadEvtSolution &) |
TtHadLRJetCombObservables () | |
~TtHadLRJetCombObservables () | |
Private Attributes | |
std::vector< std::pair < unsigned int, double > > | jetCombVarVal |
Steering class for the overall hadronic top likelihood.
on TtSemiLRJetCombObservables.h In this TtHadLRJetCombObservables class a list of observables is calculated that might be used in the evaluation of the combined Likelihood ratio to distinguish between correct and wrong jet combinations obs1 : pt(hadronic tops) obs2 : (pt_b1 + pt_b2)/(sum jetpt) obs3 : delta R between had b and had W_plus obs4 : delta R between had bbar and had W_minus obs5 : delta R between light quark-jets from W_plus obs6 : delta R between light quark-jets from W_minus obs7 : b-tagging information obs8 : chi2 value of kinematical fit with W-mass constraint
Definition at line 32 of file TtHadLRJetCombObservables.h.
TtHadLRJetCombObservables::TtHadLRJetCombObservables | ( | ) |
Definition at line 6 of file TtHadLRJetCombObservables.cc.
{ }
TtHadLRJetCombObservables::~TtHadLRJetCombObservables | ( | ) |
Definition at line 10 of file TtHadLRJetCombObservables.cc.
{ }
void TtHadLRJetCombObservables::operator() | ( | TtHadEvtSolution & | sol | ) |
Definition at line 14 of file TtHadLRJetCombObservables.cc.
References pat::Jet::bDiscriminator(), TtHadEvtSolution::getHadb(), TtHadEvtSolution::getHadbbar(), TtHadEvtSolution::getHadj(), TtHadEvtSolution::getHadk(), TtHadEvtSolution::getHadp(), TtHadEvtSolution::getHadq(), TtHadEvtSolution::getProbChi2(), jetCombVarVal, reco::LeafCandidate::p4(), reco::LeafCandidate::pt(), and TtHadEvtSolution::setLRJetCombObservables().
{ jetCombVarVal.clear(); //observable 1 : pt(had top) //Calculate the average pt for all possible combinations of light jets with the two b-jets double AverageTop =((sol.getHadb().p4()+sol.getHadq().p4()+sol.getHadp().p4()).pt()+ (sol.getHadbbar().p4()+sol.getHadq().p4()+sol.getHadp().p4()).pt()+ (sol.getHadb().p4()+sol.getHadbbar().p4()+sol.getHadp().p4()).pt()+ (sol.getHadb().p4()+sol.getHadbbar().p4()+sol.getHadq().p4()).pt()+ (sol.getHadb().p4()+sol.getHadk().p4()+sol.getHadj().p4()).pt()+ (sol.getHadbbar().p4()+sol.getHadk().p4()+sol.getHadj().p4()).pt()+ (sol.getHadb().p4()+sol.getHadbbar().p4()+sol.getHadj().p4()).pt()+ (sol.getHadb().p4()+sol.getHadbbar().p4()+sol.getHadk().p4()).pt()+ (sol.getHadb().p4()+sol.getHadq().p4()+sol.getHadj().p4()).pt()+ (sol.getHadb().p4()+sol.getHadq().p4()+sol.getHadk().p4()).pt()+ (sol.getHadbbar().p4()+sol.getHadq().p4()+sol.getHadj().p4()).pt()+ (sol.getHadbbar().p4()+sol.getHadq().p4()+sol.getHadk().p4()).pt())/12.; double Obs1 = ((sol.getHadb().p4()+sol.getHadq().p4()+sol.getHadp().p4()+sol.getHadbbar().p4()+sol.getHadk().p4()+sol.getHadj().p4()).pt())/AverageTop; jetCombVarVal.push_back(std::pair<unsigned int,double>(1,Obs1)); //observable 2 : (pt_b1 + pt_b2)/(sum jetpt) double obs2 = (sol.getHadb().pt()+sol.getHadbbar().pt())/(sol.getHadp().pt()+sol.getHadq().pt()+sol.getHadj().pt()+sol.getHadk().pt()); jetCombVarVal.push_back(std::pair<unsigned int,double>(2,obs2)); //observable 3 and 4: delta R between had b and had W and delta R between had bbar and had W double Obs3 = ROOT::Math::VectorUtil::DeltaR( sol.getHadb().p4(),(sol.getHadq().p4()+sol.getHadp().p4()) ); jetCombVarVal.push_back(std::pair<unsigned int,double>(3,Obs3)); double Obs4 = ROOT::Math::VectorUtil::DeltaR( sol.getHadbbar().p4(),(sol.getHadk().p4()+sol.getHadj().p4()) ); jetCombVarVal.push_back(std::pair<unsigned int,double>(4,Obs4)); //observalbe 5 and 6: delta R between light quarks pq and jk double Obs5 = ROOT::Math::VectorUtil::DeltaR( sol.getHadq().p4(),sol.getHadp().p4() ); jetCombVarVal.push_back(std::pair<unsigned int,double>(5,Obs5)); double Obs6 = ROOT::Math::VectorUtil::DeltaR( sol.getHadk().p4(),sol.getHadj().p4() ); jetCombVarVal.push_back(std::pair<unsigned int,double>(6,Obs6)); //observable 7: b-tagging information double Obs7 = 0; if ( fabs(sol.getHadb().bDiscriminator("trackCountingJetTags") +10) < 0.0001 || fabs(sol.getHadbbar().bDiscriminator("trackCountingJetTags") +10)< 0.0001 ){ Obs7 = -10.; } else { Obs7 = (sol.getHadb().bDiscriminator("trackCountingJetTags")+sol.getHadbbar().bDiscriminator("trackCountingJetTags")); } jetCombVarVal.push_back(std::pair<unsigned int,double>(7,Obs7)); //observable 8 : chi2 value of kinematical fit with W-mass constraint double Obs8 =0; if(sol.getProbChi2() <0){ Obs8 = -0; } else { Obs8 = log10(sol.getProbChi2()+.00001); } jetCombVarVal.push_back(std::pair<unsigned int,double>(8,Obs8)); sol.setLRJetCombObservables(jetCombVarVal); }
std::vector<std::pair<unsigned int,double> > TtHadLRJetCombObservables::jetCombVarVal [private] |
Definition at line 42 of file TtHadLRJetCombObservables.h.
Referenced by operator()().