CMS 3D CMS Logo

Public Member Functions | Private Attributes

TtHadLRJetCombObservables Class Reference

Steering class for the overall hadronic top likelihood. More...

#include <TtHadLRJetCombObservables.h>

List of all members.

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.

{
}
TtHadLRJetCombObservables::~TtHadLRJetCombObservables ( )

Definition at line 10 of file TtHadLRJetCombObservables.cc.

{
}

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

{
  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);
}

Member Data Documentation

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

Definition at line 42 of file TtHadLRJetCombObservables.h.

Referenced by operator()().