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 from SGComps.SGInputLoaderConfig import SGInputLoaderCfg
34 acc.merge(SGInputLoaderCfg(flags, [f'BCM_RDO_Container#{kwargs["BkgInputKey"]}']))
37 acc.addEventAlgo(CompFactory.BCMOverlay(name, **kwargs))
40 if flags.Output.doWriteRDO:
41 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
42 acc.merge(OutputStreamCfg(flags, "RDO", ItemList=[
43 "BCM_RDO_Container#BCM_RDOs"
46 if flags.Output.doWriteRDO_SGNL:
47 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
48 acc.merge(OutputStreamCfg(flags, "RDO_SGNL", ItemList=[
49 f"BCM_RDO_Container#{flags.Overlay.SigPrefix}BCM_RDOs"
55def BCMTruthOverlayCfg(flags, name="BCMSDOOverlay", **kwargs):
56 """Return a ComponentAccumulator for the BCM SDO overlay algorithm"""
57 acc = ComponentAccumulator()
59 # We do not need background BCM SDOs
60 kwargs.setdefault("BkgInputKey", "")
62 kwargs.setdefault("SignalInputKey", f"{flags.Overlay.SigPrefix}BCM_SDO_Map")
63 kwargs.setdefault("OutputKey", "BCM_SDO_Map")
65 # Do BCM truth overlay
66 acc.addEventAlgo(CompFactory.InDetSDOOverlay(name, **kwargs))
69 if flags.Output.doWriteRDO:
70 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
71 acc.merge(OutputStreamCfg(flags, "RDO", ItemList=[
72 "InDetSimDataCollection#BCM_SDO_Map"
75 if flags.Output.doWriteRDO_SGNL:
76 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
77 acc.merge(OutputStreamCfg(flags, "RDO_SGNL", ItemList=[
78 f"InDetSimDataCollection#{flags.Overlay.SigPrefix}BCM_SDO_Map"
84def BCMOverlayCfg(flags):
85 """Configure and return a ComponentAccumulator for BCM overlay"""
86 acc = ComponentAccumulator()
88 # Add BCM overlay digitization algorithm
89 from BCM_Digitization.BCM_DigitizationConfig import BCM_OverlayDigitizationBasicCfg
90 acc.merge(BCM_OverlayDigitizationBasicCfg(flags))
92 # Add BCM overlay algorithm
93 acc.merge(BCMOverlayAlgCfg(flags))
95 # Add BCM truth overlay
96 if flags.Digitization.EnableTruth:
97 acc.merge(BCMTruthOverlayCfg(flags))