10 import L1TopoAlgorithms.L1TopoAlgConfig
as AlgConf
11 import L1TopoHardware.L1TopoHardware
as HW
12 from .L1CaloThresholdMapping
import get_threshold_cut
13 from .L1TopoKFMETweights
import KFMETweightParameters
15 from AthenaCommon.Logging
import logging
16 log = logging.getLogger(__name__)
18 from collections
import namedtuple
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)
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)
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)
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)
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)
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)
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" : 40,
"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)
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)
380 {
"otype" :
"eEM",
"ocut1" : 24,
"ocut2" : 24,
"olist" :
"sm",
"nleading1" : 2,
"minInvm" : 60,
"maxInvm" : 100,
"inputwidth": HW.eEmOutputWidthSort},
387 toponame =
'ZEE-eEM24sm2'
388 log.debug(
"Define %s", toponame)
389 inputList = d.otype + d.olist
390 alg = AlgConf.InvariantMassInclusive1( name = toponame, inputs = inputList, outputs = toponame)
391 alg.addgeneric(
'InputWidth', d.inputwidth)
392 alg.addgeneric(
'MaxTob', d.nleading1)
393 alg.addgeneric(
'NumResultBits', 1)
396 alg.addvariable(
'MinMSqr', d.minInvm*d.minInvm*_et_conversion*_et_conversion )
397 alg.addvariable(
'MaxMSqr', d.maxInvm*d.maxInvm*_et_conversion*_et_conversion )
398 tm.registerTopoAlgo(alg)
405 {
"minDr": 3,
"maxDr": 99,
"mult": 1,
"otype1" :
"MU8Fab" ,
"otype2" :
"eTAU",
"ocut2" : 30,
"olist2" :
"ab", },
406 {
"minDr": 3,
"maxDr": 35,
"mult": 1,
"otype1" :
"MU8Fab" ,
"otype2" :
"eTAU",
"ocut2" : 30,
"olist2" :
"ab", },
407 {
"minDr": 3,
"maxDr": 30,
"mult": 1,
"otype1" :
"MU8Fab" ,
"otype2" :
"eTAU",
"ocut2" : 30,
"olist2" :
"ab", },
408 {
"minDr": 3,
"maxDr": 28,
"mult": 1,
"otype1" :
"MU8Fab" ,
"otype2" :
"eTAU",
"ocut2" : 30,
"olist2" :
"ab", },
416 obj1 =
"%s%s" % ((
str(d.mult)
if d.mult>1
else ""), d.otype1)
417 obj2 =
"-%s%d%s" % (d.otype2, d.ocut2, d.olist2)
418 toponame =
"%iDR%i-%s%s" % (d.minDr, d.maxDr, obj1, obj2)
419 log.debug(
"Define %s", toponame)
420 inputList = [ d.otype1,
'eTAUs']
421 algoname = AlgConf.DeltaRSqrIncl2
422 alg = algoname( name = toponame, inputs = inputList, outputs = [ toponame ])
424 alg.addgeneric(
'InputWidth1', HW.muonOutputWidthSelect)
425 alg.addgeneric(
'InputWidth2', HW.eTauOutputWidthSort)
426 alg.addgeneric(
'MaxTob1', HW.muonOutputWidthSelect)
427 alg.addgeneric(
'MaxTob2', 1)
428 alg.addgeneric(
'NumResultBits', 1)
429 alg.addvariable(
'MinET1', 0*_et_conversion)
431 alg.addvariable(
'DeltaRMin', d.minDr*d.minDr*_dr_conversion*_dr_conversion)
432 alg.addvariable(
'DeltaRMax', d.maxDr*d.maxDr*_dr_conversion*_dr_conversion)
433 tm.registerTopoAlgo(alg)
443 {
"minDr": 0,
"maxDr": 15,
"mult": 2,
"otype1" :
"MU3Vab" ,
"otype2" :
"", },
444 {
"minDr": 0,
"maxDr": 24,
"mult": 2,
"otype1" :
"MU3Vab" ,
"otype2" :
"", },
446 {
"minDr": 1,
"maxDr": 15,
"mult": 1,
"otype1" :
"MU5VFab",
"otype2" :
"MU3Vab", },
447 {
"minDr": 1,
"maxDr": 22,
"mult": 1,
"otype1" :
"MU5VFab",
"otype2" :
"MU3Vab", },
448 {
"minDr": 2,
"maxDr": 15,
"mult": 2,
"otype1" :
"MU5VFab",
"otype2" :
"", },
449 {
"minDr": 0,
"maxDr": 22,
"mult": 2,
"otype1" :
"MU5VFab",
"otype2" :
"", },
450 {
"minDr": 2,
"maxDr": 99,
"mult": 2,
"otype1" :
"MU3Vab" ,
"otype2" :
"", },
452 for x
in listofalgos:
457 obj1 =
"%s%s" % ((
str(d.mult)
if d.mult>1
else ""), d.otype1)
458 obj2 =
"-%s" % (d.otype2)
459 toponame =
"%iDR%i-%s%s" % (d.minDr, d.maxDr, obj1,
"" if d.mult>1
else obj2)
460 log.debug(
"Define %s", toponame)
461 inputList = [d.otype1]
if (d.mult>1)
else [d.otype1, d.otype2]
462 algoname = AlgConf.DeltaRSqrIncl1
if (d.mult>1)
else AlgConf.DeltaRSqrIncl2
463 alg = algoname( name = toponame, inputs = inputList, outputs = [ toponame ])
465 alg.addgeneric(
'InputWidth', HW.muonOutputWidthSelect)
466 alg.addgeneric(
'MaxTob', HW.muonOutputWidthSelect)
468 alg.addgeneric(
'InputWidth1', HW.muonOutputWidthSelect)
469 alg.addgeneric(
'InputWidth2', HW.muonOutputWidthSelect)
470 alg.addgeneric(
'MaxTob1', HW.muonOutputWidthSelect)
471 alg.addgeneric(
'MaxTob2', HW.muonOutputWidthSelect)
472 alg.addgeneric(
'NumResultBits', 1)
473 alg.addvariable(
'MinET1', 0*_et_conversion)
474 alg.addvariable(
'MinET2', 0*_et_conversion)
475 alg.addvariable(
'DeltaRMin', d.minDr*d.minDr*_dr_conversion*_dr_conversion)
476 alg.addvariable(
'DeltaRMax', d.maxDr*d.maxDr*_dr_conversion*_dr_conversion)
477 tm.registerTopoAlgo(alg)
486 {
"minDr": 0,
"maxDr": 12,
"mult": 2,
"otype1" :
"MU3Vab",
"otype2" :
"", },
488 for x
in listofalgos:
493 obj1 =
"%s%s" % ((
str(d.mult)
if d.mult>1
else ""), d.otype1)
494 obj2 =
"-%s" % (d.otype2)
495 toponame =
"%iDR%iC-%s%s" % (d.minDr, d.maxDr, obj1,
"" if d.mult>1
else obj2)
496 log.debug(
"Define %s", toponame)
497 inputList = [d.otype1]
if (d.mult>1)
else [d.otype1, d.otype2]
498 algoname = AlgConf.DeltaRSqrIncl1Charge
if (d.mult>1)
else AlgConf.DeltaRSqrIncl2Charge
499 alg = algoname( name = toponame, inputs = inputList, outputs = [ toponame ])
501 alg.addgeneric(
'InputWidth', HW.muonOutputWidthSelect)
502 alg.addgeneric(
'MaxTob', HW.muonOutputWidthSelect)
504 alg.addgeneric(
'InputWidth1', HW.muonOutputWidthSelect)
505 alg.addgeneric(
'InputWidth2', HW.muonOutputWidthSelect)
506 alg.addgeneric(
'MaxTob1', HW.muonOutputWidthSelect)
507 alg.addgeneric(
'MaxTob2', HW.muonOutputWidthSelect)
508 alg.addgeneric(
'NumResultBits', 1)
509 alg.addvariable(
'MinET1', 0*_et_conversion)
510 alg.addvariable(
'MinET2', 0*_et_conversion)
511 alg.addvariable(
'DeltaRMin', d.minDr*d.minDr*_dr_conversion*_dr_conversion)
512 alg.addvariable(
'DeltaRMax', d.maxDr*d.maxDr*_dr_conversion*_dr_conversion)
513 tm.registerTopoAlgo(alg)
524 {
"minInvm":7,
"maxInvm":22,
"minDr": 0,
"maxDr": 20,
"mult": 2,
"otype1" :
"MU3Vab",
"otype2" :
"", },
526 for x
in listofalgos:
531 obj1 =
"%s%s" % ((
str(d.mult)
if d.mult>1
else ""), d.otype1)
532 obj2 =
"-%s" % (d.otype2)
533 toponame =
"%iINVM%i-%iDR%iC-%s%s" % (d.minInvm, d.maxInvm, d.minDr, d.maxDr, obj1,
"" if d.mult>1
else obj2)
534 log.debug(
"Define %s", toponame)
535 inputList = [d.otype1]
if (d.mult>1)
else [d.otype1, d.otype2]
536 algoname = AlgConf.InvariantMassInclusiveDeltaRSqrIncl1Charge
if (d.mult>1)
else AlgConf.InvariantMassInclusiveDeltaRSqrIncl2Charge
537 alg = algoname( name = toponame, inputs = inputList, outputs = [ toponame ])
539 alg.addgeneric(
'InputWidth', HW.muonOutputWidthSelect)
540 alg.addgeneric(
'MaxTob', HW.muonOutputWidthSelect)
542 alg.addgeneric(
'InputWidth1', HW.muonOutputWidthSelect)
543 alg.addgeneric(
'InputWidth2', HW.muonOutputWidthSelect)
544 alg.addgeneric(
'MaxTob1', HW.muonOutputWidthSelect)
545 alg.addgeneric(
'MaxTob2', HW.muonOutputWidthSelect)
546 alg.addgeneric(
'NumResultBits', 1)
547 alg.addvariable(
'MinET1', 0*_et_conversion)
548 alg.addvariable(
'MinET2', 0*_et_conversion)
549 alg.addvariable(
'MinMSqr', d.minInvm * d.minInvm *_et_conversion*_et_conversion)
550 alg.addvariable(
'MaxMSqr', d.maxInvm * d.maxInvm *_et_conversion*_et_conversion)
551 alg.addvariable(
'DeltaRMin', d.minDr*d.minDr*_dr_conversion*_dr_conversion)
552 alg.addvariable(
'DeltaRMax', d.maxDr*d.maxDr*_dr_conversion*_dr_conversion)
553 tm.registerTopoAlgo(alg)
564 {
"minDeta": 5,
"maxDeta": 99,
"minDphi": 5,
"maxDphi": 99,
"mult": 1,
565 "otype1" :
"MU5VFab",
"ocut1":
"",
"olist1":
"",
"nleading1": HW.muonOutputWidthSelect,
566 "otype2" :
"MU3Vab" ,
"ocut2":
"",
"olist2":
"",
"nleading2": HW.muonOutputWidthSelect},
567 {
"minDeta": 5,
"maxDeta": 99,
"minDphi": 5,
"maxDphi": 99,
"mult": 2,
568 "otype1" :
"MU5VFab",
"ocut1":
"",
"olist1":
"",
"nleading1": HW.muonOutputWidthSelect,
569 "otype2" :
"" ,
"ocut2":
"",
"olist2":
"",
"nleading2": HW.muonOutputWidthSelect},
570 {
"minDeta": 5,
"maxDeta": 99,
"minDphi": 5,
"maxDphi": 99,
"mult": 2,
571 "otype1" :
"MU3Vab",
"ocut1":
"",
"olist1":
"",
"nleading1": HW.muonOutputWidthSelect,
572 "otype2" :
"" ,
"ocut2":
"",
"olist2":
"",
"nleading2": HW.muonOutputWidthSelect},
573 {
"minDeta": 5,
"maxDeta": 99,
"minDphi": 5,
"maxDphi": 99,
"mult": 2,
574 "otype1" :
"MU3VFab",
"ocut1":
"",
"olist1":
"",
"nleading1": HW.muonOutputWidthSelect,
575 "otype2" :
"" ,
"ocut2":
"",
"olist2":
"",
"nleading2": HW.muonOutputWidthSelect},
576 {
"minDeta": 0,
"maxDeta": 24,
"minDphi": 4,
"maxDphi": 99,
"mult": 1,
577 "otype1" :
"eTAU",
"ocut1": 30,
"olist1":
"ab",
"nleading1": HW.eTauOutputWidthSelect,
578 "otype2" :
"eTAU",
"ocut2": 20,
"olist2":
"ab",
"nleading2": HW.eTauOutputWidthSelect},
579 {
"minDeta": 0,
"maxDeta": 24,
"minDphi": 4,
"maxDphi": 99,
"mult": 1,
580 "otype1" :
"eTAU",
"ocut1": 30,
"olist1":
"ab",
"nleading1": HW.eTauOutputWidthSelect,
581 "otype2" :
"eTAU",
"ocut2": 12,
"olist2":
"ab",
"nleading2": HW.eTauOutputWidthSelect},
582 {
"minDeta": 0,
"maxDeta": 24,
"minDphi": 10,
"maxDphi": 99,
"mult": 1,
583 "otype1" :
"eTAU",
"ocut1": 30,
"olist1":
"ab",
"nleading1": HW.eTauOutputWidthSelect,
584 "otype2" :
"eTAU",
"ocut2": 12,
"olist2":
"ab",
"nleading2": HW.eTauOutputWidthSelect},
591 obj1 =
"%s%s" % ((
str(d.mult)
if d.mult>1
else ""), d.otype1+
str(d.ocut1)+
str(d.olist1))
592 obj2 =
"-%s" % (d.otype2+
str(d.ocut2)+
str(d.olist2))
593 toponame =
"%sDETA%s-%sDPHI%s-%s%s" % (d.minDeta, d.maxDeta, d.minDphi, d.maxDphi, obj1,
"" if d.mult>1
else obj2)
594 log.debug(
"Define %s", toponame)
595 inputList = [d.otype1+d.olist1]
if (d.mult>1)
else [d.otype1+d.olist1, d.otype2+d.olist2]
596 algoname = AlgConf.DeltaEtaPhiIncl1
if (d.mult>1)
else AlgConf.DeltaEtaPhiIncl2
597 alg = algoname( name = toponame, inputs = inputList, outputs = [ toponame ])
598 alg.addgeneric(
'NumResultBits', 1)
600 alg.addgeneric(
'InputWidth', d.nleading1)
601 alg.addgeneric(
'MaxTob', d.nleading1)
602 alg.addvariable(
'MinET1', 0*_et_conversion)
603 alg.addvariable(
'MinET2', 0*_et_conversion)
604 alg.addvariable(
'MinDeltaEta', d.minDeta*_eta_conversion)
605 alg.addvariable(
'MaxDeltaEta', d.maxDeta*_eta_conversion)
606 alg.addvariable(
'MinDeltaPhi', d.minDphi*_phi_conversion)
607 alg.addvariable(
'MaxDeltaPhi', d.maxDphi*_phi_conversion)
609 alg.addgeneric(
'InputWidth1', d.nleading1)
610 alg.addgeneric(
'InputWidth2', d.nleading2)
611 alg.addgeneric(
'MaxTob1', d.nleading1)
612 alg.addgeneric(
'MaxTob2', d.nleading2)
613 alg.addvariable(
'MinET1', 0*_et_conversion)
614 alg.addvariable(
'MinET2', 0*_et_conversion)
615 alg.addvariable(
'DeltaEtaMin', d.minDeta*_eta_conversion)
616 alg.addvariable(
'DeltaEtaMax', d.maxDeta*_eta_conversion)
617 alg.addvariable(
'DeltaPhiMin', d.minDphi*_phi_conversion)
618 alg.addvariable(
'DeltaPhiMax', d.maxDphi*_phi_conversion)
619 tm.registerTopoAlgo(alg)
624 {
"itemNameMinHT": 150,
"minHT": 240,
"otype" :
"jJ",
"ocut" : 50,
"olist" :
"s",
"nleading" : 5,
"inputwidth": HW.jJetOutputWidthSort,
"oeta" : 32},
625 {
"itemNameMinHT": 190,
"minHT": 300,
"otype" :
"jJ",
"ocut" : 40,
"olist" :
"s",
"nleading" : 5,
"inputwidth": HW.jJetOutputWidthSort,
"oeta" : 21},
632 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))
633 log.debug(
"Define %s", toponame)
634 inputList = d.otype + d.olist
635 alg = AlgConf.JetHT( name = toponame, inputs = inputList, outputs = [toponame] )
636 alg.addgeneric(
'InputWidth', d.inputwidth)
637 alg.addgeneric(
'MaxTob', d.nleading)
638 alg.addgeneric(
'NumRegisters', 2
if d.olist==
"all" else 0)
639 alg.addgeneric(
'NumResultBits', 1)
641 alg.addvariable(
'MinEta', 0*_eta_conversion)
642 alg.addvariable(
'MaxEta', d.oeta*_eta_conversion)
643 alg.addvariable(
'MinHt', d.minHT*_et_conversion)
644 tm.registerTopoAlgo(alg)
651 "algoname" :
"DR_2MU5VFab",
654 "otype1" :
"MU5VFab",
660 for x
in DR_2MU5FMap:
665 inputList = [ d.otype1 ]
667 for bitId
in range(len(d.minDR)):
668 toponames.append(
"%iDR%i-%s%s" % (d.minDR[bitId], d.maxDR[bitId],
str(d.mult1[bitId]),
671 alg = AlgConf.DeltaRSqrIncl1( name = d.algoname, inputs = inputList, outputs = toponames)
672 alg.addgeneric(
'InputWidth', HW.muonOutputWidthSelect)
673 alg.addgeneric(
'MaxTob', HW.muonOutputWidthSelect)
674 alg.addgeneric(
'NumResultBits', len(toponames) )
676 for bitId
in range(len(toponames)):
677 alg.addvariable(
'MinET1', 0 * _et_conversion, bitId )
678 alg.addvariable(
'MinET2', 0 * _et_conversion, bitId )
679 alg.addvariable(
"DeltaRMin", d.minDR[bitId] * d.minDR[bitId] * _dr_conversion * _dr_conversion, bitId)
680 alg.addvariable(
"DeltaRMax", d.maxDR[bitId] * d.maxDR[bitId] * _dr_conversion * _dr_conversion, bitId)
682 tm.registerTopoAlgo(alg)
696 "algoname" :
"INVM_DPHI_eEMsm6",
703 "ocut1List" : [ 12, 15 ],
706 "ocut2List" : [ 12, 15 ],
713 for x
in eINVM_DPHIMap:
718 inputList = [d.otype1 + d.olist1, d.otype2 + d.olist1]
720 for bitId, ocut1Value
in enumerate(d.ocut1List):
721 toponames.append (
"%iINVM%i-%iDPHI%i-%s%s%s%s-%s%s%s%s" % (d.minInvm, d.maxInvm, d.minDphi, d.maxDphi,
722 d.otype1,
str(ocut1Value) , d.olist1,
str(d.nleading1)
if d.olist1==
"sm" else "",
723 d.otype2,
str(d.ocut2List[bitId]) , d.olist2,
str(d.nleading2)
if d.olist2==
"sm" else ""))
724 alg = AlgConf.InvariantMassDeltaPhiInclusive2( name = d.algoname, inputs = inputList, outputs = toponames )
725 alg.addgeneric(
'InputWidth1', HW.eEmOutputWidthSort)
726 alg.addgeneric(
'InputWidth2', HW.eEmOutputWidthSort)
727 alg.addgeneric(
'MaxTob1', d.nleading1)
728 alg.addgeneric(
'MaxTob2', d.nleading2)
729 alg.addgeneric(
'NumResultBits', len(toponames))
730 for bitId
in range(len(toponames)):
731 alg.addvariable(
'MinET1',
get_threshold_cut(d.otype1, d.ocut1List[bitId]) * _et_conversion, bitId)
732 alg.addvariable(
'MinET2',
get_threshold_cut(d.otype1, d.ocut2List[bitId]) * _et_conversion, bitId)
733 alg.addvariable(
'MinMSqr', d.minInvm * d.minInvm * _et_conversion * _et_conversion, bitId)
734 alg.addvariable(
'MaxMSqr', d.maxInvm * d.maxInvm * _et_conversion * _et_conversion, bitId)
735 alg.addvariable(
'MinDeltaPhi', d.minDphi * _phi_conversion, bitId)
736 alg.addvariable(
'MaxDeltaPhi', d.maxDphi * _phi_conversion, bitId)
738 tm.registerTopoAlgo(alg)
754 "algoname" :
"INVM_INVDPHI_eEMsl6",
761 "ocut1List" : [ 9, 12],
764 "ocut2List" : [ 9, 12 ],
770 for x
in eINVM_DPHIMap:
775 inputList = [d.otype1 + d.olist1, d.otype2 + d.olist1]
777 for bitId, ocut1Value
in enumerate(d.ocut1List):
778 toponames.append (
"%iINVM%i-%iDPHI%i-%s%s%s%s-%s%s%s%s" % (d.minInvm, d.maxInvm, d.minDphi, d.maxDphi,
779 d.otype1,
str(ocut1Value) , d.olist1,
str(d.nleading1)
if d.olist1==
"sl" else "",
780 d.otype2,
str(d.ocut2List[bitId]) , d.olist2,
str(d.nleading2)
if d.olist2==
"sl" else ""))
781 alg = AlgConf.InvariantMassDeltaPhiInclusive2( name = d.algoname, inputs = inputList, outputs = toponames )
783 alg.addgeneric(
'InputWidth1', HW.eEmOutputWidthSort)
784 alg.addgeneric(
'InputWidth2', HW.eEmOutputWidthSort)
785 alg.addgeneric(
'MaxTob1', d.nleading1)
786 alg.addgeneric(
'MaxTob2', d.nleading2)
787 alg.addgeneric(
'NumResultBits', len(toponames))
788 for bitId
in range(len(toponames)):
789 alg.addvariable(
'MinET1',
get_threshold_cut(d.otype1, d.ocut1List[bitId]) * _et_conversion, bitId)
790 alg.addvariable(
'MinET2',
get_threshold_cut(d.otype1, d.ocut2List[bitId]) * _et_conversion, bitId)
791 alg.addvariable(
'MinMSqr', d.minInvm * d.minInvm * _et_conversion * _et_conversion, bitId)
792 alg.addvariable(
'MaxMSqr', d.maxInvm * d.maxInvm * _et_conversion * _et_conversion, bitId)
793 alg.addvariable(
'MinDeltaPhi', d.minDphi * _phi_conversion, bitId)
794 alg.addvariable(
'MaxDeltaPhi', d.maxDphi * _phi_conversion, bitId)
796 tm.registerTopoAlgo(alg)
812 "algoname" :
"INVM_BOOSTDR_eEMsl6",
819 "ocut1List" : [ 9, 12 ],
822 "ocut2List" : [ 9, 12 ],
828 for x
in eINVM_DRMap:
833 inputList = [d.otype1 + d.olist1, d.otype2 + d.olist1]
835 for bitId, ocut1Value
in enumerate(d.ocut1List):
836 toponames.append (
"%iINVM%i-%iDR%i-%s%s%s%s-%s%s%s%s" % (d.minInvm, d.maxInvm, d.minDR, d.maxDR,
837 d.otype1,
str(ocut1Value) , d.olist1,
str(d.nleading1)
if d.olist1==
"sl" else "",
838 d.otype2,
str(d.ocut2List[bitId]) , d.olist2,
str(d.nleading2)
if d.olist2==
"sl" else ""))
840 alg = AlgConf.InvariantMassInclusiveDeltaRSqrIncl2( name = d.algoname, inputs = inputList, outputs = toponames )
841 alg.addgeneric(
'InputWidth1', HW.eEmOutputWidthSort)
842 alg.addgeneric(
'InputWidth2', HW.eEmOutputWidthSort)
843 alg.addgeneric(
'MaxTob1', d.nleading1)
844 alg.addgeneric(
'MaxTob2', d.nleading2)
845 alg.addgeneric(
'NumResultBits', len(toponames))
846 for bitId
in range(len(toponames)):
847 alg.addvariable(
'MinET1',
get_threshold_cut(d.otype1, d.ocut1List[bitId]) * _et_conversion, bitId)
848 alg.addvariable(
'MinET2',
get_threshold_cut(d.otype1, d.ocut2List[bitId]) * _et_conversion, bitId)
849 alg.addvariable(
'MinMSqr', d.minInvm * d.minInvm * _et_conversion * _et_conversion, bitId)
850 alg.addvariable(
'MaxMSqr', d.maxInvm * d.maxInvm * _et_conversion * _et_conversion, bitId)
851 alg.addvariable(
'DeltaRMin', d.minDR*d.minDR*_dr_conversion*_dr_conversion, bitId)
852 alg.addvariable(
'DeltaRMax', d.maxDR*d.maxDR*_dr_conversion*_dr_conversion, bitId)
854 tm.registerTopoAlgo(alg)
867 eINVM_Ranges_DRMap = [
869 "algoname" :
"INVM_BOOSTDR_Ranges_eEM12sl6",
876 "ocut1List" : [12,12],
879 "ocut2List" : [12,12],
885 for x
in eINVM_Ranges_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[bitId], d.maxInvm[bitId], d.minDR[bitId], d.maxDR[bitId],
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[bitId] * d.minInvm[bitId] * _et_conversion * _et_conversion, bitId)
907 alg.addvariable(
'MaxMSqr', d.maxInvm[bitId] * d.maxInvm[bitId] * _et_conversion * _et_conversion, bitId)
908 alg.addvariable(
'DeltaRMin', d.minDR[bitId]*d.minDR[bitId]*_dr_conversion*_dr_conversion, bitId)
909 alg.addvariable(
'DeltaRMax', d.maxDR[bitId]*d.maxDR[bitId]*_dr_conversion*_dr_conversion, bitId)
911 tm.registerTopoAlgo(alg)
925 eINVM_Ranges_Asymm_DRMap = [
927 "algoname" :
"INVM_BOOSTDR_Ranges_Asymm_eEMsl6",
934 "ocut1List" : [12,12],
943 for x
in eINVM_Ranges_Asymm_DRMap:
948 inputList = [d.otype1 + d.olist1, d.otype2 + d.olist1]
950 for bitId, ocut1Value
in enumerate(d.ocut1List):
951 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],
952 d.otype1,
str(ocut1Value) , d.olist1,
str(d.nleading1)
if d.olist1==
"sl" else "",
953 d.otype2,
str(d.ocut2List[bitId]) , d.olist2,
str(d.nleading2)
if d.olist2==
"sl" else ""))
955 alg = AlgConf.InvariantMassInclusiveDeltaRSqrIncl2( name = d.algoname, inputs = inputList, outputs = toponames )
956 alg.addgeneric(
'InputWidth1', HW.eEmOutputWidthSort)
957 alg.addgeneric(
'InputWidth2', HW.eEmOutputWidthSort)
958 alg.addgeneric(
'MaxTob1', d.nleading1)
959 alg.addgeneric(
'MaxTob2', d.nleading2)
960 alg.addgeneric(
'NumResultBits', len(toponames))
961 for bitId
in range(len(toponames)):
962 alg.addvariable(
'MinET1',
get_threshold_cut(d.otype1, d.ocut1List[bitId]) * _et_conversion, bitId)
963 alg.addvariable(
'MinET2',
get_threshold_cut(d.otype1, d.ocut2List[bitId]) * _et_conversion, bitId)
964 alg.addvariable(
'MinMSqr', d.minInvm[bitId] * d.minInvm[bitId] * _et_conversion * _et_conversion, bitId)
965 alg.addvariable(
'MaxMSqr', d.maxInvm[bitId] * d.maxInvm[bitId] * _et_conversion * _et_conversion, bitId)
966 alg.addvariable(
'DeltaRMin', d.minDR[bitId]*d.minDR[bitId]*_dr_conversion*_dr_conversion, bitId)
967 alg.addvariable(
'DeltaRMax', d.maxDR[bitId]*d.maxDR[bitId]*_dr_conversion*_dr_conversion, bitId)
969 tm.registerTopoAlgo(alg)
974 INVM_DR_2MU5VFabMap = [
976 "algoname":
"INVM_DR_2MU5VFab",
981 "otype1" :
"MU5VFab",
985 for x
in INVM_DR_2MU5VFabMap:
992 for bitId
in range(len(d.minDR)):
993 toponames.append(
"%iINVM%i-%iDR%i-%i%s" % ( d.minInvm[bitId], d.maxInvm[bitId],
994 d.minDR[bitId] , d.maxDR[bitId],
998 alg = AlgConf.InvariantMassInclusiveDeltaRSqrIncl1( name = d.algoname, inputs = inputList, outputs = toponames)
999 alg.addgeneric(
'InputWidth', HW.muonOutputWidthSelect)
1000 alg.addgeneric(
'MaxTob', HW.muonOutputWidthSelect)
1001 alg.addgeneric(
'NumResultBits', len(toponames))
1002 for bitId
in range(len(toponames)):
1003 alg.addvariable(
'MinET1', 0*_et_conversion, bitId)
1004 alg.addvariable(
'MinET2', 0*_et_conversion, bitId)
1005 alg.addvariable(
'MinMSqr', d.minInvm[bitId]*d.minInvm[bitId]*_et_conversion*_et_conversion, bitId)
1006 alg.addvariable(
'MaxMSqr', d.maxInvm[bitId]*d.maxInvm[bitId]*_et_conversion*_et_conversion, bitId)
1007 alg.addvariable(
'DeltaRMin', d.minDR[bitId]*d.minDR[bitId]*_dr_conversion*_dr_conversion, bitId)
1008 alg.addvariable(
'DeltaRMax', d.maxDR[bitId]*d.maxDR[bitId]*_dr_conversion*_dr_conversion, bitId)
1009 tm.registerTopoAlgo(alg)
1014 INVM_2MU3VFab_Map = [
1016 "algoname":
"INVM_2MU3VFab",
1018 "maxInvm" : [14,22],
1019 "otype1" :
"MU3VFab",
1023 for x
in INVM_2MU3VFab_Map:
1028 inputList = d.otype1
1030 for bitId
in range(len(d.maxInvm)):
1031 toponames.append(
"%iINVM%i-%i%s" % ( d.minInvm, d.maxInvm[bitId],
1035 alg = AlgConf.InvariantMassInclusive1( name = d.algoname, inputs = inputList, outputs = toponames)
1036 alg.addgeneric(
'InputWidth', HW.muonOutputWidthSelect)
1037 alg.addgeneric(
'MaxTob', HW.muonOutputWidthSelect)
1038 alg.addgeneric(
'NumResultBits', len(toponames))
1039 for bitId
in range(len(toponames)):
1040 alg.addvariable(
'MinET1', 0*_et_conversion, bitId)
1041 alg.addvariable(
'MinET2', 0*_et_conversion, bitId)
1042 alg.addvariable(
'MinMSqr', d.minInvm*d.minInvm*_et_conversion*_et_conversion, bitId)
1043 alg.addvariable(
'MaxMSqr', d.maxInvm[bitId]*d.maxInvm[bitId]*_et_conversion*_et_conversion, bitId)
1044 tm.registerTopoAlgo(alg)
1049 invm_map = {
"algoname":
'INVM_eEMs6' ,
"ocutlist": [ 9, 15 ],
"minInvm": 1,
"maxInvm": 5,
"otype" :
"eEM",
"olist" :
"s",
1050 "nleading" : 1,
"inputwidth": HW.eEmOutputWidthSort}
1051 for x
in [ invm_map ]:
1055 setattr (d, k, x[k])
1056 inputList = d.otype + d.olist
1058 for ocut
in d.ocutlist:
1059 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 "")
1060 toponames.append(toponame)
1061 alg = AlgConf.InvariantMassInclusive2( name = d.algoname, inputs = [inputList,
'eEMs'], outputs = toponames)
1062 alg.addgeneric(
'InputWidth1', d.inputwidth)
1063 alg.addgeneric(
'InputWidth2', HW.eEmOutputWidthSort)
1064 alg.addgeneric(
'MaxTob1', d.nleading)
1065 alg.addgeneric(
'MaxTob2', HW.eEmOutputWidthSort)
1066 alg.addgeneric(
'NumResultBits', len(toponames))
1067 for bitid, ocut
in enumerate(d.ocutlist):
1069 alg.addvariable(
'MinET2', 0*_et_conversion, bitid)
1070 alg.addvariable(
'MinMSqr', d.minInvm*d.minInvm*_et_conversion*_et_conversion, bitid)
1071 alg.addvariable(
'MaxMSqr', d.maxInvm*d.maxInvm*_et_conversion*_et_conversion, bitid)
1072 tm.registerTopoAlgo(alg)
1077 {
"minDr": 0,
"maxDr": 4,
"otype1" :
"MU8Fab" ,
"otype2" :
"CjJ",
"ocut2": 30,
"olist2" :
"ab"},
1078 {
"minDr": 0,
"maxDr": 4,
"otype1" :
"MU5VFab",
"otype2" :
"CjJ",
"ocut2": 40,
"olist2" :
"ab"},
1079 {
"minDr": 0,
"maxDr": 4,
"otype1" :
"MU8Fab" ,
"otype2" :
"CjJ",
"ocut2": 40,
"olist2" :
"ab"},
1080 {
"minDr": 0,
"maxDr": 4,
"otype1" :
"MU3Vab" ,
"otype2" :
"CjJ",
"ocut2": 40,
"olist2" :
"ab"},
1081 {
"minDr": 0,
"maxDr": 4,
"otype1" :
"MU5VFab",
"otype2" :
"CjJ",
"ocut2": 80,
"olist2" :
"ab"},
1082 {
"minDr": 0,
"maxDr": 4,
"otype1" :
"MU5VFab",
"otype2" :
"CjJ",
"ocut2": 90,
"olist2" :
"ab"},
1083 {
"minDr": 0,
"maxDr": 4,
"otype1" :
"MU3VFab",
"otype2" :
"CjJ",
"ocut2": 40,
"olist2" :
"ab"},
1089 setattr (d, k, x[k])
1090 toponame =
"%iDR%02d-%s-%s%s%s" % (d.minDr, d.maxDr, d.otype1, d.otype2,
str(d.ocut2), d.olist2)
1091 log.debug(
"Define %s", toponame)
1092 inputList = [d.otype1, d.otype2 + d.olist2]
1093 alg = AlgConf.DeltaRSqrIncl2( name = toponame, inputs = inputList, outputs = [ toponame ])
1094 alg.addgeneric(
'InputWidth1', HW.muonOutputWidthSelect)
1095 alg.addgeneric(
'InputWidth2', HW.jJetOutputWidthSelect)
1096 alg.addgeneric(
'MaxTob1', HW.muonOutputWidthSelect)
1097 alg.addgeneric(
'MaxTob2', HW.jJetOutputWidthSelect)
1098 alg.addgeneric(
'NumResultBits', 1)
1099 alg.addvariable(
'MinET1', 0*_et_conversion, 0)
1100 alg.addvariable(
'MinET2',
get_threshold_cut(d.otype2, d.ocut2)*_et_conversion, 0)
1101 alg.addvariable(
'DeltaRMin', d.minDr*d.minDr*_dr_conversion*_dr_conversion, 0)
1102 alg.addvariable(
'DeltaRMax', d.maxDr*d.maxDr*_dr_conversion*_dr_conversion, 0)
1103 tm.registerTopoAlgo(alg)
1112 {
"minInvm": 2,
"maxInvm": 8,
"mult": 2,
"otype1" :
"MU3Vab",
"otype2" :
"", },
1113 {
"minInvm": 2,
"maxInvm": 9,
"mult": 2,
"otype1" :
"MU3Vab",
"otype2" :
"", },
1114 {
"minInvm": 8,
"maxInvm": 15,
"mult": 1,
"otype1" :
"MU5VFab",
"otype2" :
"MU3Vab",},
1115 {
"minInvm": 2,
"maxInvm": 8,
"mult": 1,
"otype1" :
"MU5VFab",
"otype2" :
"MU3Vab",},
1116 {
"minInvm": 2,
"maxInvm": 9,
"mult": 1,
"otype1" :
"MU5VFab",
"otype2" :
"MU3Vab",},
1117 {
"minInvm": 8,
"maxInvm": 15,
"mult": 2,
"otype1" :
"MU5VFab",
"otype2" :
"", },
1118 {
"minInvm": 2,
"maxInvm": 9,
"mult": 2,
"otype1" :
"MU5VFab",
"otype2" :
"", },
1119 {
"minInvm": 7,
"maxInvm": 15,
"mult": 2,
"otype1" :
"MU3Vab",
"otype2" :
"", },
1120 {
"minInvm": 7,
"maxInvm": 22,
"mult": 1,
"otype1" :
"MU5VFab",
"otype2" :
"MU3VFab",},
1121 {
"minInvm": 7,
"maxInvm": 14,
"mult": 1,
"otype1" :
"MU5VFab",
"otype2" :
"MU3VFab",},
1122 {
"minInvm": 7,
"maxInvm": 14,
"mult": 2,
"otype1" :
"MU3Vab",
"otype2" :
"", },
1124 for x
in listofalgos:
1128 setattr (d, k, x[k])
1129 obj1 =
"%s%s" % ((
str(d.mult)
if d.mult>1
else ""), d.otype1)
1130 obj2 =
"-%s" % (d.otype2)
1131 toponame =
"%iINVM%i-%s%s" % (d.minInvm, d.maxInvm, obj1,
"" if d.mult>1
else obj2)
1132 log.debug(
"Define %s", toponame)
1133 inputList = [d.otype1]
if (d.mult>1)
else [d.otype1, d.otype2]
1134 algoname = AlgConf.InvariantMassInclusive1
if (d.mult>1)
else AlgConf.InvariantMassInclusive2
1135 alg = algoname( name = toponame, inputs = inputList, outputs = [ toponame ])
1137 alg.addgeneric(
'InputWidth', HW.muonOutputWidthSelect)
1138 alg.addgeneric(
'MaxTob', HW.muonOutputWidthSelect)
1140 alg.addgeneric(
'InputWidth1', HW.muonOutputWidthSelect)
1141 alg.addgeneric(
'InputWidth2', HW.muonOutputWidthSelect)
1142 alg.addgeneric(
'MaxTob1', HW.muonOutputWidthSelect)
1143 alg.addgeneric(
'MaxTob2', HW.muonOutputWidthSelect)
1144 alg.addgeneric(
'NumResultBits', 1)
1145 alg.addvariable(
'MinET1', 0*_et_conversion)
1146 alg.addvariable(
'MinET2', 0*_et_conversion)
1147 alg.addvariable(
'MinMSqr', d.minInvm * d.minInvm *_et_conversion*_et_conversion)
1148 alg.addvariable(
'MaxMSqr', d.maxInvm * d.maxInvm *_et_conversion*_et_conversion)
1149 tm.registerTopoAlgo(alg)
1151 toponame =
"8INVM15-2CMU3Vab"
1152 log.debug(
"Define %s", toponame)
1153 inputList = [
'CMU3Vab']
1154 alg = AlgConf.InvariantMassInclusive1( name = toponame, inputs = inputList, outputs = toponame )
1155 alg.addgeneric(
'InputWidth', HW.muonOutputWidthSelect)
1156 alg.addgeneric(
'MaxTob', HW.muonOutputWidthSelect)
1157 alg.addgeneric(
'NumResultBits', 1)
1158 alg.addvariable(
'MinET1', 0*_et_conversion)
1159 alg.addvariable(
'MinET2', 0*_et_conversion)
1160 alg.addvariable(
'MinMSqr', 8*8*_et_conversion*_et_conversion)
1161 alg.addvariable(
'MaxMSqr', 15*15*_et_conversion*_et_conversion)
1162 tm.registerTopoAlgo(alg)
1165 {
"minInvm": 2,
"maxInvm": 8,
"mult": 1,
"otype1" :
"CMU3Vab",
"otype2" :
"MU3Vab"},
1171 setattr (d, k, x[k])
1172 obj1 =
"%s%s" % ((
str(d.mult)
if d.mult>1
else ""), d.otype1)
1173 obj2 =
"-%s" % (d.otype2)
1174 toponame =
"%iINVM%i-%s%s" % (d.minInvm, d.maxInvm, obj1,
"" if d.mult>1
else obj2)
1175 log.debug(
"Define %s", toponame)
1176 inputList = [d.otype1]
if (d.mult>1)
else [d.otype1, d.otype2]
1177 algoname = AlgConf.InvariantMassInclusive1
if (d.mult>1)
else AlgConf.InvariantMassInclusive2
1178 alg = algoname( name = toponame, inputs = inputList, outputs = [ toponame ])
1180 alg.addgeneric(
'InputWidth', HW.muonOutputWidthSelect)
1181 alg.addgeneric(
'MaxTob', HW.muonOutputWidthSelect)
1182 alg.addgeneric(
'RequireOneBarrel', d.onebarrel)
1184 alg.addgeneric(
'InputWidth1', HW.muonOutputWidthSelect)
1185 alg.addgeneric(
'InputWidth2', HW.muonOutputWidthSelect)
1186 alg.addgeneric(
'MaxTob1', HW.muonOutputWidthSelect)
1187 alg.addgeneric(
'MaxTob2', HW.muonOutputWidthSelect)
1188 alg.addgeneric(
'NumResultBits', 1)
1189 alg.addvariable(
'MinET1', 0*_et_conversion)
1190 alg.addvariable(
'MinET2', 0*_et_conversion)
1191 alg.addvariable(
'MinMSqr', d.minInvm * d.minInvm *_et_conversion*_et_conversion)
1192 alg.addvariable(
'MaxMSqr', d.maxInvm * d.maxInvm *_et_conversion*_et_conversion)
1193 tm.registerTopoAlgo(alg)
1197 {
"minDr": 0,
"maxDr": 24,
"mult": 2,
"otype1" :
"CMU3Vab",
"otype2" :
"", },
1198 {
"minDr": 1,
"maxDr": 24,
"mult": 1,
"otype1" :
"CMU3Vab",
"otype2" :
"MU3Vab", },
1204 setattr (d, k, x[k])
1205 obj1 =
"%s%s" % ((
str(d.mult)
if d.mult>1
else ""), d.otype1)
1206 obj2 =
"-%s" % (d.otype2)
1207 toponame =
"%iDR%i-%s%s" % (d.minDr, d.maxDr, obj1,
"" if d.mult>1
else obj2)
1208 log.debug(
"Define %s", toponame)
1209 inputList = [d.otype1]
if (d.mult>1)
else [d.otype1, d.otype2]
1210 algoname = AlgConf.DeltaRSqrIncl1
if (d.mult>1)
else AlgConf.DeltaRSqrIncl2
1211 alg = algoname( name = toponame, inputs = inputList, outputs = [ toponame ])
1213 alg.addgeneric(
'InputWidth', HW.muonOutputWidthSelect)
1214 alg.addgeneric(
'MaxTob', HW.muonOutputWidthSelect)
1216 alg.addgeneric(
'InputWidth1', HW.muonOutputWidthSelect)
1217 alg.addgeneric(
'InputWidth2', HW.muonOutputWidthSelect)
1218 alg.addgeneric(
'MaxTob1', HW.muonOutputWidthSelect)
1219 alg.addgeneric(
'MaxTob2', HW.muonOutputWidthSelect)
1220 alg.addgeneric(
'NumResultBits', 1)
1221 alg.addvariable(
'MinET1', 0*_et_conversion)
1222 alg.addvariable(
'MinET2', 0*_et_conversion)
1223 alg.addvariable(
'DeltaRMin', d.minDr*d.minDr *_dr_conversion*_dr_conversion)
1224 alg.addvariable(
'DeltaRMax', d.maxDr*d.maxDr *_dr_conversion*_dr_conversion)
1225 tm.registerTopoAlgo(alg)
1229 toponame =
'100RATIO-0MATCH-eTAU40si2-eEMall'
1230 alg = AlgConf.RatioMatch( name = toponame, inputs = [
'eTAUs',
'eEMall'], outputs = [ toponame ] )
1231 alg.addgeneric(
'InputWidth1', HW.eTauOutputWidthSort)
1232 alg.addgeneric(
'InputWidth2', HW.eEmInputWidth)
1233 alg.addgeneric(
'MaxTob1', 2)
1234 alg.addgeneric(
'MaxTob2', HW.eEmInputWidth)
1235 alg.addgeneric(
'NumResultBits', 1)
1237 alg.addvariable(
'MinET2', 0*_et_conversion)
1238 alg.addvariable(
'Ratio', 100, 0)
1239 tm.registerTopoAlgo(alg)
1242 toponame =
'NOT-0MATCH-eTAU40si1-eEMall'
1243 alg = AlgConf.NotMatch( name = toponame, inputs = [
'eTAUs',
'eEMall'], outputs = [ toponame ] )
1244 alg.addgeneric(
'InputWidth1', HW.eTauOutputWidthSort)
1245 alg.addgeneric(
'InputWidth2', HW.eEmInputWidth)
1246 alg.addgeneric(
'MaxTob1', 1)
1247 alg.addgeneric(
'MaxTob2', HW.eEmInputWidth)
1248 alg.addgeneric(
'NumResultBits', 1)
1250 alg.addvariable(
'MinET2', 0*_et_conversion)
1251 alg.addvariable(
'EtaMin1', 0*_eta_conversion)
1252 alg.addvariable(
'EtaMax1', 49*_eta_conversion)
1253 alg.addvariable(
'EtaMin2', 0*_eta_conversion)
1254 alg.addvariable(
'EtaMax2', 49*_eta_conversion)
1255 alg.addvariable(
'DRCut', 0)
1256 tm.registerTopoAlgo(alg)
1259 xemap = [{
"etcut": 0,
"Threlist": [ 40, 50, 55, 60, 65, 75 ]}]
1264 setattr (d, k, x[k])
1265 log.debug(
"Define %s", toponame)
1266 inputList = [
'jXENoSort_1BC',
'AjJall_1BC']
1268 for minxe
in d.Threlist:
1269 toponames.append(
"KF-jXE%s-AjJall" % (minxe))
1270 alg = AlgConf.KalmanMETCorrection( name =
"KF-jXE-AjJall", inputs = inputList, outputs = toponames )
1271 alg.addgeneric(
'InputWidth', HW.jJetInputWidth)
1272 alg.addgeneric(
'NumResultBits', len(toponames))
1273 for key, value
in KFMETweightParameters.items():
1277 alg.addvariable(key, value)
1278 alg.addvariable(
'MinET', 0)
1279 for bitid,minxe
in enumerate(d.Threlist):
1280 alg.addvariable(
'KFXE',
str(minxe*_et_conversion), bitid)
1281 tm.registerTopoAlgo(alg)
1287 {
"otype" :
"LATE-MU",
"ocut" : 10,
"inputwidth": HW.NumberOfDelayedMuons},
1293 setattr (d, k, x[k])
1295 toponame =
"%s%ss1" % ( d.otype,
str(d.ocut) )
1297 log.debug(
"Define %s", toponame)
1301 alg = AlgConf.EtCut( name = toponame, inputs = inputList, outputs = toponame )
1302 alg.addgeneric(
'InputWidth', d.inputwidth)
1303 alg.addgeneric(
'MaxTob', 1)
1304 alg.addgeneric(
'NumResultBits', 1)
1305 alg.addvariable(
'MinET',
str(d.ocut*_et_conversion))
1306 tm.registerTopoAlgo(alg)
1311 {
"itemNameMinHT": 175,
"minHT": 176,
"otype" :
"SCjJ",
"ocut" : 10,
"olist" :
"ab",
"nleading" : HW.jJetOutputWidthSelect,
"inputwidth": HW.jJetOutputWidthSelect,
"oeta" : 26},
1317 setattr (d, k, x[k])
1318 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))
1319 log.debug(
"Define %s", toponame)
1320 inputList = d.otype + d.olist
1321 alg = AlgConf.SimpleCone( name = toponame, inputs = inputList, outputs = [toponame] )
1322 alg.addgeneric(
'InputWidth', d.inputwidth)
1323 alg.addgeneric(
'NumResultBits', 1)
1324 alg.addvariable(
'MinET', d.ocut*_et_conversion)
1325 alg.addvariable(
'MinSumET', d.minHT*_et_conversion)
1326 alg.addvariable(
'MaxRSqr', 15*15*_dr_conversion*_dr_conversion)
1327 tm.registerTopoAlgo(alg)
1331 {
"minInvm" : 0,
"maxInvm": 9,
"otype" :
"eEM",
"ocut1" : 9,
"olist" :
"ab",
"inputwidth": HW.eEmOutputWidthSelect,
"ocut2" : 0},
1337 setattr (d, k, x[k])
1338 inputList = d.otype + d.olist
1339 toponame =
"%iINVM%i-%s%s%s-%s%s" % (d.minInvm, d.maxInvm,
1340 d.otype,
str(d.ocut1) , d.olist,
1342 alg = AlgConf.InvariantMassInclusive1( name = toponame, inputs = inputList, outputs = toponame)
1343 alg.addgeneric(
'InputWidth', d.inputwidth)
1344 alg.addgeneric(
'MaxTob', HW.eEmOutputWidthSelect)
1345 alg.addgeneric(
'NumResultBits', 1)
1348 alg.addvariable(
'MinMSqr', d.minInvm*d.minInvm*_et_conversion*_et_conversion)
1349 alg.addvariable(
'MaxMSqr', d.maxInvm*d.maxInvm*_et_conversion*_et_conversion)
1350 tm.registerTopoAlgo(alg)
1355 {
"minDr": 0,
"maxDr": 3,
"otype1" :
"eEM" ,
"ocut1": 9,
"olist1" :
"ab",
"otype2" :
"CjJ",
"ocut2": 40,
"olist2" :
"ab"}
1361 setattr (d, k, x[k])
1362 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)
1363 log.debug(
"Define %s", toponame)
1364 inputList = [d.otype1 + d.olist1, d.otype2 + d.olist2]
1365 alg = AlgConf.DeltaRSqrIncl2( name = toponame, inputs = inputList, outputs = [ toponame ])
1366 alg.addgeneric(
'InputWidth1', HW.eEmOutputWidthSelect)
1367 alg.addgeneric(
'InputWidth2', HW.jJetOutputWidthSelect)
1368 alg.addgeneric(
'MaxTob1', HW.eEmOutputWidthSelect)
1369 alg.addgeneric(
'MaxTob2', HW.jJetOutputWidthSelect)
1370 alg.addgeneric(
'NumResultBits', 1)
1371 alg.addvariable(
'MinET1',
get_threshold_cut(d.otype1, d.ocut1)*_et_conversion, 0)
1372 alg.addvariable(
'MinET2',
get_threshold_cut(d.otype2, d.ocut2)*_et_conversion, 0)
1373 alg.addvariable(
'DeltaRMin', d.minDr*d.minDr*_dr_conversion*_dr_conversion, 0)
1374 alg.addvariable(
'DeltaRMax', d.maxDr*d.maxDr*_dr_conversion*_dr_conversion, 0)
1375 tm.registerTopoAlgo(alg)
1381 {
"minDphi": 27,
"maxDphi": 32,
"otype" :
"eEM",
"ocut1" : 0,
"olist" :
"s",
"nleading1" : 1,
"inputwidth1": HW.eEmOutputWidthSort,
"ocut2" : 0,
"nleading2": 6},
1387 setattr (d, k, x[k])
1388 toponame =
"%iDPHI%i-%s%s%s%s-%s%s%s%s" % (d.minDphi, d.maxDphi,
1389 d.otype,
str(d.ocut1)
if d.ocut1 > 0
else "", d.olist,
str(d.nleading1)
if d.olist==
"s" else "",
1390 d.otype,
str(d.ocut2)
if d.ocut2 > 0
else "", d.olist,
str(d.nleading2)
if d.olist==
"s" else "")
1391 log.debug(
"Define %s", toponame)
1392 inputList = d.otype + d.olist
1393 alg = AlgConf.DeltaPhiIncl1( name = toponame, inputs = inputList, outputs = toponame )
1394 alg.addgeneric(
'InputWidth', d.inputwidth1)
1395 alg.addgeneric(
'MaxTob', d.nleading2)
1396 alg.addgeneric(
'NumResultBits', 1)
1399 alg.addvariable(
'MinDeltaPhi', d.minDphi*_phi_conversion, 0)
1400 alg.addvariable(
'MaxDeltaPhi', d.maxDphi*_phi_conversion, 0)
1401 tm.registerTopoAlgo(alg)
1405 {
"minDr": 0,
"maxDr": 28,
"otype1" :
"eTAU" ,
"ocut1": 30,
"olist1" :
"abl",
1406 "nleading1": HW.eTauOutputWidthSelect,
"inputwidth1": HW.eTauOutputWidthSelect,
"otype2" :
"eTAU",
"ocut2": 20,
"olist2" :
"abl",
1407 "nleading2": HW.eTauOutputWidthSelect,
"inputwidth2": HW.eTauOutputWidthSelect},
1408 {
"minDr": 0,
"maxDr": 28,
"otype1" :
"eTAU" ,
"ocut1": 30,
"olist1" :
"abm",
1409 "nleading1": HW.eTauOutputWidthSelect,
"inputwidth1": HW.eTauOutputWidthSelect,
"otype2" :
"eTAU",
"ocut2": 20,
"olist2" :
"abm",
1410 "nleading2": HW.eTauOutputWidthSelect,
"inputwidth2": HW.eTauOutputWidthSelect},
1416 setattr (d, k, x[k])
1417 obj1 =
"%s%s%s" % (d.otype1,
str(d.ocut1), d.olist1)
1418 obj2 =
"-%s%s%s" % (d.otype2,
str(d.ocut2), d.olist2)
1419 toponame =
"%iDR%i-%s%s" % (d.minDr, d.maxDr, obj1, obj2)
1420 log.debug(
"Define %s", toponame)
1421 inputList = [d.otype1 + d.olist1]
if d.otype1==d.otype2
else [d.otype1 + d.olist1, d.otype2 + d.olist2]
1422 algoname = AlgConf.DeltaRSqrIncl1
if d.otype1==d.otype2
else AlgConf.DeltaRSqrIncl2
1423 alg = algoname( name = toponame, inputs = inputList, outputs = [ toponame ])
1424 if d.otype1==d.otype2:
1425 alg.addgeneric(
'InputWidth', d.inputwidth1)
1426 alg.addgeneric(
'MaxTob', d.nleading1)
1428 alg.addgeneric(
'InputWidth1', d.inputwidth1)
1429 alg.addgeneric(
'InputWidth2', d.inputwidth2)
1430 alg.addgeneric(
'MaxTob1', d.nleading1)
1431 alg.addgeneric(
'MaxTob2', d.nleading2)
1432 alg.addgeneric(
'NumResultBits', 1)
1433 if d.otype1==d.otype2:
1436 alg.addvariable(
'DeltaRMin', d.minDr*d.minDr*_dr_conversion*_dr_conversion)
1437 alg.addvariable(
'DeltaRMax', d.maxDr*d.maxDr*_dr_conversion*_dr_conversion)
1439 alg.addvariable(
'MinET1',
get_threshold_cut(d.otype1, d.ocut1)*_et_conversion , 0)
1440 alg.addvariable(
'MinET2',
get_threshold_cut(d.otype2, d.ocut2)*_et_conversion , 0)
1441 alg.addvariable(
'DeltaRMin', d.minDr*d.minDr*_dr_conversion*_dr_conversion, 0)
1442 alg.addvariable(
'DeltaRMax', d.maxDr*d.maxDr*_dr_conversion*_dr_conversion, 0)
1443 tm.registerTopoAlgo(alg)
1446 DISAMB_DR_jJ_eTau_eTau_Map = [
1448 "algoname":
"2DISAMB_jJ55ab_DR_eTAU_eTAU",
1455 "nleading1": HW.eTauOutputWidthSelect,
1456 "inputwidth1": HW.eTauOutputWidthSelect,
1459 "nleading2": HW.eTauOutputWidthSelect,
1460 "inputwidth2": HW.eTauOutputWidthSelect,
1464 "nleading3": HW.jJetOutputWidthSelect,
1465 "inputwidth3": HW.jJetOutputWidthSelect,
1469 "algoname":
"2DISAMB_jJ50ab_DR_eTAU_eTAU",
1476 "nleading1": HW.eTauOutputWidthSelect,
1477 "inputwidth1": HW.eTauOutputWidthSelect,
1480 "nleading2": HW.eTauOutputWidthSelect,
1481 "inputwidth2": HW.eTauOutputWidthSelect,
1485 "nleading3": HW.jJetOutputWidthSelect,
1486 "inputwidth3": HW.jJetOutputWidthSelect,
1490 "algoname":
"2DISAMB_jJ40ab_DR_eTAU_eTAU",
1497 "nleading1": HW.eTauOutputWidthSelect,
1498 "inputwidth1": HW.eTauOutputWidthSelect,
1501 "nleading2": HW.eTauOutputWidthSelect,
1502 "inputwidth2": HW.eTauOutputWidthSelect,
1506 "nleading3": HW.jJetOutputWidthSelect,
1507 "inputwidth3": HW.jJetOutputWidthSelect,
1511 "algoname":
"2DISAMB_jJ30ab_DR_eTAU_eTAU",
1518 "nleading1": HW.eTauOutputWidthSelect,
1519 "inputwidth1": HW.eTauOutputWidthSelect,
1522 "nleading2": HW.eTauOutputWidthSelect,
1523 "inputwidth2": HW.eTauOutputWidthSelect,
1527 "nleading3": HW.jJetOutputWidthSelect,
1528 "inputwidth3": HW.jJetOutputWidthSelect,
1532 for x
in DISAMB_DR_jJ_eTau_eTau_Map:
1537 inputList = [d.otype1 + d.olist1, d.otype2 + d.olist2, d.otype3 + d.olist3]
1539 for bitId
in range(len(d.maxDR)):
1540 obj1 =
"-%s%s%s" % (d.otype1,
str(d.ocut1), d.olist1)
1541 obj2 =
"-%s%s%s" % (d.otype2,
str(d.ocut2), d.olist2)
1542 obj3 =
"%s%s%s" % (d.otype3,
str(d.ocut3), d.olist3)
1543 toponames.append(
"%sDISAMB-%s-%dDR%d%s%s" % (
str(d.disamb)
if d.disamb>0
else "",
1544 obj3, d.minDR, d.maxDR[bitId], obj1, obj2))
1546 alg = AlgConf.DisambiguationDRIncl3( name = d.algoname, inputs = inputList, outputs = toponames )
1547 alg.addgeneric(
'InputWidth1', d.inputwidth1)
1548 alg.addgeneric(
'InputWidth2', d.inputwidth2)
1549 alg.addgeneric(
'InputWidth3', d.inputwidth3)
1550 alg.addgeneric(
'MaxTob1', d.nleading1)
1551 alg.addgeneric(
'MaxTob2', d.nleading2)
1552 alg.addgeneric(
'MaxTob3', d.nleading3)
1553 alg.addgeneric(
'NumResultBits', len(toponames))
1555 for bitId
in range(len(toponames)):
1556 alg.addvariable(
'MinET1',
get_threshold_cut(d.otype1, d.ocut1)*_et_conversion, bitId)
1557 alg.addvariable(
'MinET2',
get_threshold_cut(d.otype2, d.ocut2)*_et_conversion, bitId)
1558 alg.addvariable(
'MinET3',
get_threshold_cut(d.otype3, d.ocut3)*_et_conversion, bitId)
1559 alg.addvariable(
'DisambDRSqrMin', d.minDR*d.minDR*_dr_conversion*_dr_conversion, bitId)
1560 alg.addvariable(
'DisambDRSqrMax', d.maxDR[bitId]*d.maxDR[bitId]*_dr_conversion*_dr_conversion, bitId)
1561 alg.addvariable(
'DisambDRSqr', d.disamb*d.disamb*_dr_conversion*_dr_conversion, bitId)
1563 tm.registerTopoAlgo(alg)
1569 DR_eTau30_eTau20_Map = [
1571 "algoname":
"DR_eTAU30ab_eTAU20ab",
1579 "inputwidth": HW.eTauOutputWidthSelect,
1583 for x
in DR_eTau30_eTau20_Map:
1588 inputList = [d.otype1 + d.olist1]
1590 for bitId
in range(len(d.maxDR)):
1591 obj1 =
"-%s%s%s" % (d.otype1,
str(d.ocut1), d.olist1)
1592 obj2 =
"-%s%s%s" % (d.otype2,
str(d.ocut2), d.olist2)
1593 toponames.append(
"%dDR%d%s%s" % ( d.minDR, d.maxDR[bitId], obj1, obj2))
1595 alg = AlgConf.DeltaRSqrIncl1( name = d.algoname, inputs = inputList, outputs = toponames )
1597 alg.addgeneric(
'InputWidth', d.inputwidth)
1598 alg.addgeneric(
'MaxTob', HW.eTauOutputWidthSelect)
1599 alg.addgeneric(
'NumResultBits', len(toponames) )
1601 for bitId
in range(len(toponames)):
1602 alg.addvariable(
'MinET1',
get_threshold_cut(d.otype1, d.ocut1)*_et_conversion, bitId)
1603 alg.addvariable(
'MinET2',
get_threshold_cut(d.otype2, d.ocut2)*_et_conversion, bitId)
1604 alg.addvariable(
'DeltaRMin', d.minDR*d.minDR*_dr_conversion*_dr_conversion, bitId)
1605 alg.addvariable(
'DeltaRMax', d.maxDR[bitId]*d.maxDR[bitId]*_dr_conversion*_dr_conversion, bitId)
1608 tm.registerTopoAlgo(alg)
1613 "otype1" :
"eTAU",
"ocut1": 30,
"olist1":
"abl",
"nleading1": HW.eTauOutputWidthSelect,
"inputwidth1": HW.eTauOutputWidthSelect,
1614 "otype2" :
"eTAU",
"ocut2": 20,
"olist2":
"abl",
"nleading2": HW.eTauOutputWidthSelect,
"inputwidth2": HW.eTauOutputWidthSelect,
1615 "otype3" :
"jJ" ,
"ocut3": 55,
"olist3":
"ab" ,
"nleading3": HW.jJetOutputWidthSelect,
"inputwidth3": HW.jJetOutputWidthSelect,
1616 "drcutmin": 0,
"drcutmax": 28},
1618 "otype1" :
"eTAU",
"ocut1": 30,
"olist1":
"abm",
"nleading1": HW.eTauOutputWidthSelect,
"inputwidth1": HW.eTauOutputWidthSelect,
1619 "otype2" :
"eTAU",
"ocut2": 20,
"olist2":
"abm",
"nleading2": HW.eTauOutputWidthSelect,
"inputwidth2": HW.eTauOutputWidthSelect,
1620 "otype3" :
"jJ" ,
"ocut3": 55,
"olist3":
"ab" ,
"nleading3": HW.jJetOutputWidthSelect,
"inputwidth3": HW.jJetOutputWidthSelect,
1621 "drcutmin": 0,
"drcutmax": 28},
1623 "otype1" :
"eTAU",
"ocut1": 30,
"olist1":
"ab",
"nleading1": HW.eTauOutputWidthSelect,
"inputwidth1": HW.eTauOutputWidthSelect,
1624 "otype2" :
"eTAU",
"ocut2": 20,
"olist2":
"ab",
"nleading2": HW.eTauOutputWidthSelect,
"inputwidth2": HW.eTauOutputWidthSelect,
1625 "otype3" :
"jJ" ,
"ocut3": 55,
"olist3":
"ab" ,
"nleading3": HW.jJetOutputWidthSelect,
"inputwidth3": HW.jJetOutputWidthSelect,
1626 "drcutmin": 4 ,
"drcutmax": 28},
1628 "otype1" :
"eTAU",
"ocut1": 30,
"olist1":
"ab",
"nleading1": HW.eTauOutputWidthSelect,
"inputwidth1": HW.eTauOutputWidthSelect,
1629 "otype2" :
"eTAU",
"ocut2": 20,
"olist2":
"ab",
"nleading2": HW.eTauOutputWidthSelect,
"inputwidth2": HW.eTauOutputWidthSelect,
1630 "otype3" :
"jJ" ,
"ocut3": 55,
"olist3":
"ab" ,
"nleading3": HW.jJetOutputWidthSelect,
"inputwidth3": HW.jJetOutputWidthSelect,
1631 "drcutmin": 4 ,
"drcutmax": 32},
1633 "otype1" :
"eTAU",
"ocut1": 30,
"olist1":
"ab",
"nleading1": HW.eTauOutputWidthSelect,
"inputwidth1": HW.eTauOutputWidthSelect,
1634 "otype2" :
"eTAU",
"ocut2": 20,
"olist2":
"ab",
"nleading2": HW.eTauOutputWidthSelect,
"inputwidth2": HW.eTauOutputWidthSelect,
1635 "otype3" :
"jJ" ,
"ocut3": 55,
"olist3":
"ab" ,
"nleading3": HW.jJetOutputWidthSelect,
"inputwidth3": HW.jJetOutputWidthSelect,
1636 "drcutmin": 10 ,
"drcutmax": 32},
1642 setattr (d, k, x[k])
1643 obj1 =
"-%s%s%s" % (d.otype1,
str(d.ocut1), d.olist1)
1644 obj2 =
"-%s%s%s" % (d.otype2,
str(d.ocut2), d.olist2)
1645 obj3 =
"%s%s%s" % (d.otype3,
str(d.ocut3), d.olist3)
1646 toponame =
"%sDISAMB-%s-%dDR%d%s%s" % (
str(d.disamb)
if d.disamb>0
else "", obj3, d.drcutmin, d.drcutmax, obj1, obj2)
1647 log.debug(
"Define %s", toponame)
1648 inputList = [d.otype1 + d.olist1, d.otype2 + d.olist2, d.otype3 + d.olist3]
1649 alg = AlgConf.DisambiguationDRIncl3( name = toponame, inputs = inputList, outputs = [ toponame ])
1650 alg.addgeneric(
'InputWidth1', d.inputwidth1)
1651 alg.addgeneric(
'InputWidth2', d.inputwidth2)
1652 alg.addgeneric(
'InputWidth3', d.inputwidth3)
1653 alg.addgeneric(
'MaxTob1', d.nleading1)
1654 alg.addgeneric(
'MaxTob2', d.nleading2)
1655 alg.addgeneric(
'MaxTob3', d.nleading3)
1656 alg.addgeneric(
'NumResultBits', 1)
1657 alg.addvariable(
'MinET1',
get_threshold_cut(d.otype1, d.ocut1)*_et_conversion, 0)
1658 alg.addvariable(
'MinET2',
get_threshold_cut(d.otype2, d.ocut2)*_et_conversion, 0)
1659 alg.addvariable(
'MinET3',
get_threshold_cut(d.otype3, d.ocut3)*_et_conversion, 0)
1660 alg.addvariable(
'DisambDRSqrMin', d.drcutmin*d.drcutmin*_dr_conversion*_dr_conversion, 0)
1661 alg.addvariable(
'DisambDRSqrMax', d.drcutmax*d.drcutmax*_dr_conversion*_dr_conversion, 0)
1662 alg.addvariable(
'DisambDRSqr', d.disamb*d.disamb*_dr_conversion*_dr_conversion, 0)
1663 tm.registerTopoAlgo(alg)
1668 {
"minDeta": 0,
"maxDeta": 20,
"otype" :
"jJ",
"ocut1" : 90,
"olist" :
"s",
1669 "nleading1" : 1,
"inputwidth1": HW.jJetOutputWidthSort,
"ocut2" : 0,
"nleading2": 2},
1670 {
"minDeta": 0,
"maxDeta" : 24,
"otype" :
"eTAU" ,
"olist" :
"s",
"inputwidth1": HW.eTauOutputWidthSort,
1671 "ocut1" : 30,
"nleading1": 2,
1672 "ocut2" : 12,
"nleading2": 2},
1678 setattr (d, k, x[k])
1679 toponame =
"%iDETA%i-%s%s%s%s-%s%s%s%s" % (d.minDeta, d.maxDeta,
1680 d.otype, d.ocut1
if d.ocut1 > 0
else "", d.olist, d.nleading1,
1681 d.otype, d.ocut2
if d.ocut2 > 0
else "", d.olist, d.nleading2)
1682 log.debug(
"Define %s", toponame)
1683 inputList = d.otype + d.olist
1684 alg = AlgConf.DeltaEtaIncl1( name = toponame, inputs = inputList, outputs = toponame )
1685 alg.addgeneric(
'InputWidth', d.inputwidth1)
1686 alg.addgeneric(
'MaxTob', d.nleading2)
1687 alg.addgeneric(
'NumResultBits', 1)
1688 alg.addvariable(
'MinET1',
get_threshold_cut(d.otype, d.ocut1)*_et_conversion, 0)
1689 alg.addvariable(
'MinET2',
get_threshold_cut(d.otype, d.ocut2)*_et_conversion, 0)
1690 alg.addvariable(
'MinDeltaEta', d.minDeta*_eta_conversion, 0)
1691 alg.addvariable(
'MaxDeltaEta', d.maxDeta*_eta_conversion, 0)
1692 tm.registerTopoAlgo(alg)
1698 DPHI_jXE40delay_jJ40s_map = [
1700 "algoname" :
"DPHI_jXE40delay_jJ40s",
1703 "InputWidth1": HW.metOutputWidth,
1704 "InputWidth2": HW.jJetOutputWidthSort,
1707 "MinET1" : 40*_et_conversion,
1708 "MinET2" : 40*_et_conversion,
1709 "MinDeltaPhi": 0*_phi_conversion,
1710 "phi_thresholds": [10, 99],
1714 for x
in DPHI_jXE40delay_jJ40s_map:
1719 inputList = [
'jXEs',
'jJs']
1721 for bitId
in range(len(d.phi_thresholds)):
1722 toponames.append(
"0DPHI%d-jXE40delay-jJ40s" % (d.phi_thresholds[bitId]))
1724 alg = AlgConf.DeltaPhiIncl2( name = d.algoname, inputs = inputList, outputs = toponames )
1726 alg.addgeneric(
'InputWidth1', d.InputWidth1)
1727 alg.addgeneric(
'InputWidth2', d.InputWidth2)
1728 alg.addgeneric(
'MaxTob1', d.MaxTob1)
1729 alg.addgeneric(
'MaxTob2', d.MaxTob2)
1730 alg.addgeneric(
'NumResultBits', len(toponames) )
1732 for bitId
in range(len(toponames)):
1733 alg.addvariable(
'MinET1', d.MinET1, bitId)
1734 alg.addvariable(
'MinET2', d.MinET2, bitId)
1735 alg.addvariable(
'MinDeltaPhi', d.MinDeltaPhi, bitId)
1736 alg.addvariable(
'MaxDeltaPhi', d.phi_thresholds[bitId]*_phi_conversion, bitId)
1737 tm.registerTopoAlgo(alg)
1742 "otype1" :
"eTAU",
"ocut1": 20,
"olist1":
"ab",
"nleading1": HW.eTauOutputWidthSelect,
"inputwidth1": HW.eTauOutputWidthSelect,
1743 "otype2" :
"eTAU",
"ocut2": 12,
"olist2":
"ab",
"nleading2": HW.eTauOutputWidthSelect,
"inputwidth2": HW.eTauOutputWidthSelect,
1744 "otype3" :
"jJ",
"ocut3": 40,
"olist3":
"ab",
"nleading3": HW.jJetOutputWidthSelect,
"inputwidth3": HW.jJetOutputWidthSelect,
1745 "drcutmin": 0,
"drcutmax": 10},
1751 setattr (d, k, x[k])
1752 obj1 =
"-%s%s%s" % (d.otype1,
str(d.ocut1), d.olist1)
1753 obj2 =
"-%s%s%s" % (d.otype2,
str(d.ocut2), d.olist2)
1754 obj3 =
"%s%s%s" % (d.otype3,
str(d.ocut3), d.olist3)
1755 toponame =
"%sDISAMB-%s-%dDR%d%s%s" % (
str(d.disamb)
if d.disamb>0
else "", obj3, d.drcutmin, d.drcutmax, obj1, obj2)
1756 log.debug(
"Define %s", toponame)
1757 inputList = [d.otype1 + d.olist1, d.otype2 + d.olist2, d.otype3 + d.olist3]
1758 alg = AlgConf.DisambiguationDRIncl3( name = toponame, inputs = inputList, outputs = [ toponame ])
1759 alg.addgeneric(
'InputWidth1', d.inputwidth1)
1760 alg.addgeneric(
'InputWidth2', d.inputwidth2)
1761 alg.addgeneric(
'InputWidth3', d.inputwidth3)
1762 alg.addgeneric(
'MaxTob1', d.nleading1)
1763 alg.addgeneric(
'MaxTob2', d.nleading2)
1764 alg.addgeneric(
'MaxTob3', d.nleading3)
1765 alg.addgeneric(
'NumResultBits', 1)
1766 alg.addvariable(
'MinET1',
get_threshold_cut(d.otype1, d.ocut1)*_et_conversion, 0)
1767 alg.addvariable(
'MinET2',
get_threshold_cut(d.otype2, d.ocut2)*_et_conversion, 0)
1768 alg.addvariable(
'MinET3',
get_threshold_cut(d.otype3, d.ocut3)*_et_conversion, 0)
1769 alg.addvariable(
'DisambDRSqrMin', d.drcutmin*d.drcutmin*_dr_conversion*_dr_conversion, 0)
1770 alg.addvariable(
'DisambDRSqrMax', d.drcutmax*d.drcutmax*_dr_conversion*_dr_conversion, 0)
1771 alg.addvariable(
'DisambDRSqr', d.disamb*d.disamb*_dr_conversion*_dr_conversion, 0)
1772 tm.registerTopoAlgo(alg)
1783 "algoname" :
"ADVAE2A-jJ0s-eTAU0s-MU0s-jXE0s",
1784 "otype1" :
"jJ",
"olist1":
"s",
"inputwidth1": 6,
"nleading1": 6,
1785 "otype2" :
"eTAU",
"olist2":
"s",
"inputwidth2": 6,
"nleading2": 4,
1786 "otype3" :
"MU",
"olist3":
"s",
"inputwidth3": 6,
"nleading3": 4,
1787 "otype4" :
"jXE",
"olist4":
"s",
"inputwidth4": 1,
"nleading4": 1,
1788 "WPList" : [
"Tight",
"Loose"],
1793 "AnomalyScoreThresh" : [1521991, 1333204],
1798 setattr (d, k, algo[k])
1801 toponames.append(
"ADVAE2A-%s%s0%s-%s%s0%s-%s%s0%s-%s0%s-%s" %(
str(d.nleading1), d.otype1, d.olist1,
1802 str(d.nleading2), d.otype2, d.olist2,
1803 str(d.nleading3), d.otype3, d.olist3,
1806 inputList = [d.otype1 + d.olist1, d.otype2 + d.olist2, d.otype3 + d.olist3, d.otype4 + d.olist4]
1807 alg = AlgConf.ADVAE_2A( name = d.algoname, inputs = inputList, outputs = toponames)
1808 alg.addgeneric(
'InputWidth1', d.inputwidth1)
1809 alg.addgeneric(
'InputWidth2', d.inputwidth2)
1810 alg.addgeneric(
'InputWidth3', d.inputwidth3)
1811 alg.addgeneric(
'InputWidth4', d.inputwidth4)
1812 alg.addgeneric(
'MaxTob1', d.nleading1)
1813 alg.addgeneric(
'MaxTob2', d.nleading2)
1814 alg.addgeneric(
'MaxTob3', d.nleading3)
1815 alg.addgeneric(
'MaxTob4', d.nleading4)
1816 alg.addgeneric(
'NumResultBits', len(toponames))
1817 alg.addgeneric(
'ADVAEVersion', 1)
1818 alg.addvariable(
'MinET1', d.MinET1 * _et_conversion)
1819 alg.addvariable(
'MinET2', d.MinET2 * _et_conversion)
1820 alg.addvariable(
'MinET3', d.MinET3 * _et_conversion)
1821 alg.addvariable(
'MinET4', d.MinET4 * _et_conversion)
1822 for bitId
in range(len(toponames)):
1823 alg.addvariable(
'AnomalyScoreThresh', d.AnomalyScoreThresh[bitId], bitId)
1824 tm.registerTopoAlgo(alg)
1828 "otype1" :
"eTAU",
"ocut1": 20,
"olist1":
"ab",
"nleading1": HW.eTauOutputWidthSelect,
"inputwidth1": HW.eTauOutputWidthSelect,
1829 "otype2" :
"eTAU",
"ocut2": 12,
"olist2":
"ab",
"nleading2": HW.eTauOutputWidthSelect,
"inputwidth2": HW.eTauOutputWidthSelect,
1830 "otype3" :
"jJ",
"ocut3": 30,
"olist3":
"ab",
"nleading3": HW.jJetOutputWidthSelect,
"inputwidth3": HW.jJetOutputWidthSelect,
1831 "drcutmin": 0,
"drcutmax": 10},
1837 setattr (d, k, x[k])
1838 obj1 =
"-%s%s%s" % (d.otype1,
str(d.ocut1), d.olist1)
1839 obj2 =
"-%s%s%s" % (d.otype2,
str(d.ocut2), d.olist2)
1840 obj3 =
"%s%s%s" % (d.otype3,
str(d.ocut3), d.olist3)
1841 toponame =
"%sDISAMB-%s-%dDR%d%s%s" % (
str(d.disamb)
if d.disamb>0
else "", obj3, d.drcutmin, d.drcutmax, obj1, obj2)
1842 log.debug(
"Define %s", toponame)
1843 inputList = [d.otype1 + d.olist1, d.otype2 + d.olist2, d.otype3 + d.olist3]
1844 alg = AlgConf.DisambiguationDRIncl3( name = toponame, inputs = inputList, outputs = [ toponame ])
1845 alg.addgeneric(
'InputWidth1', d.inputwidth1)
1846 alg.addgeneric(
'InputWidth2', d.inputwidth2)
1847 alg.addgeneric(
'InputWidth3', d.inputwidth3)
1848 alg.addgeneric(
'MaxTob1', d.nleading1)
1849 alg.addgeneric(
'MaxTob2', d.nleading2)
1850 alg.addgeneric(
'MaxTob3', d.nleading3)
1851 alg.addgeneric(
'NumResultBits', 1)
1852 alg.addvariable(
'MinET1',
get_threshold_cut(d.otype1, d.ocut1)*_et_conversion, 0)
1853 alg.addvariable(
'MinET2',
get_threshold_cut(d.otype2, d.ocut2)*_et_conversion, 0)
1854 alg.addvariable(
'MinET3',
get_threshold_cut(d.otype3, d.ocut3)*_et_conversion, 0)
1855 alg.addvariable(
'DisambDRSqrMin', d.drcutmin*d.drcutmin*_dr_conversion*_dr_conversion, 0)
1856 alg.addvariable(
'DisambDRSqrMax', d.drcutmax*d.drcutmax*_dr_conversion*_dr_conversion, 0)
1857 alg.addvariable(
'DisambDRSqr', d.disamb*d.disamb*_dr_conversion*_dr_conversion, 0)
1858 tm.registerTopoAlgo(alg)
1862 {
"itemNameMinInvm": 400,
"minInvm": 640 ,
"minDphi": 0,
"maxDphiList": [26, 24, 22, 20],
1863 "otype1" :
"AjJ",
"ocut1" : 60,
"olist1" :
"s",
"nleading1" : 6,
"inputwidth": HW.jJetOutputWidthSort,
1864 "otype2" :
"AjJ",
"ocut2" : 50,
"olist2" :
"s",
"nleading2" : 6 }
1866 for x
in NFFDphimap:
1870 setattr (d, k, x[k])
1871 inputList = [d.otype1 + d.olist1, d.otype2 + d.olist1]
1873 for maxDphi
in d.maxDphiList:
1874 toponames.append (
"%iINVM-%iDPHI%i-%s%s%s%s-%s%s%s%s" % (d.itemNameMinInvm, d.minDphi, maxDphi,
1875 d.otype1,
str(d.ocut1) , d.olist1,
str(d.nleading1)
if d.olist1==
"s" else "",
1876 d.otype2,
str(d.ocut2) , d.olist2,
str(d.nleading2)
if d.olist2==
"s" else ""))
1877 alg = AlgConf.InvariantMassDeltaPhiInclusive2( name =
'jINVM_DPHI', inputs = inputList, outputs = toponames)
1878 alg.addgeneric(
'InputWidth1', d.inputwidth)
1879 alg.addgeneric(
'InputWidth2', d.inputwidth)
1880 alg.addgeneric(
'MaxTob1', d.nleading1)
1881 alg.addgeneric(
'MaxTob2', d.nleading2)
1882 alg.addgeneric(
'NumResultBits', len(toponames))
1883 for bitid,maxDphi
in enumerate(d.maxDphiList):
1884 alg.addvariable(
'MinET1',
get_threshold_cut(d.otype1, d.ocut1)*_et_conversion , bitid)
1885 alg.addvariable(
'MinET2',
get_threshold_cut(d.otype2, d.ocut2)*_et_conversion , bitid)
1886 alg.addvariable(
'MinMSqr', d.minInvm*d.minInvm *_et_conversion*_et_conversion , bitid)
1887 alg.addvariable(
'MaxMSqr', _no_m_upper_threshold , bitid)
1888 alg.addvariable(
'MinDeltaPhi', d.minDphi*_phi_conversion , bitid)
1889 alg.addvariable(
'MaxDeltaPhi', maxDphi*_phi_conversion, bitid)
1890 tm.registerTopoAlgo(alg)
1895 {
"itemNameMinInvm": 400,
"minInvm": 640 ,
"minDphi": 0,
"maxDphiList": [26, 24, 22, 20],
1896 "otype1" :
"jJ",
"ocut1" : 60,
"olist1" :
"s",
"nleading1" : 6,
"inputwidth": HW.jJetOutputWidthSort,
1897 "otype2" :
"AjJ",
"ocut2" : 50,
"olist2" :
"s",
"nleading2" : 6 }
1899 for x
in NFFDphimap:
1903 setattr (d, k, x[k])
1904 inputList = [d.otype1 + d.olist1, d.otype2 + d.olist1]
1906 for maxDphi
in d.maxDphiList:
1907 toponames.append (
"%iINVM-%iDPHI%i-%s%s%s%s-%s%s%s%s" % (d.itemNameMinInvm, d.minDphi, maxDphi,
1908 d.otype1,
str(d.ocut1) , d.olist1,
str(d.nleading1)
if d.olist1==
"s" else "",
1909 d.otype2,
str(d.ocut2) , d.olist2,
str(d.nleading2)
if d.olist2==
"s" else ""))
1910 alg = AlgConf.InvariantMassDeltaPhiInclusive2( name =
'jINVM_DPHI_NFF', inputs = inputList, outputs = toponames)
1911 alg.addgeneric(
'InputWidth1', d.inputwidth)
1912 alg.addgeneric(
'InputWidth2', d.inputwidth)
1913 alg.addgeneric(
'MaxTob1', d.nleading1)
1914 alg.addgeneric(
'MaxTob2', d.nleading2)
1915 alg.addgeneric(
'NumResultBits', len(toponames))
1916 for bitid,maxDphi
in enumerate(d.maxDphiList):
1917 alg.addvariable(
'MinET1',
get_threshold_cut(d.otype1, d.ocut1)*_et_conversion , bitid)
1918 alg.addvariable(
'MinET2',
get_threshold_cut(d.otype2, d.ocut2)*_et_conversion , bitid)
1919 alg.addvariable(
'MinMSqr', d.minInvm*d.minInvm *_et_conversion*_et_conversion , bitid)
1920 alg.addvariable(
'MaxMSqr', _no_m_upper_threshold , bitid)
1921 alg.addvariable(
'MinDeltaPhi', d.minDphi*_phi_conversion , bitid)
1922 alg.addvariable(
'MaxDeltaPhi', maxDphi*_phi_conversion, bitid)
1923 tm.registerTopoAlgo(alg)
1928 {
"itemNameMinInvm": 400,
"minInvm": 640,
"otype1" :
"AjJ",
"ocut1": 60,
"olist1" :
"s",
"nleading1" : 6,
"inputwidth1": HW.jJetOutputWidthSort,
1929 "otype2" :
"AjJ",
"ocut2": 50,
"olist2" :
"s",
"nleading2" : 6,
"inputwidth2": HW.jJetOutputWidthSort,
"applyEtaCut":1,
1930 "minEta1": 0 ,
"maxEta1": 32 ,
"minEta2": 30 ,
"maxEta2": 49 , },
1936 setattr (d, k, x[k])
1937 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)
1938 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)
1939 inputList = [d.otype1 + d.olist1, d.otype2 + d.olist2]
1940 toponame =
"%iINVM-%s%s" % (d.itemNameMinInvm, obj1, obj2)
1941 alg = AlgConf.InvariantMassInclusive2( name = toponame, inputs = inputList, outputs = toponame)
1942 alg.addgeneric(
'InputWidth1', d.inputwidth1)
1943 alg.addgeneric(
'InputWidth2', d.inputwidth2)
1944 alg.addgeneric(
'MaxTob1', d.nleading1)
1945 alg.addgeneric(
'MaxTob2', d.nleading2)
1946 alg.addgeneric(
'NumResultBits', 1)
1947 if (d.applyEtaCut>0):
1948 alg.addgeneric(
'ApplyEtaCut', d.applyEtaCut)
1951 alg.addvariable(
'MinMSqr', d.minInvm*d.minInvm*_et_conversion*_et_conversion )
1952 alg.addvariable(
'MaxMSqr', _no_m_upper_threshold )
1953 if (d.applyEtaCut>0):
1954 alg.addvariable(
'MinEta1', d.minEta1*_eta_conversion )
1955 alg.addvariable(
'MaxEta1', d.maxEta1*_eta_conversion )
1956 alg.addvariable(
'MinEta2', d.minEta2*_eta_conversion )
1957 alg.addvariable(
'MaxEta2', d.maxEta2*_eta_conversion )
1958 tm.registerTopoAlgo(alg)
1962 {
"itemNameMinInvmList": [300, 400, 500, 700],
"minInvmList": [480, 640, 800, 1100] ,
1963 "otype1" :
"AjJ",
"ocut1" : 60,
"olist1" :
"s",
"nleading1" : 6,
"inputwidth": HW.jJetOutputWidthSort,
1964 "otype2" :
"AjJ",
"ocut2" : 50,
"olist2" :
"s",
"nleading2" : 6 }
1970 setattr (d, k, x[k])
1971 inputList = [d.otype1 + d.olist1, d.otype2 + d.olist1]
1973 for minInvm
in d.itemNameMinInvmList:
1974 toponames.append (
"%iINVM-%s%s%s%s-%s%s%s%s" % (minInvm,
1975 d.otype1,
str(d.ocut1) , d.olist1,
str(d.nleading1)
if d.olist1==
"s" else "",
1976 d.otype2,
str(d.ocut2) , d.olist2,
str(d.nleading2)
if d.olist2==
"s" else ""))
1977 alg = AlgConf.InvariantMassInclusive2( name =
'jINVM', inputs = inputList, outputs = toponames)
1978 alg.addgeneric(
'InputWidth1', d.inputwidth)
1979 alg.addgeneric(
'InputWidth2', d.inputwidth)
1980 alg.addgeneric(
'MaxTob1', d.nleading1)
1981 alg.addgeneric(
'MaxTob2', d.nleading2)
1982 alg.addgeneric(
'NumResultBits', len(toponames))
1983 for bitid,minInvm
in enumerate(d.minInvmList):
1984 alg.addvariable(
'MinET1',
get_threshold_cut(d.otype1, d.ocut1)*_et_conversion , bitid)
1985 alg.addvariable(
'MinET2',
get_threshold_cut(d.otype2, d.ocut2)*_et_conversion , bitid)
1986 alg.addvariable(
'MinMSqr', minInvm*minInvm*_et_conversion*_et_conversion , bitid)
1987 alg.addvariable(
'MaxMSqr', _no_m_upper_threshold , bitid)
1988 tm.registerTopoAlgo(alg)
1992 {
"itemNameMinInvmList": [300, 400, 500, 700],
"minInvmList": [480, 640, 800, 1100] ,
1993 "otype1" :
"jJ",
"ocut1" : 60,
"olist1" :
"s",
"nleading1" : 6,
"inputwidth": HW.jJetOutputWidthSort,
1994 "otype2" :
"AjJ",
"ocut2" : 50,
"olist2" :
"s",
"nleading2" : 6 }
2000 setattr (d, k, x[k])
2001 inputList = [d.otype1 + d.olist1, d.otype2 + d.olist1]
2003 for minInvm
in d.itemNameMinInvmList:
2004 toponames.append (
"%iINVM-%s%s%s%s-%s%s%s%s" % (minInvm,
2005 d.otype1,
str(d.ocut1) , d.olist1,
str(d.nleading1)
if d.olist1==
"s" else "",
2006 d.otype2,
str(d.ocut2) , d.olist2,
str(d.nleading2)
if d.olist2==
"s" else ""))
2007 alg = AlgConf.InvariantMassInclusive2( name =
'jINVM_NFF', inputs = inputList, outputs = toponames)
2008 alg.addgeneric(
'InputWidth1', d.inputwidth)
2009 alg.addgeneric(
'InputWidth2', d.inputwidth)
2010 alg.addgeneric(
'MaxTob1', d.nleading1)
2011 alg.addgeneric(
'MaxTob2', d.nleading2)
2012 alg.addgeneric(
'NumResultBits', len(toponames))
2013 for bitid,minInvm
in enumerate(d.minInvmList):
2014 alg.addvariable(
'MinET1',
get_threshold_cut(
"CjJ", d.ocut1)*_et_conversion , bitid)
2015 alg.addvariable(
'MinET2',
get_threshold_cut(d.otype2, d.ocut2)*_et_conversion , bitid)
2016 alg.addvariable(
'MinMSqr', minInvm*minInvm*_et_conversion*_et_conversion , bitid)
2017 alg.addvariable(
'MaxMSqr', _no_m_upper_threshold , bitid)
2018 tm.registerTopoAlgo(alg)
2025 toponame =
"0INVM10-3MU3Vab"
2026 log.debug(
"Define %s", toponame)
2027 inputList =
'MU3Vab'
2028 alg = AlgConf.InvariantMassThreeTOBsIncl1( name = toponame, inputs = inputList, outputs = toponame )
2029 alg.addgeneric(
'InputWidth', HW.muonOutputWidthSelect)
2030 alg.addgeneric(
'MaxTob', HW.muonOutputWidthSelect)
2031 alg.addgeneric(
'NumResultBits', 1)
2032 alg.addvariable(
'MinET1', 0*_et_conversion)
2033 alg.addvariable(
'MinMSqr', 0*_et_conversion*_et_conversion)
2034 alg.addvariable(
'MaxMSqr', 10*10*_et_conversion*_et_conversion)
2035 tm.registerTopoAlgo(alg)
2037 toponame =
"0INVM10-3MU3VFab"
2038 log.debug(
"Define %s", toponame)
2039 inputList =
'MU3VFab'
2040 alg = AlgConf.InvariantMassThreeTOBsIncl1( name = toponame, inputs = inputList, outputs = toponame )
2041 alg.addgeneric(
'InputWidth', HW.muonOutputWidthSelect)
2042 alg.addgeneric(
'MaxTob', HW.muonOutputWidthSelect)
2043 alg.addgeneric(
'NumResultBits', 1)
2044 alg.addvariable(
'MinET1', 0*_et_conversion)
2045 alg.addvariable(
'MinMSqr', 0*_et_conversion*_et_conversion)
2046 alg.addvariable(
'MaxMSqr', 10*10*_et_conversion*_et_conversion)
2047 tm.registerTopoAlgo(alg)
2050 toponame =
"0INVM10C-3MU3Vab"
2051 log.debug(
"Define %s", toponame)
2052 inputList =
'MU3Vab'
2053 alg = AlgConf.InvariantMassThreeTOBsIncl1Charge( name = toponame, inputs = inputList, outputs = toponame )
2054 alg.addgeneric(
'InputWidth', HW.muonOutputWidthSelect)
2055 alg.addgeneric(
'MaxTob', HW.muonOutputWidthSelect)
2056 alg.addgeneric(
'NumResultBits', 1)
2057 alg.addvariable(
'MinET1', 0*_et_conversion)
2058 alg.addvariable(
'MinMSqr', 0*_et_conversion*_et_conversion)
2059 alg.addvariable(
'MaxMSqr', 10*10*_et_conversion*_et_conversion)
2060 tm.registerTopoAlgo(alg)
2076 INVM_DR_eEM_MU_Map = [{
2077 "algoname":
"INVM_DR_eEM_MU",
2086 "olist2": [
"Fab",
"VFab"],
2088 "ocut2Offset" : [3,0]
2092 for x
in INVM_DR_eEM_MU_Map:
2097 inputList = [d.otype1 + d.olist1, d.otype2 +
str(d.ocut2) + d.olist2[1] ]
2099 for bitId
in range(len(d.ocut1)):
2100 obj1 =
"-%s%s%s" % (d.otype1,
str( d.ocut1[bitId] ) , d.olist1)
2101 obj2 =
"-%s%s%s" % (d.otype2,
str( d.ocut2 + d.ocut2Offset[bitId] ) , d.olist2[bitId])
2102 toponames.append(
"%dINVM%d-%dDR%d%s%s" % ( d.minInvm, d.maxInvm, d.minDR, d.maxDR, obj1, obj2))
2104 alg = AlgConf.InvariantMassInclusiveDeltaRSqrIncl2( name = d.algoname, inputs = inputList, outputs = toponames )
2106 alg.addgeneric(
'InputWidth1', HW.eEmOutputWidthSelect)
2107 alg.addgeneric(
'InputWidth2', HW.muonOutputWidthSelect)
2108 alg.addgeneric(
'MaxTob1', HW.eEmOutputWidthSort)
2109 alg.addgeneric(
'MaxTob2', HW.muonOutputWidthSelect)
2110 alg.addgeneric(
'ApplyEtaCut', 1)
2112 alg.addgeneric(
'NumResultBits', len(toponames) )
2114 for bitId
in range(len(toponames)):
2115 alg.addvariable(
'MinET1',
get_threshold_cut(d.otype1, d.ocut1[bitId])*_et_conversion, bitId)
2116 alg.addvariable(
'MinET2', (d.ocut2 + d.ocut2Offset[bitId])*_et_conversion, bitId)
2117 alg.addvariable(
'MinMSqr', d.minInvm*d.minInvm*_et_conversion*_et_conversion, bitId)
2118 alg.addvariable(
'MaxMSqr', d.maxInvm*d.maxInvm*_et_conversion*_et_conversion, bitId)
2119 alg.addvariable(
'MinEta1', 0*_eta_conversion, bitId)
2120 alg.addvariable(
'MaxEta1', 49*_eta_conversion, bitId)
2121 alg.addvariable(
'MinEta2', 0*_eta_conversion, bitId)
2122 alg.addvariable(
'MaxEta2', 49*_eta_conversion, bitId)
2123 alg.addvariable(
'DeltaRMin', d.minDR*d.minDR*_dr_conversion*_dr_conversion, bitId)
2124 alg.addvariable(
'DeltaRMax', d.maxDR*d.maxDR*_dr_conversion*_dr_conversion, bitId)
2127 tm.registerTopoAlgo(alg)
2143 {
"minInvm": 60 ,
"minDphiList": [4, 25],
"maxDphi": 32,
"minEta2": 25,
"maxEta2": 49,
2144 "inputwidth1": HW.eEmOutputWidthSelect,
"otype1" :
"eEM",
"ocut1" : 18,
"olist1" :
"abm",
2145 "nleading1" : HW.eEmOutputWidthSelect,
"inputwidth2": HW.jEmOutputWidthSort,
"ocut2" : 20,
"ocut3" : 25,
"nleading2" : 6 }
2147 for x
in ZAFBDphimap:
2151 setattr (d, k, x[k])
2152 inputList = [d.otype1 + d.olist1,
'jEMs25ETA49']
2154 for minDphi
in d.minDphiList:
2155 toponames.append (
"%iINVM-%02dDPHI%i-%s%s%s%s-jEM%ss%s%iETA%i" % (d.minInvm, minDphi, d.maxDphi,
2156 d.otype1,
str(d.ocut1) , d.olist1,
str(d.nleading1)
if d.olist1==
"s" else "",
2157 str(d.ocut3) ,
str(d.nleading2) , d.minEta2, d.maxEta2))
2158 alg = AlgConf.InvariantMassDeltaPhiInclusive2( name =
'ZAFB_DPHI', inputs = inputList, outputs = toponames)
2159 alg.addgeneric(
'InputWidth1', d.inputwidth1)
2160 alg.addgeneric(
'InputWidth2', d.inputwidth2)
2161 alg.addgeneric(
'MaxTob1', d.nleading1)
2162 alg.addgeneric(
'MaxTob2', d.nleading2)
2163 alg.addgeneric(
'NumResultBits', len(toponames))
2164 alg.addgeneric(
'ApplyEtaCut', 1)
2165 for bitid,minDphi
in enumerate(d.minDphiList):
2166 alg.addvariable(
'MinET1',
get_threshold_cut(d.otype1, d.ocut1)*_et_conversion, bitid)
2167 alg.addvariable(
'MinET2',
get_threshold_cut(
'jEM', d.ocut3)*_et_conversion, bitid)
2168 alg.addvariable(
'MinMSqr', d.minInvm*d.minInvm*_et_conversion*_et_conversion, bitid)
2169 alg.addvariable(
'MaxMSqr', _no_m_upper_threshold, bitid)
2170 alg.addvariable(
'MinEta1', 0*_eta_conversion, bitid)
2171 alg.addvariable(
'MaxEta1', 49*_eta_conversion, bitid)
2172 alg.addvariable(
'MinEta2', d.minEta2*_eta_conversion, bitid)
2173 alg.addvariable(
'MaxEta2', d.maxEta2*_eta_conversion, bitid)
2174 alg.addvariable(
'MinDeltaPhi', minDphi*_phi_conversion, bitid)
2175 alg.addvariable(
'MaxDeltaPhi', d.maxDphi*_phi_conversion, bitid)
2176 tm.registerTopoAlgo(alg)
2178 inputList = [d.otype1 + d.olist1,
'jEMsm25ETA49']
2180 for minDphi
in d.minDphiList:
2181 toponames.append (
"%iINVM-%02dDPHI%i-%s%s%s%s-jEM%ssm%s%iETA%i" % (d.minInvm, minDphi, d.maxDphi,
2182 d.otype1,
str(d.ocut1) , d.olist1,
str(d.nleading1)
if d.olist1==
"s" else "",
2183 str(d.ocut2) ,
str(d.nleading2) , d.minEta2, d.maxEta2))
2184 alg = AlgConf.InvariantMassDeltaPhiInclusive2( name =
'ZAFB_DPHIM', inputs = inputList, outputs = toponames)
2185 alg.addgeneric(
'InputWidth1', d.inputwidth1)
2186 alg.addgeneric(
'InputWidth2', d.inputwidth2)
2187 alg.addgeneric(
'MaxTob1', d.nleading1)
2188 alg.addgeneric(
'MaxTob2', d.nleading2)
2189 alg.addgeneric(
'NumResultBits', len(toponames))
2190 alg.addgeneric(
'ApplyEtaCut', 1)
2191 for bitid,minDphi
in enumerate(d.minDphiList):
2192 alg.addvariable(
'MinET1',
get_threshold_cut(d.otype1, d.ocut1)*_et_conversion, bitid)
2193 alg.addvariable(
'MinET2',
get_threshold_cut(
'jEM', d.ocut2)*_et_conversion, bitid)
2194 alg.addvariable(
'MinMSqr', d.minInvm*d.minInvm*_et_conversion*_et_conversion, bitid)
2195 alg.addvariable(
'MaxMSqr', _no_m_upper_threshold, bitid)
2196 alg.addvariable(
'MinEta1', 0*_eta_conversion, bitid)
2197 alg.addvariable(
'MaxEta1', 49*_eta_conversion, bitid)
2198 alg.addvariable(
'MinEta2', d.minEta2*_eta_conversion, bitid)
2199 alg.addvariable(
'MaxEta2', d.maxEta2*_eta_conversion, bitid)
2200 alg.addvariable(
'MinDeltaPhi', minDphi*_phi_conversion, bitid)
2201 alg.addvariable(
'MaxDeltaPhi', d.maxDphi*_phi_conversion, bitid)
2202 tm.registerTopoAlgo(alg)
2206 {
"minInvm": 0,
"maxInvm": 70,
"minDphi": 27,
"maxDphi": 32,
"otype":
"eEM",
"olist":
"s",
"ocut1":9,
"nleading1":1,
"ocut2":9,
"nleading2":6,},
2207 {
"minInvm": 0,
"maxInvm": 70,
"minDphi": 27,
"maxDphi": 32,
"otype":
"eEM",
"olist":
"sl",
"ocut1":9,
"nleading1":1,
"ocut2":9,
"nleading2":6,},
2209 for x
in listofalgos:
2213 setattr (d, k, x[k])
2214 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))
2215 log.debug(
"Define %s", toponame)
2216 inputList = [d.otype + d.olist, d.otype + d.olist]
2217 alg = AlgConf.InvariantMassDeltaPhiInclusive2( name = toponame, inputs = inputList, outputs = toponame )
2218 alg.addgeneric(
'InputWidth1', HW.eEmOutputWidthSort)
2219 alg.addgeneric(
'InputWidth2', HW.eEmOutputWidthSort)
2220 alg.addgeneric(
'MaxTob1', d.nleading1)
2221 alg.addgeneric(
'MaxTob2', d.nleading2)
2222 alg.addgeneric(
'NumResultBits', 1)
2225 alg.addvariable(
'MinMSqr', d.minInvm*d.minInvm*_et_conversion*_et_conversion)
2226 alg.addvariable(
'MaxMSqr', d.maxInvm*d.maxInvm*_et_conversion*_et_conversion)
2227 alg.addgeneric(
'ApplyEtaCut', 1)
2228 alg.addvariable(
'MinEta1', 0*_eta_conversion)
2229 alg.addvariable(
'MaxEta1',49*_eta_conversion)
2230 alg.addvariable(
'MinEta2', 0*_eta_conversion)
2231 alg.addvariable(
'MaxEta2',49*_eta_conversion)
2232 alg.addvariable(
'MinDeltaPhi', d.minDphi*_phi_conversion)
2233 alg.addvariable(
'MaxDeltaPhi', d.maxDphi*_phi_conversion)
2234 tm.registerTopoAlgo(alg)
2240 INVM_DR_2MU3Vab_Map = [
2242 "algoname":
"7INVM22_DR_2MU3Vab",
2247 "otype1" :
"MU3Vab",
2251 for x
in INVM_DR_2MU3Vab_Map:
2256 inputList = d.otype1
2258 for bitId
in range(len(d.minDR)):
2259 toponames.append(
"%iINVM%i-%iDR%i-%i%s" % ( d.minInvm, d.maxInvm,
2260 d.minDR[bitId] , d.maxDR[bitId],
2264 alg = AlgConf.InvariantMassInclusiveDeltaRSqrIncl1( name = d.algoname, inputs = inputList, outputs = toponames)
2265 alg.addgeneric(
'InputWidth', HW.muonOutputWidthSelect)
2266 alg.addgeneric(
'MaxTob', HW.muonOutputWidthSelect)
2267 alg.addgeneric(
'NumResultBits', len(toponames))
2268 for bitId
in range(len(toponames)):
2269 alg.addvariable(
'MinET1', 0*_et_conversion, bitId)
2270 alg.addvariable(
'MinET2', 0*_et_conversion, bitId)
2271 alg.addvariable(
'MinMSqr', d.minInvm*d.minInvm*_et_conversion*_et_conversion, bitId)
2272 alg.addvariable(
'MaxMSqr', d.maxInvm*d.maxInvm*_et_conversion*_et_conversion, bitId)
2273 alg.addvariable(
'DeltaRMin', d.minDR[bitId]*d.minDR[bitId]*_dr_conversion*_dr_conversion, bitId)
2274 alg.addvariable(
'DeltaRMax', d.maxDR[bitId]*d.maxDR[bitId]*_dr_conversion*_dr_conversion, bitId)
2275 tm.registerTopoAlgo(alg)
2283 INVM_DR_2MU3VFab_Map = [
2285 "algoname":
"INVM_DR_2MU3VFab",
2287 "maxInvm" : [9,11,22],
2290 "otype1" :
"MU3VFab",
2294 for x
in INVM_DR_2MU3VFab_Map:
2299 inputList = d.otype1
2301 for bitId
in range(len(d.minDR)):
2302 toponames.append(
"%iINVM%i-%iDR%i-%i%s" % ( d.minInvm[bitId], d.maxInvm[bitId],
2303 d.minDR[bitId] , d.maxDR[bitId],
2307 alg = AlgConf.InvariantMassInclusiveDeltaRSqrIncl1( name = d.algoname, inputs = inputList, outputs = toponames)
2308 alg.addgeneric(
'InputWidth', HW.muonOutputWidthSelect)
2309 alg.addgeneric(
'MaxTob', HW.muonOutputWidthSelect)
2310 alg.addgeneric(
'NumResultBits', len(toponames))
2311 for bitId
in range(len(toponames)):
2312 alg.addvariable(
'MinET1', 0*_et_conversion, bitId)
2313 alg.addvariable(
'MinET2', 0*_et_conversion, bitId)
2314 alg.addvariable(
'MinMSqr', d.minInvm[bitId]*d.minInvm[bitId]*_et_conversion*_et_conversion, bitId)
2315 alg.addvariable(
'MaxMSqr', d.maxInvm[bitId]*d.maxInvm[bitId]*_et_conversion*_et_conversion, bitId)
2316 alg.addvariable(
'DeltaRMin', d.minDR[bitId]*d.minDR[bitId]*_dr_conversion*_dr_conversion, bitId)
2317 alg.addvariable(
'DeltaRMax', d.maxDR[bitId]*d.maxDR[bitId]*_dr_conversion*_dr_conversion, bitId)
2318 tm.registerTopoAlgo(alg)
2324 {
"minInvm": 2,
"maxInvm": 9,
"minDr": 0,
"maxDr": 15,
"mult": 1,
"otype1" :
"MU5VFab",
"otype2":
"MU3Vab", },
2325 {
"minInvm": 8,
"maxInvm": 15,
"minDr": 0,
"maxDr": 22,
"mult": 1,
"otype1" :
"MU5VFab",
"otype2":
"MU3Vab", },
2326 {
"minInvm": 2,
"maxInvm": 9,
"minDr": 0,
"maxDr": 15,
"mult": 2,
"otype1" :
"MU3Vab",
"otype2":
"", },
2329 {
"minInvm": 0,
"maxInvm": 16,
"minDr": 20,
"maxDr": 99,
"mult": 2,
"otype1" :
"MU3Vab",
"otype2":
"",},
2330 {
"minInvm": 0,
"maxInvm": 16,
"minDr": 15,
"maxDr": 99,
"mult": 2,
"otype1" :
"MU3Vab",
"otype2":
"",},
2331 {
"minInvm": 8,
"maxInvm": 15,
"minDr": 20,
"maxDr": 99,
"mult": 2,
"otype1" :
"MU3Vab",
"otype2":
"",},
2332 {
"minInvm": 8,
"maxInvm": 15,
"minDr": 15,
"maxDr": 99,
"mult": 2,
"otype1" :
"MU3Vab",
"otype2":
"",},
2334 {
"minInvm": 7,
"maxInvm": 22,
"minDr": 0,
"maxDr": 20,
"mult": 2,
"otype1" :
"MU3VFab",
"otype2":
"",},
2336 {
"minInvm": 8,
"maxInvm": 15,
"minDr": 0,
"maxDr": 22,
"mult": 1,
"otype1" :
"CMU5VFab",
"otype2":
"CMU3Vab",},
2338 {
"minInvm": 7,
"maxInvm": 14,
"minDr": 0,
"maxDr": 25,
"mult": 1,
"otype1" :
"MU5VFab",
"otype2":
"MU3Vab", },
2339 {
"minInvm": 7,
"maxInvm": 11,
"minDr": 25,
"maxDr": 99,
"mult": 2,
"otype1" :
"MU3Vab",
"otype2":
"",},
2340 {
"minInvm": 7,
"maxInvm": 14,
"minDr": 0,
"maxDr": 25,
"mult": 1,
"otype1" :
"MU5VFab",
"otype2":
"MU3VFab", },
2344 for x
in listofalgos:
2348 setattr (d, k, x[k])
2349 obj1 =
"%s%s" % ((
str(d.mult)
if d.mult>1
else ""), d.otype1)
2350 obj2 =
"-%s" % (d.otype2)
2351 toponame =
"%iINVM%i-%iDR%i-%s%s" % (d.minInvm, d.maxInvm, d.minDr, d.maxDr, obj1,
"" if d.mult>1
else obj2)
2352 log.debug(
"Define %s", toponame)
2353 inputList = [d.otype1]
if (d.mult>1)
else [d.otype1, d.otype2]
2354 algoname = AlgConf.InvariantMassInclusiveDeltaRSqrIncl1
if (d.mult>1)
else AlgConf.InvariantMassInclusiveDeltaRSqrIncl2
2355 alg = algoname( name = toponame, inputs = inputList, outputs = [ toponame ])
2357 alg.addgeneric(
'InputWidth', HW.muonOutputWidthSelect)
2358 alg.addgeneric(
'MaxTob', HW.muonOutputWidthSelect)
2360 alg.addgeneric(
'InputWidth1', HW.muonOutputWidthSelect)
2361 alg.addgeneric(
'InputWidth2', HW.muonOutputWidthSelect)
2362 alg.addgeneric(
'MaxTob1', HW.muonOutputWidthSelect)
2363 alg.addgeneric(
'MaxTob2', HW.muonOutputWidthSelect)
2364 alg.addgeneric(
'NumResultBits', 1)
2365 alg.addvariable(
'MinET1', 0*_et_conversion)
2366 alg.addvariable(
'MinET2', 0*_et_conversion)
2367 alg.addvariable(
'MinMSqr', d.minInvm*d.minInvm*_et_conversion*_et_conversion)
2368 alg.addvariable(
'MaxMSqr', d.maxInvm*d.maxInvm*_et_conversion*_et_conversion)
2369 alg.addvariable(
'DeltaRMin', d.minDr*d.minDr*_dr_conversion*_dr_conversion)
2370 alg.addvariable(
'DeltaRMax', d.maxDr*d.maxDr*_dr_conversion*_dr_conversion)
2371 tm.registerTopoAlgo(alg)
2375 {
"minInvm": 2,
"maxInvm": 9,
"minDr": 0,
"maxDr": 15,
"mult": 1,
"otype1" :
"MU5VFab",
"otype2":
"MU3Vab",},
2376 {
"minInvm": 8,
"maxInvm": 15,
"minDr": 20,
"maxDr": 99,
"mult": 2,
"otype1" :
"MU3Vab",
"otype2":
"",},
2378 for x
in listofalgos:
2382 setattr (d, k, x[k])
2383 obj1 =
"%s%s" % ((
str(d.mult)
if d.mult>1
else ""), d.otype1)
2384 obj2 =
"-%s" % (d.otype2)
2385 toponame =
"%iINVM%i-%iDR%i-C-%s%s" % (d.minInvm, d.maxInvm, d.minDr, d.maxDr, obj1,
"" if d.mult>1
else obj2)
2386 log.debug(
"Define %s", toponame)
2387 inputList = [d.otype1]
if (d.mult>1)
else [d.otype1, d.otype2]
2388 algoname = AlgConf.InvariantMassInclusiveDeltaRSqrIncl1Charge
if (d.mult>1)
else AlgConf.InvariantMassInclusiveDeltaRSqrIncl2Charge
2389 alg = algoname( name = toponame, inputs = inputList, outputs = [ toponame ])
2391 alg.addgeneric(
'InputWidth', HW.muonOutputWidthSelect)
2392 alg.addgeneric(
'MaxTob', HW.muonOutputWidthSelect)
2394 alg.addgeneric(
'InputWidth1', HW.muonOutputWidthSelect)
2395 alg.addgeneric(
'InputWidth2', HW.muonOutputWidthSelect)
2396 alg.addgeneric(
'MaxTob1', HW.muonOutputWidthSelect)
2397 alg.addgeneric(
'MaxTob2', HW.muonOutputWidthSelect)
2398 alg.addgeneric(
'NumResultBits', 1)
2399 alg.addvariable(
'MinET1', 0*_et_conversion)
2400 alg.addvariable(
'MinET2', 0*_et_conversion)
2401 alg.addvariable(
'MinMSqr', d.minInvm*d.minInvm*_et_conversion*_et_conversion)
2402 alg.addvariable(
'MaxMSqr', d.maxInvm*d.maxInvm*_et_conversion*_et_conversion)
2403 alg.addvariable(
'DeltaRMin', d.minDr*d.minDr*_dr_conversion*_dr_conversion)
2404 alg.addvariable(
'DeltaRMax', d.maxDr*d.maxDr*_dr_conversion*_dr_conversion)
2405 tm.registerTopoAlgo(alg)
2410 {
"algoname":
'CEP_CjJ',
"minETlist": [90, 100]}
2416 setattr (d, k, x[k])
2417 inputList = [
'CjJs']
2419 for minET
in d.minETlist:
2420 toponames.append (
"CEP-CjJ%is6" % (minET))
2421 alg = AlgConf.ExclusiveJets( name = d.algoname, inputs = inputList, outputs = toponames)
2422 alg.addgeneric(
'InputWidth', HW.jJetOutputWidthSort)
2423 alg.addgeneric(
'MaxTob', HW.jJetOutputWidthSort)
2424 alg.addgeneric(
'NumResultBits', len(toponames))
2425 alg.addvariable(
'PtScale', 1.4*10)
2426 alg.addvariable(
'PtShift', 20*_et_conversion)
2427 for bitid,minET
in enumerate(d.minETlist):
2428 alg.addvariable(
'MinET1',
get_threshold_cut(
'CjJ', minET)*_et_conversion, bitid)
2429 alg.addvariable(
'MinXi', 13600.0*_et_conversion*0.02, bitid)
2430 alg.addvariable(
'MaxXi', 13600.0*_et_conversion*0.05, bitid)
2431 tm.registerTopoAlgo(alg)
2440 {
"minDphi": 23,
"maxDphi": 32,
"mult": 2,
"otype1" :
"eEM",
2441 "ocut1": 1,
"olist1":
"s",
"nleading1": HW.eEmOutputWidthSort,
"minET1":0.9,
"otype2" :
"",
"minET2":0.8},
2442 {
"minDphi": 23,
"maxDphi": 32,
"mult": 2,
"otype1" :
"eTAU",
2443 "ocut1": 1,
"olist1":
"s",
"nleading1": HW.eTauOutputWidthSort,
"minET1":0.8,
"otype2" :
"",
"minET2":0.8},
2444 {
"minDphi": 23,
"maxDphi": 32,
"mult": 2,
"otype1" :
"jTAU",
2445 "ocut1": 1,
"olist1":
"s",
"nleading1": HW.jTauOutputWidthSort,
"minET1":1.4,
"otype2" :
"",
"minET2":1.4},
2451 setattr (d, k, x[k])
2452 obj =
"%s" % (
str(d.mult)+d.otype1+
str(d.ocut1)+
str(d.olist1))
2453 toponame =
"%sDPHI%s-%s" % (d.minDphi, d.maxDphi, obj)
2454 log.debug(
"Define %s", toponame)
2455 inputList = [d.otype1+d.olist1]
2456 algoname = AlgConf.DeltaPhiIncl1
2457 alg = algoname( name = toponame, inputs = inputList, outputs = [ toponame ])
2458 alg.addgeneric(
'NumResultBits', 1)
2459 alg.addgeneric(
'InputWidth', d.nleading1)
2460 alg.addgeneric(
'MaxTob', d.nleading1)
2461 alg.addvariable(
'MinET1', d.minET1*_et_conversion)
2462 alg.addvariable(
'MinET2', d.minET2*_et_conversion)
2463 alg.addvariable(
'MinDeltaPhi', d.minDphi*_phi_conversion)
2464 alg.addvariable(
'MaxDeltaPhi', d.maxDphi*_phi_conversion)
2465 tm.registerTopoAlgo(alg)
2468 from dataclasses
import dataclass
2471 class InvMassDPhiSumETAlgoParams:
2472 """ Parameters for InvariantMassDeltaPhiInclusive1 and InvariantMassDeltaPhiSumEtInclusive1 Topo algorithms """
2475 DeltaPhiMin: int = 23
2476 DeltaPhiMax: int = 32
2478 MaxInvMass : int = 1000
2480 MaxSumEt: int = 1000
2482 def AddInvMassDPhiSumETAlgos(otype: str, nleading, list_of_algos: list[InvMassDPhiSumETAlgoParams]):
2483 for x
in list_of_algos:
2485 is_InvMass_set = x.MinInvMass != 0
or x.MaxInvMass != 1000
2486 is_SumEt_set = x.MinSumEt != 0
or x.MaxSumEt != 1000
2487 algoname = AlgConf.InvariantMassDeltaPhiSumEtInclusive1
if is_SumEt_set
else AlgConf.InvariantMassDeltaPhiInclusive1
2489 obj = f
'2{otype}{round(x.MinEt1)}s'
2490 toponame = f
'{x.DeltaPhiMin}DPHI{x.DeltaPhiMax}-{obj}'
2493 toponame = f
'{x.MinSumEt}SUM{x.MaxSumEt}-{toponame}'
2495 toponame = f
'{x.MinInvMass}INVM{x.MaxInvMass}-{toponame}'
2496 log.debug(
'Define %s', toponame)
2498 alg = algoname(name=toponame, inputs=[f
'{otype}s'], outputs=[toponame])
2499 alg.addgeneric(
'NumResultBits', 1)
2500 alg.addgeneric(
'InputWidth', nleading)
2501 alg.addgeneric(
'MaxTob', nleading)
2502 alg.addvariable(
'MinET1', x.MinEt1 * _et_conversion)
2503 alg.addvariable(
'MinET2', x.MinEt2 * _et_conversion)
2504 alg.addvariable(
'MinMSqr', (x.MinInvMass * _et_conversion) ** 2)
2505 alg.addvariable(
'MaxMSqr', (x.MaxInvMass * _et_conversion) ** 2)
2506 alg.addvariable(
'MinDeltaPhi', x.DeltaPhiMin * _phi_conversion)
2507 alg.addvariable(
'MaxDeltaPhi', x.DeltaPhiMax * _phi_conversion)
2510 alg.addvariable(
'MinSumEt', x.MinSumEt * _et_conversion)
2511 alg.addvariable(
'MaxSumEt', x.MaxSumEt * _et_conversion)
2512 tm.registerTopoAlgo(alg)
2516 InvMassDPhiSumETAlgoParams(MinEt1=0.8, MinEt2=0.8, MinInvMass=1, MaxInvMass=200),
2517 InvMassDPhiSumETAlgoParams(MinEt1=0.8, MinEt2=0.8, MinInvMass=2, MaxInvMass=200),
2518 InvMassDPhiSumETAlgoParams(MinEt1=0.8, MinEt2=0.8, MinInvMass=3, MaxInvMass=200),
2519 InvMassDPhiSumETAlgoParams(MinEt1=0.8, MinEt2=0.8, MinInvMass=4, MaxInvMass=200),
2520 InvMassDPhiSumETAlgoParams(MinEt1=0.8, MinEt2=0.8, MinSumEt=3, MaxSumEt=200),
2521 InvMassDPhiSumETAlgoParams(MinEt1=0.8, MinEt2=0.8, MinSumEt=4, MaxSumEt=200),
2523 AddInvMassDPhiSumETAlgos(
'eTAU', HW.eTauOutputWidthSort, algo_list)
2527 InvMassDPhiSumETAlgoParams(MinEt1=5, MinEt2=5, DeltaPhiMin=20, MinInvMass=10, MaxInvMass=200),
2528 InvMassDPhiSumETAlgoParams(MinEt1=5, MinEt2=5, DeltaPhiMin=20, MinInvMass=15, MaxInvMass=200),
2529 InvMassDPhiSumETAlgoParams(MinEt1=5, MinEt2=5, DeltaPhiMin=20, MinInvMass=20, MaxInvMass=200),
2530 InvMassDPhiSumETAlgoParams(MinEt1=5, MinEt2=5, DeltaPhiMin=20, MinInvMass=25, MaxInvMass=200),
2531 InvMassDPhiSumETAlgoParams(MinEt1=5, MinEt2=5, DeltaPhiMin=20, MinSumEt=10, MaxSumEt=200),
2532 InvMassDPhiSumETAlgoParams(MinEt1=5, MinEt2=5, DeltaPhiMin=20, MinSumEt=15, MaxSumEt=200),
2533 InvMassDPhiSumETAlgoParams(MinEt1=5, MinEt2=5, DeltaPhiMin=20, MinSumEt=20, MaxSumEt=200),
2534 InvMassDPhiSumETAlgoParams(MinEt1=5, MinEt2=5, DeltaPhiMin=20, MinSumEt=25, MaxSumEt=200),
2535 InvMassDPhiSumETAlgoParams(MinEt1=5, MinEt2=5, DeltaPhiMin=20, MinInvMass=15, MaxInvMass=200, MinSumEt=15, MaxSumEt=200),
2536 InvMassDPhiSumETAlgoParams(MinEt1=5, MinEt2=5, DeltaPhiMin=20, MinInvMass=20, MaxInvMass=200, MinSumEt=20, MaxSumEt=200),
2538 AddInvMassDPhiSumETAlgos(
'jJ', HW.jJetOutputWidthSort, algo_list)
2541 Algo = namedtuple(
'Algo', [
'dPhiMin',
'dPhiMax',
'otype',
'olist',
'ocut1',
'ocut2',
'nTOB'])
2543 Algo(dPhiMin=30, dPhiMax=32, otype=
'eTAU', olist=
's', ocut1=50, ocut2=50, nTOB=HW.eTauOutputWidthSort),
2546 name = f
'{x.dPhiMin}DPHI{x.dPhiMax}-'
2547 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}'
2549 alg = AlgConf.DeltaPhiIncl1(name=name, inputs=[x.otype+x.olist], outputs=[name])
2550 alg.addgeneric(
'NumResultBits', 1)
2551 alg.addgeneric(
'InputWidth', x.nTOB)
2552 alg.addgeneric(
'MaxTob', x.nTOB)
2555 alg.addvariable(
'MinDeltaPhi', x.dPhiMin*_phi_conversion)
2556 alg.addvariable(
'MaxDeltaPhi', x.dPhiMax*_phi_conversion)
2557 tm.registerTopoAlgo(alg)