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" if not flags.Overlay.IgnoreBkgInputs else "")
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 kwargs["BkgInputKey"]:
34 from SGComps.SGInputLoaderConfig import SGInputLoaderCfg
35 acc.merge(SGInputLoaderCfg(flags, [f'BCM_RDO_Container#{kwargs["BkgInputKey"]}']))
38 acc.addEventAlgo(CompFactory.BCMOverlay(name, **kwargs))
41 if flags.Output.doWriteRDO:
42 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
43 acc.merge(OutputStreamCfg(flags, "RDO", ItemList=[
44 "BCM_RDO_Container#BCM_RDOs"
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"
56def BCMTruthOverlayCfg(flags, name="BCMSDOOverlay", **kwargs):
57 """Return a ComponentAccumulator for the BCM SDO overlay algorithm"""
58 acc = ComponentAccumulator()
60 # We do not need background BCM SDOs
61 kwargs.setdefault("BkgInputKey", "")
63 kwargs.setdefault("SignalInputKey", f"{flags.Overlay.SigPrefix}BCM_SDO_Map")
64 kwargs.setdefault("OutputKey", "BCM_SDO_Map")
66 # Do BCM truth overlay
67 acc.addEventAlgo(CompFactory.InDetSDOOverlay(name, **kwargs))
70 if flags.Output.doWriteRDO:
71 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
72 acc.merge(OutputStreamCfg(flags, "RDO", ItemList=[
73 "InDetSimDataCollection#BCM_SDO_Map"
76 if flags.Output.doWriteRDO_SGNL:
77 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
78 acc.merge(OutputStreamCfg(flags, "RDO_SGNL", ItemList=[
79 f"InDetSimDataCollection#{flags.Overlay.SigPrefix}BCM_SDO_Map"
85def BCMOverlayCfg(flags):
86 """Configure and return a ComponentAccumulator for BCM overlay"""
87 acc = ComponentAccumulator()
89 # Add BCM overlay digitization algorithm
90 from BCM_Digitization.BCM_DigitizationConfig import BCM_OverlayDigitizationBasicCfg
91 acc.merge(BCM_OverlayDigitizationBasicCfg(flags))
93 # Add BCM overlay algorithm
94 acc.merge(BCMOverlayAlgCfg(flags))
96 # Add BCM truth overlay
97 if flags.Digitization.EnableTruth:
98 acc.merge(BCMTruthOverlayCfg(flags))