Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 1 addition & 22 deletions PhysicsTools/NanoAOD/python/electrons_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -231,17 +231,6 @@ def _get_bitmapVIDForEle_docstring(modules,WorkingPoints):
toModify(slimmedElectronsWithUserData.userInts,
VIDNestedWPBitmap = None)

run2_egamma.toModify(
slimmedElectronsWithUserData.userFloats,
ecalTrkEnergyErrPostCorrNew = cms.InputTag("calibratedPatElectronsNano","ecalTrkEnergyErrPostCorr"),
ecalTrkEnergyPreCorrNew = cms.InputTag("calibratedPatElectronsNano","ecalTrkEnergyPreCorr"),
ecalTrkEnergyPostCorrNew = cms.InputTag("calibratedPatElectronsNano","ecalTrkEnergyPostCorr"),
energyScaleUpNew = cms.InputTag("calibratedPatElectronsNano","energyScaleUp"),
energyScaleDownNew = cms.InputTag("calibratedPatElectronsNano","energyScaleDown"),
energySigmaUpNew = cms.InputTag("calibratedPatElectronsNano","energySigmaUp"),
energySigmaDownNew = cms.InputTag("calibratedPatElectronsNano","energySigmaDown")
)

(run2_egamma_2016).toModify(
slimmedElectronsWithUserData.userFloats,
mvaHZZIso = "electronMVAValueMapProducer:ElectronMVAEstimatorRun2Summer16ULIdIsoValues"
Expand Down Expand Up @@ -453,16 +442,7 @@ def _get_bitmapVIDForEle_docstring(modules,WorkingPoints):
)

(run2_egamma).toModify(
# energy scale/smearing: only for Run2
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"),
ptPreCorr = Var("pt", float, doc="pt of the electron before energy corrections"),
scEtOverPt = Var("(superCluster().energy()/(pt*userFloat('ecalTrkEnergyPostCorrNew')/userFloat('ecalTrkEnergyPreCorrNew')*cosh(superCluster().eta())))-1",float,doc="(supercluster transverse energy)/pt-1",precision=8),
dEscaleUp=Var("userFloat('ecalTrkEnergyPostCorrNew')-userFloat('energyScaleUpNew')", float, doc="ecal energy scale shifted 1 sigma up(adding gain/stat/syst in quadrature)", precision=8),
dEscaleDown=Var("userFloat('ecalTrkEnergyPostCorrNew')-userFloat('energyScaleDownNew')", float, doc="ecal energy scale shifted 1 sigma down (adding gain/stat/syst in quadrature)", precision=8),
dEsigmaUp=Var("userFloat('ecalTrkEnergyPostCorrNew')-userFloat('energySigmaUpNew')", float, doc="ecal energy smearing value shifted 1 sigma up", precision=8),
dEsigmaDown=Var("userFloat('ecalTrkEnergyPostCorrNew')-userFloat('energySigmaDownNew')", float, doc="ecal energy smearing value shifted 1 sigma up", precision=8),
# Fall17V2 IDs and isolations are only for Run2. The names of these IDs and isolations are same as in Run3.
mvaIso = Var("userFloat('mvaIso_Fall17V2')",float,doc="MVA Iso ID score, Fall17V2"),
mvaIso_WP80 = Var("userInt('mvaIso_Fall17V2_WP80')",bool,doc="MVA Iso ID WP80, Fall17V2"),
Expand Down Expand Up @@ -529,14 +509,13 @@ def _get_bitmapVIDForEle_docstring(modules,WorkingPoints):
genparticles = cms.InputTag("finalGenParticles"),
)

electronTask = cms.Task(bitmapVIDForEle,bitmapVIDForEleFall17V2,bitmapVIDForEleHEEP,isoForEle,isoForEleFall17V2,ptRatioRelForEle,seedGainEle,calibratedPatElectronsNano,slimmedElectronsWithUserData,finalElectrons)
electronTask = cms.Task(bitmapVIDForEle,bitmapVIDForEleFall17V2,bitmapVIDForEleHEEP,isoForEle,isoForEleFall17V2,ptRatioRelForEle,seedGainEle,slimmedElectronsWithUserData,finalElectrons)
electronTablesTask = cms.Task(electronPROMPTMVA, electronTable)
electronMCTask = cms.Task(tautaggerForMatching, matchingElecPhoton, electronsMCMatchForTable, electronsMCMatchForTableAlt, electronMCTable)

