52 {
53
54 bool pass = true;
55
56 auto mon_ET = Monitored::Scalar( "Et_em" , -1.0 );
57 auto mon_dEta = Monitored::Scalar( "dEta", -1. );
58 auto mon_dPhi = Monitored::Scalar( "dPhi", -1. );
59 auto mon_etaBin = Monitored::Scalar( "EtaBin", -1. );
60 auto mon_Eta = Monitored::Scalar( "Eta", -99. );
61 auto mon_Phi = Monitored::Scalar( "Phi", -99. );
62 auto cutCounter = Monitored::Scalar<int>( "CutCounter", -1 );
63 auto mon_lhval = Monitored::Scalar("LikelihoodRatio", -99.);
64 auto mon_mu = Monitored::Scalar("mu", -1.);
65 auto mon_ptvarcone20 = Monitored::Scalar("ptvarcone20", -99.);
66 auto mon_relptvarcone20 = Monitored::Scalar("relptvarcone20", -99.);
67 auto mon_ptvarcone30 = Monitored::Scalar("ptvarcone30", -99.);
68 auto mon_relptvarcone30 = Monitored::Scalar("relptvarcone30", -99.);
69 auto mon_ptcone20 = Monitored::Scalar("ptcone20", -99.);
70 auto mon_relptcone20 = Monitored::Scalar("relptcone20", -99.);
71 auto mon_ptcone30 = Monitored::Scalar("ptcone30", -99.);
72 auto mon_relptcone30 = Monitored::Scalar("relptcone30", -99.);
73 auto mon_trk_d0 = Monitored::Scalar("trk_d0", -1.);
74 auto monitorIt = Monitored::Group(
m_monTool, mon_ET, mon_dEta, mon_dPhi,
75 mon_etaBin, mon_Eta,
76 mon_Phi,cutCounter,mon_lhval,mon_mu,
77 mon_ptvarcone20, mon_relptvarcone20,
78 mon_ptcone20, mon_relptcone20, mon_ptcone30, mon_relptcone30, mon_ptvarcone30, mon_relptvarcone30, mon_trk_d0);
79
81
82
83
84 auto roiDescriptor =
input.roi;
85
86
87 if ( std::abs( roiDescriptor->eta() ) > 2.6 ) {
88 ATH_MSG_DEBUG(
"REJECT The electron had eta coordinates beyond the EM fiducial volume : " << roiDescriptor->eta() <<
"; stop the chain now" );
89 return false;
90 }
91 cutCounter++;
93 << ": Eta = " << roiDescriptor->eta()
94 << ", Phi = " << roiDescriptor->phi() );
95
96
97 double etaRef = roiDescriptor->eta();
98 double phiRef = roiDescriptor->phi();
100
101 if ( std::abs( phiRef ) >
M_PI ) phiRef -= 2*
M_PI;
102
104
106
107 pass = false;
108 auto pClus =
input.electron->caloCluster();
109
110 float absEta = std::abs( pClus->eta() );
111
113
116
117
118 dEta = pClus->eta() - etaRef;
119
120 dPhi = std::abs( pClus->phi() - phiRef );
122 ET = pClus->et();
125
126 trk_d0 = std::abs(
input.electron->trackParticle()->d0());
127
128
130 << " roi eta=" << etaRef << " DeltaEta=" << dEta
132
133
136 return pass;
137 }
140 cutCounter++;
141
142
144 << " roi phi="<< phiRef << " DeltaPhi="<< dPhi
146
149 return pass;
150 }
153 cutCounter++;
154
155
156 if ( cutIndex == -1 ) {
158 return pass;
159 } else {
161 }
163 cutCounter++;
164
165
167 if ( ET <
m_eTthr[cutIndex] ) {
169 return pass;
170 }
171 mon_ET = ET;
172 cutCounter++;
173
175 pass = true;
176 return pass;
177 }
178
180 {
182 if ( trk_d0 <
m_d0 ) {
184 return pass;
185 }
186 }
187 mon_trk_d0 = trk_d0;
188
189
190
191 if(
input.valueDecorator.count(
"avgmu")){
192 mu =
input.valueDecorator.at(
"avgmu");
193 }
195
198
201
203 if (!ispt20) {
204 ATH_MSG_WARNING(
"ptvarcone20 not available. Will not cut on isolation");
205 }
206
208 if (!ispt30) {
209 ATH_MSG_WARNING(
"ptvarcone30 not available. Will not cut on isolation");
210 }
211
212
213
215
217
218
219
221
223
225
227
228
229
231
233
234
235
237
239
241
243
245
247
249
251
253
255
257
259
261
289
290
291 if (
input.electron->pt() >0){
296 }
298 mon_relptvarcone20 = relptvarcone20;
300 mon_relptcone20 = relptcone20;
301
303 mon_relptvarcone30 = relptvarcone30;
305 mon_relptcone30 = relptcone30;
306
311
312
315 }
316 mon_lhval = lhval;
317
319 {
321 }
322
324 if ( !pass ){
326 return pass;
327 } else {
329 cutCounter++;
330 }
331
332
333
334
338 return pass;
339 }
340
344 if (!pass){
345 ATH_MSG_DEBUG(
" ACCEPT Isolation ptvarcon30_rel cut failed");
346 return pass;
347 }else{
348 ATH_MSG_DEBUG(
" ACCEPT Isolation ptvarcon30_rel cut passed");
349 cutCounter++;
350 }
351 }
354 if (!pass){
355 return pass;
356 }else{
357 cutCounter++;
358 }
359 }
361
364 if (!pass){
365 ATH_MSG_DEBUG(
" ACCEPT Isolation ptvarcon20_rel cut failed");
366 return pass;
367 }else{
368 ATH_MSG_DEBUG(
" ACCEPT Isolation ptvarcon20_rel cut passed");
369 cutCounter++;
370 }
371 }
372
373 }
375 return pass;
376}
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
#define ATH_MSG_WARNING(x)
bool dPhi(const xAOD::TauJet &tau, const xAOD::CaloVertexedTopoCluster &cluster, float &out)
bool dEta(const xAOD::TauJet &tau, const xAOD::CaloVertexedTopoCluster &cluster, float &out)
bool absEta(const xAOD::TauJet &tau, float &out)
@ wtots1
shower width is determined in a window detaxdphi = 0,0625 ×~0,2, corresponding typically to 20 strips...
@ e277
uncalibrated energy (sum of cells) of the middle sampling in a rectangle of size 7x7
@ f1
E1/E = fraction of energy reconstructed in the first sampling, where E1 is energy in all strips belon...
@ Eratio
(emaxs1-e2tsts1)/(emaxs1+e2tsts1)
@ fracs1
shower shape in the shower core : [E(+/-3)-E(+/-1)]/E(+/-1), where E(+/-n) is the energy in ± n strip...
@ weta2
the lateral width is calculated with a window of 3x5 cells using the energy weighted sum over all cel...
@ weta1
shower width using +/-3 strips around the one with the maximal energy deposit: w3 strips = sqrt{sum(E...
@ topoetcone20
Topo-cluster ET-sum.
@ etcone20
Calorimeter isolation.
@ ptcone20
Track isolation.
@ ptvarcone20
Mini-Isolation http://arxiv.org/abs/1007.2221.