71{
73
74 auto NInputTaus = Monitored::Scalar<int>("NInputTaus", -1);
75 auto passedCuts = Monitored::Scalar<int>("CutCounter", 0);
76 auto PtAccepted = Monitored::Scalar<float>("PtAccepted", -1);
77 auto NTracksAccepted = Monitored::Scalar<int>("NTracksAccepted", -1);
78 auto NIsoTracksAccepted = Monitored::Scalar<int>("NIsoTracksAccepted", -1);
79 auto massTrkSysAccepted = Monitored::Scalar<float>("massTrkSysAccepted", -10);
80 auto massTrkSysKaonAccepted = Monitored::Scalar<float>("massTrkSysKaonAccepted", -10);
81 auto massTrkSysKaonPiAccepted = Monitored::Scalar<float>("massTrkSysKaonPiAccepted", -10);
82 auto leadTrkPtAccepted = Monitored::Scalar<float>("leadTrkPtAccepted", -10);
83 auto dRAccepted = Monitored::Scalar<float>("dRAccepted", -1);
84 auto etOverPtLeadTrkAccepted = Monitored::Scalar<float>("etOverPtLeadTrkAccepted", -10);
85 auto EMOverTrkSysPAccepted = Monitored::Scalar<float>("EMOverTrkSysPAccepted", -10);
86
87 auto monitorIt = Monitored::Group(
m_monTool,
88 NInputTaus, passedCuts,
89 PtAccepted, NTracksAccepted, NIsoTracksAccepted,
90 massTrkSysAccepted, massTrkSysKaonAccepted, massTrkSysKaonPiAccepted,
91 leadTrkPtAccepted, dRAccepted, etOverPtLeadTrkAccepted, EMOverTrkSysPAccepted);
92
93
94
95 bool pass = false;
96
98 pass = true;
99 ATH_MSG_DEBUG(
"AcceptAll property is set: taking all events");
100 }
101
102
104
106 NInputTaus = TauContainer->
size();
107
110 passedCuts++;
111
112
113
114
115
116 float pT =
Tau->pt();
118
120 passedCuts++;
121 PtAccepted =
pT / Gaudi::Units::GeV;
122
123
124
125
126
127 int numTrack =
Tau->nTracks();
128 int numIsoTrack =
Tau->nTracksIsolation();
129
132
133
136 passedCuts++;
137 NTracksAccepted = numTrack;
138 NIsoTracksAccepted = numIsoTrack;
139
140
141
142
143
146 ATH_MSG_DEBUG(
" leadTrkPt: " << leadTrkPt / Gaudi::Units::GeV);
148 passedCuts++;
149 leadTrkPtAccepted =
leadTrkPt / Gaudi::Units::GeV;
150
151
152
153
154
157 ATH_MSG_DEBUG(
" massTrkSys: " << massTrkSys / Gaudi::Units::GeV);
158
159
160
161 TLorentzVector my_kaons;
162 std::vector<TLorentzVector> my_trks;
163 for(
unsigned int i = 0;
i <
Tau->nTracks(); ++
i) {
165 TLorentzVector tmpKaon;;
166
167 try {
168 trk =
Tau->track(i)->track();
169 } catch(const std::exception& e) {
171 }
172
173 if(trk) {
175 my_trks.push_back(trk->
p4());
176 }
177
178 my_kaons = my_kaons + tmpKaon;
179 }
180
181 float massTrkSysKaon = my_kaons.M();
182 ATH_MSG_DEBUG(
" massTrkSys with kaon mass hypo: " << massTrkSysKaon / Gaudi::Units::GeV);
183
184
185 float finalKPiMass = 0;
186 if(my_trks.size() == 2) {
187 TLorentzVector tmpKaon;
188
190 TLorentzVector tmpPion = my_trks.at(1);
191 float kPiMass1 = (tmpKaon+tmpPion).M();
192
194 tmpPion = my_trks.at(0);
195 float kPiMass2 = (tmpKaon+tmpPion).M();
196
198 finalKPiMass = kPiMass1;
199 } else {
200 finalKPiMass = kPiMass2;
201 }
202 }
203 float massTrkSysKaonPi = finalKPiMass;
204 ATH_MSG_DEBUG(
" massTrkSys with kaon+pi mass hypo: " << massTrkSysKaonPi / Gaudi::Units::GeV);
205
207 passedCuts++;
208 massTrkSysAccepted =
massTrkSys / Gaudi::Units::GeV;
209
211 passedCuts++;
212 massTrkSysKaonAccepted = massTrkSysKaon / Gaudi::Units::GeV;
213
214
216 passedCuts++;
217 massTrkSysKaonPiAccepted = massTrkSysKaonPi / Gaudi::Units::GeV;
218
219
220
221
222
227 passedCuts++;
229
230
231
232
233
238 passedCuts++;
240
241
242
243
244
249 passedCuts++;
251
252
253
254
255
256 pass = true;
257
259 }
260
261 return pass;
262}
#define ATH_MSG_WARNING(x)
size_type size() const noexcept
Returns the number of elements in the collection.
virtual FourMom_t p4() const override final
The full 4-momentum of the particle.
virtual double phi() const override final
The azimuthal angle ( ) of the particle (has range to .)
virtual double pt() const override final
The transverse momentum ( ) of the particle.
virtual double eta() const override final
The pseudorapidity ( ) of the particle.
constexpr double chargedKaonMassInMeV
the mass of the charged kaon (in MeV)
@ Tau
The object is a tau (jet)
@ dRmax
Get maximal dR of tracks associated to calo-seeded tau.
TrackParticle_v1 TrackParticle
Reference the current persistent version:
TauJet_v3 TauJet
Definition of the current "tau version".
TauJetContainer_v3 TauJetContainer
Definition of the current "taujet container version".