#include <TopHLTDQMHelper.h>
Public Member Functions | |
CalculateHLT (int maxNJets, double wMass) | |
default constructor | |
double | masslb (reco::RecoCandidate *mu, const reco::MET &met, const reco::Jet &b) |
calculate mlb estimate | |
double | massTopQuark (const std::vector< reco::Jet > &jets) |
calculate top quark mass estimate | |
double | massWBoson (const std::vector< reco::Jet > &jets) |
calculate W boson mass estimate | |
double | tmassTopQuark (reco::RecoCandidate *mu, const reco::MET &met, const reco::Jet &b) |
calculate top quark transverse mass estimate | |
double | tmassWBoson (reco::RecoCandidate *mu, const reco::MET &met, const reco::Jet &b) |
~CalculateHLT () | |
default destructor | |
Private Member Functions | |
void | operator() (const std::vector< reco::Jet > &jets) |
void | operator() (const reco::Jet &bJet, reco::RecoCandidate *lepton, const reco::MET &met) |
Private Attributes | |
bool | failed_ |
indicate failed associations | |
double | massTopQuark_ |
cache of top quark mass estimate | |
double | massWBoson_ |
cache of w boson mass estimate | |
int | maxNJets_ |
max. number of jets to be considered | |
double | mlb_ |
cache of mlb estimate | |
double | tmassTopQuark_ |
cache of top quark transverse mass estimate | |
double | tmassWBoson_ |
cache of W boson transverse mass estimate | |
double | wMass_ |
paramater of the w boson mass |
Definition at line 67 of file TopHLTDQMHelper.h.
CalculateHLT::CalculateHLT | ( | int | maxNJets, |
double | wMass | ||
) |
default constructor
Definition at line 7 of file TopHLTDQMHelper.cc.
: failed_(false), maxNJets_(maxNJets), wMass_(wMass), massWBoson_(-1.), massTopQuark_(-1.),tmassWBoson_(-1),tmassTopQuark_(-1),mlb_(-1) { }
CalculateHLT::~CalculateHLT | ( | ) | [inline] |
double CalculateHLT::masslb | ( | reco::RecoCandidate * | mu, |
const reco::MET & | met, | ||
const reco::Jet & | b | ||
) |
calculate mlb estimate
Definition at line 66 of file TopHLTDQMHelper.cc.
References failed_, mlb_, and operator()().
Referenced by TopHLTSingleLepton::MonitorEnsemble::fill().
{ if(!failed_&& mlb_<0) operator()(b,mu,met); return mlb_; }
double CalculateHLT::massTopQuark | ( | const std::vector< reco::Jet > & | jets | ) |
calculate top quark mass estimate
Definition at line 21 of file TopHLTDQMHelper.cc.
References failed_, massTopQuark_, and operator()().
Referenced by TopHLTSingleLepton::MonitorEnsemble::fill().
{ if(!failed_&& massTopQuark_<0) operator()(jets); return massTopQuark_; }
double CalculateHLT::massWBoson | ( | const std::vector< reco::Jet > & | jets | ) |
calculate W boson mass estimate
Definition at line 14 of file TopHLTDQMHelper.cc.
References failed_, massWBoson_, and operator()().
Referenced by TopHLTSingleLepton::MonitorEnsemble::fill().
{ if(!failed_&& massWBoson_<0) operator()(jets); return massWBoson_; }
void CalculateHLT::operator() | ( | const reco::Jet & | bJet, |
reco::RecoCandidate * | lepton, | ||
const reco::MET & | met | ||
) | [private] |
Definition at line 79 of file TopHLTDQMHelper.cc.
References gather_cfg::cout, mlb_, reco::LeafCandidate::p4(), funct::pow(), reco::LeafCandidate::pt(), reco::LeafCandidate::px(), reco::LeafCandidate::py(), mathSSE::sqrt(), tmassTopQuark_, and tmassWBoson_.
{ double metT = sqrt(pow(met.px(),2) + pow(met.py(),2)); double lepT = sqrt(pow(lepton->px(),2) + pow(lepton->py(),2)); double bT = sqrt(pow(bJet.px(),2) + pow(bJet.py(),2)); reco::Particle::LorentzVector WT = lepton->p4() + met.p4(); cout<<"in calculate:\n\t"<<bJet.pt()<<"\t"<<lepton->pt()<<"\t"<<met.pt()<<endl; tmassWBoson_ = sqrt(pow(metT+lepT,2) - (WT.px()*WT.px()) - (WT.py()*WT.py())); reco::Particle::LorentzVector topT = WT + bJet.p4(); tmassTopQuark_ = sqrt(pow((metT+lepT+bT),2) - (topT.px()*topT.px()) - (topT.py()*topT.py())); reco::Particle::LorentzVector lb = bJet.p4() + lepton->p4(); mlb_ = lb.mass(); }
void CalculateHLT::operator() | ( | const std::vector< reco::Jet > & | jets | ) | [private] |
do the calculation; this is called only once per event by the first function call to return a mass estimate. The once calculated values are cached afterwards
Definition at line 94 of file TopHLTDQMHelper.cc.
References failed_, scaleCards::mass, massTopQuark_, massWBoson_, maxNJets_, and wMass_.
Referenced by masslb(), massTopQuark(), massWBoson(), tmassTopQuark(), and tmassWBoson().
{ if(maxNJets_<0) maxNJets_=jets.size(); failed_= jets.size()<(unsigned int) maxNJets_; if( failed_){ return; } // associate those jets with maximum pt of the vectorial // sum to the hadronic decay chain double maxPt=-1.; std::vector<int> maxPtIndices; maxPtIndices.push_back(-1); maxPtIndices.push_back(-1); maxPtIndices.push_back(-1); for(int idx=0; idx<maxNJets_; ++idx){ for(int jdx=0; jdx<maxNJets_; ++jdx){ if(jdx<=idx) continue; for(int kdx=0; kdx<maxNJets_; ++kdx){ if(kdx==idx || kdx==jdx) continue; reco::Particle::LorentzVector sum = jets[idx].p4()+jets[jdx].p4()+jets[kdx].p4(); if( maxPt<0. || maxPt<sum.pt() ){ maxPt=sum.pt(); maxPtIndices.clear(); maxPtIndices.push_back(idx); maxPtIndices.push_back(jdx); maxPtIndices.push_back(kdx); } } } } massTopQuark_= (jets[maxPtIndices[0]].p4()+ jets[maxPtIndices[1]].p4()+ jets[maxPtIndices[2]].p4()).mass(); // associate those jets that get closest to the W mass // with their invariant mass to the W boson double wDist =-1.; std::vector<int> wMassIndices; wMassIndices.push_back(-1); wMassIndices.push_back(-1); for(unsigned idx=0; idx<maxPtIndices.size(); ++idx){ for(unsigned jdx=0; jdx<maxPtIndices.size(); ++jdx){ if( jdx==idx || maxPtIndices[idx]>maxPtIndices[jdx] ) continue; reco::Particle::LorentzVector sum = jets[maxPtIndices[idx]].p4()+jets[maxPtIndices[jdx]].p4(); if( wDist<0. || wDist>fabs(sum.mass()-wMass_) ){ wDist=fabs(sum.mass()-wMass_); wMassIndices.clear(); wMassIndices.push_back(maxPtIndices[idx]); wMassIndices.push_back(maxPtIndices[jdx]); } } } massWBoson_= (jets[wMassIndices[0]].p4()+ jets[wMassIndices[1]].p4()).mass(); }
double CalculateHLT::tmassTopQuark | ( | reco::RecoCandidate * | mu, |
const reco::MET & | met, | ||
const reco::Jet & | b | ||
) |
calculate top quark transverse mass estimate
Definition at line 73 of file TopHLTDQMHelper.cc.
References failed_, operator()(), and tmassTopQuark_.
Referenced by TopHLTSingleLepton::MonitorEnsemble::fill().
{ if(!failed_&& tmassTopQuark_<0) operator()(b,lepton,met); return tmassTopQuark_; }
double CalculateHLT::tmassWBoson | ( | reco::RecoCandidate * | mu, |
const reco::MET & | met, | ||
const reco::Jet & | b | ||
) |
calculate W boson transverse mass estimate
Definition at line 59 of file TopHLTDQMHelper.cc.
References failed_, operator()(), and tmassWBoson_.
Referenced by TopHLTSingleLepton::MonitorEnsemble::fill().
{ if(!failed_&& tmassWBoson_<0) operator()(b,mu,met); return tmassWBoson_; }
bool CalculateHLT::failed_ [private] |
indicate failed associations
Definition at line 100 of file TopHLTDQMHelper.h.
Referenced by masslb(), massTopQuark(), massWBoson(), operator()(), tmassTopQuark(), and tmassWBoson().
double CalculateHLT::massTopQuark_ [private] |
cache of top quark mass estimate
Definition at line 108 of file TopHLTDQMHelper.h.
Referenced by massTopQuark(), and operator()().
double CalculateHLT::massWBoson_ [private] |
cache of w boson mass estimate
Definition at line 106 of file TopHLTDQMHelper.h.
Referenced by massWBoson(), and operator()().
int CalculateHLT::maxNJets_ [private] |
max. number of jets to be considered
Definition at line 102 of file TopHLTDQMHelper.h.
Referenced by operator()().
double CalculateHLT::mlb_ [private] |
cache of mlb estimate
Definition at line 114 of file TopHLTDQMHelper.h.
Referenced by masslb(), and operator()().
double CalculateHLT::tmassTopQuark_ [private] |
cache of top quark transverse mass estimate
Definition at line 112 of file TopHLTDQMHelper.h.
Referenced by operator()(), and tmassTopQuark().
double CalculateHLT::tmassWBoson_ [private] |
cache of W boson transverse mass estimate
Definition at line 110 of file TopHLTDQMHelper.h.
Referenced by operator()(), and tmassWBoson().
double CalculateHLT::wMass_ [private] |
paramater of the w boson mass
Definition at line 104 of file TopHLTDQMHelper.h.
Referenced by operator()().