Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Run3 HZZ electron ID #43369

Closed
wants to merge 3 commits into from
Closed
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
7 changes: 6 additions & 1 deletion PhysicsTools/NanoAOD/python/electrons_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
'RecoEgamma.ElectronIdentification.Identification.mvaElectronID_Summer16UL_ID_ISO_cff',
'RecoEgamma.ElectronIdentification.Identification.mvaElectronID_Summer17UL_ID_ISO_cff',
'RecoEgamma.ElectronIdentification.Identification.mvaElectronID_Summer18UL_ID_ISO_cff',
'RecoEgamma.ElectronIdentification.Identification.mvaElectronID_Winter22_HZZ_V1_cff',
# Fall17: need to include the modules too to make sure they are run
'RecoEgamma.ElectronIdentification.Identification.cutBasedElectronID_Fall17_94X_V2_cff',
'RecoEgamma.ElectronIdentification.Identification.mvaElectronID_Fall17_iso_V2_cff',
Expand All @@ -26,6 +27,7 @@
"egmGsfElectronIDs:cutBasedElectronID-RunIIIWinter22-V1-loose",
"egmGsfElectronIDs:cutBasedElectronID-RunIIIWinter22-V1-medium",
"egmGsfElectronIDs:cutBasedElectronID-RunIIIWinter22-V1-tight",
"egmGsfElectronIDs:mvaEleID-Winter22-HZZ-V1",
)
)

Expand Down Expand Up @@ -155,7 +157,7 @@ def _get_bitmapVIDForEle_docstring(modules,WorkingPoints):
mvaNoIso_Fall17V2 = cms.InputTag("electronMVAValueMapProducer:ElectronMVAEstimatorRun2Fall17NoIsoV2Values"),
mvaIso = cms.InputTag("electronMVAValueMapProducer:ElectronMVAEstimatorRun2RunIIIWinter22IsoV1Values"),
mvaNoIso = cms.InputTag("electronMVAValueMapProducer:ElectronMVAEstimatorRun2RunIIIWinter22NoIsoV1Values"),
mvaHZZIso = cms.InputTag("electronMVAValueMapProducer:ElectronMVAEstimatorRun2Summer18ULIdIsoValues"),
mvaHZZIso = cms.InputTag("electronMVAValueMapProducer:ElectronMVAEstimatorRun2Winter22HZZV1Values"),

miniIsoChg = cms.InputTag("isoForEle:miniIsoChg"),
miniIsoAll = cms.InputTag("isoForEle:miniIsoAll"),
Expand Down Expand Up @@ -184,6 +186,7 @@ def _get_bitmapVIDForEle_docstring(modules,WorkingPoints):
mvaNoIso_Fall17V2_WPL = cms.InputTag("egmGsfElectronIDs:mvaEleID-Fall17-noIso-V2-wpLoose"),
mvaNoIso_WP90 = cms.InputTag("egmGsfElectronIDs:mvaEleID-RunIIIWinter22-noIso-V1-wp90"),
mvaNoIso_WP80 = cms.InputTag("egmGsfElectronIDs:mvaEleID-RunIIIWinter22-noIso-V1-wp80"),
mvaIso_WPHZZ = cms.InputTag("egmGsfElectronIDs:mvaEleID-Winter22-HZZ-V1"),

cutBasedID_veto = cms.InputTag("egmGsfElectronIDs:cutBasedElectronID-RunIIIWinter22-V1-veto"),
cutBasedID_loose = cms.InputTag("egmGsfElectronIDs:cutBasedElectronID-RunIIIWinter22-V1-loose"),
Expand Down Expand Up @@ -329,6 +332,8 @@ def _get_bitmapVIDForEle_docstring(modules,WorkingPoints):
mvaNoIso_WP80 = Var("userInt('mvaNoIso_WP80')",bool,doc="MVA noIso ID WP80, Winter22V1"),
mvaNoIso_WP90 = Var("userInt('mvaNoIso_WP90')",bool,doc="MVA noIso ID WP90, Winter22V1"),
mvaHZZIso = Var("userFloat('mvaHZZIso')", float,doc="HZZ MVA Iso ID score"),
mvaIso_WPHZZ = Var("userInt('mvaIso_WPHZZ')",bool,doc="MVA Iso ID WPHZZ, Winter22V1"),


