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