Go to the documentation of this file.00001
00002
00003 #include "TopQuarkAnalysis/TopJetCombination/interface/TtHadLRJetCombObservables.h"
00004
00005
00006 TtHadLRJetCombObservables::TtHadLRJetCombObservables()
00007 {
00008 }
00009
00010 TtHadLRJetCombObservables::~TtHadLRJetCombObservables()
00011 {
00012 }
00013
00014 void TtHadLRJetCombObservables::operator()(TtHadEvtSolution& sol)
00015 {
00016 jetCombVarVal.clear();
00017
00018
00019
00020 double AverageTop =((sol.getHadb().p4()+sol.getHadq().p4()+sol.getHadp().p4()).pt()+
00021 (sol.getHadbbar().p4()+sol.getHadq().p4()+sol.getHadp().p4()).pt()+
00022 (sol.getHadb().p4()+sol.getHadbbar().p4()+sol.getHadp().p4()).pt()+
00023 (sol.getHadb().p4()+sol.getHadbbar().p4()+sol.getHadq().p4()).pt()+
00024 (sol.getHadb().p4()+sol.getHadk().p4()+sol.getHadj().p4()).pt()+
00025 (sol.getHadbbar().p4()+sol.getHadk().p4()+sol.getHadj().p4()).pt()+
00026 (sol.getHadb().p4()+sol.getHadbbar().p4()+sol.getHadj().p4()).pt()+
00027 (sol.getHadb().p4()+sol.getHadbbar().p4()+sol.getHadk().p4()).pt()+
00028 (sol.getHadb().p4()+sol.getHadq().p4()+sol.getHadj().p4()).pt()+
00029 (sol.getHadb().p4()+sol.getHadq().p4()+sol.getHadk().p4()).pt()+
00030 (sol.getHadbbar().p4()+sol.getHadq().p4()+sol.getHadj().p4()).pt()+
00031 (sol.getHadbbar().p4()+sol.getHadq().p4()+sol.getHadk().p4()).pt())/12.;
00032
00033 double Obs1 = ((sol.getHadb().p4()+sol.getHadq().p4()+sol.getHadp().p4()+sol.getHadbbar().p4()+sol.getHadk().p4()+sol.getHadj().p4()).pt())/AverageTop;
00034 jetCombVarVal.push_back(std::pair<unsigned int,double>(1,Obs1));
00035
00036
00037 double obs2 = (sol.getHadb().pt()+sol.getHadbbar().pt())/(sol.getHadp().pt()+sol.getHadq().pt()+sol.getHadj().pt()+sol.getHadk().pt());
00038 jetCombVarVal.push_back(std::pair<unsigned int,double>(2,obs2));
00039
00040
00041 double Obs3 = ROOT::Math::VectorUtil::DeltaR( sol.getHadb().p4(),(sol.getHadq().p4()+sol.getHadp().p4()) );
00042 jetCombVarVal.push_back(std::pair<unsigned int,double>(3,Obs3));
00043
00044 double Obs4 = ROOT::Math::VectorUtil::DeltaR( sol.getHadbbar().p4(),(sol.getHadk().p4()+sol.getHadj().p4()) );
00045 jetCombVarVal.push_back(std::pair<unsigned int,double>(4,Obs4));
00046
00047
00048 double Obs5 = ROOT::Math::VectorUtil::DeltaR( sol.getHadq().p4(),sol.getHadp().p4() );
00049 jetCombVarVal.push_back(std::pair<unsigned int,double>(5,Obs5));
00050
00051 double Obs6 = ROOT::Math::VectorUtil::DeltaR( sol.getHadk().p4(),sol.getHadj().p4() );
00052 jetCombVarVal.push_back(std::pair<unsigned int,double>(6,Obs6));
00053
00054
00055 double Obs7 = 0;
00056 if ( fabs(sol.getHadb().bDiscriminator("trackCountingJetTags") +10) < 0.0001 || fabs(sol.getHadbbar().bDiscriminator("trackCountingJetTags") +10)< 0.0001 ){
00057 Obs7 = -10.;
00058 } else {
00059 Obs7 = (sol.getHadb().bDiscriminator("trackCountingJetTags")+sol.getHadbbar().bDiscriminator("trackCountingJetTags"));
00060 }
00061 jetCombVarVal.push_back(std::pair<unsigned int,double>(7,Obs7));
00062
00063
00064 double Obs8 =0;
00065 if(sol.getProbChi2() <0){
00066 Obs8 = -0;
00067 } else {
00068 Obs8 = log10(sol.getProbChi2()+.00001);
00069 }
00070 jetCombVarVal.push_back(std::pair<unsigned int,double>(8,Obs8));
00071
00072 sol.setLRJetCombObservables(jetCombVarVal);
00073 }