File indexing completed on 2023-10-25 09:58:07
0001 import FWCore.ParameterSet.Config as cms
0002
0003 from PhysicsTools.NanoAOD.nano_eras_cff import *
0004 from PhysicsTools.NanoAOD.common_cff import *
0005 from PhysicsTools.NanoAOD.simpleCandidateFlatTableProducer_cfi import simpleCandidateFlatTableProducer
0006
0007 from PhysicsTools.PatAlgos.recoLayer0.jetCorrFactors_cfi import *
0008
0009
0010 jetCorrFactorsAK8 = patJetCorrFactors.clone(src='slimmedJetsAK8',
0011 levels = cms.vstring('L1FastJet',
0012 'L2Relative',
0013 'L3Absolute',
0014 'L2L3Residual'),
0015 payload = cms.string('AK8PFPuppi'),
0016 primaryVertices = cms.InputTag("offlineSlimmedPrimaryVertices"),
0017 )
0018
0019 from PhysicsTools.PatAlgos.producersLayer1.jetUpdater_cfi import *
0020 updatedJetsAK8 = updatedPatJets.clone(
0021 addBTagInfo=False,
0022 jetSource='slimmedJetsAK8',
0023 jetCorrFactorsSource=cms.VInputTag(cms.InputTag("jetCorrFactorsAK8") ),
0024 )
0025
0026
0027
0028
0029 looseJetIdAK8 = cms.EDProducer("PatJetIDValueMapProducer",
0030 filterParams=cms.PSet(
0031 version = cms.string('WINTER16'),
0032 quality = cms.string('LOOSE'),
0033 ),
0034 src = cms.InputTag("updatedJetsAK8")
0035 )
0036 tightJetIdAK8 = cms.EDProducer("PatJetIDValueMapProducer",
0037 filterParams=cms.PSet(
0038 version = cms.string('RUN3WINTER22PUPPI'),
0039 quality = cms.string('TIGHT'),
0040 ),
0041 src = cms.InputTag("updatedJetsAK8")
0042 )
0043 tightJetIdLepVetoAK8 = cms.EDProducer("PatJetIDValueMapProducer",
0044 filterParams=cms.PSet(
0045 version = cms.string('RUN3WINTER22PUPPI'),
0046 quality = cms.string('TIGHTLEPVETO'),
0047 ),
0048 src = cms.InputTag("updatedJetsAK8")
0049 )
0050
0051 run2_jme_2016.toModify(
0052 tightJetIdAK8.filterParams, version = "RUN2UL16PUPPI"
0053 ).toModify(
0054 tightJetIdLepVetoAK8.filterParams, version = "RUN2UL16PUPPI"
0055 )
0056
0057 (run2_jme_2017 | run2_jme_2018 | run3_nanoAOD_122 | run3_nanoAOD_124).toModify(
0058 tightJetIdAK8.filterParams, version = "RUN2ULPUPPI"
0059 ).toModify(
0060 tightJetIdLepVetoAK8.filterParams, version = "RUN2ULPUPPI"
0061 )
0062
0063 run3_jme_Winter22runsBCDEprompt.toModify(
0064 tightJetIdAK8.filterParams, version = "RUN3WINTER22PUPPIrunsBCDEprompt"
0065 ).toModify(
0066 tightJetIdLepVetoAK8.filterParams, version = "RUN3WINTER22PUPPIrunsBCDEprompt"
0067 )
0068
0069 updatedJetsAK8WithUserData = cms.EDProducer("PATJetUserDataEmbedder",
0070 src = cms.InputTag("updatedJetsAK8"),
0071 userFloats = cms.PSet(),
0072 userInts = cms.PSet(
0073 tightId = cms.InputTag("tightJetIdAK8"),
0074 tightIdLepVeto = cms.InputTag("tightJetIdLepVetoAK8"),
0075 ),
0076 )
0077
0078 finalJetsAK8 = cms.EDFilter("PATJetRefSelector",
0079 src = cms.InputTag("updatedJetsAK8WithUserData"),
0080 cut = cms.string("pt > 170")
0081 )
0082
0083
0084 lepInAK8JetVars = cms.EDProducer("LepInJetProducer",
0085 src = cms.InputTag("updatedJetsAK8WithUserData"),
0086 srcEle = cms.InputTag("finalElectrons"),
0087 srcMu = cms.InputTag("finalMuons")
0088 )
0089
0090 fatJetTable = simpleCandidateFlatTableProducer.clone(
0091 src = cms.InputTag("finalJetsAK8"),
0092 cut = cms.string(" pt > 170"),
0093 name = cms.string("FatJet"),
0094 doc = cms.string("slimmedJetsAK8, i.e. ak8 fat jets for boosted analysis"),
0095 variables = cms.PSet(P4Vars,
0096 jetId = Var("userInt('tightId')*2+4*userInt('tightIdLepVeto')", "uint8",doc="Jet ID flags bit1 is loose (always false in 2017 since it does not exist), bit2 is tight, bit3 is tightLepVeto"),
0097 area = Var("jetArea()", float, doc="jet catchment area, for JECs",precision=10),
0098 rawFactor = Var("1.-jecFactor('Uncorrected')",float,doc="1 - Factor to get back to raw pT",precision=6),
0099 tau1 = Var("userFloat('NjettinessAK8Puppi:tau1')",float, doc="Nsubjettiness (1 axis)",precision=10),
0100 tau2 = Var("userFloat('NjettinessAK8Puppi:tau2')",float, doc="Nsubjettiness (2 axis)",precision=10),
0101 tau3 = Var("userFloat('NjettinessAK8Puppi:tau3')",float, doc="Nsubjettiness (3 axis)",precision=10),
0102 tau4 = Var("userFloat('NjettinessAK8Puppi:tau4')",float, doc="Nsubjettiness (4 axis)",precision=10),
0103 n2b1 = Var("?hasUserFloat('nb1AK8PuppiSoftDrop:ecfN2')?userFloat('nb1AK8PuppiSoftDrop:ecfN2'):-99999.", float, doc="N2 with beta=1 (for jets with raw pT>250 GeV)", precision=10),
0104 n3b1 = Var("?hasUserFloat('nb1AK8PuppiSoftDrop:ecfN3')?userFloat('nb1AK8PuppiSoftDrop:ecfN3'):-99999.", float, doc="N3 with beta=1 (for jets with raw pT>250 GeV)", precision=10),
0105 msoftdrop = Var("groomedMass('SoftDropPuppi')",float, doc="Corrected soft drop mass with PUPPI",precision=10),
0106 btagDeepB = Var("?(bDiscriminator('pfDeepCSVJetTags:probb')+bDiscriminator('pfDeepCSVJetTags:probbb'))>=0?bDiscriminator('pfDeepCSVJetTags:probb')+bDiscriminator('pfDeepCSVJetTags:probbb'):-1",float,doc="DeepCSV b+bb tag discriminator",precision=10),
0107 btagHbb = Var("bDiscriminator('pfBoostedDoubleSecondaryVertexAK8BJetTags')",float,doc="Higgs to BB tagger discriminator",precision=10),
0108 btagDDBvLV2 = Var("bDiscriminator('pfMassIndependentDeepDoubleBvLV2JetTags:probHbb')",float,doc="DeepDoubleX V2(mass-decorrelated) discriminator for H(Z)->bb vs QCD",precision=10),
0109 btagDDCvLV2 = Var("bDiscriminator('pfMassIndependentDeepDoubleCvLV2JetTags:probHcc')",float,doc="DeepDoubleX V2 (mass-decorrelated) discriminator for H(Z)->cc vs QCD",precision=10),
0110 btagDDCvBV2 = Var("bDiscriminator('pfMassIndependentDeepDoubleCvBV2JetTags:probHcc')",float,doc="DeepDoubleX V2 (mass-decorrelated) discriminator for H(Z)->cc vs H(Z)->bb",precision=10),
0111 particleNetWithMass_QCD = Var("bDiscriminator('pfParticleNetJetTags:probQCDbb')+bDiscriminator('pfParticleNetJetTags:probQCDcc')+bDiscriminator('pfParticleNetJetTags:probQCDb')+bDiscriminator('pfParticleNetJetTags:probQCDc')+bDiscriminator('pfParticleNetJetTags:probQCDothers')",float,doc="ParticleNet tagger (w/ mass) QCD(bb,cc,b,c,others) sum",precision=10),
0112 particleNetWithMass_TvsQCD = Var("bDiscriminator('pfParticleNetDiscriminatorsJetTags:TvsQCD')",float,doc="ParticleNet tagger (w/ mass) top vs QCD discriminator",precision=10),
0113 particleNetWithMass_WvsQCD = Var("bDiscriminator('pfParticleNetDiscriminatorsJetTags:WvsQCD')",float,doc="ParticleNet tagger (w/ mass) W vs QCD discriminator",precision=10),
0114 particleNetWithMass_ZvsQCD = Var("bDiscriminator('pfParticleNetDiscriminatorsJetTags:ZvsQCD')",float,doc="ParticleNet tagger (w/ mass) Z vs QCD discriminator",precision=10),
0115 particleNetWithMass_H4qvsQCD = Var("bDiscriminator('pfParticleNetDiscriminatorsJetTags:H4qvsQCD')",float,doc="ParticleNet tagger (w/ mass) H(->VV->qqqq) vs QCD discriminator",precision=10),
0116 particleNetWithMass_HbbvsQCD = Var("bDiscriminator('pfParticleNetDiscriminatorsJetTags:HbbvsQCD')",float,doc="ParticleNet tagger (w/mass) H(->bb) vs QCD discriminator",precision=10),
0117 particleNetWithMass_HccvsQCD = Var("bDiscriminator('pfParticleNetDiscriminatorsJetTags:HccvsQCD')",float,doc="ParticleNet tagger (w/mass) H(->cc) vs QCD discriminator",precision=10),
0118 particleNet_QCD = Var("bDiscriminator('pfParticleNetFromMiniAODAK8JetTags:probQCD2hf')+bDiscriminator('pfParticleNetFromMiniAODAK8JetTags:probQCD1hf')+bDiscriminator('pfParticleNetFromMiniAODAK8JetTags:probQCD0hf')",float,doc="ParticleNet tagger QCD(0+1+2HF) sum",precision=10),
0119 particleNet_QCD2HF = Var("bDiscriminator('pfParticleNetFromMiniAODAK8JetTags:probQCD2hf')",float,doc="ParticleNet tagger QCD 2 HF (b/c) score",precision=10),
0120 particleNet_QCD1HF = Var("bDiscriminator('pfParticleNetFromMiniAODAK8JetTags:probQCD1hf')",float,doc="ParticleNet tagger QCD 1 HF (b/c) score",precision=10),
0121 particleNet_QCD0HF = Var("bDiscriminator('pfParticleNetFromMiniAODAK8JetTags:probQCD0hf')",float,doc="ParticleNet tagger QCD 0 HF (b/c) score",precision=10),
0122 particleNet_massCorr = Var("bDiscriminator('pfParticleNetFromMiniAODAK8JetTags:masscorr')",float,doc="ParticleNet mass regression, relative correction to JEC-corrected jet mass (no softdrop)",precision=10),
0123 particleNet_XbbVsQCD = Var("bDiscriminator('pfParticleNetFromMiniAODAK8DiscriminatorsJetTags:HbbvsQCD')",float,doc="ParticleNet X->bb vs. QCD score: Xbb/(Xbb+QCD)",precision=10),
0124 particleNet_XccVsQCD = Var("bDiscriminator('pfParticleNetFromMiniAODAK8DiscriminatorsJetTags:HccvsQCD')",float,doc="ParticleNet X->cc vs. QCD score: Xcc/(Xcc+QCD)",precision=10),
0125 particleNet_XqqVsQCD = Var("bDiscriminator('pfParticleNetFromMiniAODAK8DiscriminatorsJetTags:HqqvsQCD')",float,doc="ParticleNet X->qq (uds) vs. QCD score: Xqq/(Xqq+QCD)",precision=10),
0126 particleNet_XggVsQCD = Var("bDiscriminator('pfParticleNetFromMiniAODAK8DiscriminatorsJetTags:HggvsQCD')",float,doc="ParticleNet X->gg vs. QCD score: Xgg/(Xgg+QCD)",precision=10),
0127 particleNet_XttVsQCD = Var("bDiscriminator('pfParticleNetFromMiniAODAK8DiscriminatorsJetTags:HttvsQCD')",float,doc="ParticleNet X->tau_h tau_h vs. QCD score: Xtt/(Xtt+QCD)",precision=10),
0128 particleNet_XtmVsQCD = Var("bDiscriminator('pfParticleNetFromMiniAODAK8DiscriminatorsJetTags:HtmvsQCD')",float,doc="ParticleNet X->mu tau_h vs. QCD score: Xtm/(Xtm+QCD)",precision=10),
0129 particleNet_XteVsQCD = Var("bDiscriminator('pfParticleNetFromMiniAODAK8DiscriminatorsJetTags:HtevsQCD')",float,doc="ParticleNet X->e tau_h vs. QCD score: Xte/(Xte+QCD)",precision=10),
0130 subJetIdx1 = Var("?nSubjetCollections()>0 && subjets('SoftDropPuppi').size()>0?subjets('SoftDropPuppi')[0].key():-1", "int16",
0131 doc="index of first subjet"),
0132 subJetIdx2 = Var("?nSubjetCollections()>0 && subjets('SoftDropPuppi').size()>1?subjets('SoftDropPuppi')[1].key():-1", "int16",
0133 doc="index of second subjet"),
0134 nConstituents = Var("numberOfDaughters()","uint8",doc="Number of particles in the jet"),
0135 chMultiplicity = Var("?isPFJet()?chargedMultiplicity():-1","int16",doc="(Puppi-weighted) Number of charged particles in the jet"),
0136 neMultiplicity = Var("?isPFJet()?neutralMultiplicity():-1","int16",doc="(Puppi-weighted) Number of neutral particles in the jet"),
0137 chHEF = Var("?isPFJet()?chargedHadronEnergyFraction():-1", float, doc="charged Hadron Energy Fraction", precision=6),
0138 neHEF = Var("?isPFJet()?neutralHadronEnergyFraction():-1", float, doc="neutral Hadron Energy Fraction", precision=6),
0139 chEmEF = Var("?isPFJet()?chargedEmEnergyFraction():-1", float, doc="charged Electromagnetic Energy Fraction", precision=6),
0140 neEmEF = Var("?isPFJet()?neutralEmEnergyFraction():-1", float, doc="neutral Electromagnetic Energy Fraction", precision=6),
0141 muEF = Var("?isPFJet()?muonEnergyFraction():-1", float, doc="muon Energy Fraction", precision=6),
0142 ),
0143 externalVariables = cms.PSet(
0144 lsf3 = ExtVar(cms.InputTag("lepInAK8JetVars:lsf3"),float, doc="Lepton Subjet Fraction (3 subjets)",precision=10),
0145 muonIdx3SJ = ExtVar(cms.InputTag("lepInAK8JetVars:muIdx3SJ"),"int16", doc="index of muon matched to jet"),
0146 electronIdx3SJ = ExtVar(cms.InputTag("lepInAK8JetVars:eleIdx3SJ"),"int16",doc="index of electron matched to jet"),
0147 )
0148 )
0149
0150 run2_nanoAOD_ANY.toModify(
0151 fatJetTable.variables,
0152 btagCSVV2 = Var("bDiscriminator('pfCombinedInclusiveSecondaryVertexV2BJetTags')",float,doc=" pfCombinedInclusiveSecondaryVertexV2 b-tag discriminator (aka CSVV2)",precision=10),
0153
0154 chMultiplicity = None,
0155 neMultiplicity = None,
0156 chHEF = None,
0157 neHEF = None,
0158 chEmEF = None,
0159 neEmEF = None,
0160 muEF = None
0161 )
0162 (run3_nanoAOD_122 | run3_nanoAOD_124).toModify(
0163 fatJetTable.variables,
0164
0165 particleNet_QCD = None,
0166 particleNet_QCD2HF = None,
0167 particleNet_QCD1HF = None,
0168 particleNet_QCD0HF = None,
0169 particleNet_massCorr = None,
0170 particleNet_XbbVsQCD = None,
0171 particleNet_XccVsQCD = None,
0172 particleNet_XqqVsQCD = None,
0173 particleNet_XggVsQCD = None,
0174 particleNet_XttVsQCD = None,
0175 particleNet_XtmVsQCD = None,
0176 particleNet_XteVsQCD = None,
0177
0178 chMultiplicity = None,
0179 neMultiplicity = None,
0180 chHEF = None,
0181 neHEF = None,
0182 chEmEF = None,
0183 neEmEF = None,
0184 muEF = None
0185 )
0186
0187 (run2_nanoAOD_106Xv2 | run3_nanoAOD_122 | run3_nanoAOD_124).toModify(
0188 fatJetTable.variables,
0189
0190 deepTag_TvsQCD = Var("bDiscriminator('pfDeepBoostedDiscriminatorsJetTags:TvsQCD')",float,doc="DeepBoostedJet tagger top vs QCD discriminator",precision=10),
0191 deepTag_WvsQCD = Var("bDiscriminator('pfDeepBoostedDiscriminatorsJetTags:WvsQCD')",float,doc="DeepBoostedJet tagger W vs QCD discriminator",precision=10),
0192 deepTag_ZvsQCD = Var("bDiscriminator('pfDeepBoostedDiscriminatorsJetTags:ZvsQCD')",float,doc="DeepBoostedJet tagger Z vs QCD discriminator",precision=10),
0193 deepTag_H = Var("bDiscriminator('pfDeepBoostedJetTags:probHbb')+bDiscriminator('pfDeepBoostedJetTags:probHcc')+bDiscriminator('pfDeepBoostedJetTags:probHqqqq')",float,doc="DeepBoostedJet tagger H(bb,cc,4q) sum",precision=10),
0194 deepTag_QCD = Var("bDiscriminator('pfDeepBoostedJetTags:probQCDbb')+bDiscriminator('pfDeepBoostedJetTags:probQCDcc')+bDiscriminator('pfDeepBoostedJetTags:probQCDb')+bDiscriminator('pfDeepBoostedJetTags:probQCDc')+bDiscriminator('pfDeepBoostedJetTags:probQCDothers')",float,doc="DeepBoostedJet tagger QCD(bb,cc,b,c,others) sum",precision=10),
0195 deepTag_QCDothers = Var("bDiscriminator('pfDeepBoostedJetTags:probQCDothers')",float,doc="DeepBoostedJet tagger QCDothers value",precision=10),
0196 deepTagMD_TvsQCD = Var("bDiscriminator('pfMassDecorrelatedDeepBoostedDiscriminatorsJetTags:TvsQCD')",float,doc="Mass-decorrelated DeepBoostedJet tagger top vs QCD discriminator",precision=10),
0197 deepTagMD_WvsQCD = Var("bDiscriminator('pfMassDecorrelatedDeepBoostedDiscriminatorsJetTags:WvsQCD')",float,doc="Mass-decorrelated DeepBoostedJet tagger W vs QCD discriminator",precision=10),
0198 deepTagMD_ZvsQCD = Var("bDiscriminator('pfMassDecorrelatedDeepBoostedDiscriminatorsJetTags:ZvsQCD')",float,doc="Mass-decorrelated DeepBoostedJet tagger Z vs QCD discriminator",precision=10),
0199 deepTagMD_ZHbbvsQCD = Var("bDiscriminator('pfMassDecorrelatedDeepBoostedDiscriminatorsJetTags:ZHbbvsQCD')",float,doc="Mass-decorrelated DeepBoostedJet tagger Z/H->bb vs QCD discriminator",precision=10),
0200 deepTagMD_ZbbvsQCD = Var("bDiscriminator('pfMassDecorrelatedDeepBoostedDiscriminatorsJetTags:ZbbvsQCD')",float,doc="Mass-decorrelated DeepBoostedJet tagger Z->bb vs QCD discriminator",precision=10),
0201 deepTagMD_HbbvsQCD = Var("bDiscriminator('pfMassDecorrelatedDeepBoostedDiscriminatorsJetTags:HbbvsQCD')",float,doc="Mass-decorrelated DeepBoostedJet tagger H->bb vs QCD discriminator",precision=10),
0202 deepTagMD_ZHccvsQCD = Var("bDiscriminator('pfMassDecorrelatedDeepBoostedDiscriminatorsJetTags:ZHccvsQCD')",float,doc="Mass-decorrelated DeepBoostedJet tagger Z/H->cc vs QCD discriminator",precision=10),
0203 deepTagMD_H4qvsQCD = Var("bDiscriminator('pfMassDecorrelatedDeepBoostedDiscriminatorsJetTags:H4qvsQCD')",float,doc="Mass-decorrelated DeepBoostedJet tagger H->4q vs QCD discriminator",precision=10),
0204 deepTagMD_bbvsLight = Var("bDiscriminator('pfMassDecorrelatedDeepBoostedDiscriminatorsJetTags:bbvsLight')",float,doc="Mass-decorrelated DeepBoostedJet tagger Z/H/gluon->bb vs light flavour discriminator",precision=10),
0205 deepTagMD_ccvsLight = Var("bDiscriminator('pfMassDecorrelatedDeepBoostedDiscriminatorsJetTags:ccvsLight')",float,doc="Mass-decorrelated DeepBoostedJet tagger Z/H/gluon->cc vs light flavour discriminator",precision=10),
0206 particleNetLegacy_mass = Var("bDiscriminator('pfParticleNetMassRegressionJetTags:mass')",float,doc="ParticleNet Legacy Run-2 mass regression",precision=10),
0207 particleNetLegacy_Xbb = Var("bDiscriminator('pfMassDecorrelatedParticleNetJetTags:probXbb')",float,doc="Mass-decorrelated ParticleNet Legacy Run-2 tagger raw X->bb score. For X->bb vs QCD tagging, use Xbb/(Xbb+QCD)",precision=10),
0208 particleNetLegacy_Xcc = Var("bDiscriminator('pfMassDecorrelatedParticleNetJetTags:probXcc')",float,doc="Mass-decorrelated ParticleNet Legacy Run-2 tagger raw X->cc score. For X->cc vs QCD tagging, use Xcc/(Xcc+QCD)",precision=10),
0209 particleNetLegacy_Xqq = Var("bDiscriminator('pfMassDecorrelatedParticleNetJetTags:probXqq')",float,doc="Mass-decorrelated ParticleNet Legacy Run-2 tagger raw X->qq (uds) score. For X->qq vs QCD tagging, use Xqq/(Xqq+QCD). For W vs QCD tagging, use (Xcc+Xqq)/(Xcc+Xqq+QCD)",precision=10),
0210 particleNetLegacy_QCD = Var("bDiscriminator('pfMassDecorrelatedParticleNetJetTags:probQCDbb')+bDiscriminator('pfMassDecorrelatedParticleNetJetTags:probQCDcc')+bDiscriminator('pfMassDecorrelatedParticleNetJetTags:probQCDb')+bDiscriminator('pfMassDecorrelatedParticleNetJetTags:probQCDc')+bDiscriminator('pfMassDecorrelatedParticleNetJetTags:probQCDothers')",float,doc="Mass-decorrelated ParticleNet Legacy Run-2 tagger raw QCD score",precision=10),
0211 )
0212
0213
0214
0215
0216
0217 from PhysicsTools.PatAlgos.tools.jetTools import updateJetCollection
0218 def nanoAOD_addDeepInfoAK8(process, addDeepBTag, addDeepBoostedJet, addDeepDoubleX, addDeepDoubleXV2, addParticleNetMassLegacy, addParticleNet, jecPayload):
0219 _btagDiscriminators=[]
0220 if addDeepBTag:
0221 print("Updating process to run DeepCSV btag to AK8 jets")
0222 _btagDiscriminators += ['pfDeepCSVJetTags:probb','pfDeepCSVJetTags:probbb']
0223 if addDeepBoostedJet:
0224 print("Updating process to run DeepBoostedJet on datasets before 103X")
0225 from RecoBTag.ONNXRuntime.pfDeepBoostedJet_cff import _pfDeepBoostedJetTagsAll as pfDeepBoostedJetTagsAll
0226 _btagDiscriminators += pfDeepBoostedJetTagsAll
0227 if addParticleNet:
0228 print("Updating process to run ParticleNet joint classification and mass regression")
0229 from RecoBTag.ONNXRuntime.pfParticleNetFromMiniAODAK8_cff import _pfParticleNetFromMiniAODAK8JetTagsAll as pfParticleNetFromMiniAODAK8JetTagsAll
0230 _btagDiscriminators += pfParticleNetFromMiniAODAK8JetTagsAll
0231 if addParticleNetMassLegacy:
0232 from RecoBTag.ONNXRuntime.pfParticleNet_cff import _pfParticleNetMassRegressionOutputs
0233 _btagDiscriminators += _pfParticleNetMassRegressionOutputs
0234 if addDeepDoubleX:
0235 print("Updating process to run DeepDoubleX on datasets before 104X")
0236 _btagDiscriminators += ['pfDeepDoubleBvLJetTags:probHbb', \
0237 'pfDeepDoubleCvLJetTags:probHcc', \
0238 'pfDeepDoubleCvBJetTags:probHcc', \
0239 'pfMassIndependentDeepDoubleBvLJetTags:probHbb', 'pfMassIndependentDeepDoubleCvLJetTags:probHcc', 'pfMassIndependentDeepDoubleCvBJetTags:probHcc']
0240 if addDeepDoubleXV2:
0241 print("Updating process to run DeepDoubleXv2 on datasets before 11X")
0242 _btagDiscriminators += [
0243 'pfMassIndependentDeepDoubleBvLV2JetTags:probHbb',
0244 'pfMassIndependentDeepDoubleCvLV2JetTags:probHcc',
0245 'pfMassIndependentDeepDoubleCvBV2JetTags:probHcc'
0246 ]
0247 if len(_btagDiscriminators)==0: return process
0248 print("Will recalculate the following discriminators on AK8 jets: "+", ".join(_btagDiscriminators))
0249 updateJetCollection(
0250 process,
0251 jetSource = cms.InputTag('slimmedJetsAK8'),
0252 pvSource = cms.InputTag('offlineSlimmedPrimaryVertices'),
0253 svSource = cms.InputTag('slimmedSecondaryVertices'),
0254 rParam = 0.8,
0255 jetCorrections = (jecPayload.value(), cms.vstring(['L1FastJet', 'L2Relative', 'L3Absolute', 'L2L3Residual']), 'None'),
0256 btagDiscriminators = _btagDiscriminators,
0257 postfix='AK8WithDeepInfo',
0258 printWarning = False
0259 )
0260 process.jetCorrFactorsAK8.src="selectedUpdatedPatJetsAK8WithDeepInfo"
0261 process.updatedJetsAK8.jetSource="selectedUpdatedPatJetsAK8WithDeepInfo"
0262 return process
0263
0264 nanoAOD_addDeepInfoAK8_switch = cms.PSet(
0265 nanoAOD_addDeepBTag_switch = cms.untracked.bool(False),
0266 nanoAOD_addDeepBoostedJet_switch = cms.untracked.bool(False),
0267 nanoAOD_addDeepDoubleX_switch = cms.untracked.bool(False),
0268 nanoAOD_addDeepDoubleXV2_switch = cms.untracked.bool(False),
0269 nanoAOD_addParticleNet_switch = cms.untracked.bool(False),
0270 nanoAOD_addParticleNetMassLegacy_switch = cms.untracked.bool(False),
0271 jecPayload = cms.untracked.string('AK8PFPuppi')
0272 )
0273
0274
0275
0276
0277 run2_nanoAOD_106Xv2.toModify(
0278 nanoAOD_addDeepInfoAK8_switch,
0279 nanoAOD_addParticleNet_switch = True,
0280 nanoAOD_addParticleNetMassLegacy_switch = True
0281 )
0282
0283
0284
0285
0286
0287 subJetTable = simpleCandidateFlatTableProducer.clone(
0288 src = cms.InputTag("slimmedJetsAK8PFPuppiSoftDropPacked","SubJets"),
0289 name = cms.string("SubJet"),
0290 doc = cms.string("slimmedJetsAK8PFPuppiSoftDropPacked::SubJets, i.e. soft-drop subjets for ak8 fat jets for boosted analysis"),
0291 variables = cms.PSet(P4Vars,
0292 btagDeepB = Var("bDiscriminator('pfDeepCSVJetTags:probb')+bDiscriminator('pfDeepCSVJetTags:probbb')",float,doc="DeepCSV b+bb tag discriminator",precision=10),
0293 rawFactor = Var("1.-jecFactor('Uncorrected')",float,doc="1 - Factor to get back to raw pT",precision=6),
0294 area = Var("jetArea()", float, doc="jet catchment area, for JECs",precision=10),
0295 tau1 = Var("userFloat('NjettinessAK8Subjets:tau1')",float, doc="Nsubjettiness (1 axis)",precision=10),
0296 tau2 = Var("userFloat('NjettinessAK8Subjets:tau2')",float, doc="Nsubjettiness (2 axis)",precision=10),
0297 tau3 = Var("userFloat('NjettinessAK8Subjets:tau3')",float, doc="Nsubjettiness (3 axis)",precision=10),
0298 tau4 = Var("userFloat('NjettinessAK8Subjets:tau4')",float, doc="Nsubjettiness (4 axis)",precision=10),
0299 n2b1 = Var("userFloat('nb1AK8PuppiSoftDropSubjets:ecfN2')", float, doc="N2 with beta=1", precision=10),
0300 n3b1 = Var("userFloat('nb1AK8PuppiSoftDropSubjets:ecfN3')", float, doc="N3 with beta=1", precision=10),
0301 )
0302 )
0303
0304 run2_nanoAOD_ANY.toModify(
0305 subJetTable.variables,
0306 btagCSVV2 = Var("bDiscriminator('pfCombinedInclusiveSecondaryVertexV2BJetTags')",float,doc=" pfCombinedInclusiveSecondaryVertexV2 b-tag discriminator (aka CSVV2)",precision=10)
0307 )
0308
0309 (run2_nanoAOD_106Xv2 | run3_nanoAOD_122 | run3_nanoAOD_124).toModify(
0310 subJetTable.variables,
0311 area = None,
0312 )
0313
0314
0315 fatJetTable.variables.pt.precision=10
0316 subJetTable.variables.pt.precision=10
0317
0318 jetAK8UserDataTask = cms.Task(tightJetIdAK8,tightJetIdLepVetoAK8)
0319 jetAK8Task = cms.Task(jetCorrFactorsAK8,updatedJetsAK8,jetAK8UserDataTask,updatedJetsAK8WithUserData,finalJetsAK8)
0320
0321
0322 jetAK8LepTask = cms.Task(lepInAK8JetVars)
0323
0324 jetAK8TablesTask = cms.Task(fatJetTable,subJetTable)