CMS 3D CMS Logo

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.1 2007/10/07 15:33:37 mfhansen Exp

Definition at line 30 of file TtHadLRJetCombObservables.h.

Constructor & Destructor Documentation

◆ TtHadLRJetCombObservables()

TtHadLRJetCombObservables::TtHadLRJetCombObservables ( )

Definition at line 5 of file TtHadLRJetCombObservables.cc.

5 {}

◆ ~TtHadLRJetCombObservables()

TtHadLRJetCombObservables::~TtHadLRJetCombObservables ( )

Definition at line 7 of file TtHadLRJetCombObservables.cc.

7 {}

Member Function Documentation

◆ operator()()

void TtHadLRJetCombObservables::operator() ( TtHadEvtSolution sol)

Definition at line 9 of file TtHadLRJetCombObservables.cc.

References electronAnalyzer_cfi::DeltaR, jetCombVarVal, DiDispStaMuonMonitor_cfi::pt, and mkfit::Const::sol.

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

Member Data Documentation

◆ jetCombVarVal

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

Definition at line 38 of file TtHadLRJetCombObservables.h.

Referenced by operator()().