40def MM_TruthOverlayCfg(flags, name="MM_TruthOverlay", **kwargs):
41 """Return a ComponentAccumulator for the MM 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}MM_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}MM_SDO")
55 kwargs.setdefault("OutputKey", "MM_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#MM_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}MM_SDO"
71 ]))
72
73 return acc
74
75