22def BCMOverlayAlgCfg(flags, name="BCMOverlay", **kwargs):
23 """Return a ComponentAccumulator for BCMOverlay algorithm"""
24 acc = ComponentAccumulator()
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")
30 kwargs.setdefault("isDataOverlay", not flags.Input.isMC)
33 if flags.Overlay.ByteStream:
34 acc.merge(BCMRawDataProviderAlgCfg(flags))
36 from SGComps.SGInputLoaderConfig import SGInputLoaderCfg
37 acc.merge(SGInputLoaderCfg(flags, [f'BCM_RDO_Container#{kwargs["BkgInputKey"]}']))
40 acc.addEventAlgo(CompFactory.BCMOverlay(name, **kwargs))
43 if flags.Output.doWriteRDO:
44 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
45 acc.merge(OutputStreamCfg(flags, "RDO", ItemList=[
46 "BCM_RDO_Container#BCM_RDOs"
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"
58def BCMTruthOverlayCfg(flags, name="BCMSDOOverlay", **kwargs):
59 """Return a ComponentAccumulator for the BCM SDO overlay algorithm"""
60 acc = ComponentAccumulator()
62 # We do not need background BCM SDOs
63 kwargs.setdefault("BkgInputKey", "")
65 kwargs.setdefault("SignalInputKey", f"{flags.Overlay.SigPrefix}BCM_SDO_Map")
66 kwargs.setdefault("OutputKey", "BCM_SDO_Map")
68 # Do BCM truth overlay
69 acc.addEventAlgo(CompFactory.InDetSDOOverlay(name, **kwargs))
72 if flags.Output.doWriteRDO:
73 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
74 acc.merge(OutputStreamCfg(flags, "RDO", ItemList=[
75 "InDetSimDataCollection#BCM_SDO_Map"
78 if flags.Output.doWriteRDO_SGNL:
79 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
80 acc.merge(OutputStreamCfg(flags, "RDO_SGNL", ItemList=[
81 f"InDetSimDataCollection#{flags.Overlay.SigPrefix}BCM_SDO_Map"
87def BCMOverlayCfg(flags):
88 """Configure and return a ComponentAccumulator for BCM overlay"""
89 acc = ComponentAccumulator()
91 # Add BCM overlay digitization algorithm
92 from BCM_Digitization.BCM_DigitizationConfig import BCM_OverlayDigitizationBasicCfg
93 acc.merge(BCM_OverlayDigitizationBasicCfg(flags))
95 # Add BCM overlay algorithm
96 acc.merge(BCMOverlayAlgCfg(flags))
98 # Add BCM truth overlay
99 if flags.Digitization.EnableTruth:
100 acc.merge(BCMTruthOverlayCfg(flags))