CMS 3D CMS Logo

jetsAK4_CHS_cff.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
2 
5 from PhysicsTools.NanoAOD.simpleCandidateFlatTableProducer_cfi import simpleCandidateFlatTableProducer
6 
7 
8 
10 # Note: Safe to always add 'L2L3Residual' as MC contains dummy L2L3Residual corrections (always set to 1)
11 # (cf. https://twiki.cern.ch/twiki/bin/view/CMSPublic/WorkBookJetEnergyCorrections#CMSSW_7_6_4_and_above )
12 jetCorrFactorsNano = patJetCorrFactors.clone(src='slimmedJets',
13  levels = cms.vstring('L1FastJet',
14  'L2Relative',
15  'L3Absolute',
16  'L2L3Residual'),
17  primaryVertices = cms.InputTag("offlineSlimmedPrimaryVertices"),
18 )
19 
21 updatedJets = updatedPatJets.clone(
22  addBTagInfo=False,
23  jetSource='slimmedJets',
24  jetCorrFactorsSource=cms.VInputTag(cms.InputTag("jetCorrFactorsNano") ),
25 )
26 
27 #
28 # JetID
29 #
30 looseJetId = cms.EDProducer("PatJetIDValueMapProducer",
31  filterParams=cms.PSet(
32  version = cms.string('WINTER16'),
33  quality = cms.string('LOOSE'),
34  ),
35  src = cms.InputTag("updatedJets")
36 )
37 tightJetId = cms.EDProducer("PatJetIDValueMapProducer",
38  filterParams=cms.PSet(
39  version = cms.string('RUN2ULCHS'),
40  quality = cms.string('TIGHT'),
41  ),
42  src = cms.InputTag("updatedJets")
43 )
44 tightJetIdLepVeto = cms.EDProducer("PatJetIDValueMapProducer",
45  filterParams=cms.PSet(
46  version = cms.string('RUN2ULCHS'),
47  quality = cms.string('TIGHTLEPVETO'),
48  ),
49  src = cms.InputTag("updatedJets")
50 )
51 run2_jme_2016.toModify(
52  tightJetId.filterParams, version = "RUN2UL16CHS"
53 ).toModify(
54  tightJetIdLepVeto.filterParams, version = "RUN2UL16CHS"
55 )
56 
57 bJetVars = cms.EDProducer("JetRegressionVarProducer",
58  pvsrc = cms.InputTag("offlineSlimmedPrimaryVertices"),
59  src = cms.InputTag("updatedJets"),
60  svsrc = cms.InputTag("slimmedSecondaryVertices"),
61 )
62 
63 jercVars = cms.EDProducer("BetaStarPackedCandidateVarProducer",
64  srcJet = cms.InputTag("updatedJets"),
65  srcPF = cms.InputTag("packedPFCandidates"),
66  maxDR = cms.double(0.4)
67 )
68 
69 updatedJetsWithUserData = cms.EDProducer("PATJetUserDataEmbedder",
70  src = cms.InputTag("updatedJets"),
71  userFloats = cms.PSet(
72  leadTrackPt = cms.InputTag("bJetVars:leadTrackPt"),
73  leptonPtRelv0 = cms.InputTag("bJetVars:leptonPtRelv0"),
74  leptonPtRelInvv0 = cms.InputTag("bJetVars:leptonPtRelInvv0"),
75  leptonDeltaR = cms.InputTag("bJetVars:leptonDeltaR"),
76  vtxPt = cms.InputTag("bJetVars:vtxPt"),
77  vtxMass = cms.InputTag("bJetVars:vtxMass"),
78  vtx3dL = cms.InputTag("bJetVars:vtx3dL"),
79  vtx3deL = cms.InputTag("bJetVars:vtx3deL"),
80  ptD = cms.InputTag("bJetVars:ptD"),
81  qgl = cms.InputTag('qgtagger:qgLikelihood'),
82  puIdNanoDisc = cms.InputTag('pileupJetIdNano:fullDiscriminant'),
83  chFPV0EF = cms.InputTag("jercVars:chargedFromPV0EnergyFraction"),
84  ),
85  userInts = cms.PSet(
86  tightId = cms.InputTag("tightJetId"),
87  tightIdLepVeto = cms.InputTag("tightJetIdLepVeto"),
88  vtxNtrk = cms.InputTag("bJetVars:vtxNtrk"),
89  leptonPdgId = cms.InputTag("bJetVars:leptonPdgId"),
90  puIdNanoId = cms.InputTag('pileupJetIdNano:fullId'),
91  ),
92 )
93 
94 
95 finalJets = cms.EDFilter("PATJetRefSelector",
96  src = cms.InputTag("updatedJetsWithUserData"),
97  cut = cms.string("pt > 15")
98 )
99 
100 
101 
102 
103 
104 jetTable = simpleCandidateFlatTableProducer.clone(
105  src = cms.InputTag("linkedObjects","jets"),
106  name = cms.string("Jet"),
107  doc = cms.string("slimmedJets, i.e. ak4 PFJets CHS with JECs applied, after basic selection (" + finalJets.cut.value()+")"),
108  externalVariables = cms.PSet(
109  bRegCorr = ExtVar(cms.InputTag("bjetNN:corr"),float, doc="pt correction for b-jet energy regression",precision=10),
110  bRegRes = ExtVar(cms.InputTag("bjetNN:res"),float, doc="res on pt corrected with b-jet regression",precision=6),
111  cRegCorr = ExtVar(cms.InputTag("cjetNN:corr"),float, doc="pt correction for c-jet energy regression",precision=10),
112  cRegRes = ExtVar(cms.InputTag("cjetNN:res"),float, doc="res on pt corrected with c-jet regression",precision=6),
113  ),
114  variables = cms.PSet(P4Vars,
115  area = Var("jetArea()", float, doc="jet catchment area, for JECs",precision=10),
116  nMuons = Var("?hasOverlaps('muons')?overlaps('muons').size():0", int, doc="number of muons in the jet"),
117  muonIdx1 = Var("?overlaps('muons').size()>0?overlaps('muons')[0].key():-1", int, doc="index of first matching muon"),
118  muonIdx2 = Var("?overlaps('muons').size()>1?overlaps('muons')[1].key():-1", int, doc="index of second matching muon"),
119  electronIdx1 = Var("?overlaps('electrons').size()>0?overlaps('electrons')[0].key():-1", int, doc="index of first matching electron"),
120  electronIdx2 = Var("?overlaps('electrons').size()>1?overlaps('electrons')[1].key():-1", int, doc="index of second matching electron"),
121  nElectrons = Var("?hasOverlaps('electrons')?overlaps('electrons').size():0", int, doc="number of electrons in the jet"),
122  svIdx1 = Var("?overlaps('vertices').size()>0?overlaps('vertices')[0].key():-1", int, doc="index of first matching secondary vertex"),
123  svIdx2 = Var("?overlaps('vertices').size()>1?overlaps('vertices')[1].key():-1", int, doc="index of second matching secondary vertex"),
124  nSVs = Var("?hasOverlaps('vertices')?overlaps('vertices').size():0", int, doc="number of secondary vertices in the jet"),
125  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),
126  btagDeepFlavB = Var("bDiscriminator('pfDeepFlavourJetTags:probb')+bDiscriminator('pfDeepFlavourJetTags:probbb')+bDiscriminator('pfDeepFlavourJetTags:problepb')",float,doc="DeepJet b+bb+lepb tag discriminator",precision=10),
127  btagCSVV2 = Var("bDiscriminator('pfCombinedInclusiveSecondaryVertexV2BJetTags')",float,doc=" pfCombinedInclusiveSecondaryVertexV2 b-tag discriminator (aka CSVV2)",precision=10),
128  btagDeepCvL = Var("?bDiscriminator('pfDeepCSVJetTags:probc')>=0?bDiscriminator('pfDeepCSVJetTags:probc')/(bDiscriminator('pfDeepCSVJetTags:probc')+bDiscriminator('pfDeepCSVJetTags:probudsg')):-1", float,doc="DeepCSV c vs udsg discriminator",precision=10),
129  btagDeepCvB = Var("?bDiscriminator('pfDeepCSVJetTags:probc')>=0?bDiscriminator('pfDeepCSVJetTags:probc')/(bDiscriminator('pfDeepCSVJetTags:probc')+bDiscriminator('pfDeepCSVJetTags:probb')+bDiscriminator('pfDeepCSVJetTags:probbb')):-1",float,doc="DeepCSV c vs b+bb discriminator",precision=10),
130  btagDeepFlavCvL = Var("?(bDiscriminator('pfDeepFlavourJetTags:probc')+bDiscriminator('pfDeepFlavourJetTags:probuds')+bDiscriminator('pfDeepFlavourJetTags:probg'))>0?bDiscriminator('pfDeepFlavourJetTags:probc')/(bDiscriminator('pfDeepFlavourJetTags:probc')+bDiscriminator('pfDeepFlavourJetTags:probuds')+bDiscriminator('pfDeepFlavourJetTags:probg')):-1",float,doc="DeepJet c vs uds+g discriminator",precision=10),
131  btagDeepFlavCvB = Var("?(bDiscriminator('pfDeepFlavourJetTags:probc')+bDiscriminator('pfDeepFlavourJetTags:probb')+bDiscriminator('pfDeepFlavourJetTags:probbb')+bDiscriminator('pfDeepFlavourJetTags:problepb'))>0?bDiscriminator('pfDeepFlavourJetTags:probc')/(bDiscriminator('pfDeepFlavourJetTags:probc')+bDiscriminator('pfDeepFlavourJetTags:probb')+bDiscriminator('pfDeepFlavourJetTags:probbb')+bDiscriminator('pfDeepFlavourJetTags:problepb')):-1",float,doc="DeepJet c vs b+bb+lepb discriminator",precision=10),
132  btagDeepFlavQG = Var("?(bDiscriminator('pfDeepFlavourJetTags:probg')+bDiscriminator('pfDeepFlavourJetTags:probuds'))>0?bDiscriminator('pfDeepFlavourJetTags:probg')/(bDiscriminator('pfDeepFlavourJetTags:probg')+bDiscriminator('pfDeepFlavourJetTags:probuds')):-1",float,doc="DeepJet g vs uds discriminator",precision=10),
133  puIdDisc = Var("userFloat('puIdNanoDisc')", float,doc="Pileup ID discriminant with 106X (2018) training",precision=10),
134  puId = Var("userInt('puIdNanoId')", int,doc="Pileup ID flags with 106X (2018) training"),
135  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"),
136  qgl = Var("?userFloat('qgl')>0?userFloat('qgl'):-1",float,doc="Quark vs Gluon likelihood discriminator",precision=10),
137  hfsigmaEtaEta = Var("userFloat('hfJetShowerShape:sigmaEtaEta')",float,doc="sigmaEtaEta for HF jets (noise discriminating variable)",precision=10),
138  hfsigmaPhiPhi = Var("userFloat('hfJetShowerShape:sigmaPhiPhi')",float,doc="sigmaPhiPhi for HF jets (noise discriminating variable)",precision=10),
139  hfcentralEtaStripSize = Var("userInt('hfJetShowerShape:centralEtaStripSize')", int, doc="eta size of the central tower strip in HF (noise discriminating variable) "),
140  hfadjacentEtaStripsSize = Var("userInt('hfJetShowerShape:adjacentEtaStripsSize')", int, doc="eta size of the strips next to the central tower strip in HF (noise discriminating variable) "),
141  nConstituents = Var("numberOfDaughters()","uint8",doc="Number of particles in the jet"),
142  rawFactor = Var("1.-jecFactor('Uncorrected')",float,doc="1 - Factor to get back to raw pT",precision=6),
143  chHEF = Var("chargedHadronEnergyFraction()", float, doc="charged Hadron Energy Fraction", precision= 6),
144  neHEF = Var("neutralHadronEnergyFraction()", float, doc="neutral Hadron Energy Fraction", precision= 6),
145  chEmEF = Var("chargedEmEnergyFraction()", float, doc="charged Electromagnetic Energy Fraction", precision= 6),
146  neEmEF = Var("neutralEmEnergyFraction()", float, doc="neutral Electromagnetic Energy Fraction", precision= 6),
147  muEF = Var("muonEnergyFraction()", float, doc="muon Energy Fraction", precision= 6),
148  chFPV0EF = Var("userFloat('chFPV0EF')", float, doc="charged fromPV==0 Energy Fraction (energy excluded from CHS jets). Previously called betastar.", precision= 6),
149  )
150 )
151 
152 #jets are not as precise as muons
153 jetTable.variables.pt.precision=10
154 
155 
156 (run2_jme_2016 & ~tracker_apv_vfp30_2016 ).toModify(
157  jetTable.variables.puIdDisc, doc="Pileup ID discriminant with 106X (2016) training"
158 ).toModify(
159  jetTable.variables.puId, doc="Pileup ID flags with 106X (2016) training"
160 )
161 (run2_jme_2016 & tracker_apv_vfp30_2016 ).toModify(
162  jetTable.variables.puIdDisc, doc="Pileup ID discriminant with 106X (2016APV) training"
163 ).toModify(
164  jetTable.variables.puId, doc="Pileup ID flags with 106X (2016APV) training"
165 )
166 run2_jme_2017.toModify(
167  jetTable.variables.puIdDisc, doc="Pileup ID discriminant with 106X (2017) training"
168 ).toModify(
169  jetTable.variables.puId, doc="Pileup ID flags with 106X (2017) training"
170 )
171 
172 bjetNN = cms.EDProducer("BJetEnergyRegressionMVA",
173  backend = cms.string("ONNX"),
174  batch_eval = cms.bool(True),
175  src = cms.InputTag("linkedObjects","jets"),
176  pvsrc = cms.InputTag("offlineSlimmedPrimaryVertices"),
177  svsrc = cms.InputTag("slimmedSecondaryVertices"),
178  rhosrc = cms.InputTag("fixedGridRhoFastjetAll"),
179 
180  weightFile = cms.FileInPath("PhysicsTools/NanoAOD/data/breg_training_2018.onnx"),
181  name = cms.string("JetRegNN"),
182  isClassifier = cms.bool(False),
183  variablesOrder = cms.vstring(["Jet_pt","Jet_eta","rho","Jet_mt","Jet_leadTrackPt","Jet_leptonPtRel","Jet_leptonDeltaR","Jet_neHEF",
184  "Jet_neEmEF","Jet_vtxPt","Jet_vtxMass","Jet_vtx3dL","Jet_vtxNtrk","Jet_vtx3deL",
185  "Jet_numDaughters_pt03","Jet_energyRing_dR0_em_Jet_rawEnergy","Jet_energyRing_dR1_em_Jet_rawEnergy",
186  "Jet_energyRing_dR2_em_Jet_rawEnergy","Jet_energyRing_dR3_em_Jet_rawEnergy","Jet_energyRing_dR4_em_Jet_rawEnergy",
187  "Jet_energyRing_dR0_neut_Jet_rawEnergy","Jet_energyRing_dR1_neut_Jet_rawEnergy","Jet_energyRing_dR2_neut_Jet_rawEnergy",
188  "Jet_energyRing_dR3_neut_Jet_rawEnergy","Jet_energyRing_dR4_neut_Jet_rawEnergy","Jet_energyRing_dR0_ch_Jet_rawEnergy",
189  "Jet_energyRing_dR1_ch_Jet_rawEnergy","Jet_energyRing_dR2_ch_Jet_rawEnergy","Jet_energyRing_dR3_ch_Jet_rawEnergy",
190  "Jet_energyRing_dR4_ch_Jet_rawEnergy","Jet_energyRing_dR0_mu_Jet_rawEnergy","Jet_energyRing_dR1_mu_Jet_rawEnergy",
191  "Jet_energyRing_dR2_mu_Jet_rawEnergy","Jet_energyRing_dR3_mu_Jet_rawEnergy","Jet_energyRing_dR4_mu_Jet_rawEnergy",
192  "Jet_chHEF","Jet_chEmEF","Jet_leptonPtRelInv","isEle","isMu","isOther","Jet_mass","Jet_ptd"]),
193  variables = cms.PSet(
194  Jet_pt = cms.string("pt*jecFactor('Uncorrected')"),
195  Jet_mt = cms.string("mt*jecFactor('Uncorrected')"),
196  Jet_eta = cms.string("eta"),
197  Jet_mass = cms.string("mass*jecFactor('Uncorrected')"),
198  Jet_ptd = cms.string("userFloat('ptD')"),
199  Jet_leadTrackPt = cms.string("userFloat('leadTrackPt')"),
200  Jet_vtxNtrk = cms.string("userInt('vtxNtrk')"),
201  Jet_vtxMass = cms.string("userFloat('vtxMass')"),
202  Jet_vtx3dL = cms.string("userFloat('vtx3dL')"),
203  Jet_vtx3deL = cms.string("userFloat('vtx3deL')"),
204  Jet_vtxPt = cms.string("userFloat('vtxPt')"),
205  Jet_leptonPtRel = cms.string("userFloat('leptonPtRelv0')"),
206  Jet_leptonPtRelInv = cms.string("userFloat('leptonPtRelInvv0')*jecFactor('Uncorrected')"),
207  Jet_leptonDeltaR = cms.string("userFloat('leptonDeltaR')"),
208  Jet_neHEF = cms.string("neutralHadronEnergyFraction()"),
209  Jet_neEmEF = cms.string("neutralEmEnergyFraction()"),
210  Jet_chHEF = cms.string("chargedHadronEnergyFraction()"),
211  Jet_chEmEF = cms.string("chargedEmEnergyFraction()"),
212  isMu = cms.string("?abs(userInt('leptonPdgId'))==13?1:0"),
213  isEle = cms.string("?abs(userInt('leptonPdgId'))==11?1:0"),
214  isOther = cms.string("?userInt('leptonPdgId')==0?1:0"),
215  ),
216  inputTensorName = cms.string("ffwd_inp:0"),
217  outputTensorName = cms.string("ffwd_out/BiasAdd:0"),
218  outputNames = cms.vstring(["corr","res"]),
219  outputFormulas = cms.vstring(["at(0)*0.27912887930870056+1.0545977354049683","0.5*(at(2)-at(1))*0.27912887930870056"]),
220 )
221 
222 cjetNN = cms.EDProducer("BJetEnergyRegressionMVA",
223  backend = cms.string("ONNX"),
224  batch_eval = cms.bool(True),
225 
226  src = cms.InputTag("linkedObjects","jets"),
227  pvsrc = cms.InputTag("offlineSlimmedPrimaryVertices"),
228  svsrc = cms.InputTag("slimmedSecondaryVertices"),
229  rhosrc = cms.InputTag("fixedGridRhoFastjetAll"),
230 
231  weightFile = cms.FileInPath("PhysicsTools/NanoAOD/data/creg_training_2018.onnx"),
232  name = cms.string("JetRegNN"),
233  isClassifier = cms.bool(False),
234  variablesOrder = cms.vstring(["Jet_pt","Jet_eta","rho","Jet_mt","Jet_leadTrackPt","Jet_leptonPtRel","Jet_leptonDeltaR",
235  "Jet_neHEF","Jet_neEmEF","Jet_vtxPt","Jet_vtxMass","Jet_vtx3dL","Jet_vtxNtrk","Jet_vtx3deL",
236  "Jet_numDaughters_pt03","Jet_chEmEF","Jet_chHEF", "Jet_ptd","Jet_mass",
237  "Jet_energyRing_dR0_em_Jet_rawEnergy","Jet_energyRing_dR1_em_Jet_rawEnergy",
238  "Jet_energyRing_dR2_em_Jet_rawEnergy","Jet_energyRing_dR3_em_Jet_rawEnergy","Jet_energyRing_dR4_em_Jet_rawEnergy",
239  "Jet_energyRing_dR0_neut_Jet_rawEnergy","Jet_energyRing_dR1_neut_Jet_rawEnergy","Jet_energyRing_dR2_neut_Jet_rawEnergy",
240  "Jet_energyRing_dR3_neut_Jet_rawEnergy","Jet_energyRing_dR4_neut_Jet_rawEnergy","Jet_energyRing_dR0_ch_Jet_rawEnergy",
241  "Jet_energyRing_dR1_ch_Jet_rawEnergy","Jet_energyRing_dR2_ch_Jet_rawEnergy","Jet_energyRing_dR3_ch_Jet_rawEnergy",
242  "Jet_energyRing_dR4_ch_Jet_rawEnergy","Jet_energyRing_dR0_mu_Jet_rawEnergy","Jet_energyRing_dR1_mu_Jet_rawEnergy",
243  "Jet_energyRing_dR2_mu_Jet_rawEnergy","Jet_energyRing_dR3_mu_Jet_rawEnergy","Jet_energyRing_dR4_mu_Jet_rawEnergy"]),
244  variables = cms.PSet(
245  Jet_pt = cms.string("pt*jecFactor('Uncorrected')"),
246  Jet_mt = cms.string("mt*jecFactor('Uncorrected')"),
247  Jet_eta = cms.string("eta"),
248  Jet_mass = cms.string("mass*jecFactor('Uncorrected')"),
249  Jet_ptd = cms.string("userFloat('ptD')"),
250  Jet_leadTrackPt = cms.string("userFloat('leadTrackPt')"),
251  Jet_vtxNtrk = cms.string("userInt('vtxNtrk')"),
252  Jet_vtxMass = cms.string("userFloat('vtxMass')"),
253  Jet_vtx3dL = cms.string("userFloat('vtx3dL')"),
254  Jet_vtx3deL = cms.string("userFloat('vtx3deL')"),
255  Jet_vtxPt = cms.string("userFloat('vtxPt')"),
256  Jet_leptonPtRel = cms.string("userFloat('leptonPtRelv0')"),
257  Jet_leptonPtRelInv = cms.string("userFloat('leptonPtRelInvv0')*jecFactor('Uncorrected')"),
258  Jet_leptonDeltaR = cms.string("userFloat('leptonDeltaR')"),
259  Jet_neHEF = cms.string("neutralHadronEnergyFraction()"),
260  Jet_neEmEF = cms.string("neutralEmEnergyFraction()"),
261  Jet_chHEF = cms.string("chargedHadronEnergyFraction()"),
262  Jet_chEmEF = cms.string("chargedEmEnergyFraction()"),
263  isMu = cms.string("?abs(userInt('leptonPdgId'))==13?1:0"),
264  isEle = cms.string("?abs(userInt('leptonPdgId'))==11?1:0"),
265  isOther = cms.string("?userInt('leptonPdgId')==0?1:0"),
266  ),
267  inputTensorName = cms.string("ffwd_inp:0"),
268  outputTensorName = cms.string("ffwd_out/BiasAdd:0"),
269  outputNames = cms.vstring(["corr","res"]),
270  outputFormulas = cms.vstring(["at(0)*0.24325256049633026+0.993854820728302","0.5*(at(2)-at(1))*0.24325256049633026"]),
271 )
272 
273 
274 run2_jme_2016.toModify(
275  bjetNN, weightFile = cms.FileInPath("PhysicsTools/NanoAOD/data/breg_training_2016.onnx")
276 ).toModify(
277  bjetNN,outputFormulas = cms.vstring(["at(0)*0.31976690888404846+1.047176718711853","0.5*(at(2)-at(1))*0.31976690888404846"])
278 ).toModify(
279  cjetNN, weightFile = cms.FileInPath("PhysicsTools/NanoAOD/data/creg_training_2016.onnx")
280 ).toModify(
281  cjetNN, outputFormulas = cms.vstring(["at(0)*0.28862622380256653+0.9908722639083862","0.5*(at(2)-at(1))*0.28862622380256653"])
282 )
283 
284 run2_jme_2017.toModify(
285  bjetNN, weightFile = cms.FileInPath("PhysicsTools/NanoAOD/data/breg_training_2017.onnx")
286 ).toModify(
287  bjetNN,outputFormulas = cms.vstring(["at(0)*0.28225210309028625+1.055067777633667","0.5*(at(2)-at(1))*0.28225210309028625"])
288 ).toModify(
289  cjetNN, weightFile = cms.FileInPath("PhysicsTools/NanoAOD/data/creg_training_2017.onnx")
290 ).toModify(
291  cjetNN, outputFormulas = cms.vstring(["at(0)*0.24718524515628815+0.9927206635475159","0.5*(at(2)-at(1))*0.24718524515628815"])
292 )
293 
294 
295 #
296 # Quark-Gluon Likelihood (QGL)
297 #
298 from RecoJets.JetProducers.QGTagger_cfi import QGTagger
299 qgtagger=QGTagger.clone(srcJets="updatedJets",srcVertexCollection="offlineSlimmedPrimaryVertices")
300 
301 #
302 # PileUp ID
303 #
304 from RecoJets.JetProducers.PileupJetID_cfi import pileupJetId, _chsalgos_94x, _chsalgos_102x, _chsalgos_106X_UL16, _chsalgos_106X_UL16APV, _chsalgos_106X_UL17, _chsalgos_106X_UL18
305 pileupJetIdNano=pileupJetId.clone(jets="updatedJets",algos = cms.VPSet(_chsalgos_106X_UL18),inputIsCorrected=True,applyJec=False,vertexes="offlineSlimmedPrimaryVertices")
306 run2_jme_2017.toModify(
307  pileupJetIdNano, algos = _chsalgos_106X_UL17
308 )
309 (run2_jme_2016 & ~tracker_apv_vfp30_2016 ).toModify(
310  pileupJetIdNano, algos = _chsalgos_106X_UL16
311 )
312 (run2_jme_2016 & tracker_apv_vfp30_2016 ).toModify(
313  pileupJetIdNano, algos = _chsalgos_106X_UL16APV
314 )
315 
316 
317 
321 from PhysicsTools.PatAlgos.tools.jetTools import updateJetCollection
322 def nanoAOD_addDeepInfoAK4CHS(process,addDeepBTag,addDeepFlavour):
323  _btagDiscriminators=[]
324  if addDeepBTag:
325  print("Updating process to run DeepCSV btag")
326  _btagDiscriminators += ['pfDeepCSVJetTags:probb','pfDeepCSVJetTags:probbb','pfDeepCSVJetTags:probc']
327  if addDeepFlavour:
328  print("Updating process to run DeepFlavour btag")
329  _btagDiscriminators += ['pfDeepFlavourJetTags:probb','pfDeepFlavourJetTags:probbb','pfDeepFlavourJetTags:problepb','pfDeepFlavourJetTags:probc']
330  if len(_btagDiscriminators)==0: return process
331  print("Will recalculate the following discriminators: "+", ".join(_btagDiscriminators))
332  updateJetCollection(
333  process,
334  jetSource = cms.InputTag('slimmedJets'),
335  jetCorrections = ('AK4PFchs', cms.vstring(['L1FastJet', 'L2Relative', 'L3Absolute','L2L3Residual']), 'None'),
336  btagDiscriminators = _btagDiscriminators,
337  postfix = 'WithDeepInfo',
338  )
339  process.load("Configuration.StandardSequences.MagneticField_cff")
340  process.jetCorrFactorsNano.src="selectedUpdatedPatJetsWithDeepInfo"
341  process.updatedJets.jetSource="selectedUpdatedPatJetsWithDeepInfo"
342  return process
343 
344 nanoAOD_addDeepInfoAK4CHS_switch = cms.PSet(
345  nanoAOD_addDeepBTag_switch = cms.untracked.bool(False),
346  nanoAOD_addDeepFlavourTag_switch = cms.untracked.bool(False),
347 )
348 
349 
352 
353 
356 basicJetsForMetForT1METNano = cms.EDProducer("PATJetCleanerForType1MET",
357  src = updatedJetsWithUserData.src,
358  jetCorrEtaMax = cms.double(9.9),
359  jetCorrLabel = cms.InputTag("L3Absolute"),
360  jetCorrLabelRes = cms.InputTag("L2L3Residual"),
361  offsetCorrLabel = cms.InputTag("L1FastJet"),
362  skipEM = cms.bool(False),
363  skipEMfractionThreshold = cms.double(0.9),
364  skipMuonSelection = cms.string('isGlobalMuon | isStandAloneMuon'),
365  skipMuons = cms.bool(True),
366  type1JetPtThreshold = cms.double(0.0),
367  calcMuonSubtrRawPtAsValueMap = cms.bool(True)
368 )
369 
370 updatedJetsWithUserData.userFloats.muonSubtrRawPt = cms.InputTag("basicJetsForMetForT1METNano:MuonSubtrRawPt")
371 
372 corrT1METJetTable = simpleCandidateFlatTableProducer.clone(
373  src = finalJets.src,
374  cut = cms.string("pt<15 && abs(eta)<9.9"),
375  name = cms.string("CorrT1METJet"),
376  doc = cms.string("Additional low-pt ak4 CHS jets for Type-1 MET re-correction"),
377  variables = cms.PSet(
378  rawPt = Var("pt()*jecFactor('Uncorrected')",float,precision=10),
379  eta = Var("eta", float,precision=12),
380  phi = Var("phi", float, precision=12),
381  area = Var("jetArea()", float, doc="jet catchment area, for JECs",precision=10),
382  )
383 )
384 
385 corrT1METJetTable.variables.muonSubtrFactor = Var("1-userFloat('muonSubtrRawPt')/(pt()*jecFactor('Uncorrected'))",float,doc="1-(muon-subtracted raw pt)/(raw pt)",precision=6)
386 jetTable.variables.muonSubtrFactor = Var("1-userFloat('muonSubtrRawPt')/(pt()*jecFactor('Uncorrected'))",float,doc="1-(muon-subtracted raw pt)/(raw pt)",precision=6)
387 
388 jetForMETTask = cms.Task(basicJetsForMetForT1METNano,corrT1METJetTable)
389 
390 #before cross linking
391 jetUserDataTask = cms.Task(bJetVars,qgtagger,jercVars,tightJetId,tightJetIdLepVeto,pileupJetIdNano)
392 
393 #before cross linking
394 jetTask = cms.Task(jetCorrFactorsNano,updatedJets,jetUserDataTask,updatedJetsWithUserData,finalJets)
395 
396 #after cross linkining
397 jetTablesTask = cms.Task(bjetNN,cjetNN,jetTable)
def ExtVar(tag, valtype, doc=None, precision=-1)
Definition: common_cff.py:27
def Var(expr, valtype, doc=None, precision=-1)
Definition: common_cff.py:16
def nanoAOD_addDeepInfoAK4CHS(process, addDeepBTag, addDeepFlavour)
User floats producers, selectors ##########################.
void print(TMatrixD &m, const char *label=nullptr, bool mathematicaFormat=false)
Definition: Utilities.cc:47
static std::string join(char **cmd)
Definition: RemoteFile.cc:19