ATLAS Offline Software
Loading...
Searching...
No Matches
egammaTrackToolsConfig.py
Go to the documentation of this file.
1# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2
3""" Tool configuration to instantiate all egammaCaloTools with default configuration"""
4
5from AthenaCommon.Logging import logging
6from AthenaConfiguration.ComponentFactory import CompFactory
7from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
8from TrkConfig.AtlasExtrapolatorConfig import AtlasExtrapolatorCfg
9from TrackToCalo.TrackToCaloConfig import EMParticleCaloExtensionToolCfg
10
11
12def EMExtrapolationToolsCfg(flags, **kwargs):
13 mlog = logging.getLogger("EMExtrapolationTools")
14 mlog.debug("Start configuration")
15
16 acc = ComponentAccumulator()
17
18 if "Extrapolator" not in kwargs:
19 extrapAcc = AtlasExtrapolatorCfg(flags)
20 kwargs["Extrapolator"] = acc.popToolsAndMerge(extrapAcc)
21
22 if "CaloExtensionTool" not in kwargs:
23 kwargs["CaloExtensionTool"] = acc.popToolsAndMerge(
24 EMParticleCaloExtensionToolCfg(flags)
25 )
26
27 kwargs["EnableTRT"] = flags.Detector.GeometryTRT
28
29 emExtrapolationTools = CompFactory.EMExtrapolationTools(**kwargs)
30 acc.setPrivateTools(emExtrapolationTools)
31 return acc
32
33
34def egammaTrkRefitterToolCfg(flags, name="GSFRefitterTool", **kwargs):
35 acc = ComponentAccumulator()
36 if "FitterTool" not in kwargs:
37 if flags.Acts.GsfRefitLegacyTrk:
38 from ActsConfig.ActsGaussianSumFitterConfig import (
39 ActsGaussianSumFitterToolCfg,
40 )
41
42 kwargs["FitterTool"] = acc.popToolsAndMerge(
43 ActsGaussianSumFitterToolCfg(flags, name="ActsGSFTrackFitter")
44 )
45 elif flags.Detector.GeometryITk:
46 from TrkConfig.TrkGaussianSumFilterConfig import ITkGaussianSumFitterCfg
47
48 kwargs["FitterTool"] = acc.popToolsAndMerge(
49 ITkGaussianSumFitterCfg(flags, name="GSFTrackFitter")
50 )
51 else:
52 from TrkConfig.TrkGaussianSumFilterConfig import GaussianSumFitterCfg
53
54 kwargs["FitterTool"] = acc.popToolsAndMerge(
55 GaussianSumFitterCfg(flags, name="GSFTrackFitter")
56 )
57
58 tool = CompFactory.egammaTrkRefitterTool(name, **kwargs)
59 acc.setPrivateTools(tool)
60 return acc
61
62
63def CaloCluster_OnTrackBuilderCfg(flags, name="CaloCluster_OnTrackBuilder", **kwargs):
64 acc = ComponentAccumulator()
65 if "CaloSurfaceBuilder" not in kwargs:
66 from CaloTrackingGeometry.CaloTrackingGeometryConfig import (
67 CaloSurfaceBuilderMiddleCfg,
68 )
69
70 kwargs["CaloSurfaceBuilder"] = acc.popToolsAndMerge(
71 CaloSurfaceBuilderMiddleCfg(flags)
72 )
73 tool = CompFactory.CaloCluster_OnTrackBuilder(name, **kwargs)
74 acc.setPrivateTools(tool)
75 return acc
76
77
78if __name__ == "__main__":
79 from AthenaConfiguration.AllConfigFlags import initConfigFlags
80 from AthenaConfiguration.ComponentAccumulator import printProperties
81 from AthenaConfiguration.TestDefaults import defaultTestFiles
82
83 flags = initConfigFlags()
84 flags.Input.Files = defaultTestFiles.RDO_RUN2
85 flags.fillFromArgs()
86 flags.lock()
87 flags.dump()
88
89 cfg = ComponentAccumulator()
90 mlog = logging.getLogger("egammaTrackToolsConfigTest")
91 mlog.info("Configuring EMExtrapolationTools : ")
92 printProperties(
93 mlog,
94 cfg.popToolsAndMerge(EMExtrapolationToolsCfg(flags)),
95 nestLevel=1,
96 printDefaults=True,
97 )
98 mlog.info("Configuring egammaTrkRefitterTool :")
99 printProperties(
100 mlog,
101 cfg.popToolsAndMerge(egammaTrkRefitterToolCfg(flags)),
102 nestLevel=1,
103 printDefaults=True,
104 )
105 mlog.info("Configuring CaloCluster_OnTrackBuilder :")
106 printProperties(
107 mlog,
108 cfg.popToolsAndMerge(CaloCluster_OnTrackBuilderCfg(flags)),
109 nestLevel=1,
110 printDefaults=True,
111 )
112
113 f = open("egtracktools.pkl", "wb")
114 cfg.store(f)
115 f.close()
egammaTrkRefitterToolCfg(flags, name="GSFRefitterTool", **kwargs)
CaloCluster_OnTrackBuilderCfg(flags, name="CaloCluster_OnTrackBuilder", **kwargs)
EMExtrapolationToolsCfg(flags, **kwargs)