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" if not flags.Overlay.IgnoreBkgInputs else "")
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 if kwargs["BkgInputKey"]:
22 from SGComps.SGInputLoaderConfig import SGInputLoaderCfg
23 acc.merge(SGInputLoaderCfg(flags, [f'TRT_RDO_Container#{kwargs["BkgInputKey"]}']))
24
25 from TRT_GeoModel.TRT_GeoModelConfig import TRT_ReadoutGeometryCfg
26 acc.merge(TRT_ReadoutGeometryCfg(flags))
27
28
29 kwargs.setdefault("TRT_HT_OccupancyCorrectionBarrel", 0.110)
30 kwargs.setdefault("TRT_HT_OccupancyCorrectionEndcap", 0.090)
31 kwargs.setdefault("TRT_HT_OccupancyCorrectionBarrelNoE", 0.060)
32 kwargs.setdefault("TRT_HT_OccupancyCorrectionEndcapNoE", 0.050)
33 kwargs.setdefault("TRT_HT_OccupancyCorrectionBarrelAr", 0.100)
34 kwargs.setdefault("TRT_HT_OccupancyCorrectionEndcapAr", 0.101)
35 kwargs.setdefault("TRT_HT_OccupancyCorrectionBarrelArNoE", 0.088)
36 kwargs.setdefault("TRT_HT_OccupancyCorrectionEndcapArNoE", 0.102)
37
38 from InDetConfig.TRT_ElectronPidToolsConfig import TRT_OverlayLocalOccupancyCfg
39 kwargs.setdefault("TRT_LocalOccupancyTool", acc.popToolsAndMerge(TRT_OverlayLocalOccupancyCfg(flags)))
40
41 from RngComps.RngCompsConfig import AthRNGSvcCfg
42 kwargs.setdefault("RndmSvc", acc.getPrimaryAndMerge(AthRNGSvcCfg(flags)))
43
44
45 acc.addEventAlgo(CompFactory.TRTOverlay(name, **kwargs))
46
47
48 if flags.Output.doWriteRDO:
49 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
50 acc.merge(OutputStreamCfg(flags, "RDO", ItemList=[
51 "TRT_RDO_Container#TRT_RDOs"
52 ]))
53
54 if not flags.Input.isMC:
55 acc.merge(OutputStreamCfg(flags, "RDO", ItemList=[
56 "TRT_BSErrContainer#TRT_ByteStreamErrs"
57 ]))
58
59 if flags.Output.doWriteRDO_SGNL:
60 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
61 acc.merge(OutputStreamCfg(flags, "RDO_SGNL", ItemList=[
62 f"TRT_RDO_Container#{flags.Overlay.SigPrefix}TRT_RDOs"
63 ]))
64
65 return acc
66
67