cutBased = Var("userInt('cutBasedID_veto')+userInt('cutBasedID_loose')+userInt('cutBasedID_medium')+userInt('cutBasedID_tight')", "uint8", doc="cut-based ID RunIII Winter22 (0:fail, 1:veto, 2:loose, 3:medium, 4:tight)"),
vidNestedWPBitmap = Var("userInt('VIDNestedWPBitmap')", int, doc=_bitmapVIDForEle_docstring),
Expand Down
3 changes: 2 additions & 1 deletion PhysicsTools/PatAlgos/python/slimming/miniAOD_tools.py
Original file line number Diff line number Diff line change
Expand Up @@ -305,7 +305,8 @@ def _add_deepFlavour(process):
'RecoEgamma.ElectronIdentification.Identification.mvaElectronID_Summer17UL_ID_ISO_cff',
'RecoEgamma.ElectronIdentification.Identification.mvaElectronID_Summer18UL_ID_ISO_cff',
'RecoEgamma.ElectronIdentification.Identification.mvaElectronID_RunIIIWinter22_noIso_V1_cff',
'RecoEgamma.ElectronIdentification.Identification.mvaElectronID_RunIIIWinter22_iso_V1_cff'
'RecoEgamma.ElectronIdentification.Identification.mvaElectronID_RunIIIWinter22_iso_V1_cff',
'RecoEgamma.ElectronIdentification.Identification.mvaElectronID_Winter22_HZZ_V1_cff'
]
switchOnVIDElectronIdProducer(process,DataFormat.MiniAOD, task)
process.egmGsfElectronIDs.physicsObjectSrc = cms.InputTag("reducedEgamma","reducedGedGsfElectrons")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@

import RecoEgamma.ElectronIdentification.Identification.mvaElectronID_RunIIIWinter22_iso_V1_cff as ele_RunIIIWinter22_iso_v1
import RecoEgamma.ElectronIdentification.Identification.mvaElectronID_RunIIIWinter22_noIso_V1_cff as ele_RunIIIWinter22_noIso_v1
import RecoEgamma.ElectronIdentification.Identification.mvaElectronID_Winter22_HZZ_V1_cff as ele_Winter22_HZZ_V1

#photon mva ids
import RecoEgamma.PhotonIdentification.Identification.mvaPhotonID_Spring16_nonTrig_V1_cff as pho_spring16_nt_v1
Expand Down Expand Up @@ -49,7 +50,8 @@ def setup_mva(val_pset,cat_pset,prod_name,mva_name):
ele_fall17_noIso_v2,
ele_summer18UL_hzz,
ele_RunIIIWinter22_iso_v1,
ele_RunIIIWinter22_noIso_v1
ele_RunIIIWinter22_noIso_v1,
ele_Winter22_HZZ_V1
]:

