1 import FWCore.ParameterSet.Config
as cms
5 from PhysicsTools.NanoAOD.simpleCandidateFlatTableProducer_cfi
import simpleCandidateFlatTableProducer
12 jetCorrFactorsNano = patJetCorrFactors.clone(src=
'slimmedJets',
13 levels = cms.vstring(
'L1FastJet',
17 primaryVertices = cms.InputTag(
"offlineSlimmedPrimaryVertices"),
21 updatedJets = updatedPatJets.clone(
23 jetSource=
'slimmedJets',
24 jetCorrFactorsSource=cms.VInputTag(cms.InputTag(
"jetCorrFactorsNano") ),
30 looseJetId = cms.EDProducer(
"PatJetIDValueMapProducer",
31 filterParams=cms.PSet(
32 version = cms.string(
'WINTER16'),
33 quality = cms.string(
'LOOSE'),
35 src = cms.InputTag(
"updatedJets")
37 tightJetId = cms.EDProducer(
"PatJetIDValueMapProducer",
38 filterParams=cms.PSet(
39 version = cms.string(
'RUN2ULCHS'),
40 quality = cms.string(
'TIGHT'),
42 src = cms.InputTag(
"updatedJets")
44 tightJetIdLepVeto = cms.EDProducer(
"PatJetIDValueMapProducer",
45 filterParams=cms.PSet(
46 version = cms.string(
'RUN2ULCHS'),
47 quality = cms.string(
'TIGHTLEPVETO'),
49 src = cms.InputTag(
"updatedJets")
51 run2_jme_2016.toModify(
52 tightJetId.filterParams, version =
"RUN2UL16CHS" 54 tightJetIdLepVeto.filterParams, version =
"RUN2UL16CHS" 57 bJetVars = cms.EDProducer(
"JetRegressionVarProducer",
58 pvsrc = cms.InputTag(
"offlineSlimmedPrimaryVertices"),
59 src = cms.InputTag(
"updatedJets"),
60 svsrc = cms.InputTag(
"slimmedSecondaryVertices"),
63 jercVars = cms.EDProducer(
"BetaStarPackedCandidateVarProducer",
64 srcJet = cms.InputTag(
"updatedJets"),
65 srcPF = cms.InputTag(
"packedPFCandidates"),
66 maxDR = cms.double(0.4)
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"),
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'),
95 finalJets = cms.EDFilter(
"PATJetRefSelector",
96 src = cms.InputTag(
"updatedJetsWithUserData"),
97 cut = cms.string(
"pt > 15")
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),
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),
153 jetTable.variables.pt.precision=10
156 (run2_jme_2016 & ~tracker_apv_vfp30_2016 ).toModify(
157 jetTable.variables.puIdDisc, doc=
"Pileup ID discriminant with 106X (2016) training" 159 jetTable.variables.puId, doc=
"Pileup ID flags with 106X (2016) training" 161 (run2_jme_2016 & tracker_apv_vfp30_2016 ).toModify(
162 jetTable.variables.puIdDisc, doc=
"Pileup ID discriminant with 106X (2016APV) training" 164 jetTable.variables.puId, doc=
"Pileup ID flags with 106X (2016APV) training" 166 run2_jme_2017.toModify(
167 jetTable.variables.puIdDisc, doc=
"Pileup ID discriminant with 106X (2017) training" 169 jetTable.variables.puId, doc=
"Pileup ID flags with 106X (2017) training" 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"),
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"),
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"]),
222 cjetNN = cms.EDProducer(
"BJetEnergyRegressionMVA",
223 backend = cms.string(
"ONNX"),
224 batch_eval = cms.bool(
True),
226 src = cms.InputTag(
"linkedObjects",
"jets"),
227 pvsrc = cms.InputTag(
"offlineSlimmedPrimaryVertices"),
228 svsrc = cms.InputTag(
"slimmedSecondaryVertices"),
229 rhosrc = cms.InputTag(
"fixedGridRhoFastjetAll"),
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"),
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"]),
274 run2_jme_2016.toModify(
275 bjetNN, weightFile = cms.FileInPath(
"PhysicsTools/NanoAOD/data/breg_training_2016.onnx")
277 bjetNN,outputFormulas = cms.vstring([
"at(0)*0.31976690888404846+1.047176718711853",
"0.5*(at(2)-at(1))*0.31976690888404846"])
279 cjetNN, weightFile = cms.FileInPath(
"PhysicsTools/NanoAOD/data/creg_training_2016.onnx")
281 cjetNN, outputFormulas = cms.vstring([
"at(0)*0.28862622380256653+0.9908722639083862",
"0.5*(at(2)-at(1))*0.28862622380256653"])
284 run2_jme_2017.toModify(
285 bjetNN, weightFile = cms.FileInPath(
"PhysicsTools/NanoAOD/data/breg_training_2017.onnx")
287 bjetNN,outputFormulas = cms.vstring([
"at(0)*0.28225210309028625+1.055067777633667",
"0.5*(at(2)-at(1))*0.28225210309028625"])
289 cjetNN, weightFile = cms.FileInPath(
"PhysicsTools/NanoAOD/data/creg_training_2017.onnx")
291 cjetNN, outputFormulas = cms.vstring([
"at(0)*0.24718524515628815+0.9927206635475159",
"0.5*(at(2)-at(1))*0.24718524515628815"])
299 qgtagger=QGTagger.clone(srcJets=
"updatedJets",srcVertexCollection=
"offlineSlimmedPrimaryVertices")
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
309 (run2_jme_2016 & ~tracker_apv_vfp30_2016 ).toModify(
310 pileupJetIdNano, algos = _chsalgos_106X_UL16
312 (run2_jme_2016 & tracker_apv_vfp30_2016 ).toModify(
313 pileupJetIdNano, algos = _chsalgos_106X_UL16APV
323 _btagDiscriminators=[]
325 print(
"Updating process to run DeepCSV btag")
326 _btagDiscriminators += [
'pfDeepCSVJetTags:probb',
'pfDeepCSVJetTags:probbb',
'pfDeepCSVJetTags:probc']
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))
334 jetSource = cms.InputTag(
'slimmedJets'),
335 jetCorrections = (
'AK4PFchs', cms.vstring([
'L1FastJet',
'L2Relative',
'L3Absolute',
'L2L3Residual']),
'None'),
336 btagDiscriminators = _btagDiscriminators,
337 postfix =
'WithDeepInfo',
339 process.load(
"Configuration.StandardSequences.MagneticField_cff")
340 process.jetCorrFactorsNano.src=
"selectedUpdatedPatJetsWithDeepInfo" 341 process.updatedJets.jetSource=
"selectedUpdatedPatJetsWithDeepInfo" 344 nanoAOD_addDeepInfoAK4CHS_switch = cms.PSet(
345 nanoAOD_addDeepBTag_switch = cms.untracked.bool(
False),
346 nanoAOD_addDeepFlavourTag_switch = cms.untracked.bool(
False),
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)
370 updatedJetsWithUserData.userFloats.muonSubtrRawPt = cms.InputTag(
"basicJetsForMetForT1METNano:MuonSubtrRawPt")
372 corrT1METJetTable = simpleCandidateFlatTableProducer.clone(
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),
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)
388 jetForMETTask = cms.Task(basicJetsForMetForT1METNano,corrT1METJetTable)
391 jetUserDataTask = cms.Task(bJetVars,qgtagger,jercVars,tightJetId,tightJetIdLepVeto,pileupJetIdNano)
394 jetTask = cms.Task(jetCorrFactorsNano,updatedJets,jetUserDataTask,updatedJetsWithUserData,finalJets)
397 jetTablesTask = cms.Task(bjetNN,cjetNN,jetTable)
def ExtVar(tag, valtype, doc=None, precision=-1)
def Var(expr, valtype, doc=None, precision=-1)
def nanoAOD_addDeepInfoAK4CHS(process, addDeepBTag, addDeepFlavour)
void print(TMatrixD &m, const char *label=nullptr, bool mathematicaFormat=false)
static std::string join(char **cmd)