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" if not flags.Overlay.IgnoreBkgInputs else "")
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 kwargs["BkgInputKey"]:
22 from SGComps.SGInputLoaderConfig import SGInputLoaderCfg
23 acc.merge(SGInputLoaderCfg(flags, [f'CscRawDataContainer#{kwargs["BkgInputKey"]}']))
24
25 from MuonConfig.MuonCalibrationConfig import CscCalibToolCfg
26 kwargs.setdefault("CalibTool", acc.popToolsAndMerge(CscCalibToolCfg(flags)))
27
28 from MuonConfig.MuonCSC_CnvToolsConfig import MuonCscRDODecoderCfg
29 kwargs.setdefault("CscRdoDecoderTool", acc.popToolsAndMerge(MuonCscRDODecoderCfg(flags)))
30
31
32 acc.addEventAlgo(CompFactory.CscOverlay(name, **kwargs))
33
34
35 if flags.Output.doWriteRDO:
36 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
37 acc.merge(OutputStreamCfg(flags, "RDO", ItemList=[
38 "CscRawDataContainer#CSCRDO"
39 ]))
40
41 if flags.Output.doWriteRDO_SGNL:
42 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
43 acc.merge(OutputStreamCfg(flags, "RDO_SGNL", ItemList=[
44 f"CscRawDataContainer#{flags.Overlay.SigPrefix}CSCRDO"
45 ]))
46
47 return acc
48
49