40def MDT_TruthOverlayCfg(flags, name="MdtTruthOverlay", **kwargs):
41 """Return a ComponentAccumulator for the MDT SDO overlay algorithm"""
42 acc = ComponentAccumulator()
43
44
45 if not flags.Input.isMC:
46 kwargs.setdefault("BkgInputKey", "")
47 else:
48 kwargs.setdefault("BkgInputKey", f"{flags.Overlay.BkgPrefix}MDT_SDO")
49
50 if kwargs["BkgInputKey"]:
51 from SGComps.SGInputLoaderConfig import SGInputLoaderCfg
52 acc.merge(SGInputLoaderCfg(flags, [f'MuonSimDataCollection#{kwargs["BkgInputKey"]}']))
53
54 kwargs.setdefault("SignalInputKey", f"{flags.Overlay.SigPrefix}MDT_SDO")
55 kwargs.setdefault("OutputKey", "MDT_SDO")
56
57
58 acc.addEventAlgo(CompFactory.MuonSimDataOverlay(name, **kwargs))
59
60
61 if flags.Output.doWriteRDO:
62 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
63 acc.merge(OutputStreamCfg(flags, "RDO", ItemList=[
64 "MuonSimDataCollection#MDT_SDO"
65 ]))
66
67 if flags.Output.doWriteRDO_SGNL:
68 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
69 acc.merge(OutputStreamCfg(flags, "RDO_SGNL", ItemList=[
70 f"MuonSimDataCollection#{flags.Overlay.SigPrefix}MDT_SDO"
71 ]))
72
73 return acc
74