CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Attributes
TtHadLRJetCombObservables Class Reference

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
 

Detailed Description

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

Author
Jan Heyninck
Version
Id:
TtHadLRJetCombObservables.h,v 1.2 2008/02/17 11:27:11 rwolf Exp

Definition at line 32 of file TtHadLRJetCombObservables.h.

Constructor & Destructor Documentation

TtHadLRJetCombObservables::TtHadLRJetCombObservables ( )

Definition at line 6 of file TtHadLRJetCombObservables.cc.

7 {
8 }
TtHadLRJetCombObservables::~TtHadLRJetCombObservables ( )

Definition at line 10 of file TtHadLRJetCombObservables.cc.

11 {
12 }

Member Function Documentation

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

15 {
16  jetCombVarVal.clear();
17 
18  //observable 1 : pt(had top)
19  //Calculate the average pt for all possible combinations of light jets with the two b-jets
20  double AverageTop =((sol.getHadb().p4()+sol.getHadq().p4()+sol.getHadp().p4()).pt()+
21  (sol.getHadbbar().p4()+sol.getHadq().p4()+sol.getHadp().p4()).pt()+
22  (sol.getHadb().p4()+sol.getHadbbar().p4()+sol.getHadp().p4()).pt()+
23  (sol.getHadb().p4()+sol.getHadbbar().p4()+sol.getHadq().p4()).pt()+
24  (sol.getHadb().p4()+sol.getHadk().p4()+sol.getHadj().p4()).pt()+
25  (sol.getHadbbar().p4()+sol.getHadk().p4()+sol.getHadj().p4()).pt()+
26  (sol.getHadb().p4()+sol.getHadbbar().p4()+sol.getHadj().p4()).pt()+
27  (sol.getHadb().p4()+sol.getHadbbar().p4()+sol.getHadk().p4()).pt()+
28  (sol.getHadb().p4()+sol.getHadq().p4()+sol.getHadj().p4()).pt()+
29  (sol.getHadb().p4()+sol.getHadq().p4()+sol.getHadk().p4()).pt()+
30  (sol.getHadbbar().p4()+sol.getHadq().p4()+sol.getHadj().p4()).pt()+
31  (sol.getHadbbar().p4()+sol.getHadq().p4()+sol.getHadk().p4()).pt())/12.;
32 
33  double Obs1 = ((sol.getHadb().p4()+sol.getHadq().p4()+sol.getHadp().p4()+sol.getHadbbar().p4()+sol.getHadk().p4()+sol.getHadj().p4()).pt())/AverageTop;
34  jetCombVarVal.push_back(std::pair<unsigned int,double>(1,Obs1));
35 
36  //observable 2 : (pt_b1 + pt_b2)/(sum jetpt)
37  double obs2 = (sol.getHadb().pt()+sol.getHadbbar().pt())/(sol.getHadp().pt()+sol.getHadq().pt()+sol.getHadj().pt()+sol.getHadk().pt());
38  jetCombVarVal.push_back(std::pair<unsigned int,double>(2,obs2));
39 
40  //observable 3 and 4: delta R between had b and had W and delta R between had bbar and had W
41  double Obs3 = ROOT::Math::VectorUtil::DeltaR( sol.getHadb().p4(),(sol.getHadq().p4()+sol.getHadp().p4()) );
42  jetCombVarVal.push_back(std::pair<unsigned int,double>(3,Obs3));
43 
44  double Obs4 = ROOT::Math::VectorUtil::DeltaR( sol.getHadbbar().p4(),(sol.getHadk().p4()+sol.getHadj().p4()) );
45  jetCombVarVal.push_back(std::pair<unsigned int,double>(4,Obs4));
46 
47  //observalbe 5 and 6: delta R between light quarks pq and jk
48  double Obs5 = ROOT::Math::VectorUtil::DeltaR( sol.getHadq().p4(),sol.getHadp().p4() );
49  jetCombVarVal.push_back(std::pair<unsigned int,double>(5,Obs5));
50 
51  double Obs6 = ROOT::Math::VectorUtil::DeltaR( sol.getHadk().p4(),sol.getHadj().p4() );
52  jetCombVarVal.push_back(std::pair<unsigned int,double>(6,Obs6));
53 
54  //observable 7: b-tagging information
55  double Obs7 = 0;
56  if ( fabs(sol.getHadb().bDiscriminator("trackCountingJetTags") +10) < 0.0001 || fabs(sol.getHadbbar().bDiscriminator("trackCountingJetTags") +10)< 0.0001 ){
57  Obs7 = -10.;
58  } else {
59  Obs7 = (sol.getHadb().bDiscriminator("trackCountingJetTags")+sol.getHadbbar().bDiscriminator("trackCountingJetTags"));
60  }
61  jetCombVarVal.push_back(std::pair<unsigned int,double>(7,Obs7));
62 
63  //observable 8 : chi2 value of kinematical fit with W-mass constraint
64  double Obs8 =0;
65  if(sol.getProbChi2() <0){
66  Obs8 = -0;
67  } else {
68  Obs8 = log10(sol.getProbChi2()+.00001);
69  }
70  jetCombVarVal.push_back(std::pair<unsigned int,double>(8,Obs8));
71 
73 }
void setLRJetCombObservables(std::vector< std::pair< unsigned int, double > > varval)
pat::Jet getHadbbar() const
pat::Jet getHadb() const
pat::Jet getHadq() const
pat::Jet getHadj() const
std::vector< std::pair< unsigned int, double > > jetCombVarVal
double getProbChi2() const
float bDiscriminator(const std::string &theLabel) const
-— methods for accessing b-tagging info -—
Definition: Jet.cc:314
pat::Jet getHadp() const
pat::Jet getHadk() const
virtual double pt() const
transverse momentum
virtual const LorentzVector & p4() const
four-momentum Lorentz vector

Member Data Documentation

std::vector<std::pair<unsigned int,double> > TtHadLRJetCombObservables::jetCombVarVal
private

Definition at line 42 of file TtHadLRJetCombObservables.h.

Referenced by operator()().