_electronTask_Run2 = electronTask.copy()
_electronTask_Run2.remove(bitmapVIDForEle)
_electronTask_Run2.remove(isoForEle)
_electronTask_Run2.add(calibratedPatElectronsNano)
run2_egamma.toReplaceWith(electronTask, _electronTask_Run2)

# Revert back to AK4 CHS jets for Run2 inputs
Expand Down
24 changes: 0 additions & 24 deletions PhysicsTools/NanoAOD/python/photons_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -166,17 +166,6 @@ def make_bitmapVID_docstring(id_modules_working_points_pset):
toModify(slimmedPhotonsWithUserData.userInts,
VIDNestedWPBitmap = None)

run2_egamma.toModify(
slimmedPhotonsWithUserData.userFloats,
ecalEnergyErrPostCorrNew = cms.InputTag("calibratedPatPhotonsNano","ecalEnergyErrPostCorr"),
ecalEnergyPreCorrNew = cms.InputTag("calibratedPatPhotonsNano","ecalEnergyPreCorr"),
ecalEnergyPostCorrNew = cms.InputTag("calibratedPatPhotonsNano","ecalEnergyPostCorr"),
energyScaleUpNew = cms.InputTag("calibratedPatPhotonsNano","energyScaleUp"),
energyScaleDownNew = cms.InputTag("calibratedPatPhotonsNano","energyScaleDown"),
energySigmaUpNew = cms.InputTag("calibratedPatPhotonsNano","energySigmaUp"),
energySigmaDownNew = cms.InputTag("calibratedPatPhotonsNano","energySigmaDown"),
)


finalPhotons = cms.EDFilter("PATPhotonRefSelector",
src = cms.InputTag("slimmedPhotonsWithUserData"),
Expand Down Expand Up @@ -281,9 +270,6 @@ def make_bitmapVID_docstring(id_modules_working_points_pset):
#these eras need to make the energy correction, hence the "New". Also save only Fall17V2 IDS in Run2, No Run3 Winter22V1 and quadratic iso in Run2
run2_egamma.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),
ptPreCorr = Var("pt",float,doc="pt of the photon before energy corrections"),
cutBased = Var(
"userInt('cutBasedID_Fall17V2_loose')+userInt('cutBasedID_Fall17V2_medium')+userInt('cutBasedID_Fall17V2_tight')",
"uint8",
Expand Down Expand Up @@ -325,15 +311,6 @@ def make_bitmapVID_docstring(id_modules_working_points_pset):
docString = cms.string("MC matching to status==1 photons or electrons"),
)

#adding 4 most imp scale & smearing variables to table
run2_egamma.toModify(
photonTable.variables,
dEscaleUp=Var("userFloat('ecalEnergyPostCorrNew') - userFloat('energyScaleUpNew')", float, doc="ecal energy scale shifted 1 sigma up (adding gain/stat/syst in quadrature)", precision=8),
dEscaleDown=Var("userFloat('ecalEnergyPostCorrNew') - userFloat('energyScaleDownNew')", float, doc="ecal energy scale shifted 1 sigma down (adding gain/stat/syst in quadrature)", precision=8),
dEsigmaUp=Var("userFloat('ecalEnergyPostCorrNew') - userFloat('energySigmaUpNew')", float, doc="ecal energy smearing value shifted 1 sigma up", precision=8),
dEsigmaDown=Var("userFloat('ecalEnergyPostCorrNew') - userFloat('energySigmaDownNew')", float, doc="ecal energy smearing value shifted 1 sigma up", precision=8),
)


photonTask = cms.Task(bitmapVIDForPho, bitmapVIDForPhoRun2, isoForPho, hOverEForPho, isoForPhoFall17V2, seedGainPho, slimmedPhotonsWithUserData, finalPhotons)

Expand All @@ -344,5 +321,4 @@ def make_bitmapVID_docstring(id_modules_working_points_pset):
_photonTask_Run2.remove(bitmapVIDForPho)
_photonTask_Run2.remove(isoForPho)
_photonTask_Run2.remove(hOverEForPho)
_photonTask_Run2.add(calibratedPatPhotonsNano)
run2_egamma.toReplaceWith(photonTask, _photonTask_Run2)
32 changes: 16 additions & 16 deletions RecoEgamma/EgammaTools/python/calibratedEgammas_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,36 +31,36 @@
recHitCollectionEE = 'reducedEgamma:reducedEERecHits'
)

