Skip to content
Open
43 changes: 12 additions & 31 deletions PhysicsTools/NanoAOD/python/electrons_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
)
run2_miniAOD_80XLegacy.toModify( slimmedElectronsUpdated, computeMiniIso = True )
#modify the past eras
for modifier in run2_miniAOD_80XLegacy,run2_nanoAOD_94X2016,run2_nanoAOD_94XMiniAODv1,run2_nanoAOD_94XMiniAODv2,run2_nanoAOD_102Xv1,run2_nanoAOD_LowPU:
for modifier in run2_miniAOD_80XLegacy,run2_nanoAOD_94X2016,run2_nanoAOD_94XMiniAODv1,run2_nanoAOD_94XMiniAODv2,run2_nanoAOD_102Xv1, run2_nanoAOD_LowPU:
modifier.toModify(slimmedElectronsUpdated, src = cms.InputTag("slimmedElectronsTo106X"))


Expand Down Expand Up @@ -125,14 +125,6 @@ def _get_bitmapVIDForEle_docstring(modules,WorkingPoints):
)
_bitmapVIDForEleHEEP_docstring = _get_bitmapVIDForEle_docstring(electron_id_modules_WorkingPoints_nanoAOD.modules,bitmapVIDForEleHEEP.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,run2_nanoAOD_LowPU:
modifier.toModify(bitmapVIDForEle, src = "slimmedElectronsUpdated")
modifier.toModify(bitmapVIDForEleSpring15, src = "slimmedElectronsUpdated")
modifier.toModify(bitmapVIDForEleSum16, src = "slimmedElectronsUpdated")
modifier.toModify(bitmapVIDForEleHEEP, src = "slimmedElectronsUpdated")


isoForEle = cms.EDProducer("EleIsoValueMapProducer",
src = cms.InputTag("slimmedElectrons"),
relative = cms.bool(False),
Expand All @@ -147,21 +139,14 @@ def _get_bitmapVIDForEle_docstring(modules,WorkingPoints):
run2_nanoAOD_94X2016.toModify(isoForEle,
EAFile_MiniIso = "RecoEgamma/ElectronIdentification/data/Spring15/effAreaElectrons_cone03_pfNeuHadronsAndPhotons_25ns.txt",
EAFile_PFIso = "RecoEgamma/ElectronIdentification/data/Summer16/effAreaElectrons_cone03_pfNeuHadronsAndPhotons_80X.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,run2_nanoAOD_LowPU:
modifier.toModify(isoForEle, src = "slimmedElectronsUpdated")

ptRatioRelForEle = cms.EDProducer("ElectronJetVarProducer",
srcJet = cms.InputTag("updatedJets"),
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,run2_nanoAOD_LowPU:
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,run2_nanoAOD_LowPU:
modifier.toModify(seedGainEle, src = "slimmedElectronsUpdated")

import RecoEgamma.EgammaTools.calibratedEgammas_cff

Expand Down Expand Up @@ -199,10 +184,12 @@ def _get_bitmapVIDForEle_docstring(modules,WorkingPoints):
run2_nanoAOD_102Xv1.toModify(calibratedPatElectronsNano,
correctionFile = cms.string("EgammaAnalysis/ElectronTools/data/ScalesSmearings/Run2018_Step2Closure_CoarseEtaR9Gain_v2")
)

# use the dedicated electron energy and scale corrections
run2_nanoAOD_LowPU.toModify(calibratedPatElectronsNano,
correctionFile = cms.string("PhysicsTools/NanoAOD/data/ScalesSmearings/Run2017_LowPU_v2")
)

##############################end calibratedPatElectronsNano############################

slimmedElectronsWithUserData = cms.EDProducer("PATElectronUserDataEmbedder",
Expand Down Expand Up @@ -263,8 +250,6 @@ 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,run2_nanoAOD_LowPU:
modifier.toModify(slimmedElectronsWithUserData, src = "slimmedElectronsUpdated")

###Not to update with S+S vars as they already exist for run2_nanoAOD_94X2016 era
run2_nanoAOD_94X2016.toModify(slimmedElectronsWithUserData.userFloats,
Expand All @@ -279,8 +264,6 @@ def _get_bitmapVIDForEle_docstring(modules,WorkingPoints):

)



run2_nanoAOD_94X2016.toModify(slimmedElectronsWithUserData.userIntFromBools,
# MVAs and HEEP are already pre-computed. Cut-based too (except V2), but we re-add it for consistency with the nested bitmap
cutbasedID_Sum16_veto = cms.InputTag("egmGsfElectronIDs:cutBasedElectronID-Summer16-80X-V1-veto"),
Expand Down Expand Up @@ -418,7 +401,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_nanoAOD_94XMiniAODv1,run2_nanoAOD_94XMiniAODv2,run2_miniAOD_80XLegacy,run2_nanoAOD_102Xv1,run2_nanoAOD_106Xv1,run2_nanoAOD_106Xv2,run2_nanoAOD_LowPU:
Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

mmh, I am not sure it is correct to remove the lowPU piece from here

for modifier in run2_nanoAOD_94XMiniAODv1,run2_nanoAOD_94XMiniAODv2,run2_miniAOD_80XLegacy,run2_nanoAOD_102Xv1,run2_nanoAOD_106Xv1,run2_nanoAOD_106Xv2:
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"),
Expand Down Expand Up @@ -502,19 +485,16 @@ def _get_bitmapVIDForEle_docstring(modules,WorkingPoints):
vidNestedWPBitmapSum16 = Var("userInt('VIDNestedWPBitmapSum16')",int,doc=_bitmapVIDForEleSum16_docstring),

)

from PhysicsTools.NanoAOD.particlelevel_cff import particleLevel
particleLevelForMatching = particleLevel.clone(
lepMinPt = cms.double(3.),
phoMinPt = cms.double(3),
)
#############electron Table END#####################
# Depends on particlelevel producer run in particlelevel_cff
tautaggerForMatching = cms.EDProducer("GenJetTauTaggerProducer",
src = cms.InputTag('particleLevelForMatching:leptons')
src = cms.InputTag('particleLevel:leptons')
)

matchingElecPhoton = cms.EDProducer("GenJetGenPartMerger",
srcJet =cms.InputTag("particleLevelForMatching:leptons"),
srcPart=cms.InputTag("particleLevelForMatching:photons"),
srcJet =cms.InputTag("particleLevel:leptons"),
srcPart=cms.InputTag("particleLevel:photons"),
cut = cms.string("pt > 3"),
hasTauAnc=cms.InputTag("tautaggerForMatching"),
)

Expand Down Expand Up @@ -570,7 +550,7 @@ def _get_bitmapVIDForEle_docstring(modules,WorkingPoints):

electronTables = cms.Sequence (electronMVATTH + electronTable)
electronMCold = cms.Sequence(electronsMCMatchForTable + electronMCTable)
electronMC = cms.Sequence(particleLevelForMatching + tautaggerForMatching + matchingElecPhoton + electronsMCMatchForTable + electronsMCMatchForTableAlt + electronMCTable)
electronMC = cms.Sequence(tautaggerForMatching + matchingElecPhoton + electronsMCMatchForTable + electronsMCMatchForTableAlt + electronMCTable)
( run2_nanoAOD_106Xv1 & ~run2_nanoAOD_devel).toModify( electronMCTable,
mcMapDressedLep=None,
mcMap = cms.InputTag("electronsMCMatchForTable"),
Expand Down Expand Up @@ -613,6 +593,7 @@ def _get_bitmapVIDForEle_docstring(modules,WorkingPoints):
for modifier in run2_miniAOD_80XLegacy, run2_nanoAOD_94X2016:
_withTo106XAndUpdateAnd80XLegacyScale_sequence = _withTo106XAndUpdate_sequence.copy()
_withTo106XAndUpdateAnd80XLegacyScale_sequence.replace(slimmedElectronsWithUserData, bitmapVIDForEleSpring15 +bitmapVIDForEleSum16 + slimmedElectronsWithUserData)
modifier.toReplaceWith(electronSequence, _withTo106XAndUpdateAnd80XLegacyScale_sequence)

for modifier in run2_nanoAOD_94XMiniAODv1, run2_nanoAOD_94XMiniAODv2,run2_nanoAOD_102Xv1,run2_nanoAOD_LowPU:
modifier.toReplaceWith(electronSequence, _withTo106XAndUpdate_sequence)
Expand Down
5 changes: 4 additions & 1 deletion PhysicsTools/NanoAOD/python/nano_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -471,7 +471,10 @@ def nanoAOD_customizeData(process):
record = cms.string("GeometryFileRcd"),tag = cms.string("XMLFILE_Geometry_2016_81YV1_Extended2016_mc"),label = cms.untracked.string("Extended"),
),
)

vpset_2017 = cms.VPSet(cms.PSet(record = cms.string("GeometryFileRcd"),tag = cms.string("XMLFILE_Geometry_92YV5_Extended2017Plan1_mc"),label = cms.untracked.string("Extended"),),)
vpset_2018 = cms.VPSet(cms.PSet(record = cms.string("GeometryFileRcd"),tag = cms.string("XMLFILE_Geometry_92YV6_Extended2018_mc"),label = cms.untracked.string("Extended"),),)
run2_muon_2017.toModify(process.GlobalTag, toGet=vpset_2017)
run2_muon_2018.toModify(process.GlobalTag, toGet=vpset_2018)
# load 3d field map and use it for g4e propagator, geant4 internals via geometry producer and a few other places related to the track refit
from MagneticField.ParametrizedEngine.parametrizedMagneticField_PolyFit3D_cfi import ParametrizedMagneticFieldProducer as PolyFit3DMagneticFieldProducer
process.PolyFit3DMagneticFieldProducer = PolyFit3DMagneticFieldProducer
Expand Down
1 change: 1 addition & 0 deletions PhysicsTools/NanoAOD/python/nano_eras_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
from Configuration.Eras.Modifier_run2_jme_2016_cff import run2_jme_2016
from Configuration.Eras.Modifier_run2_jme_2017_cff import run2_jme_2017
from Configuration.Eras.Modifier_run2_muon_2016_cff import run2_muon_2016
from Configuration.Eras.Modifier_run2_muon_2017_cff import run2_muon_2017
from Configuration.Eras.Modifier_run2_muon_2018_cff import run2_muon_2018

from Configuration.Eras.Modifier_run2_tau_ul_2016_cff import run2_tau_ul_2016
Expand Down
20 changes: 20 additions & 0 deletions PhysicsTools/NanoAOD/python/triggerObjects_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -216,6 +216,26 @@
selections = selections2016
)

#2017 and 2018 are same filter string(could used one modification block)
selectionsPhase1 = copy.deepcopy(triggerObjectTable.selections)
for sel in selectionsPhase1:
if sel.name=='Muon':
sel.qualityBits = cms.string(sel.qualityBits.value() + \
" + 4096*filter('hltL3crIsoL1sSingleMu22L1f0L2f10QL3f24QL3trkIsoFiltered0p07')" \
" + 8192*filter('hltL3crIsoL1sMu22Or25L1f0L2f10QL3f27QL3trkIsoFiltered0p07')")
sel.qualityBitsDoc = cms.string(sel.qualityBitsDoc.value() + ", 4096 = IsoMu24, 8192 = IsoMu27")

#change for 2017
run2_HLTconditions_2017.toModify(
triggerObjectTable,
selections = selectionsPhase1
)
#change for 2018
run2_HLTconditions_2018.toModify(
triggerObjectTable,
selections = selectionsPhase1
)

from PhysicsTools.PatUtils.L1PrefiringWeightProducer_cff import prefiringweight
#Next lines are for UL2016 maps
(run2_muon_2016 & tracker_apv_vfp30_2016).toModify( prefiringweight, DataEraECAL = cms.string("UL2016preVFP"), DataEraMuon = cms.string("2016preVFP"))
Expand Down