26 _no_m_upper_threshold = 1024*1024*10*10*10
38 alg = AlgConf.eEmNoSort( name =
'eEMall', inputs =
'eEmTobs', outputs =
'eEMall' )
39 alg.addgeneric(
'InputWidth', HW.eEmInputWidth)
40 alg.addgeneric(
'OutputWidth', HW.eEmInputWidth)
41 alg.addvariable(
'REtaMin', 0)
42 alg.addvariable(
'RHadMin', 0)
43 alg.addvariable(
'WsTotMin', 0)
44 tm.registerTopoAlgo(alg)
48 alg = AlgConf.eEmSort( name =
'eEMs', inputs =
'eEmTobs', outputs =
'eEMs' )
49 alg.addgeneric(
'InputWidth', HW.eEmInputWidth)
50 alg.addgeneric(
'OutputWidth', HW.eEmOutputWidthSort)
51 alg.addvariable(
'REtaMin', 0)
52 alg.addvariable(
'RHadMin', 0)
53 alg.addvariable(
'WsTotMin', 0)
54 tm.registerTopoAlgo(alg)
56 alg = AlgConf.eEmSort( name =
'eEMsl', inputs =
'eEmTobs', outputs =
'eEMsl' )
57 alg.addgeneric(
'InputWidth', HW.eEmInputWidth)
58 alg.addgeneric(
'OutputWidth', HW.eEmOutputWidthSort)
59 alg.addvariable(
'REtaMin', 1)
60 alg.addvariable(
'RHadMin', 1)
61 alg.addvariable(
'WsTotMin', 1)
62 tm.registerTopoAlgo(alg)
64 alg = AlgConf.eEmSort( name =
'eEMsm', inputs =
'eEmTobs', outputs =
'eEMsm' )
65 alg.addgeneric(
'InputWidth', HW.eEmInputWidth)
66 alg.addgeneric(
'OutputWidth', HW.eEmOutputWidthSort)
67 alg.addvariable(
'REtaMin', 2)
68 alg.addvariable(
'RHadMin', 2)
69 alg.addvariable(
'WsTotMin', 2)
70 tm.registerTopoAlgo(alg)
74 alg = AlgConf.eEmSelect( name =
'eEMab', inputs =
'eEmTobs', outputs =
'eEMab' )
75 alg.addgeneric(
'InputWidth', HW.eEmInputWidth)
76 alg.addgeneric(
'OutputWidth', HW.eEmOutputWidthSelect)
77 alg.addvariable(
'MinET', get_threshold_cut(
'eEM', 7)*_et_conversion)
78 alg.addvariable(
'REtaMin', 0)
79 alg.addvariable(
'RHadMin', 0)
80 alg.addvariable(
'WsTotMin', 0)
81 tm.registerTopoAlgo(alg)
83 alg = AlgConf.eEmSelect( name =
'eEMabl', inputs =
'eEmTobs', outputs =
'eEMabl' )
84 alg.addgeneric(
'InputWidth', HW.eEmInputWidth)
85 alg.addgeneric(
'OutputWidth', HW.eEmOutputWidthSelect)
86 alg.addvariable(
'MinET', get_threshold_cut(
'eEM', 10)*_et_conversion)
87 alg.addvariable(
'REtaMin', 1)
88 alg.addvariable(
'RHadMin', 1)
89 alg.addvariable(
'WsTotMin', 1)
90 tm.registerTopoAlgo(alg)
92 alg = AlgConf.eEmSelect( name =
'eEMabm', inputs =
'eEmTobs', outputs =
'eEMabm' )
93 alg.addgeneric(
'InputWidth', HW.eEmInputWidth)
94 alg.addgeneric(
'OutputWidth', HW.eEmOutputWidthSelect)
95 alg.addvariable(
'MinET', get_threshold_cut(
'eEM', 10)*_et_conversion)
96 alg.addvariable(
'REtaMin', 2)
97 alg.addvariable(
'RHadMin', 2)
98 alg.addvariable(
'WsTotMin', 2)
99 tm.registerTopoAlgo(alg)
106 alg = AlgConf.eTauNoSort( name =
'eTAUall', inputs =
'eTauTobs', outputs =
'eTAUall')
107 alg.addgeneric(
'InputWidth', HW.eTauInputWidth)
108 alg.addgeneric(
'OutputWidth', HW.eTauInputWidth)
109 alg.addvariable(
'RCoreMin', 0)
110 alg.addvariable(
'RHadMin', 0)
111 tm.registerTopoAlgo(alg)
115 alg = AlgConf.eTauSort( name =
'eTAUs', inputs =
'eTauTobs', outputs =
'eTAUs' )
116 alg.addgeneric(
'InputWidth', HW.eTauInputWidth)
117 alg.addgeneric(
'OutputWidth', HW.eTauOutputWidthSort)
118 alg.addvariable(
'RCoreMin', 0)
119 alg.addvariable(
'RHadMin', 0)
120 tm.registerTopoAlgo(alg)
124 alg = AlgConf.eTauSelect( name =
'eTAUab', inputs =
'eTauTobs', outputs =
'eTAUab' )
125 alg.addgeneric(
'InputWidth', HW.eTauInputWidth)
126 alg.addgeneric(
'OutputWidth', HW.eTauOutputWidthSelect)
127 alg.addvariable(
'MinET', get_threshold_cut(
'eTAU', 12)*_et_conversion)
128 alg.addvariable(
'RCoreMin', 0)
129 alg.addvariable(
'RHadMin', 0)
130 tm.registerTopoAlgo(alg)
132 alg = AlgConf.eTauSelect( name =
'eTAUabl', inputs =
'eTauTobs', outputs =
'eTAUabl' )
133 alg.addgeneric(
'InputWidth', HW.eTauInputWidth)
134 alg.addgeneric(
'OutputWidth', HW.eTauOutputWidthSelect)
135 alg.addvariable(
'MinET', get_threshold_cut(
'eTAU', 12)*_et_conversion)
136 alg.addvariable(
'RCoreMin', 1)
137 alg.addvariable(
'RHadMin', 0)
138 tm.registerTopoAlgo(alg)
140 alg = AlgConf.eTauSelect( name =
'eTAUabm', inputs =
'eTauTobs', outputs =
'eTAUabm' )
141 alg.addgeneric(
'InputWidth', HW.eTauInputWidth)
142 alg.addgeneric(
'OutputWidth', HW.eTauOutputWidthSelect)
143 alg.addvariable(
'MinET', get_threshold_cut(
'eTAU', 12)*_et_conversion)
144 alg.addvariable(
'RCoreMin', 2)
145 alg.addvariable(
'RHadMin', 0)
146 tm.registerTopoAlgo(alg)
160 alg = AlgConf.MuonSelect( name =
'MU3Vab', inputs =
'MuonTobs', outputs =
'MU3Vab' )
161 alg.addgeneric(
'InputWidth', HW.muonInputWidth)
162 alg.addgeneric(
'OutputWidth', HW.muonOutputWidthSelect)
163 alg.addvariable(
'MinEtRPC', 4*_et_conversion)
164 alg.addvariable(
'MinEtTGC', 3*_et_conversion)
165 alg.addvariable(
'MinEta', 0*_eta_conversion)
166 alg.addvariable(
'MaxEta', 25*_eta_conversion)
167 alg.addvariable(
'InnerCoinCut', 0)
168 alg.addvariable(
'FullStationCut',0)
169 alg.addvariable(
'GoodMFieldCut', 0)
170 tm.registerTopoAlgo(alg)
172 alg = AlgConf.MuonSelect( name =
'MU3VFab', inputs =
'MuonTobs', outputs =
'MU3VFab' )
173 alg.addgeneric(
'InputWidth', HW.muonInputWidth)
174 alg.addgeneric(
'OutputWidth', HW.muonOutputWidthSelect)
175 alg.addvariable(
'MinEtRPC', 4*_et_conversion)
176 alg.addvariable(
'MinEtTGC', 3*_et_conversion)
177 alg.addvariable(
'MinEta', 0*_eta_conversion)
178 alg.addvariable(
'MaxEta', 25*_eta_conversion)
179 alg.addvariable(
'InnerCoinCut', 0)
180 alg.addvariable(
'FullStationCut',1)
181 alg.addvariable(
'GoodMFieldCut', 0)
182 tm.registerTopoAlgo(alg)
184 alg = AlgConf.MuonSelect( name =
'MU5VFab', inputs =
'MuonTobs', outputs =
'MU5VFab' )
185 alg.addgeneric(
'InputWidth', HW.muonInputWidth)
186 alg.addgeneric(
'OutputWidth', HW.muonOutputWidthSelect)
187 alg.addvariable(
'MinEtRPC', 6*_et_conversion)
188 alg.addvariable(
'MinEtTGC', 5*_et_conversion)
189 alg.addvariable(
'MinEta', 0*_eta_conversion)
190 alg.addvariable(
'MaxEta', 25*_eta_conversion)
191 alg.addvariable(
'InnerCoinCut', 0)
192 alg.addvariable(
'FullStationCut',1)
193 alg.addvariable(
'GoodMFieldCut', 0)
194 tm.registerTopoAlgo(alg)
196 alg = AlgConf.MuonSelect( name =
'MU8Fab', inputs =
'MuonTobs', outputs =
'MU8Fab' )
197 alg.addgeneric(
'InputWidth', HW.muonInputWidth)
198 alg.addgeneric(
'OutputWidth', HW.muonOutputWidthSelect)
199 alg.addvariable(
'MinEtRPC', 8*_et_conversion)
200 alg.addvariable(
'MinEtTGC', 8*_et_conversion)
201 alg.addvariable(
'MinEta', 0*_eta_conversion)
202 alg.addvariable(
'MaxEta', 25*_eta_conversion)
203 alg.addvariable(
'InnerCoinCut', 0)
204 alg.addvariable(
'FullStationCut',1)
205 alg.addvariable(
'GoodMFieldCut', 0)
206 tm.registerTopoAlgo(alg)
208 alg = AlgConf.MuonSelect( name =
'CMU3Vab', inputs =
'MuonTobs', outputs =
'CMU3Vab' )
209 alg.addgeneric(
'InputWidth', HW.muonInputWidth)
210 alg.addgeneric(
'OutputWidth', HW.muonOutputWidthSelect)
211 alg.addvariable(
'MinEtRPC', 4*_et_conversion)
212 alg.addvariable(
'MinEtTGC', 3*_et_conversion)
213 alg.addvariable(
'MinEta', 0*_eta_conversion)
214 alg.addvariable(
'MaxEta', 10*_eta_conversion)
215 alg.addvariable(
'InnerCoinCut', 0)
216 alg.addvariable(
'FullStationCut',0)
217 alg.addvariable(
'GoodMFieldCut', 0)
218 tm.registerTopoAlgo(alg)
220 alg = AlgConf.MuonSelect( name =
'CMU5VFab', inputs =
'MuonTobs', outputs =
'CMU5VFab' )
221 alg.addgeneric(
'InputWidth', HW.muonInputWidth)
222 alg.addgeneric(
'OutputWidth', HW.muonOutputWidthSelect)
223 alg.addvariable(
'MinEtRPC', 6*_et_conversion)
224 alg.addvariable(
'MinEtTGC', 5*_et_conversion)
225 alg.addvariable(
'MinEta', 0*_eta_conversion)
226 alg.addvariable(
'MaxEta', 10*_eta_conversion)
227 alg.addvariable(
'InnerCoinCut', 0)
228 alg.addvariable(
'FullStationCut',1)
229 alg.addvariable(
'GoodMFieldCut', 0)
230 tm.registerTopoAlgo(alg)
233 alg = AlgConf.MuonSort( name =
'MUs', inputs =
'MuonTobs', outputs =
'MUs' )
234 alg.addgeneric(
'InputWidth', HW.muonInputWidth)
235 alg.addgeneric(
'OutputWidth', HW.muonOutputWidthSort)
237 alg.addvariable(
'MinEta', 0*_eta_conversion)
238 alg.addvariable(
'MaxEta', 25*_eta_conversion)
239 alg.addvariable(
'InnerCoinCut', 0)
240 alg.addvariable(
'FullStationCut', 0)
241 alg.addvariable(
'GoodMFieldCut', 0)
242 tm.registerTopoAlgo(alg)
245 alg = AlgConf.MuonSort_1BC( name =
'LMUs', inputs =
'LateMuonTobArray', outputs =
'LMUs' )
246 alg.addgeneric(
'InputWidth', HW.muonInputWidth)
247 alg.addgeneric(
'OutputWidth', 1)
248 alg.addgeneric(
'nDelayedMuons', 1)
249 alg.addvariable(
'MinEta', 0*_eta_conversion)
250 alg.addvariable(
'MaxEta', 25*_eta_conversion)
251 alg.addvariable(
'InnerCoinCut', 0)
252 alg.addvariable(
'FullStationCut', 1)
253 alg.addvariable(
'GoodMFieldCut', 0)
254 tm.registerTopoAlgo(alg)
257 alg = AlgConf.jJetNoSort( name =
'AjJall_1BC', inputs =
'jJetTobs', outputs =
'AjJall_1BC' )
258 alg.addgeneric(
'InputWidth', HW.jJetInputWidth)
259 alg.addgeneric(
'OutputWidth', HW.jJetInputWidth)
262 alg.addgeneric(
'NumRegisters', 1)
263 tm.registerTopoAlgo(alg)
268 {
"otype" :
"jJ",
"ocut" : 50,
"olist" :
"ab",
"etamin" : 0,
"etamax" : 32},
269 {
"otype" :
"CjJ",
"ocut" : 20,
"olist" :
"ab",
"etamin" : 0,
"etamax" : 26},
270 {
"otype" :
"SCjJ",
"ocut" : 10,
"olist" :
"ab",
"etamin" : 0,
"etamax" : 26},
271 {
"otype" :
"FjJ",
"ocut" : 40,
"olist" :
"ab",
"etamin" : 30,
"etamax" : 49},
278 listname =
"%s%s" % (d.otype,d.olist)
279 algoname = AlgConf.jJetSelect
280 alg = algoname( name = listname, inputs =
'jJetTobs', outputs = listname )
281 alg.addgeneric(
'InputWidth', HW.jJetInputWidth)
282 alg.addgeneric(
'OutputWidth', HW.jJetOutputWidthSelect)
284 alg.addvariable(
'MinET', get_threshold_cut(d.otype, d.ocut)*_et_conversion)
285 alg.addvariable(
'MinEta', d.etamin*_eta_conversion)
286 alg.addvariable(
'MaxEta', d.etamax*_eta_conversion)
287 tm.registerTopoAlgo(alg)
290 {
"otype" :
"FjJ",
"ocut" : 0,
"olist" :
"s",
"etamin" : 30,
"etamax" : 49},
291 {
"otype" :
"jJ",
"ocut" : 0,
"olist" :
"s",
"etamin" : 0,
"etamax" : 32},
292 {
"otype" :
"CjJ",
"ocut" : 0,
"olist" :
"s",
"etamin" : 0,
"etamax" : 26},
293 {
"otype" :
"AjJ",
"ocut" : 0,
"olist" :
"s",
"etamin" : 0,
"etamax" : 49},
300 listname =
"%s%s" % (d.otype,d.olist)
301 algoname = AlgConf.jJetSort
302 alg = algoname( name = listname, inputs =
'jJetTobs', outputs = listname )
303 alg.addgeneric(
'InputWidth', HW.jJetInputWidth)
304 alg.addgeneric(
'OutputWidth', HW.jJetOutputWidthSort)
306 alg.addvariable(
'MinET', d.ocut*_et_conversion)
307 alg.addvariable(
'MinEta', d.etamin*_eta_conversion)
308 alg.addvariable(
'MaxEta', d.etamax*_eta_conversion)
309 tm.registerTopoAlgo(alg)
314 alg = AlgConf.jEmSort( name =
'jEMs25ETA49', inputs =
'jEmTobs', outputs =
'jEMs25ETA49' )
315 alg.addgeneric(
'InputWidth', HW.jEmInputWidth)
316 alg.addgeneric(
'OutputWidth', HW.jEmOutputWidthSort)
317 alg.addvariable(
'MinEta', 25*_eta_conversion)
318 alg.addvariable(
'MaxEta', 49*_eta_conversion)
320 alg.addvariable(
'IsoMin', 0)
321 alg.addvariable(
'Frac1Min', 0)
322 alg.addvariable(
'Frac2Min', 0)
323 tm.registerTopoAlgo(alg)
325 alg = AlgConf.jEmSort( name =
'jEMsm25ETA49', inputs =
'jEmTobs', outputs =
'jEMsm25ETA49' )
326 alg.addgeneric(
'InputWidth', HW.jEmInputWidth)
327 alg.addgeneric(
'OutputWidth', HW.jEmOutputWidthSort)
328 alg.addvariable(
'MinEta', 25*_eta_conversion)
329 alg.addvariable(
'MaxEta', 49*_eta_conversion)
331 alg.addvariable(
'IsoMin', 2)
332 alg.addvariable(
'Frac1Min', 2)
333 alg.addvariable(
'Frac2Min', 2)
334 tm.registerTopoAlgo(alg)
338 alg = AlgConf.jTauNoSort( name =
'jTAUall', inputs =
'jTauTobs', outputs =
'jTAUall')
339 alg.addgeneric(
'InputWidth', HW.jTauInputWidth)
340 alg.addgeneric(
'OutputWidth', HW.jTauInputWidth)
341 alg.addvariable(
'Isolation',0)
342 alg.addvariable(
'passIsolation',
True)
343 tm.registerTopoAlgo(alg)
346 alg = AlgConf.jTauSort( name =
'jTAUs', inputs =
'jTauTobs', outputs =
'jTAUs' )
347 alg.addgeneric(
'InputWidth', HW.jTauInputWidth)
348 alg.addgeneric(
'OutputWidth', HW.jTauOutputWidthSort)
349 alg.addvariable(
'MinEta', 0*_eta_conversion)
350 alg.addvariable(
'MaxEta', 32*_eta_conversion)
351 alg.addvariable(
'Isolation',0)
352 alg.addvariable(
'passIsolation',
True)
353 tm.registerTopoAlgo(alg)
357 alg = AlgConf.jXENoSort( name =
'jXENoSort_1BC', inputs =
'jXETobs', outputs =
'jXENoSort_1BC' )
358 alg.addgeneric(
'InputWidth', HW.jMetInputWidth)
359 alg.addgeneric(
'OutputWidth', HW.metOutputWidth)
362 alg.addgeneric(
'NumRegisters', 1)
363 tm.registerTopoAlgo(alg)
365 alg = AlgConf.jXESort( name =
'jXEs', inputs =
'jXETobs', outputs =
'jXEs' )
366 alg.addgeneric(
'InputWidth', HW.jMetInputWidth)
367 alg.addgeneric(
'OutputWidth', HW.metOutputWidth)
368 tm.registerTopoAlgo(alg)
371 alg = AlgConf.jTENoSort( name =
'jTENoSort_1BC', inputs =
'jTETobs', outputs =
'jTENoSort_1BC' )
372 alg.addgeneric(
'InputWidth', HW.jSumEtTotalInputWidth)
373 alg.addgeneric(
'OutputWidth', 1)
374 alg.addgeneric(
'NumRegisters', 1)
375 tm.registerTopoAlgo(alg)
386 {
"otype" :
"eEM",
"ocut1" : 24,
"ocut2" : 24,
"olist" :
"sm",
"nleading1" : 2,
"minInvm" : 60,
"maxInvm" : 100,
"inputwidth": HW.eEmOutputWidthSort},
393 toponame =
'ZEE-eEM24sm2'
394 log.debug(
"Define %s", toponame)
395 inputList = d.otype + d.olist
396 alg = AlgConf.InvariantMassInclusive1( name = toponame, inputs = inputList, outputs = toponame)
397 alg.addgeneric(
'InputWidth', d.inputwidth)
398 alg.addgeneric(
'MaxTob', d.nleading1)
399 alg.addgeneric(
'NumResultBits', 1)
400 alg.addvariable(
'MinET1', get_threshold_cut(d.otype, d.ocut1)*_et_conversion )
401 alg.addvariable(
'MinET2', get_threshold_cut(d.otype, d.ocut2)*_et_conversion )
402 alg.addvariable(
'MinMSqr', d.minInvm*d.minInvm*_et_conversion*_et_conversion )
403 alg.addvariable(
'MaxMSqr', d.maxInvm*d.maxInvm*_et_conversion*_et_conversion )
404 tm.registerTopoAlgo(alg)
411 {
"minDr": 3,
"maxDr": 99,
"mult": 1,
"otype1" :
"MU8Fab" ,
"otype2" :
"eTAU",
"ocut2" : 30,
"olist2" :
"ab", },
412 {
"minDr": 3,
"maxDr": 35,
"mult": 1,
"otype1" :
"MU8Fab" ,
"otype2" :
"eTAU",
"ocut2" : 30,
"olist2" :
"ab", },
413 {
"minDr": 3,
"maxDr": 30,
"mult": 1,
"otype1" :
"MU8Fab" ,
"otype2" :
"eTAU",
"ocut2" : 30,
"olist2" :
"ab", },
414 {
"minDr": 3,
"maxDr": 28,
"mult": 1,
"otype1" :
"MU8Fab" ,
"otype2" :
"eTAU",
"ocut2" : 30,
"olist2" :
"ab", },
422 obj1 =
"%s%s" % ((str(d.mult)
if d.mult>1
else ""), d.otype1)
423 obj2 =
"-%s%d%s" % (d.otype2, d.ocut2, d.olist2)
424 toponame =
"%iDR%i-%s%s" % (d.minDr, d.maxDr, obj1, obj2)
425 log.debug(
"Define %s", toponame)
426 inputList = [ d.otype1,
'eTAUs']
427 algoname = AlgConf.DeltaRSqrIncl2
428 alg = algoname( name = toponame, inputs = inputList, outputs = [ toponame ])
430 alg.addgeneric(
'InputWidth1', HW.muonOutputWidthSelect)
431 alg.addgeneric(
'InputWidth2', HW.eTauOutputWidthSort)
432 alg.addgeneric(
'MaxTob1', HW.muonOutputWidthSelect)
433 alg.addgeneric(
'MaxTob2', 1)
434 alg.addgeneric(
'NumResultBits', 1)
435 alg.addvariable(
'MinET1', 0*_et_conversion)
436 alg.addvariable(
'MinET2', get_threshold_cut(
'eTAU', d.ocut2)*_et_conversion)
437 alg.addvariable(
'DeltaRMin', d.minDr*d.minDr*_dr_conversion*_dr_conversion)
438 alg.addvariable(
'DeltaRMax', d.maxDr*d.maxDr*_dr_conversion*_dr_conversion)
439 tm.registerTopoAlgo(alg)
449 {
"minDr": 0,
"maxDr": 15,
"mult": 2,
"otype1" :
"MU3Vab" ,
"otype2" :
"", },
450 {
"minDr": 0,
"maxDr": 24,
"mult": 2,
"otype1" :
"MU3Vab" ,
"otype2" :
"", },
452 {
"minDr": 1,
"maxDr": 15,
"mult": 1,
"otype1" :
"MU5VFab",
"otype2" :
"MU3Vab", },
453 {
"minDr": 1,
"maxDr": 22,
"mult": 1,
"otype1" :
"MU5VFab",
"otype2" :
"MU3Vab", },
454 {
"minDr": 2,
"maxDr": 15,
"mult": 2,
"otype1" :
"MU5VFab",
"otype2" :
"", },
455 {
"minDr": 0,
"maxDr": 22,
"mult": 2,
"otype1" :
"MU5VFab",
"otype2" :
"", },
456 {
"minDr": 2,
"maxDr": 99,
"mult": 2,
"otype1" :
"MU3Vab" ,
"otype2" :
"", },
458 for x
in listofalgos:
463 obj1 =
"%s%s" % ((str(d.mult)
if d.mult>1
else ""), d.otype1)
464 obj2 =
"-%s" % (d.otype2)
465 toponame =
"%iDR%i-%s%s" % (d.minDr, d.maxDr, obj1,
"" if d.mult>1
else obj2)
466 log.debug(
"Define %s", toponame)
467 inputList = [d.otype1]
if (d.mult>1)
else [d.otype1, d.otype2]
468 algoname = AlgConf.DeltaRSqrIncl1
if (d.mult>1)
else AlgConf.DeltaRSqrIncl2
469 alg = algoname( name = toponame, inputs = inputList, outputs = [ toponame ])
471 alg.addgeneric(
'InputWidth', HW.muonOutputWidthSelect)
472 alg.addgeneric(
'MaxTob', HW.muonOutputWidthSelect)
474 alg.addgeneric(
'InputWidth1', HW.muonOutputWidthSelect)
475 alg.addgeneric(
'InputWidth2', HW.muonOutputWidthSelect)
476 alg.addgeneric(
'MaxTob1', HW.muonOutputWidthSelect)
477 alg.addgeneric(
'MaxTob2', HW.muonOutputWidthSelect)
478 alg.addgeneric(
'NumResultBits', 1)
479 alg.addvariable(
'MinET1', 0*_et_conversion)
480 alg.addvariable(
'MinET2', 0*_et_conversion)
481 alg.addvariable(
'DeltaRMin', d.minDr*d.minDr*_dr_conversion*_dr_conversion)
482 alg.addvariable(
'DeltaRMax', d.maxDr*d.maxDr*_dr_conversion*_dr_conversion)
483 tm.registerTopoAlgo(alg)
492 {
"minDr": 0,
"maxDr": 12,
"mult": 2,
"otype1" :
"MU3Vab",
"otype2" :
"", },
494 for x
in listofalgos:
499 obj1 =
"%s%s" % ((str(d.mult)
if d.mult>1
else ""), d.otype1)
500 obj2 =
"-%s" % (d.otype2)
501 toponame =
"%iDR%iC-%s%s" % (d.minDr, d.maxDr, obj1,
"" if d.mult>1
else obj2)
502 log.debug(
"Define %s", toponame)
503 inputList = [d.otype1]
if (d.mult>1)
else [d.otype1, d.otype2]
504 algoname = AlgConf.DeltaRSqrIncl1Charge
if (d.mult>1)
else AlgConf.DeltaRSqrIncl2Charge
505 alg = algoname( name = toponame, inputs = inputList, outputs = [ toponame ])
507 alg.addgeneric(
'InputWidth', HW.muonOutputWidthSelect)
508 alg.addgeneric(
'MaxTob', HW.muonOutputWidthSelect)
510 alg.addgeneric(
'InputWidth1', HW.muonOutputWidthSelect)
511 alg.addgeneric(
'InputWidth2', HW.muonOutputWidthSelect)
512 alg.addgeneric(
'MaxTob1', HW.muonOutputWidthSelect)
513 alg.addgeneric(
'MaxTob2', HW.muonOutputWidthSelect)
514 alg.addgeneric(
'NumResultBits', 1)
515 alg.addvariable(
'MinET1', 0*_et_conversion)
516 alg.addvariable(
'MinET2', 0*_et_conversion)
517 alg.addvariable(
'DeltaRMin', d.minDr*d.minDr*_dr_conversion*_dr_conversion)
518 alg.addvariable(
'DeltaRMax', d.maxDr*d.maxDr*_dr_conversion*_dr_conversion)
519 tm.registerTopoAlgo(alg)
530 {
"minInvm":7,
"maxInvm":22,
"minDr": 0,
"maxDr": 20,
"mult": 2,
"otype1" :
"MU3Vab",
"otype2" :
"", },
532 for x
in listofalgos:
537 obj1 =
"%s%s" % ((str(d.mult)
if d.mult>1
else ""), d.otype1)
538 obj2 =
"-%s" % (d.otype2)
539 toponame =
"%iINVM%i-%iDR%iC-%s%s" % (d.minInvm, d.maxInvm, d.minDr, d.maxDr, obj1,
"" if d.mult>1
else obj2)
540 log.debug(
"Define %s", toponame)
541 inputList = [d.otype1]
if (d.mult>1)
else [d.otype1, d.otype2]
542 algoname = AlgConf.InvariantMassInclusiveDeltaRSqrIncl1Charge
if (d.mult>1)
else AlgConf.InvariantMassInclusiveDeltaRSqrIncl2Charge
543 alg = algoname( name = toponame, inputs = inputList, outputs = [ toponame ])
545 alg.addgeneric(
'InputWidth', HW.muonOutputWidthSelect)
546 alg.addgeneric(
'MaxTob', HW.muonOutputWidthSelect)
548 alg.addgeneric(
'InputWidth1', HW.muonOutputWidthSelect)
549 alg.addgeneric(
'InputWidth2', HW.muonOutputWidthSelect)
550 alg.addgeneric(
'MaxTob1', HW.muonOutputWidthSelect)
551 alg.addgeneric(
'MaxTob2', HW.muonOutputWidthSelect)
552 alg.addgeneric(
'NumResultBits', 1)
553 alg.addvariable(
'MinET1', 0*_et_conversion)
554 alg.addvariable(
'MinET2', 0*_et_conversion)
555 alg.addvariable(
'MinMSqr', d.minInvm * d.minInvm *_et_conversion*_et_conversion)
556 alg.addvariable(
'MaxMSqr', d.maxInvm * d.maxInvm *_et_conversion*_et_conversion)
557 alg.addvariable(
'DeltaRMin', d.minDr*d.minDr*_dr_conversion*_dr_conversion)
558 alg.addvariable(
'DeltaRMax', d.maxDr*d.maxDr*_dr_conversion*_dr_conversion)
559 tm.registerTopoAlgo(alg)
570 {
"minDeta": 5,
"maxDeta": 99,
"minDphi": 5,
"maxDphi": 99,
"mult": 1,
571 "otype1" :
"MU5VFab",
"ocut1":
"",
"olist1":
"",
"nleading1": HW.muonOutputWidthSelect,
572 "otype2" :
"MU3Vab" ,
"ocut2":
"",
"olist2":
"",
"nleading2": HW.muonOutputWidthSelect},
573 {
"minDeta": 5,
"maxDeta": 99,
"minDphi": 5,
"maxDphi": 99,
"mult": 2,
574 "otype1" :
"MU5VFab",
"ocut1":
"",
"olist1":
"",
"nleading1": HW.muonOutputWidthSelect,
575 "otype2" :
"" ,
"ocut2":
"",
"olist2":
"",
"nleading2": HW.muonOutputWidthSelect},
576 {
"minDeta": 5,
"maxDeta": 99,
"minDphi": 5,
"maxDphi": 99,
"mult": 2,
577 "otype1" :
"MU3Vab",
"ocut1":
"",
"olist1":
"",
"nleading1": HW.muonOutputWidthSelect,
578 "otype2" :
"" ,
"ocut2":
"",
"olist2":
"",
"nleading2": HW.muonOutputWidthSelect},
579 {
"minDeta": 5,
"maxDeta": 99,
"minDphi": 5,
"maxDphi": 99,
"mult": 2,
580 "otype1" :
"MU3VFab",
"ocut1":
"",
"olist1":
"",
"nleading1": HW.muonOutputWidthSelect,
581 "otype2" :
"" ,
"ocut2":
"",
"olist2":
"",
"nleading2": HW.muonOutputWidthSelect},
582 {
"minDeta": 0,
"maxDeta": 24,
"minDphi": 4,
"maxDphi": 99,
"mult": 1,
583 "otype1" :
"eTAU",
"ocut1": 30,
"olist1":
"ab",
"nleading1": HW.eTauOutputWidthSelect,
584 "otype2" :
"eTAU",
"ocut2": 20,
"olist2":
"ab",
"nleading2": HW.eTauOutputWidthSelect},
585 {
"minDeta": 0,
"maxDeta": 24,
"minDphi": 4,
"maxDphi": 99,
"mult": 1,
586 "otype1" :
"eTAU",
"ocut1": 30,
"olist1":
"ab",
"nleading1": HW.eTauOutputWidthSelect,
587 "otype2" :
"eTAU",
"ocut2": 12,
"olist2":
"ab",
"nleading2": HW.eTauOutputWidthSelect},
588 {
"minDeta": 0,
"maxDeta": 24,
"minDphi": 10,
"maxDphi": 99,
"mult": 1,
589 "otype1" :
"eTAU",
"ocut1": 30,
"olist1":
"ab",
"nleading1": HW.eTauOutputWidthSelect,
590 "otype2" :
"eTAU",
"ocut2": 12,
"olist2":
"ab",
"nleading2": HW.eTauOutputWidthSelect},
597 obj1 =
"%s%s" % ((str(d.mult)
if d.mult>1
else ""), d.otype1+str(d.ocut1)+str(d.olist1))
598 obj2 =
"-%s" % (d.otype2+str(d.ocut2)+str(d.olist2))
599 toponame =
"%sDETA%s-%sDPHI%s-%s%s" % (d.minDeta, d.maxDeta, d.minDphi, d.maxDphi, obj1,
"" if d.mult>1
else obj2)
600 log.debug(
"Define %s", toponame)
601 inputList = [d.otype1+d.olist1]
if (d.mult>1)
else [d.otype1+d.olist1, d.otype2+d.olist2]
602 algoname = AlgConf.DeltaEtaPhiIncl1
if (d.mult>1)
else AlgConf.DeltaEtaPhiIncl2
603 alg = algoname( name = toponame, inputs = inputList, outputs = [ toponame ])
604 alg.addgeneric(
'NumResultBits', 1)
606 alg.addgeneric(
'InputWidth', d.nleading1)
607 alg.addgeneric(
'MaxTob', d.nleading1)
608 alg.addvariable(
'MinET1', 0*_et_conversion)
609 alg.addvariable(
'MinET2', 0*_et_conversion)
610 alg.addvariable(
'MinDeltaEta', d.minDeta*_eta_conversion)
611 alg.addvariable(
'MaxDeltaEta', d.maxDeta*_eta_conversion)
612 alg.addvariable(
'MinDeltaPhi', d.minDphi*_phi_conversion)
613 alg.addvariable(
'MaxDeltaPhi', d.maxDphi*_phi_conversion)
615 alg.addgeneric(
'InputWidth1', d.nleading1)
616 alg.addgeneric(
'InputWidth2', d.nleading2)
617 alg.addgeneric(
'MaxTob1', d.nleading1)
618 alg.addgeneric(
'MaxTob2', d.nleading2)
619 alg.addvariable(
'MinET1', 0*_et_conversion)
620 alg.addvariable(
'MinET2', 0*_et_conversion)
621 alg.addvariable(
'DeltaEtaMin', d.minDeta*_eta_conversion)
622 alg.addvariable(
'DeltaEtaMax', d.maxDeta*_eta_conversion)
623 alg.addvariable(
'DeltaPhiMin', d.minDphi*_phi_conversion)
624 alg.addvariable(
'DeltaPhiMax', d.maxDphi*_phi_conversion)
625 tm.registerTopoAlgo(alg)
630 {
"itemNameMinHT": 150,
"minHT": 240,
"otype" :
"jJ",
"ocut" : 50,
"olist" :
"s",
"nleading" : 5,
"inputwidth": HW.jJetOutputWidthSort,
"oeta" : 32},
631 {
"itemNameMinHT": 190,
"minHT": 300,
"otype" :
"jJ",
"ocut" : 40,
"olist" :
"s",
"nleading" : 5,
"inputwidth": HW.jJetOutputWidthSort,
"oeta" : 21},
638 toponame =
"HT%d-%s%s%s%spETA%s" % (d.itemNameMinHT, d.otype, str(d.ocut), d.olist, str(d.nleading)
if d.olist==
"s" else "", str(d.oeta))
639 log.debug(
"Define %s", toponame)
640 inputList = d.otype + d.olist
641 alg = AlgConf.JetHT( name = toponame, inputs = inputList, outputs = [toponame] )
642 alg.addgeneric(
'InputWidth', d.inputwidth)
643 alg.addgeneric(
'MaxTob', d.nleading)
644 alg.addgeneric(
'NumRegisters', 2
if d.olist==
"all" else 0)
645 alg.addgeneric(
'NumResultBits', 1)
646 alg.addvariable(
'MinET', get_threshold_cut(d.otype, d.ocut)*_et_conversion)
647 alg.addvariable(
'MinEta', 0*_eta_conversion)
648 alg.addvariable(
'MaxEta', d.oeta*_eta_conversion)
649 alg.addvariable(
'MinHt', d.minHT*_et_conversion)
650 tm.registerTopoAlgo(alg)
657 "algoname" :
"DR_2MU5VFab",
660 "otype1" :
"MU5VFab",
666 for x
in DR_2MU5FMap:
671 inputList = [ d.otype1 ]
673 for bitId
in range(len(d.minDR)):
674 toponames.append(
"%iDR%i-%s%s" % (d.minDR[bitId], d.maxDR[bitId], str(d.mult1[bitId]),
677 alg = AlgConf.DeltaRSqrIncl1( name = d.algoname, inputs = inputList, outputs = toponames)
678 alg.addgeneric(
'InputWidth', HW.muonOutputWidthSelect)
679 alg.addgeneric(
'MaxTob', HW.muonOutputWidthSelect)
680 alg.addgeneric(
'NumResultBits', len(toponames) )
682 for bitId
in range(len(toponames)):
683 alg.addvariable(
'MinET1', 0 * _et_conversion, bitId )
684 alg.addvariable(
'MinET2', 0 * _et_conversion, bitId )
685 alg.addvariable(
"DeltaRMin", d.minDR[bitId] * d.minDR[bitId] * _dr_conversion * _dr_conversion, bitId)
686 alg.addvariable(
"DeltaRMax", d.maxDR[bitId] * d.maxDR[bitId] * _dr_conversion * _dr_conversion, bitId)
688 tm.registerTopoAlgo(alg)
702 "algoname" :
"INVM_DPHI_eEMsm6",
703 "minInvm" : [0, 0, 2],
704 "maxInvm" : [70, 70, 5],
705 "minDphi" : [27, 27, 0],
706 "maxDphi" : [32, 32, 32],
709 "ocut1List" : [ 12, 15, 9 ],
712 "ocut2List" : [ 12, 15, 6 ],
719 for x
in eINVM_DPHIMap:
724 inputList = [d.otype1 + d.olist1, d.otype2 + d.olist1]
726 for bitId, ocut1Value
in enumerate(d.ocut1List):
727 toponames.append (
"%iINVM%i-%iDPHI%i-%s%s%s%s-%s%s%s%s" % (d.minInvm[bitId], d.maxInvm[bitId], d.minDphi[bitId], d.maxDphi[bitId],
728 d.otype1, str(ocut1Value) , d.olist1, str(d.nleading1)
if d.olist1==
"sm" else "",
729 d.otype2, str(d.ocut2List[bitId]) , d.olist2, str(d.nleading2)
if d.olist2==
"sm" else ""))
730 alg = AlgConf.InvariantMassDeltaPhiInclusive2( name = d.algoname, inputs = inputList, outputs = toponames )
731 alg.addgeneric(
'InputWidth1', HW.eEmOutputWidthSort)
732 alg.addgeneric(
'InputWidth2', HW.eEmOutputWidthSort)
733 alg.addgeneric(
'MaxTob1', d.nleading1)
734 alg.addgeneric(
'MaxTob2', d.nleading2)
735 alg.addgeneric(
'NumResultBits', len(toponames))
736 for bitId
in range(len(toponames)):
737 alg.addvariable(
'MinET1', get_threshold_cut(d.otype1, d.ocut1List[bitId]) * _et_conversion, bitId)
738 alg.addvariable(
'MinET2', get_threshold_cut(d.otype2, d.ocut2List[bitId]) * _et_conversion, bitId)
739 alg.addvariable(
'MinMSqr', d.minInvm[bitId] * d.minInvm[bitId] * _et_conversion * _et_conversion, bitId)
740 alg.addvariable(
'MaxMSqr', d.maxInvm[bitId] * d.maxInvm[bitId] * _et_conversion * _et_conversion, bitId)
741 alg.addvariable(
'MinDeltaPhi', d.minDphi[bitId] * _phi_conversion, bitId)
742 alg.addvariable(
'MaxDeltaPhi', d.maxDphi[bitId] * _phi_conversion, bitId)
744 tm.registerTopoAlgo(alg)
749 "algoname":
"INVM-eEMs-2DISAMB-jJs",
751 "minInvm" : [110, 110],
752 "maxInvm" : [150, 150],
757 "nleading1": HW.eEmOutputWidthSort,
758 "inputwidth1": HW.eEmOutputWidthSort,
762 "inputwidth2": HW.jJetOutputWidthSort,
767 for x
in INVM_DISAMB_Map:
772 inputList = [d.otype1 + d.olist1, d.otype2 + d.olist2]
775 for bitId
in range(d.numResultBits):
776 obj1a =
"-%s%s%s" % (d.otype1, str(d.ocut1a[bitId]), d.olist1)
777 obj1b =
"-%s%s%s" % (d.otype1, str(d.ocut1b[bitId]), d.olist1)
778 obj2 =
"%s%s%s" % (d.otype2, str(d.ocut2[bitId]), d.olist2)
779 toponames.append(
"%iINVM%i%s%s-%sDISAMB-%s" % (d.minInvm[bitId], d.maxInvm[bitId], obj1a, obj1b, str(d.disamb[bitId])
if d.disamb[bitId]>0
else "", obj2) )
781 alg = AlgConf.InvariantMassInclusive1Disambiguation2( name = d.algoname, inputs = inputList, outputs = toponames )
782 alg.addgeneric(
'InputWidth1', d.inputwidth1)
783 alg.addgeneric(
'InputWidth2', d.inputwidth2)
784 alg.addgeneric(
'MaxTob1', d.nleading1)
785 alg.addgeneric(
'MaxTob2', d.nleading2)
786 alg.addgeneric(
'NumResultBits', d.numResultBits)
788 for bitId
in range(d.numResultBits):
789 alg.addvariable(
'MinET1a', get_threshold_cut(d.otype1, d.ocut1a[bitId])*_et_conversion, bitId)
790 alg.addvariable(
'MinET1b', get_threshold_cut(d.otype1, d.ocut1b[bitId])*_et_conversion, bitId)
791 alg.addvariable(
'MinET2', get_threshold_cut(d.otype2, d.ocut2[bitId])*_et_conversion, bitId)
792 alg.addvariable(
'MinMSqr', d.minInvm[bitId] * d.minInvm[bitId] * _et_conversion * _et_conversion, bitId)
793 alg.addvariable(
'MaxMSqr', d.maxInvm[bitId] * d.maxInvm[bitId] * _et_conversion * _et_conversion, bitId)
794 alg.addvariable(
'DisambDRSqrMin', d.disamb[bitId]*d.disamb[bitId]*_dr_conversion*_dr_conversion, bitId)
796 tm.registerTopoAlgo(alg)
811 "algoname" :
"INVM_INVDPHI_eEMsl6",
818 "ocut1List" : [ 9, 12],
821 "ocut2List" : [ 9, 12 ],
827 for x
in eINVM_DPHIMap:
832 inputList = [d.otype1 + d.olist1, d.otype2 + d.olist1]
834 for bitId, ocut1Value
in enumerate(d.ocut1List):
835 toponames.append (
"%iINVM%i-%iDPHI%i-%s%s%s%s-%s%s%s%s" % (d.minInvm, d.maxInvm, d.minDphi, d.maxDphi,
836 d.otype1, str(ocut1Value) , d.olist1, str(d.nleading1)
if d.olist1==
"sl" else "",
837 d.otype2, str(d.ocut2List[bitId]) , d.olist2, str(d.nleading2)
if d.olist2==
"sl" else ""))
838 alg = AlgConf.InvariantMassDeltaPhiInclusive2( name = d.algoname, inputs = inputList, outputs = toponames )
840 alg.addgeneric(
'InputWidth1', HW.eEmOutputWidthSort)
841 alg.addgeneric(
'InputWidth2', HW.eEmOutputWidthSort)
842 alg.addgeneric(
'MaxTob1', d.nleading1)
843 alg.addgeneric(
'MaxTob2', d.nleading2)
844 alg.addgeneric(
'NumResultBits', len(toponames))
845 for bitId
in range(len(toponames)):
846 alg.addvariable(
'MinET1', get_threshold_cut(d.otype1, d.ocut1List[bitId]) * _et_conversion, bitId)
847 alg.addvariable(
'MinET2', get_threshold_cut(d.otype1, d.ocut2List[bitId]) * _et_conversion, bitId)
848 alg.addvariable(
'MinMSqr', d.minInvm * d.minInvm * _et_conversion * _et_conversion, bitId)
849 alg.addvariable(
'MaxMSqr', d.maxInvm * d.maxInvm * _et_conversion * _et_conversion, bitId)
850 alg.addvariable(
'MinDeltaPhi', d.minDphi * _phi_conversion, bitId)
851 alg.addvariable(
'MaxDeltaPhi', d.maxDphi * _phi_conversion, bitId)
853 tm.registerTopoAlgo(alg)
869 "algoname" :
"INVM_BOOSTDR_eEMsl6",
876 "ocut1List" : [ 9, 12 ],
879 "ocut2List" : [ 9, 12 ],
885 for x
in eINVM_DRMap:
890 inputList = [d.otype1 + d.olist1, d.otype2 + d.olist1]
892 for bitId, ocut1Value
in enumerate(d.ocut1List):
893 toponames.append (
"%iINVM%i-%iDR%i-%s%s%s%s-%s%s%s%s" % (d.minInvm, d.maxInvm, d.minDR, d.maxDR,
894 d.otype1, str(ocut1Value) , d.olist1, str(d.nleading1)
if d.olist1==
"sl" else "",
895 d.otype2, str(d.ocut2List[bitId]) , d.olist2, str(d.nleading2)
if d.olist2==
"sl" else ""))
897 alg = AlgConf.InvariantMassInclusiveDeltaRSqrIncl2( name = d.algoname, inputs = inputList, outputs = toponames )
898 alg.addgeneric(
'InputWidth1', HW.eEmOutputWidthSort)
899 alg.addgeneric(
'InputWidth2', HW.eEmOutputWidthSort)
900 alg.addgeneric(
'MaxTob1', d.nleading1)
901 alg.addgeneric(
'MaxTob2', d.nleading2)
902 alg.addgeneric(
'NumResultBits', len(toponames))
903 for bitId
in range(len(toponames)):
904 alg.addvariable(
'MinET1', get_threshold_cut(d.otype1, d.ocut1List[bitId]) * _et_conversion, bitId)
905 alg.addvariable(
'MinET2', get_threshold_cut(d.otype1, d.ocut2List[bitId]) * _et_conversion, bitId)
906 alg.addvariable(
'MinMSqr', d.minInvm * d.minInvm * _et_conversion * _et_conversion, bitId)
907 alg.addvariable(
'MaxMSqr', d.maxInvm * d.maxInvm * _et_conversion * _et_conversion, bitId)
908 alg.addvariable(
'DeltaRMin', d.minDR*d.minDR*_dr_conversion*_dr_conversion, bitId)
909 alg.addvariable(
'DeltaRMax', d.maxDR*d.maxDR*_dr_conversion*_dr_conversion, bitId)
911 tm.registerTopoAlgo(alg)
924 eINVM_Ranges_DRMap = [
926 "algoname" :
"INVM_BOOSTDR_Ranges_eEM12sl6",
933 "ocut1List" : [12,12],
936 "ocut2List" : [12,12],
942 for x
in eINVM_Ranges_DRMap:
947 inputList = [d.otype1 + d.olist1, d.otype2 + d.olist1]
949 for bitId, ocut1Value
in enumerate(d.ocut1List):
950 toponames.append (
"%iINVM%i-%iDR%i-%s%s%s%s-%s%s%s%s" % (d.minInvm[bitId], d.maxInvm[bitId], d.minDR[bitId], d.maxDR[bitId],
951 d.otype1, str(ocut1Value) , d.olist1, str(d.nleading1)
if d.olist1==
"sl" else "",
952 d.otype2, str(d.ocut2List[bitId]) , d.olist2, str(d.nleading2)
if d.olist2==
"sl" else ""))
954 alg = AlgConf.InvariantMassInclusiveDeltaRSqrIncl2( name = d.algoname, inputs = inputList, outputs = toponames )
955 alg.addgeneric(
'InputWidth1', HW.eEmOutputWidthSort)
956 alg.addgeneric(
'InputWidth2', HW.eEmOutputWidthSort)
957 alg.addgeneric(
'MaxTob1', d.nleading1)
958 alg.addgeneric(
'MaxTob2', d.nleading2)
959 alg.addgeneric(
'NumResultBits', len(toponames))
960 for bitId
in range(len(toponames)):
961 alg.addvariable(
'MinET1', get_threshold_cut(d.otype1, d.ocut1List[bitId]) * _et_conversion, bitId)
962 alg.addvariable(
'MinET2', get_threshold_cut(d.otype1, d.ocut2List[bitId]) * _et_conversion, bitId)
963 alg.addvariable(
'MinMSqr', d.minInvm[bitId] * d.minInvm[bitId] * _et_conversion * _et_conversion, bitId)
964 alg.addvariable(
'MaxMSqr', d.maxInvm[bitId] * d.maxInvm[bitId] * _et_conversion * _et_conversion, bitId)
965 alg.addvariable(
'DeltaRMin', d.minDR[bitId]*d.minDR[bitId]*_dr_conversion*_dr_conversion, bitId)
966 alg.addvariable(
'DeltaRMax', d.maxDR[bitId]*d.maxDR[bitId]*_dr_conversion*_dr_conversion, bitId)
968 tm.registerTopoAlgo(alg)
982 eINVM_Ranges_Asymm_DRMap = [
984 "algoname" :
"INVM_BOOSTDR_Ranges_Asymm_eEMsl6",
991 "ocut1List" : [12,12],
1000 for x
in eINVM_Ranges_Asymm_DRMap:
1004 setattr (d, k, x[k])
1005 inputList = [d.otype1 + d.olist1, d.otype2 + d.olist1]
1007 for bitId, ocut1Value
in enumerate(d.ocut1List):
1008 toponames.append (
"%iINVM%i-%iDR%i-%s%s%s%s-%s%s%s%s" % (d.minInvm[bitId], d.maxInvm[bitId], d.minDR[bitId], d.maxDR[bitId],
1009 d.otype1, str(ocut1Value) , d.olist1, str(d.nleading1)
if d.olist1==
"sl" else "",
1010 d.otype2, str(d.ocut2List[bitId]) , d.olist2, str(d.nleading2)
if d.olist2==
"sl" else ""))
1012 alg = AlgConf.InvariantMassInclusiveDeltaRSqrIncl2( name = d.algoname, inputs = inputList, outputs = toponames )
1013 alg.addgeneric(
'InputWidth1', HW.eEmOutputWidthSort)
1014 alg.addgeneric(
'InputWidth2', HW.eEmOutputWidthSort)
1015 alg.addgeneric(
'MaxTob1', d.nleading1)
1016 alg.addgeneric(
'MaxTob2', d.nleading2)
1017 alg.addgeneric(
'NumResultBits', len(toponames))
1018 for bitId
in range(len(toponames)):
1019 alg.addvariable(
'MinET1', get_threshold_cut(d.otype1, d.ocut1List[bitId]) * _et_conversion, bitId)
1020 alg.addvariable(
'MinET2', get_threshold_cut(d.otype1, d.ocut2List[bitId]) * _et_conversion, bitId)
1021 alg.addvariable(
'MinMSqr', d.minInvm[bitId] * d.minInvm[bitId] * _et_conversion * _et_conversion, bitId)
1022 alg.addvariable(
'MaxMSqr', d.maxInvm[bitId] * d.maxInvm[bitId] * _et_conversion * _et_conversion, bitId)
1023 alg.addvariable(
'DeltaRMin', d.minDR[bitId]*d.minDR[bitId]*_dr_conversion*_dr_conversion, bitId)
1024 alg.addvariable(
'DeltaRMax', d.maxDR[bitId]*d.maxDR[bitId]*_dr_conversion*_dr_conversion, bitId)
1026 tm.registerTopoAlgo(alg)
1031 INVM_DR_2MU5VFabMap = [
1033 "algoname":
"INVM_DR_2MU5VFab",
1038 "otype1" :
"MU5VFab",
1042 for x
in INVM_DR_2MU5VFabMap:
1047 inputList = d.otype1
1049 for bitId
in range(len(d.minDR)):
1050 toponames.append(
"%iINVM%i-%iDR%i-%i%s" % ( d.minInvm[bitId], d.maxInvm[bitId],
1051 d.minDR[bitId] , d.maxDR[bitId],
1055 alg = AlgConf.InvariantMassInclusiveDeltaRSqrIncl1( name = d.algoname, inputs = inputList, outputs = toponames)
1056 alg.addgeneric(
'InputWidth', HW.muonOutputWidthSelect)
1057 alg.addgeneric(
'MaxTob', HW.muonOutputWidthSelect)
1058 alg.addgeneric(
'NumResultBits', len(toponames))
1059 for bitId
in range(len(toponames)):
1060 alg.addvariable(
'MinET1', 0*_et_conversion, bitId)
1061 alg.addvariable(
'MinET2', 0*_et_conversion, bitId)
1062 alg.addvariable(
'MinMSqr', d.minInvm[bitId]*d.minInvm[bitId]*_et_conversion*_et_conversion, bitId)
1063 alg.addvariable(
'MaxMSqr', d.maxInvm[bitId]*d.maxInvm[bitId]*_et_conversion*_et_conversion, bitId)
1064 alg.addvariable(
'DeltaRMin', d.minDR[bitId]*d.minDR[bitId]*_dr_conversion*_dr_conversion, bitId)
1065 alg.addvariable(
'DeltaRMax', d.maxDR[bitId]*d.maxDR[bitId]*_dr_conversion*_dr_conversion, bitId)
1066 tm.registerTopoAlgo(alg)
1071 INVM_2MU3VFab_Map = [
1073 "algoname":
"INVM_2MU3VFab",
1075 "maxInvm" : [14,22],
1076 "otype1" :
"MU3VFab",
1080 for x
in INVM_2MU3VFab_Map:
1085 inputList = d.otype1
1087 for bitId
in range(len(d.maxInvm)):
1088 toponames.append(
"%iINVM%i-%i%s" % ( d.minInvm, d.maxInvm[bitId],
1092 alg = AlgConf.InvariantMassInclusive1( name = d.algoname, inputs = inputList, outputs = toponames)
1093 alg.addgeneric(
'InputWidth', HW.muonOutputWidthSelect)
1094 alg.addgeneric(
'MaxTob', HW.muonOutputWidthSelect)
1095 alg.addgeneric(
'NumResultBits', len(toponames))
1096 for bitId
in range(len(toponames)):
1097 alg.addvariable(
'MinET1', 0*_et_conversion, bitId)
1098 alg.addvariable(
'MinET2', 0*_et_conversion, bitId)
1099 alg.addvariable(
'MinMSqr', d.minInvm*d.minInvm*_et_conversion*_et_conversion, bitId)
1100 alg.addvariable(
'MaxMSqr', d.maxInvm[bitId]*d.maxInvm[bitId]*_et_conversion*_et_conversion, bitId)
1101 tm.registerTopoAlgo(alg)
1106 invm_map = {
"algoname":
'INVM_eEMs6' ,
"ocutlist": [ 9, 15 ],
"minInvm": 1,
"maxInvm": 5,
"otype" :
"eEM",
"olist" :
"s",
1107 "nleading" : 1,
"inputwidth": HW.eEmOutputWidthSort}
1108 for x
in [ invm_map ]:
1112 setattr (d, k, x[k])
1113 inputList = d.otype + d.olist
1115 for ocut
in d.ocutlist:
1116 toponame =
"%iINVM%i-%s%s%s%s-eEMs6" % (d.minInvm, d.maxInvm, d.otype, str(ocut)
if ocut > 0
else "", d.olist, str(d.nleading)
if d.olist==
"s" else "")
1117 toponames.append(toponame)
1118 alg = AlgConf.InvariantMassInclusive2( name = d.algoname, inputs = [inputList,
'eEMs'], outputs = toponames)
1119 alg.addgeneric(
'InputWidth1', d.inputwidth)
1120 alg.addgeneric(
'InputWidth2', HW.eEmOutputWidthSort)
1121 alg.addgeneric(
'MaxTob1', d.nleading)
1122 alg.addgeneric(
'MaxTob2', HW.eEmOutputWidthSort)
1123 alg.addgeneric(
'NumResultBits', len(toponames))
1124 for bitid, ocut
in enumerate(d.ocutlist):
1125 alg.addvariable(
'MinET1', get_threshold_cut(
'eEM', ocut)*_et_conversion, bitid)
1126 alg.addvariable(
'MinET2', 0*_et_conversion, bitid)
1127 alg.addvariable(
'MinMSqr', d.minInvm*d.minInvm*_et_conversion*_et_conversion, bitid)
1128 alg.addvariable(
'MaxMSqr', d.maxInvm*d.maxInvm*_et_conversion*_et_conversion, bitid)
1129 tm.registerTopoAlgo(alg)
1134 {
"minDr": 0,
"maxDr": 4,
"otype1" :
"MU5VFab",
"otype2" :
"CjJ",
"ocut2": 40,
"olist2" :
"ab"},
1135 {
"minDr": 0,
"maxDr": 4,
"otype1" :
"MU3Vab" ,
"otype2" :
"CjJ",
"ocut2": 40,
"olist2" :
"ab"},
1136 {
"minDr": 0,
"maxDr": 4,
"otype1" :
"MU5VFab",
"otype2" :
"CjJ",
"ocut2": 80,
"olist2" :
"ab"},
1137 {
"minDr": 0,
"maxDr": 4,
"otype1" :
"MU3VFab",
"otype2" :
"CjJ",
"ocut2": 40,
"olist2" :
"ab"},
1138 {
"minDr": 0,
"maxDr": 4,
"otype1" :
"MU3VFab",
"otype2" :
"CjJ",
"ocut2": 20,
"olist2" :
"ab"},
1139 {
"minDr": 0,
"maxDr": 4,
"otype1" :
"MU5VFab",
"otype2" :
"CjJ",
"ocut2": 20,
"olist2" :
"ab"},
1145 setattr (d, k, x[k])
1146 toponame =
"%iDR%02d-%s-%s%s%s" % (d.minDr, d.maxDr, d.otype1, d.otype2, str(d.ocut2), d.olist2)
1147 log.debug(
"Define %s", toponame)
1148 inputList = [d.otype1, d.otype2 + d.olist2]
1149 alg = AlgConf.DeltaRSqrIncl2( name = toponame, inputs = inputList, outputs = [ toponame ])
1150 alg.addgeneric(
'InputWidth1', HW.muonOutputWidthSelect)
1151 alg.addgeneric(
'InputWidth2', HW.jJetOutputWidthSelect)
1152 alg.addgeneric(
'MaxTob1', HW.muonOutputWidthSelect)
1153 alg.addgeneric(
'MaxTob2', HW.jJetOutputWidthSelect)
1154 alg.addgeneric(
'NumResultBits', 1)
1155 alg.addvariable(
'MinET1', 0*_et_conversion, 0)
1156 alg.addvariable(
'MinET2', get_threshold_cut(d.otype2, d.ocut2)*_et_conversion, 0)
1157 alg.addvariable(
'DeltaRMin', d.minDr*d.minDr*_dr_conversion*_dr_conversion, 0)
1158 alg.addvariable(
'DeltaRMax', d.maxDr*d.maxDr*_dr_conversion*_dr_conversion, 0)
1159 tm.registerTopoAlgo(alg)
1168 {
"minInvm": 2,
"maxInvm": 8,
"mult": 2,
"otype1" :
"MU3Vab",
"otype2" :
"", },
1169 {
"minInvm": 2,
"maxInvm": 9,
"mult": 2,
"otype1" :
"MU3Vab",
"otype2" :
"", },
1170 {
"minInvm": 8,
"maxInvm": 15,
"mult": 1,
"otype1" :
"MU5VFab",
"otype2" :
"MU3Vab",},
1171 {
"minInvm": 2,
"maxInvm": 8,
"mult": 1,
"otype1" :
"MU5VFab",
"otype2" :
"MU3Vab",},
1172 {
"minInvm": 2,
"maxInvm": 9,
"mult": 1,
"otype1" :
"MU5VFab",
"otype2" :
"MU3Vab",},
1173 {
"minInvm": 8,
"maxInvm": 15,
"mult": 2,
"otype1" :
"MU5VFab",
"otype2" :
"", },
1174 {
"minInvm": 2,
"maxInvm": 9,
"mult": 2,
"otype1" :
"MU5VFab",
"otype2" :
"", },
1175 {
"minInvm": 7,
"maxInvm": 15,
"mult": 2,
"otype1" :
"MU3Vab",
"otype2" :
"", },
1176 {
"minInvm": 7,
"maxInvm": 22,
"mult": 1,
"otype1" :
"MU5VFab",
"otype2" :
"MU3VFab",},
1177 {
"minInvm": 7,
"maxInvm": 14,
"mult": 1,
"otype1" :
"MU5VFab",
"otype2" :
"MU3VFab",},
1178 {
"minInvm": 7,
"maxInvm": 14,
"mult": 2,
"otype1" :
"MU3Vab",
"otype2" :
"", },
1180 for x
in listofalgos:
1184 setattr (d, k, x[k])
1185 obj1 =
"%s%s" % ((str(d.mult)
if d.mult>1
else ""), d.otype1)
1186 obj2 =
"-%s" % (d.otype2)
1187 toponame =
"%iINVM%i-%s%s" % (d.minInvm, d.maxInvm, obj1,
"" if d.mult>1
else obj2)
1188 log.debug(
"Define %s", toponame)
1189 inputList = [d.otype1]
if (d.mult>1)
else [d.otype1, d.otype2]
1190 algoname = AlgConf.InvariantMassInclusive1
if (d.mult>1)
else AlgConf.InvariantMassInclusive2
1191 alg = algoname( name = toponame, inputs = inputList, outputs = [ toponame ])
1193 alg.addgeneric(
'InputWidth', HW.muonOutputWidthSelect)
1194 alg.addgeneric(
'MaxTob', HW.muonOutputWidthSelect)
1196 alg.addgeneric(
'InputWidth1', HW.muonOutputWidthSelect)
1197 alg.addgeneric(
'InputWidth2', HW.muonOutputWidthSelect)
1198 alg.addgeneric(
'MaxTob1', HW.muonOutputWidthSelect)
1199 alg.addgeneric(
'MaxTob2', HW.muonOutputWidthSelect)
1200 alg.addgeneric(
'NumResultBits', 1)
1201 alg.addvariable(
'MinET1', 0*_et_conversion)
1202 alg.addvariable(
'MinET2', 0*_et_conversion)
1203 alg.addvariable(
'MinMSqr', d.minInvm * d.minInvm *_et_conversion*_et_conversion)
1204 alg.addvariable(
'MaxMSqr', d.maxInvm * d.maxInvm *_et_conversion*_et_conversion)
1205 tm.registerTopoAlgo(alg)
1207 toponame =
"8INVM15-2CMU3Vab"
1208 log.debug(
"Define %s", toponame)
1209 inputList = [
'CMU3Vab']
1210 alg = AlgConf.InvariantMassInclusive1( name = toponame, inputs = inputList, outputs = toponame )
1211 alg.addgeneric(
'InputWidth', HW.muonOutputWidthSelect)
1212 alg.addgeneric(
'MaxTob', HW.muonOutputWidthSelect)
1213 alg.addgeneric(
'NumResultBits', 1)
1214 alg.addvariable(
'MinET1', 0*_et_conversion)
1215 alg.addvariable(
'MinET2', 0*_et_conversion)
1216 alg.addvariable(
'MinMSqr', 8*8*_et_conversion*_et_conversion)
1217 alg.addvariable(
'MaxMSqr', 15*15*_et_conversion*_et_conversion)
1218 tm.registerTopoAlgo(alg)
1221 {
"minInvm": 2,
"maxInvm": 8,
"mult": 1,
"otype1" :
"CMU3Vab",
"otype2" :
"MU3Vab"},
1227 setattr (d, k, x[k])
1228 obj1 =
"%s%s" % ((str(d.mult)
if d.mult>1
else ""), d.otype1)
1229 obj2 =
"-%s" % (d.otype2)
1230 toponame =
"%iINVM%i-%s%s" % (d.minInvm, d.maxInvm, obj1,
"" if d.mult>1
else obj2)
1231 log.debug(
"Define %s", toponame)
1232 inputList = [d.otype1]
if (d.mult>1)
else [d.otype1, d.otype2]
1233 algoname = AlgConf.InvariantMassInclusive1
if (d.mult>1)
else AlgConf.InvariantMassInclusive2
1234 alg = algoname( name = toponame, inputs = inputList, outputs = [ toponame ])
1236 alg.addgeneric(
'InputWidth', HW.muonOutputWidthSelect)
1237 alg.addgeneric(
'MaxTob', HW.muonOutputWidthSelect)
1238 alg.addgeneric(
'RequireOneBarrel', d.onebarrel)
1240 alg.addgeneric(
'InputWidth1', HW.muonOutputWidthSelect)
1241 alg.addgeneric(
'InputWidth2', HW.muonOutputWidthSelect)
1242 alg.addgeneric(
'MaxTob1', HW.muonOutputWidthSelect)
1243 alg.addgeneric(
'MaxTob2', HW.muonOutputWidthSelect)
1244 alg.addgeneric(
'NumResultBits', 1)
1245 alg.addvariable(
'MinET1', 0*_et_conversion)
1246 alg.addvariable(
'MinET2', 0*_et_conversion)
1247 alg.addvariable(
'MinMSqr', d.minInvm * d.minInvm *_et_conversion*_et_conversion)
1248 alg.addvariable(
'MaxMSqr', d.maxInvm * d.maxInvm *_et_conversion*_et_conversion)
1249 tm.registerTopoAlgo(alg)
1253 {
"minDr": 0,
"maxDr": 24,
"mult": 2,
"otype1" :
"CMU3Vab",
"otype2" :
"", },
1254 {
"minDr": 1,
"maxDr": 24,
"mult": 1,
"otype1" :
"CMU3Vab",
"otype2" :
"MU3Vab", },
1260 setattr (d, k, x[k])
1261 obj1 =
"%s%s" % ((str(d.mult)
if d.mult>1
else ""), d.otype1)
1262 obj2 =
"-%s" % (d.otype2)
1263 toponame =
"%iDR%i-%s%s" % (d.minDr, d.maxDr, obj1,
"" if d.mult>1
else obj2)
1264 log.debug(
"Define %s", toponame)
1265 inputList = [d.otype1]
if (d.mult>1)
else [d.otype1, d.otype2]
1266 algoname = AlgConf.DeltaRSqrIncl1
if (d.mult>1)
else AlgConf.DeltaRSqrIncl2
1267 alg = algoname( name = toponame, inputs = inputList, outputs = [ toponame ])
1269 alg.addgeneric(
'InputWidth', HW.muonOutputWidthSelect)
1270 alg.addgeneric(
'MaxTob', HW.muonOutputWidthSelect)
1272 alg.addgeneric(
'InputWidth1', HW.muonOutputWidthSelect)
1273 alg.addgeneric(
'InputWidth2', HW.muonOutputWidthSelect)
1274 alg.addgeneric(
'MaxTob1', HW.muonOutputWidthSelect)
1275 alg.addgeneric(
'MaxTob2', HW.muonOutputWidthSelect)
1276 alg.addgeneric(
'NumResultBits', 1)
1277 alg.addvariable(
'MinET1', 0*_et_conversion)
1278 alg.addvariable(
'MinET2', 0*_et_conversion)
1279 alg.addvariable(
'DeltaRMin', d.minDr*d.minDr *_dr_conversion*_dr_conversion)
1280 alg.addvariable(
'DeltaRMax', d.maxDr*d.maxDr *_dr_conversion*_dr_conversion)
1281 tm.registerTopoAlgo(alg)
1285 toponame =
'100RATIO-0MATCH-eTAU40si2-eEMall'
1286 alg = AlgConf.RatioMatch( name = toponame, inputs = [
'eTAUs',
'eEMall'], outputs = [ toponame ] )
1287 alg.addgeneric(
'InputWidth1', HW.eTauOutputWidthSort)
1288 alg.addgeneric(
'InputWidth2', HW.eEmInputWidth)
1289 alg.addgeneric(
'MaxTob1', 2)
1290 alg.addgeneric(
'MaxTob2', HW.eEmInputWidth)
1291 alg.addgeneric(
'NumResultBits', 1)
1292 alg.addvariable(
'MinET1', get_threshold_cut(
'eTAU', 40)*_et_conversion)
1293 alg.addvariable(
'MinET2', 0*_et_conversion)
1294 alg.addvariable(
'Ratio', 100, 0)
1295 tm.registerTopoAlgo(alg)
1298 toponame =
'NOT-0MATCH-eTAU40si1-eEMall'
1299 alg = AlgConf.NotMatch( name = toponame, inputs = [
'eTAUs',
'eEMall'], outputs = [ toponame ] )
1300 alg.addgeneric(
'InputWidth1', HW.eTauOutputWidthSort)
1301 alg.addgeneric(
'InputWidth2', HW.eEmInputWidth)
1302 alg.addgeneric(
'MaxTob1', 1)
1303 alg.addgeneric(
'MaxTob2', HW.eEmInputWidth)
1304 alg.addgeneric(
'NumResultBits', 1)
1305 alg.addvariable(
'MinET1', get_threshold_cut(
'eTAU', 40)*_et_conversion)
1306 alg.addvariable(
'MinET2', 0*_et_conversion)
1307 alg.addvariable(
'EtaMin1', 0*_eta_conversion)
1308 alg.addvariable(
'EtaMax1', 49*_eta_conversion)
1309 alg.addvariable(
'EtaMin2', 0*_eta_conversion)
1310 alg.addvariable(
'EtaMax2', 49*_eta_conversion)
1311 alg.addvariable(
'DRCut', 0)
1312 tm.registerTopoAlgo(alg)
1315 xemap = [{
"etcut": 0,
"Threlist": [55, 60, 65, 75 ]}]
1320 setattr (d, k, x[k])
1321 log.debug(
"Define %s", toponame)
1322 inputList = [
'jXENoSort_1BC',
'AjJall_1BC']
1324 for minxe
in d.Threlist:
1325 toponames.append(
"KF-jXE%s-AjJall" % (minxe))
1326 alg = AlgConf.KalmanMETCorrection( name =
"KF-jXE-AjJall", inputs = inputList, outputs = toponames )
1327 alg.addgeneric(
'InputWidth', HW.jJetInputWidth)
1328 alg.addgeneric(
'NumResultBits', len(toponames))
1329 for key, value
in KFMETweightParameters.items():
1333 alg.addvariable(key, value)
1334 alg.addvariable(
'MinET', 0)
1335 for bitid,minxe
in enumerate(d.Threlist):
1336 alg.addvariable(
'KFXE', str(minxe*_et_conversion), bitid)
1337 tm.registerTopoAlgo(alg)
1343 {
"otype" :
"LATE-MU",
"ocut" : 10,
"inputwidth": HW.NumberOfDelayedMuons},
1349 setattr (d, k, x[k])
1351 toponame =
"%s%ss1" % ( d.otype, str(d.ocut) )
1353 log.debug(
"Define %s", toponame)
1357 alg = AlgConf.EtCut( name = toponame, inputs = inputList, outputs = toponame )
1358 alg.addgeneric(
'InputWidth', d.inputwidth)
1359 alg.addgeneric(
'MaxTob', 1)
1360 alg.addgeneric(
'NumResultBits', 1)
1361 alg.addvariable(
'MinET', str(d.ocut*_et_conversion))
1362 tm.registerTopoAlgo(alg)
1367 {
"itemNameMinHT": 175,
"minHT": 176,
"otype" :
"SCjJ",
"ocut" : 10,
"olist" :
"ab",
"nleading" : HW.jJetOutputWidthSelect,
"inputwidth": HW.jJetOutputWidthSelect,
"oeta" : 26},
1373 setattr (d, k, x[k])
1374 toponame =
"SC%d-%s%s%s%spETA%s" % (d.itemNameMinHT, d.otype, str(d.ocut), d.olist, str(d.nleading)
if d.olist==
"s" else "", str(d.oeta))
1375 log.debug(
"Define %s", toponame)
1376 inputList = d.otype + d.olist
1377 alg = AlgConf.SimpleCone( name = toponame, inputs = inputList, outputs = [toponame] )
1378 alg.addgeneric(
'InputWidth', d.inputwidth)
1379 alg.addgeneric(
'NumResultBits', 1)
1380 alg.addvariable(
'MinET', d.ocut*_et_conversion)
1381 alg.addvariable(
'MinSumET', d.minHT*_et_conversion)
1382 alg.addvariable(
'MaxRSqr', 15*15*_dr_conversion*_dr_conversion)
1383 tm.registerTopoAlgo(alg)
1387 {
"minInvm" : 0,
"maxInvm": 9,
"otype" :
"eEM",
"ocut1" : 9,
"olist" :
"ab",
"inputwidth": HW.eEmOutputWidthSelect,
"ocut2" : 0},
1393 setattr (d, k, x[k])
1394 inputList = d.otype + d.olist
1395 toponame =
"%iINVM%i-%s%s%s-%s%s" % (d.minInvm, d.maxInvm,
1396 d.otype, str(d.ocut1) , d.olist,
1398 alg = AlgConf.InvariantMassInclusive1( name = toponame, inputs = inputList, outputs = toponame)
1399 alg.addgeneric(
'InputWidth', d.inputwidth)
1400 alg.addgeneric(
'MaxTob', HW.eEmOutputWidthSelect)
1401 alg.addgeneric(
'NumResultBits', 1)
1402 alg.addvariable(
'MinET1', get_threshold_cut(d.otype, d.ocut1)*_et_conversion)
1403 alg.addvariable(
'MinET2', get_threshold_cut(d.otype, d.ocut2)*_et_conversion)
1404 alg.addvariable(
'MinMSqr', d.minInvm*d.minInvm*_et_conversion*_et_conversion)
1405 alg.addvariable(
'MaxMSqr', d.maxInvm*d.maxInvm*_et_conversion*_et_conversion)
1406 tm.registerTopoAlgo(alg)
1411 {
"minDr": 0,
"maxDr": 3,
"otype1" :
"eEM" ,
"ocut1": 9,
"olist1" :
"ab",
"otype2" :
"CjJ",
"ocut2": 40,
"olist2" :
"ab"}
1417 setattr (d, k, x[k])
1418 toponame =
"%iDR%02d-%s%s%s-%s%s%s" % (d.minDr, d.maxDr, d.otype1, str(d.ocut1), d.olist1, d.otype2, str(d.ocut2), d.olist2)
1419 log.debug(
"Define %s", toponame)
1420 inputList = [d.otype1 + d.olist1, d.otype2 + d.olist2]
1421 alg = AlgConf.DeltaRSqrIncl2( name = toponame, inputs = inputList, outputs = [ toponame ])
1422 alg.addgeneric(
'InputWidth1', HW.eEmOutputWidthSelect)
1423 alg.addgeneric(
'InputWidth2', HW.jJetOutputWidthSelect)
1424 alg.addgeneric(
'MaxTob1', HW.eEmOutputWidthSelect)
1425 alg.addgeneric(
'MaxTob2', HW.jJetOutputWidthSelect)
1426 alg.addgeneric(
'NumResultBits', 1)
1427 alg.addvariable(
'MinET1', get_threshold_cut(d.otype1, d.ocut1)*_et_conversion, 0)
1428 alg.addvariable(
'MinET2', get_threshold_cut(d.otype2, d.ocut2)*_et_conversion, 0)
1429 alg.addvariable(
'DeltaRMin', d.minDr*d.minDr*_dr_conversion*_dr_conversion, 0)
1430 alg.addvariable(
'DeltaRMax', d.maxDr*d.maxDr*_dr_conversion*_dr_conversion, 0)
1431 tm.registerTopoAlgo(alg)
1437 {
"minDphi": 27,
"maxDphi": 32,
"otype" :
"eEM",
"ocut1" : 0,
"olist" :
"s",
"nleading1" : 1,
"inputwidth1": HW.eEmOutputWidthSort,
"ocut2" : 0,
"nleading2": 6},
1443 setattr (d, k, x[k])
1444 toponame =
"%iDPHI%i-%s%s%s%s-%s%s%s%s" % (d.minDphi, d.maxDphi,
1445 d.otype, str(d.ocut1)
if d.ocut1 > 0
else "", d.olist, str(d.nleading1)
if d.olist==
"s" else "",
1446 d.otype, str(d.ocut2)
if d.ocut2 > 0
else "", d.olist, str(d.nleading2)
if d.olist==
"s" else "")
1447 log.debug(
"Define %s", toponame)
1448 inputList = d.otype + d.olist
1449 alg = AlgConf.DeltaPhiIncl1( name = toponame, inputs = inputList, outputs = toponame )
1450 alg.addgeneric(
'InputWidth', d.inputwidth1)
1451 alg.addgeneric(
'MaxTob', d.nleading2)
1452 alg.addgeneric(
'NumResultBits', 1)
1453 alg.addvariable(
'MinET1', get_threshold_cut(d.otype, d.ocut1)*_et_conversion
if d.ocut1 > 0
else get_threshold_cut(d.otype, 5)*_et_conversion, 0)
1454 alg.addvariable(
'MinET2', get_threshold_cut(d.otype, d.ocut2)*_et_conversion
if d.ocut2 > 0
else get_threshold_cut(d.otype, 5)*_et_conversion, 0)
1455 alg.addvariable(
'MinDeltaPhi', d.minDphi*_phi_conversion, 0)
1456 alg.addvariable(
'MaxDeltaPhi', d.maxDphi*_phi_conversion, 0)
1457 tm.registerTopoAlgo(alg)
1461 {
"minDr": 0,
"maxDr": 28,
"otype1" :
"eTAU" ,
"ocut1": 30,
"olist1" :
"abl",
1462 "nleading1": HW.eTauOutputWidthSelect,
"inputwidth1": HW.eTauOutputWidthSelect,
"otype2" :
"eTAU",
"ocut2": 20,
"olist2" :
"abl",
1463 "nleading2": HW.eTauOutputWidthSelect,
"inputwidth2": HW.eTauOutputWidthSelect},
1464 {
"minDr": 0,
"maxDr": 28,
"otype1" :
"eTAU" ,
"ocut1": 30,
"olist1" :
"abm",
1465 "nleading1": HW.eTauOutputWidthSelect,
"inputwidth1": HW.eTauOutputWidthSelect,
"otype2" :
"eTAU",
"ocut2": 20,
"olist2" :
"abm",
1466 "nleading2": HW.eTauOutputWidthSelect,
"inputwidth2": HW.eTauOutputWidthSelect},
1472 setattr (d, k, x[k])
1473 obj1 =
"%s%s%s" % (d.otype1, str(d.ocut1), d.olist1)
1474 obj2 =
"-%s%s%s" % (d.otype2, str(d.ocut2), d.olist2)
1475 toponame =
"%iDR%i-%s%s" % (d.minDr, d.maxDr, obj1, obj2)
1476 log.debug(
"Define %s", toponame)
1477 inputList = [d.otype1 + d.olist1]
if d.otype1==d.otype2
else [d.otype1 + d.olist1, d.otype2 + d.olist2]
1478 algoname = AlgConf.DeltaRSqrIncl1
if d.otype1==d.otype2
else AlgConf.DeltaRSqrIncl2
1479 alg = algoname( name = toponame, inputs = inputList, outputs = [ toponame ])
1480 if d.otype1==d.otype2:
1481 alg.addgeneric(
'InputWidth', d.inputwidth1)
1482 alg.addgeneric(
'MaxTob', d.nleading1)
1484 alg.addgeneric(
'InputWidth1', d.inputwidth1)
1485 alg.addgeneric(
'InputWidth2', d.inputwidth2)
1486 alg.addgeneric(
'MaxTob1', d.nleading1)
1487 alg.addgeneric(
'MaxTob2', d.nleading2)
1488 alg.addgeneric(
'NumResultBits', 1)
1489 if d.otype1==d.otype2:
1490 alg.addvariable(
'MinET1', get_threshold_cut(d.otype1, d.ocut1)*_et_conversion )
1491 alg.addvariable(
'MinET2', get_threshold_cut(d.otype2, d.ocut2)*_et_conversion )
1492 alg.addvariable(
'DeltaRMin', d.minDr*d.minDr*_dr_conversion*_dr_conversion)
1493 alg.addvariable(
'DeltaRMax', d.maxDr*d.maxDr*_dr_conversion*_dr_conversion)
1495 alg.addvariable(
'MinET1', get_threshold_cut(d.otype1, d.ocut1)*_et_conversion , 0)
1496 alg.addvariable(
'MinET2', get_threshold_cut(d.otype2, d.ocut2)*_et_conversion , 0)
1497 alg.addvariable(
'DeltaRMin', d.minDr*d.minDr*_dr_conversion*_dr_conversion, 0)
1498 alg.addvariable(
'DeltaRMax', d.maxDr*d.maxDr*_dr_conversion*_dr_conversion, 0)
1499 tm.registerTopoAlgo(alg)
1502 DISAMB_DR_jJ_eTau_eTau_Map = [
1504 "algoname":
"2DISAMB_jJ55ab_DR_eTAU_eTAU",
1511 "nleading1": HW.eTauOutputWidthSelect,
1512 "inputwidth1": HW.eTauOutputWidthSelect,
1515 "nleading2": HW.eTauOutputWidthSelect,
1516 "inputwidth2": HW.eTauOutputWidthSelect,
1520 "nleading3": HW.jJetOutputWidthSelect,
1521 "inputwidth3": HW.jJetOutputWidthSelect,
1525 "algoname":
"2DISAMB_jJ50ab_DR_eTAU_eTAU",
1532 "nleading1": HW.eTauOutputWidthSelect,
1533 "inputwidth1": HW.eTauOutputWidthSelect,
1536 "nleading2": HW.eTauOutputWidthSelect,
1537 "inputwidth2": HW.eTauOutputWidthSelect,
1541 "nleading3": HW.jJetOutputWidthSelect,
1542 "inputwidth3": HW.jJetOutputWidthSelect,
1546 "algoname":
"2DISAMB_jJ40ab_DR_eTAU_eTAU",
1553 "nleading1": HW.eTauOutputWidthSelect,
1554 "inputwidth1": HW.eTauOutputWidthSelect,
1557 "nleading2": HW.eTauOutputWidthSelect,
1558 "inputwidth2": HW.eTauOutputWidthSelect,
1562 "nleading3": HW.jJetOutputWidthSelect,
1563 "inputwidth3": HW.jJetOutputWidthSelect,
1567 "algoname":
"2DISAMB_jJ30ab_DR_eTAU_eTAU",
1574 "nleading1": HW.eTauOutputWidthSelect,
1575 "inputwidth1": HW.eTauOutputWidthSelect,
1578 "nleading2": HW.eTauOutputWidthSelect,
1579 "inputwidth2": HW.eTauOutputWidthSelect,
1583 "nleading3": HW.jJetOutputWidthSelect,
1584 "inputwidth3": HW.jJetOutputWidthSelect,
1588 for x
in DISAMB_DR_jJ_eTau_eTau_Map:
1593 inputList = [d.otype1 + d.olist1, d.otype2 + d.olist2, d.otype3 + d.olist3]
1595 for bitId
in range(len(d.maxDR)):
1596 obj1 =
"-%s%s%s" % (d.otype1, str(d.ocut1), d.olist1)
1597 obj2 =
"-%s%s%s" % (d.otype2, str(d.ocut2), d.olist2)
1598 obj3 =
"%s%s%s" % (d.otype3, str(d.ocut3), d.olist3)
1599 toponames.append(
"%sDISAMB-%s-%dDR%d%s%s" % ( str(d.disamb)
if d.disamb>0
else "",
1600 obj3, d.minDR, d.maxDR[bitId], obj1, obj2))
1602 alg = AlgConf.DisambiguationDRIncl3( name = d.algoname, inputs = inputList, outputs = toponames )
1603 alg.addgeneric(
'InputWidth1', d.inputwidth1)
1604 alg.addgeneric(
'InputWidth2', d.inputwidth2)
1605 alg.addgeneric(
'InputWidth3', d.inputwidth3)
1606 alg.addgeneric(
'MaxTob1', d.nleading1)
1607 alg.addgeneric(
'MaxTob2', d.nleading2)
1608 alg.addgeneric(
'MaxTob3', d.nleading3)
1609 alg.addgeneric(
'NumResultBits', len(toponames))
1611 for bitId
in range(len(toponames)):
1612 alg.addvariable(
'MinET1', get_threshold_cut(d.otype1, d.ocut1)*_et_conversion, bitId)
1613 alg.addvariable(
'MinET2', get_threshold_cut(d.otype2, d.ocut2)*_et_conversion, bitId)
1614 alg.addvariable(
'MinET3', get_threshold_cut(d.otype3, d.ocut3)*_et_conversion, bitId)
1615 alg.addvariable(
'DisambDRSqrMin', d.minDR*d.minDR*_dr_conversion*_dr_conversion, bitId)
1616 alg.addvariable(
'DisambDRSqrMax', d.maxDR[bitId]*d.maxDR[bitId]*_dr_conversion*_dr_conversion, bitId)
1617 alg.addvariable(
'DisambDRSqr', d.disamb*d.disamb*_dr_conversion*_dr_conversion, bitId)
1619 tm.registerTopoAlgo(alg)
1625 DR_eTau30_eTau20_Map = [
1627 "algoname":
"DR_eTAU30ab_eTAU20ab",
1635 "inputwidth": HW.eTauOutputWidthSelect,
1639 for x
in DR_eTau30_eTau20_Map:
1644 inputList = [d.otype1 + d.olist1]
1646 for bitId
in range(len(d.maxDR)):
1647 obj1 =
"-%s%s%s" % (d.otype1, str(d.ocut1), d.olist1)
1648 obj2 =
"-%s%s%s" % (d.otype2, str(d.ocut2), d.olist2)
1649 toponames.append(
"%dDR%d%s%s" % ( d.minDR, d.maxDR[bitId], obj1, obj2))
1651 alg = AlgConf.DeltaRSqrIncl1( name = d.algoname, inputs = inputList, outputs = toponames )
1653 alg.addgeneric(
'InputWidth', d.inputwidth)
1654 alg.addgeneric(
'MaxTob', HW.eTauOutputWidthSelect)
1655 alg.addgeneric(
'NumResultBits', len(toponames) )
1657 for bitId
in range(len(toponames)):
1658 alg.addvariable(
'MinET1', get_threshold_cut(d.otype1, d.ocut1)*_et_conversion, bitId)
1659 alg.addvariable(
'MinET2', get_threshold_cut(d.otype2, d.ocut2)*_et_conversion, bitId)
1660 alg.addvariable(
'DeltaRMin', d.minDR*d.minDR*_dr_conversion*_dr_conversion, bitId)
1661 alg.addvariable(
'DeltaRMax', d.maxDR[bitId]*d.maxDR[bitId]*_dr_conversion*_dr_conversion, bitId)
1664 tm.registerTopoAlgo(alg)
1669 "otype1" :
"eTAU",
"ocut1": 30,
"olist1":
"abl",
"nleading1": HW.eTauOutputWidthSelect,
"inputwidth1": HW.eTauOutputWidthSelect,
1670 "otype2" :
"eTAU",
"ocut2": 20,
"olist2":
"abl",
"nleading2": HW.eTauOutputWidthSelect,
"inputwidth2": HW.eTauOutputWidthSelect,
1671 "otype3" :
"jJ" ,
"ocut3": 55,
"olist3":
"ab" ,
"nleading3": HW.jJetOutputWidthSelect,
"inputwidth3": HW.jJetOutputWidthSelect,
1672 "drcutmin": 0,
"drcutmax": 28},
1674 "otype1" :
"eTAU",
"ocut1": 30,
"olist1":
"abm",
"nleading1": HW.eTauOutputWidthSelect,
"inputwidth1": HW.eTauOutputWidthSelect,
1675 "otype2" :
"eTAU",
"ocut2": 20,
"olist2":
"abm",
"nleading2": HW.eTauOutputWidthSelect,
"inputwidth2": HW.eTauOutputWidthSelect,
1676 "otype3" :
"jJ" ,
"ocut3": 55,
"olist3":
"ab" ,
"nleading3": HW.jJetOutputWidthSelect,
"inputwidth3": HW.jJetOutputWidthSelect,
1677 "drcutmin": 0,
"drcutmax": 28},
1679 "otype1" :
"eTAU",
"ocut1": 30,
"olist1":
"ab",
"nleading1": HW.eTauOutputWidthSelect,
"inputwidth1": HW.eTauOutputWidthSelect,
1680 "otype2" :
"eTAU",
"ocut2": 20,
"olist2":
"ab",
"nleading2": HW.eTauOutputWidthSelect,
"inputwidth2": HW.eTauOutputWidthSelect,
1681 "otype3" :
"jJ" ,
"ocut3": 55,
"olist3":
"ab" ,
"nleading3": HW.jJetOutputWidthSelect,
"inputwidth3": HW.jJetOutputWidthSelect,
1682 "drcutmin": 4 ,
"drcutmax": 28},
1684 "otype1" :
"eTAU",
"ocut1": 30,
"olist1":
"ab",
"nleading1": HW.eTauOutputWidthSelect,
"inputwidth1": HW.eTauOutputWidthSelect,
1685 "otype2" :
"eTAU",
"ocut2": 20,
"olist2":
"ab",
"nleading2": HW.eTauOutputWidthSelect,
"inputwidth2": HW.eTauOutputWidthSelect,
1686 "otype3" :
"jJ" ,
"ocut3": 55,
"olist3":
"ab" ,
"nleading3": HW.jJetOutputWidthSelect,
"inputwidth3": HW.jJetOutputWidthSelect,
1687 "drcutmin": 4 ,
"drcutmax": 32},
1689 "otype1" :
"eTAU",
"ocut1": 30,
"olist1":
"ab",
"nleading1": HW.eTauOutputWidthSelect,
"inputwidth1": HW.eTauOutputWidthSelect,
1690 "otype2" :
"eTAU",
"ocut2": 20,
"olist2":
"ab",
"nleading2": HW.eTauOutputWidthSelect,
"inputwidth2": HW.eTauOutputWidthSelect,
1691 "otype3" :
"jJ" ,
"ocut3": 55,
"olist3":
"ab" ,
"nleading3": HW.jJetOutputWidthSelect,
"inputwidth3": HW.jJetOutputWidthSelect,
1692 "drcutmin": 10 ,
"drcutmax": 32},
1698 setattr (d, k, x[k])
1699 obj1 =
"-%s%s%s" % (d.otype1, str(d.ocut1), d.olist1)
1700 obj2 =
"-%s%s%s" % (d.otype2, str(d.ocut2), d.olist2)
1701 obj3 =
"%s%s%s" % (d.otype3, str(d.ocut3), d.olist3)
1702 toponame =
"%sDISAMB-%s-%dDR%d%s%s" % ( str(d.disamb)
if d.disamb>0
else "", obj3, d.drcutmin, d.drcutmax, obj1, obj2)
1703 log.debug(
"Define %s", toponame)
1704 inputList = [d.otype1 + d.olist1, d.otype2 + d.olist2, d.otype3 + d.olist3]
1705 alg = AlgConf.DisambiguationDRIncl3( name = toponame, inputs = inputList, outputs = [ toponame ])
1706 alg.addgeneric(
'InputWidth1', d.inputwidth1)
1707 alg.addgeneric(
'InputWidth2', d.inputwidth2)
1708 alg.addgeneric(
'InputWidth3', d.inputwidth3)
1709 alg.addgeneric(
'MaxTob1', d.nleading1)
1710 alg.addgeneric(
'MaxTob2', d.nleading2)
1711 alg.addgeneric(
'MaxTob3', d.nleading3)
1712 alg.addgeneric(
'NumResultBits', 1)
1713 alg.addvariable(
'MinET1', get_threshold_cut(d.otype1, d.ocut1)*_et_conversion, 0)
1714 alg.addvariable(
'MinET2', get_threshold_cut(d.otype2, d.ocut2)*_et_conversion, 0)
1715 alg.addvariable(
'MinET3', get_threshold_cut(d.otype3, d.ocut3)*_et_conversion, 0)
1716 alg.addvariable(
'DisambDRSqrMin', d.drcutmin*d.drcutmin*_dr_conversion*_dr_conversion, 0)
1717 alg.addvariable(
'DisambDRSqrMax', d.drcutmax*d.drcutmax*_dr_conversion*_dr_conversion, 0)
1718 alg.addvariable(
'DisambDRSqr', d.disamb*d.disamb*_dr_conversion*_dr_conversion, 0)
1719 tm.registerTopoAlgo(alg)
1724 {
"minDeta": 0,
"maxDeta": 20,
"otype" :
"jJ",
"ocut1" : 90,
"olist" :
"s",
1725 "nleading1" : 1,
"inputwidth1": HW.jJetOutputWidthSort,
"ocut2" : 0,
"nleading2": 2},
1726 {
"minDeta": 0,
"maxDeta" : 24,
"otype" :
"eTAU" ,
"olist" :
"s",
"inputwidth1": HW.eTauOutputWidthSort,
1727 "ocut1" : 30,
"nleading1": 2,
1728 "ocut2" : 12,
"nleading2": 2},
1734 setattr (d, k, x[k])
1735 toponame =
"%iDETA%i-%s%s%s%s-%s%s%s%s" % (d.minDeta, d.maxDeta,
1736 d.otype, d.ocut1
if d.ocut1 > 0
else "", d.olist, d.nleading1,
1737 d.otype, d.ocut2
if d.ocut2 > 0
else "", d.olist, d.nleading2)
1738 log.debug(
"Define %s", toponame)
1739 inputList = d.otype + d.olist
1740 alg = AlgConf.DeltaEtaIncl1( name = toponame, inputs = inputList, outputs = toponame )
1741 alg.addgeneric(
'InputWidth', d.inputwidth1)
1742 alg.addgeneric(
'MaxTob', d.nleading2)
1743 alg.addgeneric(
'NumResultBits', 1)
1744 alg.addvariable(
'MinET1', get_threshold_cut(d.otype, d.ocut1)*_et_conversion, 0)
1745 alg.addvariable(
'MinET2', get_threshold_cut(d.otype, d.ocut2)*_et_conversion, 0)
1746 alg.addvariable(
'MinDeltaEta', d.minDeta*_eta_conversion, 0)
1747 alg.addvariable(
'MaxDeltaEta', d.maxDeta*_eta_conversion, 0)
1748 tm.registerTopoAlgo(alg)
1754 DPHI_jXE40delay_jJ40s_map = [
1756 "algoname" :
"DPHI_jXE40delay%s_jJ40s",
1759 "InputWidth1": HW.metOutputWidth,
1760 "InputWidth2": HW.jJetOutputWidthSort,
1763 "MinET1" : 40*_et_conversion,
1764 "MinET2" : 40*_et_conversion,
1765 "MinDeltaPhi": 0*_phi_conversion,
1766 "phi_thresholds": [10, 99],
1770 for x
in DPHI_jXE40delay_jJ40s_map:
1775 inputList = [
'jXEs',
'jJs']
1777 for delay1
in d.Delay1:
1779 delaySuffix = str(delay1)
if delay1 > 1
else ""
1780 for bitId
in range(len(d.phi_thresholds)):
1781 toponames.append(
"0DPHI%d-jXE40delay%s-jJ40s" % (d.phi_thresholds[bitId], delaySuffix) )
1783 algName = d.algoname % delaySuffix
1784 alg = AlgConf.DeltaPhiIncl2( name = algName, inputs = inputList, outputs = toponames )
1786 alg.addgeneric(
'InputWidth1', d.InputWidth1)
1787 alg.addgeneric(
'InputWidth2', d.InputWidth2)
1788 alg.addgeneric(
'MaxTob1', d.MaxTob1)
1789 alg.addgeneric(
'MaxTob2', d.MaxTob2)
1790 alg.addgeneric(
'NumResultBits', len(toponames) )
1791 alg.addgeneric(
'Delay1', delay1)
1792 alg.addgeneric(
'Delay2', d.Delay2)
1795 for bitId
in range(len(toponames)):
1796 alg.addvariable(
'MinET1', d.MinET1, bitId)
1797 alg.addvariable(
'MinET2', d.MinET2, bitId)
1798 alg.addvariable(
'MinDeltaPhi', d.MinDeltaPhi, bitId)
1799 alg.addvariable(
'MaxDeltaPhi', d.phi_thresholds[bitId]*_phi_conversion, bitId)
1800 tm.registerTopoAlgo(alg)
1805 "algoname" :
"TeAsymmetry-jTENoSort",
1806 "deltaAbsMin" : [5, 5, 3, 7],
1807 "asymFactor" : [1, 1.05, 1, 0.9],
1808 "asymOffset" : [-5, -24, -5, -7],
1809 "maxTeProduct": [200, 200, 200, 200],
1813 for x
in TeAsymmetry_map:
1818 inputList = [
'jTENoSort_1BC']
1821 for bitId
in range(len(d.deltaAbsMin)):
1822 toponames.append(
"TeAsymmetry_jTENoSort_ParamSet%d" % (bitId))
1824 alg = AlgConf.TeAsymmetry( name = d.algoname, inputs = inputList, outputs = toponames )
1825 alg.addgeneric(
'InputWidth', 1)
1826 alg.addgeneric(
'NumResultBits', len(toponames))
1827 alg.addgeneric(
"Delay", 1)
1829 for bitId
in range(len(toponames)):
1831 alg.addvariable(
'deltaAbsMin', d.deltaAbsMin[bitId]*_et_conversion, bitId)
1832 alg.addvariable(
'asymFactor', d.asymFactor[bitId], bitId)
1833 alg.addvariable(
'asymOffset', d.asymOffset[bitId]*_et_conversion, bitId)
1834 alg.addvariable(
'maxTeProduct', d.maxTeProduct[bitId]*_et_conversion*_et_conversion, bitId)
1835 tm.registerTopoAlgo(alg)
1840 "algoname" :
"TeATIME-jTENoSort",
1841 "teFlavor" : [2,1,2,3],
1842 "combination" : [0,0,0,1],
1843 "nextBcOffset" : [-2.5,10,10,10],
1846 "nextBcFactor" : [0.9,2.5,2.5,2.5]
1850 for x
in TeATIME_map:
1855 inputList = [
'jTENoSort_1BC']
1858 for bitId
in range(4):
1859 toponames.append(
"TeATIME_jTENoSort_ParamSet%d" % (bitId))
1862 alg = AlgConf.TeATIME( name = d.algoname, inputs = inputList, outputs = toponames )
1863 alg.addgeneric(
'InputWidth', 1)
1864 alg.addgeneric(
'NumResultBits', len(toponames))
1865 for bitId
in range(len(d.teFlavor)):
1866 alg.addvariable(
'algoLogic', d.teFlavor[bitId] + ( d.combination[bitId] << 2 ) , bitId)
1867 alg.addvariable(
'nextBcFactor', round(d.nextBcFactor[bitId] * pow(2,8)), bitId)
1868 alg.addvariable(
'nextBcOffset', round(d.nextBcOffset[bitId] * _et_conversion), bitId)
1869 tm.registerTopoAlgo(alg)
1876 "otype1" :
"eTAU",
"ocut1": 20,
"olist1":
"ab",
"nleading1": HW.eTauOutputWidthSelect,
"inputwidth1": HW.eTauOutputWidthSelect,
1877 "otype2" :
"eTAU",
"ocut2": 12,
"olist2":
"ab",
"nleading2": HW.eTauOutputWidthSelect,
"inputwidth2": HW.eTauOutputWidthSelect,
1878 "otype3" :
"jJ",
"ocut3": 40,
"olist3":
"ab",
"nleading3": HW.jJetOutputWidthSelect,
"inputwidth3": HW.jJetOutputWidthSelect,
1879 "drcutmin": 0,
"drcutmax": 10},
1885 setattr (d, k, x[k])
1886 obj1 =
"-%s%s%s" % (d.otype1, str(d.ocut1), d.olist1)
1887 obj2 =
"-%s%s%s" % (d.otype2, str(d.ocut2), d.olist2)
1888 obj3 =
"%s%s%s" % (d.otype3, str(d.ocut3), d.olist3)
1889 toponame =
"%sDISAMB-%s-%dDR%d%s%s" % ( str(d.disamb)
if d.disamb>0
else "", obj3, d.drcutmin, d.drcutmax, obj1, obj2)
1890 log.debug(
"Define %s", toponame)
1891 inputList = [d.otype1 + d.olist1, d.otype2 + d.olist2, d.otype3 + d.olist3]
1892 alg = AlgConf.DisambiguationDRIncl3( name = toponame, inputs = inputList, outputs = [ toponame ])
1893 alg.addgeneric(
'InputWidth1', d.inputwidth1)
1894 alg.addgeneric(
'InputWidth2', d.inputwidth2)
1895 alg.addgeneric(
'InputWidth3', d.inputwidth3)
1896 alg.addgeneric(
'MaxTob1', d.nleading1)
1897 alg.addgeneric(
'MaxTob2', d.nleading2)
1898 alg.addgeneric(
'MaxTob3', d.nleading3)
1899 alg.addgeneric(
'NumResultBits', 1)
1900 alg.addvariable(
'MinET1', get_threshold_cut(d.otype1, d.ocut1)*_et_conversion, 0)
1901 alg.addvariable(
'MinET2', get_threshold_cut(d.otype2, d.ocut2)*_et_conversion, 0)
1902 alg.addvariable(
'MinET3', get_threshold_cut(d.otype3, d.ocut3)*_et_conversion, 0)
1903 alg.addvariable(
'DisambDRSqrMin', d.drcutmin*d.drcutmin*_dr_conversion*_dr_conversion, 0)
1904 alg.addvariable(
'DisambDRSqrMax', d.drcutmax*d.drcutmax*_dr_conversion*_dr_conversion, 0)
1905 alg.addvariable(
'DisambDRSqr', d.disamb*d.disamb*_dr_conversion*_dr_conversion, 0)
1906 tm.registerTopoAlgo(alg)
1910 "algoname":
"ADBDT-MU0s",
1911 "otype1":
"MU",
"olist1":
"s",
"inputwidth1": 6,
"nleading1": 3,
1912 "WPList": [
"Tight",
"Loose"],
1915 "ScoreThreshold": [40, 25]
1922 setattr(d, k, algo[k])
1924 toponames = [f
"ADBDT-{d.nleading1}{d.otype1}0{d.olist1}-{wp}" for wp
in d.WPList]
1926 alg = AlgConf.AnomalyDetectionBDT(
1928 inputs=[d.otype1 + d.olist1],
1931 alg.addgeneric(
'NumResultBits', 2)
1932 alg.addgeneric(
'MaxTob',d.nleading1)
1934 alg.addvariable(
'MinET1',d.MinET1*_et_conversion)
1935 alg.addvariable(
'MinET2',d.MinET2*_et_conversion)
1936 for bitId
in range(len(toponames)):
1937 alg.addvariable(
'ScoreThreshold', d.ScoreThreshold[bitId], bitId)
1939 tm.registerTopoAlgo(alg)
1951 "algoname" :
"ADVAE2A-jJ0s-eTAU0s-MU0s-jXE0s",
1952 "otype1" :
"jJ",
"olist1":
"s",
"inputwidth1": 6,
"nleading1": 6,
1953 "otype2" :
"eTAU",
"olist2":
"s",
"inputwidth2": 6,
"nleading2": 4,
1954 "otype3" :
"MU",
"olist3":
"s",
"inputwidth3": 6,
"nleading3": 4,
1955 "otype4" :
"jXE",
"olist4":
"s",
"inputwidth4": 1,
"nleading4": 1,
1956 "WPList" : [
"Tight",
"Loose"],
1961 "ScaleSqr1" : [128, 128],
1962 "ScaleSqr2" : [128, 128],
1963 "ScaleSqr3" : [128, 128],
1964 "AnomalyScoreThresh" : [1521991, 899489],
1969 setattr (d, k, algo[k])
1972 toponames.append(
"ADVAE2A-%s%s0%s-%s%s0%s-%s%s0%s-%s0%s-%s" %(str(d.nleading1), d.otype1, d.olist1,
1973 str(d.nleading2), d.otype2, d.olist2,
1974 str(d.nleading3), d.otype3, d.olist3,
1977 inputList = [d.otype1 + d.olist1, d.otype2 + d.olist2, d.otype3 + d.olist3, d.otype4 + d.olist4]
1978 alg = AlgConf.ADVAE_2A( name = d.algoname, inputs = inputList, outputs = toponames)
1979 alg.addgeneric(
'InputWidth1', d.inputwidth1)
1980 alg.addgeneric(
'InputWidth2', d.inputwidth2)
1981 alg.addgeneric(
'InputWidth3', d.inputwidth3)
1982 alg.addgeneric(
'InputWidth4', d.inputwidth4)
1983 alg.addgeneric(
'MaxTob1', d.nleading1)
1984 alg.addgeneric(
'MaxTob2', d.nleading2)
1985 alg.addgeneric(
'MaxTob3', d.nleading3)
1986 alg.addgeneric(
'MaxTob4', d.nleading4)
1987 alg.addgeneric(
'NumResultBits', len(toponames))
1988 alg.addgeneric(
'ADVAEVersion', 1)
1989 alg.addvariable(
'MinET1', d.MinET1 * _et_conversion)
1990 alg.addvariable(
'MinET2', d.MinET2 * _et_conversion)
1991 alg.addvariable(
'MinET3', d.MinET3 * _et_conversion)
1992 alg.addvariable(
'MinET4', d.MinET4 * _et_conversion)
1993 for bitId
in range(len(toponames)):
1994 alg.addvariable(
'ScaleSqr1', d.ScaleSqr1[bitId], bitId)
1995 alg.addvariable(
'ScaleSqr2', d.ScaleSqr2[bitId], bitId)
1996 alg.addvariable(
'ScaleSqr3', d.ScaleSqr3[bitId], bitId)
1997 alg.addvariable(
'AnomalyScoreThresh', d.AnomalyScoreThresh[bitId], bitId)
1998 tm.registerTopoAlgo(alg)
2010 "algoname" :
"ARTEMIS-jJ0s-eTAU0s-MU0s-jXE0s",
2011 "otype1" :
"jJ",
"olist1":
"s",
"inputwidth1": 6,
"nleading1": 6,
2012 "otype2" :
"eTAU",
"olist2":
"s",
"inputwidth2": 6,
"nleading2": 4,
2013 "otype3" :
"MU",
"olist3":
"s",
"inputwidth3": 6,
"nleading3": 4,
2014 "otype4" :
"jXE",
"olist4":
"s",
"inputwidth4": 1,
"nleading4": 1,
2015 "WPList" : [
"Tight",
"Loose"],
2027 "AnomalyScoreThresh" : [61440, 42908],
2032 setattr (d, k, algo[k])
2035 toponames.append(
"ARTEMIS-%s%s0%s-%s%s0%s-%s%s0%s-%s0%s-%s" %(str(d.nleading1), d.otype1, d.olist1,
2036 str(d.nleading2), d.otype2, d.olist2,
2037 str(d.nleading3), d.otype3, d.olist3,
2040 inputList = [d.otype1 + d.olist1, d.otype2 + d.olist2, d.otype3 + d.olist3, d.otype4 + d.olist4]
2041 alg = AlgConf.ARTEMIS_2A( name = d.algoname, inputs = inputList, outputs = toponames)
2042 alg.addgeneric(
'InputWidth1', d.inputwidth1)
2043 alg.addgeneric(
'InputWidth2', d.inputwidth2)
2044 alg.addgeneric(
'InputWidth3', d.inputwidth3)
2045 alg.addgeneric(
'InputWidth4', d.inputwidth4)
2046 alg.addgeneric(
'MaxTob1', d.nleading1)
2047 alg.addgeneric(
'MaxTob2', d.nleading2)
2048 alg.addgeneric(
'MaxTob3', d.nleading3)
2049 alg.addgeneric(
'MaxTob4', d.nleading4)
2050 alg.addgeneric(
'NumResultBits', len(toponames))
2051 alg.addgeneric(
'Version', 1)
2052 alg.addvariable(
'MinET1', d.MinET1 * _et_conversion)
2053 alg.addvariable(
'MinET2', d.MinET2 * _et_conversion)
2054 alg.addvariable(
'MinET3', d.MinET3 * _et_conversion)
2055 alg.addvariable(
'MinET4', d.MinET4 * _et_conversion)
2056 alg.addvariable(
'MaxET1', d.MaxET1 * _et_conversion)
2057 alg.addvariable(
'MaxET2', d.MaxET2 * _et_conversion)
2058 alg.addvariable(
'MaxET3', d.MaxET3 * _et_conversion)
2059 alg.addvariable(
'MaxET4', d.MaxET4 * _et_conversion)
2060 alg.addvariable(
'MaxET5', d.MaxET5 * _et_conversion)
2061 alg.addvariable(
'MaxET6', d.MaxET6 * _et_conversion)
2062 alg.addvariable(
'MaxET7', d.MaxET7 * _et_conversion)
2063 for bitId
in range(len(toponames)):
2064 alg.addvariable(
'AnomalyScoreThresh', d.AnomalyScoreThresh[bitId], bitId)
2065 tm.registerTopoAlgo(alg)
2070 "otype1" :
"eTAU",
"ocut1": 20,
"olist1":
"ab",
"nleading1": HW.eTauOutputWidthSelect,
"inputwidth1": HW.eTauOutputWidthSelect,
2071 "otype2" :
"eTAU",
"ocut2": 12,
"olist2":
"ab",
"nleading2": HW.eTauOutputWidthSelect,
"inputwidth2": HW.eTauOutputWidthSelect,
2072 "otype3" :
"jJ",
"ocut3": 30,
"olist3":
"ab",
"nleading3": HW.jJetOutputWidthSelect,
"inputwidth3": HW.jJetOutputWidthSelect,
2073 "drcutmin": 0,
"drcutmax": 10},
2079 setattr (d, k, x[k])
2080 obj1 =
"-%s%s%s" % (d.otype1, str(d.ocut1), d.olist1)
2081 obj2 =
"-%s%s%s" % (d.otype2, str(d.ocut2), d.olist2)
2082 obj3 =
"%s%s%s" % (d.otype3, str(d.ocut3), d.olist3)
2083 toponame =
"%sDISAMB-%s-%dDR%d%s%s" % ( str(d.disamb)
if d.disamb>0
else "", obj3, d.drcutmin, d.drcutmax, obj1, obj2)
2084 log.debug(
"Define %s", toponame)
2085 inputList = [d.otype1 + d.olist1, d.otype2 + d.olist2, d.otype3 + d.olist3]
2086 alg = AlgConf.DisambiguationDRIncl3( name = toponame, inputs = inputList, outputs = [ toponame ])
2087 alg.addgeneric(
'InputWidth1', d.inputwidth1)
2088 alg.addgeneric(
'InputWidth2', d.inputwidth2)
2089 alg.addgeneric(
'InputWidth3', d.inputwidth3)
2090 alg.addgeneric(
'MaxTob1', d.nleading1)
2091 alg.addgeneric(
'MaxTob2', d.nleading2)
2092 alg.addgeneric(
'MaxTob3', d.nleading3)
2093 alg.addgeneric(
'NumResultBits', 1)
2094 alg.addvariable(
'MinET1', get_threshold_cut(d.otype1, d.ocut1)*_et_conversion, 0)
2095 alg.addvariable(
'MinET2', get_threshold_cut(d.otype2, d.ocut2)*_et_conversion, 0)
2096 alg.addvariable(
'MinET3', get_threshold_cut(d.otype3, d.ocut3)*_et_conversion, 0)
2097 alg.addvariable(
'DisambDRSqrMin', d.drcutmin*d.drcutmin*_dr_conversion*_dr_conversion, 0)
2098 alg.addvariable(
'DisambDRSqrMax', d.drcutmax*d.drcutmax*_dr_conversion*_dr_conversion, 0)
2099 alg.addvariable(
'DisambDRSqr', d.disamb*d.disamb*_dr_conversion*_dr_conversion, 0)
2100 tm.registerTopoAlgo(alg)
2104 {
"itemNameMinInvm": 400,
"minInvm": 640 ,
"minDphi": 0,
"maxDphiList": [26, 24, 22, 20],
2105 "otype1" :
"AjJ",
"ocut1" : 60,
"olist1" :
"s",
"nleading1" : 6,
"inputwidth": HW.jJetOutputWidthSort,
2106 "otype2" :
"AjJ",
"ocut2" : 50,
"olist2" :
"s",
"nleading2" : 6 }
2108 for x
in NFFDphimap:
2112 setattr (d, k, x[k])
2113 inputList = [d.otype1 + d.olist1, d.otype2 + d.olist1]
2115 for maxDphi
in d.maxDphiList:
2116 toponames.append (
"%iINVM-%iDPHI%i-%s%s%s%s-%s%s%s%s" % (d.itemNameMinInvm, d.minDphi, maxDphi,
2117 d.otype1, str(d.ocut1) , d.olist1, str(d.nleading1)
if d.olist1==
"s" else "",
2118 d.otype2, str(d.ocut2) , d.olist2, str(d.nleading2)
if d.olist2==
"s" else ""))
2119 alg = AlgConf.InvariantMassDeltaPhiInclusive2( name =
'jINVM_DPHI', inputs = inputList, outputs = toponames)
2120 alg.addgeneric(
'InputWidth1', d.inputwidth)
2121 alg.addgeneric(
'InputWidth2', d.inputwidth)
2122 alg.addgeneric(
'MaxTob1', d.nleading1)
2123 alg.addgeneric(
'MaxTob2', d.nleading2)
2124 alg.addgeneric(
'NumResultBits', len(toponames))
2125 for bitid,maxDphi
in enumerate(d.maxDphiList):
2126 alg.addvariable(
'MinET1', get_threshold_cut(d.otype1, d.ocut1)*_et_conversion , bitid)
2127 alg.addvariable(
'MinET2', get_threshold_cut(d.otype2, d.ocut2)*_et_conversion , bitid)
2128 alg.addvariable(
'MinMSqr', d.minInvm*d.minInvm *_et_conversion*_et_conversion , bitid)
2129 alg.addvariable(
'MaxMSqr', _no_m_upper_threshold , bitid)
2130 alg.addvariable(
'MinDeltaPhi', d.minDphi*_phi_conversion , bitid)
2131 alg.addvariable(
'MaxDeltaPhi', maxDphi*_phi_conversion, bitid)
2132 tm.registerTopoAlgo(alg)
2137 {
"itemNameMinInvm": 400,
"minInvm": 640,
"otype1" :
"AjJ",
"ocut1": 60,
"olist1" :
"s",
"nleading1" : 6,
"inputwidth1": HW.jJetOutputWidthSort,
2138 "otype2" :
"AjJ",
"ocut2": 50,
"olist2" :
"s",
"nleading2" : 6,
"inputwidth2": HW.jJetOutputWidthSort,
"applyEtaCut":1,
2139 "minEta1": 0 ,
"maxEta1": 32 ,
"minEta2": 30 ,
"maxEta2": 49 , },
2145 setattr (d, k, x[k])
2146 obj1 =
"%s%s%sp%sETA%i" % (d.otype1, str(d.ocut1), d.olist1 + (str(d.nleading1)
if d.olist1.find(
's')>=0
else ""),str(d.minEta1)
if d.minEta1>0
else "", d.maxEta1)
2147 obj2 =
"-%s%s%sp%sETA%i" % (d.otype2, str(d.ocut2), d.olist2 + (str(d.nleading2)
if d.olist2.find(
's')>=0
else ""),str(d.minEta2)
if d.minEta2>0
else "", d.maxEta2)
2148 inputList = [d.otype1 + d.olist1, d.otype2 + d.olist2]
2149 toponame =
"%iINVM-%s%s" % (d.itemNameMinInvm, obj1, obj2)
2150 alg = AlgConf.InvariantMassInclusive2( name = toponame, inputs = inputList, outputs = toponame)
2151 alg.addgeneric(
'InputWidth1', d.inputwidth1)
2152 alg.addgeneric(
'InputWidth2', d.inputwidth2)
2153 alg.addgeneric(
'MaxTob1', d.nleading1)
2154 alg.addgeneric(
'MaxTob2', d.nleading2)
2155 alg.addgeneric(
'NumResultBits', 1)
2156 if (d.applyEtaCut>0):
2157 alg.addgeneric(
'ApplyEtaCut', d.applyEtaCut)
2158 alg.addvariable(
'MinET1', get_threshold_cut(d.otype1, d.ocut1)*_et_conversion )
2159 alg.addvariable(
'MinET2', get_threshold_cut(d.otype2, d.ocut2)*_et_conversion )
2160 alg.addvariable(
'MinMSqr', d.minInvm*d.minInvm*_et_conversion*_et_conversion )
2161 alg.addvariable(
'MaxMSqr', _no_m_upper_threshold )
2162 if (d.applyEtaCut>0):
2163 alg.addvariable(
'MinEta1', d.minEta1*_eta_conversion )
2164 alg.addvariable(
'MaxEta1', d.maxEta1*_eta_conversion )
2165 alg.addvariable(
'MinEta2', d.minEta2*_eta_conversion )
2166 alg.addvariable(
'MaxEta2', d.maxEta2*_eta_conversion )
2167 tm.registerTopoAlgo(alg)
2171 {
"itemNameMinInvmList": [300, 400, 500, 700],
"minInvmList": [480, 640, 800, 1100] ,
2172 "otype1" :
"AjJ",
"ocut1" : 60,
"olist1" :
"s",
"nleading1" : 6,
"inputwidth": HW.jJetOutputWidthSort,
2173 "otype2" :
"AjJ",
"ocut2" : 50,
"olist2" :
"s",
"nleading2" : 6 }
2179 setattr (d, k, x[k])
2180 inputList = [d.otype1 + d.olist1, d.otype2 + d.olist1]
2182 for minInvm
in d.itemNameMinInvmList:
2183 toponames.append (
"%iINVM-%s%s%s%s-%s%s%s%s" % (minInvm,
2184 d.otype1, str(d.ocut1) , d.olist1, str(d.nleading1)
if d.olist1==
"s" else "",
2185 d.otype2, str(d.ocut2) , d.olist2, str(d.nleading2)
if d.olist2==
"s" else ""))
2186 alg = AlgConf.InvariantMassInclusive2( name =
'jINVM', inputs = inputList, outputs = toponames)
2187 alg.addgeneric(
'InputWidth1', d.inputwidth)
2188 alg.addgeneric(
'InputWidth2', d.inputwidth)
2189 alg.addgeneric(
'MaxTob1', d.nleading1)
2190 alg.addgeneric(
'MaxTob2', d.nleading2)
2191 alg.addgeneric(
'NumResultBits', len(toponames))
2192 for bitid,minInvm
in enumerate(d.minInvmList):
2193 alg.addvariable(
'MinET1', get_threshold_cut(d.otype1, d.ocut1)*_et_conversion , bitid)
2194 alg.addvariable(
'MinET2', get_threshold_cut(d.otype2, d.ocut2)*_et_conversion , bitid)
2195 alg.addvariable(
'MinMSqr', minInvm*minInvm*_et_conversion*_et_conversion , bitid)
2196 alg.addvariable(
'MaxMSqr', _no_m_upper_threshold , bitid)
2197 tm.registerTopoAlgo(alg)
2201 {
"itemNameMinInvmList": [300, 400, 500, 700],
"minInvmList": [480, 640, 800, 1100] ,
2202 "otype1" :
"jJ",
"ocut1" : 60,
"olist1" :
"s",
"nleading1" : 6,
"inputwidth": HW.jJetOutputWidthSort,
2203 "otype2" :
"AjJ",
"ocut2" : 50,
"olist2" :
"s",
"nleading2" : 6 }
2209 setattr (d, k, x[k])
2210 inputList = [d.otype1 + d.olist1, d.otype2 + d.olist1]
2212 for minInvm
in d.itemNameMinInvmList:
2213 toponames.append (
"%iINVM-%s%s%s%s-%s%s%s%s" % (minInvm,
2214 d.otype1, str(d.ocut1) , d.olist1, str(d.nleading1)
if d.olist1==
"s" else "",
2215 d.otype2, str(d.ocut2) , d.olist2, str(d.nleading2)
if d.olist2==
"s" else ""))
2216 alg = AlgConf.InvariantMassInclusive2( name =
'jINVM_NFF', inputs = inputList, outputs = toponames)
2217 alg.addgeneric(
'InputWidth1', d.inputwidth)
2218 alg.addgeneric(
'InputWidth2', d.inputwidth)
2219 alg.addgeneric(
'MaxTob1', d.nleading1)
2220 alg.addgeneric(
'MaxTob2', d.nleading2)
2221 alg.addgeneric(
'NumResultBits', len(toponames))
2222 for bitid,minInvm
in enumerate(d.minInvmList):
2223 alg.addvariable(
'MinET1', get_threshold_cut(
"CjJ", d.ocut1)*_et_conversion , bitid)
2224 alg.addvariable(
'MinET2', get_threshold_cut(d.otype2, d.ocut2)*_et_conversion , bitid)
2225 alg.addvariable(
'MinMSqr', minInvm*minInvm*_et_conversion*_et_conversion , bitid)
2226 alg.addvariable(
'MaxMSqr', _no_m_upper_threshold , bitid)
2227 tm.registerTopoAlgo(alg)
2234 toponame =
"0INVM10-3MU3Vab"
2235 log.debug(
"Define %s", toponame)
2236 inputList =
'MU3Vab'
2237 alg = AlgConf.InvariantMassThreeTOBsIncl1( name = toponame, inputs = inputList, outputs = toponame )
2238 alg.addgeneric(
'InputWidth', HW.muonOutputWidthSelect)
2239 alg.addgeneric(
'MaxTob', HW.muonOutputWidthSelect)
2240 alg.addgeneric(
'NumResultBits', 1)
2241 alg.addvariable(
'MinET1', 0*_et_conversion)
2242 alg.addvariable(
'MinMSqr', 0*_et_conversion*_et_conversion)
2243 alg.addvariable(
'MaxMSqr', 10*10*_et_conversion*_et_conversion)
2244 tm.registerTopoAlgo(alg)
2246 toponame =
"0INVM10-3MU3VFab"
2247 log.debug(
"Define %s", toponame)
2248 inputList =
'MU3VFab'
2249 alg = AlgConf.InvariantMassThreeTOBsIncl1( name = toponame, inputs = inputList, outputs = toponame )
2250 alg.addgeneric(
'InputWidth', HW.muonOutputWidthSelect)
2251 alg.addgeneric(
'MaxTob', HW.muonOutputWidthSelect)
2252 alg.addgeneric(
'NumResultBits', 1)
2253 alg.addvariable(
'MinET1', 0*_et_conversion)
2254 alg.addvariable(
'MinMSqr', 0*_et_conversion*_et_conversion)
2255 alg.addvariable(
'MaxMSqr', 10*10*_et_conversion*_et_conversion)
2256 tm.registerTopoAlgo(alg)
2259 toponame =
"0INVM10C-3MU3Vab"
2260 log.debug(
"Define %s", toponame)
2261 inputList =
'MU3Vab'
2262 alg = AlgConf.InvariantMassThreeTOBsIncl1Charge( name = toponame, inputs = inputList, outputs = toponame )
2263 alg.addgeneric(
'InputWidth', HW.muonOutputWidthSelect)
2264 alg.addgeneric(
'MaxTob', HW.muonOutputWidthSelect)
2265 alg.addgeneric(
'NumResultBits', 1)
2266 alg.addvariable(
'MinET1', 0*_et_conversion)
2267 alg.addvariable(
'MinMSqr', 0*_et_conversion*_et_conversion)
2268 alg.addvariable(
'MaxMSqr', 10*10*_et_conversion*_et_conversion)
2269 tm.registerTopoAlgo(alg)
2285 INVM_DR_eEM_MU_Map = [{
2286 "algoname":
"INVM_DR_eEM_MU",
2295 "olist2": [
"Fab",
"VFab"],
2297 "ocut2Offset" : [3,0]
2301 for x
in INVM_DR_eEM_MU_Map:
2306 inputList = [d.otype1 + d.olist1, d.otype2 + str(d.ocut2) + d.olist2[1] ]
2308 for bitId
in range(len(d.ocut1)):
2309 obj1 =
"-%s%s%s" % (d.otype1, str( d.ocut1[bitId] ) , d.olist1)
2310 obj2 =
"-%s%s%s" % (d.otype2, str( d.ocut2 + d.ocut2Offset[bitId] ) , d.olist2[bitId])
2311 toponames.append(
"%dINVM%d-%dDR%d%s%s" % ( d.minInvm, d.maxInvm, d.minDR, d.maxDR, obj1, obj2))
2313 alg = AlgConf.InvariantMassInclusiveDeltaRSqrIncl2( name = d.algoname, inputs = inputList, outputs = toponames )
2315 alg.addgeneric(
'InputWidth1', HW.eEmOutputWidthSelect)
2316 alg.addgeneric(
'InputWidth2', HW.muonOutputWidthSelect)
2317 alg.addgeneric(
'MaxTob1', HW.eEmOutputWidthSelect)
2318 alg.addgeneric(
'MaxTob2', HW.muonOutputWidthSelect)
2319 alg.addgeneric(
'ApplyEtaCut', 1)
2321 alg.addgeneric(
'NumResultBits', len(toponames) )
2323 for bitId
in range(len(toponames)):
2324 alg.addvariable(
'MinET1', get_threshold_cut(d.otype1, d.ocut1[bitId])*_et_conversion, bitId)
2325 alg.addvariable(
'MinET2', (d.ocut2 + d.ocut2Offset[bitId])*_et_conversion, bitId)
2326 alg.addvariable(
'MinMSqr', d.minInvm*d.minInvm*_et_conversion*_et_conversion, bitId)
2327 alg.addvariable(
'MaxMSqr', d.maxInvm*d.maxInvm*_et_conversion*_et_conversion, bitId)
2328 alg.addvariable(
'MinEta1', 0*_eta_conversion, bitId)
2329 alg.addvariable(
'MaxEta1', 49*_eta_conversion, bitId)
2330 alg.addvariable(
'MinEta2', 0*_eta_conversion, bitId)
2331 alg.addvariable(
'MaxEta2', 49*_eta_conversion, bitId)
2332 alg.addvariable(
'DeltaRMin', d.minDR*d.minDR*_dr_conversion*_dr_conversion, bitId)
2333 alg.addvariable(
'DeltaRMax', d.maxDR*d.maxDR*_dr_conversion*_dr_conversion, bitId)
2336 tm.registerTopoAlgo(alg)
2352 {
"minInvm": 60 ,
"minDphiList": [4, 25],
"maxDphi": 32,
"minEta2": 25,
"maxEta2": 49,
2353 "inputwidth1": HW.eEmOutputWidthSelect,
"otype1" :
"eEM",
"ocut1" : 18,
"olist1" :
"abm",
2354 "nleading1" : HW.eEmOutputWidthSelect,
"inputwidth2": HW.jEmOutputWidthSort,
"ocut2" : 20,
"ocut3" : 25,
"nleading2" : 6 }
2356 for x
in ZAFBDphimap:
2360 setattr (d, k, x[k])
2361 inputList = [d.otype1 + d.olist1,
'jEMs25ETA49']
2363 for minDphi
in d.minDphiList:
2364 toponames.append (
"%iINVM-%02dDPHI%i-%s%s%s%s-jEM%ss%s%iETA%i" % (d.minInvm, minDphi, d.maxDphi,
2365 d.otype1, str(d.ocut1) , d.olist1, str(d.nleading1)
if d.olist1==
"s" else "",
2366 str(d.ocut3) , str(d.nleading2) , d.minEta2, d.maxEta2))
2367 alg = AlgConf.InvariantMassDeltaPhiInclusive2( name =
'ZAFB_DPHI', inputs = inputList, outputs = toponames)
2368 alg.addgeneric(
'InputWidth1', d.inputwidth1)
2369 alg.addgeneric(
'InputWidth2', d.inputwidth2)
2370 alg.addgeneric(
'MaxTob1', d.nleading1)
2371 alg.addgeneric(
'MaxTob2', d.nleading2)
2372 alg.addgeneric(
'NumResultBits', len(toponames))
2373 alg.addgeneric(
'ApplyEtaCut', 1)
2374 for bitid,minDphi
in enumerate(d.minDphiList):
2375 alg.addvariable(
'MinET1', get_threshold_cut(d.otype1, d.ocut1)*_et_conversion, bitid)
2376 alg.addvariable(
'MinET2', get_threshold_cut(
'jEM', d.ocut3)*_et_conversion, bitid)
2377 alg.addvariable(
'MinMSqr', d.minInvm*d.minInvm*_et_conversion*_et_conversion, bitid)
2378 alg.addvariable(
'MaxMSqr', _no_m_upper_threshold, bitid)
2379 alg.addvariable(
'MinEta1', 0*_eta_conversion, bitid)
2380 alg.addvariable(
'MaxEta1', 49*_eta_conversion, bitid)
2381 alg.addvariable(
'MinEta2', d.minEta2*_eta_conversion, bitid)
2382 alg.addvariable(
'MaxEta2', d.maxEta2*_eta_conversion, bitid)
2383 alg.addvariable(
'MinDeltaPhi', minDphi*_phi_conversion, bitid)
2384 alg.addvariable(
'MaxDeltaPhi', d.maxDphi*_phi_conversion, bitid)
2385 tm.registerTopoAlgo(alg)
2387 inputList = [d.otype1 + d.olist1,
'jEMsm25ETA49']
2389 for minDphi
in d.minDphiList:
2390 toponames.append (
"%iINVM-%02dDPHI%i-%s%s%s%s-jEM%ssm%s%iETA%i" % (d.minInvm, minDphi, d.maxDphi,
2391 d.otype1, str(d.ocut1) , d.olist1, str(d.nleading1)
if d.olist1==
"s" else "",
2392 str(d.ocut2) , str(d.nleading2) , d.minEta2, d.maxEta2))
2393 alg = AlgConf.InvariantMassDeltaPhiInclusive2( name =
'ZAFB_DPHIM', inputs = inputList, outputs = toponames)
2394 alg.addgeneric(
'InputWidth1', d.inputwidth1)
2395 alg.addgeneric(
'InputWidth2', d.inputwidth2)
2396 alg.addgeneric(
'MaxTob1', d.nleading1)
2397 alg.addgeneric(
'MaxTob2', d.nleading2)
2398 alg.addgeneric(
'NumResultBits', len(toponames))
2399 alg.addgeneric(
'ApplyEtaCut', 1)
2400 for bitid,minDphi
in enumerate(d.minDphiList):
2401 alg.addvariable(
'MinET1', get_threshold_cut(d.otype1, d.ocut1)*_et_conversion, bitid)
2402 alg.addvariable(
'MinET2', get_threshold_cut(
'jEM', d.ocut2)*_et_conversion, bitid)
2403 alg.addvariable(
'MinMSqr', d.minInvm*d.minInvm*_et_conversion*_et_conversion, bitid)
2404 alg.addvariable(
'MaxMSqr', _no_m_upper_threshold, bitid)
2405 alg.addvariable(
'MinEta1', 0*_eta_conversion, bitid)
2406 alg.addvariable(
'MaxEta1', 49*_eta_conversion, bitid)
2407 alg.addvariable(
'MinEta2', d.minEta2*_eta_conversion, bitid)
2408 alg.addvariable(
'MaxEta2', d.maxEta2*_eta_conversion, bitid)
2409 alg.addvariable(
'MinDeltaPhi', minDphi*_phi_conversion, bitid)
2410 alg.addvariable(
'MaxDeltaPhi', d.maxDphi*_phi_conversion, bitid)
2411 tm.registerTopoAlgo(alg)
2415 {
"minInvm": 0,
"maxInvm": 70,
"minDphi": 27,
"maxDphi": 32,
"otype":
"eEM",
"olist":
"s",
"ocut1":9,
"nleading1":1,
"ocut2":9,
"nleading2":6,},
2416 {
"minInvm": 0,
"maxInvm": 70,
"minDphi": 27,
"maxDphi": 32,
"otype":
"eEM",
"olist":
"sl",
"ocut1":9,
"nleading1":1,
"ocut2":9,
"nleading2":6,},
2418 for x
in listofalgos:
2422 setattr (d, k, x[k])
2423 toponame =
"%iINVM%i-%iDPHI%i-%s%s%s%s-%s%s%s%s" % (d.minInvm, d.maxInvm, d.minDphi, d.maxDphi, d.otype, str(d.ocut1), d.olist, str(d.nleading1), d.otype, str(d.ocut2), d.olist,str(d.nleading2))
2424 log.debug(
"Define %s", toponame)
2425 inputList = [d.otype + d.olist, d.otype + d.olist]
2426 alg = AlgConf.InvariantMassDeltaPhiInclusive2( name = toponame, inputs = inputList, outputs = toponame )
2427 alg.addgeneric(
'InputWidth1', HW.eEmOutputWidthSort)
2428 alg.addgeneric(
'InputWidth2', HW.eEmOutputWidthSort)
2429 alg.addgeneric(
'MaxTob1', d.nleading1)
2430 alg.addgeneric(
'MaxTob2', d.nleading2)
2431 alg.addgeneric(
'NumResultBits', 1)
2432 alg.addvariable(
'MinET1', get_threshold_cut(d.otype, d.ocut1)*_et_conversion)
2433 alg.addvariable(
'MinET2', get_threshold_cut(d.otype, d.ocut2)*_et_conversion)
2434 alg.addvariable(
'MinMSqr', d.minInvm*d.minInvm*_et_conversion*_et_conversion)
2435 alg.addvariable(
'MaxMSqr', d.maxInvm*d.maxInvm*_et_conversion*_et_conversion)
2436 alg.addgeneric(
'ApplyEtaCut', 1)
2437 alg.addvariable(
'MinEta1', 0*_eta_conversion)
2438 alg.addvariable(
'MaxEta1',49*_eta_conversion)
2439 alg.addvariable(
'MinEta2', 0*_eta_conversion)
2440 alg.addvariable(
'MaxEta2',49*_eta_conversion)
2441 alg.addvariable(
'MinDeltaPhi', d.minDphi*_phi_conversion)
2442 alg.addvariable(
'MaxDeltaPhi', d.maxDphi*_phi_conversion)
2443 tm.registerTopoAlgo(alg)
2449 INVM_DR_2MU3Vab_Map = [
2451 "algoname":
"7INVM22_DR_2MU3Vab",
2456 "otype1" :
"MU3Vab",
2460 for x
in INVM_DR_2MU3Vab_Map:
2465 inputList = d.otype1
2467 for bitId
in range(len(d.minDR)):
2468 toponames.append(
"%iINVM%i-%iDR%i-%i%s" % ( d.minInvm, d.maxInvm,
2469 d.minDR[bitId] , d.maxDR[bitId],
2473 alg = AlgConf.InvariantMassInclusiveDeltaRSqrIncl1( name = d.algoname, inputs = inputList, outputs = toponames)
2474 alg.addgeneric(
'InputWidth', HW.muonOutputWidthSelect)
2475 alg.addgeneric(
'MaxTob', HW.muonOutputWidthSelect)
2476 alg.addgeneric(
'NumResultBits', len(toponames))
2477 for bitId
in range(len(toponames)):
2478 alg.addvariable(
'MinET1', 0*_et_conversion, bitId)
2479 alg.addvariable(
'MinET2', 0*_et_conversion, bitId)
2480 alg.addvariable(
'MinMSqr', d.minInvm*d.minInvm*_et_conversion*_et_conversion, bitId)
2481 alg.addvariable(
'MaxMSqr', d.maxInvm*d.maxInvm*_et_conversion*_et_conversion, bitId)
2482 alg.addvariable(
'DeltaRMin', d.minDR[bitId]*d.minDR[bitId]*_dr_conversion*_dr_conversion, bitId)
2483 alg.addvariable(
'DeltaRMax', d.maxDR[bitId]*d.maxDR[bitId]*_dr_conversion*_dr_conversion, bitId)
2484 tm.registerTopoAlgo(alg)
2492 INVM_DR_2MU3VFab_Map = [
2494 "algoname":
"INVM_DR_2MU3VFab",
2496 "maxInvm" : [9,11,22],
2499 "otype1" :
"MU3VFab",
2503 for x
in INVM_DR_2MU3VFab_Map:
2508 inputList = d.otype1
2510 for bitId
in range(len(d.minDR)):
2511 toponames.append(
"%iINVM%i-%iDR%i-%i%s" % ( d.minInvm[bitId], d.maxInvm[bitId],
2512 d.minDR[bitId] , d.maxDR[bitId],
2516 alg = AlgConf.InvariantMassInclusiveDeltaRSqrIncl1( name = d.algoname, inputs = inputList, outputs = toponames)
2517 alg.addgeneric(
'InputWidth', HW.muonOutputWidthSelect)
2518 alg.addgeneric(
'MaxTob', HW.muonOutputWidthSelect)
2519 alg.addgeneric(
'NumResultBits', len(toponames))
2520 for bitId
in range(len(toponames)):
2521 alg.addvariable(
'MinET1', 0*_et_conversion, bitId)
2522 alg.addvariable(
'MinET2', 0*_et_conversion, bitId)
2523 alg.addvariable(
'MinMSqr', d.minInvm[bitId]*d.minInvm[bitId]*_et_conversion*_et_conversion, bitId)
2524 alg.addvariable(
'MaxMSqr', d.maxInvm[bitId]*d.maxInvm[bitId]*_et_conversion*_et_conversion, bitId)
2525 alg.addvariable(
'DeltaRMin', d.minDR[bitId]*d.minDR[bitId]*_dr_conversion*_dr_conversion, bitId)
2526 alg.addvariable(
'DeltaRMax', d.maxDR[bitId]*d.maxDR[bitId]*_dr_conversion*_dr_conversion, bitId)
2527 tm.registerTopoAlgo(alg)
2533 {
"minInvm": 2,
"maxInvm": 9,
"minDr": 0,
"maxDr": 15,
"mult": 1,
"otype1" :
"MU5VFab",
"otype2":
"MU3Vab", },
2534 {
"minInvm": 8,
"maxInvm": 15,
"minDr": 0,
"maxDr": 22,
"mult": 1,
"otype1" :
"MU5VFab",
"otype2":
"MU3Vab", },
2535 {
"minInvm": 2,
"maxInvm": 9,
"minDr": 0,
"maxDr": 15,
"mult": 2,
"otype1" :
"MU3Vab",
"otype2":
"", },
2538 {
"minInvm": 0,
"maxInvm": 16,
"minDr": 20,
"maxDr": 99,
"mult": 2,
"otype1" :
"MU3Vab",
"otype2":
"",},
2539 {
"minInvm": 0,
"maxInvm": 16,
"minDr": 15,
"maxDr": 99,
"mult": 2,
"otype1" :
"MU3Vab",
"otype2":
"",},
2540 {
"minInvm": 8,
"maxInvm": 15,
"minDr": 20,
"maxDr": 99,
"mult": 2,
"otype1" :
"MU3Vab",
"otype2":
"",},
2541 {
"minInvm": 8,
"maxInvm": 15,
"minDr": 15,
"maxDr": 99,
"mult": 2,
"otype1" :
"MU3Vab",
"otype2":
"",},
2543 {
"minInvm": 7,
"maxInvm": 22,
"minDr": 0,
"maxDr": 20,
"mult": 2,
"otype1" :
"MU3VFab",
"otype2":
"",},
2545 {
"minInvm": 8,
"maxInvm": 15,
"minDr": 0,
"maxDr": 22,
"mult": 1,
"otype1" :
"CMU5VFab",
"otype2":
"CMU3Vab",},
2547 {
"minInvm": 7,
"maxInvm": 14,
"minDr": 0,
"maxDr": 25,
"mult": 1,
"otype1" :
"MU5VFab",
"otype2":
"MU3Vab", },
2548 {
"minInvm": 7,
"maxInvm": 11,
"minDr": 25,
"maxDr": 99,
"mult": 2,
"otype1" :
"MU3Vab",
"otype2":
"",},
2549 {
"minInvm": 7,
"maxInvm": 14,
"minDr": 0,
"maxDr": 25,
"mult": 1,
"otype1" :
"MU5VFab",
"otype2":
"MU3VFab", },
2553 for x
in listofalgos:
2557 setattr (d, k, x[k])
2558 obj1 =
"%s%s" % ((str(d.mult)
if d.mult>1
else ""), d.otype1)
2559 obj2 =
"-%s" % (d.otype2)
2560 toponame =
"%iINVM%i-%iDR%i-%s%s" % (d.minInvm, d.maxInvm, d.minDr, d.maxDr, obj1,
"" if d.mult>1
else obj2)
2561 log.debug(
"Define %s", toponame)
2562 inputList = [d.otype1]
if (d.mult>1)
else [d.otype1, d.otype2]
2563 algoname = AlgConf.InvariantMassInclusiveDeltaRSqrIncl1
if (d.mult>1)
else AlgConf.InvariantMassInclusiveDeltaRSqrIncl2
2564 alg = algoname( name = toponame, inputs = inputList, outputs = [ toponame ])
2566 alg.addgeneric(
'InputWidth', HW.muonOutputWidthSelect)
2567 alg.addgeneric(
'MaxTob', HW.muonOutputWidthSelect)
2569 alg.addgeneric(
'InputWidth1', HW.muonOutputWidthSelect)
2570 alg.addgeneric(
'InputWidth2', HW.muonOutputWidthSelect)
2571 alg.addgeneric(
'MaxTob1', HW.muonOutputWidthSelect)
2572 alg.addgeneric(
'MaxTob2', HW.muonOutputWidthSelect)
2573 alg.addgeneric(
'NumResultBits', 1)
2574 alg.addvariable(
'MinET1', 0*_et_conversion)
2575 alg.addvariable(
'MinET2', 0*_et_conversion)
2576 alg.addvariable(
'MinMSqr', d.minInvm*d.minInvm*_et_conversion*_et_conversion)
2577 alg.addvariable(
'MaxMSqr', d.maxInvm*d.maxInvm*_et_conversion*_et_conversion)
2578 alg.addvariable(
'DeltaRMin', d.minDr*d.minDr*_dr_conversion*_dr_conversion)
2579 alg.addvariable(
'DeltaRMax', d.maxDr*d.maxDr*_dr_conversion*_dr_conversion)
2580 tm.registerTopoAlgo(alg)
2584 {
"minInvm": 2,
"maxInvm": 9,
"minDr": 0,
"maxDr": 15,
"mult": 1,
"otype1" :
"MU5VFab",
"otype2":
"MU3Vab",},
2585 {
"minInvm": 8,
"maxInvm": 15,
"minDr": 20,
"maxDr": 99,
"mult": 2,
"otype1" :
"MU3Vab",
"otype2":
"",},
2587 for x
in listofalgos:
2591 setattr (d, k, x[k])
2592 obj1 =
"%s%s" % ((str(d.mult)
if d.mult>1
else ""), d.otype1)
2593 obj2 =
"-%s" % (d.otype2)
2594 toponame =
"%iINVM%i-%iDR%i-C-%s%s" % (d.minInvm, d.maxInvm, d.minDr, d.maxDr, obj1,
"" if d.mult>1
else obj2)
2595 log.debug(
"Define %s", toponame)
2596 inputList = [d.otype1]
if (d.mult>1)
else [d.otype1, d.otype2]
2597 algoname = AlgConf.InvariantMassInclusiveDeltaRSqrIncl1Charge
if (d.mult>1)
else AlgConf.InvariantMassInclusiveDeltaRSqrIncl2Charge
2598 alg = algoname( name = toponame, inputs = inputList, outputs = [ toponame ])
2600 alg.addgeneric(
'InputWidth', HW.muonOutputWidthSelect)
2601 alg.addgeneric(
'MaxTob', HW.muonOutputWidthSelect)
2603 alg.addgeneric(
'InputWidth1', HW.muonOutputWidthSelect)
2604 alg.addgeneric(
'InputWidth2', HW.muonOutputWidthSelect)
2605 alg.addgeneric(
'MaxTob1', HW.muonOutputWidthSelect)
2606 alg.addgeneric(
'MaxTob2', HW.muonOutputWidthSelect)
2607 alg.addgeneric(
'NumResultBits', 1)
2608 alg.addvariable(
'MinET1', 0*_et_conversion)
2609 alg.addvariable(
'MinET2', 0*_et_conversion)
2610 alg.addvariable(
'MinMSqr', d.minInvm*d.minInvm*_et_conversion*_et_conversion)
2611 alg.addvariable(
'MaxMSqr', d.maxInvm*d.maxInvm*_et_conversion*_et_conversion)
2612 alg.addvariable(
'DeltaRMin', d.minDr*d.minDr*_dr_conversion*_dr_conversion)
2613 alg.addvariable(
'DeltaRMax', d.maxDr*d.maxDr*_dr_conversion*_dr_conversion)
2614 tm.registerTopoAlgo(alg)
2624 {
"minDphi": 23,
"maxDphi": 32,
"mult": 2,
"otype1" :
"eEM",
2625 "ocut1": 1,
"olist1":
"s",
"nleading1": HW.eEmOutputWidthSort,
"minET1":0.9,
"otype2" :
"",
"minET2":0.8},
2626 {
"minDphi": 26,
"maxDphi": 32,
"mult": 2,
"otype1" :
"eTAU",
2627 "ocut1": 1,
"olist1":
"s",
"nleading1": HW.eTauOutputWidthSort,
"minET1":0.8,
"otype2" :
"",
"minET2":0.8},
2628 {
"minDphi": 23,
"maxDphi": 32,
"mult": 2,
"otype1" :
"jTAU",
2629 "ocut1": 1,
"olist1":
"s",
"nleading1": HW.jTauOutputWidthSort,
"minET1":1.4,
"otype2" :
"",
"minET2":1.4},
2635 setattr (d, k, x[k])
2636 obj =
"%s" % (str(d.mult)+d.otype1+str(d.ocut1)+str(d.olist1))
2637 toponame =
"%sDPHI%s-%s" % (d.minDphi, d.maxDphi, obj)
2638 log.debug(
"Define %s", toponame)
2639 inputList = [d.otype1+d.olist1]
2640 algoname = AlgConf.DeltaPhiIncl1
2641 alg = algoname( name = toponame, inputs = inputList, outputs = [ toponame ])
2642 alg.addgeneric(
'NumResultBits', 1)
2643 alg.addgeneric(
'InputWidth', d.nleading1)
2644 alg.addgeneric(
'MaxTob', d.nleading1)
2645 alg.addvariable(
'MinET1', d.minET1*_et_conversion)
2646 alg.addvariable(
'MinET2', d.minET2*_et_conversion)
2647 alg.addvariable(
'MinDeltaPhi', d.minDphi*_phi_conversion)
2648 alg.addvariable(
'MaxDeltaPhi', d.maxDphi*_phi_conversion)
2649 tm.registerTopoAlgo(alg)
2652 from dataclasses
import dataclass
2655 class InvMassDPhiSumETAlgoParams:
2656 """ Parameters for InvariantMassDeltaPhiInclusive1 and InvariantMassDeltaPhiSumEtInclusive1 Topo algorithms """
2659 DeltaPhiMin: int = 23
2660 DeltaPhiMax: int = 32
2661 MinInvMassSq: float = 0
2662 MaxInvMassSq: float = 1000 ** 2
2664 MaxSumEt: float = 1000
2666 def AddInvMassDPhiSumETAlgos(otype: str, nleading, list_of_algos: list[InvMassDPhiSumETAlgoParams]):
2667 for x
in list_of_algos:
2669 is_InvMass_set = x.MinInvMassSq != 0
or x.MaxInvMassSq != 1000 ** 2
2670 is_SumEt_set = x.MinSumEt != 0
or x.MaxSumEt != 1000
2671 algoname = AlgConf.InvariantMassDeltaPhiSumEtInclusive1
if is_SumEt_set
else AlgConf.InvariantMassDeltaPhiInclusive1
2673 if float(x.MinEt1) != int(x.MinEt1):
2674 obj = f
'2{otype}0{round(x.MinEt1 * 10)}s'
2676 obj = f
'2{otype}{round(x.MinEt1)}s'
2677 toponame = f
'{x.DeltaPhiMin}DPHI{x.DeltaPhiMax}-{obj}'
2680 toponame = f
'{x.MinSumEt}SUM{x.MaxSumEt}-{toponame}'
2682 if float(x.MinInvMassSq) != int(x.MinInvMassSq)
or float(x.MaxInvMassSq) != int(x.MaxInvMassSq):
2683 toponame = f
'{round(x.MinInvMassSq * 10)}INVM{round(x.MaxInvMassSq * 10)}-{toponame}'
2685 toponame = f
'{x.MinInvMassSq}INVM{x.MaxInvMassSq}-{toponame}'
2686 log.debug(
'Define %s', toponame)
2688 alg = algoname(name=toponame, inputs=[f
'{otype}s'], outputs=[toponame])
2689 alg.addgeneric(
'NumResultBits', 1)
2690 alg.addgeneric(
'InputWidth', nleading)
2691 alg.addgeneric(
'MaxTob', nleading)
2692 alg.addvariable(
'MinET1', x.MinEt1 * _et_conversion)
2693 alg.addvariable(
'MinET2', x.MinEt2 * _et_conversion)
2694 alg.addvariable(
'MinMSqr', x.MinInvMassSq * (_et_conversion ** 2))
2695 alg.addvariable(
'MaxMSqr', x.MaxInvMassSq * (_et_conversion ** 2))
2696 alg.addvariable(
'MinDeltaPhi', x.DeltaPhiMin * _phi_conversion)
2697 alg.addvariable(
'MaxDeltaPhi', x.DeltaPhiMax * _phi_conversion)
2700 alg.addvariable(
'MinSumEt', x.MinSumEt * _et_conversion)
2701 alg.addvariable(
'MaxSumEt', x.MaxSumEt * _et_conversion)
2702 tm.registerTopoAlgo(alg)
2706 InvMassDPhiSumETAlgoParams(MinEt1=0.7, MinEt2=0.7, DeltaPhiMin=24, MinInvMassSq=2.3, MaxInvMassSq=200 ** 2),
2707 InvMassDPhiSumETAlgoParams(MinEt1=0.7, MinEt2=0.7, DeltaPhiMin=24, MinInvMassSq=2.8, MaxInvMassSq=200 ** 2),
2708 InvMassDPhiSumETAlgoParams(MinEt1=0.8, MinEt2=0.8, DeltaPhiMin=25, MinInvMassSq=2.3, MaxInvMassSq=200 ** 2),
2709 InvMassDPhiSumETAlgoParams(MinEt1=0.7, MinEt2=0.7, DeltaPhiMin=25, MinInvMassSq=3.3, MaxInvMassSq=200 ** 2),
2710 InvMassDPhiSumETAlgoParams(MinEt1=0.7, MinEt2=0.7, DeltaPhiMin=27, MinInvMassSq=2.3, MaxInvMassSq=200 ** 2),
2712 AddInvMassDPhiSumETAlgos(
'eTAU', HW.eTauOutputWidthSort, algo_list)
2716 AddInvMassDPhiSumETAlgos(
'jJ', HW.jJetOutputWidthSort, algo_list)
2719 Algo = namedtuple(
'Algo', [
'dPhiMin',
'dPhiMax',
'otype',
'olist',
'ocut1',
'ocut2',
'nTOB'])
2721 Algo(dPhiMin=30, dPhiMax=32, otype=
'eTAU', olist=
's', ocut1=50, ocut2=50, nTOB=HW.eTauOutputWidthSort),
2724 name = f
'{x.dPhiMin}DPHI{x.dPhiMax}-'
2725 name += f
'2{x.otype}{x.ocut1}{x.olist}' if x.ocut1 == x.ocut2
else f
'{x.otype}{x.ocut1}{x.olist}-{x.otype}{x.ocut2}{x.olist}'
2727 alg = AlgConf.DeltaPhiIncl1(name=name, inputs=[x.otype+x.olist], outputs=[name])
2728 alg.addgeneric(
'NumResultBits', 1)
2729 alg.addgeneric(
'InputWidth', x.nTOB)
2730 alg.addgeneric(
'MaxTob', x.nTOB)
2731 alg.addvariable(
'MinET1', get_threshold_cut(x.otype, x.ocut1)*_et_conversion)
2732 alg.addvariable(
'MinET2', get_threshold_cut(x.otype, x.ocut2)*_et_conversion)
2733 alg.addvariable(
'MinDeltaPhi', x.dPhiMin*_phi_conversion)
2734 alg.addvariable(
'MaxDeltaPhi', x.dPhiMax*_phi_conversion)
2735 tm.registerTopoAlgo(alg)