91 readL2=False, stateless=False, **kwargs):
92 """
93 Configure reading the Tile BS files
94
95 Arguments:
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.
100 """
101
102 isPhysicsRun = flags.Tile.RunType is TileRunType.PHY
103 isLaserRun = flags.Tile.RunType in [TileRunType.LAS, TileRunType.BILAS]
104 isCalibRun = not isPhysicsRun
105
106
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
110
111 typeNames = kwargs.pop('type_names', [])
112
113 prefix = flags.Overlay.BkgPrefix if flags.Common.ProductionStep is ProductionStep.MinbiasPreprocessing else ''
114
115 cfg = ComponentAccumulator()
116 from TileConditions.TileCablingSvcConfig import TileCablingSvcCfg
117 cfg.merge(TileCablingSvcCfg(flags))
118
119 if stateless:
120 from ByteStreamEmonSvc.EmonByteStreamConfig import EmonByteStreamCfg
121 cfg.merge( EmonByteStreamCfg(flags, type_names=typeNames) )
122 else:
123 from ByteStreamCnvSvc.ByteStreamConfig import ByteStreamReadCfg
124 cfg.merge( ByteStreamReadCfg(flags, type_names=typeNames) )
125
126 from TileByteStream.TileHid2RESrcIDConfig import TileHid2RESrcIDCondAlgCfg
127 cfg.merge( TileHid2RESrcIDCondAlgCfg(flags, ROD2ROBmap=['-1']) )
128
129 if readDigits:
130 addTileReadAlg(cfg, 'TileDigitsReadAlg', TileDigitsContainer=f'{prefix}TileDigitsCnt')
131 if readRawChannel:
132 addTileReadAlg(cfg, 'TileRawChannelReadAlg', TileRawChannelContainer=f'{prefix}TileRawChannelCnt')
133 if readMuRcv:
134 addTileReadAlg(cfg, 'TileMuRcvReadAlg', TileMuonReceiverContainer='TileMuRcvCnt')
135 if readMuRcvDigits:
136 addTileReadAlg(cfg, 'MuRcvDigitsReadAlg', MuRcvDigitsContainer=f'{prefix}MuRcvDigitsCnt')
137 if readMuRcvRawCh:
138 addTileReadAlg(cfg, 'TileMuRcvRawChReadAlg', MuRcvRawChannelContainer='MuRcvRawChCnt')
139 if readLaserObj:
140 addTileReadAlg(cfg, 'TileLaserObjReadAlg', TileLaserObject='TileLaserObj')
141 if readBeamElem:
142 addTileReadAlg(cfg, 'TileBeamElemReadAlg', TileBeamElemContainer='TileBeamElemCnt')
143 if readDigitsFlx:
144 addTileReadAlg(cfg, 'TileDigitsFlxReadAlg', TileDigitsFlxContainer='TileDigitsFlxCnt')
145 if readL2:
146 addTileReadAlg(cfg, 'TileL2ReadAlg', TileL2Container='TileL2Cnt')
147
148 return cfg
149
150