![Logo](../../ATLAS-Logo-Square-Blue-RGB.png) |
ATLAS Offline Software
|
Go to the documentation of this file.
41 }
else if (
units ==
"GeV") {
44 cout <<
" ERROR in in TtresdRmin :: Unit setting '" <<
units <<
"' doest not match pattern of GeV or MeV" << endl;
51 void TtresdRmin::Init(
double highJetMass,
double minJetPt,
double dRCutOffset,
double dRCutMassFactor) {
72 cout <<
" ERROR in TtresdRmin :: Tool not initialized! Initialize tool before usage!!!" << endl;
94 for (
int ijet = 0; ijet < (
int)
jets.size(); ijet++) {
96 if (
jets.at(ijet)->Pt() <= minJetPt)
continue;
99 if (
jets.at(ijet)->M() <= highM)
continue;
102 highM =
jets.at(ijet)->M();
105 if (highMJetIdx >= 0) {
120 double mtt_dRmin = 0.0;
123 TLorentzVector dRsumJet(0, 0, 0, 0);
124 for (
unsigned int ijet = 0; ijet <
m_jet_indices.size(); ijet++) {
137 TLorentzVector tt_dRmin(0, 0, 0, 0);
140 TLorentzVector dRsumJet(0, 0, 0, 0);
141 for (
unsigned int ijet = 0; ijet < (
unsigned int)
m_jet_indices.size(); ijet++) {
155 double dR_had = 999.9;
156 int closest_jetIdx_had = -1;
159 for (
int ijet = 0; ijet < (
int)
m_jets.size(); ijet++) {
163 closest_jetIdx_had = ijet;
170 double dR_lep = 999.9;
171 int closest_jetIdx_lep = -1;
174 for (
int ijet = 0; ijet < (
int)
m_jets.size(); ijet++) {
176 if (ijet == closest_jetIdx_had)
continue;
179 closest_jetIdx_lep = ijet;
187 if (closest_jetIdx_had >= 0) {
190 if (
m_verbose) cout <<
" WARNING in TtresdRmin :: Can not find jet close to high mass jet" << endl;
193 if (closest_jetIdx_lep >= 0) {
196 if (
m_verbose) cout <<
" WARNING in TtresdRmin :: Can not find jet close to leptonic W-boson" << endl;
207 vector<bool> jetflags(
m_jets.size(),
true);
210 bool repeat_dRmin = ((
int)
m_jets.size() > 3);
213 while (repeat_dRmin) {
214 repeat_dRmin =
false;
223 for (
int ijet = 0; ijet < (
int)
m_jets.size(); ijet++) {
224 if (!jetflags.at(ijet))
continue;
227 if (nijet > 3)
break;
230 double dR_min = 999.9;
239 for (
int jjet = 0; jjet < (
int)
m_jets.size(); jjet++) {
240 if (!jetflags.at(jjet))
continue;
243 if (njjet > 3)
break;
246 if (jjet == ijet)
continue;
248 double dR_jet =
m_jets.at(ijet)->DeltaR(*(
m_jets.at(jjet)));
249 if (dR_jet < dR_min) {
254 if (dR_min > dR_max) {
257 if (dR_min > dR_cut) {
264 if (index_max >= 0) {
265 jetflags.at(index_max) =
false;
266 if (
count(jetflags.begin(), jetflags.end(),
true) > 3) repeat_dRmin =
true;
272 for (
int ijet = 0; ijet < (
int)
m_jets.size(); ijet++) {
273 if (!jetflags.at(ijet))
continue;
276 if (nijet > 3)
break;
TLorentzVector m_lepton
Input lepton object.
vector< TLorentzVector * > m_jets
Input vector of jet objects.
bool m_init
Flag of initialization status of tool.
double GetMttdRmin()
Get calculated invariant ttbar mass for dRmin method.
int m_highMassJetIndex
Index of highest mass jet for current event.
bool FindJetIndices_HM()
Find the jet indices used for mtt reconstruction for events containing a high mass jet.
bool m_verbose
Flag for verbosity level.
TLorentzVector GetTlvdRmin()
Get the TLorentzVector for the ttbar system.
double m_dRCutOffset
Offset of dRmin specific cut on jet_dR.
TLorentzVector m_neutrino
Input neutrino object.
double m_Units
Unit factor used, GeV = 1, MeV = 1000.
double m_highestJetMass
Highest jet mass found for current event.
void Init(double highJetMass=60.0, double minJetPt=25.0, double dRCutOffset=2.5, double dRCutMassFactor=0.015)
Initialize the tool, giving specific parameters needed for dRmin cut Paramters are given in GeV scale...
double m_minJetPt
Minimum jet pT used for highM jet search.
double m_highM
Jet mass threshold to identify it as a "high mass jet".
bool SetupEvent(vector< TLorentzVector * > &jets, TLorentzVector &lepton, TLorentzVector &neutrino)
Set the objects needed to calculate the invariant ttbar mass.
bool FindJetIndices_LM()
Find the jet indices used for mtt reconstruction for events NOT containing a high mass jet.
TLorentzVector m_Wleptonic
leptonic W object reconstructed from lepton and neutrino
vector< int > m_jet_indices
Indices of jets used for reconstruction of invariant ttbar mass.
double m_dRCutMassFactor
Jet mass factor of dRmin specific cut on jet_dR.
TtresdRmin(TString units="GeV", bool verbose=false)
Class constructor.