213def RDOAnalysisCfg(flags, doTileNtuple=True, doLarNtuple=True):
214 acc = ComponentAccumulator()
215
216 acc.merge(EventInfoRDOAnalysisCfg(flags))
217
218 if flags.Detector.EnablePixel:
219 acc.merge(PixelRDOAnalysisCfg(flags))
220
221 if flags.Detector.EnableSCT:
222 acc.merge(SCT_RDOAnalysisCfg(flags))
223
224 if flags.Detector.EnableTRT:
225 acc.merge(TRT_RDOAnalysisCfg(flags))
226
227 if flags.Detector.EnableLAr:
228 acc.merge(LArRDOAnalysisCfg(flags, doNtuple = doLarNtuple))
229
230 if flags.Detector.EnableTile:
231 acc.merge(TileRDOAnalysisCfg(flags,doNtuple=doTileNtuple))
232
233 if flags.Detector.EnableMDT:
234 from MuonConfig.MuonByteStreamCnvTestConfig import MdtRdoToMdtDigitCfg
235
236 if "MDTCSM" in flags.Input.Collections:
237 acc.merge(MdtRdoToMdtDigitCfg(flags))
238 elif f"{flags.Overlay.BkgPrefix}MDTCSM" in flags.Input.Collections:
239 acc.merge(MdtRdoToMdtDigitCfg(flags, MdtRdoContainer =f"{flags.Overlay.BkgPrefix}MDTCSM",
240 MdtDigitContainer=f"{flags.Overlay.BkgPrefix}MDT_DIGITS" ))
241
242 acc.merge(MdtRDOAnalysisCfg(flags))
243
244 if flags.Detector.EnableRPC:
245 if "RPCPAD" in flags.Input.Collections or f"{flags.Overlay.BkgPrefix}RPCPAD" in flags.Input.Collections:
246 from MuonConfig.MuonByteStreamCnvTestConfig import RpcRdoToRpcDigitCfg
247 acc.merge(RpcRdoToRpcDigitCfg(flags))
248 acc.merge(RpcRDOAnalysisCfg(flags))
249
250 if flags.Detector.EnableTGC:
251 from MuonConfig.MuonByteStreamCnvTestConfig import TgcRdoToTgcDigitCfg
252 if "TGCRDO" in flags.Input.Collections:
253 acc.merge(TgcRdoToTgcDigitCfg(flags))
254 elif f"{flags.Overlay.BkgPrefix}TGCRDO" in flags.Input.Collections:
255 acc.merge(TgcRdoToTgcDigitCfg(flags,TgcRdoContainer = f"{flags.Overlay.BkgPrefix}TGCRDO",
256 TgcDigitContainer=f"{flags.Overlay.BkgPrefix}TGC_DIGITS"))
257 acc.merge(TgcRDOAnalysisCfg(flags))
258
259 if flags.Detector.EnablesTGC:
260 from MuonConfig.MuonByteStreamCnvTestConfig import STGC_RdoToDigitCfg
261 if "sTGCRDO" in flags.Input.Collections:
262 acc.merge(STGC_RdoToDigitCfg(flags))
263 elif f"{flags.Overlay.BkgPrefix}sTGCRDO" in flags.Input.Collections:
264 acc.merge(STGC_RdoToDigitCfg(flags,
265 sTgcRdoContainer=f"{flags.Overlay.BkgPrefix}sTGCRDO",
266 sTgcDigitContainer=f"{flags.Overlay.BkgPrefix}sTGC_DIGITS"))
267
268
269 if flags.Detector.EnableMM:
270 from MuonConfig.MuonByteStreamCnvTestConfig import MM_RdoToDigitCfg
271 if "MMRDO" in flags.Input.Collections:
272 acc.merge(MM_RdoToDigitCfg(flags))
273 elif f"{flags.Overlay.BkgPrefix}MMRDO" in flags.Input.Collections:
274 acc.merge(MM_RdoToDigitCfg(flags,MmRdoContainer=f"{flags.Overlay.BkgPrefix}MMRDO",
275 MmDigitContainer=f"{flags.Overlay.BkgPrefix}MM_DIGITS"))
276
277
278 if flags.Detector.EnableMuon:
279 if not flags.Muon.usePhaseIIGeoSetup:
280 from MuonPRDTest.HitValAlgDigi import HitValAlgDigiCfg
281 acc.merge(HitValAlgDigiCfg(flags, outFile=flags.Output.HISTFileName, doMuEntry = False, doTruth = False))
282 else:
283 from MuonPRDTestR4.MuonHitTestConfig import MuonDigiTestCfg, MuonPileUpTestCfg
284 if flags.Common.ProductionStep is ProductionStep.PileUpPresampling:
285 acc.merge(MuonPileUpTestCfg(flags, outFile=flags.Output.HISTFileName))
286 else:
287 acc.merge(MuonDigiTestCfg(flags, outFile=flags.Output.HISTFileName))
288
289 if flags.Detector.EnableITkPixel:
290 acc.merge(ITkPixelRDOAnalysisCfg(flags))
291
292 if flags.Detector.EnableITkStrip:
293 acc.merge(ITkStripRDOAnalysisCfg(flags))
294
295 if flags.Detector.EnableHGTD:
296 acc.merge(HGTD_RDOAnalysisCfg(flags))
297
298 if flags.Detector.EnablePLR:
299 acc.merge(PLR_RDOAnalysisCfg(flags))
300
301 return acc
302
303