3 from collections
import OrderedDict
as odict
5 from ..Base.L1MenuFlags
import L1MenuFlags
6 from ..Base.MenuConfObj
import TopoMenuDef
20 ctpinBoards[
"Ctpin9"] = odict()
21 ctpinBoards[
"Ctpin9"][
"connectors"] = []
22 ctpinBoards[
"Ctpin9"][
"connectors"] += [
25 "format" :
"multiplicity",
30 'BCM_AtoC',
'BCM_CtoA',
'BCM_Wide',
32 'BCM6',
'BCM7',
'BCM8',
38 'ZDC_0',
'ZDC_1',
'ZDC_2',
44 "format" :
"multiplicity",
49 'MBTS_A0',
'MBTS_A1',
'MBTS_A2',
'MBTS_A3',
'MBTS_A4' ,
'MBTS_A5',
'MBTS_A6',
'MBTS_A7',
'MBTS_A8',
'MBTS_A9',
'MBTS_A10',
'MBTS_A11',
50 'MBTS_A12',
'MBTS_A13',
'MBTS_A14',
'MBTS_A15',
54 'AFP_NSA',
'AFP_FSA',
'AFP_FSA_TOF_T0',
'AFP_FSA_TOF_T1',
'AFP_FSA_TOF_T2',
'AFP_FSA_TOF_T3',
60 "format" :
"multiplicity",
65 'MBTS_C0',
'MBTS_C1',
'MBTS_C2',
'MBTS_C3',
'MBTS_C4',
'MBTS_C5',
'MBTS_C6',
'MBTS_C7',
'MBTS_C8',
'MBTS_C9',
'MBTS_C10',
'MBTS_C11',
66 'MBTS_C12',
'MBTS_C13',
'MBTS_C14',
'MBTS_C15',
71 'AFP_NSC',
'AFP_FSC',
'AFP_FSC_TOF_T0',
'AFP_FSC_TOF_T1',
'AFP_FSC_TOF_T2',
'AFP_FSC_TOF_T3'
80 topoBoards[
"Topo1"] = odict([(
"connectors",[])])
81 topoBoards[
"Topo1"][
"connectors"].
append({
83 "format" :
"multiplicity",
89 (
'eEM5',3), (
'eEM7',3), (
'eEM9',3), (
'eEM10L',3),
91 (
None,3), (
None,3), (
None,3), (
None,3),
93 'eEM12L',
'eEM15',
'eEM18',
'eEM18L',
'eEM18M',
100 'eEM24VM',
'eEM26',
'eEM26L',
'eEM26M',
'eEM26T',
'eEM28M',
'eEM40L',
112 topoBoards[
"Topo1"][
"connectors"].
append({
113 "name" :
"Topo1Opt1",
114 "format" :
"multiplicity",
121 (
'eTAU12',3), (
'eTAU20',3), (
'eTAU1',3),
125 'eTAU20L',
'eTAU20M',
'eTAU30',
'eTAU30M',
126 'eTAU35',
'eTAU35M',
'eTAU40HM',
'eTAU60',
'eTAU80',
'eTAU140',
134 'gLJ80p0ETA25',
'gLJ100p0ETA25',
'gLJ140p0ETA25',
'gLJ160p0ETA25',
137 'gLJSPARE1',
'gLJSPARE2',
'gLJSPARE3',
'gLJSPARE4',
142 (
'gJ20p0ETA25',3), (
'gJ20p25ETA49',3), (
'gJSPARE1',3),
146 'gJ50p0ETA25',
'gJ100p0ETA25',
152 topoBoards[
"Topo1"][
"connectors"].
append({
153 "name" :
"Topo1Opt2",
154 "format" :
"multiplicity",
161 (
'jJ20',3), (
'jJ30',3), (
'jJ30p0ETA25',3), (
'jJ40',3), (
'jJ40p0ETA25',3),
162 (
'jJ50',3), (
'jJ55',3), (
'jJ55p0ETA23',3), (
'jJ60',3),
163 (
'jJSPARE1',3), (
'jJSPARE2',3),
167 'jJ70p0ETA23',
'jJ80',
'jJ80p0ETA25',
'jJ85p0ETA21',
'jJ90',
'jJ125',
168 'jJ140',
'jJ160',
'jJ180',
'jJ500',
170 'jJ15p30ETA49',
'jJ20p30ETA49',
171 'jJ40p30ETA49',
'jJ50p30ETA49',
'jJ60p30ETA49',
'jJ90p30ETA49',
'jJ125p30ETA49',
174 'jJSPARE3',
'jJSPARE4',
179 'jLJ80',
'jLJ120',
'jLJ140',
'jLJ180',
182 'jLJ60',
'jLJ100',
'jLJ160',
'jLJ200',
187 topoBoards[
"Topo1"][
"connectors"].
append({
188 "name" :
"Topo1Opt3",
189 "format" :
"multiplicity",
207 (
'cTAU12M',3), (
'cTAU20M',3),
210 'cTAU30M',
'cTAU35M',
231 (
'jXE60',1), (
'jXE70',1), (
'jXE80',1), (
'jXE90',1), (
'jXE100',1), (
'jXE110',1), (
'jXE120',1), (
'jXE500',1),
234 (
'gXENC70',1), (
'gXENC100',1),
235 (
'gXEJWOJ60',1), (
'gXEJWOJ70',1), (
'gXEJWOJ80',1), (
'gXEJWOJ100',1), (
'gXEJWOJ110',1), (
'gXEJWOJ120',1), (
'gXEJWOJ500',1),
244 (
'jTE200',1), (
'jTEC200',1), (
'jTEFWD100',1), (
'jTEFWDA100',1), (
'jTEFWDC100',1),
246 (
'jTE3',1), (
'jTE4',1), (
'jTE10',1), (
'jTE5',1), (
'jTE20',1), (
'jTE50',1),
247 (
'jTE100',1) , (
'jTE600',1), (
'jTE1500',1), (
'jTE3000',1), (
'jTE10000',1),
248 (
'jTEFWDA1',1), (
'jTEFWDC1',1), (
'jTEFWDA5',1), (
'jTEFWDC5',1),
251 (
'jXESPARE1',1), (
'jXESPARE2',1), (
'jXESPARE3',1), (
'jXESPARE4',1), (
'jXESPARE5',1), (
'jXESPARE6',1), (
'jXESPARE7',1), (
'jXESPARE8',1),
261 topoBoards[
"Topo2"] = odict()
262 topoBoards[
"Topo2"][
"connectors"] = []
263 topoBoards[
"Topo2"][
"connectors"].
append({
265 "format" :
"topological",
266 "type" :
"electrical",
268 "algorithmGroups" : [
273 TopoMenuDef(
'2INVM9-0DR15-MU5VFab-MU3Vab', outputbits = 0 ),
274 TopoMenuDef(
'2INVM9-0DR15-2MU3Vab', outputbits = 1 ),
275 TopoMenuDef(
'INVM_DR_2MU5VFab', outputbits = (2,3), outputlines = [
'2INVM9-2DR15-2MU5VFab',
276 '8INVM15-0DR22-2MU5VFab' ] ),
277 TopoMenuDef(
'5DETA99-5DPHI99-2MU3VFab', outputbits = 4 ),
278 TopoMenuDef(
'5DETA99-5DPHI99-MU5VFab-MU3Vab', outputbits = 5 ),
279 TopoMenuDef(
'5DETA99-5DPHI99-2MU5VFab', outputbits = 6 ),
280 TopoMenuDef(
'DR_2MU5VFab', outputbits = (7,8) , outputlines = [
'0DR15-2MU5VFab' ,
281 '10DR99-2MU5VFab'] ),
282 TopoMenuDef(
'8INVM15-0DR22-CMU5VFab-CMU3Vab', outputbits = 9 ),
284 TopoMenuDef(
'INVM_DR_2MU3VFab', outputbits = (11,12), outputlines = [
'2INVM9-0DR15-2MU3VFab',
285 '7INVM11-25DR99-2MU3VFab'] ),
294 TopoMenuDef(
'0DR04-MU3Vab-CjJ40ab', outputbits = 1 ),
295 TopoMenuDef(
'0DR04-MU5VFab-CjJ80ab', outputbits = 2 ),
296 TopoMenuDef(
'2DISAMB_jJ55ab_DR_eTAU_eTAU', outputbits = (3,4), outputlines = [
'2DISAMB-jJ55ab-0DR25-eTAU30ab-eTAU20ab',
297 '2DISAMB-jJ55ab-0DR28-eTAU30ab-eTAU20ab' ]),
298 TopoMenuDef(
'DR_eTAU30ab_eTAU20ab', outputbits = (5,6), outputlines = [
'0DR25-eTAU30ab-eTAU20ab',
299 '0DR28-eTAU30ab-eTAU20ab' ]),
300 TopoMenuDef(
'2DISAMB-jJ55ab-0DR28-eTAU30abm-eTAU20abm', outputbits = 7 ),
301 TopoMenuDef(
'0DR28-eTAU30abm-eTAU20abm', outputbits = 8 ),
303 TopoMenuDef(
'2DISAMB-jJ40ab-0DR10-eTAU20ab-eTAU12ab', outputbits = 10),
311 TopoMenuDef(
'INVM_DPHI_eEMsm6', outputbits = (0,1), outputlines = [
'0INVM70-27DPHI32-eEM12sm1-eEM12sm6',
312 '0INVM70-27DPHI32-eEM15sm1-eEM15sm6' ] ),
315 TopoMenuDef(
'0DR03-eEM9ab-CjJ40ab', outputbits = 3 ),
316 TopoMenuDef(
'INVM_eEMs6', outputbits = (4,5), outputlines = [
'1INVM5-eEM9s1-eEMs6',
317 '1INVM5-eEM15s1-eEMs6'] ),
318 TopoMenuDef(
'27DPHI32-eEMs1-eEMs6', outputbits = 6 ),
319 TopoMenuDef(
'0INVM70-27DPHI32-eEM9s1-eEM9s6', outputbits = 7 ),
320 TopoMenuDef(
'0INVM70-27DPHI32-eEM9sl1-eEM9sl6', outputbits = 8 ),
321 TopoMenuDef(
'0INVM9-eEM9ab-eEMab', outputbits = 9 ),
322 TopoMenuDef(
'INVM_BOOSTDR_Ranges_eEM12sl6', outputbits = (10,11), outputlines = [
'0INVM30-2DR15-eEM12sl1-eEM12sl6',
323 '25INVM70-13DR25-eEM12sl1-eEM12sl6']),
332 TopoMenuDef(
'jINVM_DPHI_NFF', outputbits = (0,3), outputlines = [
'400INVM-0DPHI26-jJ60s6-AjJ50s6',
333 '400INVM-0DPHI24-jJ60s6-AjJ50s6',
334 '400INVM-0DPHI22-jJ60s6-AjJ50s6',
335 '400INVM-0DPHI20-jJ60s6-AjJ50s6'] ),
336 TopoMenuDef(
'jINVM', outputbits = (4,7), outputlines = [
'300INVM-AjJ60s6-AjJ50s6',
337 '400INVM-AjJ60s6-AjJ50s6',
338 '500INVM-AjJ60s6-AjJ50s6',
339 '700INVM-AjJ60s6-AjJ50s6'] ),
340 TopoMenuDef(
'jINVM_DPHI', outputbits = (8,11), outputlines = [
'400INVM-0DPHI26-AjJ60s6-AjJ50s6',
341 '400INVM-0DPHI24-AjJ60s6-AjJ50s6',
342 '400INVM-0DPHI22-AjJ60s6-AjJ50s6',
343 '400INVM-0DPHI20-AjJ60s6-AjJ50s6'] ),
344 TopoMenuDef(
'0DPHI10-jXE40delay-jJ40s', outputbits = 12),
350 topoBoards[
"Topo3"] = odict()
351 topoBoards[
"Topo3"][
"connectors"] = []
352 topoBoards[
"Topo3"][
"connectors"].
append({
354 "format" :
"topological",
355 "type" :
"electrical",
357 "algorithmGroups" : [
362 TopoMenuDef(
'HT190-jJ40s5pETA21', outputbits = 0 ),
363 TopoMenuDef(
'jINVM_NFF', outputbits = (1,4), outputlines = [
'300INVM-jJ60s6-AjJ50s6',
364 '400INVM-jJ60s6-AjJ50s6',
365 '500INVM-jJ60s6-AjJ50s6',
366 '700INVM-jJ60s6-AjJ50s6',] ),
367 TopoMenuDef(
'HT150-jJ50s5pETA32', outputbits = 5 ),
368 TopoMenuDef(
'400INVM-AjJ60s6pETA32-AjJ50s6p30ETA49', outputbits = 6 ),
369 TopoMenuDef(
'SC111-CjJ40abpETA26', outputbits = 7 ),
370 TopoMenuDef(
'0DETA20-jJ90s1-jJs2', outputbits = 8 ),
371 TopoMenuDef(
'100RATIO-0MATCH-eTAU40si2-eEMall', outputbits = 9 ),
372 TopoMenuDef(
'NOT-0MATCH-eTAU40si1-eEMall', outputbits = 10),
373 TopoMenuDef(
'0DETA24-eTAU30s2-eTAU12s2', outputbits = 11),
374 TopoMenuDef(
'0DETA24-4DPHI99-eTAU30ab-eTAU12ab', outputbits = 12),
383 TopoMenuDef(
'KF-jXE-AjJall', outputbits = (0,5), outputlines = [
'KF-jXE40-AjJall',
388 'KF-jXE75-AjJall'] ),
389 TopoMenuDef(
'ZAFB_DPHI', outputbits = (6,7), outputlines = [
'60INVM-04DPHI32-eEM18abm-jEM20s625ETA49',
390 '60INVM-25DPHI32-eEM18abm-jEM20s625ETA49'] ),
391 TopoMenuDef(
'CEP_CjJ', outputbits = (8,9), outputlines = [
'CEP-CjJ90s6',
400 TopoMenuDef(
'INVM_DR_eEM_MU', outputbits = (0,1), outputlines = [
'0INVM10-0DR15-eEM10abl-MU8Fab',
401 '0INVM10-0DR15-eEM15abl-MU5VFab' ])
410 TopoMenuDef(
'7INVM14-MU5VFab-MU3VFab', outputbits = 0 ),
412 TopoMenuDef(
'INVM_2MU3VFab', outputbits = (2,3), outputlines = [
'7INVM14-2MU3VFab',
413 '7INVM22-2MU3VFab' ] ),
414 TopoMenuDef(
'7INVM22-MU5VFab-MU3VFab', outputbits = 4 ),
415 TopoMenuDef (
'7INVM22_DR_2MU3Vab', outputbits = (5,6), outputlines = [
'7INVM22-0DR20-2MU3Vab',
416 '7INVM22-0DR12-2MU3Vab']),
417 TopoMenuDef(
'2INVM9-0DR15-C-MU5VFab-MU3Vab', outputbits = 7 ),
419 TopoMenuDef(
'7INVM14-0DR25-MU5VFab-MU3VFab', outputbits = 9),
420 TopoMenuDef(
'7INVM22-0DR20-2MU3VFab', outputbits = 10),
426 muctpiBoard[
"MuCTPi"] = odict()
427 muctpiBoard[
"MuCTPi"][
"connectors"] = []
428 muctpiBoard[
"MuCTPi"][
"connectors"].
append({
429 "name" :
"MuCTPiOpt0",
430 "format" :
"multiplicity",
435 (
'MU3V',3), (
'MU3VF',3), (
'MU3VC',3), (
'MU3EOF',3), (
'MU5VF',3),
436 'MU8F',
'MU8VF',
'MU8FC',
'MU8FH',
'MU8VFC',
'MU9VF',
'MU9VFC',
'MU12FCH',
437 'MU14FCH',
'MU14FCHR',
'MU15VFCH',
'MU15VFCHR',
'MU18VFCH',
'MU20VFC',
438 'MU4BO',
'MU4BOM',
'MU10BO',
'MU10BOM',
'MU12BOM',
448 muctpiBoard[
"MuCTPi"][
"connectors"].
append({
450 "format" :
"topological",
451 "type" :
"electrical",
453 "algorithmGroups" : [
463 TopoMenuDef(
"MUCTP-0DR15-2MU5VFab", outputbits = 0 ),
480 L1MenuFlags.boards().
clear()
482 L1MenuFlags.boards().
update( topoBoards )
484 L1MenuFlags.boards().
update( muctpiBoard )
486 L1MenuFlags.boards().
update( ctpinBoards )
490 def remapThresholds():
492 for boardName, boardDef
in L1MenuFlags.boards().
items():
493 if "connectors" in boardDef:
494 for c
in boardDef[
"connectors"]:
495 if "thresholds" in c:
496 thresholdsToRemove = []
497 for thrIndex, thrName
in enumerate(c[
"thresholds"]):
499 if type(thrName)==tuple:
500 (thrName,nBits) = thrName
501 if thrName
in L1MenuFlags.ThresholdMap():
502 if (L1MenuFlags.ThresholdMap()[thrName] !=
''):
504 c[
"thresholds"][thrIndex] = (L1MenuFlags.ThresholdMap()[thrName],nBits)
506 c[
"thresholds"][thrIndex] = L1MenuFlags.ThresholdMap()[thrName]
508 thresholdsToRemove.append(thrIndex)
509 for i
in reversed(thresholdsToRemove):
510 del c[
"thresholds"][i]