ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Trigger
TriggerCommon
TriggerMenuMT
python
L1
Base
CTP.py
Go to the documentation of this file.
1
# Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
2
3
from
AthenaCommon.Logging
import
logging
4
log = logging.getLogger(__name__)
5
6
from
..Config.MonitorDef
import
MonitorDef
7
from
..Config.CTPInputConfig
import
CTPInputConfig
8
from
.BunchGroupSet
import
BunchGroupSet
9
from
.MonCounters
import
MenuMonCountersCollection
10
11
class
CTP
:
12
13
def
__init__
(self, run=3):
14
assert(run
in
[3,4]),
"CTP configuration only defined for Run3 and Run4"
15
self.
run
= run
16
if
self.
run
== 3:
17
self.
inputConnectors
= CTPInputConfig.cablingLayout()
18
else
:
19
self.
inputConnectors
= CTPInputConfig.cablingLayoutRun4()
20
self.
random
=
Random
( names = [
'Random0'
,
'Random1'
,
'Random2'
,
'Random3'
], cuts = [1, 1, 1, 1] )
21
self.
bunchGroupSet
=
BunchGroupSet
()
22
self.
counters
=
MenuMonCountersCollection
()
# monitoring counters in the menu
23
24
# Customisations via flags
25
26
def
setBunchGroupSetName
(self, name):
27
self.
bunchGroupSet
.name = name
28
return
self.
bunchGroupSet
29
30
def
setupMonitoring
(self, menuName, menuItems, menuThresholds, connectors, menuFullName):
31
if
self.
run
== 4:
32
return
33
34
37
38
# add the CTPMon counters (selection defined in L1/Config/MonitorDef.py)
39
for
counter
in
MonitorDef.ctpmonCounters( menuThresholds, connectors ):
40
self.
counters
.addCounter( counter )
41
42
# add the CTPIN counters (selection defined in L1/Config/MonitorDef.py)
43
for
counter
in
MonitorDef.ctpinCounters( menuThresholds, connectors, self.
inputConnectors
[
"ctpin"
] ):
44
self.
counters
.addCounter( counter )
45
46
# mark the L1 Items that they should be monitored
47
MonitorDef.applyItemCounter(menuName, menuItems, menuFullName)
48
49
def
checkConnectorAvailability
(self, availableConnectors, menuInputFile: str):
50
inputConnectorList = []
51
inputConnectorList += self.
inputConnectors
.
get
(
"optical"
, {}).values()
52
inputConnectorList += self.
inputConnectors
.
get
(
"electrical"
, {}).values()
53
inputConnectorList += self.
inputConnectors
.
get
(
"ctpin"
, {}).
get
(
"slot7"
, {}).values()
54
inputConnectorList += self.
inputConnectors
.
get
(
"ctpin"
, {}).
get
(
"slot8"
, {}).values()
55
inputConnectorList += self.
inputConnectors
.
get
(
"ctpin"
, {}).
get
(
"slot9"
, {}).values()
56
for
connName
in
inputConnectorList:
57
if
connName !=
''
and
connName
not
in
availableConnectors:
58
msg = (
59
f
"Connector '{connName}' requested in L1/Config/CTPInputConfig.py not defined as menu input. "
60
f
"Please add it to L1/Menu/Menu_{menuInputFile}.py"
61
)
62
log.error(msg)
63
raise
RuntimeError(msg)
64
65
def
json
(self):
66
confObj = {
67
"inputs"
: self.
inputConnectors
,
68
"monitoring"
: self.
counters
.json()
69
}
70
return
confObj
71
72
73
74
class
Random
(object):
75
def
__init__
(self, names, cuts):
76
self.
names
= names
77
self.
cuts
= cuts
78
json
nlohmann::json json
Definition
HistogramDef.cxx:9
python.L1.Base.BunchGroupSet.BunchGroupSet
Definition
BunchGroupSet.py:49
python.L1.Base.CTP.CTP
Definition
CTP.py:11
python.L1.Base.CTP.CTP.setupMonitoring
setupMonitoring(self, menuName, menuItems, menuThresholds, connectors, menuFullName)
Definition
CTP.py:30
python.L1.Base.CTP.CTP.random
random
Definition
CTP.py:20
python.L1.Base.CTP.CTP.checkConnectorAvailability
checkConnectorAvailability(self, availableConnectors, str menuInputFile)
Definition
CTP.py:49
python.L1.Base.CTP.CTP.inputConnectors
inputConnectors
Definition
CTP.py:17
python.L1.Base.CTP.CTP.__init__
__init__(self, run=3)
Definition
CTP.py:13
python.L1.Base.CTP.CTP.setBunchGroupSetName
setBunchGroupSetName(self, name)
Definition
CTP.py:26
python.L1.Base.CTP.CTP.run
int run
Definition
CTP.py:15
python.L1.Base.CTP.CTP.counters
counters
Definition
CTP.py:22
python.L1.Base.CTP.CTP.bunchGroupSet
bunchGroupSet
Definition
CTP.py:21
python.L1.Base.CTP.Random
Definition
CTP.py:74
python.L1.Base.CTP.Random.cuts
cuts
Definition
CTP.py:77
python.L1.Base.CTP.Random.__init__
__init__(self, names, cuts)
Definition
CTP.py:75
python.L1.Base.CTP.Random.names
names
Definition
CTP.py:76
python.L1.Base.MonCounters.MenuMonCountersCollection
Definition
MonCounters.py:8
get
T * get(TKey *tobj)
get a TObject* from a TKey* (why can't a TObject be a TKey?)
Definition
hcg.cxx:132
Generated on
for ATLAS Offline Software by
1.17.0