ATLAS Offline Software
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(object):
12 
13  def __init__(self):
14  self.inputConnectors = CTPInputConfig.cablingLayout()
15  self.random = Random( names = ['Random0', 'Random1', 'Random2', 'Random3'], cuts = [1, 1, 1, 1] )
17  self.counters = MenuMonCountersCollection() # monitoring counters in the menu
18 
19  # Customisations via flags
20 
21  def setBunchGroupSetName(self, name):
22  self.bunchGroupSet.name = name
23  return self.bunchGroupSet
24 
25  def addBunchGroup(self, name, internalNumber, bunches):
26  self.bunchGroupSet.addBunchGroup(name, internalNumber, bunches)
27 
28  def setupMonitoring(self, menuName, menuItems, menuThresholds, connectors, menuFullName):
29 
32 
33  # add the CTPMon counters (selection defined in L1/Config/MonitorDef.py)
34  for counter in MonitorDef.ctpmonCounters( menuThresholds, connectors ):
35  self.counters.addCounter( counter )
36 
37  # add the CTPIN counters (selection defined in L1/Config/MonitorDef.py)
38  for counter in MonitorDef.ctpinCounters( menuThresholds, connectors, self.inputConnectors["ctpin"] ):
39  self.counters.addCounter( counter )
40 
41  # mark the L1 Items that they should be monitored
42  MonitorDef.applyItemCounter( menuName, menuItems, menuFullName )
43  pass
44 
45  def checkConnectorAvailability(self, availableConnectors, menuToLoad):
46  inputConnectorList = []
47  inputConnectorList += self.inputConnectors["optical"].values()
48  inputConnectorList += self.inputConnectors["electrical"].values()
49  inputConnectorList += self.inputConnectors["ctpin"]["slot7"].values()
50  inputConnectorList += self.inputConnectors["ctpin"]["slot8"].values()
51  inputConnectorList += self.inputConnectors["ctpin"]["slot9"].values()
52  for connName in inputConnectorList:
53  if connName != '' and connName not in availableConnectors:
54  msg = "Connector '%s' requested in L1/Config/CTPConfig.py not defined as menu input. Please add it to L1/Menu/Menu_%s.py" % (connName, menuToLoad[1])
55  log.error(msg)
56  raise RuntimeError(msg)
57 
58  def json(self):
59  confObj = {
60  "inputs": self.inputConnectors,
61  "monitoring": self.counters.json()
62  }
63  return confObj
64 
65 
66 
67 class Random(object):
68  def __init__(self, names, cuts):
69  self.names = names
70  self.cuts = cuts
71 
python.L1.Base.CTP.CTP.counters
counters
Definition: CTP.py:17
python.L1.Base.CTP.CTP.setBunchGroupSetName
def setBunchGroupSetName(self, name)
Definition: CTP.py:21
python.L1.Base.CTP.CTP.random
random
Definition: CTP.py:15
python.L1.Base.BunchGroupSet.BunchGroupSet
Definition: BunchGroupSet.py:49
python.L1.Base.MonCounters.MenuMonCountersCollection
Definition: MonCounters.py:8
python.L1.Base.CTP.CTP.json
def json(self)
Definition: CTP.py:58
python.L1.Base.CTP.CTP.addBunchGroup
def addBunchGroup(self, name, internalNumber, bunches)
Definition: CTP.py:25
python.Bindings.values
values
Definition: Control/AthenaPython/python/Bindings.py:808
python.L1.Base.CTP.CTP.bunchGroupSet
bunchGroupSet
Definition: CTP.py:16
python.L1.Base.CTP.Random.names
names
Definition: CTP.py:69
python.L1.Base.CTP.CTP.checkConnectorAvailability
def checkConnectorAvailability(self, availableConnectors, menuToLoad)
Definition: CTP.py:45
python.L1.Base.CTP.CTP
Definition: CTP.py:11
python.L1.Base.CTP.CTP.inputConnectors
inputConnectors
Definition: CTP.py:14
python.L1.Base.CTP.Random
Definition: CTP.py:67
python.L1.Base.CTP.Random.__init__
def __init__(self, names, cuts)
Definition: CTP.py:68
python.L1.Base.CTP.Random.cuts
cuts
Definition: CTP.py:70
pickleTool.object
object
Definition: pickleTool.py:29
python.L1.Base.CTP.CTP.__init__
def __init__(self)
Definition: CTP.py:13
python.L1.Base.CTP.CTP.setupMonitoring
def setupMonitoring(self, menuName, menuItems, menuThresholds, connectors, menuFullName)
Definition: CTP.py:28