54 from AthenaCommon.Logging
import logging
55 mlog = logging.getLogger(
'RecExOnline')
59 mlog.debug(
"Trying to read magnetic field configuration from partition %s", partition)
63 from ipc
import IPCPartition
64 ipcPart = IPCPartition(partition)
65 if not ipcPart.isValid():
66 raise UserWarning(
"Partition %s invalid - cannot access magnetic field setting" % partition)
79 torCurrent = ispy.ISInfoDynAny(ipcPart,
'DdcFloatInfo')
80 solCurrent = ispy.ISInfoDynAny(ipcPart,
'DdcFloatInfo')
81 torInvalid = ispy.ISInfoDynAny(ipcPart,
'DdcIntInfo')
82 solInvalid = ispy.ISInfoDynAny(ipcPart,
'DdcIntInfo')
88 mlog.info(
"toroidCurrent = %f", torCurrent.value)
89 mlog.info(
"toroidInvalid = %f", torInvalid.value)
90 mlog.info(
"solenoidCurrent = %f", solCurrent.value)
91 mlog.info(
"solenoidInvalid = %f", solInvalid.value)
95 solOn = ((solCurrent.value > 1000.)
and (solInvalid.value == 0))
96 torOn = ((torCurrent.value > 1000.)
and (torInvalid.value == 0))
97 except UserWarning
as err:
100 mlog.fatal(
"Failed to read magnetic field configuration from IS, aborting")
105 mlog.info(
"Magnetic field in solenoid is %s", ((solOn
and "ON")
or "OFF"))
106 mlog.info(
"Magnetic field in toroid is %s", ((torOn
and "ON")
or "OFF"))
109 return (solCurrent, torCurrent)