2 import FWCore.ParameterSet.Config
as cms
14 This is a container class to hold numerical cut values for either
15 the barrel or endcap set of cuts for electron cut-based ID
21 full5x5_sigmaIEtaIEtaCut,
25 absEInverseMinusPInverseCut,
26 relCombIsolationWithEALowPtCut,
27 relCombIsolationWithEAHighPtCut,
46 This is a container class to hold numerical cut values for either
47 the barrel or endcap set of cuts for electron cut-based ID
48 With resepect to V2, the impact parameter cuts on dxy and dz are removed.
54 full5x5_sigmaIEtaIEtaCut,
56 absEInverseMinusPInverseCut,
57 relCombIsolationWithEALowPtCut,
58 relCombIsolationWithEAHighPtCut,
75 This is a container class to hold numerical cut values for either
76 the barrel or endcap set of cuts for electron cut-based ID
77 With respect to V3, the hOverE cut is made energy and pileup dependent as presented in
78 https://indico.cern.ch/event/662749/contributions/2763092/attachments/1545209/2425054/talk_electron_ID_2017.pdf
84 full5x5_sigmaIEtaIEtaCut,
88 absEInverseMinusPInverseCut,
89 relCombIsolationWithEALowPtCut,
90 relCombIsolationWithEAHighPtCut,
110 This is a container class to hold numerical cut values for either
111 the barrel or endcap set of cuts for electron cut-based ID
112 With respect to V4, the isolation cut is made pt dependent as presented in the following meeting: https://indico.cern.ch/event/697079/
118 full5x5_sigmaIEtaIEtaCut,
122 absEInverseMinusPInverseCut,
123 relCombIsolationWithEACut_C0,
124 relCombIsolationWithEACut_Cpt,
146 This is a container class to hold numerical cut values for either
147 the barrel or endcap set of cuts for electron cut-based HLT-safe preselection
151 full5x5_sigmaIEtaIEtaCut,
155 absEInverseMinusPInverseCut,
157 ecalPFClusterIsoLowPtCut,
158 ecalPFClusterIsoHighPtCut,
159 hcalPFClusterIsoLowPtCut,
160 hcalPFClusterIsoHighPtCut,
192 cutName = cms.string(
"MinPtCut"),
193 minPt = cms.double(5.0),
194 needsAdditionalProducts = cms.bool(
False),
195 isIgnored = cms.bool(
False)
201 cutName = cms.string(
"GsfEleSCEtaMultiRangeCut"),
202 useAbsEta = cms.bool(
True),
203 allowedEtaRanges = cms.VPSet(
204 cms.PSet( minEta = cms.double(0.0),
205 maxEta = cms.double(ebCutOff) ),
206 cms.PSet( minEta = cms.double(ebCutOff),
207 maxEta = cms.double(2.5) )
209 needsAdditionalProducts = cms.bool(
False),
210 isIgnored = cms.bool(
False)
216 cutName = cms.string(
'GsfEleEBEECut'),
217 cutString = cms.string(
"full5x5_sigmaIetaIeta"),
218 cutValueEB = cms.double( wpEB.full5x5_sigmaIEtaIEtaCut ),
219 cutValueEE = cms.double( wpEE.full5x5_sigmaIEtaIEtaCut ),
220 needsAdditionalProducts = cms.bool(
False),
221 isIgnored = cms.bool(
False)
226 valid_cut_condition =
"? superCluster.isNonnull && superCluster.seed.isNonnull ?"
227 actual_cut_string =
"abs(deltaEtaSuperClusterTrackAtVtx - superCluster.eta + superCluster.seed.eta)"
229 cutName = cms.string(
'GsfEleEBEECut'),
230 cutString = cms.string(valid_cut_condition + actual_cut_string +
" : 999999."),
231 cutValueEB = cms.double( wpEB.dEtaInSeedCut ),
232 cutValueEE = cms.double( wpEE.dEtaInSeedCut ),
233 needsAdditionalProducts = cms.bool(
False),
234 isIgnored = cms.bool(
False)
240 cutName = cms.string(
'GsfEleEBEECut'),
241 cutString = cms.string(
"abs(deltaEtaSuperClusterTrackAtVtx)"),
242 cutValueEB = cms.double( wpEB.dEtaInCut ),
243 cutValueEE = cms.double( wpEE.dEtaInCut ),
244 needsAdditionalProducts = cms.bool(
False),
245 isIgnored = cms.bool(
False)
251 cutName = cms.string(
'GsfEleEBEECut'),
252 cutString = cms.string(
"abs(deltaPhiSuperClusterTrackAtVtx)"),
253 cutValueEB = cms.double( wpEB.dPhiInCut ),
254 cutValueEE = cms.double( wpEE.dPhiInCut ),
255 needsAdditionalProducts = cms.bool(
False),
256 isIgnored = cms.bool(
False)
262 cutName = cms.string(
'GsfEleEBEECut'),
263 cutString = cms.string(
"hadronicOverEm"),
264 cutValueEB = cms.double( wpEB.hOverECut ),
265 cutValueEE = cms.double( wpEE.hOverECut ),
266 needsAdditionalProducts = cms.bool(
False),
267 isIgnored = cms.bool(
False)
273 cutName = cms.string(
'GsfEleHadronicOverEMEnergyScaledCut'),
274 barrelC0 = cms.double( wpEB.hOverECut_C0 ),
275 barrelCE = cms.double( wpEB.hOverECut_CE ),
276 barrelCr = cms.double( wpEB.hOverECut_Cr ),
277 endcapC0 = cms.double( wpEE.hOverECut_C0 ),
278 endcapCE = cms.double( wpEE.hOverECut_CE ),
279 endcapCr = cms.double( wpEE.hOverECut_Cr ),
280 rho = cms.InputTag(
"fixedGridRhoFastjetAll"),
281 barrelCutOff = cms.double(ebCutOff),
282 needsAdditionalProducts = cms.bool(
True),
283 isIgnored = cms.bool(
False)
290 cutName = cms.string(
'GsfEleEBEECut'),
291 cutString = cms.string(
"abs(1. - eSuperClusterOverP) / ecalEnergy"),
292 cutValueEB = cms.double( wpEB.absEInverseMinusPInverseCut ),
293 cutValueEE = cms.double( wpEE.absEInverseMinusPInverseCut ),
294 needsAdditionalProducts = cms.bool(
False),
295 isIgnored = cms.bool(
False)
302 cutName = cms.string(
'GsfEleCalPFClusterIsoCut'),
303 isoType = cms.int32( 0 ),
304 isoCutEBLowPt = cms.double( wpEB.ecalPFClusterIsoLowPtCut ),
305 isoCutEBHighPt = cms.double( wpEB.ecalPFClusterIsoHighPtCut ),
306 isoCutEELowPt = cms.double( wpEE.ecalPFClusterIsoLowPtCut ),
307 isoCutEEHighPt = cms.double( wpEE.ecalPFClusterIsoHighPtCut ),
308 isRelativeIso = cms.bool(
True),
309 ptCutOff = cms.double(20.0),
310 barrelCutOff = cms.double(ebCutOff),
311 rho = cms.InputTag(
"fixedGridRhoFastjetCentralCalo"),
313 effAreasConfigFile = cms.FileInPath( ecalIsoInputs ),
314 needsAdditionalProducts = cms.bool(
True),
315 isIgnored = cms.bool(
False)
322 cutName = cms.string(
'GsfEleCalPFClusterIsoCut'),
323 isoType = cms.int32( 1 ),
324 isoCutEBLowPt = cms.double( wpEB.hcalPFClusterIsoLowPtCut ),
325 isoCutEBHighPt = cms.double( wpEB.hcalPFClusterIsoHighPtCut ),
326 isoCutEELowPt = cms.double( wpEE.hcalPFClusterIsoLowPtCut ),
327 isoCutEEHighPt = cms.double( wpEE.hcalPFClusterIsoHighPtCut ),
328 isRelativeIso = cms.bool(
True),
329 ptCutOff = cms.double(20.0),
330 barrelCutOff = cms.double(ebCutOff),
331 rho = cms.InputTag(
"fixedGridRhoFastjetCentralCalo"),
333 effAreasConfigFile = cms.FileInPath( hcalIsoInputs ),
334 needsAdditionalProducts = cms.bool(
True),
335 isIgnored = cms.bool(
False)
341 cutName = cms.string(
'GsfEleTrkPtIsoCut'),
345 slopeTermEB = cms.double( wpEB.trkIsoSlopeTerm ),
346 slopeTermEE = cms.double( wpEE.trkIsoSlopeTerm ),
347 slopeStartEB = cms.double( wpEB.trkIsoSlopeStart ),
348 slopeStartEE = cms.double( wpEE.trkIsoSlopeStart ),
349 constTermEB = cms.double( wpEB.trkIsoConstTerm ),
350 constTermEE = cms.double( wpEE.trkIsoConstTerm ),
351 useHEEPIso = cms.bool(
False),
352 needsAdditionalProducts = cms.bool(
False),
353 isIgnored = cms.bool(
False)
359 cutName = cms.string(
'GsfEleEBEECut'),
360 cutString = cms.string(
"? gsfTrack.isNonnull ? gsfTrack.normalizedChi2 : 999990."),
361 cutValueEB = cms.double( wpEB.normalizedGsfChi2Cut ),
362 cutValueEE = cms.double( wpEE.normalizedGsfChi2Cut ),
363 needsAdditionalProducts = cms.bool(
False),
364 isIgnored = cms.bool(
False)
369 cutName = cms.string(
'GsfEleEffAreaPFIsoCut'),
370 isoCutEBLowPt = cms.double( wpEB.relCombIsolationWithEALowPtCut ),
371 isoCutEBHighPt = cms.double( wpEB.relCombIsolationWithEAHighPtCut ),
372 isoCutEELowPt = cms.double( wpEE.relCombIsolationWithEALowPtCut ),
373 isoCutEEHighPt = cms.double( wpEE.relCombIsolationWithEAHighPtCut ),
374 isRelativeIso = cms.bool(
True),
375 ptCutOff = cms.double(20.0),
376 barrelCutOff = cms.double(ebCutOff),
377 rho = cms.InputTag(
"fixedGridRhoFastjetAll"),
378 effAreasConfigFile = cms.FileInPath( isoInputs ),
379 needsAdditionalProducts = cms.bool(
True),
380 isIgnored = cms.bool(
False)
385 cutName = cms.string(
'GsfEleRelPFIsoScaledCut'),
386 barrelC0 = cms.double(wpEB.relCombIsolationWithEACut_C0),
387 endcapC0 = cms.double(wpEE.relCombIsolationWithEACut_C0),
388 barrelCpt = cms.double(wpEB.relCombIsolationWithEACut_Cpt),
389 endcapCpt = cms.double(wpEE.relCombIsolationWithEACut_Cpt),
390 barrelCutOff = cms.double(ebCutOff),
391 rho = cms.InputTag(
"fixedGridRhoFastjetAll"),
392 effAreasConfigFile = cms.FileInPath( isoInputs ),
393 needsAdditionalProducts = cms.bool(
True),
394 isIgnored = cms.bool(
False)
400 cutName = cms.string(
'GsfEleConversionVetoCut'),
401 conversionSrc = cms.InputTag(
'allConversions'),
402 conversionSrcMiniAOD = cms.InputTag(
'reducedEgamma:reducedConversions'),
403 beamspotSrc = cms.InputTag(
'offlineBeamSpot'),
404 needsAdditionalProducts = cms.bool(
True),
405 isIgnored = cms.bool(
False)
410 cutName = cms.string(
'GsfEleMissingHitsCut'),
411 maxMissingHitsEB = cms.uint32( wpEB.missingHitsCut ),
412 maxMissingHitsEE = cms.uint32( wpEE.missingHitsCut ),
413 barrelCutOff = cms.double(ebCutOff),
414 needsAdditionalProducts = cms.bool(
False),
415 isIgnored = cms.bool(
False)
419 return cms.PSet( cutName = cms.string(
'GsfEleDxyCut'),
420 dxyCutValueEB = cms.double( wpEB.dxyCut ),
421 dxyCutValueEE = cms.double( wpEE.dxyCut ),
422 vertexSrc = cms.InputTag(
"offlinePrimaryVertices"),
423 vertexSrcMiniAOD = cms.InputTag(
"offlineSlimmedPrimaryVertices"),
424 barrelCutOff = cms.double(ebCutOff),
425 needsAdditionalProducts = cms.bool(
True),
426 isIgnored = cms.bool(
False))
429 return cms.PSet( cutName = cms.string(
'GsfEleDzCut'),
430 dzCutValueEB = cms.double( wpEB.dzCut ),
431 dzCutValueEE = cms.double( wpEE.dzCut ),
432 vertexSrc = cms.InputTag(
"offlinePrimaryVertices"),
433 vertexSrcMiniAOD = cms.InputTag(
"offlineSlimmedPrimaryVertices"),
434 barrelCutOff = cms.double(ebCutOff),
435 needsAdditionalProducts = cms.bool(
True),
436 isIgnored = cms.bool(
False))
447 This function configures the full cms.PSet for a VID ID and returns it.
448 The inputs: two objects of the type WorkingPoint_V2, one
449 containing the cuts for the Barrel (EB) and the other one for the Endcap (EE).
450 The third argument is an object that contains information necessary
451 for isolation calculations.
454 parameterSet = cms.PSet(
456 idName = cms.string( wpEB.idName ),
482 This function configures the full cms.PSet for a VID ID and returns it.
483 The inputs: two objects of the type WorkingPoint_V3, one
484 containing the cuts for the Barrel (EB) and the other one for the Endcap (EE).
485 The third argument is an object that contains information necessary
486 for isolation calculations.
487 In this version, the impact parameter cuts dxy and dz are not present
490 parameterSet = cms.PSet(
492 idName = cms.string( wpEB.idName ),
511 This function configures the full cms.PSet for a VID ID and returns it.
512 The inputs: two objects of the type WorkingPoint_V3, one
513 containing the cuts for the Barrel (EB) and the other one for the Endcap (EE).
514 The third argument is an object that contains information necessary
515 for isolation calculations.
516 In this version, the energy and pileup dependent hOverE is introduced
519 parameterSet = cms.PSet(
521 idName = cms.string( wpEB.idName ),
540 This function configures the full cms.PSet for a VID ID and returns it.
541 The inputs: two objects of the type WorkingPoint_V3, one
542 containing the cuts for the Barrel (EB) and the other one for the Endcap (EE).
543 The third argument is an object that contains information necessary
544 for isolation calculations.
545 In this version, the pt dependent isolation is introduced
548 parameterSet = cms.PSet(
550 idName = cms.string( wpEB.idName ),
575 This function configures the full cms.PSet for a VID ID and returns it.
576 The inputs: two objects of the type EleHLTSelection_V1, one
577 containing the cuts for the Barrel (EB) and the other one for the Endcap (EE).
578 The third and fourth arguments are objects that contain information necessary
579 for isolation calculations for ECAL and HCAL.
582 parameterSet = cms.PSet(
583 idName = cms.string( wpEB.idName ),