setup_mva(egamma_modifications[0].electron_config,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,10 @@
import mvaEleID_Summer18UL_ID_ISO_producer_config
mvaConfigsForEleProducer.append( mvaEleID_Summer18UL_ID_ISO_producer_config )

from RecoEgamma.ElectronIdentification.Identification.mvaElectronID_Winter22_HZZ_V1_cff \
import mvaEleID_Winter22_HZZ_V1_producer_config
mvaConfigsForEleProducer.append( mvaEleID_Winter22_HZZ_V1_producer_config )

electronMVAValueMapProducer = cms.EDProducer('ElectronMVAValueMapProducer',
src = cms.InputTag('slimmedElectrons'),
mvaConfigurations = mvaConfigsForEleProducer
Expand Down
8 changes: 8 additions & 0 deletions RecoEgamma/ElectronIdentification/python/FWLite.py
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,8 @@ def passed(self, ele, mva, category, wp):
import mvaSpring16WeightFiles_V1 as mvaSpring16GPWeightFiles_V1
from RecoEgamma.ElectronIdentification.Identification.mvaElectronID_Spring16_HZZ_V1_cff \
import mvaSpring16WeightFiles_V1 as mvaSpring16HZZWeightFiles_V1
from RecoEgamma.ElectronIdentification.Identification.mvaElectronID_Winter22_HZZ_V1_cff \
import mvaWeightFiles as mvaWinter22HZZWeightFiles_V1

from RecoEgamma.ElectronIdentification.Identification.mvaElectronID_Spring16_GeneralPurpose_V1_cff \
import workingPoints as mvaSpring16GP_V1_workingPoints
Expand All @@ -113,6 +115,8 @@ def passed(self, ele, mva, category, wp):
import workingPoints as RunIIIWinter22_iso_V1_workingPoints
from RecoEgamma.ElectronIdentification.Identification.mvaElectronID_RunIIIWinter22_noIso_V1_cff \
import workingPoints as RunIIIWinter22_noIso_V1_workingPoints
from RecoEgamma.ElectronIdentification.Identification.mvaElectronID_Winter22_HZZ_V1_cff \
import workingPoints as Winter22_HZZ_V1_workingPoints

# Dictionary with the relecant e/gmma MVAs

Expand All @@ -129,6 +133,8 @@ def passed(self, ele, mva, category, wp):
EleMVA_6CategoriesCuts, mvaSpring16HZZWeightFiles_V1, mvaVariablesFile),
"Spring16GPV1" : ElectronMVAID("ElectronMVAEstimatorRun2","Spring16GeneralPurposeV1",
EleMVA_3CategoriesCuts, mvaSpring16GPWeightFiles_V1, mvaVariablesFile),
"Winter22HZZV1" : ElectronMVAID("ElectronMVAEstimatorRun2","Winter22HZZV1",
EleMVA_6CategoriesCuts, mvaWinter22HZZWeightFiles_V1, mvaVariablesFileRun3),
}

working_points = {
Expand All @@ -144,5 +150,7 @@ def passed(self, ele, mva, category, wp):
mvaSpring16HZZ_V1_workingPoints, logistic_transform=True),
"Spring16GPV1" : WorkingPoints("ElectronMVAEstimatorRun2","Spring16GeneralPurposeV1",
mvaSpring16GP_V1_workingPoints, logistic_transform=True),
"Winter22HZZV1" : WorkingPoints("ElectronMVAEstimatorRun2","Winter22HZZV1",
Winter22_HZZ_V1_workingPoints),

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
import FWCore.ParameterSet.Config as cms
from RecoEgamma.ElectronIdentification.Identification.mvaElectronID_tools import *
from os import path

mvaTag = "Winter22HZZV1"

weightFileDir = "RecoEgamma/ElectronIdentification/data/MVAWeightFiles/Winter22HZZV1"

mvaWeightFiles = cms.vstring(
path.join(weightFileDir, "EB1_5.weights.xml.gz"), # EB1_5
path.join(weightFileDir, "EB2_5.weights.xml.gz"), # EB2_5
path.join(weightFileDir, "EE_5.weights.xml.gz"), # EE_5
path.join(weightFileDir, "EB1_10.weights.xml.gz"), # EB1_10
path.join(weightFileDir, "EB2_10.weights.xml.gz"), # EB2_10
path.join(weightFileDir, "EE_10.weights.xml.gz"), # EE_10
)

categoryCuts = cms.vstring(
"pt < 10. && abs(superCluster.eta) < 0.800",
"pt < 10. && abs(superCluster.eta) >= 0.800 && abs(superCluster.eta) < 1.479",
"pt < 10. && abs(superCluster.eta) >= 1.479",
"pt >= 10. && abs(superCluster.eta) < 0.800",
"pt >= 10. && abs(superCluster.eta) >= 0.800 && abs(superCluster.eta) < 1.479",
"pt >= 10. && abs(superCluster.eta) >= 1.479",
)

