1 import FWCore.ParameterSet.Config
as cms
2 from Configuration.Eras.Modifier_run2_miniAOD_80XLegacy_cff
import run2_miniAOD_80XLegacy
3 from Configuration.Eras.Modifier_run2_nanoAOD_92X_cff
import run2_nanoAOD_92X
4 from Configuration.Eras.Modifier_run2_nanoAOD_94X2016_cff
import run2_nanoAOD_94X2016
13 chsForSATkJets = cms.EDFilter(
"CandPtrSelector", src = cms.InputTag(
"packedPFCandidates"), cut = cms.string(
'charge()!=0 && pvAssociationQuality()>=5 && vertexRef().key()==0'))
14 softActivityJets = ak4PFJets.clone(src =
'chsForSATkJets', doAreaFastjet =
False, jetPtMin=1)
15 softActivityJets10 = cms.EDFilter(
"CandPtrSelector", src = cms.InputTag(
"softActivityJets"), cut = cms.string(
'pt>10'))
16 softActivityJets5 = cms.EDFilter(
"CandPtrSelector", src = cms.InputTag(
"softActivityJets"), cut = cms.string(
'pt>5'))
17 softActivityJets2 = cms.EDFilter(
"CandPtrSelector", src = cms.InputTag(
"softActivityJets"), cut = cms.string(
'pt>2'))
19 looseJetId = cms.EDProducer(
"PatJetIDValueMapProducer",
20 filterParams=cms.PSet(
21 version = cms.string(
'WINTER16'),
22 quality = cms.string(
'LOOSE'),
24 src = cms.InputTag(
"slimmedJets")
26 tightJetId = cms.EDProducer(
"PatJetIDValueMapProducer",
27 filterParams=cms.PSet(
28 version = cms.string(
'WINTER17'),
29 quality = cms.string(
'TIGHT'),
31 src = cms.InputTag(
"slimmedJets")
33 for modifier
in run2_miniAOD_80XLegacy, run2_nanoAOD_94X2016:
34 modifier.toModify( tightJetId.filterParams, version =
"WINTER16" )
36 tightJetIdLepVeto = cms.EDProducer(
"PatJetIDValueMapProducer",
37 filterParams=cms.PSet(
38 version = cms.string(
'WINTER17'),
39 quality = cms.string(
'TIGHTLEPVETO'),
41 src = cms.InputTag(
"slimmedJets")
44 looseJetIdAK8 = cms.EDProducer(
"PatJetIDValueMapProducer",
45 filterParams=cms.PSet(
46 version = cms.string(
'WINTER16'),
47 quality = cms.string(
'LOOSE'),
49 src = cms.InputTag(
"slimmedJetsAK8")
51 tightJetIdAK8 = cms.EDProducer(
"PatJetIDValueMapProducer",
52 filterParams=cms.PSet(
53 version = cms.string(
'WINTER17'),
54 quality = cms.string(
'TIGHT'),
56 src = cms.InputTag(
"slimmedJetsAK8")
58 for modifier
in run2_miniAOD_80XLegacy, run2_nanoAOD_94X2016:
59 modifier.toModify( tightJetIdAK8.filterParams, version =
"WINTER16" )
61 tightJetIdLepVetoAK8 = cms.EDProducer(
"PatJetIDValueMapProducer",
62 filterParams=cms.PSet(
63 version = cms.string(
'WINTER17'),
64 quality = cms.string(
'TIGHTLEPVETO'),
66 src = cms.InputTag(
"slimmedJetsAK8")
69 bJetVars = cms.EDProducer(
"JetRegressionVarProducer",
70 pvsrc = cms.InputTag(
"offlineSlimmedPrimaryVertices"),
71 src = cms.InputTag(
"slimmedJets"),
72 svsrc = cms.InputTag(
"slimmedSecondaryVertices"),
73 gpsrc = cms.InputTag(
"prunedGenParticles"),
79 slimmedJetsWithUserData = cms.EDProducer(
"PATJetUserDataEmbedder",
80 src = cms.InputTag(
"slimmedJets"),
81 userFloats = cms.PSet(
82 leadTrackPt = cms.InputTag(
"bJetVars:leadTrackPt"),
83 leptonPtRel = cms.InputTag(
"bJetVars:leptonPtRel"),
84 leptonPtRatio = cms.InputTag(
"bJetVars:leptonPtRatio"),
85 leptonPtRelInv = cms.InputTag(
"bJetVars:leptonPtRelInv"),
86 leptonPtRelv0 = cms.InputTag(
"bJetVars:leptonPtRelv0"),
87 leptonPtRatiov0 = cms.InputTag(
"bJetVars:leptonPtRatiov0"),
88 leptonPtRelInvv0 = cms.InputTag(
"bJetVars:leptonPtRelInvv0"),
89 leptonDeltaR = cms.InputTag(
"bJetVars:leptonDeltaR"),
90 leptonPt = cms.InputTag(
"bJetVars:leptonPt"),
91 vtxPt = cms.InputTag(
"bJetVars:vtxPt"),
92 vtxMass = cms.InputTag(
"bJetVars:vtxMass"),
93 vtx3dL = cms.InputTag(
"bJetVars:vtx3dL"),
94 vtx3deL = cms.InputTag(
"bJetVars:vtx3deL"),
95 ptD = cms.InputTag(
"bJetVars:ptD"),
96 genPtwNu = cms.InputTag(
"bJetVars:genPtwNu"),
100 tightId = cms.InputTag(
"tightJetId"),
101 tightIdLepVeto = cms.InputTag(
"tightJetIdLepVeto"),
102 vtxNtrk = cms.InputTag(
"bJetVars:vtxNtrk"),
103 leptonPdgId = cms.InputTag(
"bJetVars:leptonPdgId"),
107 for modifier
in run2_miniAOD_80XLegacy, run2_nanoAOD_94X2016:
108 modifier.toModify( slimmedJetsWithUserData.userInts,
109 looseId = cms.InputTag(
"looseJetId"),
110 tightIdLepVeto =
None,
113 slimmedJetsAK8WithUserData = cms.EDProducer(
"PATJetUserDataEmbedder",
114 src = cms.InputTag(
"slimmedJetsAK8"),
115 userFloats = cms.PSet(),
117 tightId = cms.InputTag(
"tightJetIdAK8"),
118 tightIdLepVeto = cms.InputTag(
"tightJetIdLepVetoAK8"),
121 for modifier
in run2_miniAOD_80XLegacy, run2_nanoAOD_94X2016:
122 modifier.toModify( slimmedJetsAK8WithUserData.userInts,
123 looseId = cms.InputTag(
"looseJetIdAK8"),
124 tightIdLepVeto =
None,
130 jetCorrFactorsNano = patJetCorrFactors.clone(src=
'slimmedJetsWithUserData',
131 levels = cms.vstring(
'L1FastJet',
135 primaryVertices = cms.InputTag(
"offlineSlimmedPrimaryVertices"),
137 jetCorrFactorsAK8 = patJetCorrFactors.clone(src=
'slimmedJetsAK8WithUserData',
138 levels = cms.vstring(
'L1FastJet',
142 payload = cms.string(
'AK8PFPuppi'),
143 primaryVertices = cms.InputTag(
"offlineSlimmedPrimaryVertices"),
145 run2_miniAOD_80XLegacy.toModify(jetCorrFactorsAK8, payload = cms.string(
'AK8PFchs'))
148 updatedJets = updatedPatJets.clone(
150 jetSource=
'slimmedJetsWithUserData',
151 jetCorrFactorsSource=cms.VInputTag(cms.InputTag(
"jetCorrFactorsNano") ),
154 finalJets = cms.EDFilter(
"PATJetRefSelector",
155 src = cms.InputTag(
"updatedJets"),
156 cut = cms.string(
"pt > 15")
159 updatedJetsAK8 = updatedPatJets.clone(
161 jetSource=
'slimmedJetsAK8WithUserData',
162 jetCorrFactorsSource=cms.VInputTag(cms.InputTag(
"jetCorrFactorsAK8") ),
165 finalJetsAK8 = cms.EDFilter(
"PATJetRefSelector",
166 src = cms.InputTag(
"updatedJetsAK8"),
167 cut = cms.string(
"pt > 170")
178 jetTable = cms.EDProducer(
"SimpleCandidateFlatTableProducer",
179 src = cms.InputTag(
"linkedObjects",
"jets"),
180 cut = cms.string(
""),
181 name = cms.string(
"Jet"),
182 doc = cms.string(
"slimmedJets, i.e. ak4 PFJets CHS with JECs applied, after basic selection (" + finalJets.cut.value()+
")"),
183 singleton = cms.bool(
False),
184 extension = cms.bool(
False),
185 externalVariables = cms.PSet(
187 bRegCorr =
ExtVar(cms.InputTag(
"bjetNN:corr"),float, doc=
"pt correction for b-jet energy regression",precision=12),
188 bRegRes =
ExtVar(cms.InputTag(
"bjetNN:res"),float, doc=
"res on pt corrected with b-jet regression",precision=8),
190 variables = cms.PSet(P4Vars,
191 area =
Var(
"jetArea()", float, doc=
"jet catchment area, for JECs",precision=10),
192 nMuons =
Var(
"?hasOverlaps('muons')?overlaps('muons').size():0", int, doc=
"number of muons in the jet"),
193 muonIdx1 =
Var(
"?overlaps('muons').size()>0?overlaps('muons')[0].key():-1", int, doc=
"index of first matching muon"),
194 muonIdx2 =
Var(
"?overlaps('muons').size()>1?overlaps('muons')[1].key():-1", int, doc=
"index of second matching muon"),
195 electronIdx1 =
Var(
"?overlaps('electrons').size()>0?overlaps('electrons')[0].key():-1", int, doc=
"index of first matching electron"),
196 electronIdx2 =
Var(
"?overlaps('electrons').size()>1?overlaps('electrons')[1].key():-1", int, doc=
"index of second matching electron"),
197 nElectrons =
Var(
"?hasOverlaps('electrons')?overlaps('electrons').size():0", int, doc=
"number of electrons in the jet"),
198 btagCMVA =
Var(
"bDiscriminator('pfCombinedMVAV2BJetTags')",float,doc=
"CMVA V2 btag discriminator",precision=10),
199 btagDeepB =
Var(
"bDiscriminator('pfDeepCSVJetTags:probb')+bDiscriminator('pfDeepCSVJetTags:probbb')",float,doc=
"DeepCSV b+bb tag discriminator",precision=10),
200 btagDeepFlavB =
Var(
"bDiscriminator('pfDeepFlavourJetTags:probb')+bDiscriminator('pfDeepFlavourJetTags:probbb')+bDiscriminator('pfDeepFlavourJetTags:problepb')",float,doc=
"DeepFlavour b+bb+lepb tag discriminator",precision=10),
201 btagCSVV2 =
Var(
"bDiscriminator('pfCombinedInclusiveSecondaryVertexV2BJetTags')",float,doc=
" pfCombinedInclusiveSecondaryVertexV2 b-tag discriminator (aka CSVV2)",precision=10),
202 btagDeepC =
Var(
"bDiscriminator('pfDeepCSVJetTags:probc')",float,doc=
"DeepCSV charm btag discriminator",precision=10),
204 puId =
Var(
"userInt('pileupJetId:fullId')",int,doc=
"Pilup ID flags"),
205 jetId =
Var(
"userInt('tightId')*2+4*userInt('tightIdLepVeto')",int,doc=
"Jet ID flags bit1 is loose (always false in 2017 since it does not exist), bit2 is tight, bit3 is tightLepVeto"),
206 qgl =
Var(
"userFloat('QGTagger:qgLikelihood')",float,doc=
"Quark vs Gluon likelihood discriminator",precision=10),
207 nConstituents =
Var(
"numberOfDaughters()",int,doc=
"Number of particles in the jet"),
208 rawFactor =
Var(
"1.-jecFactor('Uncorrected')",float,doc=
"1 - Factor to get back to raw pT",precision=6),
209 chHEF =
Var(
"chargedHadronEnergyFraction()", float, doc=
"charged Hadron Energy Fraction", precision= 6),
210 neHEF =
Var(
"neutralHadronEnergyFraction()", float, doc=
"neutral Hadron Energy Fraction", precision= 6),
211 chEmEF =
Var(
"chargedEmEnergyFraction()", float, doc=
"charged Electromagnetic Energy Fraction", precision= 6),
212 neEmEF =
Var(
"neutralEmEnergyFraction()", float, doc=
"neutral Electromagnetic Energy Fraction", precision= 6),
213 muEF =
Var(
"muonEnergyFraction()", float, doc=
"muon Energy Fraction", precision= 6),
218 jetTable.variables.pt.precision=10
221 run2_miniAOD_80XLegacy.toModify( slimmedJetsWithUserData.userFloats,qgl=cms.InputTag(
'qgtagger80x:qgLikelihood'))
222 run2_miniAOD_80XLegacy.toModify( jetTable.variables.qgl, expr=
"userFloat('qgl')" )
223 for modifier
in run2_miniAOD_80XLegacy, run2_nanoAOD_94X2016:
224 modifier.toModify( jetTable.variables, jetId =
Var(
"userInt('tightId')*2+userInt('looseId')",int,doc=
"Jet ID flags bit1 is loose, bit2 is tight"))
226 bjetMVA= cms.EDProducer(
"BJetEnergyRegressionMVA",
227 backend = cms.string(
"TMVA"),
228 src = cms.InputTag(
"linkedObjects",
"jets"),
229 pvsrc = cms.InputTag(
"offlineSlimmedPrimaryVertices"),
230 svsrc = cms.InputTag(
"slimmedSecondaryVertices"),
231 rhosrc = cms.InputTag(
"fixedGridRhoFastjetAll"),
232 weightFile = cms.FileInPath(
"PhysicsTools/NanoAOD/data/bjet-regression.xml"),
233 name = cms.string(
"JetReg"),
234 isClassifier = cms.bool(
False),
235 variablesOrder = cms.vstring([
"Jet_pt",
"nPVs",
"Jet_eta",
"Jet_mt",
"Jet_leadTrackPt",
"Jet_leptonPtRel",
"Jet_leptonPt",
"Jet_leptonDeltaR",
"Jet_neHEF",
"Jet_neEmEF",
"Jet_vtxPt",
"Jet_vtxMass",
"Jet_vtx3dL",
"Jet_vtxNtrk",
"Jet_vtx3deL"]),
236 variables = cms.PSet(
237 Jet_pt = cms.string(
"pt"),
238 Jet_eta = cms.string(
"eta"),
239 Jet_mt = cms.string(
"mt"),
240 Jet_leadTrackPt = cms.string(
"userFloat('leadTrackPt')"),
241 Jet_vtxNtrk = cms.string(
"userInt('vtxNtrk')"),
242 Jet_vtxMass = cms.string(
"userFloat('vtxMass')"),
243 Jet_vtx3dL = cms.string(
"userFloat('vtx3dL')"),
244 Jet_vtx3deL = cms.string(
"userFloat('vtx3deL')"),
245 Jet_vtxPt = cms.string(
"userFloat('vtxPt')"),
246 Jet_leptonPtRel = cms.string(
"userFloat('leptonPtRelv0')"),
247 Jet_leptonPt = cms.string(
"?overlaps('muons').size()>0?overlaps('muons')[0].pt():(?overlaps('electrons').size()>0?overlaps('electrons')[0].pt():0)"),
248 Jet_neHEF = cms.string(
"neutralHadronEnergy()/energy()"),
249 Jet_neEmEF = cms.string(
"neutralEmEnergy()/energy()"),
250 Jet_leptonDeltaR = cms.string(
'''?overlaps('muons').size()>0?deltaR(eta,phi,overlaps('muons')[0].eta,overlaps('muons')[0].phi): 251 (?overlaps('electrons').size()>0?deltaR(eta,phi,overlaps('electrons')[0].eta,overlaps('electrons')[0].phi): 257 bjetNN= cms.EDProducer(
"BJetEnergyRegressionMVA",
258 backend = cms.string(
"TF"),
259 src = cms.InputTag(
"linkedObjects",
"jets"),
260 pvsrc = cms.InputTag(
"offlineSlimmedPrimaryVertices"),
261 svsrc = cms.InputTag(
"slimmedSecondaryVertices"),
262 rhosrc = cms.InputTag(
"fixedGridRhoFastjetAll"),
264 weightFile = cms.FileInPath(
"PhysicsTools/NanoAOD/data/breg_training_2017.pb"),
265 name = cms.string(
"JetRegNN"),
266 isClassifier = cms.bool(
False),
267 variablesOrder = cms.vstring([
"Jet_pt",
"Jet_eta",
"rho",
"Jet_mt",
"Jet_leadTrackPt",
"Jet_leptonPtRel",
"Jet_leptonDeltaR",
"Jet_neHEF",
"Jet_neEmEF",
"Jet_vtxPt",
"Jet_vtxMass",
"Jet_vtx3dL",
"Jet_vtxNtrk",
"Jet_vtx3deL",
"Jet_numDaughters_pt03",
"Jet_energyRing_dR0_em_Jet_rawEnergy",
"Jet_energyRing_dR1_em_Jet_rawEnergy",
"Jet_energyRing_dR2_em_Jet_rawEnergy",
"Jet_energyRing_dR3_em_Jet_rawEnergy",
"Jet_energyRing_dR4_em_Jet_rawEnergy",
"Jet_energyRing_dR0_neut_Jet_rawEnergy",
"Jet_energyRing_dR1_neut_Jet_rawEnergy",
"Jet_energyRing_dR2_neut_Jet_rawEnergy",
"Jet_energyRing_dR3_neut_Jet_rawEnergy",
"Jet_energyRing_dR4_neut_Jet_rawEnergy",
"Jet_energyRing_dR0_ch_Jet_rawEnergy",
"Jet_energyRing_dR1_ch_Jet_rawEnergy",
"Jet_energyRing_dR2_ch_Jet_rawEnergy",
"Jet_energyRing_dR3_ch_Jet_rawEnergy",
"Jet_energyRing_dR4_ch_Jet_rawEnergy",
"Jet_energyRing_dR0_mu_Jet_rawEnergy",
"Jet_energyRing_dR1_mu_Jet_rawEnergy",
"Jet_energyRing_dR2_mu_Jet_rawEnergy",
"Jet_energyRing_dR3_mu_Jet_rawEnergy",
"Jet_energyRing_dR4_mu_Jet_rawEnergy",
"Jet_chHEF",
"Jet_chEmEF",
"Jet_leptonPtRelInv",
"isEle",
"isMu",
"isOther",
"Jet_mass",
"Jet_ptd"]),
268 variables = cms.PSet(
269 Jet_pt = cms.string(
"pt*jecFactor('Uncorrected')"),
270 Jet_mt = cms.string(
"mt*jecFactor('Uncorrected')"),
271 Jet_eta = cms.string(
"eta"),
272 Jet_mass = cms.string(
"mass*jecFactor('Uncorrected')"),
273 Jet_ptd = cms.string(
"userFloat('ptD')"),
274 Jet_leadTrackPt = cms.string(
"userFloat('leadTrackPt')"),
275 Jet_vtxNtrk = cms.string(
"userInt('vtxNtrk')"),
276 Jet_vtxMass = cms.string(
"userFloat('vtxMass')"),
277 Jet_vtx3dL = cms.string(
"userFloat('vtx3dL')"),
278 Jet_vtx3deL = cms.string(
"userFloat('vtx3deL')"),
279 Jet_vtxPt = cms.string(
"userFloat('vtxPt')"),
281 Jet_leptonPtRel = cms.string(
"userFloat('leptonPtRelv0')"),
282 Jet_leptonPtRelInv = cms.string(
"userFloat('leptonPtRelInvv0')*jecFactor('Uncorrected')"),
283 Jet_leptonDeltaR = cms.string(
"userFloat('leptonDeltaR')"),
285 Jet_neHEF = cms.string(
"neutralHadronEnergyFraction()"),
286 Jet_neEmEF = cms.string(
"neutralEmEnergyFraction()"),
287 Jet_chHEF = cms.string(
"chargedHadronEnergyFraction()"),
288 Jet_chEmEF = cms.string(
"chargedEmEnergyFraction()"),
289 isMu = cms.string(
"?abs(userInt('leptonPdgId'))==13?1:0"),
290 isEle = cms.string(
"?abs(userInt('leptonPdgId'))==11?1:0"),
291 isOther = cms.string(
"?userInt('leptonPdgId')==0?1:0"),
293 inputTensorName = cms.string(
"ffwd_inp"),
294 outputTensorName = cms.string(
"ffwd_out/BiasAdd"),
295 outputNames = cms.vstring([
"corr",
"res"]),
296 outputFormulas = cms.vstring([
"at(0)*0.28492164611816406+1.0596693754196167",
"0.5*(at(2)-at(1))*0.28492164611816406"]),
297 nThreads = cms.uint32(1),
298 singleThreadPool = cms.string(
"no_threads"),
304 saJetTable = cms.EDProducer(
"SimpleCandidateFlatTableProducer",
305 src = cms.InputTag(
"softActivityJets"),
306 cut = cms.string(
""),
307 maxLen = cms.uint32(6),
308 name = cms.string(
"SoftActivityJet"),
309 doc = cms.string(
"jets clustered from charged candidates compatible with primary vertex (" + chsForSATkJets.cut.value()+
")"),
310 singleton = cms.bool(
False),
311 extension = cms.bool(
False),
312 variables = cms.PSet(P3Vars,
316 saJetTable.variables.pt.precision=10
317 saJetTable.variables.eta.precision=8
318 saJetTable.variables.phi.precision=8
320 saTable = cms.EDProducer(
"GlobalVariablesTableProducer",
321 variables = cms.PSet(
322 SoftActivityJetHT =
ExtVar( cms.InputTag(
"softActivityJets"),
"candidatescalarsum", doc =
"scalar sum of soft activity jet pt, pt>1" ),
323 SoftActivityJetHT10 =
ExtVar( cms.InputTag(
"softActivityJets10"),
"candidatescalarsum", doc =
"scalar sum of soft activity jet pt , pt >10" ),
324 SoftActivityJetHT5 =
ExtVar( cms.InputTag(
"softActivityJets5"),
"candidatescalarsum", doc =
"scalar sum of soft activity jet pt, pt>5" ),
325 SoftActivityJetHT2 =
ExtVar( cms.InputTag(
"softActivityJets2"),
"candidatescalarsum", doc =
"scalar sum of soft activity jet pt, pt >2" ),
326 SoftActivityJetNjets10 =
ExtVar( cms.InputTag(
"softActivityJets10"),
"candidatesize", doc =
"number of soft activity jet pt, pt >2" ),
327 SoftActivityJetNjets5 =
ExtVar( cms.InputTag(
"softActivityJets5"),
"candidatesize", doc =
"number of soft activity jet pt, pt >5" ),
328 SoftActivityJetNjets2 =
ExtVar( cms.InputTag(
"softActivityJets2"),
"candidatesize", doc =
"number of soft activity jet pt, pt >10" ),
336 fatJetTable = cms.EDProducer(
"SimpleCandidateFlatTableProducer",
337 src = cms.InputTag(
"finalJetsAK8"),
338 cut = cms.string(
" pt > 170"),
339 name = cms.string(
"FatJet"),
340 doc = cms.string(
"slimmedJetsAK8, i.e. ak8 fat jets for boosted analysis"),
341 singleton = cms.bool(
False),
342 extension = cms.bool(
False),
343 variables = cms.PSet(P4Vars,
344 jetId =
Var(
"userInt('tightId')*2+4*userInt('tightIdLepVeto')",int,doc=
"Jet ID flags bit1 is loose (always false in 2017 since it does not exist), bit2 is tight, bit3 is tightLepVeto"),
345 area =
Var(
"jetArea()", float, doc=
"jet catchment area, for JECs",precision=10),
346 rawFactor =
Var(
"1.-jecFactor('Uncorrected')",float,doc=
"1 - Factor to get back to raw pT",precision=6),
347 tau1 =
Var(
"userFloat('NjettinessAK8Puppi:tau1')",float, doc=
"Nsubjettiness (1 axis)",precision=10),
348 tau2 =
Var(
"userFloat('NjettinessAK8Puppi:tau2')",float, doc=
"Nsubjettiness (2 axis)",precision=10),
349 tau3 =
Var(
"userFloat('NjettinessAK8Puppi:tau3')",float, doc=
"Nsubjettiness (3 axis)",precision=10),
350 tau4 =
Var(
"userFloat('NjettinessAK8Puppi:tau4')",float, doc=
"Nsubjettiness (4 axis)",precision=10),
351 n2b1 =
Var(
"userFloat('ak8PFJetsPuppiSoftDropValueMap:nb1AK8PuppiSoftDropN2')", float, doc=
"N2 with beta=1", precision=10),
352 n3b1 =
Var(
"userFloat('ak8PFJetsPuppiSoftDropValueMap:nb1AK8PuppiSoftDropN3')", float, doc=
"N3 with beta=1", precision=10),
353 msoftdrop =
Var(
"groomedMass('SoftDropPuppi')",float, doc=
"Corrected soft drop mass with PUPPI",precision=10),
354 btagCMVA =
Var(
"bDiscriminator('pfCombinedMVAV2BJetTags')",float,doc=
"CMVA V2 btag discriminator",precision=10),
355 btagDeepB =
Var(
"bDiscriminator('pfDeepCSVJetTags:probb')+bDiscriminator('pfDeepCSVJetTags:probbb')",float,doc=
"DeepCSV b+bb tag discriminator",precision=10),
356 btagCSVV2 =
Var(
"bDiscriminator('pfCombinedInclusiveSecondaryVertexV2BJetTags')",float,doc=
" pfCombinedInclusiveSecondaryVertexV2 b-tag discriminator (aka CSVV2)",precision=10),
357 btagHbb =
Var(
"bDiscriminator('pfBoostedDoubleSecondaryVertexAK8BJetTags')",float,doc=
"Higgs to BB tagger discriminator",precision=10),
358 deepTag_TvsQCD =
Var(
"bDiscriminator('pfDeepBoostedDiscriminatorsJetTags:TvsQCD')",float,doc=
"DeepBoostedJet tagger top vs QCD discriminator",precision=10),
359 deepTag_WvsQCD =
Var(
"bDiscriminator('pfDeepBoostedDiscriminatorsJetTags:WvsQCD')",float,doc=
"DeepBoostedJet tagger W vs QCD discriminator",precision=10),
360 deepTag_ZvsQCD =
Var(
"bDiscriminator('pfDeepBoostedDiscriminatorsJetTags:ZvsQCD')",float,doc=
"DeepBoostedJet tagger Z vs QCD discriminator",precision=10),
361 deepTagMD_TvsQCD =
Var(
"bDiscriminator('pfMassDecorrelatedDeepBoostedDiscriminatorsJetTags:TvsQCD')",float,doc=
"Mass-decorrelated DeepBoostedJet tagger top vs QCD discriminator",precision=10),
362 deepTagMD_WvsQCD =
Var(
"bDiscriminator('pfMassDecorrelatedDeepBoostedDiscriminatorsJetTags:WvsQCD')",float,doc=
"Mass-decorrelated DeepBoostedJet tagger W vs QCD discriminator",precision=10),
363 deepTagMD_ZvsQCD =
Var(
"bDiscriminator('pfMassDecorrelatedDeepBoostedDiscriminatorsJetTags:ZvsQCD')",float,doc=
"Mass-decorrelated DeepBoostedJet tagger Z vs QCD discriminator",precision=10),
364 deepTagMD_ZHbbvsQCD =
Var(
"bDiscriminator('pfMassDecorrelatedDeepBoostedDiscriminatorsJetTags:ZHbbvsQCD')",float,doc=
"Mass-decorrelated DeepBoostedJet tagger Z/H->bb vs QCD discriminator",precision=10),
365 deepTagMD_ZbbvsQCD =
Var(
"bDiscriminator('pfMassDecorrelatedDeepBoostedDiscriminatorsJetTags:ZbbvsQCD')",float,doc=
"Mass-decorrelated DeepBoostedJet tagger Z->bb vs QCD discriminator",precision=10),
366 deepTagMD_HbbvsQCD =
Var(
"bDiscriminator('pfMassDecorrelatedDeepBoostedDiscriminatorsJetTags:HbbvsQCD')",float,doc=
"Mass-decorrelated DeepBoostedJet tagger H->bb vs QCD discriminator",precision=10),
367 deepTagMD_ZHccvsQCD =
Var(
"bDiscriminator('pfMassDecorrelatedDeepBoostedDiscriminatorsJetTags:ZHccvsQCD')",float,doc=
"Mass-decorrelated DeepBoostedJet tagger Z/H->cc vs QCD discriminator",precision=10),
368 deepTagMD_H4qvsQCD =
Var(
"bDiscriminator('pfMassDecorrelatedDeepBoostedDiscriminatorsJetTags:H4qvsQCD')",float,doc=
"Mass-decorrelated DeepBoostedJet tagger H->4q vs QCD discriminator",precision=10),
369 deepTagMD_bbvsLight =
Var(
"bDiscriminator('pfMassDecorrelatedDeepBoostedDiscriminatorsJetTags:bbvsLight')",float,doc=
"Mass-decorrelated DeepBoostedJet tagger Z/H/gluon->bb vs light flavour discriminator",precision=10),
370 deepTagMD_ccvsLight =
Var(
"bDiscriminator('pfMassDecorrelatedDeepBoostedDiscriminatorsJetTags:ccvsLight')",float,doc=
"Mass-decorrelated DeepBoostedJet tagger Z/H/gluon->cc vs light flavour discriminator",precision=10),
371 subJetIdx1 =
Var(
"?nSubjetCollections()>0 && subjets('SoftDropPuppi').size()>0?subjets('SoftDropPuppi')[0].key():-1", int,
372 doc=
"index of first subjet"),
373 subJetIdx2 =
Var(
"?nSubjetCollections()>0 && subjets('SoftDropPuppi').size()>1?subjets('SoftDropPuppi')[1].key():-1", int,
374 doc=
"index of second subjet"),
383 run2_miniAOD_80XLegacy.toModify( bjetNN,outputFormulas = cms.vstring([
"at(0)*0.31628304719924927+1.0454729795455933",
"0.5*(at(2)-at(1))*0.31628304719924927"]))
384 run2_miniAOD_80XLegacy.toModify( fatJetTable.variables, msoftdrop_chs =
Var(
"userFloat('ak8PFJetsCHSSoftDropMass')",float, doc=
"Legacy uncorrected soft drop mass with CHS",precision=10))
385 run2_miniAOD_80XLegacy.toModify( fatJetTable.variables.tau1, expr = cms.string(
"userFloat(\'ak8PFJetsPuppiValueMap:NjettinessAK8PuppiTau1\')"),)
386 run2_miniAOD_80XLegacy.toModify( fatJetTable.variables.tau2, expr = cms.string(
"userFloat(\'ak8PFJetsPuppiValueMap:NjettinessAK8PuppiTau2\')"),)
387 run2_miniAOD_80XLegacy.toModify( fatJetTable.variables.tau3, expr = cms.string(
"userFloat(\'ak8PFJetsPuppiValueMap:NjettinessAK8PuppiTau3\')"),)
388 run2_miniAOD_80XLegacy.toModify( fatJetTable.variables, tau4 =
None)
389 run2_miniAOD_80XLegacy.toModify( fatJetTable.variables, n2b1 =
None)
390 run2_miniAOD_80XLegacy.toModify( fatJetTable.variables, n3b1 =
None)
391 for modifier
in run2_miniAOD_80XLegacy, run2_nanoAOD_94X2016:
392 modifier.toModify( fatJetTable.variables, jetId =
Var(
"userInt('tightId')*2+userInt('looseId')",int,doc=
"Jet ID flags bit1 is loose, bit2 is tight"))
394 run2_nanoAOD_92X.toModify( fatJetTable.variables, tau4 =
None)
395 run2_nanoAOD_92X.toModify( fatJetTable.variables, n2b1 =
None)
396 run2_nanoAOD_92X.toModify( fatJetTable.variables, n3b1 =
None)
400 subJetTable = cms.EDProducer(
"SimpleCandidateFlatTableProducer",
401 src = cms.InputTag(
"slimmedJetsAK8PFPuppiSoftDropPacked",
"SubJets"),
402 cut = cms.string(
""),
403 name = cms.string(
"SubJet"),
404 doc = cms.string(
"slimmedJetsAK8, i.e. ak8 fat jets for boosted analysis"),
405 singleton = cms.bool(
False),
406 extension = cms.bool(
False),
407 variables = cms.PSet(P4Vars,
408 btagCMVA =
Var(
"bDiscriminator('pfCombinedMVAV2BJetTags')",float,doc=
"CMVA V2 btag discriminator",precision=10),
409 btagDeepB =
Var(
"bDiscriminator('pfDeepCSVJetTags:probb')+bDiscriminator('pfDeepCSVJetTags:probbb')",float,doc=
"DeepCSV b+bb tag discriminator",precision=10),
410 btagCSVV2 =
Var(
"bDiscriminator('pfCombinedInclusiveSecondaryVertexV2BJetTags')",float,doc=
" pfCombinedInclusiveSecondaryVertexV2 b-tag discriminator (aka CSVV2)",precision=10),
411 rawFactor =
Var(
"1.-jecFactor('Uncorrected')",float,doc=
"1 - Factor to get back to raw pT",precision=6),
412 tau1 =
Var(
"userFloat('NjettinessAK8Subjets:tau1')",float, doc=
"Nsubjettiness (1 axis)",precision=10),
413 tau2 =
Var(
"userFloat('NjettinessAK8Subjets:tau2')",float, doc=
"Nsubjettiness (2 axis)",precision=10),
414 tau3 =
Var(
"userFloat('NjettinessAK8Subjets:tau3')",float, doc=
"Nsubjettiness (3 axis)",precision=10),
415 tau4 =
Var(
"userFloat('NjettinessAK8Subjets:tau4')",float, doc=
"Nsubjettiness (4 axis)",precision=10),
416 n2b1 =
Var(
"userFloat('nb1AK8PuppiSoftDropSubjets:ecfN2')", float, doc=
"N2 with beta=1", precision=10),
417 n3b1 =
Var(
"userFloat('nb1AK8PuppiSoftDropSubjets:ecfN3')", float, doc=
"N3 with beta=1", precision=10),
422 fatJetTable.variables.pt.precision=10
423 subJetTable.variables.pt.precision=10
425 run2_miniAOD_80XLegacy.toModify( subJetTable.variables, tau1 =
None)
426 run2_miniAOD_80XLegacy.toModify( subJetTable.variables, tau2 =
None)
427 run2_miniAOD_80XLegacy.toModify( subJetTable.variables, tau3 =
None)
428 run2_miniAOD_80XLegacy.toModify( subJetTable.variables, tau4 =
None)
429 run2_miniAOD_80XLegacy.toModify( subJetTable.variables, n2b1 =
None)
430 run2_miniAOD_80XLegacy.toModify( subJetTable.variables, n3b1 =
None)
431 run2_miniAOD_80XLegacy.toModify( subJetTable.variables, btagCMVA =
None, btagDeepB =
None)
433 run2_nanoAOD_92X.toModify( subJetTable.variables, tau4 =
None)
434 run2_nanoAOD_92X.toModify( subJetTable.variables, n2b1 =
None)
435 run2_nanoAOD_92X.toModify( subJetTable.variables, n3b1 =
None)
442 jetMCTable = cms.EDProducer(
"SimpleCandidateFlatTableProducer",
443 src = cms.InputTag(
"linkedObjects",
"jets"),
444 cut = cms.string(
""),
445 name = cms.string(
"Jet"),
446 singleton = cms.bool(
False),
447 extension = cms.bool(
True),
448 variables = cms.PSet(
449 partonFlavour =
Var(
"partonFlavour()", int, doc=
"flavour from parton matching"),
450 hadronFlavour =
Var(
"hadronFlavour()", int, doc=
"flavour from hadron ghost clustering"),
451 genJetIdx =
Var(
"?genJetFwdRef().backRef().isNonnull()?genJetFwdRef().backRef().key():-1", int, doc=
"index of matched gen jet"),
454 genJetTable = cms.EDProducer(
"SimpleCandidateFlatTableProducer",
455 src = cms.InputTag(
"slimmedGenJets"),
456 cut = cms.string(
"pt > 10"),
457 name = cms.string(
"GenJet"),
458 doc = cms.string(
"slimmedGenJets, i.e. ak4 Jets made with visible genparticles"),
459 singleton = cms.bool(
False),
460 extension = cms.bool(
False),
461 variables = cms.PSet(P4Vars,
465 patJetPartons = cms.EDProducer(
'HadronAndPartonSelector',
466 src = cms.InputTag(
"generator"),
467 particles = cms.InputTag(
"prunedGenParticles"),
468 partonMode = cms.string(
"Auto"),
469 fullChainPhysPartons = cms.bool(
True)
471 genJetFlavourAssociation = cms.EDProducer(
"JetFlavourClustering",
472 jets = genJetTable.src,
473 bHadrons = cms.InputTag(
"patJetPartons",
"bHadrons"),
474 cHadrons = cms.InputTag(
"patJetPartons",
"cHadrons"),
475 partons = cms.InputTag(
"patJetPartons",
"physicsPartons"),
476 leptons = cms.InputTag(
"patJetPartons",
"leptons"),
477 jetAlgorithm = cms.string(
"AntiKt"),
478 rParam = cms.double(0.4),
479 ghostRescaling = cms.double(1e-18),
480 hadronFlavourHasPriority = cms.bool(
False)
482 genJetFlavourTable = cms.EDProducer(
"GenJetFlavourTableProducer",
483 name = genJetTable.name,
484 src = genJetTable.src,
485 cut = genJetTable.cut,
486 deltaR = cms.double(0.1),
487 jetFlavourInfos = cms.InputTag(
"slimmedGenJetsFlavourInfos"),
490 genJetAK8Table = cms.EDProducer(
"SimpleCandidateFlatTableProducer",
491 src = cms.InputTag(
"slimmedGenJetsAK8"),
492 cut = cms.string(
"pt > 100."),
493 name = cms.string(
"GenJetAK8"),
494 doc = cms.string(
"slimmedGenJetsAK8, i.e. ak8 Jets made with visible genparticles"),
495 singleton = cms.bool(
False),
496 extension = cms.bool(
False),
497 variables = cms.PSet(P4Vars,
501 genJetAK8FlavourAssociation = cms.EDProducer(
"JetFlavourClustering",
502 jets = genJetAK8Table.src,
503 bHadrons = cms.InputTag(
"patJetPartons",
"bHadrons"),
504 cHadrons = cms.InputTag(
"patJetPartons",
"cHadrons"),
505 partons = cms.InputTag(
"patJetPartons",
"physicsPartons"),
506 leptons = cms.InputTag(
"patJetPartons",
"leptons"),
507 jetAlgorithm = cms.string(
"AntiKt"),
508 rParam = cms.double(0.8),
509 ghostRescaling = cms.double(1e-18),
510 hadronFlavourHasPriority = cms.bool(
False)
512 genJetAK8FlavourTable = cms.EDProducer(
"GenJetFlavourTableProducer",
513 name = genJetAK8Table.name,
514 src = genJetAK8Table.src,
515 cut = genJetAK8Table.cut,
516 deltaR = cms.double(0.1),
517 jetFlavourInfos = cms.InputTag(
"genJetAK8FlavourAssociation"),
519 genSubJetAK8Table = cms.EDProducer(
"SimpleCandidateFlatTableProducer",
520 src = cms.InputTag(
"slimmedGenJetsAK8SoftDropSubJets"),
521 cut = cms.string(
""),
522 name = cms.string(
"SubGenJetAK8"),
523 doc = cms.string(
"slimmedGenJetsAK8SoftDropSubJets, i.e. subjets of ak8 Jets made with visible genparticles"),
524 singleton = cms.bool(
False),
525 extension = cms.bool(
False),
526 variables = cms.PSet(P4Vars,
531 run2_miniAOD_80XLegacy.toModify( genJetFlavourTable, jetFlavourInfos = cms.InputTag(
"genJetFlavourAssociation"),)
532 run2_nanoAOD_92X.toModify( genJetFlavourTable, jetFlavourInfos = cms.InputTag(
"genJetFlavourAssociation"),)
535 jetSequence = cms.Sequence(tightJetId+tightJetIdLepVeto+bJetVars+slimmedJetsWithUserData+jetCorrFactorsNano+updatedJets+tightJetIdAK8+tightJetIdLepVetoAK8+slimmedJetsAK8WithUserData+jetCorrFactorsAK8+updatedJetsAK8+chsForSATkJets+softActivityJets+softActivityJets2+softActivityJets5+softActivityJets10+finalJets+finalJetsAK8)
538 qgtagger80x=QGTagger.clone(srcJets=
"slimmedJets",srcVertexCollection=
"offlineSlimmedPrimaryVertices")
540 _jetSequence_80X = jetSequence.copy()
541 _jetSequence_80X.replace(tightJetIdLepVeto, looseJetId)
542 _jetSequence_80X.replace(tightJetIdLepVetoAK8, looseJetIdAK8)
543 _jetSequence_80X.insert(1,qgtagger80x)
544 run2_miniAOD_80XLegacy.toReplaceWith(jetSequence, _jetSequence_80X)
546 _jetSequence_94X2016 = jetSequence.copy()
547 _jetSequence_94X2016.replace(tightJetIdLepVeto, looseJetId)
548 _jetSequence_94X2016.replace(tightJetIdLepVetoAK8, looseJetIdAK8)
549 run2_nanoAOD_94X2016.toReplaceWith(jetSequence, _jetSequence_94X2016)
552 jetTables = cms.Sequence(bjetMVA+bjetNN+jetTable+fatJetTable+subJetTable+saJetTable+saTable)
555 jetMC = cms.Sequence(jetMCTable+genJetTable+patJetPartons+genJetFlavourTable+genJetAK8Table+genJetAK8FlavourAssociation+genJetAK8FlavourTable+genSubJetAK8Table)
556 _jetMC_pre94X = jetMC.copy()
557 _jetMC_pre94X.insert(_jetMC_pre94X.index(genJetFlavourTable),genJetFlavourAssociation)
558 _jetMC_pre94X.remove(genSubJetAK8Table)
559 run2_miniAOD_80XLegacy.toReplaceWith(jetMC, _jetMC_pre94X)
560 run2_nanoAOD_92X.toReplaceWith(jetMC, _jetMC_pre94X)
def ExtVar(tag, valtype, compression=None, doc=None, mcOnly=False, precision=-1)
def Var(expr, valtype, compression=None, doc=None, mcOnly=False, precision=-1)