ATLAS Offline Software
MonitorDef.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2 
3 """
4 The CTP monitors three different types of signals. In the XML file
5 they are listed in the section <TriggerCounterList>
6 
7 1) type CTPIN
8 
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"
12 
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.
17 
18 
19 2) type CTPMON
20 
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
24 
25 
26 3) type TBP, TAP, TAV
27 
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
30 
31 """
32 
33 from AthenaCommon.Logging import logging
34 log = logging.getLogger(__name__)
35 
36 from ..Base.MonCounters import CtpinCounter, CtpmonCounter
37 
38 class MonitorDef:
39 
40  LOW_FREQ = 0
41  HIGH_FREQ = 1
42 
43 
44  # CTPIN counters
45  # these are generated for all CTPIN signals except the two highest JET inputs on JET1 (see comment at start of file)
46  @staticmethod
47  def ctpinCounters( thresholds, connectors, ctpinConfig ):
48 
49  connectedCables = []
50  for slotConnectors in ctpinConfig.values():
51  for connName in slotConnectors.values():
52  if connName:
53  connectedCables += [ connName ]
54 
55  counters = []
56  for ctpinCableName in connectedCables:
57  conn = connectors[ctpinCableName]
58  for i, tl in enumerate(conn.triggerLines):
59  if ctpinCableName == "JET1" and i==8:
60  break
61  for mult in range(1, 2**tl.nbits):
62  counters += [ CtpinCounter(threshold=tl.name, multiplicity = mult) ]
63 
64  return counters
65 
66 
67 
68 
69  # CTPMON counters
70  # we only have a few for the moment
71  @staticmethod
72  def ctpmonCounters( thresholds, connectors ):
73 
74  counters = []
75 
76  cThr = {}
77  cThr[1] = [
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',
85  ]
86 
87  for mult in cThr:
88  for thrName in cThr[mult]:
89  counters += [ CtpmonCounter(thrName,1) ]
90 
91  return counters
92 
93 
94 
95  @staticmethod
96  def applyItemCounter( menuName, items ):
97  """
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.
100  """
101 
102  TBP=1
103  TAP=2
104  TAV=4
105 
106  monItems = { 1 :[], 2: [], 3: [], 4: [], 5: [], 6: [], 7: [] }
107  monItemsHF = { 1 :[], 2: [], 3: [], 4: [], 5: [], 6: [], 7: [] }
108 
109  # definitions hardcoded at the moment
110 
111  if 'HI' not in menuName:
112  monItems[TBP|TAP|TAV] = [
113  # L1Muon
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",
119 
121  "L1_TAU8","L1_TAU20IM",
122  "L1_J15","L1_J400",
123 
124 
126  "L1_eEM5", "L1_eEM9", "L1_eEM12L",
127  "L1_eEM18L", "L1_eEM18M", "L1_eEM24L",
128  "L1_eEM26", "L1_eEM26L", "L1_eEM26M", "L1_eEM26T",
129  "L1_eEM28M",
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",
147  "L1_jXEC100",
148  "L1_jTE200",
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",
153  #"L1_gXERHO70", "L1_gXERHO100",
154  "L1_gXENC70", "L1_gXENC100",
155  "L1_gXEJWOJ60", "L1_gXEJWOJ70", "L1_gXEJWOJ80", "L1_gXEJWOJ100", "L1_gXEJWOJ110", "L1_gXEJWOJ120", "L1_gXEJWOJ500",
156  "L1_gTE200",
157  "L1_gMHT500",
158  # Combined
159  "L1_2eEM10L_MU8F", "L1_MU3V_jJ40",
160 
161  # L1Topo (Topo2 always in)
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",
168  "L1_jMJJ-700",
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",
172  ]
173 
174  topo3_monitems = [
175  "L1_HT190-jJ40s5pETA21", "L1_jMJJ-500-NFF",
176  "L1_LLP-RO-eEM", "L1_LLP-NOMATCH-eEM",
177  "L1_SC111-CjJ40",
178  "L1_ZAFB-25DPHI-eEM18M",
179  "L1_jMJJ-300-NFF",
180  "L1_LFV-eEM10L-MU8VF", "L1_LFV-eEM15L-MU5VF",
181  ]
182  # Add triggers that are not in the MC menu
183  if 'MC' not in menuName:
184  monItems[TBP|TAP|TAV] += [
185  # Detector items
186  # "L1_ZDC_A", "L1_ZDC_C", "L1_ZDC_AND",
187  "L1_LUCID_A", "L1_LUCID_C",
188  "L1_CALREQ1","L1_CALREQ2",
189  "L1_TGC_BURST",
190  "L1_TRT_FILLED",
191  "L1_BPTX0_BGRP12", "L1_BPTX1_BGRP12",
192  "L1_NSW_MONITOR",
193  #Background
194  "L1_BCM_Wide",
195  "L1_BCM_2A_FIRSTINTRAIN", "L1_BCM_2C_FIRSTINTRAIN",
196  #AFP
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",
207  "L1_ZeroBias",
208  "L1_AFP_A_AND_C_TOF_jJ50",
209  # Phase-I
210  "L1_AFP_A_AND_C_TOF_T0T1_jJ90",
211  "L1_jJ500_LAR",
212 
213  # Other triggers disabled in MC
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",
223  #
224  "L1_jJ55", "L1_jJ80", "L1_jJ140", "L1_jJ180",
225  "L1_jJ30p0ETA25", "L1_jJ40p0ETA25",
226  "L1_jJ70p0ETA23", "L1_jJ55p0ETA23",
227  "L1_jJ80p0ETA25", "L1_jJ85p0ETA21",
228  "L1_jLJ180",
229  "L1_jEM20", "L1_jEM20M",
230  #
231  "L1_eEM7", "L1_eEM10L", "L1_eEM15",
232  "L1_eEM18", "L1_eEM22M", "L1_eEM24VM",
233  "L1_3eEM12L",
234  #
235  "L1_eTAU20L", "L1_eTAU35", "L1_eTAU40HM",
236  ]
237 
238  else: # HI menu
239  monItems[TBP|TAP|TAV] = [
240  # Random
241  "L1_RD0_FILLED",
242  # Forward
243  # AFP
244  "L1_AFP_A_OR_C", "L1_AFP_A_AND_C",
245  # AFP combined
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",
265  "L1_AFP_A_OR_C_J12",
266  "L1_AFP_A_OR_C_jJ20",
267  "L1_AFP_A_OR_C_jJ30",
268  # ZDC
269  # Basic inputs
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",
276  #
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",
282  # ZDC items in pp
283  "L1_ZDC_A_AND_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",
289  # LHCF
290  "L1_LHCF",
291  # MBTS
292  "L1_MBTS_2_2", "L1_MBTS_3_3", "L1_MBTS_4_4",
293  # LAr Zee
294  "L1_LAR-ZEE-eEM",
295  # Muons
296  "L1_MU3V", "L1_MU5VF",
297  "L1_MU8F", "L1_MU8VF",
298  "L1_MU14FCH",
299  "L1_MU3V_EMPTY",
300  "L1_MU3V_FIRSTEMPTY",
301  "L1_2MU5VF_EMPTY",
302  "L1_2MU3V", "L1_2MU5VF",
303  "L1_3MU3V",
304  "L1_2MU14FCH_OVERLAY",
305  # Mu+X
306  "L1_MU5VF_AFP_A_OR_C",
307  # Legacy L1Calo
308  # Phase-I L1Calo
309  "L1_eEM5", "L1_eEM9", "L1_eEM12", "L1_eEM15",
310  "L1_eEM18", "L1_eEM18L",
311  "L1_eEM26", "L1_eEM26M",
312  "L1_2eEM18",
313  #
314  "L1_jJ20", "L1_jJ30", "L1_jJ40", "L1_jJ50",
315  "L1_jJ55", "L1_jJ60", "L1_jJ90",
316  "L1_jJ500",
317  "L1_jJ40p30ETA49", "L1_jJ50p30ETA49", "L1_jJ60p30ETA49",
318  "L1_jJ90p30ETA49",
319  #
320  "L1_gLJ80p0ETA25", "L1_gXEJWOJ100",
321  #
322  "L1_jTE200",
323  #
324  "L1_eEM9_AFP_A_AND_C", #"L1_eEM9_AFP_A_OR_C",
325  ]
326 
327  # Add triggers that are not in the MC menu
328  if 'MC' not in menuName:
329  monItems[TBP|TAP|TAV] += [
330  # Detector
331  "L1_CALREQ0", "L1_CALREQ1", "L1_CALREQ2",
332  "L1_BPTX0_BGRP12","L1_BPTX1_BGRP12",
333  "L1_TGC_BURST",
334  "L1_ZeroBias",
335  "L1_jJ500_LAR",
336  # Forward
337  # AFP
338  "L1_AFP_A", "L1_AFP_C",
339  # AFP Calib
340  "L1_AFP_FSA_BGRP12",
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",
345  "L1_AFP_FSC_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",
350  "L1_AFP_NSA_BGRP12",
351  "L1_AFP_NSC_BGRP12",
352  # AFP combined
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",
360  # Background
361  "L1_BCM_Wide",
362  "L1_BCM_2A_FIRSTINTRAIN", "L1_BCM_2C_FIRSTINTRAIN",
363  # LUCID
364  "L1_LUCID_A", "L1_LUCID_C",
365  # MBTS
366  "L1_MBTS_A",
367  "L1_MBTS_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",
372 
373  ]
374  topo3_monitems = []
375 
376  monItems[TBP|TAP|TAV] += topo3_monitems
377 
378  # if any of the HF items are changed CTP and OLC shall be informed (via TrigOps)
379  monItemsHF[TBP|TAP|TAV] = [
380  "L1_jJ30",
381  "L1_MBTS_1", "L1_MBTS_2", "L1_MBTS_1_1",
382  "L1_BCM_Wide", "L1_BCM_2A_FIRSTINTRAIN", "L1_BCM_2C_FIRSTINTRAIN"
383  ]
384 
385 
386 
387  check = True
388  if check:
389  counts_LF_items = { TBP : set(), TAP : set(), TAV : set() }
390  counts_HF_items = { TBP : set(), TAP : set(), TAV : set() }
391 
392  for k in range(1,8):
393 
394  if k & TBP:
395  counts_LF_items[TBP].update( monItems[k] )
396  counts_HF_items[TBP].update( monItemsHF[k] )
397 
398  if k & TAP:
399  counts_LF_items[TAP].update( monItems[k] )
400  counts_HF_items[TAP].update( monItemsHF[k] )
401 
402  if k & TAV:
403  counts_LF_items[TAV].update( monItems[k] )
404  counts_HF_items[TAV].update( monItemsHF[k] )
405 
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() ) )
408 
409  lutsLF = int( (max(counts_LF.values())-1) / 8) + 1
410  lutsHF = int( (max(counts_HF.values())-1) / 8) + 1
411 
412  maxLUTs = 32
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")
425 
426  if 'AllCTPIn' not in menuName:
427  MonitorDef.checkForNonExistingMonItems(items, monItems)
428 
429  # for each item set the monitor flags
430  for item in items:
431 
432  itemName = item.name
433  for k,l in monItems.items():
434 
435  if itemName in l:
436  item.addMonitor(k, MonitorDef.LOW_FREQ)
437 
438 
439  for k,l in monItemsHF.items():
440 
441  if itemName in l:
442  item.addMonitor(k, MonitorDef.HIGH_FREQ)
443 
444 
445  @staticmethod
446  def checkForNonExistingMonItems(items, monItems):
447  # check is based on item names
448  allItemNames = [item.name for item in items]
449 
450  # unify all item names that are monitored
451  allMonitorItems = set()
452  for i in range(1,8):
453  allMonitorItems.update(monItems[i])
454 
455  # register all monitems that don't exist in here
456  nonExistingMonItems = []
457 
458  for monItem in allMonitorItems:
459  if monItem not in allItemNames:
460  nonExistingMonItems += [monItem]
461 
462  if len(nonExistingMonItems)>0:
463  raise RuntimeError("These monitoring items are not part of the menu: %s" % ','.join(nonExistingMonItems))
python.L1.Config.MonitorDef.MonitorDef.checkForNonExistingMonItems
def checkForNonExistingMonItems(items, monItems)
Definition: MonitorDef.py:446
max
#define max(a, b)
Definition: cfImp.cxx:41
python.L1.Config.MonitorDef.MonitorDef.applyItemCounter
def applyItemCounter(menuName, items)
Definition: MonitorDef.py:96
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
python.L1.Config.MonitorDef.MonitorDef.ctpmonCounters
def ctpmonCounters(thresholds, connectors)
Definition: MonitorDef.py:72
python.L1.Base.MonCounters.CtpmonCounter
Definition: MonCounters.py:63
plotBeamSpotVxVal.range
range
Definition: plotBeamSpotVxVal.py:195
CxxUtils::set
constexpr std::enable_if_t< is_bitmask_v< E >, E & > set(E &lhs, E rhs)
Convenience function to set bits in a class enum bitmask.
Definition: bitmask.h:224
TCS::join
std::string join(const std::vector< std::string > &v, const char c=',')
Definition: Trigger/TrigT1/L1Topo/L1TopoCommon/Root/StringUtils.cxx:10
dqt_zlumi_pandas.update
update
Definition: dqt_zlumi_pandas.py:42
python.L1.Config.MonitorDef.MonitorDef
Definition: MonitorDef.py:38
python.L1.Config.MonitorDef.MonitorDef.ctpinCounters
def ctpinCounters(thresholds, connectors, ctpinConfig)
Definition: MonitorDef.py:47
python.L1.Base.MonCounters.CtpinCounter
Definition: MonCounters.py:56