diff --git a/PhysicsTools/NanoAOD/python/electrons_cff.py b/PhysicsTools/NanoAOD/python/electrons_cff.py index db08c045e1acd..d26765e553438 100644 --- a/PhysicsTools/NanoAOD/python/electrons_cff.py +++ b/PhysicsTools/NanoAOD/python/electrons_cff.py @@ -34,6 +34,7 @@ ) run2_miniAOD_80XLegacy.toModify( slimmedElectronsUpdated, computeMiniIso = True ) # bypass the update to 106X in 106X to only pick up the IP sign fix +run2_egamma_2016.toModify(slimmedElectronsUpdated, src = cms.InputTag("slimmedElectrons")) run2_egamma_2017.toModify(slimmedElectronsUpdated, src = cms.InputTag("slimmedElectrons")) run2_egamma_2018.toModify(slimmedElectronsUpdated, src = cms.InputTag("slimmedElectrons")) run2_nanoAOD_106Xv1.toModify(slimmedElectronsUpdated, src = cms.InputTag("slimmedElectrons")) @@ -129,7 +130,7 @@ def _get_bitmapVIDForEle_docstring(modules,WorkingPoints): -for modifier in run2_egamma_2017,run2_egamma_2018,run2_miniAOD_80XLegacy,run2_nanoAOD_94XMiniAODv1,run2_nanoAOD_94XMiniAODv2,run2_nanoAOD_94X2016,run2_nanoAOD_102Xv1,run2_nanoAOD_106Xv1: +for modifier in run2_egamma_2016,run2_egamma_2017,run2_egamma_2018,run2_miniAOD_80XLegacy,run2_nanoAOD_94XMiniAODv1,run2_nanoAOD_94XMiniAODv2,run2_nanoAOD_94X2016,run2_nanoAOD_102Xv1,run2_nanoAOD_106Xv1: modifier.toModify(bitmapVIDForEle, src = "slimmedElectronsUpdated") modifier.toModify(bitmapVIDForEleSpring15, src = "slimmedElectronsUpdated") modifier.toModify(bitmapVIDForEleSum16, src = "slimmedElectronsUpdated") @@ -144,7 +145,7 @@ def _get_bitmapVIDForEle_docstring(modules,WorkingPoints): EAFile_MiniIso = cms.FileInPath("RecoEgamma/ElectronIdentification/data/Fall17/effAreaElectrons_cone03_pfNeuHadronsAndPhotons_94X.txt"), EAFile_PFIso = cms.FileInPath("RecoEgamma/ElectronIdentification/data/Fall17/effAreaElectrons_cone03_pfNeuHadronsAndPhotons_94X.txt"), ) -for modifier in run2_egamma_2017,run2_egamma_2018, run2_nanoAOD_94XMiniAODv1,run2_nanoAOD_94XMiniAODv2,run2_nanoAOD_94X2016,run2_nanoAOD_102Xv1,run2_nanoAOD_106Xv1: +for modifier in run2_egamma_2016,run2_egamma_2017,run2_egamma_2018, run2_nanoAOD_94XMiniAODv1,run2_nanoAOD_94XMiniAODv2,run2_nanoAOD_94X2016,run2_nanoAOD_102Xv1,run2_nanoAOD_106Xv1: modifier.toModify(isoForEle, src = "slimmedElectronsUpdated") run2_miniAOD_80XLegacy.toModify(isoForEle, src = "slimmedElectronsUpdated", @@ -159,15 +160,27 @@ def _get_bitmapVIDForEle_docstring(modules,WorkingPoints): srcLep = cms.InputTag("slimmedElectrons"), srcVtx = cms.InputTag("offlineSlimmedPrimaryVertices"), ) -for modifier in run2_egamma_2017,run2_egamma_2018, run2_miniAOD_80XLegacy,run2_nanoAOD_94XMiniAODv1,run2_nanoAOD_94XMiniAODv2,run2_nanoAOD_94X2016,run2_nanoAOD_102Xv1,run2_nanoAOD_106Xv1: +for modifier in run2_egamma_2016,run2_egamma_2017,run2_egamma_2018, run2_miniAOD_80XLegacy,run2_nanoAOD_94XMiniAODv1,run2_nanoAOD_94XMiniAODv2,run2_nanoAOD_94X2016,run2_nanoAOD_102Xv1,run2_nanoAOD_106Xv1: modifier.toModify(ptRatioRelForEle, srcLep = "slimmedElectronsUpdated") seedGainEle = cms.EDProducer("ElectronSeedGainProducer", src = cms.InputTag("slimmedElectrons")) -for modifier in run2_egamma_2017,run2_egamma_2018, run2_miniAOD_80XLegacy,run2_nanoAOD_94XMiniAODv1,run2_nanoAOD_94XMiniAODv2,run2_nanoAOD_94X2016,run2_nanoAOD_102Xv1,run2_nanoAOD_106Xv1: +for modifier in run2_egamma_2016,run2_egamma_2017,run2_egamma_2018, run2_miniAOD_80XLegacy,run2_nanoAOD_94XMiniAODv1,run2_nanoAOD_94XMiniAODv2,run2_nanoAOD_94X2016,run2_nanoAOD_102Xv1,run2_nanoAOD_106Xv1: modifier.toModify(seedGainEle, src = "slimmedElectronsUpdated") import RecoEgamma.EgammaTools.calibratedEgammas_cff +calibratedPatElectronsUL16preVFP = RecoEgamma.EgammaTools.calibratedEgammas_cff.calibratedPatElectrons.clone( + produceCalibratedObjs = False, + correctionFile = cms.string("EgammaAnalysis/ElectronTools/data/ScalesSmearings/Run2016_UltraLegacy_preVFP_RunFineEtaR9Gain"), +) +(run2_egamma_2016 & tracker_apv_vfp30_2016).toModify(calibratedPatElectronsUL16preVFP, src = "slimmedElectronsUpdated") + +calibratedPatElectronsUL16postVFP = RecoEgamma.EgammaTools.calibratedEgammas_cff.calibratedPatElectrons.clone( + produceCalibratedObjs = False, + correctionFile = cms.string("EgammaAnalysis/ElectronTools/data/ScalesSmearings/Run2016_UltraLegacy_postVFP_RunFineEtaR9Gain"), +) +(run2_egamma_2016 & ~tracker_apv_vfp30_2016).toModify(calibratedPatElectronsUL16postVFP, src = "slimmedElectronsUpdated") + calibratedPatElectronsUL17 = RecoEgamma.EgammaTools.calibratedEgammas_cff.calibratedPatElectrons.clone( produceCalibratedObjs = False, correctionFile = cms.string("EgammaAnalysis/ElectronTools/data/ScalesSmearings/Run2017_24Feb2020_runEtaR9Gain_v2"), @@ -190,7 +203,7 @@ def _get_bitmapVIDForEle_docstring(modules,WorkingPoints): produceCalibratedObjs = False, correctionFile = cms.string("EgammaAnalysis/ElectronTools/data/ScalesSmearings/Run2017_17Nov2017_v1_ele_unc"), ) -for modifier in run2_nanoAOD_94XMiniAODv1,run2_nanoAOD_94XMiniAODv2,run2_nanoAOD_94X2016: +for modifier in run2_miniAOD_80XLegacy,run2_nanoAOD_94XMiniAODv1,run2_nanoAOD_94XMiniAODv2,run2_nanoAOD_94X2016: modifier.toModify(calibratedPatElectrons94X, src = "slimmedElectronsUpdated") calibratedPatElectrons102X = RecoEgamma.EgammaTools.calibratedEgammas_cff.calibratedPatElectrons.clone( @@ -250,9 +263,28 @@ def _get_bitmapVIDForEle_docstring(modules,WorkingPoints): jetForLepJetVar = cms.InputTag("ptRatioRelForEle:jetForLepJetVar") # warning: Ptr is null if no match is found ), ) -for modifier in run2_egamma_2017,run2_egamma_2018, run2_miniAOD_80XLegacy,run2_nanoAOD_94XMiniAODv1,run2_nanoAOD_94XMiniAODv2,run2_nanoAOD_94X2016,run2_nanoAOD_102Xv1,run2_nanoAOD_106Xv1: +for modifier in run2_egamma_2016,run2_egamma_2017,run2_egamma_2018, run2_miniAOD_80XLegacy,run2_nanoAOD_94XMiniAODv1,run2_nanoAOD_94XMiniAODv2,run2_nanoAOD_94X2016,run2_nanoAOD_102Xv1,run2_nanoAOD_106Xv1: modifier.toModify(slimmedElectronsWithUserData, src = "slimmedElectronsUpdated") +(run2_egamma_2016 & tracker_apv_vfp30_2016).toModify(slimmedElectronsWithUserData.userFloats, + ecalTrkEnergyErrPostCorrNew = cms.InputTag("calibratedPatElectronsUL16preVFP","ecalTrkEnergyErrPostCorr"), + ecalTrkEnergyPreCorrNew = cms.InputTag("calibratedPatElectronsUL16preVFP","ecalTrkEnergyPreCorr"), + ecalTrkEnergyPostCorrNew = cms.InputTag("calibratedPatElectronsUL16preVFP","ecalTrkEnergyPostCorr"), + energyScaleUp = cms.InputTag("calibratedPatElectronsUL16preVFP","energyScaleUp"), + energyScaleDown = cms.InputTag("calibratedPatElectronsUL16preVFP","energyScaleDown"), + energySigmaUp = cms.InputTag("calibratedPatElectronsUL16preVFP","energySigmaUp"), + energySigmaDown = cms.InputTag("calibratedPatElectronsUL16preVFP","energySigmaDown"), +) + +(run2_egamma_2016 & ~tracker_apv_vfp30_2016).toModify(slimmedElectronsWithUserData.userFloats, + ecalTrkEnergyErrPostCorrNew = cms.InputTag("calibratedPatElectronsUL16postVFP","ecalTrkEnergyErrPostCorr"), + ecalTrkEnergyPreCorrNew = cms.InputTag("calibratedPatElectronsUL16postVFP","ecalTrkEnergyPreCorr"), + ecalTrkEnergyPostCorrNew = cms.InputTag("calibratedPatElectronsUL16postVFP","ecalTrkEnergyPostCorr"), + energyScaleUp = cms.InputTag("calibratedPatElectronsUL16postVFP","energyScaleUp"), + energyScaleDown = cms.InputTag("calibratedPatElectronsUL16postVFP","energyScaleDown"), + energySigmaUp = cms.InputTag("calibratedPatElectronsUL16postVFP","energySigmaUp"), + energySigmaDown = cms.InputTag("calibratedPatElectronsUL16postVFP","energySigmaDown"), +) run2_egamma_2017.toModify(slimmedElectronsWithUserData.userFloats, ecalTrkEnergyErrPostCorrNew = cms.InputTag("calibratedPatElectronsUL17","ecalTrkEnergyErrPostCorr"), @@ -282,11 +314,21 @@ def _get_bitmapVIDForEle_docstring(modules,WorkingPoints): ecalTrkEnergyErrPostCorrNew = cms.InputTag("calibratedPatElectrons80XLegacy","ecalTrkEnergyErrPostCorr"), ecalTrkEnergyPreCorrNew = cms.InputTag("calibratedPatElectrons80XLegacy","ecalTrkEnergyPreCorr"), ecalTrkEnergyPostCorrNew = cms.InputTag("calibratedPatElectrons80XLegacy","ecalTrkEnergyPostCorr"), + energyScaleUp = cms.InputTag("calibratedPatElectrons80XLegacy","energyScaleUp"), + energyScaleDown = cms.InputTag("calibratedPatElectrons80XLegacy","energyScaleDown"), + energySigmaUp = cms.InputTag("calibratedPatElectrons80XLegacy","energySigmaUp"), + energySigmaDown = cms.InputTag("calibratedPatElectrons80XLegacy","energySigmaDown"), + ) run2_nanoAOD_94XMiniAODv1.toModify(slimmedElectronsWithUserData.userFloats, ecalTrkEnergyErrPostCorrNew = cms.InputTag("calibratedPatElectrons94X","ecalTrkEnergyErrPostCorr"), ecalTrkEnergyPreCorrNew = cms.InputTag("calibratedPatElectrons94X","ecalTrkEnergyPreCorr"), ecalTrkEnergyPostCorrNew = cms.InputTag("calibratedPatElectrons94X","ecalTrkEnergyPostCorr"), + energyScaleUp = cms.InputTag("calibratedPatElectrons94X","energyScaleUp"), + energyScaleDown = cms.InputTag("calibratedPatElectrons94X","energyScaleDown"), + energySigmaUp = cms.InputTag("calibratedPatElectrons94X","energySigmaUp"), + energySigmaDown = cms.InputTag("calibratedPatElectrons94X","energySigmaDown"), + ) @@ -298,12 +340,22 @@ def _get_bitmapVIDForEle_docstring(modules,WorkingPoints): ecalTrkEnergyErrPostCorrNew = cms.InputTag("calibratedPatElectrons94X","ecalTrkEnergyErrPostCorr"), ecalTrkEnergyPreCorrNew = cms.InputTag("calibratedPatElectrons94X","ecalTrkEnergyPreCorr"), ecalTrkEnergyPostCorrNew = cms.InputTag("calibratedPatElectrons94X","ecalTrkEnergyPostCorr"), + energyScaleUp = cms.InputTag("calibratedPatElectrons94X","energyScaleUp"), + energyScaleDown = cms.InputTag("calibratedPatElectrons94X","energyScaleDown"), + energySigmaUp = cms.InputTag("calibratedPatElectrons94X","energySigmaUp"), + energySigmaDown = cms.InputTag("calibratedPatElectrons94X","energySigmaDown"), + ) run2_nanoAOD_102Xv1.toModify(slimmedElectronsWithUserData.userFloats, ecalTrkEnergyErrPostCorrNew = cms.InputTag("calibratedPatElectrons102X","ecalTrkEnergyErrPostCorr"), ecalTrkEnergyPreCorrNew = cms.InputTag("calibratedPatElectrons102X","ecalTrkEnergyPreCorr"), ecalTrkEnergyPostCorrNew = cms.InputTag("calibratedPatElectrons102X","ecalTrkEnergyPostCorr"), + energyScaleUp = cms.InputTag("calibratedPatElectrons102X","energyScaleUp"), + energyScaleDown = cms.InputTag("calibratedPatElectrons102X","energyScaleDown"), + energySigmaUp = cms.InputTag("calibratedPatElectrons102X","energySigmaUp"), + energySigmaDown = cms.InputTag("calibratedPatElectrons102X","energySigmaDown"), + ) run2_miniAOD_80XLegacy.toModify(slimmedElectronsWithUserData.userIntFromBools, @@ -447,7 +499,7 @@ def _get_bitmapVIDForEle_docstring(modules,WorkingPoints): #the94X miniAOD V2 had a bug in the scale and smearing for electrons in the E/p comb #therefore we redo it but but we need use a new name for the userFloat as we cant override existing userfloats #for technical reasons -for modifier in run2_egamma_2017,run2_egamma_2018, run2_nanoAOD_94XMiniAODv1,run2_nanoAOD_94XMiniAODv2,run2_miniAOD_80XLegacy,run2_nanoAOD_102Xv1: +for modifier in run2_egamma_2016, run2_egamma_2017,run2_egamma_2018, run2_nanoAOD_94XMiniAODv1,run2_nanoAOD_94XMiniAODv2,run2_miniAOD_80XLegacy,run2_nanoAOD_102Xv1: modifier.toModify(electronTable.variables, pt = Var("pt*userFloat('ecalTrkEnergyPostCorrNew')/userFloat('ecalTrkEnergyPreCorrNew')", float, precision=-1, doc="p_{T}"), energyErr = Var("userFloat('ecalTrkEnergyErrPostCorrNew')", float, precision=6, doc="energy error of the cluster-track combination"), @@ -545,6 +597,14 @@ def _get_bitmapVIDForEle_docstring(modules,WorkingPoints): _withULAndUpdate_sequence = cms.Sequence(slimmedElectronsUpdated + electronSequence.copy()) +_withUL16preVFPAndUpdateScale_sequence = _withULAndUpdate_sequence.copy() +_withUL16preVFPAndUpdateScale_sequence.replace(slimmedElectronsWithUserData, calibratedPatElectronsUL16preVFP + slimmedElectronsWithUserData) +(run2_egamma_2016 & tracker_apv_vfp30_2016).toReplaceWith(electronSequence, _withUL16preVFPAndUpdateScale_sequence) + +_withUL16postVFPAndUpdateScale_sequence = _withULAndUpdate_sequence.copy() +_withUL16postVFPAndUpdateScale_sequence.replace(slimmedElectronsWithUserData, calibratedPatElectronsUL16postVFP + slimmedElectronsWithUserData) +(run2_egamma_2016 & ~tracker_apv_vfp30_2016).toReplaceWith(electronSequence, _withUL16postVFPAndUpdateScale_sequence) + _withUL17AndUpdateScale_sequence = _withULAndUpdate_sequence.copy() _withUL17AndUpdateScale_sequence.replace(slimmedElectronsWithUserData, calibratedPatElectronsUL17 + slimmedElectronsWithUserData) run2_egamma_2017.toReplaceWith(electronSequence, _withUL17AndUpdateScale_sequence) diff --git a/PhysicsTools/NanoAOD/python/nano_cff.py b/PhysicsTools/NanoAOD/python/nano_cff.py index 0ebe6d9e66061..ecf2049774bcf 100644 --- a/PhysicsTools/NanoAOD/python/nano_cff.py +++ b/PhysicsTools/NanoAOD/python/nano_cff.py @@ -253,7 +253,7 @@ def nanoAOD_activateVID(process): for modname in electron_id_modules_WorkingPoints_nanoAOD.modules: setupAllVIDIdsInModule(process,modname,setupVIDElectronSelection) process.electronSequence.insert(process.electronSequence.index(process.bitmapVIDForEle),process.egmGsfElectronIDSequence) - for modifier in run2_egamma_2017,run2_egamma_2018,run2_miniAOD_80XLegacy,run2_nanoAOD_94XMiniAODv1,run2_nanoAOD_94XMiniAODv2,run2_nanoAOD_94X2016,run2_nanoAOD_102Xv1,run2_nanoAOD_106Xv1: + for modifier in run2_egamma_2016,run2_egamma_2017,run2_egamma_2018,run2_miniAOD_80XLegacy,run2_nanoAOD_94XMiniAODv1,run2_nanoAOD_94XMiniAODv2,run2_nanoAOD_94X2016,run2_nanoAOD_102Xv1,run2_nanoAOD_106Xv1: modifier.toModify(process.electronMVAValueMapProducer, src = "slimmedElectronsUpdated") modifier.toModify(process.egmGsfElectronIDs, physicsObjectSrc = "slimmedElectronsUpdated") diff --git a/PhysicsTools/NanoAOD/python/nano_eras_cff.py b/PhysicsTools/NanoAOD/python/nano_eras_cff.py index 9f3723cbae97a..cfe39c6f1cc4e 100644 --- a/PhysicsTools/NanoAOD/python/nano_eras_cff.py +++ b/PhysicsTools/NanoAOD/python/nano_eras_cff.py @@ -16,3 +16,5 @@ from Configuration.Eras.Modifier_run2_nanoAOD_102Xv1_cff import run2_nanoAOD_102Xv1 from Configuration.Eras.Modifier_run2_nanoAOD_106Xv1_cff import run2_nanoAOD_106Xv1 from Configuration.Eras.Modifier_run2_nanoAOD_106Xv2_cff import run2_nanoAOD_106Xv2 +from Configuration.Eras.Modifier_tracker_apv_vfp30_2016_cff import tracker_apv_vfp30_2016 + diff --git a/PhysicsTools/NanoAOD/python/photons_cff.py b/PhysicsTools/NanoAOD/python/photons_cff.py index 8014fc68b66ca..3f1d5a29f7c78 100644 --- a/PhysicsTools/NanoAOD/python/photons_cff.py +++ b/PhysicsTools/NanoAOD/python/photons_cff.py @@ -75,6 +75,16 @@ def make_bitmapVID_docstring(id_modules_working_points_pset): import RecoEgamma.EgammaTools.calibratedEgammas_cff +calibratedPatPhotonsUL16preVFP = RecoEgamma.EgammaTools.calibratedEgammas_cff.calibratedPatPhotons.clone( + produceCalibratedObjs = False, + correctionFile = cms.string("EgammaAnalysis/ElectronTools/data/ScalesSmearings/Run2016_UltraLegacy_preVFP_RunFineEtaR9Gain"), +) + +calibratedPatPhotonsUL16postVFP = RecoEgamma.EgammaTools.calibratedEgammas_cff.calibratedPatPhotons.clone( + produceCalibratedObjs = False, + correctionFile = cms.string("EgammaAnalysis/ElectronTools/data/ScalesSmearings/Run2016_UltraLegacy_postVFP_RunFineEtaR9Gain"), +) + calibratedPatPhotonsUL17 = RecoEgamma.EgammaTools.calibratedEgammas_cff.calibratedPatPhotons.clone( produceCalibratedObjs = False, correctionFile = cms.string("EgammaAnalysis/ElectronTools/data/ScalesSmearings/Run2017_24Feb2020_runEtaR9Gain_v2") @@ -136,6 +146,26 @@ def make_bitmapVID_docstring(id_modules_working_points_pset): ), ) +(run2_egamma_2016 & tracker_apv_vfp30_2016).toModify(slimmedPhotonsWithUserData.userFloats, + ecalEnergyErrPostCorrNew = cms.InputTag("calibratedPatPhotonsUL16preVFP","ecalEnergyErrPostCorr"), + ecalEnergyPreCorrNew = cms.InputTag("calibratedPatPhotonsUL16preVFP","ecalEnergyPreCorr"), + ecalEnergyPostCorrNew = cms.InputTag("calibratedPatPhotonsUL16preVFP","ecalEnergyPostCorr"), + energyScaleUp = cms.InputTag("calibratedPatPhotonsUL16preVFP","energyScaleUp"), + energyScaleDown = cms.InputTag("calibratedPatPhotonsUL16preVFP","energyScaleDown"), + energySigmaUp = cms.InputTag("calibratedPatPhotonsUL16preVFP","energySigmaUp"), + energySigmaDown = cms.InputTag("calibratedPatPhotonsUL16preVFP","energySigmaDown"), +) + +(run2_egamma_2016 & ~tracker_apv_vfp30_2016).toModify(slimmedPhotonsWithUserData.userFloats, + ecalEnergyErrPostCorrNew = cms.InputTag("calibratedPatPhotonsUL16postVFP","ecalEnergyErrPostCorr"), + ecalEnergyPreCorrNew = cms.InputTag("calibratedPatPhotonsUL16postVFP","ecalEnergyPreCorr"), + ecalEnergyPostCorrNew = cms.InputTag("calibratedPatPhotonsUL16postVFP","ecalEnergyPostCorr"), + energyScaleUp = cms.InputTag("calibratedPatPhotonsUL16postVFP","energyScaleUp"), + energyScaleDown = cms.InputTag("calibratedPatPhotonsUL16postVFP","energyScaleDown"), + energySigmaUp = cms.InputTag("calibratedPatPhotonsUL16postVFP","energySigmaUp"), + energySigmaDown = cms.InputTag("calibratedPatPhotonsUL16postVFP","energySigmaDown"), +) + run2_egamma_2017.toModify(slimmedPhotonsWithUserData.userFloats, ecalEnergyErrPostCorrNew = cms.InputTag("calibratedPatPhotonsUL17","ecalEnergyErrPostCorr"), ecalEnergyPreCorrNew = cms.InputTag("calibratedPatPhotonsUL17","ecalEnergyPreCorr"), @@ -160,22 +190,42 @@ def make_bitmapVID_docstring(id_modules_working_points_pset): ecalEnergyErrPostCorrNew = cms.InputTag("calibratedPatPhotons80XLegacy","ecalEnergyErrPostCorr"), ecalEnergyPreCorrNew = cms.InputTag("calibratedPatPhotons80XLegacy","ecalEnergyPreCorr"), ecalEnergyPostCorrNew = cms.InputTag("calibratedPatPhotons80XLegacy","ecalEnergyPostCorr"), + energyScaleUp = cms.InputTag("calibratedPatPhotons80XLegacy","energyScaleUp"), + energyScaleDown = cms.InputTag("calibratedPatPhotons80XLegacy","energyScaleDown"), + energySigmaUp = cms.InputTag("calibratedPatPhotons80XLegacy","energySigmaUp"), + energySigmaDown = cms.InputTag("calibratedPatPhotons80XLegacy","energySigmaDown"), + ) run2_nanoAOD_94XMiniAODv1.toModify(slimmedPhotonsWithUserData.userFloats, ecalEnergyErrPostCorrNew = cms.InputTag("calibratedPatPhotons94Xv1","ecalEnergyErrPostCorr"), ecalEnergyPreCorrNew = cms.InputTag("calibratedPatPhotons94Xv1","ecalEnergyPreCorr"), ecalEnergyPostCorrNew = cms.InputTag("calibratedPatPhotons94Xv1","ecalEnergyPostCorr"), + energyScaleUp = cms.InputTag("calibratedPatPhotons94Xv1","energyScaleUp"), + energyScaleDown = cms.InputTag("calibratedPatPhotons94Xv1","energyScaleDown"), + energySigmaUp = cms.InputTag("calibratedPatPhotons94Xv1","energySigmaUp"), + energySigmaDown = cms.InputTag("calibratedPatPhotons94Xv1","energySigmaDown"), + ) run2_nanoAOD_94XMiniAODv2.toModify(slimmedPhotonsWithUserData.userFloats, ecalEnergyErrPostCorrNew = cms.InputTag("calibratedPatPhotons94Xv2","ecalEnergyErrPostCorr"), ecalEnergyPreCorrNew = cms.InputTag("calibratedPatPhotons94Xv2","ecalEnergyPreCorr"), ecalEnergyPostCorrNew = cms.InputTag("calibratedPatPhotons94Xv2","ecalEnergyPostCorr"), + energyScaleUp = cms.InputTag("calibratedPatPhotons94Xv2","energyScaleUp"), + energyScaleDown = cms.InputTag("calibratedPatPhotons94Xv2","energyScaleDown"), + energySigmaUp = cms.InputTag("calibratedPatPhotons94Xv2","energySigmaUp"), + energySigmaDown = cms.InputTag("calibratedPatPhotons94Xv2","energySigmaDown"), + ) run2_nanoAOD_102Xv1.toModify(slimmedPhotonsWithUserData.userFloats, ecalEnergyErrPostCorrNew = cms.InputTag("calibratedPatPhotons102Xv1","ecalEnergyErrPostCorr"), ecalEnergyPreCorrNew = cms.InputTag("calibratedPatPhotons102Xv1","ecalEnergyPreCorr"), ecalEnergyPostCorrNew = cms.InputTag("calibratedPatPhotons102Xv1","ecalEnergyPostCorr"), + energyScaleUp = cms.InputTag("calibratedPatPhotons102Xv1","energyScaleUp"), + energyScaleDown = cms.InputTag("calibratedPatPhotons102Xv1","energyScaleDown"), + energySigmaUp = cms.InputTag("calibratedPatPhotons102Xv1","energySigmaUp"), + energySigmaDown = cms.InputTag("calibratedPatPhotons102Xv1","energySigmaDown"), + ) finalPhotons = cms.EDFilter("PATPhotonRefSelector", @@ -251,7 +301,7 @@ def make_bitmapVID_docstring(id_modules_working_points_pset): ) #these eras need to make the energy correction, hence the "New" -for modifier in run2_egamma_2017,run2_egamma_2018,run2_nanoAOD_94XMiniAODv1, run2_miniAOD_80XLegacy, run2_nanoAOD_102Xv1,run2_nanoAOD_94XMiniAODv2: +for modifier in run2_egamma_2016,run2_egamma_2017,run2_egamma_2018,run2_nanoAOD_94XMiniAODv1, run2_miniAOD_80XLegacy, run2_nanoAOD_102Xv1,run2_nanoAOD_94XMiniAODv2: modifier.toModify(photonTable.variables, pt = Var("pt*userFloat('ecalEnergyPostCorrNew')/userFloat('ecalEnergyPreCorrNew')", float, precision=-1, doc="p_{T}"), energyErr = Var("userFloat('ecalEnergyErrPostCorrNew')",float,doc="energy error of the cluster from regression",precision=6), @@ -333,6 +383,14 @@ def make_bitmapVID_docstring(id_modules_working_points_pset): from RecoEgamma.EgammaIsolationAlgos.egmPhotonIsolationMiniAOD_cff import egmPhotonIsolation from RecoEgamma.PhotonIdentification.photonIDValueMapProducer_cff import photonIDValueMapProducer ###UL to be done first +_withUL16preVFPScale_sequence = photonSequence.copy() +_withUL16preVFPScale_sequence.replace(slimmedPhotonsWithUserData, calibratedPatPhotonsUL16preVFP + slimmedPhotonsWithUserData) +(run2_egamma_2016 & tracker_apv_vfp30_2016).toReplaceWith(photonSequence, _withUL16preVFPScale_sequence) + +_withUL16postVFPScale_sequence = photonSequence.copy() +_withUL16postVFPScale_sequence.replace(slimmedPhotonsWithUserData, calibratedPatPhotonsUL16postVFP + slimmedPhotonsWithUserData) +(run2_egamma_2016 & ~tracker_apv_vfp30_2016).toReplaceWith(photonSequence, _withUL16postVFPScale_sequence) + _withUL17Scale_sequence = photonSequence.copy() _withUL17Scale_sequence.replace(slimmedPhotonsWithUserData, calibratedPatPhotonsUL17 + slimmedPhotonsWithUserData) run2_egamma_2017.toReplaceWith(photonSequence, _withUL17Scale_sequence) diff --git a/RecoEgamma/EgammaTools/python/calibratedEgammas_cff.py b/RecoEgamma/EgammaTools/python/calibratedEgammas_cff.py index e7ef2cbc63a6f..ff44536e2d599 100644 --- a/RecoEgamma/EgammaTools/python/calibratedEgammas_cff.py +++ b/RecoEgamma/EgammaTools/python/calibratedEgammas_cff.py @@ -1,9 +1,11 @@ import FWCore.ParameterSet.Config as cms -_correctionFile2016Legacy = "EgammaAnalysis/ElectronTools/data/ScalesSmearings/Legacy2016_07Aug2017_FineEtaR9_v3_ele_unc" -_correctionFile2017Nov17 = "EgammaAnalysis/ElectronTools/data/ScalesSmearings/Run2017_17Nov2017_v1_ele_unc" -_correctionFile2017UL = "EgammaAnalysis/ElectronTools/data/ScalesSmearings/Run2017_24Feb2020_runEtaR9Gain_v2" -_correctionFile2018UL = "EgammaAnalysis/ElectronTools/data/ScalesSmearings/Run2018_29Sep2020_RunFineEtaR9Gain" +_correctionFile2016Legacy = "EgammaAnalysis/ElectronTools/data/ScalesSmearings/Legacy2016_07Aug2017_FineEtaR9_v3_ele_unc" +_correctionFile2017Nov17 = "EgammaAnalysis/ElectronTools/data/ScalesSmearings/Run2017_17Nov2017_v1_ele_unc" +_correctionFile2016ULpreVFP = "EgammaAnalysis/ElectronTools/data/ScalesSmearings/Run2016_UltraLegacy_preVFP_RunFineEtaR9Gain" +_correctionFile2016ULpostVFP = "EgammaAnalysis/ElectronTools/data/ScalesSmearings/Run2016_UltraLegacy_postVFP_RunFineEtaR9Gain" +_correctionFile2017UL = "EgammaAnalysis/ElectronTools/data/ScalesSmearings/Run2017_24Feb2020_runEtaR9Gain_v2" +_correctionFile2018UL = "EgammaAnalysis/ElectronTools/data/ScalesSmearings/Run2018_29Sep2020_RunFineEtaR9Gain" calibratedEgammaSettings = cms.PSet(minEtToCalibrate = cms.double(5.0), semiDeterministic = cms.bool(True), @@ -12,6 +14,11 @@ recHitCollectionEE = cms.InputTag('reducedEcalRecHitsEE'), produceCalibratedObjs = cms.bool(True) ) +from Configuration.Eras.Modifier_run2_egamma_2016_cff import run2_egamma_2016 +from Configuration.Eras.Modifier_tracker_apv_vfp30_2016_cff import tracker_apv_vfp30_2016 +(run2_egamma_2016 & tracker_apv_vfp30_2016).toModify(calibratedEgammaSettings,correctionFile = _correctionFile2016ULpreVFP) +(run2_egamma_2016 & ~tracker_apv_vfp30_2016).toModify(calibratedEgammaSettings,correctionFile = _correctionFile2016ULpostVFP) + from Configuration.Eras.Modifier_run2_egamma_2017_cff import run2_egamma_2017 run2_egamma_2017.toModify(calibratedEgammaSettings,correctionFile = _correctionFile2017UL)