mvaEleID_Winter22_HZZ_V1_container = EleMVARaw_WP(
idName = "mvaEleID-Winter22-HZZ-V1", mvaTag = mvaTag,
cutCategory0 = "1.633973689084034", # EB1_5
cutCategory1 = "1.5499076306249353", # EB2_5
cutCategory2 = "2.0629564440753247", # EE_5
cutCategory3 = "0.3685228146685872", # EB1_10
cutCategory4 = "0.2662407818935475", # EB2_10
cutCategory5 = "-0.5444837363886459", # EE_10
)


mvaEleID_Winter22_HZZ_V1_producer_config = cms.PSet(
mvaName = cms.string(mvaClassName),
mvaTag = cms.string(mvaTag),
nCategories = cms.int32(6),
categoryCuts = categoryCuts,
weightFileNames = mvaWeightFiles,
variableDefinition = cms.string(mvaVariablesFileRun3)
)

mvaEleID_Winter22_HZZ_V1 = configureVIDMVAEleID( mvaEleID_Winter22_HZZ_V1_container )

mvaEleID_Winter22_HZZ_V1.isPOGApproved = cms.untracked.bool(False)
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@
#'RecoEgamma.ElectronIdentification.Identification.mvaElectronID_Fall17_iso_V1_cff',
'RecoEgamma.ElectronIdentification.Identification.mvaElectronID_RunIIIWinter22_iso_V1_cff',
'RecoEgamma.ElectronIdentification.Identification.mvaElectronID_RunIIIWinter22_noIso_V1_cff',
'RecoEgamma.ElectronIdentification.Identification.mvaElectronID_Winter22_HZZ_V1_cff',
]

#add them to the VID producer
Expand All @@ -71,6 +72,7 @@
"egmGsfElectronIDs:mvaEleID-RunIIIWinter22-iso-V1-wp90",
"egmGsfElectronIDs:mvaEleID-RunIIIWinter22-noIso-V1-wp80",
"egmGsfElectronIDs:mvaEleID-RunIIIWinter22-noIso-V1-wp90",
"egmGsfElectronIDs:mvaEleID-Winter22-HZZ-V1",
#"egmGsfElectronIDs:mvaEleID-Fall17-noIso-V2-wp90",
#"egmGsfElectronIDs:mvaEleID-Fall17-iso-V2-wpHZZ",
# "egmGsfElectronIDs:mvaEleID-Fall17-iso-V2-wp80",
Expand Down Expand Up @@ -104,7 +106,8 @@
"RunIIIWinter22isoV1wp80",
"RunIIIWinter22isoV1wp90",
"RunIIIWinter22noIsoV1wp80",
"RunIIIWinter22noIsoV1wp90",
"RunIIIWinter22noIsoV1wp90",
"Winter22isoV1wpHZZ",
),
eleMVAValMaps = cms.vstring(
#"electronMVAValueMapProducer:ElectronMVAEstimatorRun2Spring16GeneralPurposeV1Values",
Expand All @@ -121,6 +124,8 @@
"electronMVAValueMapProducer:ElectronMVAEstimatorRun2RunIIIWinter22IsoV1RawValues",
"electronMVAValueMapProducer:ElectronMVAEstimatorRun2RunIIIWinter22NoIsoV1Values",
"electronMVAValueMapProducer:ElectronMVAEstimatorRun2RunIIIWinter22NoIsoV1RawValues",
"electronMVAValueMapProducer:ElectronMVAEstimatorRun2Winter22HZZV1Values",
"electronMVAValueMapProducer:ElectronMVAEstimatorRun2Winter22HZZV1RawValues",
),
eleMVAValMapLabels = cms.vstring(
#"Spring16GPV1Vals",
Expand All @@ -136,6 +141,8 @@
"RunIIIWinter22NoIsoV1RawVals",
"RunIIIWinter22IsoV1Vals",
"RunIIIWinter22IsoV1RawVals",
"Winter22HZZV1Vals",
"Winter22HZZV1RawVals",
),
eleMVACats = cms.vstring(
#"electronMVAValueMapProducer:ElectronMVAEstimatorRun2Fall17NoIsoV1Categories",
Expand Down