2 import FWCore.ParameterSet.Config
as cms
13 A container class that holds the name of the file with the effective 14 area constants for pile-up corrections 24 This is a container class to hold numerical cut values for either 25 the barrel or endcap set of cuts for electron cut-based ID 31 full5x5_sigmaIEtaIEtaCut,
35 absEInverseMinusPInverseCut,
36 relCombIsolationWithDBetaLowPtCut,
37 relCombIsolationWithDBetaHighPtCut,
56 This is a container class to hold numerical cut values for either 57 the barrel or endcap set of cuts for electron cut-based ID 63 full5x5_sigmaIEtaIEtaCut,
67 absEInverseMinusPInverseCut,
68 relCombIsolationWithEALowPtCut,
69 relCombIsolationWithEAHighPtCut,
88 This is a container class to hold numerical cut values for either 89 the barrel or endcap set of cuts for electron cut-based ID 90 With resepect to V2, the impact parameter cuts on dxy and dz are removed. 96 full5x5_sigmaIEtaIEtaCut,
98 absEInverseMinusPInverseCut,
99 relCombIsolationWithEALowPtCut,
100 relCombIsolationWithEAHighPtCut,
117 This is a container class to hold numerical cut values for either 118 the barrel or endcap set of cuts for electron cut-based ID 119 With respect to V3, the hOverE cut is made energy and pileup dependend as presented in 120 https://indico.cern.ch/event/662749/contributions/2763092/attachments/1545209/2425054/talk_electron_ID_2017.pdf 126 full5x5_sigmaIEtaIEtaCut,
130 absEInverseMinusPInverseCut,
131 relCombIsolationWithEALowPtCut,
132 relCombIsolationWithEAHighPtCut,
152 This is a container class to hold numerical cut values for either 153 the barrel or endcap set of cuts for electron cut-based HLT-safe preselection 157 full5x5_sigmaIEtaIEtaCut,
161 absEInverseMinusPInverseCut,
163 ecalPFClusterIsoLowPtCut,
164 ecalPFClusterIsoHighPtCut,
165 hcalPFClusterIsoLowPtCut,
166 hcalPFClusterIsoHighPtCut,
198 cutName = cms.string(
"MinPtCut"),
199 minPt = cms.double(5.0),
200 needsAdditionalProducts = cms.bool(
False),
201 isIgnored = cms.bool(
False)
207 cutName = cms.string(
"GsfEleSCEtaMultiRangeCut"),
208 useAbsEta = cms.bool(
True),
209 allowedEtaRanges = cms.VPSet(
210 cms.PSet( minEta = cms.double(0.0),
211 maxEta = cms.double(ebCutOff) ),
212 cms.PSet( minEta = cms.double(ebCutOff),
213 maxEta = cms.double(2.5) )
215 needsAdditionalProducts = cms.bool(
False),
216 isIgnored = cms.bool(
False)
222 cutName = cms.string(
'GsfEleFull5x5SigmaIEtaIEtaCut'),
223 full5x5SigmaIEtaIEtaCutValueEB = cms.double( wpEB.full5x5_sigmaIEtaIEtaCut ),
224 full5x5SigmaIEtaIEtaCutValueEE = cms.double( wpEE.full5x5_sigmaIEtaIEtaCut ),
225 barrelCutOff = cms.double(ebCutOff),
226 needsAdditionalProducts = cms.bool(
False),
227 isIgnored = cms.bool(
False)
233 cutName = cms.string(
'GsfEleDEtaInSeedCut'),
234 dEtaInSeedCutValueEB = cms.double( wpEB.dEtaInSeedCut ),
235 dEtaInSeedCutValueEE = cms.double( wpEE.dEtaInSeedCut ),
236 barrelCutOff = cms.double(ebCutOff),
237 needsAdditionalProducts = cms.bool(
False),
238 isIgnored = cms.bool(
False)
244 cutName = cms.string(
'GsfEleDPhiInCut'),
245 dPhiInCutValueEB = cms.double( wpEB.dPhiInCut ),
246 dPhiInCutValueEE = cms.double( wpEE.dPhiInCut ),
247 barrelCutOff = cms.double(ebCutOff),
248 needsAdditionalProducts = cms.bool(
False),
249 isIgnored = cms.bool(
False)
255 cutName = cms.string(
'GsfEleHadronicOverEMCut'),
256 hadronicOverEMCutValueEB = cms.double( wpEB.hOverECut ),
257 hadronicOverEMCutValueEE = cms.double( wpEE.hOverECut ),
258 barrelCutOff = cms.double(ebCutOff),
259 needsAdditionalProducts = cms.bool(
False),
260 isIgnored = cms.bool(
False)
266 cutName = cms.string(
'GsfEleHadronicOverEMEnergyScaledCut'),
267 barrelC0 = cms.double( wpEB.hOverECut_C0 ),
268 barrelCE = cms.double( wpEB.hOverECut_CE ),
269 barrelCr = cms.double( wpEB.hOverECut_Cr ),
270 endcapC0 = cms.double( wpEE.hOverECut_C0 ),
271 endcapCE = cms.double( wpEE.hOverECut_CE ),
272 endcapCr = cms.double( wpEE.hOverECut_Cr ),
273 rho = cms.InputTag(
"fixedGridRhoFastjetAll"),
274 barrelCutOff = cms.double(ebCutOff),
275 needsAdditionalProducts = cms.bool(
True),
276 isIgnored = cms.bool(
False)
283 cutName = cms.string(
'GsfEleEInverseMinusPInverseCut'),
284 eInverseMinusPInverseCutValueEB = cms.double( wpEB.absEInverseMinusPInverseCut ),
285 eInverseMinusPInverseCutValueEE = cms.double( wpEE.absEInverseMinusPInverseCut ),
286 barrelCutOff = cms.double(ebCutOff),
287 needsAdditionalProducts = cms.bool(
False),
288 isIgnored = cms.bool(
False)
295 cutName = cms.string(
'GsfEleCalPFClusterIsoCut'),
296 isoType = cms.int32( 0 ),
297 isoCutEBLowPt = cms.double( wpEB.ecalPFClusterIsoLowPtCut ),
298 isoCutEBHighPt = cms.double( wpEB.ecalPFClusterIsoHighPtCut ),
299 isoCutEELowPt = cms.double( wpEE.ecalPFClusterIsoLowPtCut ),
300 isoCutEEHighPt = cms.double( wpEE.ecalPFClusterIsoHighPtCut ),
301 isRelativeIso = cms.bool(
True),
302 ptCutOff = cms.double(20.0),
303 barrelCutOff = cms.double(ebCutOff),
304 rho = cms.InputTag(
"fixedGridRhoFastjetCentralCalo"),
306 effAreasConfigFile = cms.FileInPath( ecalIsoInputs.isoEffAreas ),
307 needsAdditionalProducts = cms.bool(
True),
308 isIgnored = cms.bool(
False)
315 cutName = cms.string(
'GsfEleCalPFClusterIsoCut'),
316 isoType = cms.int32( 1 ),
317 isoCutEBLowPt = cms.double( wpEB.hcalPFClusterIsoLowPtCut ),
318 isoCutEBHighPt = cms.double( wpEB.hcalPFClusterIsoHighPtCut ),
319 isoCutEELowPt = cms.double( wpEE.hcalPFClusterIsoLowPtCut ),
320 isoCutEEHighPt = cms.double( wpEE.hcalPFClusterIsoHighPtCut ),
321 isRelativeIso = cms.bool(
True),
322 ptCutOff = cms.double(20.0),
323 barrelCutOff = cms.double(ebCutOff),
324 rho = cms.InputTag(
"fixedGridRhoFastjetCentralCalo"),
326 effAreasConfigFile = cms.FileInPath( hcalIsoInputs.isoEffAreas ),
327 needsAdditionalProducts = cms.bool(
True),
328 isIgnored = cms.bool(
False)
334 cutName = cms.string(
'GsfEleTrkPtIsoCut'),
338 slopeTermEB = cms.double( wpEB.trkIsoSlopeTerm ),
339 slopeTermEE = cms.double( wpEE.trkIsoSlopeTerm ),
340 slopeStartEB = cms.double( wpEB.trkIsoSlopeStart ),
341 slopeStartEE = cms.double( wpEE.trkIsoSlopeStart ),
342 constTermEB = cms.double( wpEB.trkIsoConstTerm ),
343 constTermEE = cms.double( wpEE.trkIsoConstTerm ),
344 needsAdditionalProducts = cms.bool(
False),
345 isIgnored = cms.bool(
False)
351 cutName = cms.string(
'GsfEleNormalizedGsfChi2Cut'),
352 normalizedGsfChi2CutValueEB = cms.double( wpEB.normalizedGsfChi2Cut ),
353 normalizedGsfChi2CutValueEE = cms.double( wpEE.normalizedGsfChi2Cut ),
354 barrelCutOff = cms.double(ebCutOff),
355 needsAdditionalProducts = cms.bool(
False),
356 isIgnored = cms.bool(
False)
361 cutName = cms.string(
'GsfEleEffAreaPFIsoCut'),
362 isoCutEBLowPt = cms.double( wpEB.relCombIsolationWithEALowPtCut ),
363 isoCutEBHighPt = cms.double( wpEB.relCombIsolationWithEAHighPtCut ),
364 isoCutEELowPt = cms.double( wpEE.relCombIsolationWithEALowPtCut ),
365 isoCutEEHighPt = cms.double( wpEE.relCombIsolationWithEAHighPtCut ),
366 isRelativeIso = cms.bool(
True),
367 ptCutOff = cms.double(20.0),
368 barrelCutOff = cms.double(ebCutOff),
369 rho = cms.InputTag(
"fixedGridRhoFastjetAll"),
370 effAreasConfigFile = cms.FileInPath( isoInputs.isoEffAreas ),
371 needsAdditionalProducts = cms.bool(
True),
372 isIgnored = cms.bool(
False)
377 cutName = cms.string(
'GsfEleConversionVetoCut'),
378 conversionSrc = cms.InputTag(
'allConversions'),
379 conversionSrcMiniAOD = cms.InputTag(
'reducedEgamma:reducedConversions'),
380 beamspotSrc = cms.InputTag(
'offlineBeamSpot'),
381 needsAdditionalProducts = cms.bool(
True),
382 isIgnored = cms.bool(
False)
387 cutName = cms.string(
'GsfEleMissingHitsCut'),
388 maxMissingHitsEB = cms.uint32( wpEB.missingHitsCut ),
389 maxMissingHitsEE = cms.uint32( wpEE.missingHitsCut ),
390 barrelCutOff = cms.double(ebCutOff),
391 needsAdditionalProducts = cms.bool(
False),
392 isIgnored = cms.bool(
False)
405 This function configures the full cms.PSet for a VID ID and returns it. 406 The inputs: two objects of the type WorkingPoint_V1, one 407 containing the cuts for the Barrel (EB) and the other one for the Endcap (EE). 410 parameterSet = cms.PSet(
412 idName = cms.string( wpEB.idName ),
414 cms.PSet( cutName = cms.string(
"MinPtCut"),
415 minPt = cms.double(5.0),
416 needsAdditionalProducts = cms.bool(
False),
417 isIgnored = cms.bool(
False) ),
418 cms.PSet( cutName = cms.string(
"GsfEleSCEtaMultiRangeCut"),
419 useAbsEta = cms.bool(
True),
420 allowedEtaRanges = cms.VPSet(
421 cms.PSet( minEta = cms.double(0.0),
422 maxEta = cms.double(ebCutOff) ),
423 cms.PSet( minEta = cms.double(ebCutOff),
424 maxEta = cms.double(2.5) )
426 needsAdditionalProducts = cms.bool(
False),
427 isIgnored = cms.bool(
False)),
428 cms.PSet( cutName = cms.string(
'GsfEleDEtaInCut'),
429 dEtaInCutValueEB = cms.double( wpEB.dEtaInCut ),
430 dEtaInCutValueEE = cms.double( wpEE.dEtaInCut ),
431 barrelCutOff = cms.double(ebCutOff),
432 needsAdditionalProducts = cms.bool(
False),
433 isIgnored = cms.bool(
False)),
434 cms.PSet( cutName = cms.string(
'GsfEleDPhiInCut'),
435 dPhiInCutValueEB = cms.double( wpEB.dPhiInCut ),
436 dPhiInCutValueEE = cms.double( wpEE.dPhiInCut ),
437 barrelCutOff = cms.double(ebCutOff),
438 needsAdditionalProducts = cms.bool(
False),
439 isIgnored = cms.bool(
False)),
440 cms.PSet( cutName = cms.string(
'GsfEleFull5x5SigmaIEtaIEtaCut'),
441 full5x5SigmaIEtaIEtaCutValueEB = cms.double( wpEB.full5x5_sigmaIEtaIEtaCut ),
442 full5x5SigmaIEtaIEtaCutValueEE = cms.double( wpEE.full5x5_sigmaIEtaIEtaCut ),
443 barrelCutOff = cms.double(ebCutOff),
444 needsAdditionalProducts = cms.bool(
False),
445 isIgnored = cms.bool(
False)),
446 cms.PSet( cutName = cms.string(
'GsfEleHadronicOverEMCut'),
447 hadronicOverEMCutValueEB = cms.double( wpEB.hOverECut ),
448 hadronicOverEMCutValueEE = cms.double( wpEE.hOverECut ),
449 barrelCutOff = cms.double(ebCutOff),
450 needsAdditionalProducts = cms.bool(
False),
451 isIgnored = cms.bool(
False)),
452 cms.PSet( cutName = cms.string(
'GsfEleDxyCut'),
453 dxyCutValueEB = cms.double( wpEB.dxyCut ),
454 dxyCutValueEE = cms.double( wpEE.dxyCut ),
455 vertexSrc = cms.InputTag(
"offlinePrimaryVertices"),
456 vertexSrcMiniAOD = cms.InputTag(
"offlineSlimmedPrimaryVertices"),
457 barrelCutOff = cms.double(ebCutOff),
458 needsAdditionalProducts = cms.bool(
True),
459 isIgnored = cms.bool(
False)),
460 cms.PSet( cutName = cms.string(
'GsfEleDzCut'),
461 dzCutValueEB = cms.double( wpEB.dzCut ),
462 dzCutValueEE = cms.double( wpEE.dzCut ),
463 vertexSrc = cms.InputTag(
"offlinePrimaryVertices"),
464 vertexSrcMiniAOD = cms.InputTag(
"offlineSlimmedPrimaryVertices"),
465 barrelCutOff = cms.double(ebCutOff),
466 needsAdditionalProducts = cms.bool(
True),
467 isIgnored = cms.bool(
False)),
468 cms.PSet( cutName = cms.string(
'GsfEleEInverseMinusPInverseCut'),
469 eInverseMinusPInverseCutValueEB = cms.double( wpEB.absEInverseMinusPInverseCut ),
470 eInverseMinusPInverseCutValueEE = cms.double( wpEE.absEInverseMinusPInverseCut ),
471 barrelCutOff = cms.double(ebCutOff),
472 needsAdditionalProducts = cms.bool(
False),
473 isIgnored = cms.bool(
False)),
474 cms.PSet( cutName = cms.string(
'GsfEleDeltaBetaIsoCutStandalone'),
475 isoCutEBLowPt = cms.double( wpEB.relCombIsolationWithDBetaLowPtCut ),
476 isoCutEBHighPt = cms.double( wpEB.relCombIsolationWithDBetaHighPtCut ),
477 isoCutEELowPt = cms.double( wpEE.relCombIsolationWithDBetaLowPtCut ),
478 isoCutEEHighPt = cms.double( wpEE.relCombIsolationWithDBetaHighPtCut ),
479 isRelativeIso = cms.bool(
True),
480 deltaBetaConstant = cms.double(0.5),
481 ptCutOff = cms.double(20.0),
482 barrelCutOff = cms.double(ebCutOff),
483 needsAdditionalProducts = cms.bool(
False),
484 isIgnored = cms.bool(
False)),
485 cms.PSet( cutName = cms.string(
'GsfEleConversionVetoCut'),
486 conversionSrc = cms.InputTag(
'allConversions'),
487 conversionSrcMiniAOD = cms.InputTag(
'reducedEgamma:reducedConversions'),
488 beamspotSrc = cms.InputTag(
'offlineBeamSpot'),
489 needsAdditionalProducts = cms.bool(
True),
490 isIgnored = cms.bool(
False)),
491 cms.PSet( cutName = cms.string(
'GsfEleMissingHitsCut'),
492 maxMissingHitsEB = cms.uint32( wpEB.missingHitsCut ),
493 maxMissingHitsEE = cms.uint32( wpEE.missingHitsCut ),
494 barrelCutOff = cms.double(ebCutOff),
495 needsAdditionalProducts = cms.bool(
False),
496 isIgnored = cms.bool(
False) ),
511 This function configures the full cms.PSet for a VID ID and returns it. 512 The inputs: two objects of the type WorkingPoint_V2, 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. 518 parameterSet = cms.PSet(
520 idName = cms.string( wpEB.idName ),
522 cms.PSet( cutName = cms.string(
"MinPtCut"),
523 minPt = cms.double(5.0),
524 needsAdditionalProducts = cms.bool(
False),
525 isIgnored = cms.bool(
False) ),
526 cms.PSet( cutName = cms.string(
"GsfEleSCEtaMultiRangeCut"),
527 useAbsEta = cms.bool(
True),
528 allowedEtaRanges = cms.VPSet(
529 cms.PSet( minEta = cms.double(0.0),
530 maxEta = cms.double(ebCutOff) ),
531 cms.PSet( minEta = cms.double(ebCutOff),
532 maxEta = cms.double(2.5) )
534 needsAdditionalProducts = cms.bool(
False),
535 isIgnored = cms.bool(
False)),
536 cms.PSet( cutName = cms.string(
'GsfEleDEtaInCut'),
537 dEtaInCutValueEB = cms.double( wpEB.dEtaInCut ),
538 dEtaInCutValueEE = cms.double( wpEE.dEtaInCut ),
539 barrelCutOff = cms.double(ebCutOff),
540 needsAdditionalProducts = cms.bool(
False),
541 isIgnored = cms.bool(
False)),
542 cms.PSet( cutName = cms.string(
'GsfEleDPhiInCut'),
543 dPhiInCutValueEB = cms.double( wpEB.dPhiInCut ),
544 dPhiInCutValueEE = cms.double( wpEE.dPhiInCut ),
545 barrelCutOff = cms.double(ebCutOff),
546 needsAdditionalProducts = cms.bool(
False),
547 isIgnored = cms.bool(
False)),
548 cms.PSet( cutName = cms.string(
'GsfEleFull5x5SigmaIEtaIEtaCut'),
549 full5x5SigmaIEtaIEtaCutValueEB = cms.double( wpEB.full5x5_sigmaIEtaIEtaCut ),
550 full5x5SigmaIEtaIEtaCutValueEE = cms.double( wpEE.full5x5_sigmaIEtaIEtaCut ),
551 barrelCutOff = cms.double(ebCutOff),
552 needsAdditionalProducts = cms.bool(
False),
553 isIgnored = cms.bool(
False)),
554 cms.PSet( cutName = cms.string(
'GsfEleHadronicOverEMCut'),
555 hadronicOverEMCutValueEB = cms.double( wpEB.hOverECut ),
556 hadronicOverEMCutValueEE = cms.double( wpEE.hOverECut ),
557 barrelCutOff = cms.double(ebCutOff),
558 needsAdditionalProducts = cms.bool(
False),
559 isIgnored = cms.bool(
False)),
560 cms.PSet( cutName = cms.string(
'GsfEleDxyCut'),
561 dxyCutValueEB = cms.double( wpEB.dxyCut ),
562 dxyCutValueEE = cms.double( wpEE.dxyCut ),
563 vertexSrc = cms.InputTag(
"offlinePrimaryVertices"),
564 vertexSrcMiniAOD = cms.InputTag(
"offlineSlimmedPrimaryVertices"),
565 barrelCutOff = cms.double(ebCutOff),
566 needsAdditionalProducts = cms.bool(
True),
567 isIgnored = cms.bool(
False)),
568 cms.PSet( cutName = cms.string(
'GsfEleDzCut'),
569 dzCutValueEB = cms.double( wpEB.dzCut ),
570 dzCutValueEE = cms.double( wpEE.dzCut ),
571 vertexSrc = cms.InputTag(
"offlinePrimaryVertices"),
572 vertexSrcMiniAOD = cms.InputTag(
"offlineSlimmedPrimaryVertices"),
573 barrelCutOff = cms.double(ebCutOff),
574 needsAdditionalProducts = cms.bool(
True),
575 isIgnored = cms.bool(
False)),
576 cms.PSet( cutName = cms.string(
'GsfEleEInverseMinusPInverseCut'),
577 eInverseMinusPInverseCutValueEB = cms.double( wpEB.absEInverseMinusPInverseCut ),
578 eInverseMinusPInverseCutValueEE = cms.double( wpEE.absEInverseMinusPInverseCut ),
579 barrelCutOff = cms.double(ebCutOff),
580 needsAdditionalProducts = cms.bool(
False),
581 isIgnored = cms.bool(
False)),
582 cms.PSet( cutName = cms.string(
'GsfEleEffAreaPFIsoCut'),
583 isoCutEBLowPt = cms.double( wpEB.relCombIsolationWithEALowPtCut ),
584 isoCutEBHighPt = cms.double( wpEB.relCombIsolationWithEAHighPtCut ),
585 isoCutEELowPt = cms.double( wpEE.relCombIsolationWithEALowPtCut ),
586 isoCutEEHighPt = cms.double( wpEE.relCombIsolationWithEAHighPtCut ),
587 isRelativeIso = cms.bool(
True),
588 ptCutOff = cms.double(20.0),
589 barrelCutOff = cms.double(ebCutOff),
590 rho = cms.InputTag(
"fixedGridRhoFastjetAll"),
591 effAreasConfigFile = cms.FileInPath( isoInputs.isoEffAreas ),
592 needsAdditionalProducts = cms.bool(
True),
593 isIgnored = cms.bool(
False) ),
594 cms.PSet( cutName = cms.string(
'GsfEleConversionVetoCut'),
595 conversionSrc = cms.InputTag(
'allConversions'),
596 conversionSrcMiniAOD = cms.InputTag(
'reducedEgamma:reducedConversions'),
597 beamspotSrc = cms.InputTag(
'offlineBeamSpot'),
598 needsAdditionalProducts = cms.bool(
True),
599 isIgnored = cms.bool(
False)),
600 cms.PSet( cutName = cms.string(
'GsfEleMissingHitsCut'),
601 maxMissingHitsEB = cms.uint32( wpEB.missingHitsCut ),
602 maxMissingHitsEE = cms.uint32( wpEE.missingHitsCut ),
603 barrelCutOff = cms.double(ebCutOff),
604 needsAdditionalProducts = cms.bool(
False),
605 isIgnored = cms.bool(
False) ),
618 This function configures the full cms.PSet for a VID ID and returns it. 619 The inputs: two objects of the type WorkingPoint_V3, one 620 containing the cuts for the Barrel (EB) and the other one for the Endcap (EE). 621 The third argument is an object that contains information necessary 622 for isolation calculations. 623 In this version, the impact parameter cuts dxy and dz are not present 626 parameterSet = cms.PSet(
628 idName = cms.string( wpEB.idName ),
647 This function configures the full cms.PSet for a VID ID and returns it. 648 The inputs: two objects of the type WorkingPoint_V3, one 649 containing the cuts for the Barrel (EB) and the other one for the Endcap (EE). 650 The third argument is an object that contains information necessary 651 for isolation calculations. 652 In this version, the energy and pileup dependend hOverE is introduced 655 parameterSet = cms.PSet(
657 idName = cms.string( wpEB.idName ),
682 This function configures the full cms.PSet for a VID ID and returns it. 683 The inputs: two objects of the type EleHLTSelection_V1, one 684 containing the cuts for the Barrel (EB) and the other one for the Endcap (EE). 685 The third and fourth arguments are objects that contain information necessary 686 for isolation calculations for ECAL and HCAL. 689 parameterSet = cms.PSet(
690 idName = cms.string( wpEB.idName ),