3from AthenaConfiguration.ComponentFactory
import CompFactory
4from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
5from AthenaConfiguration.Enums
import ProductionStep
6from TileConfiguration.TileConfigFlags
import TileRunType
11 kwargs[
'InitializeForWriting'] = InitializeForWriting
12 tool = TileContByteStreamTool(**kwargs)
14 if InitializeForWriting:
15 from TileByteStream.TileHid2RESrcIDConfig
import TileHid2RESrcIDCondAlg
19 stream.ExtraInputs |= {(
'TileHid2RESrcID',
'ConditionStore+TileHid2RESrcIDHLT')}
24 from TileByteStream.TileByteStreamConf
import TileRawChannelContByteStreamTool
28 from TileByteStream.TileByteStreamConf
import TileL2ContByteStreamTool
37 acc = ComponentAccumulator()
38 TileContByteStreamTool = CompFactory.getComp(name)
39 tool = TileContByteStreamTool(name, **kwargs)
40 tool.InitializeForWriting = InitializeForWriting
41 acc.addPublicTool(tool)
44 if InitializeForWriting:
45 from TileByteStream.TileHid2RESrcIDConfig
import TileHid2RESrcIDCondAlgCfg
46 acc.merge( TileHid2RESrcIDCondAlgCfg(flags, ForHLT=
True) )
48 extraOutputs = [(
'TileHid2RESrcID',
'ConditionStore+TileHid2RESrcIDHLT')]
50 return acc, extraOutputs
54 name="TileDigitsContByteStreamTool",
55 InitializeForWriting=False,
60 name="TileRawChannelContByteStreamTool",
61 InitializeForWriting=False,
66 name="TileMuRcvContByteStreamTool",
67 InitializeForWriting=False,
72 name="TileL2ContByteStreamTool",
73 InitializeForWriting=False,
78 name="TileLaserObjByteStreamTool",
79 InitializeForWriting=False,
84 decoder = CompFactory.TileROD_Decoder(TileBadChanTool=
"", TileCondToolEmscale=
"")
85 TileRawDataReadingAlg = CompFactory.TileRawDataReadingAlg
89 readMuRcv=None, readMuRcvDigits=False, readMuRcvRawCh=False,
90 readBeamElem=None, readLaserObj=None, readDigitsFlx=False,
91 readL2=False, stateless=False, **kwargs):
93 Configure reading the Tile BS files
96 read[...] -- flag to read the corresponding Tile data from BS.
97 Possible values: None (default), True, False.
98 In the case of None it will be autoconfigured.
99 stateless -- read online Tile data using emon BS service.
102 isPhysicsRun = flags.Tile.RunType
is TileRunType.PHY
103 isLaserRun = flags.Tile.RunType
in [TileRunType.LAS, TileRunType.BILAS]
104 isCalibRun =
not isPhysicsRun
107 readMuRcv = isPhysicsRun
if readMuRcv
is None else readMuRcv
108 readBeamElem = isCalibRun
if readBeamElem
is None else readBeamElem
109 readLaserObj = isLaserRun
if readLaserObj
is None else readLaserObj
111 typeNames = kwargs.pop(
'type_names', [])
113 prefix = flags.Overlay.BkgPrefix
if flags.Common.ProductionStep
is ProductionStep.MinbiasPreprocessing
else ''
115 cfg = ComponentAccumulator()
116 from TileConditions.TileCablingSvcConfig
import TileCablingSvcCfg
117 cfg.merge(TileCablingSvcCfg(flags))
120 from ByteStreamEmonSvc.EmonByteStreamConfig
import EmonByteStreamCfg
121 cfg.merge( EmonByteStreamCfg(flags, type_names=typeNames) )
123 from ByteStreamCnvSvc.ByteStreamConfig
import ByteStreamReadCfg
124 cfg.merge( ByteStreamReadCfg(flags, type_names=typeNames) )
126 from TileByteStream.TileHid2RESrcIDConfig
import TileHid2RESrcIDCondAlgCfg
127 cfg.merge( TileHid2RESrcIDCondAlgCfg(flags, ROD2ROBmap=[
'-1']) )
130 addTileReadAlg(cfg,
'TileDigitsReadAlg', TileDigitsContainer=f
'{prefix}TileDigitsCnt')
132 addTileReadAlg(cfg,
'TileRawChannelReadAlg', TileRawChannelContainer=f
'{prefix}TileRawChannelCnt')
134 addTileReadAlg(cfg,
'TileMuRcvReadAlg', TileMuonReceiverContainer=
'TileMuRcvCnt')
136 addTileReadAlg(cfg,
'MuRcvDigitsReadAlg', MuRcvDigitsContainer=f
'{prefix}MuRcvDigitsCnt')
138 addTileReadAlg(cfg,
'TileMuRcvRawChReadAlg', MuRcvRawChannelContainer=
'MuRcvRawChCnt')
140 addTileReadAlg(cfg,
'TileLaserObjReadAlg', TileLaserObject=
'TileLaserObj')
142 addTileReadAlg(cfg,
'TileBeamElemReadAlg', TileBeamElemContainer=
'TileBeamElemCnt')
144 addTileReadAlg(cfg,
'TileDigitsFlxReadAlg', TileDigitsFlxContainer=
'TileDigitsFlxCnt')
151if __name__ ==
"__main__":
153 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
154 from AthenaConfiguration.TestDefaults
import defaultGeometryTags, defaultTestFiles
155 from AthenaCommon.Logging
import log
161 flags = initConfigFlags()
162 flags.Input.Files = defaultTestFiles.RAW_RUN2
163 flags.GeoModel.AtlasVersion = defaultGeometryTags.RUN2
164 flags.Exec.MaxEvents = 3
169 from AthenaConfiguration.MainServicesConfig
import MainServicesCfg
170 cfg = MainServicesCfg(flags)
174 cfg.printConfig(withDetails =
True, summariseProps =
True)
175 cfg.store( open(
'TileRawChannelReadAlg.pkl',
'wb') )
181 sys.exit(
not sc.isSuccess())
Condition algorithm to prepare TileHid2RESrcID conditions object and put it into conditions store.
Class for Tile raw data reading from BS.
_createTileContByteStreamToolCfg(flags, name, InitializeForWriting=False, **kwargs)
TileLaserObjByteStreamToolCfg(flags, name="TileLaserObjByteStreamTool", InitializeForWriting=False, **kwargs)
addTileReadAlg(cfg, name, **kwargs)
TileL2ContByteStreamToolCfg(flags, name="TileL2ContByteStreamTool", InitializeForWriting=False, **kwargs)
TileRawDataReadingCfg(flags, readDigits=True, readRawChannel=True, readMuRcv=None, readMuRcvDigits=False, readMuRcvRawCh=False, readBeamElem=None, readLaserObj=None, readDigitsFlx=False, readL2=False, stateless=False, **kwargs)
TileRawChannelContByteStreamToolConfig(name='TileRawChannelContByteStreamTool', InitializeForWriting=False, stream=None, **kwargs)
TileDigitsContByteStreamToolCfg(flags, name="TileDigitsContByteStreamTool", InitializeForWriting=False, **kwargs)
TileL2ContByteStreamToolConfig(name='TileL2ContByteStreamTool', InitializeForWriting=False, stream=None, **kwargs)
TileMuRcvContByteStreamToolCfg(flags, name="TileMuRcvContByteStreamTool", InitializeForWriting=False, **kwargs)
_createTileContByteStreamToolsConfig(name, TileContByteStreamTool, InitializeForWriting=False, stream=None, **kwargs)
TileRawChannelContByteStreamToolCfg(flags, name="TileRawChannelContByteStreamTool", InitializeForWriting=False, **kwargs)