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")
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 flags.Overlay.ByteStream:
34 acc.merge(BCMRawDataProviderAlgCfg(flags))
35 else:
36 from SGComps.SGInputLoaderConfig import SGInputLoaderCfg
37 acc.merge(SGInputLoaderCfg(flags, [f'BCM_RDO_Container#{kwargs["BkgInputKey"]}']))
38
39
40 acc.addEventAlgo(CompFactory.BCMOverlay(name, **kwargs))
41
42
43 if flags.Output.doWriteRDO:
44 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
45 acc.merge(OutputStreamCfg(flags, "RDO", ItemList=[
46 "BCM_RDO_Container#BCM_RDOs"
47 ]))
48
49 if flags.Output.doWriteRDO_SGNL:
50 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
51 acc.merge(OutputStreamCfg(flags, "RDO_SGNL", ItemList=[
52 f"BCM_RDO_Container#{flags.Overlay.SigPrefix}BCM_RDOs"
53 ]))
54
55 return acc
56
57