36 |
|
{0.8,0.2,0,0,0,0,0,0}}; //extra cuts fbrem and E_Over_P |
37 |
|
|
38 |
|
Double_t VBTFWorkingPoint95[6][8] = { |
39 |
< |
{0.05, 0.05, 0.05, 0.05, 0.04, 0.04, 0.04, 0.04 }, //hovere |
39 |
> |
{0.5, 0.5, 0.5, 0.5, 0.07, 0.07, 0.07, 0.07 }, //hovere |
40 |
|
{0.01, 0.01, 0.01, 0.01, 0.03, 0.03, 0.03, 0.03 }, //sigmaetaeta |
41 |
|
{0.8, 0.8, 0.8, 0.8, 0.7, 0.7, 0.7, 0.7 }, //deltaphiin |
42 |
< |
{0.006, 0.006, 0.006, 0.006, 0.008, 0.008, 0.008, 0.008 }, //deltaetain |
42 |
> |
{0.007, 0.007, 0.007, 0.007, 0.010, 0.010, 0.010, 0.010 }, //deltaetain |
43 |
|
{0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }, //eoverp |
44 |
|
{0.0, 0.0, 0, 0, 0, 0, 0, 0 } //extra cuts fbrem and E_Over_P |
45 |
|
}; |
46 |
|
|
47 |
– |
|
47 |
|
Double_t VBTFWorkingPoint90[6][8] = { |
48 |
< |
{0.05, 0.05, 0.05, 0.05, 0.025, 0.025, 0.025, 0.025 }, //hovere |
48 |
> |
{0.12, 0.12, 0.12, 0.12, 0.05, 0.05, 0.05, 0.05 }, //hovere |
49 |
> |
{0.01, 0.01, 0.01, 0.01, 0.03, 0.03, 0.03, 0.03 }, //sigmaetaeta |
50 |
> |
{0.8, 0.8, 0.8, 0.8, 0.7, 0.7, 0.7, 0.7 }, //deltaphiin |
51 |
> |
{0.007, 0.007, 0.007, 0.007, 0.009, 0.009, 0.009, 0.009 }, //deltaetain |
52 |
> |
{0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }, //eoverp |
53 |
> |
{0.0, 0.0, 0, 0, 0, 0, 0, 0 } //extra cuts fbrem and E_Over_P |
54 |
> |
}; |
55 |
> |
|
56 |
> |
Double_t VBTFWorkingPoint85[6][8] = { |
57 |
> |
{0.04, 0.04, 0.04, 0.04, 0.025, 0.025, 0.025, 0.025 }, //hovere |
58 |
|
{0.01, 0.01, 0.01, 0.01, 0.03, 0.03, 0.03, 0.03 }, //sigmaetaeta |
59 |
< |
{0.04, 0.04, 0.04, 0.04, 0.025, 0.025, 0.025, 0.025 }, //deltaphiin |
60 |
< |
{0.006, 0.006, 0.006, 0.006, 0.008, 0.008, 0.008, 0.008 }, //deltaetain |
59 |
> |
{0.06, 0.06, 0.06, 0.06, 0.04, 0.04, 0.04, 0.04 }, //deltaphiin |
60 |
> |
{0.006, 0.006, 0.006, 0.006, 0.007, 0.007, 0.007, 0.007 }, //deltaetain |
61 |
|
{0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }, //eoverp |
62 |
|
{0.0, 0.0, 0, 0, 0, 0, 0, 0 } //extra cuts fbrem and E_Over_P |
63 |
|
}; |
64 |
|
|
65 |
|
Double_t VBTFWorkingPoint80[6][8] = { |
66 |
< |
{0.05, 0.05, 0.05, 0.05, 0.025, 0.025, 0.025, 0.025}, //hovere |
66 |
> |
{0.04, 0.04, 0.04, 0.04, 0.025, 0.025, 0.025, 0.025}, //hovere |
67 |
|
{0.01, 0.01, 0.01, 0.01, 0.03, 0.03, 0.03, 0.03 }, //sigmaetaeta |
68 |
< |
{0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02 }, //deltaphiin |
69 |
< |
{0.006, 0.006, 0.006, 0.006, 0.006, 0.006, 0.006, 0.006}, //deltaetain |
68 |
> |
{0.06, 0.06, 0.06, 0.06, 0.03, 0.03, 0.03, 0.03 }, //deltaphiin |
69 |
> |
{0.004, 0.004, 0.004, 0.004, 0.007, 0.007, 0.007, 0.007}, //deltaetain |
70 |
|
{0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }, //eoverp |
71 |
|
{0.0, 0.0, 0, 0, 0, 0, 0, 0 } //extra cuts fbrem and E_Over_P |
72 |
|
}; |
73 |
|
|
74 |
|
Double_t VBTFWorkingPoint70[6][8] = { |
75 |
< |
{0.02, 0.02, 0.02, 0.02, 0.025, 0.025, 0.025, 0.025}, //hovere |
75 |
> |
{0.025, 0.025, 0.025, 0.025, 0.012, 0.012, 0.012, 0.012}, //hovere |
76 |
|
{0.01, 0.01, 0.01, 0.01, 0.03, 0.03, 0.03, 0.03 }, //sigmaetaeta |
77 |
< |
{0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02 }, //deltaphiin |
78 |
< |
{0.006, 0.006, 0.006, 0.006, 0.003, 0.003, 0.003, 0.003}, //deltaetain |
77 |
> |
{0.03, 0.03, 0.03, 0.03, 0.02, 0.02, 0.02, 0.02 }, //deltaphiin |
78 |
> |
{0.003, 0.003, 0.003, 0.003, 0.005, 0.005, 0.005, 0.005}, //deltaetain |
79 |
|
{0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }, //eoverp |
80 |
|
{0.0, 0.0, 0, 0, 0, 0, 0, 0 } //extra cuts fbrem and E_Over_P |
81 |
|
}; |
93 |
|
case kVBTFWorkingPoint90Id: |
94 |
|
memcpy(fCuts,VBTFWorkingPoint90,sizeof(fCuts)); |
95 |
|
break; |
96 |
+ |
case kVBTFWorkingPoint85Id: |
97 |
+ |
memcpy(fCuts,VBTFWorkingPoint85,sizeof(fCuts)); |
98 |
+ |
break; |
99 |
|
case kVBTFWorkingPoint80Id: |
100 |
|
memcpy(fCuts,VBTFWorkingPoint80,sizeof(fCuts)); |
101 |
|
break; |
153 |
|
} |
154 |
|
|
155 |
|
//-------------------------------------------------------------------------------------------------- |
156 |
< |
Bool_t ElectronTools::PassCustomIso(const Electron *ele, EElIsoType isoType) |
156 |
> |
Bool_t ElectronTools::PassCustomIso(const Electron *ele, EElIsoType isoType, |
157 |
> |
Bool_t useCombineIso) |
158 |
|
{ |
159 |
|
Bool_t pass = kTRUE; |
160 |
|
Double_t fIsoCuts[4][2]; //!custom isolation cuts |
149 |
– |
|
161 |
|
Double_t VBTFWorkingPoint95[4][2] = { |
162 |
< |
{7.0 , 8.0 }, //TrkIso |
163 |
< |
{5.0 , 3.0 }, //ECALIso |
164 |
< |
{5.0 , 2.0 }, //HCALIso |
165 |
< |
{9999, 9999 } //Combined |
162 |
> |
{0.15 , 0.08 }, //TrkIso |
163 |
> |
{2.00 , 0.06 }, //ECALIso |
164 |
> |
{0.12 , 0.05 }, //HCALIso |
165 |
> |
{0.15, 0.10 } //Combined |
166 |
|
}; |
167 |
|
|
168 |
|
Double_t VBTFWorkingPoint90[4][2] = { |
169 |
< |
{6.0 , 6.0 }, //TrkIso |
170 |
< |
{5.0 , 2.5 }, //ECALIso |
171 |
< |
{5.0 , 1.5 }, //HCALIso |
172 |
< |
{9999, 9999 } //Combined |
169 |
> |
{0.12 , 0.05 }, //TrkIso |
170 |
> |
{0.09 , 0.06 }, //ECALIso |
171 |
> |
{0.10 , 0.03 }, //HCALIso |
172 |
> |
{0.10, 0.07 } //Combined |
173 |
> |
}; |
174 |
> |
|
175 |
> |
Double_t VBTFWorkingPoint85[4][2] = { |
176 |
> |
{0.09 , 0.05 }, //TrkIso |
177 |
> |
{0.08 , 0.05 }, //ECALIso |
178 |
> |
{0.10 , 0.025 }, //HCALIso |
179 |
> |
{0.09, 0.06 } //Combined |
180 |
|
}; |
181 |
|
|
182 |
|
Double_t VBTFWorkingPoint80[4][2] = { |
183 |
< |
{3.0 , 1.5 }, //TrkIso |
184 |
< |
{4.0 , 2.5 }, //ECALIso |
185 |
< |
{5.0 , 0.7 }, //HCALIso |
186 |
< |
{9999, 9999 } //Combined |
183 |
> |
{0.09 , 0.04 }, //TrkIso |
184 |
> |
{0.07 , 0.05 }, //ECALIso |
185 |
> |
{0.10 , 0.025 }, //HCALIso |
186 |
> |
{0.07, 0.06 } //Combined |
187 |
|
}; |
188 |
|
|
189 |
|
Double_t VBTFWorkingPoint70[4][2] = { |
190 |
< |
{2.5 , 0.8 }, //TrkIso |
191 |
< |
{3.0 , 2.5 }, //ECALIso |
192 |
< |
{5.0 , 0.25 }, //HCALIso |
193 |
< |
{9999, 9999 } //Combined |
190 |
> |
{0.06 , 0.03 }, //TrkIso |
191 |
> |
{0.06 , 0.03 }, //ECALIso |
192 |
> |
{0.05 , 0.015 }, //HCALIso |
193 |
> |
{0.05, 0.04 } //Combined |
194 |
|
}; |
195 |
|
|
196 |
|
switch (isoType) { |
200 |
|
case kVBTFWorkingPoint90Iso: |
201 |
|
memcpy(fIsoCuts,VBTFWorkingPoint90,sizeof(fIsoCuts)); |
202 |
|
break; |
203 |
+ |
case kVBTFWorkingPoint85Iso: |
204 |
+ |
memcpy(fIsoCuts,VBTFWorkingPoint85,sizeof(fIsoCuts)); |
205 |
+ |
break; |
206 |
|
case kVBTFWorkingPoint80Iso: |
207 |
|
memcpy(fIsoCuts,VBTFWorkingPoint80,sizeof(fIsoCuts)); |
208 |
|
break; |
215 |
|
} |
216 |
|
|
217 |
|
Double_t trkIso = ele->TrackIsolationDr03(); |
218 |
< |
Double_t ecalIso = ele->EcalRecHitIsoDr04(); |
219 |
< |
Double_t hcalIso = ele->HcalIsolation(); |
220 |
< |
Double_t combinedIso = ele->TrackIsolationDr03() + ele->EcalRecHitIsoDr04() - 1.5; |
218 |
> |
Double_t ecalIso = ele->EcalRecHitIsoDr03(); |
219 |
> |
Double_t hcalIso = ele->HcalTowerSumEtDr03(); |
220 |
> |
Double_t combinedIso = trkIso + ecalIso + hcalIso; |
221 |
> |
if(ele->IsEB()) combinedIso = combinedIso - 1.0; |
222 |
> |
combinedIso = combinedIso / ele->Pt(); |
223 |
|
|
224 |
|
Int_t eb = 1; |
225 |
|
if (ele->IsEB()) |
226 |
|
eb = 0; |
227 |
|
|
228 |
< |
if (trkIso>fIsoCuts[0][eb]) |
229 |
< |
pass = kFALSE; |
230 |
< |
if (ecalIso>fIsoCuts[1][eb]) |
231 |
< |
pass = kFALSE; |
232 |
< |
if (hcalIso>fIsoCuts[2][eb]) |
233 |
< |
pass = kFALSE; |
234 |
< |
if (combinedIso>fIsoCuts[3][eb]) |
235 |
< |
pass = kFALSE; |
236 |
< |
|
228 |
> |
if(useCombineIso == kFALSE){ |
229 |
> |
if (trkIso>fIsoCuts[0][eb]) |
230 |
> |
pass = kFALSE; |
231 |
> |
if (ecalIso>fIsoCuts[1][eb]) |
232 |
> |
pass = kFALSE; |
233 |
> |
if (hcalIso>fIsoCuts[2][eb]) |
234 |
> |
pass = kFALSE; |
235 |
> |
} |
236 |
> |
else { |
237 |
> |
if (combinedIso>fIsoCuts[3][eb]) |
238 |
> |
pass = kFALSE; |
239 |
> |
} |
240 |
|
|
241 |
|
return pass; |
242 |
|
} |
264 |
|
if (ConversionMatchFound == kTRUE){ |
265 |
|
isGoodConversion = (conversions->At(ifc)->Prob() > 1e-6) && |
266 |
|
(conversions->At(ifc)->Lxy() > 0) && |
267 |
+ |
(conversions->At(ifc)->Lz() > 0) && |
268 |
|
(conversions->At(ifc)->Position().Rho() > 2.0); |
269 |
|
|
270 |
|
if (isGoodConversion == kTRUE) { |
365 |
|
|
366 |
|
return passSpikeRemovalFilter; |
367 |
|
} |
368 |
+ |
|
369 |
+ |
//-------------------------------------------------------------------------------------------------- |
370 |
+ |
Int_t ElectronTools::Classify(const Electron *ele) { |
371 |
+ |
|
372 |
+ |
double eta = ele->AbsEta(); |
373 |
+ |
double eOverP = ele->ESuperClusterOverP(); |
374 |
+ |
double fBrem = ele->FBrem(); |
375 |
+ |
|
376 |
+ |
int cat = -1; |
377 |
+ |
if (ele->IsEB()) { |
378 |
+ |
if ((fBrem >= 0.12) and (eOverP > 0.9) and (eOverP < 1.2)) |
379 |
+ |
cat = 0; |
380 |
+ |
else if (((eta > .445 and eta < .45 ) or |
381 |
+ |
(eta > .79 and eta < .81 ) or |
382 |
+ |
(eta > 1.137 and eta < 1.157 ) or |
383 |
+ |
(eta > 1.47285 and eta < 1.4744))) |
384 |
+ |
cat = 6; |
385 |
+ |
else if (ele->IsTrackerDriven() and !ele->IsEcalDriven()) |
386 |
+ |
cat = 8; |
387 |
+ |
else if (fBrem < 0.12) |
388 |
+ |
cat = 1; |
389 |
+ |
else |
390 |
+ |
cat = 2; |
391 |
+ |
} else { |
392 |
+ |
if ((fBrem >= 0.2) and (eOverP > 0.82) and (eOverP < 1.22)) |
393 |
+ |
cat = 3; |
394 |
+ |
else if (eta > 1.5 and eta < 1.58) |
395 |
+ |
cat = 7; |
396 |
+ |
else if (ele->IsTrackerDriven() and !ele->IsEcalDriven()) |
397 |
+ |
cat = 8; |
398 |
+ |
else if (fBrem < 0.2) |
399 |
+ |
cat = 4; |
400 |
+ |
else |
401 |
+ |
cat = 5; |
402 |
+ |
} |
403 |
+ |
|
404 |
+ |
return cat; |
405 |
+ |
} |
406 |
+ |
|
407 |
+ |
//-------------------------------------------------------------------------------------------------- |
408 |
+ |
Int_t ElectronTools::PassTightId(const Electron *ele, const VertexCol *vertices, |
409 |
+ |
const DecayParticleCol *conversions, const Int_t typeCuts){ |
410 |
+ |
|
411 |
+ |
Double_t scEt = ele->SCluster()->Et(); |
412 |
+ |
Double_t eOverP = ele->ESuperClusterOverP(); |
413 |
+ |
|
414 |
+ |
Double_t fBrem = ele->FBrem(); |
415 |
+ |
Double_t hOverE = ele->HadronicOverEm(); |
416 |
+ |
Double_t sigmaee = ele->CoviEtaiEta(); |
417 |
+ |
Double_t deltaPhiIn = TMath::Abs(ele->DeltaPhiSuperClusterTrackAtVtx()); |
418 |
+ |
Double_t deltaEtaIn = TMath::Abs(ele->DeltaEtaSuperClusterTrackAtVtx()); |
419 |
+ |
Double_t eSeedOverPin = ele->ESeedClusterOverPIn(); |
420 |
+ |
|
421 |
+ |
Int_t mishits = ele->BestTrk()->NExpectedHitsInner(); |
422 |
+ |
Double_t tkIso = ele->TrackIsolationDr03(); |
423 |
+ |
Double_t ecalIso = ele->EcalRecHitIsoDr04(); |
424 |
+ |
Double_t ecalIsoPed = (ele->IsEB())?std::max(0.,ecalIso-1.):ecalIso; |
425 |
+ |
Double_t hcalIso = ele->HcalTowerSumEtDr04(); |
426 |
+ |
Double_t hcalIso1 = ele->HcalDepth1TowerSumEtDr04(); |
427 |
+ |
Double_t hcalIso2 = ele->HcalDepth2TowerSumEtDr04(); |
428 |
+ |
Double_t e25Max = ele->E25Max(); |
429 |
+ |
Double_t e15 = ele->E15(); |
430 |
+ |
Double_t e55 = ele->E55(); |
431 |
+ |
Double_t e25Maxoe55 = e25Max/e55; |
432 |
+ |
Double_t e15oe55 = e15/e55; |
433 |
+ |
|
434 |
+ |
int cat = Classify(ele); |
435 |
+ |
int eb; |
436 |
+ |
|
437 |
+ |
if (ele->IsEB()) |
438 |
+ |
eb = 0; |
439 |
+ |
else |
440 |
+ |
eb = 1; |
441 |
+ |
|
442 |
+ |
Int_t result = 0.; |
443 |
+ |
|
444 |
+ |
Int_t bin = 0; |
445 |
+ |
|
446 |
+ |
Double_t WantBin = kFALSE; |
447 |
+ |
if(WantBin) { |
448 |
+ |
if (scEt < 20.) |
449 |
+ |
bin = 2; |
450 |
+ |
else if (scEt > 30.) |
451 |
+ |
bin = 0; |
452 |
+ |
else |
453 |
+ |
bin = 1; |
454 |
+ |
} |
455 |
+ |
|
456 |
+ |
if (fBrem > 0) |
457 |
+ |
eSeedOverPin = eSeedOverPin + fBrem; |
458 |
+ |
|
459 |
+ |
if(typeCuts == 3 || typeCuts == 4){ |
460 |
+ |
// Loose robust cuts |
461 |
+ |
Double_t robustlooseEleIDCuts[52] = { |
462 |
+ |
0.05, 0.0103, 0.8, 0.00688, -1, -1, 7.33, 4.68, 9999., 9999., 9999.,9999., 9999.,9999., 9999., 9999.,9999., 9999., 0.000, -9999., 9999., 9999., 9999, -1, 0, 0, |
463 |
+ |
0.0389, 0.0307, 0.7, 0.00944, -1, -1, 7.76, 3.09, 2.23, 9999., 9999.,9999., 9999.,9999., 9999., 9999.,9999., 9999., 0.000, -9999., 9999., 9999., 9999, -1, 0, 0 |
464 |
+ |
}; |
465 |
+ |
// Tight robust cuts |
466 |
+ |
Double_t robusttightEleIDCuts[52] = { |
467 |
+ |
0.0201, 0.0102, 0.0211, 0.00606, -1, -1, 2.34, 3.24, 4.51, 9999., 9999.,9999., 9999.,9999., 9999., 9999.,9999., 9999., 0.000, -9999., 9999., 9999., 9999, -1, 0, 0, |
468 |
+ |
0.00253, 0.0291, 0.022, 0.0032, -1, -1, 0.826, 2.7, 0.255, 9999., 9999.,9999., 9999.,9999., 9999., 9999.,9999., 9999., 0.000, -9999., 9999., 9999., 9999, -1, 0, 0 |
469 |
+ |
}; |
470 |
+ |
Double_t cut[52]; |
471 |
+ |
if (typeCuts == 3) { |
472 |
+ |
memcpy(cut ,robustlooseEleIDCuts ,sizeof(cut)); |
473 |
+ |
} |
474 |
+ |
else { |
475 |
+ |
memcpy(cut ,robusttightEleIDCuts ,sizeof(cut)); |
476 |
+ |
} |
477 |
+ |
|
478 |
+ |
if ((tkIso > cut[26*eb+6]) || (ecalIso > cut[26*eb+7]) || (hcalIso > cut[26*eb+8]) || (hcalIso1 > cut[26*eb+9]) || (hcalIso2 > cut[26*eb+10]) || |
479 |
+ |
(tkIso/ele->Pt() > cut[26*eb+11]) || (ecalIso/ele->Pt() > cut[26*eb+12]) || (hcalIso/ele->Pt() > cut[26*eb+13]) || |
480 |
+ |
((tkIso+ecalIso+hcalIso)>cut[26*eb+14]) || (((tkIso+ecalIso+hcalIso)/ ele->Pt()) > cut[26*eb+15]) || |
481 |
+ |
((tkIso+ecalIsoPed+hcalIso)>cut[26*eb+16]) || (((tkIso+ecalIsoPed+hcalIso)/ ele->Pt()) > cut[26*eb+17]) ) |
482 |
+ |
result = 0.; |
483 |
+ |
else |
484 |
+ |
result = 2.; |
485 |
+ |
|
486 |
+ |
if (hOverE > cut[26*eb+0]) |
487 |
+ |
return result; |
488 |
+ |
|
489 |
+ |
if (sigmaee > cut[26*eb+1]) |
490 |
+ |
return result; |
491 |
+ |
|
492 |
+ |
if (fabs(deltaPhiIn) > cut[26*eb+2]) |
493 |
+ |
return result; |
494 |
+ |
|
495 |
+ |
if (fabs(deltaEtaIn) > cut[26*eb+3]) |
496 |
+ |
return result; |
497 |
+ |
|
498 |
+ |
if (e25Maxoe55 < cut[26*eb+4] && e15oe55 < cut[26*eb+5]) |
499 |
+ |
return result; |
500 |
+ |
// some extra electron id cuts |
501 |
+ |
if (sigmaee < cut[26*eb+18]) // inverted sigmaee cut - spike removal related |
502 |
+ |
return result; |
503 |
+ |
|
504 |
+ |
if ( eOverP < cut[26*eb+19] || eOverP > cut[26*eb+20]) // lower and upper cut in E/P |
505 |
+ |
return result; |
506 |
+ |
|
507 |
+ |
result = result + 1; |
508 |
+ |
|
509 |
+ |
Double_t d0_real = 99999; |
510 |
+ |
for(UInt_t i0 = 0; i0 < vertices->GetEntries(); i0++) { |
511 |
+ |
Double_t pD0 = ele->GsfTrk()->D0Corrected(*vertices->At(i0)); |
512 |
+ |
if(TMath::Abs(pD0) < TMath::Abs(d0_real)) d0_real = TMath::Abs(pD0); |
513 |
+ |
} |
514 |
+ |
if (d0_real > cut[26*eb+21]) |
515 |
+ |
return result; |
516 |
+ |
|
517 |
+ |
if (mishits > cut[26*eb+22]) // expected missing hits |
518 |
+ |
return result; |
519 |
+ |
|
520 |
+ |
Bool_t passConvVeto = PassConversionFilter(ele, conversions, kTRUE); |
521 |
+ |
if (passConvVeto == kFALSE) |
522 |
+ |
return result; |
523 |
+ |
|
524 |
+ |
result += 4; |
525 |
+ |
} |
526 |
+ |
else if(typeCuts == 0 || typeCuts == 1 || typeCuts == 2){ |
527 |
+ |
// Loose cuts |
528 |
+ |
Double_t cutdcotdistLoose[9] = {9999., 9999., 9999., 9999., 9999., 9999., 9999., 9999., 9999. |
529 |
+ |
}; |
530 |
+ |
Double_t cutdetainLoose[9] = {1.30e-02, 5.95e-03, 3.10e-02, 1.68e-02, 8.44e-03, 1.70e-02, 1.55e-02, 5.13e-02, 1.61e-02 |
531 |
+ |
}; |
532 |
+ |
Double_t cutdphiinLoose[9] = {7.51e-02, 3.30e-01, 4.20e-01, 9.86e-02, 2.84e-01, 3.28e-01, 3.77e-01, 4.32e-01, 3.74e-01 |
533 |
+ |
}; |
534 |
+ |
Double_t cuteseedopcorLoose[9] = {6.31e-01, 3.02e-01, 3.04e-01, 8.10e-01, 2.23e-01, 5.03e-01, 2.78e-01, 3.10e-01, 4.69e-01 |
535 |
+ |
}; |
536 |
+ |
Double_t cutetLoose[9] = {0., 0., 0., 0., 0., 0., 0., 0., 0. |
537 |
+ |
}; |
538 |
+ |
Double_t cutfmishitsLoose[9] = {4.50e+00, 1.50e+00, 1.50e+00, 2.50e+00, 2.50e+00, 1.50e+00, 2.50e+00, 4.50e+00, 5.00e-01 |
539 |
+ |
}; |
540 |
+ |
Double_t cuthoeLoose[9] = {2.47e-01, 7.78e-02, 1.49e-01, 3.82e-01, 4.70e-02, 1.12e-01, 1.16e+00, 5.04e+00, 1.35e+00 |
541 |
+ |
}; |
542 |
+ |
Double_t cutip_gsfLoose[9] = {0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02 |
543 |
+ |
}; |
544 |
+ |
Double_t cutiso_sumLoose[9] = {0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1 |
545 |
+ |
}; |
546 |
+ |
Double_t cutiso_sumoetLoose[9] = {9999., 9999., 9999., 9999., 9999., 9999., 9999., 9999., 9999. |
547 |
+ |
}; |
548 |
+ |
Double_t cutseeLoose[9] = {1.92e-02, 1.31e-02, 2.53e-02, 5.27e-02, 3.29e-02, 4.19e-02, 2.65e-02, 6.58e-02, 1.38e-01 |
549 |
+ |
}; |
550 |
+ |
|
551 |
+ |
// Medium cuts |
552 |
+ |
Double_t cutdcotdistMedium[9] = {9999., 9999., 9999., 9999., 9999., 9999., 9999., 9999., 9999. |
553 |
+ |
}; |
554 |
+ |
Double_t cutdetainMedium[9] = {1.19e-02, 4.20e-03, 1.07e-02, 1.49e-02, 6.56e-03, 1.19e-02, 1.16e-02, 5.13e-02, 6.37e-03 |
555 |
+ |
}; |
556 |
+ |
Double_t cutdphiinMedium[9] = {7.51e-02, 2.93e-01, 3.58e-01, 9.53e-02, 1.62e-01, 2.99e-01, 2.76e-01, 4.32e-01, 2.57e-01 |
557 |
+ |
}; |
558 |
+ |
Double_t cuteseedopcorMedium[9] = {6.31e-01, 8.14e-01, 7.60e-01, 8.18e-01, 7.56e-01, 5.35e-01, 6.20e-01, 7.88e-01, 8.85e-01 |
559 |
+ |
}; |
560 |
+ |
Double_t cutetMedium[9] = {0., 0., 0., 0., 0., 0., 0., 0., 0. |
561 |
+ |
}; |
562 |
+ |
Double_t cutfmishitsMedium[9] = {1.50e+00, 1.50e+00, 1.50e+00, 1.50e+00, 1.50e+00, 1.50e+00, 2.50e+00, 1.50e+00, 5.00e-01 |
563 |
+ |
}; |
564 |
+ |
Double_t cuthoeMedium[9] = {2.46e-01, 6.80e-02, 1.35e-01, 3.73e-01, 2.33e-02, 5.58e-02, 8.80e-01, 5.04e+00, 3.78e-02 |
565 |
+ |
}; |
566 |
+ |
Double_t cutip_gsfMedium[9] = {0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02 |
567 |
+ |
}; |
568 |
+ |
Double_t cutiso_sumMedium[9] = {0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1 |
569 |
+ |
}; |
570 |
+ |
Double_t cutiso_sumoetMedium[9] = {9999., 9999., 9999., 9999., 9999., 9999., 9999., 9999., 9999. |
571 |
+ |
}; |
572 |
+ |
Double_t cutseeMedium[9] = {1.92e-02, 1.13e-02, 1.47e-02, 3.84e-02, 3.05e-02, 3.36e-02, 1.35e-02, 5.05e-02, 2.79e-02 |
573 |
+ |
}; |
574 |
+ |
|
575 |
+ |
// Tight cuts |
576 |
+ |
Double_t cutdcotdistTight[9] = {9999., 9999., 9999., 9999., 9999., 9999., 9999., 9999., 9999. |
577 |
+ |
}; |
578 |
+ |
Double_t cutdetainTight[9] = {9.28e-03, 3.56e-03, 7.16e-03, 1.31e-02, 5.81e-03, 9.79e-03, 1.15e-02, 1.66e-02, 3.19e-03 |
579 |
+ |
}; |
580 |
+ |
Double_t cutdphiinTight[9] = {4.66e-02, 7.80e-02, 2.64e-01, 4.42e-02, 3.20e-02, 2.37e-01, 8.25e-02, 2.07e-01, 5.39e-02 |
581 |
+ |
}; |
582 |
+ |
Double_t cuteseedopcorTight[9] = {6.48e-01, 8.97e-01, 8.91e-01, 8.39e-01, 8.35e-01, 6.49e-01, 6.76e-01, 8.70e-01, 9.91e-01 |
583 |
+ |
}; |
584 |
+ |
Double_t cutetTight[9] = {0., 0., 0., 0., 0., 0., 0., 0., 0. |
585 |
+ |
}; |
586 |
+ |
Double_t cutfmishitsTight[9] = {1.50e+00, 1.50e+00, 1.50e+00, 1.50e+00, 1.50e+00, 5.00e-01, 2.50e+00, 5.00e-01, 5.00e-01 |
587 |
+ |
}; |
588 |
+ |
Double_t cuthoeTight[9] = {9.94e-02, 5.61e-02, 1.05e-01, 9.73e-02, 1.81e-02, 3.06e-02, 5.57e-01, 5.04e+00, 1.06e-03 |
589 |
+ |
}; |
590 |
+ |
Double_t cutip_gsfTight[9] = {0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02 |
591 |
+ |
}; |
592 |
+ |
Double_t cutiso_sumTight[9] = {0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1 |
593 |
+ |
}; |
594 |
+ |
Double_t cutiso_sumoetTight[9] = {9999., 9999., 9999., 9999., 9999., 9999., 9999., 9999., 9999. |
595 |
+ |
}; |
596 |
+ |
Double_t cutseeTight[9] = {1.56e-02, 1.07e-02, 1.23e-02, 3.35e-02, 2.98e-02, 3.06e-02, 1.07e-02, 3.79e-02, 1.01e-02 |
597 |
+ |
}; |
598 |
+ |
|
599 |
+ |
Double_t cutdcotdist[9]; |
600 |
+ |
Double_t cutdetain[9]; |
601 |
+ |
Double_t cutdphiin[9]; |
602 |
+ |
Double_t cuteseedopcor[9]; |
603 |
+ |
Double_t cutet[9]; |
604 |
+ |
Double_t cutfmishits[9]; |
605 |
+ |
Double_t cuthoe[9]; |
606 |
+ |
Double_t cutip_gsf[9]; |
607 |
+ |
Double_t cutiso_sum[9]; |
608 |
+ |
Double_t cutiso_sumoet[9]; |
609 |
+ |
Double_t cutsee[9]; |
610 |
+ |
if (typeCuts == 0) { |
611 |
+ |
memcpy(cutdcotdist ,cutdcotdistLoose ,sizeof(cutdcotdistLoose)); |
612 |
+ |
memcpy(cutdetain ,cutdetainLoose ,sizeof(cutdetainLoose)); |
613 |
+ |
memcpy(cutdphiin ,cutdphiinLoose ,sizeof(cutdphiinLoose)); |
614 |
+ |
memcpy(cuteseedopcor,cuteseedopcorLoose,sizeof(cuteseedopcorLoose)); |
615 |
+ |
memcpy(cutet ,cutetLoose ,sizeof(cutetLoose)); |
616 |
+ |
memcpy(cutfmishits ,cutfmishitsLoose ,sizeof(cutfmishitsLoose)); |
617 |
+ |
memcpy(cuthoe ,cuthoeLoose ,sizeof(cuthoeLoose)); |
618 |
+ |
memcpy(cutip_gsf ,cutip_gsfLoose ,sizeof(cutip_gsfLoose)); |
619 |
+ |
memcpy(cutiso_sum ,cutiso_sumLoose ,sizeof(cutiso_sumLoose)); |
620 |
+ |
memcpy(cutiso_sumoet,cutiso_sumoetLoose,sizeof(cutiso_sumoetLoose)); |
621 |
+ |
memcpy(cutsee ,cutseeLoose ,sizeof(cutseeLoose)); |
622 |
+ |
} |
623 |
+ |
else if(typeCuts == 1) { |
624 |
+ |
memcpy(cutdcotdist ,cutdcotdistMedium ,sizeof(cutdcotdistMedium)); |
625 |
+ |
memcpy(cutdetain ,cutdetainMedium ,sizeof(cutdetainMedium)); |
626 |
+ |
memcpy(cutdphiin ,cutdphiinMedium ,sizeof(cutdphiinMedium)); |
627 |
+ |
memcpy(cuteseedopcor,cuteseedopcorMedium,sizeof(cuteseedopcorMedium)); |
628 |
+ |
memcpy(cutet ,cutetMedium ,sizeof(cutetMedium)); |
629 |
+ |
memcpy(cutfmishits ,cutfmishitsMedium ,sizeof(cutfmishitsMedium)); |
630 |
+ |
memcpy(cuthoe ,cuthoeMedium ,sizeof(cuthoeMedium)); |
631 |
+ |
memcpy(cutip_gsf ,cutip_gsfMedium ,sizeof(cutip_gsfMedium)); |
632 |
+ |
memcpy(cutiso_sum ,cutiso_sumMedium ,sizeof(cutiso_sumMedium)); |
633 |
+ |
memcpy(cutiso_sumoet,cutiso_sumoetMedium,sizeof(cutiso_sumoetMedium)); |
634 |
+ |
memcpy(cutsee ,cutseeMedium ,sizeof(cutseeMedium)); |
635 |
+ |
} |
636 |
+ |
else { |
637 |
+ |
memcpy(cutdcotdist ,cutdcotdistTight ,sizeof(cutdcotdistTight)); |
638 |
+ |
memcpy(cutdetain ,cutdetainTight ,sizeof(cutdetainTight)); |
639 |
+ |
memcpy(cutdphiin ,cutdphiinTight ,sizeof(cutdphiinTight)); |
640 |
+ |
memcpy(cuteseedopcor,cuteseedopcorTight,sizeof(cuteseedopcorTight)); |
641 |
+ |
memcpy(cutet ,cutetTight ,sizeof(cutetTight)); |
642 |
+ |
memcpy(cutfmishits ,cutfmishitsTight ,sizeof(cutfmishitsTight)); |
643 |
+ |
memcpy(cuthoe ,cuthoeTight ,sizeof(cuthoeTight)); |
644 |
+ |
memcpy(cutip_gsf ,cutip_gsfTight ,sizeof(cutip_gsfTight)); |
645 |
+ |
memcpy(cutiso_sum ,cutiso_sumTight ,sizeof(cutiso_sumTight)); |
646 |
+ |
memcpy(cutiso_sumoet,cutiso_sumoetTight,sizeof(cutiso_sumoetTight)); |
647 |
+ |
memcpy(cutsee ,cutseeTight ,sizeof(cutseeTight)); |
648 |
+ |
} |
649 |
+ |
|
650 |
+ |
// CAREFUL, I HAVE COMMENT IT OUT WHAT SANI IS DOING |
651 |
+ |
//Double_t iso_sum = tkIso + ecalIso + hcalIso; |
652 |
+ |
Double_t iso_sum = (ele->TrackIsolationDr03() + ele->EcalRecHitIsoDr03() + |
653 |
+ |
ele->HcalTowerSumEtDr03() - 1.0) / ele->Pt(); |
654 |
+ |
Double_t iso_sum_corrected = iso_sum*pow(40./scEt, 2); |
655 |
+ |
if ((iso_sum < cutiso_sum[cat+bin*9]) && |
656 |
+ |
(iso_sum_corrected < cutiso_sumoet[cat+bin*9])) |
657 |
+ |
result += 2; |
658 |
+ |
|
659 |
+ |
if (fBrem > -2) { |
660 |
+ |
if ((hOverE < cuthoe[cat+bin*9]) and |
661 |
+ |
(sigmaee < cutsee[cat+bin*9]) and |
662 |
+ |
(fabs(deltaPhiIn) < cutdphiin[cat+bin*9]) and |
663 |
+ |
(fabs(deltaEtaIn) < cutdetain[cat+bin*9]) and |
664 |
+ |
(eSeedOverPin > cuteseedopcor[cat+bin*9]) and |
665 |
+ |
(scEt > cutet[cat+bin*9])) |
666 |
+ |
result += 1.; |
667 |
+ |
} |
668 |
+ |
|
669 |
+ |
Double_t d0_real = 99999; |
670 |
+ |
for(UInt_t i0 = 0; i0 < vertices->GetEntries(); i0++) { |
671 |
+ |
Double_t pD0 = ele->GsfTrk()->D0Corrected(*vertices->At(i0)); |
672 |
+ |
if(TMath::Abs(pD0) < TMath::Abs(d0_real)) d0_real = TMath::Abs(pD0); |
673 |
+ |
} |
674 |
+ |
if (d0_real < cutip_gsf[cat+bin*9]) |
675 |
+ |
result += 4; |
676 |
+ |
|
677 |
+ |
Bool_t passConvVeto = PassConversionFilter(ele, conversions, kTRUE); |
678 |
+ |
if (mishits < cutfmishits[cat+bin*9] && |
679 |
+ |
passConvVeto) |
680 |
+ |
result += 8; |
681 |
+ |
} // classbased |
682 |
+ |
|
683 |
+ |
return result; |
684 |
+ |
} |