ATLAS Offline Software
AtlasExtrapolatorToolsConfig.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
2 # Configuration of tools needed by the Extrapolator
3 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
4 from AthenaConfiguration.ComponentFactory import CompFactory
5 from AthenaConfiguration.AccumulatorCache import AccumulatorCache
6 
7 
8 # Configured Energy Loss uses the TrkUtils parametrization for
9 # energy loss due to ionization and radiation
10 # Ionization (PDG 2011 formula 27.11)
11 # H. Bichsel, Rev. Mod. Phys. 60, 663 (1988)
13  name='AtlasEnergyLossUpdator',
14  **kwargs):
15  result = ComponentAccumulator()
16  result.setPrivateTools(CompFactory.Trk.EnergyLossUpdator(name, **kwargs))
17  return result
18 
19 
20 # Configured Updators for Layer based material effects
21 # by default applies Multiple Scattering and
22 # Energy Loss.
24  name='AtlasMaterialEffectsUpdator',
25  **kwargs):
26  result = ComponentAccumulator()
27 
28  kwargs.setdefault("EnergyLossUpdator", result.popToolsAndMerge(
30  kwargs.setdefault("MultipleScatteringUpdator", result.popToolsAndMerge(
32 
33  result.setPrivateTools(
34  CompFactory.Trk.MaterialEffectsUpdator(name, **kwargs))
35  return result
36 
37 
39  name='AtlasMaterialEffectsUpdatorLandau',
40  **kwargs):
41  # Landau most probable energy loss is not additive
42  # special treatment on how we accumulate
43  kwargs.setdefault("LandauMode", True)
44  return AtlasMaterialEffectsUpdatorCfg(flags, name, **kwargs)
45 
46 
48  name='AtlasNoElossMaterialEffectsUpdator',
49  **kwargs):
50  kwargs.setdefault("EnergyLoss", False)
51  return AtlasMaterialEffectsUpdatorCfg(flags, name, **kwargs)
52 
53 
55  name="InDetMaterialEffectsUpdator",
56  **kwargs):
57  if not flags.BField.solenoidOn:
58  import AthenaCommon.SystemOfUnits as Units
59  kwargs.setdefault("EnergyLoss", False)
60  kwargs.setdefault("ForceMomentum", True)
61  kwargs.setdefault("ForcedMomentumValue", 1000*Units.MeV)
62  return AtlasMaterialEffectsUpdatorCfg(flags, name, **kwargs)
63 
64 
66  name="ITkMaterialEffectsUpdator",
67  **kwargs):
68  return InDetMaterialEffectsUpdatorCfg(flags, name, **kwargs)
69 
70 
71 # Navigator used in order to handle the
72 # navigation inside the Tracking Geometry
73 # i.e search for the next TrackingVolume
74 @AccumulatorCache
76  name='AtlasNavigator',
77  **kwargs):
78  # get the correct TrackingGeometry setup
79  result = ComponentAccumulator()
80  if 'TrackingGeometryKey' not in kwargs:
81  from TrackingGeometryCondAlg.AtlasTrackingGeometryCondAlgConfig import (
82  TrackingGeometryCondAlgCfg)
83  acc = TrackingGeometryCondAlgCfg(flags)
84  geom_cond_key = acc.getPrimary().TrackingGeometryWriteKey
85  result.merge(acc)
86  kwargs.setdefault("TrackingGeometryKey", geom_cond_key)
87  result.setPrivateTools(CompFactory.Trk.Navigator(name, **kwargs))
88  return result
89 
90 
91 # Temporary until condition algorithm for tracking geometry
92 # can be used also for FastSim
94  name="AtlasNavigator",
95  **kwargs):
96  if flags.Sim.ISF.UseTrackingGeometryCond:
97  return AtlasNavigatorCfg(flags, name, **kwargs)
98 
99  result = ComponentAccumulator()
100  if 'TrackingGeometrySvc' not in kwargs:
101  from TrkConfig.AtlasTrackingGeometrySvcConfig import (
102  TrackingGeometrySvcCfg)
103  acc = TrackingGeometrySvcCfg(flags)
104  kwargs.setdefault("TrackingGeometrySvc", acc.getPrimary())
105  kwargs.setdefault("TrackingGeometryKey", '')
106  result.merge(acc)
107 
108  result.setPrivateTools(CompFactory.Trk.Navigator(name, **kwargs))
109  return result
110 
111 # Uses Highland formula for sigma
112 # from Trk::MaterialInteraction::sigmaMS
113 # (PDG 2018 formula 33.15)
114 # G.R. Lynch and O.I Dahl, Nucl. Instrum. Methods B58, 6 (1991).
115 # Eq. (33.15) is Eq. 12 from this paper
116 # = default config
117 
118 
120  name="AtlasMultipleScatteringUpdator",
121  **kwargs):
122  acc = ComponentAccumulator()
123  kwargs.setdefault("UseTrkUtils", True)
124  acc.setPrivateTools(
125  CompFactory.Trk.MultipleScatteringUpdator(name, **kwargs))
126  return acc
127 
128 # Uses Highland formula for sigma
129 # from Trk::MultipleScatteringUpdator::sigmaSquare
130 # (PDG 2010 formula 27.14)
131 # V.L. Highland, Nucl. Instrum. Methods 129, 497 (1975),
132 # and Nucl. Instrum. Methods 161, 171 (1979)
133 # = non default config, used for GlobalChi2Fitter
134 
135 
137  name="InDetMultipleScatteringUpdator",
138  **kwargs):
139  acc = ComponentAccumulator()
140  kwargs.setdefault("UseTrkUtils", False)
141  acc.setPrivateTools(
142  CompFactory.Trk.MultipleScatteringUpdator(name, **kwargs))
143  return acc
144 
145 
147  name="ITkMultipleScatteringUpdator",
148  **kwargs):
149  return InDetMultipleScatteringUpdatorCfg(flags, name, **kwargs)
150 
151 
153  name="ISF_FatrasMultipleScatteringUpdator",
154  **kwargs):
155  result = ComponentAccumulator()
156 
157  from ISF_FatrasServices.ISF_FatrasConfig import TrkExRndSvcMTCfg
158  kwargs.setdefault("RandomNumberService",
159  result.getPrimaryAndMerge(TrkExRndSvcMTCfg(flags)))
160  kwargs.setdefault("RandomStreamName",
161  flags.Sim.Fatras.TrkExRandomStreamName)
162  kwargs.setdefault("GaussianMixtureModel",
163  flags.Sim.Fatras.GaussianMixtureModel)
164 
165  result.setPrivateTools(
166  CompFactory.Trk.MultipleScatteringUpdator(name, **kwargs))
167  return result
168 
169 
170 def NIMatEffUpdatorCfg(flags, name="NIMatEffUpdator", **kwargs):
171  result = ComponentAccumulator()
172 
173  kwargs.setdefault("MaterialEffectsUpdator", result.popToolsAndMerge(
175 
176  result.setPrivateTools(CompFactory.Trk.NIMatEffUpdator(name, **kwargs))
177  return result
SystemOfUnits
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
python.AtlasExtrapolatorToolsConfig.AtlasEnergyLossUpdatorCfg
def AtlasEnergyLossUpdatorCfg(flags, name='AtlasEnergyLossUpdator', **kwargs)
Definition: AtlasExtrapolatorToolsConfig.py:12
AtlasTrackingGeometryCondAlgConfig.TrackingGeometryCondAlgCfg
def TrackingGeometryCondAlgCfg(flags, name='AtlasTrackingGeometryCondAlg', doMaterialValidation=False, **kwargs)
Definition: AtlasTrackingGeometryCondAlgConfig.py:131
python.AtlasTrackingGeometrySvcConfig.TrackingGeometrySvcCfg
def TrackingGeometrySvcCfg(flags, name='AtlasTrackingGeometrySvc', doMaterialValidation=False, **kwargs)
Definition: AtlasTrackingGeometrySvcConfig.py:7
python.AtlasExtrapolatorToolsConfig.FastSimNavigatorCfg
def FastSimNavigatorCfg(flags, name="AtlasNavigator", **kwargs)
Definition: AtlasExtrapolatorToolsConfig.py:93
python.AtlasExtrapolatorToolsConfig.AtlasMultipleScatteringUpdatorCfg
def AtlasMultipleScatteringUpdatorCfg(flags, name="AtlasMultipleScatteringUpdator", **kwargs)
Definition: AtlasExtrapolatorToolsConfig.py:119
python.AtlasExtrapolatorToolsConfig.AtlasMaterialEffectsUpdatorLandauCfg
def AtlasMaterialEffectsUpdatorLandauCfg(flags, name='AtlasMaterialEffectsUpdatorLandau', **kwargs)
Definition: AtlasExtrapolatorToolsConfig.py:38
python.AtlasExtrapolatorToolsConfig.ITkMultipleScatteringUpdatorCfg
def ITkMultipleScatteringUpdatorCfg(flags, name="ITkMultipleScatteringUpdator", **kwargs)
Definition: AtlasExtrapolatorToolsConfig.py:146
python.AtlasExtrapolatorToolsConfig.AtlasNoElossMaterialEffectsUpdatorCfg
def AtlasNoElossMaterialEffectsUpdatorCfg(flags, name='AtlasNoElossMaterialEffectsUpdator', **kwargs)
Definition: AtlasExtrapolatorToolsConfig.py:47
python.AtlasExtrapolatorToolsConfig.InDetMultipleScatteringUpdatorCfg
def InDetMultipleScatteringUpdatorCfg(flags, name="InDetMultipleScatteringUpdator", **kwargs)
Definition: AtlasExtrapolatorToolsConfig.py:136
python.AtlasExtrapolatorToolsConfig.AtlasNavigatorCfg
def AtlasNavigatorCfg(flags, name='AtlasNavigator', **kwargs)
Definition: AtlasExtrapolatorToolsConfig.py:75
python.AtlasExtrapolatorToolsConfig.ITkMaterialEffectsUpdatorCfg
def ITkMaterialEffectsUpdatorCfg(flags, name="ITkMaterialEffectsUpdator", **kwargs)
Definition: AtlasExtrapolatorToolsConfig.py:65
python.AtlasExtrapolatorToolsConfig.AtlasMaterialEffectsUpdatorCfg
def AtlasMaterialEffectsUpdatorCfg(flags, name='AtlasMaterialEffectsUpdator', **kwargs)
Definition: AtlasExtrapolatorToolsConfig.py:23
python.AtlasExtrapolatorToolsConfig.InDetMaterialEffectsUpdatorCfg
def InDetMaterialEffectsUpdatorCfg(flags, name="InDetMaterialEffectsUpdator", **kwargs)
Definition: AtlasExtrapolatorToolsConfig.py:54
ISF_FatrasConfig.TrkExRndSvcMTCfg
def TrkExRndSvcMTCfg(flags)
Definition: ISF_FatrasConfig.py:21
python.AtlasExtrapolatorToolsConfig.fatrasMultipleScatteringUpdatorCfg
def fatrasMultipleScatteringUpdatorCfg(flags, name="ISF_FatrasMultipleScatteringUpdator", **kwargs)
Definition: AtlasExtrapolatorToolsConfig.py:152
python.AtlasExtrapolatorToolsConfig.NIMatEffUpdatorCfg
def NIMatEffUpdatorCfg(flags, name="NIMatEffUpdator", **kwargs)
Definition: AtlasExtrapolatorToolsConfig.py:170