11def CSC_OverlayAlgCfg(flags, name="CscOverlay", **kwargs):
12 """Return a ComponentAccumulator for CSCOverlay algorithm"""
13 acc = ComponentAccumulator()
14
15 kwargs.setdefault("BkgInputKey", f"{flags.Overlay.BkgPrefix}CSCRDO")
16 kwargs.setdefault("SignalInputKey", f"{flags.Overlay.SigPrefix}CSCRDO")
17 kwargs.setdefault("OutputKey", "CSCRDO")
18
19 kwargs.setdefault("isDataOverlay", not flags.Input.isMC)
20
21 if flags.Overlay.ByteStream:
22 from MuonConfig.MuonBytestreamDecodeConfig import CscBytestreamDecodeCfg
23 acc.merge(CscBytestreamDecodeCfg(flags))
24 else:
25 from SGComps.SGInputLoaderConfig import SGInputLoaderCfg
26 acc.merge(SGInputLoaderCfg(flags, [f'CscRawDataContainer#{kwargs["BkgInputKey"]}']))
27
28 from MuonConfig.MuonCalibrationConfig import CscCalibToolCfg
29 kwargs.setdefault("CalibTool", acc.popToolsAndMerge(CscCalibToolCfg(flags)))
30
31 from MuonConfig.MuonCSC_CnvToolsConfig import MuonCscRDODecoderCfg
32 kwargs.setdefault("CscRdoDecoderTool", acc.popToolsAndMerge(MuonCscRDODecoderCfg(flags)))
33
34
35 acc.addEventAlgo(CompFactory.CscOverlay(name, **kwargs))
36
37
38 if flags.Output.doWriteRDO:
39 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
40 acc.merge(OutputStreamCfg(flags, "RDO", ItemList=[
41 "CscRawDataContainer#CSCRDO"
42 ]))
43
44 if flags.Output.doWriteRDO_SGNL:
45 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
46 acc.merge(OutputStreamCfg(flags, "RDO_SGNL", ItemList=[
47 f"CscRawDataContainer#{flags.Overlay.SigPrefix}CSCRDO"
48 ]))
49
50 return acc
51
52