22def BCMOverlayAlgCfg(flags, name="BCMOverlay", **kwargs):
23 """Return a ComponentAccumulator for BCMOverlay algorithm"""
24 acc = ComponentAccumulator()
25
26 kwargs.setdefault("BkgInputKey", f"{flags.Overlay.BkgPrefix}BCM_RDOs" if not flags.Overlay.IgnoreBkgInputs else "")
27 kwargs.setdefault("SignalInputKey", f"{flags.Overlay.SigPrefix}BCM_RDOs")
28 kwargs.setdefault("OutputKey", "BCM_RDOs")
29
30 kwargs.setdefault("isDataOverlay", not flags.Input.isMC)
31
32
33 if kwargs["BkgInputKey"]:
34 from SGComps.SGInputLoaderConfig import SGInputLoaderCfg
35 acc.merge(SGInputLoaderCfg(flags, [f'BCM_RDO_Container#{kwargs["BkgInputKey"]}']))
36
37
38 acc.addEventAlgo(CompFactory.BCMOverlay(name, **kwargs))
39
40
41 if flags.Output.doWriteRDO:
42 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
43 acc.merge(OutputStreamCfg(flags, "RDO", ItemList=[
44 "BCM_RDO_Container#BCM_RDOs"
45 ]))
46
47 if flags.Output.doWriteRDO_SGNL:
48 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
49 acc.merge(OutputStreamCfg(flags, "RDO_SGNL", ItemList=[
50 f"BCM_RDO_Container#{flags.Overlay.SigPrefix}BCM_RDOs"
51 ]))
52
53 return acc
54
55