ATLAS Offline Software
PhysicsAnalysis
TauID
DiTauMassTools
Root
MissingMassInput.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
// Class handling the input of the MissingMassCalculator
6
// author Michael Huebner <michael.huebner@no.spam.cern.ch>
7
8
// Local include(s):
9
#include "
DiTauMassTools/MissingMassInput.h
"
10
11
using namespace
DiTauMassTools
;
12
13
// Default Constructor
14
MissingMassInput::MissingMassInput
(){
15
}
16
17
// Default Desctructor
18
MissingMassInput::~MissingMassInput
(){
19
}
20
21
//------- clearing input
22
void
MissingMassInput::ClearInput
(){
23
24
if
(
m_fUseVerbose
== 1){ Info(
"DiTauMassTools"
,
"MissingMassCalculator::ClearInput()"
); }
25
26
m_MetVec
.Set(0.,0.);
27
m_vistau1
.SetPtEtaPhiM(0.,0.,0.,0.);
28
m_vistau2
.SetPtEtaPhiM(0.,0.,0.,0.);
29
30
m_type_visTau1
= 0;
31
m_type_visTau2
= 0;
32
m_Nprong_tau1
= 0;
33
m_Nprong_tau2
= 0;
34
m_dataType
= 0;
35
m_Njet25
= 0;
36
37
m_METcovphi
= 0.;
38
m_METsigmaP
= 0.;
39
m_METsigmaL
= 0.;
40
m_SumEt
= 0.;
41
m_DelPhiTT
= 0.;
42
m_MHtSigma1
= 0.;
43
m_MHtSigma2
= 0.;
44
m_MHtGaussFr
= 0.;
45
m_HtOffset
= 0.;
46
47
m_jet4vecs
.clear();
48
49
m_LFVmode
= -1;
50
51
return
;
52
}
53
54
55
// Printout of final results
56
void
MissingMassInput::PrintInputInfo
() {
57
if
(
m_fUseVerbose
!=1)
return
;
58
59
Info(
"DiTauMassTools"
,
"%s"
, (
"met_x="
+
std::to_string
(
m_MetVec
.Px())+
" met_y="
+
std::to_string
(
m_MetVec
.Py())+
" MET="
+
std::to_string
(
m_MetVec
.Mod())+
" met_phi="
+
std::to_string
(
m_MetVec
.Phi())).c_str());
60
Info(
"DiTauMassTools"
,
"%s"
, (
"sumEt="
+
std::to_string
(
m_SumEt
)+
" METsigmaP="
+
std::to_string
(
m_METsigmaP
)+
" METsigmaL="
+
std::to_string
(
m_METsigmaL
)+
" METcovphi="
+
std::to_string
(
m_METcovphi
)).c_str());
61
//Info("DiTauMassTools", "%s", (" Njet25="+std::to_string(Njet25)+" allowUseHT="+std::to_string(prob->GetAllowUseHT())+" useHT="+std::to_string(prob->GetUseHT())).c_str());
62
63
Info(
"DiTauMassTools"
,
"%s"
, (
"MHtSigma1="
+
std::to_string
(
m_MHtSigma1
)+
" MHtSigma2="
+
std::to_string
(
m_MHtSigma2
)
64
+
" MHtGaussFr="
+
std::to_string
(
m_MHtGaussFr
)
65
+
" HtOffset="
+
std::to_string
(
m_HtOffset
)).c_str());
66
67
Info(
"DiTauMassTools"
,
"%s"
, (
"1st visible tau: type="
+
std::to_string
(
m_type_visTau1
)+
" Nprong="
+
std::to_string
(
m_Nprong_tau1
)+
" P="
+
std::to_string
(
m_vistau1
.P())+
" Pt="
+
std::to_string
(
m_vistau1
.Pt())
68
+
" Eta="
+
std::to_string
(
m_vistau1
.Eta())+
" Phi="
+
std::to_string
(
m_vistau1
.Phi())+
" M="
+
std::to_string
(
m_vistau1
.M())).c_str());
69
Info(
"DiTauMassTools"
,
"%s"
, (
"2nd visible tau: type="
+
std::to_string
(
m_type_visTau2
)+
" Nprong="
+
std::to_string
(
m_Nprong_tau2
)+
" P="
+
std::to_string
(
m_vistau2
.P())+
" Pt="
+
std::to_string
(
m_vistau2
.Pt())
70
+
" Eta="
+
std::to_string
(
m_vistau2
.Eta())+
" Phi="
+
std::to_string
(
m_vistau2
.Phi())+
" M="
+
std::to_string
(
m_vistau2
.M())).c_str());
71
72
if
(
m_jet4vecs
.size()>0)
73
{
74
for
(
unsigned
int
i
=0;
i
<
m_jet4vecs
.size();
i
++)
75
{
76
Info(
"DiTauMassTools"
,
"%s"
, (
"Printing jets: jet "
+
std::to_string
(
i
)+
" E="
+
std::to_string
(
m_jet4vecs
[
i
].
E
())+
" Pt="
77
+
std::to_string
(
m_jet4vecs
[
i
].
Pt
())+
" Phi="
+
std::to_string
(
m_jet4vecs
[
i
].
Phi
())+
" Eta="
+
std::to_string
(
m_jet4vecs
[
i
].
Eta
())).c_str());
78
}
79
}
80
return
;
81
}
82
83
84
85
// input is sumEt after electrons and taus have been removed
86
// data_code=0 for data and =1 for MC
87
void
MissingMassInput::SetMetScanParamsUE
(
double
sumEt,
double
phi_scan,
int
data_code) {
88
m_METcovphi
= phi_scan;
89
if
(sumEt>2.0*
m_beamEnergy
) sumEt = sumEt/1000.0;
// it's likely that sumEt was entered in MeV; this fix won't work only for a very small fraction of events
90
double
sigma
= 1.0;
91
double
sigmaSyst = 0.10;
// 10% systematics for now (be conservative)
92
double
METresScale = 0.7;
// using inclusive number for winter 2012
93
if
(data_code==1) METresScale=0.7;
// use the same for data & MC
94
METresScale = METresScale*(1.0+
m_METresSyst
*sigmaSyst);
95
// MET resolution can't be perfect in presence of other objects (i.e., electrons, jets, taus), so assume minSumEt = 5.0 for now
96
sigma
= sumEt>
pow
(3.0/METresScale,2) ? METresScale*sqrt(sumEt) : 3.0;
// assume that MET resolution can't be better than 3 GeV
97
m_METsigmaP
=
sigma
;
98
m_METsigmaL
=
sigma
;
99
m_SumEt
= sumEt;
100
m_dataType
= data_code;
// Sasha added on 09/26/11
101
return
;
102
}
103
104
// ---- input number of jets with Et>25 GeV
105
void
MissingMassInput::SetNjet25
(
int
val
) {
106
if
(
val
>-1)
m_Njet25
=
val
;
107
return
;
108
}
109
// ----- input SumEt
110
void
MissingMassInput::SetSumEt
(
double
sumEt) {
111
m_SumEt
= sumEt;
112
return
;
113
}
114
// ----- input vis Tau type
115
void
MissingMassInput::SetVisTauType
(
int
i
,
int
tautype) {
116
if
(
i
==0)
m_type_visTau1
= tautype;
117
if
(
i
==1)
m_type_visTau2
= tautype;
118
return
;
119
}
120
// ----- input vis Tau vectors
121
void
MissingMassInput::SetVisTauVec
(
int
i
,
const
TLorentzVector &
vec
) {
122
if
(
m_fUseVerbose
==1) { Info(
"DiTauMassTools"
,
"%s"
, (
"Seting input "
+
std::to_string
(
i
)+
" to pT="
+
std::to_string
(
vec
.Pt())).c_str()); }
123
if
(
i
==0)
m_vistau1
=
vec
;
124
if
(
i
==1)
m_vistau2
=
vec
;
125
return
;
126
}
127
// ---- input Met vector
128
void
MissingMassInput::SetMetVec
(
const
TVector2 &
vec
) {
129
m_MetVec
=
vec
;
130
return
;
131
}
132
133
// not used but might be helpful?
134
// ----- input data type
135
void
MissingMassInput::SetIsData
(
int
val
) {
136
if
(
val
==0 ||
val
==1)
m_dataType
=
val
;
137
return
;
138
}
139
// ----- input vis Tau N-prong
140
void
MissingMassInput::SetNprong
(
int
i
,
int
nprong) {
141
if
(
i
==0)
m_Nprong_tau1
= nprong;
142
if
(
i
==1)
m_Nprong_tau2
= nprong;
143
return
;
144
}
pdg_comparison.sigma
sigma
Definition:
pdg_comparison.py:324
DiTauMassTools::MissingMassInput::m_METsigmaP
double m_METsigmaP
Definition:
MissingMassInput.h:60
DiTauMassTools::MissingMassInput::~MissingMassInput
~MissingMassInput()
Definition:
MissingMassInput.cxx:18
DiTauMassTools::MissingMassInput::SetMetScanParamsUE
void SetMetScanParamsUE(double sumEt, double phi_scan=0.0, int data_code=0)
Definition:
MissingMassInput.cxx:87
DiTauMassTools::MissingMassInput::m_MHtGaussFr
double m_MHtGaussFr
Definition:
MissingMassInput.h:68
conifer::pow
constexpr int pow(int x)
Definition:
conifer.h:20
DiTauMassTools::MissingMassInput::m_MHtSigma1
double m_MHtSigma1
Definition:
MissingMassInput.h:66
DiTauMassTools::MissingMassInput::m_METsigmaL
double m_METsigmaL
Definition:
MissingMassInput.h:61
Phi
@ Phi
Definition:
RPCdef.h:8
vec
std::vector< size_t > vec
Definition:
CombinationsGeneratorTest.cxx:12
DiTauMassTools::MissingMassInput::m_jet4vecs
std::vector< TLorentzVector > m_jet4vecs
Definition:
MissingMassInput.h:63
DiTauMassTools::MissingMassInput::m_METcovphi
double m_METcovphi
Definition:
MissingMassInput.h:59
CxxUtils::vec
typename vecDetail::vec_typedef< T, N >::type vec
Define a nice alias for the vectorized type.
Definition:
vec.h:207
DiTauMassTools::MissingMassInput::m_Njet25
int m_Njet25
Definition:
MissingMassInput.h:64
DiTauMassTools
Definition:
PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:22
DiTauMassTools::MissingMassInput::m_SumEt
double m_SumEt
Definition:
MissingMassInput.h:62
DiTauMassTools::MissingMassInput::m_Nprong_tau2
int m_Nprong_tau2
Definition:
MissingMassInput.h:57
lumiFormat.i
int i
Definition:
lumiFormat.py:92
DiTauMassTools::MissingMassInput::m_MHtSigma2
double m_MHtSigma2
Definition:
MissingMassInput.h:67
DiTauMassTools::MissingMassInput::SetIsData
void SetIsData(int val)
Definition:
MissingMassInput.cxx:135
DiTauMassTools::MissingMassInput::m_Nprong_tau1
int m_Nprong_tau1
Definition:
MissingMassInput.h:56
DiTauMassTools::MissingMassInput::m_vistau1
TLorentzVector m_vistau1
Definition:
MissingMassInput.h:52
DiTauMassTools::MissingMassInput::SetNjet25
void SetNjet25(int val)
Definition:
MissingMassInput.cxx:105
DiTauMassTools::MissingMassInput::SetVisTauVec
void SetVisTauVec(int i, const TLorentzVector &vec)
Definition:
MissingMassInput.cxx:121
DiTauMassTools::MissingMassInput::m_dataType
int m_dataType
Definition:
MissingMassInput.h:58
DiTauMassTools::MissingMassInput::m_fUseVerbose
bool m_fUseVerbose
Definition:
MissingMassInput.h:76
DiTauMassTools::MissingMassInput::m_HtOffset
double m_HtOffset
Definition:
MissingMassInput.h:69
DiTauMassTools::MissingMassInput::m_type_visTau2
int m_type_visTau2
Definition:
MissingMassInput.h:55
DiTauMassTools::MissingMassInput::m_DelPhiTT
double m_DelPhiTT
Definition:
MissingMassInput.h:65
VP1PartSpect::E
@ E
Definition:
VP1PartSpectFlags.h:21
ActsTrk::to_string
std::string to_string(const DetectorType &type)
Definition:
GeometryDefs.h:34
DiTauMassTools::MissingMassInput::PrintInputInfo
void PrintInputInfo()
Definition:
MissingMassInput.cxx:56
DiTauMassTools::MissingMassInput::m_MetVec
TVector2 m_MetVec
Definition:
MissingMassInput.h:51
MissingMassInput.h
DiTauMassTools::MissingMassInput::SetVisTauType
void SetVisTauType(int i, int tautype)
Definition:
MissingMassInput.cxx:115
Prompt::Def::Pt
@ Pt
Definition:
VarHolder.h:76
DiTauMassTools::MissingMassInput::ClearInput
void ClearInput()
Definition:
MissingMassInput.cxx:22
Pythia8_RapidityOrderMPI.val
val
Definition:
Pythia8_RapidityOrderMPI.py:14
DiTauMassTools::MissingMassInput::m_vistau2
TLorentzVector m_vistau2
Definition:
MissingMassInput.h:53
DiTauMassTools::MissingMassInput::m_type_visTau1
int m_type_visTau1
Definition:
MissingMassInput.h:54
DiTauMassTools::MissingMassInput::m_METresSyst
int m_METresSyst
Definition:
MissingMassInput.h:73
DiTauMassTools::MissingMassInput::m_beamEnergy
double m_beamEnergy
Definition:
MissingMassInput.h:70
DiTauMassTools::MissingMassInput::SetSumEt
void SetSumEt(double sumEt)
Definition:
MissingMassInput.cxx:110
DiTauMassTools::MissingMassInput::SetMetVec
void SetMetVec(const TVector2 &vec)
Definition:
MissingMassInput.cxx:128
DiTauMassTools::MissingMassInput::SetNprong
void SetNprong(int i, int nprong)
Definition:
MissingMassInput.cxx:140
DiTauMassTools::MissingMassInput::MissingMassInput
MissingMassInput()
Definition:
MissingMassInput.cxx:14
DiTauMassTools::MissingMassInput::m_LFVmode
int m_LFVmode
Definition:
MissingMassInput.h:82
Eta
@ Eta
Definition:
RPCdef.h:8
Generated on Tue Jul 2 2024 21:21:50 for ATLAS Offline Software by
1.8.18