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