96 def applyItemCounter( menuName, items ):
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_TAU8",
"L1_TAU20IM",
126 "L1_eEM5",
"L1_eEM9",
"L1_eEM12L",
127 "L1_eEM18L",
"L1_eEM18M",
"L1_eEM24L",
128 "L1_eEM26",
"L1_eEM26L",
"L1_eEM26M",
"L1_eEM26T",
130 "L1_2eEM18M",
"L1_2eEM24L",
131 "L1_eEM24L_3eEM12L",
"L1_eEM40L_2eEM18L",
132 "L1_eTAU20M",
"L1_eTAU30",
133 "L1_eTAU60",
"L1_eTAU80",
"L1_eTAU140",
134 "L1_jTAU20",
"L1_jTAU30",
"L1_jTAU30M",
135 "L1_cTAU20M",
"L1_cTAU35M",
136 "L1_cTAU30M_2cTAU20M",
137 "L1_jJ30",
"L1_jJ40",
"L1_jJ50",
138 "L1_jJ60",
"L1_jJ90",
"L1_jJ125",
139 "L1_jJ160",
"L1_jJ500",
140 "L1_jJ40p30ETA49",
"L1_jJ50p30ETA49",
141 "L1_jJ60p30ETA49",
"L1_jJ90p30ETA49",
"L1_jJ125p30ETA49",
142 "L1_3jJ90",
"L1_4jJ40",
"L1_4jJ50",
143 "L1_3jJ70p0ETA23",
"L1_4jJ40p0ETA25",
"L1_5jJ40p0ETA25",
144 "L1_jJ140_3jJ60",
"L1_jJ85p0ETA21_3jJ40p0ETA25",
145 "L1_jXE60",
"L1_jXE70",
"L1_jXE80",
"L1_jXE90",
"L1_jXE100",
146 "L1_jXE110",
"L1_jXE120",
"L1_jXE500",
149 "L1_jTEC200",
"L1_jTEFWD100",
"L1_jTEFWDA100",
"L1_jTEFWDC100",
150 "L1_gJ20p0ETA25",
"L1_gJ20p25ETA49",
"L1_gJ20p0ETA25_EMPTY",
"L1_gJ50p0ETA25",
151 "L1_gJ100p0ETA25",
"L1_gJ400p0ETA25",
152 "L1_gLJ80p0ETA25",
"L1_gLJ100p0ETA25",
"L1_gLJ140p0ETA25",
"L1_gLJ160p0ETA25",
154 "L1_gXENC70",
"L1_gXENC100",
155 "L1_gXEJWOJ60",
"L1_gXEJWOJ70",
"L1_gXEJWOJ80",
"L1_gXEJWOJ100",
"L1_gXEJWOJ110",
"L1_gXEJWOJ120",
"L1_gXEJWOJ500",
159 "L1_2eEM10L_MU8F",
"L1_MU3V_jJ40",
162 "L1_LLPDPHI-jXE40-jJ40",
163 "L1_BPH-0DR3-eEM9jJ40_MU5VF",
"L1_BPH-0M9-eEM9-eEM7_MU5VF",
"L1_BPH-0DR3-eEM9jJ40_2MU3V",
164 "L1_BPH-0M9-eEM9-eEM7",
"L1_BPH-0M10-3MU3V",
"L1_BPH-0M10-3MU3VF",
165 "L1_JPSI-1M5-eEM9",
"L1_JPSI-1M5-eEM15",
166 "L1_BTAG-MU3VjJ40",
"L1_BTAG-MU5VFjJ80",
167 "L1_cTAU30M_2cTAU20M_DR-eTAU30MeTAU20M",
169 "L1_DY-BOX-2MU3VF",
"L1_DY-BOX-MU5VFMU3V",
170 "L1_LAR-ZEE-eEM",
"L1_LFV-MU5VF",
171 "L1_10DR-MU14FCH-MU5VF_EMPTY",
"L1_DPHI-M70-2eEM12M",
175 "L1_HT190-jJ40s5pETA21",
"L1_jMJJ-500-NFF",
176 "L1_LLP-RO-eEM",
"L1_LLP-NOMATCH-eEM",
178 "L1_ZAFB-25DPHI-eEM18M",
180 "L1_LFV-eEM10L-MU8VF",
"L1_LFV-eEM15L-MU5VF",
183 if 'MC' not in menuName:
184 monItems[TBP|TAP|TAV] += [
187 "L1_LUCID_A",
"L1_LUCID_C",
188 "L1_CALREQ1",
"L1_CALREQ2",
191 "L1_BPTX0_BGRP12",
"L1_BPTX1_BGRP12",
195 "L1_BCM_2A_FIRSTINTRAIN",
"L1_BCM_2C_FIRSTINTRAIN",
197 "L1_AFP_A_AND_C_TOF_T0T1",
198 "L1_AFP_FSA_BGRP12",
"L1_AFP_FSC_BGRP12",
199 "L1_AFP_FSA_TOF_T0_BGRP12",
"L1_AFP_FSA_TOF_T1_BGRP12",
"L1_AFP_FSA_TOF_T2_BGRP12",
"L1_AFP_FSA_TOF_T3_BGRP12",
200 "L1_AFP_FSC_TOF_T0_BGRP12",
"L1_AFP_FSC_TOF_T1_BGRP12",
"L1_AFP_FSC_TOF_T2_BGRP12",
"L1_AFP_FSC_TOF_T3_BGRP12",
201 "L1_AFP_A_OR_C_EMPTY",
202 "L1_AFP_NSA_BGRP12",
"L1_AFP_NSC_BGRP12",
203 "L1_AFP_A",
"L1_AFP_C",
"L1_AFP_A_AND_C",
204 "L1_MBTS_A",
"L1_MBTS_C",
205 "L1_MBTS_1",
"L1_MBTS_1_1",
"L1_MBTS_2",
206 "L1_MBTS_1_A",
"L1_MBTS_1_C",
"L1_MBTS_4_A",
"L1_MBTS_4_C",
208 "L1_AFP_A_AND_C_TOF_jJ50",
210 "L1_AFP_A_AND_C_TOF_T0T1_jJ90",
214 "L1_MU3VF",
"L1_MU8F",
"L1_MU8FC",
"L1_MU8VF",
215 "L1_MU3VC",
"L1_MU3EOF",
"L1_MU4BO",
216 "L1_MU8FH",
"L1_MU8EOF",
217 "L1_MU9VF",
"L1_MU9VFC",
218 "L1_MU12FCH",
"L1_MU14FCHR",
"L1_MU14EOF",
219 "L1_MU15VFCH",
"L1_MU15VFCHR",
220 "L1_MU18VFCH",
"L1_MU20VFC",
221 "L1_2MU8F",
"L1_2MU8VF",
222 "L1_2MU14FCH_OVERLAY",
224 "L1_jJ55",
"L1_jJ80",
"L1_jJ140",
"L1_jJ180",
225 "L1_jJ30p0ETA25",
"L1_jJ40p0ETA25",
226 "L1_jJ70p0ETA23",
"L1_jJ55p0ETA23",
227 "L1_jJ80p0ETA25",
"L1_jJ85p0ETA21",
229 "L1_jEM20",
"L1_jEM20M",
231 "L1_eEM7",
"L1_eEM10L",
"L1_eEM15",
232 "L1_eEM18",
"L1_eEM22M",
"L1_eEM24VM",
235 "L1_eTAU20L",
"L1_eTAU35",
"L1_eTAU40HM",
239 monItems[TBP|TAP|TAV] = [
244 "L1_AFP_A_OR_C",
"L1_AFP_A_AND_C",
246 "L1_AFP_A_AND_C_J12",
247 "L1_AFP_A_AND_C_TOF_J20",
248 "L1_AFP_A_AND_C_TOF_J30",
249 "L1_AFP_A_AND_C_TOF_J50",
250 "L1_AFP_A_AND_C_TOF_J75",
251 "L1_AFP_A_AND_C_TOF_T0T1_J20",
252 "L1_AFP_A_AND_C_TOF_T0T1_J30",
253 "L1_AFP_A_AND_C_TOF_T0T1_J50",
254 "L1_AFP_A_AND_C_TOF_T0T1_J75",
255 "L1_AFP_A_AND_C_TOF_T0T1_jJ125",
256 "L1_AFP_A_AND_C_TOF_T0T1_jJ50",
257 "L1_AFP_A_AND_C_TOF_T0T1_jJ60",
258 "L1_AFP_A_AND_C_TOF_T0T1_jJ90",
259 "L1_AFP_A_AND_C_TOF_jJ125",
260 "L1_AFP_A_AND_C_TOF_jJ50",
261 "L1_AFP_A_AND_C_TOF_jJ60",
262 "L1_AFP_A_AND_C_TOF_jJ90",
263 "L1_AFP_A_AND_C_jJ20",
264 "L1_AFP_A_AND_C_jJ30",
266 "L1_AFP_A_OR_C_jJ20",
267 "L1_AFP_A_OR_C_jJ30",
270 "L1_ZDC_BIT0",
"L1_ZDC_BIT1",
"L1_ZDC_BIT2",
271 "L1_ZDC_COMB0",
"L1_ZDC_COMB1",
"L1_ZDC_COMB2",
"L1_ZDC_COMB3",
272 "L1_ZDC_COMB4",
"L1_ZDC_COMB5",
"L1_ZDC_COMB6",
"L1_ZDC_COMB7",
273 "L1_VZDC_A_VZDC_C",
"L1_1ZDC_A_VZDC_C",
"L1_VZDC_A_1ZDC_C",
274 "L1_1ZDC_A_1ZDC_C",
"L1_5ZDC_A_VZDC_C",
"L1_VZDC_A_5ZDC_C",
275 "L1_ZDC_1XOR5",
"L1_5ZDC_A_5ZDC_C",
277 "L1_ZDC_A",
"L1_ZDC_C",
"L1_ZDC_A_C",
278 "L1_ZDC_A_EMPTY",
"L1_ZDC_A_UNPAIRED_NONISO",
279 "L1_ZDC_C_EMPTY",
"L1_ZDC_C_UNPAIRED_NONISO",
280 "L1_ZDC_A_C_EMPTY",
"L1_ZDC_A_C_UNPAIRED_NONISO",
281 "L1_ZDC_XOR",
"L1_ZDC_C_VZDC_A",
"L1_ZDC_A_VZDC_C",
284 "L1_ZDC_A_AND_C_EMPTY",
"L1_ZDC_A_AND_C_UNPAIRED_NONISO",
285 "L1_ZDC_E1_AND_E1",
"L1_ZDC_E2_AND_E2",
"L1_ZDC_E2_AND_E3",
"L1_ZDC_E3_AND_E3",
286 "L1_ZDC_E1_AND_E2ORE3",
287 "L1_ZDC_OR",
"L1_ZDC_OR_EMPTY",
"L1_ZDC_OR_UNPAIRED_NONISO",
288 "L1_ZDC_XOR_E1_E3",
"L1_ZDC_XOR_E2",
292 "L1_MBTS_2_2",
"L1_MBTS_3_3",
"L1_MBTS_4_4",
296 "L1_MU3V",
"L1_MU5VF",
297 "L1_MU8F",
"L1_MU8VF",
300 "L1_MU3V_FIRSTEMPTY",
302 "L1_2MU3V",
"L1_2MU5VF",
304 "L1_2MU14FCH_OVERLAY",
306 "L1_MU5VF_AFP_A_OR_C",
309 "L1_eEM5",
"L1_eEM9",
"L1_eEM12",
"L1_eEM15",
310 "L1_eEM18",
"L1_eEM18L",
311 "L1_eEM26",
"L1_eEM26M",
314 "L1_jJ20",
"L1_jJ30",
"L1_jJ40",
"L1_jJ50",
315 "L1_jJ55",
"L1_jJ60",
"L1_jJ90",
317 "L1_jJ40p30ETA49",
"L1_jJ50p30ETA49",
"L1_jJ60p30ETA49",
320 "L1_gLJ80p0ETA25",
"L1_gXEJWOJ100",
324 "L1_eEM9_AFP_A_AND_C",
328 if 'MC' not in menuName:
329 monItems[TBP|TAP|TAV] += [
331 "L1_CALREQ0",
"L1_CALREQ1",
"L1_CALREQ2",
332 "L1_BPTX0_BGRP12",
"L1_BPTX1_BGRP12",
338 "L1_AFP_A",
"L1_AFP_C",
341 "L1_AFP_FSA_TOF_T0_BGRP12",
342 "L1_AFP_FSA_TOF_T1_BGRP12",
343 "L1_AFP_FSA_TOF_T2_BGRP12",
344 "L1_AFP_FSA_TOF_T3_BGRP12",
346 "L1_AFP_FSC_TOF_T0_BGRP12",
347 "L1_AFP_FSC_TOF_T1_BGRP12",
348 "L1_AFP_FSC_TOF_T2_BGRP12",
349 "L1_AFP_FSC_TOF_T3_BGRP12",
353 "L1_AFP_A_AND_C_MBTS_2",
354 "L1_AFP_A_AND_C_TOF_T0T1",
355 "L1_AFP_A_OR_C_FIRSTEMPTY",
356 "L1_AFP_A_OR_C_EMPTY",
357 "L1_AFP_A_OR_C_MBTS_2",
358 "L1_AFP_A_OR_C_UNPAIRED_ISO",
359 "L1_AFP_A_OR_C_UNPAIRED_NONISO",
362 "L1_BCM_2A_FIRSTINTRAIN",
"L1_BCM_2C_FIRSTINTRAIN",
364 "L1_LUCID_A",
"L1_LUCID_C",
368 "L1_MBTS_1",
"L1_MBTS_2",
"L1_MBTS_1_1",
369 "L1_MBTS_1_EMPTY",
"L1_MBTS_1_UNPAIRED_ISO",
370 "L1_MBTS_2_EMPTY",
"L1_MBTS_2_UNPAIRED_ISO",
371 "L1_MBTS_1_1_EMPTY",
"L1_MBTS_1_1_UNPAIRED_ISO",
376 monItems[TBP|TAP|TAV] += topo3_monitems
379 monItemsHF[TBP|TAP|TAV] = [
381 "L1_MBTS_1",
"L1_MBTS_2",
"L1_MBTS_1_1",
382 "L1_BCM_Wide",
"L1_BCM_2A_FIRSTINTRAIN",
"L1_BCM_2C_FIRSTINTRAIN"
389 counts_LF_items = { TBP :
set(), TAP :
set(), TAV :
set() }
390 counts_HF_items = { TBP :
set(), TAP :
set(), TAV :
set() }
395 counts_LF_items[TBP].
update( monItems[k] )
396 counts_HF_items[TBP].
update( monItemsHF[k] )
399 counts_LF_items[TAP].
update( monItems[k] )
400 counts_HF_items[TAP].
update( monItemsHF[k] )
403 counts_LF_items[TAV].
update( monItems[k] )
404 counts_HF_items[TAV].
update( monItemsHF[k] )
406 counts_LF = dict( map(
lambda x : (x[0],len(x[1])), counts_LF_items.items() ) )
407 counts_HF = dict( map(
lambda x : (x[0],len(x[1])), counts_HF_items.items() ) )
409 lutsLF =
int( (
max(counts_LF.values())-1) / 8) + 1
410 lutsHF =
int( (
max(counts_HF.values())-1) / 8) + 1
413 if lutsLF + lutsHF > maxLUTs:
414 log.error(
"too many monitoring items are defined:")
415 log.error(
" low frequency TBP: %i",counts_LF[TBP])
416 log.error(
" TAP: %i",counts_LF[TAP])
417 log.error(
" TAV: %i",counts_LF[TAV])
418 log.error(
" required LUTs: %i",lutsLF)
419 log.error(
" high frequency TBP: %i",counts_HF[TBP])
420 log.error(
" TAP: %i",counts_HF[TAP])
421 log.error(
" TAV: %i",counts_HF[TAV])
422 log.error(
" required LUTs: %i",lutsHF)
423 log.error(
" this menu requires %i monitoring LUTs while only %i are available", (lutsLF + lutsHF), maxLUTs)
424 raise RuntimeError(
"Reduce the number of monitored items")
426 if 'AllCTPIn' not in menuName:
427 MonitorDef.checkForNonExistingMonItems(items, monItems)
433 for k,l
in monItems.items():
436 item.addMonitor(k, MonitorDef.LOW_FREQ)
439 for k,l
in monItemsHF.items():
442 item.addMonitor(k, MonitorDef.HIGH_FREQ)