4 The CTP monitors three different types of signals. In the XML file
5 they are listed in the section <TriggerCounterList>
9 Almost each input threshold is monitored with one counter per
10 multiplicity it can have. E.g. there are 7 counters for the EM10VH
11 threshold: "1EM10VH" ... "7EM10VH"
13 Due to limitations of the CTPIN monitoring LUT (there are only 4 LUT
14 per CTPIN connector and a LUT has 8 bit input) only 2 3-bit thresholds
15 can be monitored per LUT, so max 8 3-bit thresholds per
16 connector. Hence JET thresholds 8 and 9 can not be monitored.
21 This allows to monitor any combination of conditions built in the same
22 way as L1 Items. However, since we can also monitor L1 Items directly
23 (see 3)), there is little need for this type of monitoring. We use it to monitor simple conditions
28 For each of these type 64 L1Items can be monitored independently
29 Please take note that the bunch mask is not applied for the per-bunch monitoring, thus one item per threshold is sufficient
33 from AthenaCommon.Logging
import logging
34 log = logging.getLogger(__name__)
36 from ..Base.MonCounters
import CtpinCounter, CtpmonCounter
50 for slotConnectors
in ctpinConfig.values():
51 for connName
in slotConnectors.values():
53 connectedCables += [ connName ]
56 for ctpinCableName
in connectedCables:
57 conn = connectors[ctpinCableName]
58 for i, tl
in enumerate(conn.triggerLines):
59 if ctpinCableName ==
"JET1" and i==8:
61 for mult
in range(1, 2**tl.nbits):
62 counters += [
CtpinCounter(threshold=tl.name, multiplicity = mult) ]
78 'AFP_NSA',
'AFP_NSC',
'AFP_FSA',
'AFP_FSC',
'AFP_FSA_TOF_T0',
'AFP_FSC_TOF_T0',
79 'AFP_FSA_TOF_T1',
'AFP_FSC_TOF_T1',
'AFP_FSA_TOF_T2',
'AFP_FSC_TOF_T2',
'AFP_FSA_TOF_T3',
'AFP_FSC_TOF_T3',
80 'MBTS_A0',
'MBTS_A1',
'MBTS_A2',
'MBTS_A3',
'MBTS_A4',
'MBTS_A5',
'MBTS_A6',
'MBTS_A7',
81 'MBTS_A8',
'MBTS_A9',
'MBTS_A10',
'MBTS_A11',
'MBTS_A12',
'MBTS_A13',
'MBTS_A14',
'MBTS_A15',
82 'MBTS_C0',
'MBTS_C1',
'MBTS_C2',
'MBTS_C3',
'MBTS_C4',
'MBTS_C5',
'MBTS_C6',
'MBTS_C7',
83 'MBTS_C8',
'MBTS_C9',
'MBTS_C10',
'MBTS_C11',
'MBTS_C12',
'MBTS_C13',
'MBTS_C14',
'MBTS_C15',
84 'BMA0',
'BMA1',
'BMA2',
'BMA3',
"ZDC_0",
"ZDC_1",
"ZDC_2",
"ZDC_ALT_0",
"ZDC_ALT_1",
"ZDC_ALT_2"
88 for thrName
in cThr[mult]:
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",
"L1_eTAU140",
130 "L1_cTAU20M",
"L1_cTAU35M",
131 "L1_cTAU30M_2cTAU20M",
132 "L1_jJ30",
"L1_jJ40",
"L1_jJ50",
133 "L1_jJ60",
"L1_jJ90",
"L1_jJ125",
134 "L1_jJ160",
"L1_jJ500",
135 "L1_jJ40p30ETA49",
"L1_jJ50p30ETA49",
136 "L1_jJ60p30ETA49",
"L1_jJ90p30ETA49",
"L1_jJ125p30ETA49",
137 "L1_3jJ90",
"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 "L1_HT190-jJ40s5pETA21",
"L1_jMJJ-500-NFF",
171 "L1_LLP-RO-eEM",
"L1_LLP-NOMATCH-eEM",
173 "L1_ZAFB-25DPHI-eEM18M",
175 "L1_LFV-eEM10L-MU8VF",
"L1_LFV-eEM15L-MU5VF",
178 if 'MC' not in menuName:
179 monItems[TBP|TAP|TAV] += [
182 "L1_LUCID_A",
"L1_LUCID_C",
183 "L1_CALREQ1",
"L1_CALREQ2",
186 "L1_BPTX0_BGRP12",
"L1_BPTX1_BGRP12",
190 "L1_BCM_2A_FIRSTINTRAIN",
"L1_BCM_2C_FIRSTINTRAIN",
192 "L1_AFP_A_AND_C_TOF_T0T1",
193 "L1_AFP_FSA_BGRP12",
"L1_AFP_FSC_BGRP12",
194 "L1_AFP_FSA_TOF_T0_BGRP12",
"L1_AFP_FSA_TOF_T1_BGRP12",
"L1_AFP_FSA_TOF_T2_BGRP12",
"L1_AFP_FSA_TOF_T3_BGRP12",
195 "L1_AFP_FSC_TOF_T0_BGRP12",
"L1_AFP_FSC_TOF_T1_BGRP12",
"L1_AFP_FSC_TOF_T2_BGRP12",
"L1_AFP_FSC_TOF_T3_BGRP12",
196 "L1_AFP_A_OR_C_EMPTY",
197 "L1_AFP_NSA_BGRP12",
"L1_AFP_NSC_BGRP12",
198 "L1_AFP_A",
"L1_AFP_C",
"L1_AFP_A_AND_C",
199 "L1_MBTS_A",
"L1_MBTS_C",
200 "L1_MBTS_1",
"L1_MBTS_1_1",
"L1_MBTS_2",
201 "L1_MBTS_1_A",
"L1_MBTS_1_C",
"L1_MBTS_4_A",
"L1_MBTS_4_C",
203 "L1_AFP_A_AND_C_TOF_jJ50",
205 "L1_AFP_A_AND_C_TOF_T0T1_jJ90",
208 "L1_MU3VF",
"L1_MU8F",
"L1_MU8FC",
"L1_MU8VF",
209 "L1_MU3VC",
"L1_MU3EOF",
"L1_MU4BO",
210 "L1_MU8FH",
"L1_MU8EOF",
211 "L1_MU9VF",
"L1_MU9VFC",
212 "L1_MU12FCH",
"L1_MU14FCHR",
"L1_MU14EOF",
213 "L1_MU15VFCH",
"L1_MU15VFCHR",
214 "L1_MU18VFCH",
"L1_MU20VFC",
215 "L1_2MU8F",
"L1_2MU8VF",
216 "L1_2MU14FCH_OVERLAY",
218 "L1_jJ55",
"L1_jJ80",
"L1_jJ140",
"L1_jJ180",
219 "L1_jJ30p0ETA25",
"L1_jJ40p0ETA25",
220 "L1_jJ70p0ETA23",
"L1_jJ55p0ETA23",
221 "L1_jJ80p0ETA25",
"L1_jJ85p0ETA21",
222 "L1_jEM25",
"L1_jEM20M",
224 "L1_eEM7",
"L1_eEM10L",
"L1_eEM15",
225 "L1_eEM18",
"L1_eEM22M",
"L1_eEM24VM",
228 "L1_eTAU20L",
"L1_eTAU35",
"L1_eTAU40HM",
232 monItems[TBP|TAP|TAV] = [
237 "L1_ZDC_BIT0",
"L1_ZDC_BIT1",
"L1_ZDC_BIT2",
238 "L1_ZDC_COMB0",
"L1_ZDC_COMB1",
"L1_ZDC_COMB2",
"L1_ZDC_COMB3",
239 "L1_ZDC_COMB4",
"L1_ZDC_COMB5",
"L1_ZDC_COMB6",
"L1_ZDC_COMB7",
240 "L1_ZDC_A",
"L1_ZDC_C",
"L1_ZDC_A_C",
246 "L1_MBTS_2_2",
"L1_MBTS_3_3",
"L1_MBTS_4_4",
250 "L1_MU3V",
"L1_MU5VF",
251 "L1_MU8F",
"L1_MU8VF",
253 "L1_2MU3V",
"L1_2MU5VF",
255 "L1_2MU14FCH_OVERLAY",
257 "L1_eEM5",
"L1_eEM9",
"L1_eEM12",
"L1_eEM15",
258 "L1_eEM18",
"L1_eEM18L",
259 "L1_eEM26",
"L1_eEM26M",
262 "L1_jJ20",
"L1_jJ30",
"L1_jJ40",
"L1_jJ50",
263 "L1_jJ55",
"L1_jJ60",
"L1_jJ90",
"L1_jJ125",
265 "L1_jJ40p30ETA49",
"L1_jJ50p30ETA49",
"L1_jJ60p30ETA49",
268 "L1_gJ20p0ETA25",
"L1_gJ400p0ETA25",
270 "L1_gLJ80p0ETA25",
"L1_gXEJWOJ100",
278 if "MC" not in menuName:
279 monItems[TBP|TAP|TAV] += [
281 "L1_CALREQ0",
"L1_CALREQ1",
"L1_CALREQ2",
282 "L1_BPTX0_BGRP12",
"L1_BPTX1_BGRP12",
288 "L1_BCM_2A_FIRSTINTRAIN",
"L1_BCM_2C_FIRSTINTRAIN",
290 "L1_LUCID_A",
"L1_LUCID_C",
294 "L1_MBTS_1",
"L1_MBTS_2",
"L1_MBTS_1_1",
299 if "lowMu" in menuFullName:
300 monItems[TBP|TAP|TAV].
extend([
302 "L1_AFP_A_OR_C",
"L1_AFP_A_AND_C",
304 "L1_AFP_A_AND_C_TOF_T0T1_jJ125",
305 "L1_AFP_A_AND_C_TOF_T0T1_jJ50",
306 "L1_AFP_A_AND_C_TOF_T0T1_jJ60",
307 "L1_AFP_A_AND_C_TOF_T0T1_jJ90",
308 "L1_AFP_A_AND_C_TOF_jJ125",
309 "L1_AFP_A_AND_C_TOF_jJ50",
310 "L1_AFP_A_AND_C_TOF_jJ60",
311 "L1_AFP_A_AND_C_TOF_jJ90",
312 "L1_AFP_A_AND_C_jJ20",
313 "L1_AFP_A_AND_C_jJ30",
314 "L1_AFP_A_OR_C_jJ20",
315 "L1_AFP_A_OR_C_jJ30",
319 "L1_MU5VF_AFP_A_OR_C",
321 "L1_eEM9_AFP_A_AND_C",
323 "L1_ZDC_A",
"L1_ZDC_C",
"L1_ZDC_A_C",
"L1_ZDC_OR",
"L1_ZDC_XOR",
324 "L1_ZDC_XNXN",
"L1_ZDC_XNYN",
"L1_ZDC_XNZN",
325 "L1_ZDC_XN_XOR",
"L1_ZDC_YN_XOR",
"L1_ZDC_ZN_XOR",
326 "L1_ZDC_YN",
"L1_ZDC_ZN",
"L1_ZDC_LOR",
"L1_ZDC_YNYN",
328 "L1_jTE5",
"L1_jTE10",
"L1_jTE20",
"L1_jTE50",
329 "L1_jJ10",
"L1_jJ20",
330 "L1_eEM5",
"L1_eEM9",
334 if "MC" not in menuName:
335 monItems[TBP|TAP|TAV].
extend([
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_TOF_T0T1",
357 monItems[TBP|TAP|TAV].
extend([
361 "L1_ZDC_XOR",
"L1_ZDC_C_VZDC_A",
"L1_ZDC_A_VZDC_C",
362 "L1_1ZDC_A_VZDC_C",
"L1_VZDC_A_1ZDC_C",
363 "L1_1ZDC_A_1ZDC_C",
"L1_5ZDC_A_VZDC_C",
"L1_VZDC_A_5ZDC_C",
364 "L1_ZDC_1XOR5",
"L1_5ZDC_A_5ZDC_C",
368 "L1_eEM1",
"L1_eEM2",
370 "L1_DPHI-2eEM1",
"L1_DPHI-2eTAU1",
371 "L1_DPHI-2eEM1_VjTE200",
372 "L1_2eEM1_VjTE200",
"L1_2eEM2_VjTE200",
"L1_2eEM1_VjTE200_GAP_AANDC",
373 "L1_eEM5_VjTE200",
"L1_eEM9_VjTE200",
374 "L1_eEM1_jTE4_VjTE200",
"L1_eEM2_jTE4_VjTE200",
"L1_eTAU1_jTE4_VjTE200",
375 "L1_2eTAU1_VjTE200",
"L1_2eTAU1_VjTE200_GAP_AANDC",
376 "L1_eEM1_TRT_VjTE200",
"L1_eTAU1_TRT_VjTE200",
377 "L1_eEM1_TRT_ZDC_XOR_VjTE200",
"L1_eTAU1_TRT_ZDC_XOR_VjTE200",
"L1_jTAU1_TRT_ZDC_XOR_VjTE200",
378 "L1_eEM1_TRT_VZDC_A_VZDC_C_VjTE100",
"L1_eTAU1_TRT_VZDC_A_VZDC_C_VjTE100",
379 "L1_eEM1_TRT_ZDC_XOR4_VjTE100",
"L1_eTAU1_TRT_ZDC_XOR4_VjTE100",
382 "L1_jJ5p30ETA49",
"L1_jJ10p30ETA49",
384 "L1_jTE3",
"L1_jTE4",
"L1_jTE5",
"L1_jTE10",
"L1_jTE20",
"L1_jTE50",
385 "L1_jTE100",
"L1_jTE600",
"L1_jTE1500",
"L1_jTE6500",
"L1_jTE8300",
386 "L1_jTE9000",
"L1_jTE10000",
"L1_jTE12000",
387 "L1_jTE5_VjTE200",
"L1_gTE5_VjTE200",
389 "L1_VjTE10",
"L1_VjTE200",
"L1_VjTE600",
"L1_jTE50_VjTE600",
391 "L1_GAP_A",
"L1_GAP_C",
"L1_GAP_AANDC",
393 "L1_MU3V_VjTE50",
"L1_MU3V_VjTE200",
395 "L1_TRT_VjTE20",
"L1_eEM1_TRT_VjTE100",
396 "L1_TRT_ZDC_XOR_VjTE200",
"L1_TRT_1ZDC_NZDC_VjTE200",
398 "L1_ZDC_A_C_VjTE10",
"L1_ZDC_XOR_VjTE10",
"L1_TRT_ZDC_A_C_VjTE10",
"L1_TRT_ZDC_XOR_VjTE10",
399 "L1_TRT_ZDC_A_VjTE50",
"L1_TRT_ZDC_C_VjTE50",
401 "L1_MBTS_2_VZDC_A_ZDC_C_VjTE200_GAP_A",
"L1_MBTS_2_1ZDC_NZDC_VjTE200_GAP_A",
402 "L1_MBTS_2_ZDC_A_VZDC_C_VjTE200_GAP_C",
"L1_MBTS_2_1ZDC_NZDC_VjTE200_GAP_C",
403 "L1_MBTS_1_VZDC_A_ZDC_C_jTE3_VjTE200",
"L1_MBTS_1_ZDC_A_VZDC_C_jTE3_VjTE200",
404 "L1_MBTS_1_1ZDC_NZDC_jTE3_VjTE200",
405 "L1_MBTS_1_VZDC_A_ZDC_C_jTE3_VjTE200_GAP_A",
"L1_MBTS_1_1ZDC_NZDC_jTE3_VjTE200_GAP_A",
406 "L1_MBTS_1_ZDC_A_VZDC_C_jTE3_VjTE200_GAP_C",
"L1_MBTS_1_1ZDC_NZDC_jTE3_VjTE200_GAP_C",
408 "L1_1ZDC_A_1ZDC_C_VjTE200",
"L1_ZDC_1XOR5_VjTE200",
409 "L1_ZDC_XOR_VjTE200",
410 "L1_VZDC_A_VZDC_C_jTE5_VjTE200",
"L1_ZDC_XOR_jTE5_VjTE200",
411 "L1_1ZDC_NZDC_jTE5_VjTE200",
"L1_5ZDC_A_5ZDC_C_jTE5_VjTE200",
412 "L1_VZDC_A_VZDC_C_jTE10_VjTE200",
"L1_ZDC_XOR_jTE10_VjTE200",
413 "L1_1ZDC_NZDC_jTE10_VjTE200",
414 "L1_VZDC_A_VZDC_C_gTE5_VjTE200",
"L1_ZDC_XOR_gTE5_VjTE200",
415 "L1_1ZDC_NZDC_gTE5_VjTE200",
"L1_5ZDC_A_5ZDC_C_gTE5_VjTE200",
416 "L1_TRT_VZDC_A_VZDC_C_jTE5_VjTE200",
"L1_TRT_ZDC_XOR_jTE5_VjTE200",
418 "L1_ZDC_XOR_jJ5_VjTE200",
"L1_ZDC_XOR_jJ10_VjTE200",
"L1_1ZDC_NZDC_jJ5_VjTE200",
419 "L1_1ZDC_NZDC_jJ10_VjTE200",
"L1_VZDC_A_VZDC_C_jJ5_VjTE200",
"L1_VZDC_A_VZDC_C_jJ10_VjTE200",
421 "L1_ZDC_HELT15_jTE4000",
"L1_ZDC_HELT20_jTE4000",
"L1_ZDC_HELT25_jTE4000",
422 "L1_ZDC_HELT35_jTE4000",
"L1_ZDC_HELT50_jTE4000",
426 if "MC" not in menuName:
427 monItems[TBP|TAP|TAV].
extend([
430 monItems[TBP|TAP|TAV] += topo3_monitems
434 monItemsHF[TBP|TAP|TAV] = [
436 "L1_MBTS_1",
"L1_MBTS_2",
"L1_MBTS_1_1",
438 "L1_BCM_2A_FIRSTINTRAIN",
"L1_BCM_2C_FIRSTINTRAIN"
442 monItemsHF[TBP|TAP|TAV].
extend([
445 if "lowMu" in menuFullName:
446 monItemsHF[TBP|TAP|TAV].
extend([
448 "L1_ZDC_A",
"L1_ZDC_C",
"L1_ZDC_A_C",
"L1_ZDC_OR",
"L1_ZDC_LOR",
449 "L1_ZDC_XN_XOR",
"L1_ZDC_YN_XOR",
"L1_ZDC_ZN_XOR"
452 monItemsHF[TBP|TAP|TAV].
extend([
453 "L1_ZDC_A",
"L1_ZDC_C",
"L1_ZDC_A_C",
454 "L1_ZDC_OR",
"L1_ZDC_XOR",
455 "L1_ZDC_C_VZDC_A",
"L1_ZDC_A_VZDC_C",
"L1_5ZDC_A_5ZDC_C",
463 counts_LF_items = { TBP :
set(), TAP :
set(), TAV :
set() }
464 counts_HF_items = { TBP :
set(), TAP :
set(), TAV :
set() }
469 counts_LF_items[TBP].update( monItems[k] )
470 counts_HF_items[TBP].update( monItemsHF[k] )
473 counts_LF_items[TAP].update( monItems[k] )
474 counts_HF_items[TAP].update( monItemsHF[k] )
477 counts_LF_items[TAV].update( monItems[k] )
478 counts_HF_items[TAV].update( monItemsHF[k] )
480 counts_LF = dict( map(
lambda x : (x[0],len(x[1])), counts_LF_items.items() ) )
481 counts_HF = dict( map(
lambda x : (x[0],len(x[1])), counts_HF_items.items() ) )
483 lutsLF =
int( (
max(counts_LF.values())-1) / 8) + 1
484 lutsHF =
int( (
max(counts_HF.values())-1) / 8) + 1
487 if lutsLF + lutsHF > maxLUTs:
488 log.error(
"too many monitoring items are defined:")
489 log.error(
" low frequency TBP: %i",counts_LF[TBP])
490 log.error(
" TAP: %i",counts_LF[TAP])
491 log.error(
" TAV: %i",counts_LF[TAV])
492 log.error(
" required LUTs: %i",lutsLF)
493 log.error(
" high frequency TBP: %i",counts_HF[TBP])
494 log.error(
" TAP: %i",counts_HF[TAP])
495 log.error(
" TAV: %i",counts_HF[TAV])
496 log.error(
" required LUTs: %i",lutsHF)
497 log.error(
" this menu requires %i monitoring LUTs while only %i are available", (lutsLF + lutsHF), maxLUTs)
498 raise RuntimeError(
"Reduce the number of monitored items")
500 if 'AllCTPIn' not in menuName:
501 MonitorDef.checkForNonExistingMonItems(items, monItems)
507 for k,l
in monItems.items():
510 item.addMonitor(k, MonitorDef.LOW_FREQ)
513 for k,l
in monItemsHF.items():
516 item.addMonitor(k, MonitorDef.HIGH_FREQ)
522 allItemNames = [item.name
for item
in items]
525 allMonitorItems =
set()
527 allMonitorItems.update(monItems[i])
530 nonExistingMonItems = []
532 for monItem
in allMonitorItems:
533 if monItem
not in allItemNames:
534 nonExistingMonItems += [monItem]
536 if len(nonExistingMonItems)>0:
537 raise RuntimeError(
"These monitoring items are not part of the menu: %s" %
','.
join(nonExistingMonItems))