Skip to content

Commit 6c91db6

Browse files
giorgiopizzNTrevisanidittmer
committed
Validated JES production
Co-authored-by: ntrevisa <[email protected]> Co-authored-by: Susan Dittmer <[email protected]>
1 parent b473c01 commit 6c91db6

File tree

13 files changed

+3070
-83
lines changed

13 files changed

+3070
-83
lines changed

mkShapesRDF/include/headers.hh

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,17 @@ float Alt(container c, int index, float alt){
1414
}
1515
}
1616

17+
template
18+
<typename T>
19+
T Alt(RVec<T> c, int index, T alt){
20+
if (index < c.size()) {
21+
return c[index];
22+
}
23+
else{
24+
return alt;
25+
}
26+
}
27+
1728
RVec<double> LogVec(RVec<double> vec){
1829
RVec<double> out;
1930
for(auto const & el : vec){
Lines changed: 340 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,340 @@
1+
# Formulas to be added, in python language.
2+
# Call to branches have to be in the form branchName (i.e. no "event.").
3+
# If you want to use logical operators, the have to be the c++ ones (i.e "&&" not " and ")
4+
5+
from mkShapesRDF.processor.data.LeptonSel_cfg import ElectronWP
6+
from mkShapesRDF.processor.data.LeptonSel_cfg import MuonWP
7+
8+
formulas = {}
9+
10+
# from https://twiki.cern.ch/twiki/bin/viewauth/CMS/MissingETOptionalFiltersRun2#2018_2017_data_and_MC_UL
11+
12+
METFilter_Common = """(
13+
Flag_goodVertices*
14+
Flag_globalSuperTightHalo2016Filter*
15+
Flag_HBHENoiseFilter*
16+
Flag_HBHENoiseIsoFilter*
17+
Flag_EcalDeadCellTriggerPrimitiveFilter*
18+
Flag_BadPFMuonFilter*
19+
Flag_BadPFMuonDzFilter*
20+
Flag_ecalBadCalibFilter
21+
)"""
22+
23+
METFilter_DATA = METFilter_Common + "*" + "(Flag_eeBadScFilter)"
24+
25+
formulas["METFilter_MC"] = METFilter_DATA
26+
27+
# Common Weights
28+
29+
30+
if "genWeight" in df.GetColumnNames():
31+
formulas["XSWeight"] = "baseW*genWeight"
32+
else:
33+
formulas["XSWeight"] = "baseW"
34+
35+
36+
formulas[
37+
"SFweight2l"
38+
] = """nLepton > 1 ? (
39+
puWeight*
40+
( HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL ||
41+
HLT_Mu12_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ ||
42+
HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass3p8 ||
43+
HLT_IsoMu24 ||
44+
HLT_Ele23_Ele12_CaloIdL_TrackIdL_IsoVL ||
45+
HLT_Ele32_WPTight_Gsf ) *
46+
TriggerSFWeight_2l *
47+
Lepton_RecoSF[0] *
48+
Lepton_RecoSF[1] *
49+
EMTFbug_veto
50+
) : 0.0"""
51+
52+
formulas[
53+
"SFweight3l"
54+
] = """nLepton > 2 ? (
55+
puWeight*
56+
( HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL ||
57+
HLT_Mu12_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ ||
58+
HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass3p8 ||
59+
HLT_IsoMu24 ||
60+
HLT_Ele23_Ele12_CaloIdL_TrackIdL_IsoVL ||
61+
HLT_Ele32_WPTight_Gsf ) *
62+
TriggerSFWeight_3l *
63+
Lepton_RecoSF[0] *
64+
Lepton_RecoSF[1] *
65+
Lepton_RecoSF[2] *
66+
EMTFbug_veto
67+
) : 0.0"""
68+
69+
formulas[
70+
"SFweight4l"
71+
] = """nLepton > 3 ? (
72+
puWeight*
73+
( HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL ||
74+
HLT_Mu12_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ ||
75+
HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass3p8 ||
76+
HLT_IsoMu24 ||
77+
HLT_Ele23_Ele12_CaloIdL_TrackIdL_IsoVL ||
78+
HLT_Ele32_WPTight_Gsf ) *
79+
TriggerSFWeight_4l *
80+
Lepton_RecoSF[0]*
81+
Lepton_RecoSF[1]*
82+
Lepton_RecoSF[2]*
83+
Lepton_RecoSF[3]*
84+
EMTFbug_veto
85+
) : 0.0"""
86+
87+
if "MHTriggerEffWeight_2l" in df.GetColumnNames():
88+
# # MonoHiggs
89+
formulas[
90+
"SFweight2lMH"
91+
] = """nLepton > 1 ? (
92+
puWeight*
93+
MHTriggerEffWeight_2l*
94+
Lepton_RecoSF[0]*
95+
Lepton_RecoSF[1]*
96+
EMTFbug_veto
97+
) : 0.0"""
98+
else:
99+
formulas["SFweight2lMH"] = "0.0"
100+
101+
# Lepton WP
102+
muWPlist = [wp for wp in MuonWP["Full2018v9"]["TightObjWP"]]
103+
eleWPlist = [wp for wp in ElectronWP["Full2018v9"]["TightObjWP"]]
104+
105+
for eleWP in eleWPlist:
106+
for muWP in muWPlist:
107+
formulas[
108+
f"LepSF2l__ele_{eleWP}__mu_{muWP}"
109+
] = f"""
110+
nLepton > 1 ? (
111+
Lepton_tightElectron_{eleWP}_IdIsoSF[0]*
112+
Lepton_tightElectron_{eleWP}_IdIsoSF[1]*
113+
Lepton_tightMuon_{muWP}_IdIsoSF[0]*
114+
Lepton_tightMuon_{muWP}_IdIsoSF[1]
115+
) : 0.0"""
116+
117+
formulas[
118+
f"LepSF3l__ele_{eleWP}__mu_{muWP}"
119+
] = f"""
120+
nLepton > 2 ? (
121+
Lepton_tightElectron_{eleWP}_IdIsoSF[0]*
122+
Lepton_tightElectron_{eleWP}_IdIsoSF[1]*
123+
Lepton_tightElectron_{eleWP}_IdIsoSF[2]*
124+
Lepton_tightMuon_{muWP}_IdIsoSF[0]*
125+
Lepton_tightMuon_{muWP}_IdIsoSF[1]*
126+
Lepton_tightMuon_{muWP}_IdIsoSF[2]
127+
) : 0.0"""
128+
129+
formulas[
130+
f"LepSF4l__ele_{eleWP}__mu_{muWP}"
131+
] = f"""
132+
nLepton > 3 ? (
133+
Lepton_tightElectron_{eleWP}_IdIsoSF[0]*
134+
Lepton_tightElectron_{eleWP}_IdIsoSF[1]*
135+
Lepton_tightElectron_{eleWP}_IdIsoSF[2]*
136+
Lepton_tightElectron_{eleWP}_IdIsoSF[3]*
137+
Lepton_tightMuon_{muWP}_IdIsoSF[0]*
138+
Lepton_tightMuon_{muWP}_IdIsoSF[1]*
139+
Lepton_tightMuon_{muWP}_IdIsoSF[2]*
140+
Lepton_tightMuon_{muWP}_IdIsoSF[3]
141+
) : 0.0"""
142+
143+
formulas[
144+
f"LepCut2l__ele_{eleWP}__mu_{muWP}"
145+
] = f"""
146+
nLepton > 1 ? (
147+
(Lepton_isTightElectron_{eleWP}[0]>0.5 || Lepton_isTightMuon_{muWP}[0]>0.5) &&
148+
(Lepton_isTightElectron_{eleWP}[1]>0.5 || Lepton_isTightMuon_{muWP}[1]>0.5)
149+
) : 0.0"""
150+
151+
formulas[
152+
f"LepCut3l__ele_{eleWP}__mu_{muWP}"
153+
] = f"""
154+
nLepton > 2 ? (
155+
(Lepton_isTightElectron_{eleWP}[0]>0.5 || Lepton_isTightMuon_{muWP}[0]>0.5) &&
156+
(Lepton_isTightElectron_{eleWP}[1]>0.5 || Lepton_isTightMuon_{muWP}[1]>0.5) &&
157+
(Lepton_isTightElectron_{eleWP}[2]>0.5 || Lepton_isTightMuon_{muWP}[2]>0.5)
158+
) : 0.0"""
159+
160+
formulas[
161+
f"LepCut4l__ele_{eleWP}__mu_{muWP}"
162+
] = f"""
163+
nLepton > 3 ? (
164+
(Lepton_isTightElectron_{eleWP}[0]>0.5 || Lepton_isTightMuon_{muWP}[0]>0.5) &&
165+
(Lepton_isTightElectron_{eleWP}[1]>0.5 || Lepton_isTightMuon_{muWP}[1]>0.5) &&
166+
(Lepton_isTightElectron_{eleWP}[2]>0.5 || Lepton_isTightMuon_{muWP}[2]>0.5) &&
167+
(Lepton_isTightElectron_{eleWP}[3]>0.5 || Lepton_isTightMuon_{muWP}[3]>0.5)
168+
) : 0.0"""
169+
170+
171+
for eleWP in eleWPlist:
172+
formulas[
173+
f"LepSF2l__ele_{eleWP}__Up"
174+
] = f"""
175+
nLepton > 1 ? (
176+
((abs(Lepton_pdgId[0]) == 11)*(Lepton_tightElectron_{eleWP}_TotSF_Up[0])/(Lepton_tightElectron_{eleWP}_TotSF[0]) +
177+
(abs(Lepton_pdgId[0]) == 13)) *
178+
((abs(Lepton_pdgId[1]) == 11)*(Lepton_tightElectron_{eleWP}_TotSF_Up[1])/(Lepton_tightElectron_{eleWP}_TotSF[1]) +
179+
(abs(Lepton_pdgId[1]) == 13))
180+
) : 0.0"""
181+
182+
formulas[
183+
f"LepSF2l__ele_{eleWP}__Do"
184+
] = f"""
185+
nLepton > 1 ? (
186+
((abs(Lepton_pdgId[0]) == 11)*(Lepton_tightElectron_{eleWP}_TotSF_Down[0])/(Lepton_tightElectron_{eleWP}_TotSF[0]) +
187+
(abs(Lepton_pdgId[0]) == 13)) *
188+
((abs(Lepton_pdgId[1]) == 11)*(Lepton_tightElectron_{eleWP}_TotSF_Down[1])/(Lepton_tightElectron_{eleWP}_TotSF[1]) +
189+
(abs(Lepton_pdgId[1]) == 13))
190+
) : 0.0"""
191+
192+
formulas[
193+
f"LepSF3l__ele_{eleWP}__Up"
194+
] = f"""
195+
nLepton > 2 ? (
196+
((abs(Lepton_pdgId[0]) == 11)*(Lepton_tightElectron_{eleWP}_TotSF_Up[0])/(Lepton_tightElectron_{eleWP}_TotSF[0]) +
197+
(abs(Lepton_pdgId[0]) == 13)) *
198+
((abs(Lepton_pdgId[1]) == 11)*(Lepton_tightElectron_{eleWP}_TotSF_Up[1])/(Lepton_tightElectron_{eleWP}_TotSF[1]) +
199+
(abs(Lepton_pdgId[1]) == 13)) *
200+
((abs(Lepton_pdgId[2]) == 11)*(Lepton_tightElectron_{eleWP}_TotSF_Up[2])/(Lepton_tightElectron_{eleWP}_TotSF[2]) +
201+
(abs(Lepton_pdgId[2]) == 13))
202+
) : 0.0"""
203+
204+
formulas[
205+
f"LepSF3l__ele_{eleWP}__Do"
206+
] = f"""
207+
nLepton > 2 ? (
208+
((abs(Lepton_pdgId[0]) == 11)*(Lepton_tightElectron_{eleWP}_TotSF_Down[0])/(Lepton_tightElectron_{eleWP}_TotSF[0]) +
209+
(abs(Lepton_pdgId[0]) == 13)) *
210+
((abs(Lepton_pdgId[1]) == 11)*(Lepton_tightElectron_{eleWP}_TotSF_Down[1])/(Lepton_tightElectron_{eleWP}_TotSF[1]) +
211+
(abs(Lepton_pdgId[1]) == 13)) *
212+
((abs(Lepton_pdgId[2]) == 11)*(Lepton_tightElectron_{eleWP}_TotSF_Down[2])/(Lepton_tightElectron_{eleWP}_TotSF[2]) +
213+
(abs(Lepton_pdgId[2]) == 13))
214+
) : 0.0"""
215+
216+
formulas[
217+
f"LepSF4l__ele_{eleWP}__Up"
218+
] = f"""
219+
nLepton > 3 ? (
220+
((abs(Lepton_pdgId[0]) == 11)*(Lepton_tightElectron_{eleWP}_TotSF_Up[0])/(Lepton_tightElectron_{eleWP}_TotSF[0]) +
221+
(abs(Lepton_pdgId[0]) == 13)) *
222+
((abs(Lepton_pdgId[1]) == 11)*(Lepton_tightElectron_{eleWP}_TotSF_Up[1])/(Lepton_tightElectron_{eleWP}_TotSF[1]) +
223+
(abs(Lepton_pdgId[1]) == 13)) *
224+
((abs(Lepton_pdgId[2]) == 11)*(Lepton_tightElectron_{eleWP}_TotSF_Up[2])/(Lepton_tightElectron_{eleWP}_TotSF[2]) +
225+
(abs(Lepton_pdgId[2]) == 13)) *
226+
((abs(Lepton_pdgId[3]) == 11)*(Lepton_tightElectron_{eleWP}_TotSF_Up[3])/(Lepton_tightElectron_{eleWP}_TotSF[3]) +
227+
(abs(Lepton_pdgId[3]) == 13))
228+
) : 0.0"""
229+
230+
formulas[
231+
f"LepSF4l__ele_{eleWP}__Do"
232+
] = f"""
233+
nLepton > 3 ? (
234+
((abs(Lepton_pdgId[0]) == 11)*(Lepton_tightElectron_{eleWP}_TotSF_Down[0])/(Lepton_tightElectron_{eleWP}_TotSF[0]) +
235+
(abs(Lepton_pdgId[0]) == 13)) *
236+
((abs(Lepton_pdgId[1]) == 11)*(Lepton_tightElectron_{eleWP}_TotSF_Down[1])/(Lepton_tightElectron_{eleWP}_TotSF[1]) +
237+
(abs(Lepton_pdgId[1]) == 13)) *
238+
((abs(Lepton_pdgId[2]) == 11)*(Lepton_tightElectron_{eleWP}_TotSF_Down[2])/(Lepton_tightElectron_{eleWP}_TotSF[2]) +
239+
(abs(Lepton_pdgId[2]) == 13)) *
240+
((abs(Lepton_pdgId[3]) == 11)*(Lepton_tightElectron_{eleWP}_TotSF_Down[3])/(Lepton_tightElectron_{eleWP}_TotSF[3]) +
241+
(abs(Lepton_pdgId[3]) == 13))
242+
) : 0.0"""
243+
244+
for muWP in muWPlist:
245+
formulas[
246+
f"LepSF2l__mu_{muWP}__Up"
247+
] = f"""
248+
nLepton > 1 ? (
249+
((abs(Lepton_pdgId[0]) == 13)*(Lepton_tightMuon_{muWP}_TotSF_Up[0])/(Lepton_tightMuon_{muWP}_TotSF[0]) +
250+
(abs(Lepton_pdgId[0]) == 11)) *
251+
((abs(Lepton_pdgId[1]) == 13)*(Lepton_tightMuon_{muWP}_TotSF_Up[1])/(Lepton_tightMuon_{muWP}_TotSF[1]) +
252+
(abs(Lepton_pdgId[1]) == 11))
253+
) : 0.0"""
254+
255+
formulas[
256+
f"LepSF2l__mu_{muWP}__Do"
257+
] = f"""
258+
nLepton > 1 ? (
259+
((abs(Lepton_pdgId[0]) == 13)*(Lepton_tightMuon_{muWP}_TotSF_Down[0])/(Lepton_tightMuon_{muWP}_TotSF[0]) +
260+
(abs(Lepton_pdgId[0]) == 11)) *
261+
((abs(Lepton_pdgId[1]) == 13)*(Lepton_tightMuon_{muWP}_TotSF_Down[1])/(Lepton_tightMuon_{muWP}_TotSF[1]) +
262+
(abs(Lepton_pdgId[1]) == 11))
263+
) : 0.0"""
264+
265+
formulas[
266+
f"LepSF3l__mu_{muWP}__Up"
267+
] = f"""
268+
nLepton > 2 ? (
269+
((abs(Lepton_pdgId[0]) == 13)*(Lepton_tightMuon_{muWP}_TotSF_Up[0])/(Lepton_tightMuon_{muWP}_TotSF[0]) +
270+
(abs(Lepton_pdgId[0]) == 11)) *
271+
((abs(Lepton_pdgId[1]) == 13)*(Lepton_tightMuon_{muWP}_TotSF_Up[1])/(Lepton_tightMuon_{muWP}_TotSF[1]) +
272+
(abs(Lepton_pdgId[1]) == 11)) *
273+
((abs(Lepton_pdgId[2]) == 13)*(Lepton_tightMuon_{muWP}_TotSF_Up[2])/(Lepton_tightMuon_{muWP}_TotSF[2]) +
274+
(abs(Lepton_pdgId[2]) == 11))
275+
) : 0.0"""
276+
277+
formulas[
278+
f"LepSF3l__mu_{muWP}__Do"
279+
] = f"""
280+
nLepton > 2 ? (
281+
((abs(Lepton_pdgId[0]) == 13)*(Lepton_tightMuon_{muWP}_TotSF_Down[0])/(Lepton_tightMuon_{muWP}_TotSF[0]) +
282+
(abs(Lepton_pdgId[0]) == 11)) *
283+
((abs(Lepton_pdgId[1]) == 13)*(Lepton_tightMuon_{muWP}_TotSF_Down[1])/(Lepton_tightMuon_{muWP}_TotSF[1]) +
284+
(abs(Lepton_pdgId[1]) == 11)) *
285+
((abs(Lepton_pdgId[2]) == 13)*(Lepton_tightMuon_{muWP}_TotSF_Down[2])/(Lepton_tightMuon_{muWP}_TotSF[2]) +
286+
(abs(Lepton_pdgId[2]) == 11))
287+
) : 0.0"""
288+
289+
formulas[
290+
f"LepSF4l__mu_{muWP}__Up"
291+
] = f"""
292+
nLepton > 3 ? (
293+
((abs(Lepton_pdgId[0]) == 13)*(Lepton_tightMuon_{muWP}_TotSF_Up[0])/(Lepton_tightMuon_{muWP}_TotSF[0]) +
294+
(abs(Lepton_pdgId[0]) == 11)) *
295+
((abs(Lepton_pdgId[1]) == 13)*(Lepton_tightMuon_{muWP}_TotSF_Up[1])/(Lepton_tightMuon_{muWP}_TotSF[1]) +
296+
(abs(Lepton_pdgId[1]) == 11)) *
297+
((abs(Lepton_pdgId[2]) == 13)*(Lepton_tightMuon_{muWP}_TotSF_Up[2])/(Lepton_tightMuon_{muWP}_TotSF[2]) +
298+
(abs(Lepton_pdgId[2]) == 11)) *
299+
((abs(Lepton_pdgId[3]) == 13)*(Lepton_tightMuon_{muWP}_TotSF_Up[3])/(Lepton_tightMuon_{muWP}_TotSF[3]) +
300+
(abs(Lepton_pdgId[3]) == 11))
301+
) : 0.0"""
302+
303+
formulas[
304+
f"LepSF4l__mu_{muWP}__Do"
305+
] = f"""
306+
nLepton > 3 ? (
307+
((abs(Lepton_pdgId[0]) == 13)*(Lepton_tightMuon_{muWP}_TotSF_Down[0])/(Lepton_tightMuon_{muWP}_TotSF[0]) +
308+
(abs(Lepton_pdgId[0]) == 11)) *
309+
((abs(Lepton_pdgId[1]) == 13)*(Lepton_tightMuon_{muWP}_TotSF_Down[1])/(Lepton_tightMuon_{muWP}_TotSF[1]) +
310+
(abs(Lepton_pdgId[1]) == 11)) *
311+
((abs(Lepton_pdgId[2]) == 13)*(Lepton_tightMuon_{muWP}_TotSF_Down[2])/(Lepton_tightMuon_{muWP}_TotSF[2]) +
312+
(abs(Lepton_pdgId[2]) == 11)) *
313+
((abs(Lepton_pdgId[3]) == 13)*(Lepton_tightMuon_{muWP}_TotSF_Down[3])/(Lepton_tightMuon_{muWP}_TotSF[3]) +
314+
(abs(Lepton_pdgId[3]) == 11))
315+
) : 0.0"""
316+
317+
318+
formulas[
319+
"GenLepMatch2l"
320+
] = """nLepton > 1 ? (
321+
Lepton_genmatched[0] *
322+
Lepton_genmatched[1]
323+
) : 0.0"""
324+
325+
formulas[
326+
"GenLepMatch3l"
327+
] = """nLepton > 2 ? (
328+
Lepton_genmatched[0] *
329+
Lepton_genmatched[1] *
330+
Lepton_genmatched[2]
331+
) : 0.0"""
332+
333+
formulas[
334+
"GenLepMatch4l"
335+
] = """nLepton > 3 ? (
336+
Lepton_genmatched[0] *
337+
Lepton_genmatched[1] *
338+
Lepton_genmatched[2] *
339+
Lepton_genmatched[3]
340+
) : 0.0"""

0 commit comments

Comments
 (0)