ATLAS Offline Software
Loading...
Searching...
No Matches
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
3from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
4from AthenaConfiguration.ComponentFactory import CompFactory
5from 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
170def 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
InDetMaterialEffectsUpdatorCfg(flags, name="InDetMaterialEffectsUpdator", **kwargs)
AtlasMultipleScatteringUpdatorCfg(flags, name="AtlasMultipleScatteringUpdator", **kwargs)
ITkMaterialEffectsUpdatorCfg(flags, name="ITkMaterialEffectsUpdator", **kwargs)
AtlasNavigatorCfg(flags, name='AtlasNavigator', **kwargs)
AtlasNoElossMaterialEffectsUpdatorCfg(flags, name='AtlasNoElossMaterialEffectsUpdator', **kwargs)
AtlasMaterialEffectsUpdatorCfg(flags, name='AtlasMaterialEffectsUpdator', **kwargs)
FastSimNavigatorCfg(flags, name="AtlasNavigator", **kwargs)
NIMatEffUpdatorCfg(flags, name="NIMatEffUpdator", **kwargs)
fatrasMultipleScatteringUpdatorCfg(flags, name="ISF_FatrasMultipleScatteringUpdator", **kwargs)
AtlasEnergyLossUpdatorCfg(flags, name='AtlasEnergyLossUpdator', **kwargs)
ITkMultipleScatteringUpdatorCfg(flags, name="ITkMultipleScatteringUpdator", **kwargs)
InDetMultipleScatteringUpdatorCfg(flags, name="InDetMultipleScatteringUpdator", **kwargs)
AtlasMaterialEffectsUpdatorLandauCfg(flags, name='AtlasMaterialEffectsUpdatorLandau', **kwargs)