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.5, 0.5, 0.5, 0.5, 0.07, 0.07, 0.07, 0.07 }, //hovere |
39 |
> |
{0.15, 0.15, 0.15, 0.15, 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.007, 0.007, 0.007, 0.007, 0.010, 0.010, 0.010, 0.010 }, //deltaetain |
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.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 |
78 |
> |
{0.004, 0.004, 0.004, 0.004, 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 |
|
}; |
123 |
|
cat=1; |
124 |
|
else if (eOverP < 1.2 && eOverP > 0.8) |
125 |
|
cat=0; |
126 |
< |
|
126 |
> |
|
127 |
> |
if(ele->SCluster() == 0) |
128 |
> |
return kFALSE; |
129 |
|
Double_t eSeedOverPin = ele->ESeedClusterOverPIn(); |
130 |
|
Double_t hOverE = ele->HadronicOverEm(); |
131 |
|
Double_t sigmaee = ele->CoviEtaiEta(); |
189 |
|
}; |
190 |
|
|
191 |
|
Double_t VBTFWorkingPoint70[4][2] = { |
192 |
< |
{0.06 , 0.03 }, //TrkIso |
193 |
< |
{0.06 , 0.03 }, //ECALIso |
194 |
< |
{0.05 , 0.015 }, //HCALIso |
195 |
< |
{0.05, 0.04 } //Combined |
192 |
> |
{0.05 , 0.025 }, //TrkIso |
193 |
> |
{0.06 , 0.025 }, //ECALIso |
194 |
> |
{0.03 , 0.020 }, //HCALIso |
195 |
> |
{0.04, 0.030 } //Combined |
196 |
|
}; |
197 |
|
|
198 |
|
switch (isoType) { |
216 |
|
break; |
217 |
|
} |
218 |
|
|
219 |
< |
Double_t trkIso = ele->TrackIsolationDr03(); |
220 |
< |
Double_t ecalIso = ele->EcalRecHitIsoDr03(); |
221 |
< |
Double_t hcalIso = ele->HcalTowerSumEtDr03(); |
222 |
< |
Double_t combinedIso = trkIso + ecalIso + hcalIso; |
223 |
< |
if(ele->IsEB()) combinedIso = trkIso + TMath::Max(ecalIso - 1.0, 0.0) + hcalIso; |
219 |
> |
Double_t trkIso = ele->TrackIsolationDr03() / ele->Pt(); |
220 |
> |
Double_t ecalIso = ele->EcalRecHitIsoDr03() / ele->Pt(); |
221 |
> |
Double_t hcalIso = ele->HcalTowerSumEtDr03() / ele->Pt(); |
222 |
> |
Double_t combinedIso = ele->TrackIsolationDr03() + ele->EcalRecHitIsoDr03() + ele->HcalTowerSumEtDr03(); |
223 |
> |
if(ele->IsEB()) combinedIso = ele->TrackIsolationDr03() + TMath::Max(ele->EcalRecHitIsoDr03() - 1.0, 0.0) + ele->HcalTowerSumEtDr03(); |
224 |
|
combinedIso = combinedIso / ele->Pt(); |
225 |
|
|
226 |
|
Int_t eb = 1; |
287 |
|
} |
288 |
|
} |
289 |
|
} |
290 |
+ |
|
291 |
|
if (isGoodConversion == kTRUE) break; |
292 |
|
|
293 |
|
} // loop over all conversions |
303 |
|
// d0 cut |
304 |
|
Double_t d0_real = 99999; |
305 |
|
for(UInt_t i0 = 0; i0 < vertices->GetEntries(); i0++) { |
306 |
< |
Double_t pD0 = ele->GsfTrk()->D0Corrected(*vertices->At(i0)); |
307 |
< |
if(TMath::Abs(pD0) < TMath::Abs(d0_real)) d0_real = TMath::Abs(pD0); |
306 |
> |
if(vertices->At(i0)->NTracks() > 0){ |
307 |
> |
Double_t pD0 = ele->GsfTrk()->D0Corrected(*vertices->At(i0)); |
308 |
> |
d0_real = TMath::Abs(pD0); |
309 |
> |
break; |
310 |
> |
} |
311 |
|
} |
312 |
|
if(d0_real < fD0Cut) d0cut = kTRUE; |
313 |
|
|
356 |
|
Bool_t ElectronTools::PassSpikeRemovalFilter(const Electron *ele) |
357 |
|
{ |
358 |
|
Bool_t passSpikeRemovalFilter = kTRUE; |
359 |
< |
if(ele->SCluster()->Seed()->Energy() > 5.0 && |
359 |
> |
if(ele->SCluster() && |
360 |
> |
ele->SCluster()->Seed()->Energy() > 5.0 && |
361 |
|
ele->SCluster()->Seed()->EMax() / ele->SCluster()->Seed()->E3x3() > 0.95 |
362 |
|
) { |
363 |
|
passSpikeRemovalFilter = kFALSE; |
530 |
|
|
531 |
|
result = result + 1; |
532 |
|
|
533 |
< |
Double_t d0_real = 99999; |
534 |
< |
for(UInt_t i0 = 0; i0 < vertices->GetEntries(); i0++) { |
528 |
< |
Double_t pD0 = ele->GsfTrk()->D0Corrected(*vertices->At(i0)); |
529 |
< |
if(TMath::Abs(pD0) < TMath::Abs(d0_real)) d0_real = TMath::Abs(pD0); |
530 |
< |
} |
531 |
< |
if (d0_real > cut[26*eb+21]) |
533 |
> |
Bool_t passD0cut = PassD0Cut(ele, vertices, cut[26*eb+21], kFALSE); |
534 |
> |
if (!passD0cut) |
535 |
|
return result; |
536 |
|
|
537 |
|
if (mishits > cut[26*eb+22]) // expected missing hits |
686 |
|
result += 1.; |
687 |
|
} |
688 |
|
|
689 |
< |
Double_t d0_real = 99999; |
690 |
< |
for(UInt_t i0 = 0; i0 < vertices->GetEntries(); i0++) { |
688 |
< |
Double_t pD0 = ele->GsfTrk()->D0Corrected(*vertices->At(i0)); |
689 |
< |
if(TMath::Abs(pD0) < TMath::Abs(d0_real)) d0_real = TMath::Abs(pD0); |
690 |
< |
} |
691 |
< |
if (d0_real < cutip_gsf[cat+bin*9]) |
689 |
> |
Bool_t passD0cut = PassD0Cut(ele, vertices, cutip_gsf[cat+bin*9], kFALSE); |
690 |
> |
if (passD0cut) |
691 |
|
result += 4; |
692 |
|
|
693 |
|
Bool_t passConvVeto = PassConversionFilter(ele, conversions, kTRUE); |