ATLAS Offline Software
Loading...
Searching...
No Matches
EventDisplaysOnlineHelpers Namespace Reference

Functions

 GetBFields ()
 WaitForPartition (partitionName=None)
 Ready4Physics ()
 EventCanBeSeenByPublic (projectTags)
 GetUniqueJobID ()
 GetRunNumber (partitionName)

Variables

 runNumber = GetRunNumber()
 bFields = GetBFields()
 isPublicEvent = EventCanBeSeenByPublic(['data24_13p6TeV'])

Function Documentation

◆ EventCanBeSeenByPublic()

EventDisplaysOnlineHelpers.EventCanBeSeenByPublic ( projectTags)

Definition at line 72 of file EventDisplaysOnlineHelpers.py.

72def EventCanBeSeenByPublic(projectTags):
73# Is the data allowed to be seen by the general public on atlas live and in the CCC
74 mlog = logging.getLogger( 'EventDisplays' )
75 try:
76 partition = IPCPartition('ATLAS')
77 RunParams = ISObject(partition, 'RunParams.RunParams', 'RunParams')
78 RunParams.checkout()
79
80 physicsReady = ISObject(partition, 'RunParams.Ready4Physics','Ready4PhysicsInfo')
81 physicsReady.checkout()
82
83 sendToPublicStream = False
84 if physicsReady.ready4physics and RunParams.T0_project_tag in projectTags:
85 sendToPublicStream = True
86
87 return sendToPublicStream
88
89 except Exception:
90 mlog.warning('Failed to get bool for EventCanBeSeenByPublic, this is expected for offline test and GM test paritions')
91 return False
92

◆ GetBFields()

EventDisplaysOnlineHelpers.GetBFields ( )

Definition at line 7 of file EventDisplaysOnlineHelpers.py.

7def GetBFields():
8 mlog = logging.getLogger( 'EventDisplays' )
9
10 #BFields are read from initial partition
11 partition='initial'
12 mlog.debug("Trying to read magnetic field configuration from partition %s", partition)
13
14 #now try and read the information from IS
15 try :
16 #Get hold of the initial partition
17 ipcPart = IPCPartition(partition)
18 if not ipcPart.isValid():
19 raise UserWarning("Partition %s invalid - cannot access magnetic field setting"%partition)
20 #Get the current and valid status
21 toroidCurrent = ISObject(ipcPart,'DCS_GENERAL.MagnetToroidsCurrent.value','DdcFloatInfo')
22 solenoidCurrent = ISObject(ipcPart,'DCS_GENERAL.MagnetSolenoidCurrent.value','DdcFloatInfo')
23 toroidInvalid = ISObject(ipcPart,'DCS_GENERAL.MagnetToroidsCurrent.invalid','DdcIntInfo')
24 solenoidInvalid = ISObject(ipcPart,'DCS_GENERAL.MagnetSolenoidCurrent.invalid','DdcIntInfo')
25 toroidCurrent.checkout()
26 solenoidCurrent.checkout()
27 toroidInvalid.checkout()
28 solenoidInvalid.checkout()
29 #And calculate the flags
30 solenoidOn=((solenoidCurrent.value > 1000.) and (solenoidInvalid.value == 0))
31 toroidOn=((toroidCurrent.value > 1000.) and (toroidInvalid.value == 0))
32 except UserWarning as err:
33 mlog.error(err)
34 #Should always be able to access initial parititon
35 mlog.fatal("Failed to read magnetic field configuration from IS, aborting")
36 sys.exit(1)
37
38 #print the result
39 mlog.info("Magnetic field in solenoid is %s", (solenoidOn and "ON") or "OFF")
40 mlog.info("Magnetic field in toroid is %s", (toroidOn and "ON") or "OFF")
41
42 #finally return our values
43 return (solenoidOn,toroidOn)
44
45

◆ GetRunNumber()

EventDisplaysOnlineHelpers.GetRunNumber ( partitionName)

Definition at line 103 of file EventDisplaysOnlineHelpers.py.

103def GetRunNumber(partitionName):
104 part = IPCPartition(partitionName)
105 RunParams = ISObject(part, 'RunParams.RunParams', 'RunParams')
106 RunParams.checkout()
107 run_number = RunParams.getAttributeValue('run_number')
108 return run_number
109

◆ GetUniqueJobID()

EventDisplaysOnlineHelpers.GetUniqueJobID ( )

Definition at line 93 of file EventDisplaysOnlineHelpers.py.

93def GetUniqueJobID():
94 # Setup unique output files (so that multiple Athena jobs on the same machine don't interfere)
95 import os
96 jobId = os.environ.get('TDAQ_APPLICATION_NAME', '').split(':')
97 if not len(jobId) == 5:
98 from random import randint
99 jobId = ['Athena-EventProcessor', 'Athena-EventDisplays-Segment', 'EventDisplays-Rack', 'tmp', '%d' % randint(0, 999)]
100
101 return jobId
102
std::vector< std::string > split(const std::string &s, const std::string &t=":")
Definition hcg.cxx:177

◆ Ready4Physics()

EventDisplaysOnlineHelpers.Ready4Physics ( )

Definition at line 60 of file EventDisplaysOnlineHelpers.py.

60def Ready4Physics():
61 mlog = logging.getLogger( 'EventDisplays, Ready4Physics' )
62 try:
63 partition = IPCPartition('ATLAS')
64 physicsReady = ISObject(partition, 'RunParams.Ready4Physics','Ready4PhysicsInfo')
65 physicsReady.checkout()
66 return bool(physicsReady.ready4physics)
67
68 except Exception:
69 mlog.warning('Failed to get physicsReady bool, this is expected for offline test and GM test paritions')
70 return False
71

◆ WaitForPartition()

EventDisplaysOnlineHelpers.WaitForPartition ( partitionName = None)

Definition at line 46 of file EventDisplaysOnlineHelpers.py.

46def WaitForPartition(partitionName=None):
47 mlog = logging.getLogger( 'EventDisplays' )
48 partitionUp = False
49 while not partitionUp:
50 try:
51 partition = IPCPartition(partitionName)
52 runParams = ISObject(partition, "RunParams.RunParams", "RunParams")
53 runParams.checkout()
54 partitionUp = True
55
56 except Exception:
57 mlog.info("%s partition is not up, sleeping for 30 seconds", partitionName)
58 time.sleep(30)
59

Variable Documentation

◆ bFields

EventDisplaysOnlineHelpers.bFields = GetBFields()

Definition at line 113 of file EventDisplaysOnlineHelpers.py.

◆ isPublicEvent

EventDisplaysOnlineHelpers.isPublicEvent = EventCanBeSeenByPublic(['data24_13p6TeV'])

Definition at line 115 of file EventDisplaysOnlineHelpers.py.

◆ runNumber

EventDisplaysOnlineHelpers.runNumber = GetRunNumber()

Definition at line 111 of file EventDisplaysOnlineHelpers.py.