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, 1333204],
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"],
2024 "AnomalyScoreThresh" : [1521991, 1333204],
2029 setattr (d, k, algo[k])
2032 toponames.append(
"ARTEMIS-%s%s0%s-%s%s0%s-%s%s0%s-%s0%s-%s" %(str(d.nleading1), d.otype1, d.olist1,
2033 str(d.nleading2), d.otype2, d.olist2,
2034 str(d.nleading3), d.otype3, d.olist3,
2037 inputList = [d.otype1 + d.olist1, d.otype2 + d.olist2, d.otype3 + d.olist3, d.otype4 + d.olist4]
2038 alg = AlgConf.ARTEMIS_2A( name = d.algoname, inputs = inputList, outputs = toponames)
2039 alg.addgeneric(
'InputWidth1', d.inputwidth1)
2040 alg.addgeneric(
'InputWidth2', d.inputwidth2)
2041 alg.addgeneric(
'InputWidth3', d.inputwidth3)
2042 alg.addgeneric(
'InputWidth4', d.inputwidth4)
2043 alg.addgeneric(
'MaxTob1', d.nleading1)
2044 alg.addgeneric(
'MaxTob2', d.nleading2)
2045 alg.addgeneric(
'MaxTob3', d.nleading3)
2046 alg.addgeneric(
'MaxTob4', d.nleading4)
2047 alg.addgeneric(
'NumResultBits', len(toponames))
2048 alg.addgeneric(
'Version', 1)
2049 alg.addvariable(
'MinET1', d.MinET1 * _et_conversion)
2050 alg.addvariable(
'MinET2', d.MinET2 * _et_conversion)
2051 alg.addvariable(
'MinET3', d.MinET3 * _et_conversion)
2052 alg.addvariable(
'MinET4', d.MinET4 * _et_conversion)
2053 alg.addvariable(
'MaxET1', d.MinET1 * _et_conversion)
2054 alg.addvariable(
'MaxET2', d.MinET2 * _et_conversion)
2055 alg.addvariable(
'MaxET3', d.MinET3 * _et_conversion)
2056 alg.addvariable(
'MaxET4', d.MinET4 * _et_conversion)
2057 for bitId
in range(len(toponames)):
2058 alg.addvariable(
'AnomalyScoreThresh', d.AnomalyScoreThresh[bitId], bitId)
2059 tm.registerTopoAlgo(alg)
2064 "otype1" :
"eTAU",
"ocut1": 20,
"olist1":
"ab",
"nleading1": HW.eTauOutputWidthSelect,
"inputwidth1": HW.eTauOutputWidthSelect,
2065 "otype2" :
"eTAU",
"ocut2": 12,
"olist2":
"ab",
"nleading2": HW.eTauOutputWidthSelect,
"inputwidth2": HW.eTauOutputWidthSelect,
2066 "otype3" :
"jJ",
"ocut3": 30,
"olist3":
"ab",
"nleading3": HW.jJetOutputWidthSelect,
"inputwidth3": HW.jJetOutputWidthSelect,
2067 "drcutmin": 0,
"drcutmax": 10},
2073 setattr (d, k, x[k])
2074 obj1 =
"-%s%s%s" % (d.otype1, str(d.ocut1), d.olist1)
2075 obj2 =
"-%s%s%s" % (d.otype2, str(d.ocut2), d.olist2)
2076 obj3 =
"%s%s%s" % (d.otype3, str(d.ocut3), d.olist3)
2077 toponame =
"%sDISAMB-%s-%dDR%d%s%s" % ( str(d.disamb)
if d.disamb>0
else "", obj3, d.drcutmin, d.drcutmax, obj1, obj2)
2078 log.debug(
"Define %s", toponame)
2079 inputList = [d.otype1 + d.olist1, d.otype2 + d.olist2, d.otype3 + d.olist3]
2080 alg = AlgConf.DisambiguationDRIncl3( name = toponame, inputs = inputList, outputs = [ toponame ])
2081 alg.addgeneric(
'InputWidth1', d.inputwidth1)
2082 alg.addgeneric(
'InputWidth2', d.inputwidth2)
2083 alg.addgeneric(
'InputWidth3', d.inputwidth3)
2084 alg.addgeneric(
'MaxTob1', d.nleading1)
2085 alg.addgeneric(
'MaxTob2', d.nleading2)
2086 alg.addgeneric(
'MaxTob3', d.nleading3)
2087 alg.addgeneric(
'NumResultBits', 1)
2088 alg.addvariable(
'MinET1', get_threshold_cut(d.otype1, d.ocut1)*_et_conversion, 0)
2089 alg.addvariable(
'MinET2', get_threshold_cut(d.otype2, d.ocut2)*_et_conversion, 0)
2090 alg.addvariable(
'MinET3', get_threshold_cut(d.otype3, d.ocut3)*_et_conversion, 0)
2091 alg.addvariable(
'DisambDRSqrMin', d.drcutmin*d.drcutmin*_dr_conversion*_dr_conversion, 0)
2092 alg.addvariable(
'DisambDRSqrMax', d.drcutmax*d.drcutmax*_dr_conversion*_dr_conversion, 0)
2093 alg.addvariable(
'DisambDRSqr', d.disamb*d.disamb*_dr_conversion*_dr_conversion, 0)
2094 tm.registerTopoAlgo(alg)
2098 {
"itemNameMinInvm": 400,
"minInvm": 640 ,
"minDphi": 0,
"maxDphiList": [26, 24, 22, 20],
2099 "otype1" :
"AjJ",
"ocut1" : 60,
"olist1" :
"s",
"nleading1" : 6,
"inputwidth": HW.jJetOutputWidthSort,
2100 "otype2" :
"AjJ",
"ocut2" : 50,
"olist2" :
"s",
"nleading2" : 6 }
2102 for x
in NFFDphimap:
2106 setattr (d, k, x[k])
2107 inputList = [d.otype1 + d.olist1, d.otype2 + d.olist1]
2109 for maxDphi
in d.maxDphiList:
2110 toponames.append (
"%iINVM-%iDPHI%i-%s%s%s%s-%s%s%s%s" % (d.itemNameMinInvm, d.minDphi, maxDphi,
2111 d.otype1, str(d.ocut1) , d.olist1, str(d.nleading1)
if d.olist1==
"s" else "",
2112 d.otype2, str(d.ocut2) , d.olist2, str(d.nleading2)
if d.olist2==
"s" else ""))
2113 alg = AlgConf.InvariantMassDeltaPhiInclusive2( name =
'jINVM_DPHI', inputs = inputList, outputs = toponames)
2114 alg.addgeneric(
'InputWidth1', d.inputwidth)
2115 alg.addgeneric(
'InputWidth2', d.inputwidth)
2116 alg.addgeneric(
'MaxTob1', d.nleading1)
2117 alg.addgeneric(
'MaxTob2', d.nleading2)
2118 alg.addgeneric(
'NumResultBits', len(toponames))
2119 for bitid,maxDphi
in enumerate(d.maxDphiList):
2120 alg.addvariable(
'MinET1', get_threshold_cut(d.otype1, d.ocut1)*_et_conversion , bitid)
2121 alg.addvariable(
'MinET2', get_threshold_cut(d.otype2, d.ocut2)*_et_conversion , bitid)
2122 alg.addvariable(
'MinMSqr', d.minInvm*d.minInvm *_et_conversion*_et_conversion , bitid)
2123 alg.addvariable(
'MaxMSqr', _no_m_upper_threshold , bitid)
2124 alg.addvariable(
'MinDeltaPhi', d.minDphi*_phi_conversion , bitid)
2125 alg.addvariable(
'MaxDeltaPhi', maxDphi*_phi_conversion, bitid)
2126 tm.registerTopoAlgo(alg)
2131 {
"itemNameMinInvm": 400,
"minInvm": 640,
"otype1" :
"AjJ",
"ocut1": 60,
"olist1" :
"s",
"nleading1" : 6,
"inputwidth1": HW.jJetOutputWidthSort,
2132 "otype2" :
"AjJ",
"ocut2": 50,
"olist2" :
"s",
"nleading2" : 6,
"inputwidth2": HW.jJetOutputWidthSort,
"applyEtaCut":1,
2133 "minEta1": 0 ,
"maxEta1": 32 ,
"minEta2": 30 ,
"maxEta2": 49 , },
2139 setattr (d, k, x[k])
2140 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)
2141 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)
2142 inputList = [d.otype1 + d.olist1, d.otype2 + d.olist2]
2143 toponame =
"%iINVM-%s%s" % (d.itemNameMinInvm, obj1, obj2)
2144 alg = AlgConf.InvariantMassInclusive2( name = toponame, inputs = inputList, outputs = toponame)
2145 alg.addgeneric(
'InputWidth1', d.inputwidth1)
2146 alg.addgeneric(
'InputWidth2', d.inputwidth2)
2147 alg.addgeneric(
'MaxTob1', d.nleading1)
2148 alg.addgeneric(
'MaxTob2', d.nleading2)
2149 alg.addgeneric(
'NumResultBits', 1)
2150 if (d.applyEtaCut>0):
2151 alg.addgeneric(
'ApplyEtaCut', d.applyEtaCut)
2152 alg.addvariable(
'MinET1', get_threshold_cut(d.otype1, d.ocut1)*_et_conversion )
2153 alg.addvariable(
'MinET2', get_threshold_cut(d.otype2, d.ocut2)*_et_conversion )
2154 alg.addvariable(
'MinMSqr', d.minInvm*d.minInvm*_et_conversion*_et_conversion )
2155 alg.addvariable(
'MaxMSqr', _no_m_upper_threshold )
2156 if (d.applyEtaCut>0):
2157 alg.addvariable(
'MinEta1', d.minEta1*_eta_conversion )
2158 alg.addvariable(
'MaxEta1', d.maxEta1*_eta_conversion )
2159 alg.addvariable(
'MinEta2', d.minEta2*_eta_conversion )
2160 alg.addvariable(
'MaxEta2', d.maxEta2*_eta_conversion )
2161 tm.registerTopoAlgo(alg)
2165 {
"itemNameMinInvmList": [300, 400, 500, 700],
"minInvmList": [480, 640, 800, 1100] ,
2166 "otype1" :
"AjJ",
"ocut1" : 60,
"olist1" :
"s",
"nleading1" : 6,
"inputwidth": HW.jJetOutputWidthSort,
2167 "otype2" :
"AjJ",
"ocut2" : 50,
"olist2" :
"s",
"nleading2" : 6 }
2173 setattr (d, k, x[k])
2174 inputList = [d.otype1 + d.olist1, d.otype2 + d.olist1]
2176 for minInvm
in d.itemNameMinInvmList:
2177 toponames.append (
"%iINVM-%s%s%s%s-%s%s%s%s" % (minInvm,
2178 d.otype1, str(d.ocut1) , d.olist1, str(d.nleading1)
if d.olist1==
"s" else "",
2179 d.otype2, str(d.ocut2) , d.olist2, str(d.nleading2)
if d.olist2==
"s" else ""))
2180 alg = AlgConf.InvariantMassInclusive2( name =
'jINVM', inputs = inputList, outputs = toponames)
2181 alg.addgeneric(
'InputWidth1', d.inputwidth)
2182 alg.addgeneric(
'InputWidth2', d.inputwidth)
2183 alg.addgeneric(
'MaxTob1', d.nleading1)
2184 alg.addgeneric(
'MaxTob2', d.nleading2)
2185 alg.addgeneric(
'NumResultBits', len(toponames))
2186 for bitid,minInvm
in enumerate(d.minInvmList):
2187 alg.addvariable(
'MinET1', get_threshold_cut(d.otype1, d.ocut1)*_et_conversion , bitid)
2188 alg.addvariable(
'MinET2', get_threshold_cut(d.otype2, d.ocut2)*_et_conversion , bitid)
2189 alg.addvariable(
'MinMSqr', minInvm*minInvm*_et_conversion*_et_conversion , bitid)
2190 alg.addvariable(
'MaxMSqr', _no_m_upper_threshold , bitid)
2191 tm.registerTopoAlgo(alg)
2195 {
"itemNameMinInvmList": [300, 400, 500, 700],
"minInvmList": [480, 640, 800, 1100] ,
2196 "otype1" :
"jJ",
"ocut1" : 60,
"olist1" :
"s",
"nleading1" : 6,
"inputwidth": HW.jJetOutputWidthSort,
2197 "otype2" :
"AjJ",
"ocut2" : 50,
"olist2" :
"s",
"nleading2" : 6 }
2203 setattr (d, k, x[k])
2204 inputList = [d.otype1 + d.olist1, d.otype2 + d.olist1]
2206 for minInvm
in d.itemNameMinInvmList:
2207 toponames.append (
"%iINVM-%s%s%s%s-%s%s%s%s" % (minInvm,
2208 d.otype1, str(d.ocut1) , d.olist1, str(d.nleading1)
if d.olist1==
"s" else "",
2209 d.otype2, str(d.ocut2) , d.olist2, str(d.nleading2)
if d.olist2==
"s" else ""))
2210 alg = AlgConf.InvariantMassInclusive2( name =
'jINVM_NFF', inputs = inputList, outputs = toponames)
2211 alg.addgeneric(
'InputWidth1', d.inputwidth)
2212 alg.addgeneric(
'InputWidth2', d.inputwidth)
2213 alg.addgeneric(
'MaxTob1', d.nleading1)
2214 alg.addgeneric(
'MaxTob2', d.nleading2)
2215 alg.addgeneric(
'NumResultBits', len(toponames))
2216 for bitid,minInvm
in enumerate(d.minInvmList):
2217 alg.addvariable(
'MinET1', get_threshold_cut(
"CjJ", d.ocut1)*_et_conversion , bitid)
2218 alg.addvariable(
'MinET2', get_threshold_cut(d.otype2, d.ocut2)*_et_conversion , bitid)
2219 alg.addvariable(
'MinMSqr', minInvm*minInvm*_et_conversion*_et_conversion , bitid)
2220 alg.addvariable(
'MaxMSqr', _no_m_upper_threshold , bitid)
2221 tm.registerTopoAlgo(alg)
2228 toponame =
"0INVM10-3MU3Vab"
2229 log.debug(
"Define %s", toponame)
2230 inputList =
'MU3Vab'
2231 alg = AlgConf.InvariantMassThreeTOBsIncl1( name = toponame, inputs = inputList, outputs = toponame )
2232 alg.addgeneric(
'InputWidth', HW.muonOutputWidthSelect)
2233 alg.addgeneric(
'MaxTob', HW.muonOutputWidthSelect)
2234 alg.addgeneric(
'NumResultBits', 1)
2235 alg.addvariable(
'MinET1', 0*_et_conversion)
2236 alg.addvariable(
'MinMSqr', 0*_et_conversion*_et_conversion)
2237 alg.addvariable(
'MaxMSqr', 10*10*_et_conversion*_et_conversion)
2238 tm.registerTopoAlgo(alg)
2240 toponame =
"0INVM10-3MU3VFab"
2241 log.debug(
"Define %s", toponame)
2242 inputList =
'MU3VFab'
2243 alg = AlgConf.InvariantMassThreeTOBsIncl1( name = toponame, inputs = inputList, outputs = toponame )
2244 alg.addgeneric(
'InputWidth', HW.muonOutputWidthSelect)
2245 alg.addgeneric(
'MaxTob', HW.muonOutputWidthSelect)
2246 alg.addgeneric(
'NumResultBits', 1)
2247 alg.addvariable(
'MinET1', 0*_et_conversion)
2248 alg.addvariable(
'MinMSqr', 0*_et_conversion*_et_conversion)
2249 alg.addvariable(
'MaxMSqr', 10*10*_et_conversion*_et_conversion)
2250 tm.registerTopoAlgo(alg)
2253 toponame =
"0INVM10C-3MU3Vab"
2254 log.debug(
"Define %s", toponame)
2255 inputList =
'MU3Vab'
2256 alg = AlgConf.InvariantMassThreeTOBsIncl1Charge( name = toponame, inputs = inputList, outputs = toponame )
2257 alg.addgeneric(
'InputWidth', HW.muonOutputWidthSelect)
2258 alg.addgeneric(
'MaxTob', HW.muonOutputWidthSelect)
2259 alg.addgeneric(
'NumResultBits', 1)
2260 alg.addvariable(
'MinET1', 0*_et_conversion)
2261 alg.addvariable(
'MinMSqr', 0*_et_conversion*_et_conversion)
2262 alg.addvariable(
'MaxMSqr', 10*10*_et_conversion*_et_conversion)
2263 tm.registerTopoAlgo(alg)
2279 INVM_DR_eEM_MU_Map = [{
2280 "algoname":
"INVM_DR_eEM_MU",
2289 "olist2": [
"Fab",
"VFab"],
2291 "ocut2Offset" : [3,0]
2295 for x
in INVM_DR_eEM_MU_Map:
2300 inputList = [d.otype1 + d.olist1, d.otype2 + str(d.ocut2) + d.olist2[1] ]
2302 for bitId
in range(len(d.ocut1)):
2303 obj1 =
"-%s%s%s" % (d.otype1, str( d.ocut1[bitId] ) , d.olist1)
2304 obj2 =
"-%s%s%s" % (d.otype2, str( d.ocut2 + d.ocut2Offset[bitId] ) , d.olist2[bitId])
2305 toponames.append(
"%dINVM%d-%dDR%d%s%s" % ( d.minInvm, d.maxInvm, d.minDR, d.maxDR, obj1, obj2))
2307 alg = AlgConf.InvariantMassInclusiveDeltaRSqrIncl2( name = d.algoname, inputs = inputList, outputs = toponames )
2309 alg.addgeneric(
'InputWidth1', HW.eEmOutputWidthSelect)
2310 alg.addgeneric(
'InputWidth2', HW.muonOutputWidthSelect)
2311 alg.addgeneric(
'MaxTob1', HW.eEmOutputWidthSelect)
2312 alg.addgeneric(
'MaxTob2', HW.muonOutputWidthSelect)
2313 alg.addgeneric(
'ApplyEtaCut', 1)
2315 alg.addgeneric(
'NumResultBits', len(toponames) )
2317 for bitId
in range(len(toponames)):
2318 alg.addvariable(
'MinET1', get_threshold_cut(d.otype1, d.ocut1[bitId])*_et_conversion, bitId)
2319 alg.addvariable(
'MinET2', (d.ocut2 + d.ocut2Offset[bitId])*_et_conversion, bitId)
2320 alg.addvariable(
'MinMSqr', d.minInvm*d.minInvm*_et_conversion*_et_conversion, bitId)
2321 alg.addvariable(
'MaxMSqr', d.maxInvm*d.maxInvm*_et_conversion*_et_conversion, bitId)
2322 alg.addvariable(
'MinEta1', 0*_eta_conversion, bitId)
2323 alg.addvariable(
'MaxEta1', 49*_eta_conversion, bitId)
2324 alg.addvariable(
'MinEta2', 0*_eta_conversion, bitId)
2325 alg.addvariable(
'MaxEta2', 49*_eta_conversion, bitId)
2326 alg.addvariable(
'DeltaRMin', d.minDR*d.minDR*_dr_conversion*_dr_conversion, bitId)
2327 alg.addvariable(
'DeltaRMax', d.maxDR*d.maxDR*_dr_conversion*_dr_conversion, bitId)
2330 tm.registerTopoAlgo(alg)
2346 {
"minInvm": 60 ,
"minDphiList": [4, 25],
"maxDphi": 32,
"minEta2": 25,
"maxEta2": 49,
2347 "inputwidth1": HW.eEmOutputWidthSelect,
"otype1" :
"eEM",
"ocut1" : 18,
"olist1" :
"abm",
2348 "nleading1" : HW.eEmOutputWidthSelect,
"inputwidth2": HW.jEmOutputWidthSort,
"ocut2" : 20,
"ocut3" : 25,
"nleading2" : 6 }
2350 for x
in ZAFBDphimap:
2354 setattr (d, k, x[k])
2355 inputList = [d.otype1 + d.olist1,
'jEMs25ETA49']
2357 for minDphi
in d.minDphiList:
2358 toponames.append (
"%iINVM-%02dDPHI%i-%s%s%s%s-jEM%ss%s%iETA%i" % (d.minInvm, minDphi, d.maxDphi,
2359 d.otype1, str(d.ocut1) , d.olist1, str(d.nleading1)
if d.olist1==
"s" else "",
2360 str(d.ocut3) , str(d.nleading2) , d.minEta2, d.maxEta2))
2361 alg = AlgConf.InvariantMassDeltaPhiInclusive2( name =
'ZAFB_DPHI', inputs = inputList, outputs = toponames)
2362 alg.addgeneric(
'InputWidth1', d.inputwidth1)
2363 alg.addgeneric(
'InputWidth2', d.inputwidth2)
2364 alg.addgeneric(
'MaxTob1', d.nleading1)
2365 alg.addgeneric(
'MaxTob2', d.nleading2)
2366 alg.addgeneric(
'NumResultBits', len(toponames))
2367 alg.addgeneric(
'ApplyEtaCut', 1)
2368 for bitid,minDphi
in enumerate(d.minDphiList):
2369 alg.addvariable(
'MinET1', get_threshold_cut(d.otype1, d.ocut1)*_et_conversion, bitid)
2370 alg.addvariable(
'MinET2', get_threshold_cut(
'jEM', d.ocut3)*_et_conversion, bitid)
2371 alg.addvariable(
'MinMSqr', d.minInvm*d.minInvm*_et_conversion*_et_conversion, bitid)
2372 alg.addvariable(
'MaxMSqr', _no_m_upper_threshold, bitid)
2373 alg.addvariable(
'MinEta1', 0*_eta_conversion, bitid)
2374 alg.addvariable(
'MaxEta1', 49*_eta_conversion, bitid)
2375 alg.addvariable(
'MinEta2', d.minEta2*_eta_conversion, bitid)
2376 alg.addvariable(
'MaxEta2', d.maxEta2*_eta_conversion, bitid)
2377 alg.addvariable(
'MinDeltaPhi', minDphi*_phi_conversion, bitid)
2378 alg.addvariable(
'MaxDeltaPhi', d.maxDphi*_phi_conversion, bitid)
2379 tm.registerTopoAlgo(alg)
2381 inputList = [d.otype1 + d.olist1,
'jEMsm25ETA49']
2383 for minDphi
in d.minDphiList:
2384 toponames.append (
"%iINVM-%02dDPHI%i-%s%s%s%s-jEM%ssm%s%iETA%i" % (d.minInvm, minDphi, d.maxDphi,
2385 d.otype1, str(d.ocut1) , d.olist1, str(d.nleading1)
if d.olist1==
"s" else "",
2386 str(d.ocut2) , str(d.nleading2) , d.minEta2, d.maxEta2))
2387 alg = AlgConf.InvariantMassDeltaPhiInclusive2( name =
'ZAFB_DPHIM', inputs = inputList, outputs = toponames)
2388 alg.addgeneric(
'InputWidth1', d.inputwidth1)
2389 alg.addgeneric(
'InputWidth2', d.inputwidth2)
2390 alg.addgeneric(
'MaxTob1', d.nleading1)
2391 alg.addgeneric(
'MaxTob2', d.nleading2)
2392 alg.addgeneric(
'NumResultBits', len(toponames))
2393 alg.addgeneric(
'ApplyEtaCut', 1)
2394 for bitid,minDphi
in enumerate(d.minDphiList):
2395 alg.addvariable(
'MinET1', get_threshold_cut(d.otype1, d.ocut1)*_et_conversion, bitid)
2396 alg.addvariable(
'MinET2', get_threshold_cut(
'jEM', d.ocut2)*_et_conversion, bitid)
2397 alg.addvariable(
'MinMSqr', d.minInvm*d.minInvm*_et_conversion*_et_conversion, bitid)
2398 alg.addvariable(
'MaxMSqr', _no_m_upper_threshold, bitid)
2399 alg.addvariable(
'MinEta1', 0*_eta_conversion, bitid)
2400 alg.addvariable(
'MaxEta1', 49*_eta_conversion, bitid)
2401 alg.addvariable(
'MinEta2', d.minEta2*_eta_conversion, bitid)
2402 alg.addvariable(
'MaxEta2', d.maxEta2*_eta_conversion, bitid)
2403 alg.addvariable(
'MinDeltaPhi', minDphi*_phi_conversion, bitid)
2404 alg.addvariable(
'MaxDeltaPhi', d.maxDphi*_phi_conversion, bitid)
2405 tm.registerTopoAlgo(alg)
2409 {
"minInvm": 0,
"maxInvm": 70,
"minDphi": 27,
"maxDphi": 32,
"otype":
"eEM",
"olist":
"s",
"ocut1":9,
"nleading1":1,
"ocut2":9,
"nleading2":6,},
2410 {
"minInvm": 0,
"maxInvm": 70,
"minDphi": 27,
"maxDphi": 32,
"otype":
"eEM",
"olist":
"sl",
"ocut1":9,
"nleading1":1,
"ocut2":9,
"nleading2":6,},
2412 for x
in listofalgos:
2416 setattr (d, k, x[k])
2417 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))
2418 log.debug(
"Define %s", toponame)
2419 inputList = [d.otype + d.olist, d.otype + d.olist]
2420 alg = AlgConf.InvariantMassDeltaPhiInclusive2( name = toponame, inputs = inputList, outputs = toponame )
2421 alg.addgeneric(
'InputWidth1', HW.eEmOutputWidthSort)
2422 alg.addgeneric(
'InputWidth2', HW.eEmOutputWidthSort)
2423 alg.addgeneric(
'MaxTob1', d.nleading1)
2424 alg.addgeneric(
'MaxTob2', d.nleading2)
2425 alg.addgeneric(
'NumResultBits', 1)
2426 alg.addvariable(
'MinET1', get_threshold_cut(d.otype, d.ocut1)*_et_conversion)
2427 alg.addvariable(
'MinET2', get_threshold_cut(d.otype, d.ocut2)*_et_conversion)
2428 alg.addvariable(
'MinMSqr', d.minInvm*d.minInvm*_et_conversion*_et_conversion)
2429 alg.addvariable(
'MaxMSqr', d.maxInvm*d.maxInvm*_et_conversion*_et_conversion)
2430 alg.addgeneric(
'ApplyEtaCut', 1)
2431 alg.addvariable(
'MinEta1', 0*_eta_conversion)
2432 alg.addvariable(
'MaxEta1',49*_eta_conversion)
2433 alg.addvariable(
'MinEta2', 0*_eta_conversion)
2434 alg.addvariable(
'MaxEta2',49*_eta_conversion)
2435 alg.addvariable(
'MinDeltaPhi', d.minDphi*_phi_conversion)
2436 alg.addvariable(
'MaxDeltaPhi', d.maxDphi*_phi_conversion)
2437 tm.registerTopoAlgo(alg)
2443 INVM_DR_2MU3Vab_Map = [
2445 "algoname":
"7INVM22_DR_2MU3Vab",
2450 "otype1" :
"MU3Vab",
2454 for x
in INVM_DR_2MU3Vab_Map:
2459 inputList = d.otype1
2461 for bitId
in range(len(d.minDR)):
2462 toponames.append(
"%iINVM%i-%iDR%i-%i%s" % ( d.minInvm, d.maxInvm,
2463 d.minDR[bitId] , d.maxDR[bitId],
2467 alg = AlgConf.InvariantMassInclusiveDeltaRSqrIncl1( name = d.algoname, inputs = inputList, outputs = toponames)
2468 alg.addgeneric(
'InputWidth', HW.muonOutputWidthSelect)
2469 alg.addgeneric(
'MaxTob', HW.muonOutputWidthSelect)
2470 alg.addgeneric(
'NumResultBits', len(toponames))
2471 for bitId
in range(len(toponames)):
2472 alg.addvariable(
'MinET1', 0*_et_conversion, bitId)
2473 alg.addvariable(
'MinET2', 0*_et_conversion, bitId)
2474 alg.addvariable(
'MinMSqr', d.minInvm*d.minInvm*_et_conversion*_et_conversion, bitId)
2475 alg.addvariable(
'MaxMSqr', d.maxInvm*d.maxInvm*_et_conversion*_et_conversion, bitId)
2476 alg.addvariable(
'DeltaRMin', d.minDR[bitId]*d.minDR[bitId]*_dr_conversion*_dr_conversion, bitId)
2477 alg.addvariable(
'DeltaRMax', d.maxDR[bitId]*d.maxDR[bitId]*_dr_conversion*_dr_conversion, bitId)
2478 tm.registerTopoAlgo(alg)
2486 INVM_DR_2MU3VFab_Map = [
2488 "algoname":
"INVM_DR_2MU3VFab",
2490 "maxInvm" : [9,11,22],
2493 "otype1" :
"MU3VFab",
2497 for x
in INVM_DR_2MU3VFab_Map:
2502 inputList = d.otype1
2504 for bitId
in range(len(d.minDR)):
2505 toponames.append(
"%iINVM%i-%iDR%i-%i%s" % ( d.minInvm[bitId], d.maxInvm[bitId],
2506 d.minDR[bitId] , d.maxDR[bitId],
2510 alg = AlgConf.InvariantMassInclusiveDeltaRSqrIncl1( name = d.algoname, inputs = inputList, outputs = toponames)
2511 alg.addgeneric(
'InputWidth', HW.muonOutputWidthSelect)
2512 alg.addgeneric(
'MaxTob', HW.muonOutputWidthSelect)
2513 alg.addgeneric(
'NumResultBits', len(toponames))
2514 for bitId
in range(len(toponames)):
2515 alg.addvariable(
'MinET1', 0*_et_conversion, bitId)
2516 alg.addvariable(
'MinET2', 0*_et_conversion, bitId)
2517 alg.addvariable(
'MinMSqr', d.minInvm[bitId]*d.minInvm[bitId]*_et_conversion*_et_conversion, bitId)
2518 alg.addvariable(
'MaxMSqr', d.maxInvm[bitId]*d.maxInvm[bitId]*_et_conversion*_et_conversion, bitId)
2519 alg.addvariable(
'DeltaRMin', d.minDR[bitId]*d.minDR[bitId]*_dr_conversion*_dr_conversion, bitId)
2520 alg.addvariable(
'DeltaRMax', d.maxDR[bitId]*d.maxDR[bitId]*_dr_conversion*_dr_conversion, bitId)
2521 tm.registerTopoAlgo(alg)
2527 {
"minInvm": 2,
"maxInvm": 9,
"minDr": 0,
"maxDr": 15,
"mult": 1,
"otype1" :
"MU5VFab",
"otype2":
"MU3Vab", },
2528 {
"minInvm": 8,
"maxInvm": 15,
"minDr": 0,
"maxDr": 22,
"mult": 1,
"otype1" :
"MU5VFab",
"otype2":
"MU3Vab", },
2529 {
"minInvm": 2,
"maxInvm": 9,
"minDr": 0,
"maxDr": 15,
"mult": 2,
"otype1" :
"MU3Vab",
"otype2":
"", },
2532 {
"minInvm": 0,
"maxInvm": 16,
"minDr": 20,
"maxDr": 99,
"mult": 2,
"otype1" :
"MU3Vab",
"otype2":
"",},
2533 {
"minInvm": 0,
"maxInvm": 16,
"minDr": 15,
"maxDr": 99,
"mult": 2,
"otype1" :
"MU3Vab",
"otype2":
"",},
2534 {
"minInvm": 8,
"maxInvm": 15,
"minDr": 20,
"maxDr": 99,
"mult": 2,
"otype1" :
"MU3Vab",
"otype2":
"",},
2535 {
"minInvm": 8,
"maxInvm": 15,
"minDr": 15,
"maxDr": 99,
"mult": 2,
"otype1" :
"MU3Vab",
"otype2":
"",},
2537 {
"minInvm": 7,
"maxInvm": 22,
"minDr": 0,
"maxDr": 20,
"mult": 2,
"otype1" :
"MU3VFab",
"otype2":
"",},
2539 {
"minInvm": 8,
"maxInvm": 15,
"minDr": 0,
"maxDr": 22,
"mult": 1,
"otype1" :
"CMU5VFab",
"otype2":
"CMU3Vab",},
2541 {
"minInvm": 7,
"maxInvm": 14,
"minDr": 0,
"maxDr": 25,
"mult": 1,
"otype1" :
"MU5VFab",
"otype2":
"MU3Vab", },
2542 {
"minInvm": 7,
"maxInvm": 11,
"minDr": 25,
"maxDr": 99,
"mult": 2,
"otype1" :
"MU3Vab",
"otype2":
"",},
2543 {
"minInvm": 7,
"maxInvm": 14,
"minDr": 0,
"maxDr": 25,
"mult": 1,
"otype1" :
"MU5VFab",
"otype2":
"MU3VFab", },
2547 for x
in listofalgos:
2551 setattr (d, k, x[k])
2552 obj1 =
"%s%s" % ((str(d.mult)
if d.mult>1
else ""), d.otype1)
2553 obj2 =
"-%s" % (d.otype2)
2554 toponame =
"%iINVM%i-%iDR%i-%s%s" % (d.minInvm, d.maxInvm, d.minDr, d.maxDr, obj1,
"" if d.mult>1
else obj2)
2555 log.debug(
"Define %s", toponame)
2556 inputList = [d.otype1]
if (d.mult>1)
else [d.otype1, d.otype2]
2557 algoname = AlgConf.InvariantMassInclusiveDeltaRSqrIncl1
if (d.mult>1)
else AlgConf.InvariantMassInclusiveDeltaRSqrIncl2
2558 alg = algoname( name = toponame, inputs = inputList, outputs = [ toponame ])
2560 alg.addgeneric(
'InputWidth', HW.muonOutputWidthSelect)
2561 alg.addgeneric(
'MaxTob', HW.muonOutputWidthSelect)
2563 alg.addgeneric(
'InputWidth1', HW.muonOutputWidthSelect)
2564 alg.addgeneric(
'InputWidth2', HW.muonOutputWidthSelect)
2565 alg.addgeneric(
'MaxTob1', HW.muonOutputWidthSelect)
2566 alg.addgeneric(
'MaxTob2', HW.muonOutputWidthSelect)
2567 alg.addgeneric(
'NumResultBits', 1)
2568 alg.addvariable(
'MinET1', 0*_et_conversion)
2569 alg.addvariable(
'MinET2', 0*_et_conversion)
2570 alg.addvariable(
'MinMSqr', d.minInvm*d.minInvm*_et_conversion*_et_conversion)
2571 alg.addvariable(
'MaxMSqr', d.maxInvm*d.maxInvm*_et_conversion*_et_conversion)
2572 alg.addvariable(
'DeltaRMin', d.minDr*d.minDr*_dr_conversion*_dr_conversion)
2573 alg.addvariable(
'DeltaRMax', d.maxDr*d.maxDr*_dr_conversion*_dr_conversion)
2574 tm.registerTopoAlgo(alg)
2578 {
"minInvm": 2,
"maxInvm": 9,
"minDr": 0,
"maxDr": 15,
"mult": 1,
"otype1" :
"MU5VFab",
"otype2":
"MU3Vab",},
2579 {
"minInvm": 8,
"maxInvm": 15,
"minDr": 20,
"maxDr": 99,
"mult": 2,
"otype1" :
"MU3Vab",
"otype2":
"",},
2581 for x
in listofalgos:
2585 setattr (d, k, x[k])
2586 obj1 =
"%s%s" % ((str(d.mult)
if d.mult>1
else ""), d.otype1)
2587 obj2 =
"-%s" % (d.otype2)
2588 toponame =
"%iINVM%i-%iDR%i-C-%s%s" % (d.minInvm, d.maxInvm, d.minDr, d.maxDr, obj1,
"" if d.mult>1
else obj2)
2589 log.debug(
"Define %s", toponame)
2590 inputList = [d.otype1]
if (d.mult>1)
else [d.otype1, d.otype2]
2591 algoname = AlgConf.InvariantMassInclusiveDeltaRSqrIncl1Charge
if (d.mult>1)
else AlgConf.InvariantMassInclusiveDeltaRSqrIncl2Charge
2592 alg = algoname( name = toponame, inputs = inputList, outputs = [ toponame ])
2594 alg.addgeneric(
'InputWidth', HW.muonOutputWidthSelect)
2595 alg.addgeneric(
'MaxTob', HW.muonOutputWidthSelect)
2597 alg.addgeneric(
'InputWidth1', HW.muonOutputWidthSelect)
2598 alg.addgeneric(
'InputWidth2', HW.muonOutputWidthSelect)
2599 alg.addgeneric(
'MaxTob1', HW.muonOutputWidthSelect)
2600 alg.addgeneric(
'MaxTob2', HW.muonOutputWidthSelect)
2601 alg.addgeneric(
'NumResultBits', 1)
2602 alg.addvariable(
'MinET1', 0*_et_conversion)
2603 alg.addvariable(
'MinET2', 0*_et_conversion)
2604 alg.addvariable(
'MinMSqr', d.minInvm*d.minInvm*_et_conversion*_et_conversion)
2605 alg.addvariable(
'MaxMSqr', d.maxInvm*d.maxInvm*_et_conversion*_et_conversion)
2606 alg.addvariable(
'DeltaRMin', d.minDr*d.minDr*_dr_conversion*_dr_conversion)
2607 alg.addvariable(
'DeltaRMax', d.maxDr*d.maxDr*_dr_conversion*_dr_conversion)
2608 tm.registerTopoAlgo(alg)
2618 {
"minDphi": 23,
"maxDphi": 32,
"mult": 2,
"otype1" :
"eEM",
2619 "ocut1": 1,
"olist1":
"s",
"nleading1": HW.eEmOutputWidthSort,
"minET1":0.9,
"otype2" :
"",
"minET2":0.8},
2620 {
"minDphi": 26,
"maxDphi": 32,
"mult": 2,
"otype1" :
"eTAU",
2621 "ocut1": 1,
"olist1":
"s",
"nleading1": HW.eTauOutputWidthSort,
"minET1":0.8,
"otype2" :
"",
"minET2":0.8},
2622 {
"minDphi": 23,
"maxDphi": 32,
"mult": 2,
"otype1" :
"jTAU",
2623 "ocut1": 1,
"olist1":
"s",
"nleading1": HW.jTauOutputWidthSort,
"minET1":1.4,
"otype2" :
"",
"minET2":1.4},
2629 setattr (d, k, x[k])
2630 obj =
"%s" % (str(d.mult)+d.otype1+str(d.ocut1)+str(d.olist1))
2631 toponame =
"%sDPHI%s-%s" % (d.minDphi, d.maxDphi, obj)
2632 log.debug(
"Define %s", toponame)
2633 inputList = [d.otype1+d.olist1]
2634 algoname = AlgConf.DeltaPhiIncl1
2635 alg = algoname( name = toponame, inputs = inputList, outputs = [ toponame ])
2636 alg.addgeneric(
'NumResultBits', 1)
2637 alg.addgeneric(
'InputWidth', d.nleading1)
2638 alg.addgeneric(
'MaxTob', d.nleading1)
2639 alg.addvariable(
'MinET1', d.minET1*_et_conversion)
2640 alg.addvariable(
'MinET2', d.minET2*_et_conversion)
2641 alg.addvariable(
'MinDeltaPhi', d.minDphi*_phi_conversion)
2642 alg.addvariable(
'MaxDeltaPhi', d.maxDphi*_phi_conversion)
2643 tm.registerTopoAlgo(alg)
2646 from dataclasses
import dataclass
2649 class InvMassDPhiSumETAlgoParams:
2650 """ Parameters for InvariantMassDeltaPhiInclusive1 and InvariantMassDeltaPhiSumEtInclusive1 Topo algorithms """
2653 DeltaPhiMin: int = 23
2654 DeltaPhiMax: int = 32
2655 MinInvMassSq: float = 0
2656 MaxInvMassSq: float = 1000 ** 2
2658 MaxSumEt: float = 1000
2660 def AddInvMassDPhiSumETAlgos(otype: str, nleading, list_of_algos: list[InvMassDPhiSumETAlgoParams]):
2661 for x
in list_of_algos:
2663 is_InvMass_set = x.MinInvMassSq != 0
or x.MaxInvMassSq != 1000 ** 2
2664 is_SumEt_set = x.MinSumEt != 0
or x.MaxSumEt != 1000
2665 algoname = AlgConf.InvariantMassDeltaPhiSumEtInclusive1
if is_SumEt_set
else AlgConf.InvariantMassDeltaPhiInclusive1
2667 if float(x.MinEt1) != int(x.MinEt1):
2668 obj = f
'2{otype}0{round(x.MinEt1 * 10)}s'
2670 obj = f
'2{otype}{round(x.MinEt1)}s'
2671 toponame = f
'{x.DeltaPhiMin}DPHI{x.DeltaPhiMax}-{obj}'
2674 toponame = f
'{x.MinSumEt}SUM{x.MaxSumEt}-{toponame}'
2676 if float(x.MinInvMassSq) != int(x.MinInvMassSq)
or float(x.MaxInvMassSq) != int(x.MaxInvMassSq):
2677 toponame = f
'{round(x.MinInvMassSq * 10)}INVM{round(x.MaxInvMassSq * 10)}-{toponame}'
2679 toponame = f
'{x.MinInvMassSq}INVM{x.MaxInvMassSq}-{toponame}'
2680 log.debug(
'Define %s', toponame)
2682 alg = algoname(name=toponame, inputs=[f
'{otype}s'], outputs=[toponame])
2683 alg.addgeneric(
'NumResultBits', 1)
2684 alg.addgeneric(
'InputWidth', nleading)
2685 alg.addgeneric(
'MaxTob', nleading)
2686 alg.addvariable(
'MinET1', x.MinEt1 * _et_conversion)
2687 alg.addvariable(
'MinET2', x.MinEt2 * _et_conversion)
2688 alg.addvariable(
'MinMSqr', x.MinInvMassSq * (_et_conversion ** 2))
2689 alg.addvariable(
'MaxMSqr', x.MaxInvMassSq * (_et_conversion ** 2))
2690 alg.addvariable(
'MinDeltaPhi', x.DeltaPhiMin * _phi_conversion)
2691 alg.addvariable(
'MaxDeltaPhi', x.DeltaPhiMax * _phi_conversion)
2694 alg.addvariable(
'MinSumEt', x.MinSumEt * _et_conversion)
2695 alg.addvariable(
'MaxSumEt', x.MaxSumEt * _et_conversion)
2696 tm.registerTopoAlgo(alg)
2700 InvMassDPhiSumETAlgoParams(MinEt1=0.7, MinEt2=0.7, DeltaPhiMin=24, MinInvMassSq=2.3, MaxInvMassSq=200 ** 2),
2701 InvMassDPhiSumETAlgoParams(MinEt1=0.7, MinEt2=0.7, DeltaPhiMin=24, MinInvMassSq=2.8, MaxInvMassSq=200 ** 2),
2702 InvMassDPhiSumETAlgoParams(MinEt1=0.8, MinEt2=0.8, DeltaPhiMin=25, MinInvMassSq=2.3, MaxInvMassSq=200 ** 2),
2703 InvMassDPhiSumETAlgoParams(MinEt1=0.7, MinEt2=0.7, DeltaPhiMin=25, MinInvMassSq=3.3, MaxInvMassSq=200 ** 2),
2704 InvMassDPhiSumETAlgoParams(MinEt1=0.7, MinEt2=0.7, DeltaPhiMin=27, MinInvMassSq=2.3, MaxInvMassSq=200 ** 2),
2706 AddInvMassDPhiSumETAlgos(
'eTAU', HW.eTauOutputWidthSort, algo_list)
2710 AddInvMassDPhiSumETAlgos(
'jJ', HW.jJetOutputWidthSort, algo_list)
2713 Algo = namedtuple(
'Algo', [
'dPhiMin',
'dPhiMax',
'otype',
'olist',
'ocut1',
'ocut2',
'nTOB'])
2715 Algo(dPhiMin=30, dPhiMax=32, otype=
'eTAU', olist=
's', ocut1=50, ocut2=50, nTOB=HW.eTauOutputWidthSort),
2718 name = f
'{x.dPhiMin}DPHI{x.dPhiMax}-'
2719 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}'
2721 alg = AlgConf.DeltaPhiIncl1(name=name, inputs=[x.otype+x.olist], outputs=[name])
2722 alg.addgeneric(
'NumResultBits', 1)
2723 alg.addgeneric(
'InputWidth', x.nTOB)
2724 alg.addgeneric(
'MaxTob', x.nTOB)
2725 alg.addvariable(
'MinET1', get_threshold_cut(x.otype, x.ocut1)*_et_conversion)
2726 alg.addvariable(
'MinET2', get_threshold_cut(x.otype, x.ocut2)*_et_conversion)
2727 alg.addvariable(
'MinDeltaPhi', x.dPhiMin*_phi_conversion)
2728 alg.addvariable(
'MaxDeltaPhi', x.dPhiMax*_phi_conversion)
2729 tm.registerTopoAlgo(alg)