98 this functions marks the items that should be monitored by setting the corresponding monitoring flags
99 e.g. to "LF:000|HF:111" for high frequency monitoring of TBP, TAP, and TAV.
106 monItems = { 1 :[], 2: [], 3: [], 4: [], 5: [], 6: [], 7: [] }
107 monItemsHF = { 1 :[], 2: [], 3: [], 4: [], 5: [], 6: [], 7: [] }
111 if 'HI' not in menuName:
112 monItems[TBP|TAP|TAV] = [
114 "L1_MU10BO",
"L1_MU10BOM",
"L1_MU12BOM",
"L1_MU14FCH",
115 "L1_MU3V",
"L1_MU4BOM",
"L1_MU5VF",
"L1_MU8VFC",
116 "L1_2MU3V",
"L1_2MU3VF",
"L1_2MU5VF",
117 "L1_MU5VF_2MU3V",
"L1_MU8VF_2MU5VF",
118 "L1_3MU3V",
"L1_MU5VF_3MU3VF",
"L1_4MU3V",
121 "L1_eEM5",
"L1_eEM9",
"L1_eEM12L",
122 "L1_eEM18L",
"L1_eEM18M",
"L1_eEM24L",
123 "L1_eEM26",
"L1_eEM26L",
"L1_eEM26M",
"L1_eEM26T",
125 "L1_2eEM18M",
"L1_2eEM24L",
126 "L1_eEM24L_3eEM12L",
"L1_eEM40L_2eEM18L",
127 "L1_eTAU20M",
"L1_eTAU30",
128 "L1_eTAU60",
"L1_eTAU80",
130 "L1_cTAU20M",
"L1_cTAU35M",
131 "L1_cTAU30M_2cTAU20M",
132 "L1_jJ30",
"L1_jJ40",
"L1_jJ50",
133 "L1_jJ60",
"L1_jJ125",
134 "L1_jJ160",
"L1_jJ500",
135 "L1_jJ40p30ETA49",
"L1_jJ50p30ETA49",
136 "L1_jJ60p30ETA49",
"L1_jJ125p30ETA49",
137 "L1_4jJ40",
"L1_4jJ50",
138 "L1_3jJ70p0ETA23",
"L1_4jJ40p0ETA25",
"L1_5jJ40p0ETA25",
139 "L1_jJ140_3jJ60",
"L1_jJ85p0ETA21_3jJ40p0ETA25",
140 "L1_jXE60",
"L1_jXE70",
"L1_jXE80",
"L1_jXE90",
"L1_jXE100",
"L1_eTAU12",
141 "L1_jXE110",
"L1_jXE120",
"L1_jXE500",
144 "L1_jTEC200",
"L1_jTEFWD100",
"L1_jTEFWDA100",
"L1_jTEFWDC100",
145 "L1_gJ20p0ETA25",
"L1_gJ20p25ETA49",
"L1_gJ50p0ETA25",
146 "L1_gJ100p0ETA25",
"L1_gJ400p0ETA25",
147 "L1_gLJ80p0ETA25",
"L1_gLJ100p0ETA25",
"L1_gLJ140p0ETA25",
"L1_gLJ160p0ETA25",
149 "L1_gXENC70",
"L1_gXENC100",
150 "L1_gXEJWOJ60",
"L1_gXEJWOJ70",
"L1_gXEJWOJ80",
"L1_gXEJWOJ100",
"L1_gXEJWOJ110",
"L1_gXEJWOJ120",
"L1_gXEJWOJ500",
154 "L1_2eEM10L_MU8F",
"L1_MU3V_jJ40",
156 "L1_LLPDPHI-jXE40-jJ40",
157 "L1_BPH-0M9-eEM9-eEM7_MU5VF",
158 "L1_BTAG-MU5VFjJ20_2jJ40p0ETA25_jJ50p0ETA25",
159 "L1_BPH-0M9-eEM9-eEM7",
"L1_BPH-0M10-3MU3V",
"L1_BPH-0M10-3MU3VF",
160 "L1_JPSI-1M5-eEM9",
"L1_JPSI-1M5-eEM15",
161 "L1_BTAG-MU3VjJ40",
"L1_BTAG-MU5VFjJ80",
162 "L1_cTAU30M_2cTAU20M_DR-eTAU30LeTAU20L",
164 "L1_DY-BOX-2MU3VF",
"L1_DY-BOX-MU5VFMU3V",
165 "L1_LAR-ZEE-eEM",
"L1_LFV-MU5VF",
166 "L1_10DR-MU14FCH-MU5VF_EMPTY",
"L1_DPHI-M70-2eEM12M",
170 if 'HI' not in menuName:
171 if 'run3' in menuName:
172 monItems[TBP|TAP|TAV] += [
"L1_eTAU140"]
173 monItems[TBP|TAP|TAV] += [
"L1_3jJ90",
"L1_jJ90",
"L1_jJ90p30ETA49"]
175 monItems[TBP|TAP|TAV] += [
"L1_eTAU120"]
176 monItems[TBP|TAP|TAV] += [
"L1_3jJ70",
"L1_jJ70"]
179 "L1_HT190-jJ40s5pETA21",
"L1_jMJJ-500-NFF",
180 "L1_LLP-RO-eEM",
"L1_LLP-NOMATCH-eEM",
182 "L1_ZAFB-25DPHI-eEM18M",
184 "L1_LFV-eEM10L-MU8VF",
"L1_LFV-eEM15L-MU5VF",
187 if 'MC' not in menuName:
188 monItems[TBP|TAP|TAV] += [
191 "L1_LUCID_A",
"L1_LUCID_C",
192 "L1_CALREQ1",
"L1_CALREQ2",
195 "L1_BPTX0_BGRP12",
"L1_BPTX1_BGRP12",
199 "L1_BCM_2A_FIRSTINTRAIN",
"L1_BCM_2C_FIRSTINTRAIN",
201 "L1_AFP_A_AND_C_TOF_T0T1",
202 "L1_AFP_FSA_BGRP12",
"L1_AFP_FSC_BGRP12",
203 "L1_AFP_FSA_TOF_T0_BGRP12",
"L1_AFP_FSA_TOF_T1_BGRP12",
204 "L1_AFP_FSC_TOF_T0_BGRP12",
"L1_AFP_FSC_TOF_T1_BGRP12",
205 "L1_AFP_A_OR_C_EMPTY",
206 "L1_AFP_NSA_BGRP12",
"L1_AFP_NSC_BGRP12",
207 "L1_AFP_A",
"L1_AFP_C",
"L1_AFP_A_AND_C",
208 "L1_MBTS_A",
"L1_MBTS_C",
209 "L1_MBTS_1",
"L1_MBTS_1_1",
"L1_MBTS_2",
210 "L1_MBTS_1_A",
"L1_MBTS_1_C",
"L1_MBTS_4_A",
"L1_MBTS_4_C",
212 "L1_AFP_A_AND_C_TOF_jJ50",
214 "L1_AFP_A_AND_C_TOF_T0T1_jJ90",
217 "L1_MU3VF",
"L1_MU8F",
"L1_MU8FC",
"L1_MU8VF",
218 "L1_MU3VC",
"L1_MU3EOF",
"L1_MU4BO",
219 "L1_MU8FH",
"L1_MU8EOF",
220 "L1_MU9VF",
"L1_MU9VFC",
221 "L1_MU12FCH",
"L1_MU14FCHR",
"L1_MU14EOF",
222 "L1_MU15VFCH",
"L1_MU15VFCHR",
223 "L1_MU18VFCH",
"L1_MU20VFC",
224 "L1_2MU8F",
"L1_2MU8VF",
225 "L1_2MU14FCH_OVERLAY",
227 "L1_jJ55",
"L1_jJ80",
"L1_jJ140",
"L1_jJ180",
228 "L1_jJ30p0ETA25",
"L1_jJ40p0ETA25",
229 "L1_jJ70p0ETA23",
"L1_jJ55p0ETA23",
230 "L1_jJ80p0ETA25",
"L1_jJ85p0ETA21",
231 "L1_jEM25",
"L1_jEM20M",
233 "L1_eEM7",
"L1_eEM10L",
"L1_eEM15",
234 "L1_eEM18",
"L1_eEM22M",
"L1_eEM24VM",
237 "L1_eTAU20L",
"L1_eTAU35",
"L1_eTAU40HM",
241 monItems[TBP|TAP|TAV] = [
246 "L1_ZDC_A",
"L1_ZDC_C",
"L1_ZDC_A_C",
252 "L1_MBTS_2_2",
"L1_MBTS_3_3",
"L1_MBTS_4_4",
256 "L1_MU3V",
"L1_MU5VF",
257 "L1_MU8F",
"L1_MU8VF",
259 "L1_2MU3V",
"L1_2MU5VF",
261 "L1_2MU14FCH_OVERLAY",
263 "L1_eEM5",
"L1_eEM9",
"L1_eEM12",
"L1_eEM15",
264 "L1_eEM18",
"L1_eEM18L",
265 "L1_eEM26",
"L1_eEM26M",
268 "L1_jJ20",
"L1_jJ30",
"L1_jJ40",
"L1_jJ50",
269 "L1_jJ55",
"L1_jJ60",
"L1_jJ90",
"L1_jJ125",
271 "L1_jJ40p30ETA49",
"L1_jJ50p30ETA49",
"L1_jJ60p30ETA49",
274 "L1_gJ20p0ETA25",
"L1_gJ400p0ETA25",
276 "L1_gLJ80p0ETA25",
"L1_gXEJWOJ100",
284 if "MC" not in menuName:
285 monItems[TBP|TAP|TAV] += [
287 "L1_CALREQ0",
"L1_CALREQ1",
"L1_CALREQ2",
288 "L1_BPTX0_BGRP12",
"L1_BPTX1_BGRP12",
294 "L1_BCM_2A_FIRSTINTRAIN",
"L1_BCM_2C_FIRSTINTRAIN",
296 "L1_LUCID_A",
"L1_LUCID_C",
300 "L1_MBTS_1",
"L1_MBTS_2",
"L1_MBTS_1_1",
305 if "lowMu" in menuFullName:
306 monItems[TBP|TAP|TAV].extend([
308 "L1_AFP_A_OR_C",
"L1_AFP_A_AND_C",
310 "L1_AFP_A_AND_C_TOF_T0T1_jJ125",
311 "L1_AFP_A_AND_C_TOF_T0T1_jJ50",
312 "L1_AFP_A_AND_C_TOF_T0T1_jJ60",
313 "L1_AFP_A_AND_C_TOF_T0T1_jJ90",
314 "L1_AFP_A_AND_C_TOF_jJ125",
315 "L1_AFP_A_AND_C_TOF_jJ50",
316 "L1_AFP_A_AND_C_TOF_jJ60",
317 "L1_AFP_A_AND_C_TOF_jJ90",
318 "L1_AFP_A_AND_C_jJ20",
319 "L1_AFP_A_AND_C_jJ30",
320 "L1_AFP_A_OR_C_jJ20",
321 "L1_AFP_A_OR_C_jJ30",
325 "L1_MU5VF_AFP_A_OR_C",
327 "L1_eEM9_AFP_A_AND_C",
329 "L1_ZDC_A",
"L1_ZDC_C",
"L1_ZDC_A_C",
"L1_ZDC_OR",
"L1_ZDC_XOR",
334 "L1_jTE5",
"L1_jTE10",
"L1_jTE20",
"L1_jTE50",
335 "L1_jJ10",
"L1_jJ20",
336 "L1_eEM5",
"L1_eEM9",
340 if "MC" not in menuName:
341 monItems[TBP|TAP|TAV].extend([
344 "L1_AFP_A",
"L1_AFP_C",
347 "L1_AFP_FSA_TOF_T0_BGRP12",
348 "L1_AFP_FSA_TOF_T1_BGRP12",
349 "L1_AFP_FSA_TOF_T2_BGRP12",
350 "L1_AFP_FSA_TOF_T3_BGRP12",
352 "L1_AFP_FSC_TOF_T0_BGRP12",
353 "L1_AFP_FSC_TOF_T1_BGRP12",
354 "L1_AFP_FSC_TOF_T2_BGRP12",
355 "L1_AFP_FSC_TOF_T3_BGRP12",
359 "L1_AFP_A_AND_C_TOF_T0T1",
363 monItems[TBP|TAP|TAV].extend([
367 "L1_ZDC_XOR",
"L1_ZDC_C_VZDC_A",
"L1_ZDC_A_VZDC_C",
368 "L1_1ZDC_A_VZDC_C",
"L1_VZDC_A_1ZDC_C",
369 "L1_1ZDC_A_1ZDC_C",
"L1_5ZDC_A_VZDC_C",
"L1_VZDC_A_5ZDC_C",
370 "L1_ZDC_1XOR5",
"L1_5ZDC_A_5ZDC_C",
374 "L1_eEM1",
"L1_eEM2",
376 "L1_DPHI-2eEM1",
"L1_DPHI-2eTAU1",
377 "L1_DPHI-2eEM1_VjTE200",
378 "L1_2eEM1_VjTE200",
"L1_2eEM2_VjTE200",
379 "L1_eEM5_VjTE200",
"L1_eEM9_VjTE200",
380 "L1_eEM1_jTE4_VjTE200",
"L1_eEM2_jTE4_VjTE200",
"L1_eTAU1_jTE4_VjTE200",
388 "L1_jJ5p30ETA49",
"L1_jJ10p30ETA49",
390 "L1_jTE3",
"L1_jTE4",
"L1_jTE5",
"L1_jTE10",
"L1_jTE20",
"L1_jTE50",
391 "L1_jTE100",
"L1_jTE600",
"L1_jTE1500",
"L1_jTE6500",
"L1_jTEFWD2600",
"L1_jTEFWD5600",
"L1_jTEFWD6300",
"L1_jTEFWD6600",
394 "L1_VjTE10",
"L1_VjTE200",
"L1_VjTE600",
"L1_jTE50_VjTE600",
396 "L1_GAP_A",
"L1_GAP_C",
"L1_GAP_AANDC",
398 "L1_MU3V_VjTE50",
"L1_MU3V_VjTE200",
400 "L1_TRT_VjTE20",
"L1_eEM1_TRT_VjTE100",
401 "L1_TRT_ZDC_XOR_VjTE200",
"L1_TRT_1ZDC_NZDC_VjTE200",
403 "L1_ZDC_A_C_VjTE10",
"L1_ZDC_XOR_VjTE10",
"L1_TRT_ZDC_A_C_VjTE10",
"L1_TRT_ZDC_XOR_VjTE10",
404 "L1_TRT_ZDC_A_VjTE50",
"L1_TRT_ZDC_C_VjTE50",
406 "L1_MBTS_2_VZDC_A_ZDC_C_VjTE200_GAP_A",
"L1_MBTS_2_1ZDC_NZDC_VjTE200_GAP_A",
407 "L1_MBTS_2_ZDC_A_VZDC_C_VjTE200_GAP_C",
"L1_MBTS_2_1ZDC_NZDC_VjTE200_GAP_C",
408 "L1_MBTS_1_VZDC_A_ZDC_C_jTE3_VjTE200_GAP_A",
"L1_MBTS_1_1ZDC_NZDC_jTE3_VjTE200_GAP_A",
409 "L1_MBTS_1_ZDC_A_VZDC_C_jTE3_VjTE200_GAP_C",
"L1_MBTS_1_1ZDC_NZDC_jTE3_VjTE200_GAP_C",
411 "L1_1ZDC_A_1ZDC_C_VjTE200",
"L1_ZDC_1XOR5_VjTE200",
412 "L1_ZDC_XOR_VjTE200",
414 "L1_ZDC_XOR_jJ10_VjTE200",
416 "L1_ZDC_HELT20_jTEFWD2600",
417 "L1_ZDC_HELT35_jTEFWD2600",
418 "L1_ZDC_HELT50_jTEFWD2600",
420 "L1_TEA_TeAsymmetry-jTENoSort",
424 "L1_TEA_jJ5p30ETA49",
425 "L1_ESP_TeAsymmetry-jTENoSort",
429 "L1_ESP_jJ5p30ETA49",
431 'L1_TeATIME-jTENoSort',
433 'L1_TeAsymmetry-jTENoSort',
434 'L1_TeAsymmetry1-jTENoSort',
435 'L1_TeAsymmetry2-jTENoSort',
436 'L1_TeAsymmetry3-jTENoSort',
441 'L1_CALMTEA_eEM2_VjTE200',
442 'L1_CALMTEA_eTAU2_VjTE200',
445 'L1_MATCHA_eTAU2_VjTE200',
446 'L1_MATCHA_eTAU2_EMPTY',
447 'L1_MATCHA_eTAU2_VjTE200_EMPTY',
449 'L1_ESP_1ZDC_NZDC_jJ10_VjTE200',
450 'L1_ESP_5ZDC_A_5ZDC_C_jJ10_VjTE200',
451 'L1_ESP_VZDC_A_VZDC_C_jJ10_VjTE200',
452 'L1_ESP_VZDC_A_VZDC_C_jJ10p30ETA49_VjTE200',
453 'L1_ESP_VZDC_A_VZDC_C_jJ5p30ETA49_VjTE200',
454 'L1_ESP_ZDC_5XOR_jJ10_VjTE200',
455 'L1_ESP_ZDC_XOR_jJ10_VjTE200',
456 'L1_ESP_ZDC_XOR_jJ10p30ETA49_VjTE200',
457 'L1_ESP_ZDC_XOR_jJ5p30ETA49_VjTE200',
459 'L1_ESP_ASYM0_TRT_ZDC_XOR_VjTE200',
460 'L1_ESP_ASYM1_TRT_ZDC_XOR_VjTE200',
461 'L1_ESP_ASYM2_TRT_ZDC_XOR_VjTE200',
462 'L1_ESP_ASYM3_TRT_ZDC_XOR_VjTE200',
464 'L1_ESP_ASYM0_ZDC_XOR_VjTE200',
465 'L1_ESP_ASYM1_ZDC_XOR_VjTE200',
466 'L1_ESP_ASYM2_ZDC_XOR_VjTE200',
467 'L1_ESP_ASYM3_ZDC_XOR_VjTE200',
469 'L1_23INVM-27DPHI-2eTAU1_VjTE200',
471 'L1_CALMTEA_DPHI-2eTAU1_VjTE200',
472 'L1_CALMTEA_DPHI-2eTAU1_VjTE200_EMPTY',
474 'L1_CALMTEA_23INVM-27DPHI-2eTAU1_VjTE200',
475 'L1_CALMTEA_23INVM-27DPHI-2eTAU1_VjTE200_EMPTY',
479 if "MC" not in menuName:
480 monItems[TBP|TAP|TAV].extend([
483 monItems[TBP|TAP|TAV] += topo3_monitems
487 monItemsHF[TBP|TAP|TAV] = [
489 "L1_MBTS_1",
"L1_MBTS_2",
"L1_MBTS_1_1",
491 "L1_BCM_2A_FIRSTINTRAIN",
"L1_BCM_2C_FIRSTINTRAIN"
495 monItemsHF[TBP|TAP|TAV].extend([
498 if "lowMu" in menuFullName:
499 monItemsHF[TBP|TAP|TAV].extend([
501 "L1_ZDC_A",
"L1_ZDC_C",
"L1_ZDC_A_C",
"L1_ZDC_OR",
505 monItemsHF[TBP|TAP|TAV].extend([
506 "L1_ZDC_A",
"L1_ZDC_C",
"L1_ZDC_A_C",
507 "L1_ZDC_OR",
"L1_ZDC_XOR",
508 "L1_ZDC_C_VZDC_A",
"L1_ZDC_A_VZDC_C",
"L1_5ZDC_A_5ZDC_C",
516 counts_LF_items = { TBP :
set(), TAP :
set(), TAV :
set() }
517 counts_HF_items = { TBP :
set(), TAP :
set(), TAV :
set() }
522 counts_LF_items[TBP].update( monItems[k] )
523 counts_HF_items[TBP].update( monItemsHF[k] )
526 counts_LF_items[TAP].update( monItems[k] )
527 counts_HF_items[TAP].update( monItemsHF[k] )
530 counts_LF_items[TAV].update( monItems[k] )
531 counts_HF_items[TAV].update( monItemsHF[k] )
533 counts_LF = dict(
map(
lambda x : (x[0],len(x[1])), counts_LF_items.items() ) )
534 counts_HF = dict(
map(
lambda x : (x[0],len(x[1])), counts_HF_items.items() ) )
536 lutsLF = int( (
max(counts_LF.values())-1) / 8) + 1
537 lutsHF = int( (
max(counts_HF.values())-1) / 8) + 1
540 if lutsLF + lutsHF > maxLUTs:
541 log.error(
"too many monitoring items are defined:")
542 log.error(
" low frequency TBP: %i",counts_LF[TBP])
543 log.error(
" TAP: %i",counts_LF[TAP])
544 log.error(
" TAV: %i",counts_LF[TAV])
545 log.error(
" required LUTs: %i",lutsLF)
546 log.error(
" high frequency TBP: %i",counts_HF[TBP])
547 log.error(
" TAP: %i",counts_HF[TAP])
548 log.error(
" TAV: %i",counts_HF[TAV])
549 log.error(
" required LUTs: %i",lutsHF)
550 log.error(
" this menu requires %i monitoring LUTs while only %i are available", (lutsLF + lutsHF), maxLUTs)
551 raise RuntimeError(
"Reduce the number of monitored items")
553 if 'AllCTPIn' not in menuName:
554 MonitorDef.checkForNonExistingMonItems(items, monItems)
560 for k,l
in monItems.items():
563 item.addMonitor(k, MonitorDef.LOW_FREQ)
566 for k,l
in monItemsHF.items():
569 item.addMonitor(k, MonitorDef.HIGH_FREQ)