10def TRTOverlayAlgCfg(flags, name="TRTOverlay", **kwargs):
11 """Return a ComponentAccumulator for TRTOverlay algorithm"""
12 acc = ComponentAccumulator()
13
14 kwargs.setdefault("SortBkgInput", flags.Overlay.DataOverlay)
15 kwargs.setdefault("BkgInputKey", f"{flags.Overlay.BkgPrefix}TRT_RDOs")
16 kwargs.setdefault("SignalInputKey", f"{flags.Overlay.SigPrefix}TRT_RDOs")
17 kwargs.setdefault("SignalInputSDOKey", f"{flags.Overlay.SigPrefix}TRT_SDO_Map")
18 kwargs.setdefault("OutputKey", "TRT_RDOs")
19
20
21 from SGComps.SGInputLoaderConfig import SGInputLoaderCfg
22 acc.merge(SGInputLoaderCfg(flags, [f'TRT_RDO_Container#{kwargs["BkgInputKey"]}']))
23
24 from TRT_GeoModel.TRT_GeoModelConfig import TRT_ReadoutGeometryCfg
25 acc.merge(TRT_ReadoutGeometryCfg(flags))
26
27
28 kwargs.setdefault("TRT_HT_OccupancyCorrectionBarrel", 0.110)
29 kwargs.setdefault("TRT_HT_OccupancyCorrectionEndcap", 0.090)
30 kwargs.setdefault("TRT_HT_OccupancyCorrectionBarrelNoE", 0.060)
31 kwargs.setdefault("TRT_HT_OccupancyCorrectionEndcapNoE", 0.050)
32 kwargs.setdefault("TRT_HT_OccupancyCorrectionBarrelAr", 0.100)
33 kwargs.setdefault("TRT_HT_OccupancyCorrectionEndcapAr", 0.101)
34 kwargs.setdefault("TRT_HT_OccupancyCorrectionBarrelArNoE", 0.088)
35 kwargs.setdefault("TRT_HT_OccupancyCorrectionEndcapArNoE", 0.102)
36
37 from InDetConfig.TRT_ElectronPidToolsConfig import TRT_OverlayLocalOccupancyCfg
38 kwargs.setdefault("TRT_LocalOccupancyTool", acc.popToolsAndMerge(TRT_OverlayLocalOccupancyCfg(flags)))
39
40 from RngComps.RngCompsConfig import AthRNGSvcCfg
41 kwargs.setdefault("RndmSvc", acc.getPrimaryAndMerge(AthRNGSvcCfg(flags)))
42
43
44 acc.addEventAlgo(CompFactory.TRTOverlay(name, **kwargs))
45
46
47 if flags.Output.doWriteRDO:
48 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
49 acc.merge(OutputStreamCfg(flags, "RDO", ItemList=[
50 "TRT_RDO_Container#TRT_RDOs"
51 ]))
52
53 if not flags.Input.isMC:
54 acc.merge(OutputStreamCfg(flags, "RDO", ItemList=[
55 "TRT_BSErrContainer#TRT_ByteStreamErrs"
56 ]))
57
58 if flags.Output.doWriteRDO_SGNL:
59 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
60 acc.merge(OutputStreamCfg(flags, "RDO_SGNL", ItemList=[
61 f"TRT_RDO_Container#{flags.Overlay.SigPrefix}TRT_RDOs"
62 ]))
63
64 return acc
65
66