10def PixelOverlayAlgCfg(flags, name="PixelOverlay", **kwargs):
11 """Return a ComponentAccumulator for PixelOverlay algorithm"""
12 acc = ComponentAccumulator()
13
14 kwargs.setdefault("BkgInputKey", f"{flags.Overlay.BkgPrefix}PixelRDOs" if not flags.Overlay.IgnoreBkgInputs else "")
15 kwargs.setdefault("SignalInputKey", f"{flags.Overlay.SigPrefix}PixelRDOs")
16 kwargs.setdefault("OutputKey", "PixelRDOs")
17
18
19 if kwargs["BkgInputKey"]:
20 from SGComps.SGInputLoaderConfig import SGInputLoaderCfg
21 acc.merge(SGInputLoaderCfg(flags, [f'PixelRDO_Container#{kwargs["BkgInputKey"]}']))
22
23
24 acc.addEventAlgo(CompFactory.PixelOverlay(name, **kwargs))
25
26
27 if flags.Output.doWriteRDO:
28 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
29 acc.merge(OutputStreamCfg(flags, "RDO", ItemList=[
30 "PixelRDO_Container#PixelRDOs"
31 ]))
32
33 if not flags.Input.isMC:
34 acc.merge(OutputStreamCfg(flags, "RDO", ItemList=[
35 "IDCInDetBSErrContainer#PixelByteStreamErrs"
36 ]))
37
38 if flags.Output.doWriteRDO_SGNL:
39 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
40 acc.merge(OutputStreamCfg(flags, "RDO_SGNL", ItemList=[
41 f"PixelRDO_Container#{flags.Overlay.SigPrefix}PixelRDOs"
42 ]))
43
44
45 if flags.Overlay.doTrackOverlay:
46 acc.merge(OutputStreamCfg(flags, "RDO", ItemList=[
47 f"PixelRDO_Container#{flags.Overlay.SigPrefix}PixelRDOs"
48 ]))
49
50 return acc
51
52