# This is now the same configuration as the one used in the Egamma regression v3 in 106XUL
Copy link
Contributor

@hqucms hqucms Jul 14, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems that the change of the default values here will affect the ongoing MINIv6+NANOv15 production for 2024, as we see some changes in wf 2500.2601 and 2500.2701.
If the changes are intended for Run2, then it should be put under an era modifier.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @hqucms these workflows have changes because they are using the --era Run3_2024 --procModifiers run2_miniAOD_UL_preSummer20 modifier. This activates the calibration of patElectron which has been changed (corrected) by the updated configuration. What's the reason for this combination?

Effectively that configuration is trying to calibrate Run3 MC with Run2 scale&smearing, which is wrong. Anyway, the calibrated energy is not replacing the nominal and it is just stored in miniAOD as an additional calibEle* userFloat. In EGM we are not recommending to use calibrated quantity directly in Run3, but to reapply energy calibrations a-posteriori. So, in summary, this is not a problem, but for sure it is kind of ugly.

ecalTrkCombinationRegression = cms.PSet(
ecalTrkRegressionConfig = cms.PSet(
rangeMinLowEt = cms.double(-1.),
rangeMaxLowEt = cms.double(3.0),
rangeMinHighEt = cms.double(-1.),
rangeMaxHighEt = cms.double(3.0),
lowEtHighEtBoundary = cms.double(50.),
rangeMinLowEt = cms.double(0.2),
rangeMaxLowEt = cms.double(2.0),
rangeMinHighEt = cms.double(0.2),
rangeMaxHighEt = cms.double(2.0),
lowEtHighEtBoundary = cms.double(999999.),
forceHighEnergyTrainingIfSaturated = cms.bool(False),
ebLowEtForestName = cms.ESInputTag('', 'electron_eb_ECALTRK_lowpt'),
ebHighEtForestName = cms.ESInputTag('', 'electron_eb_ECALTRK'),
eeLowEtForestName = cms.ESInputTag('', 'electron_ee_ECALTRK_lowpt'),
eeHighEtForestName = cms.ESInputTag('', 'electron_ee_ECALTRK')
ebLowEtForestName = cms.ESInputTag("", 'electron_eb_ecalTrk_1To300_0p2To2_mean'),
ebHighEtForestName = cms.ESInputTag("", 'electron_eb_ecalTrk_1To300_0p2To2_mean'),
eeLowEtForestName = cms.ESInputTag("", 'electron_ee_ecalTrk_1To300_0p2To2_mean'),
eeHighEtForestName = cms.ESInputTag("", 'electron_ee_ecalTrk_1To300_0p2To2_mean'),
),
ecalTrkRegressionUncertConfig = cms.PSet(
rangeMinLowEt = cms.double(0.0002),
rangeMaxLowEt = cms.double(0.5),
rangeMinHighEt = cms.double(0.0002),
rangeMaxHighEt = cms.double(0.5),
lowEtHighEtBoundary = cms.double(50.),
lowEtHighEtBoundary = cms.double(999999.),
forceHighEnergyTrainingIfSaturated = cms.bool(False),
ebLowEtForestName = cms.ESInputTag('', 'electron_eb_ECALTRK_lowpt_var'),
ebHighEtForestName = cms.ESInputTag('', 'electron_eb_ECALTRK_var'),
eeLowEtForestName = cms.ESInputTag('', 'electron_ee_ECALTRK_lowpt_var'),
eeHighEtForestName = cms.ESInputTag('', 'electron_ee_ECALTRK_var')
ebLowEtForestName = cms.ESInputTag("", 'electron_eb_ecalTrk_1To300_0p0002To0p5_sigma'),
ebHighEtForestName = cms.ESInputTag("", 'electron_eb_ecalTrk_1To300_0p0002To0p5_sigma'),
eeLowEtForestName = cms.ESInputTag("", 'electron_ee_ecalTrk_1To300_0p0002To0p5_sigma'),
eeHighEtForestName = cms.ESInputTag("", 'electron_ee_ecalTrk_1To300_0p0002To0p5_sigma'),
),
maxEcalEnergyForComb=cms.double(200.),
minEOverPForComb=cms.double(0.025),
maxEPDiffInSigmaForComb=cms.double(15.),
maxRelTrkMomErrForComb=cms.double(10.),

maxRelTrkMomErrForComb=cms.double(10.),
)

import RecoEgamma.EgammaTools.calibratedElectronProducer_cfi as _mod_ele
Expand Down