ATLAS Offline Software
AtlasExtrapolatorToolsConfig.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2023 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  kwargs.setdefault("EnergyLossUpdator", result.popToolsAndMerge(
29  result.setPrivateTools(
30  CompFactory.Trk.MaterialEffectsUpdator(name, **kwargs))
31  return result
32 
33 
35  name='AtlasMaterialEffectsUpdatorLandau',
36  **kwargs):
37  # Landau most probable energy loss is not additive
38  # special treatment on how we accumulate
39  kwargs.setdefault("LandauMode", True)
40  return AtlasMaterialEffectsUpdatorCfg(flags, name, **kwargs)
41 
42 
44  name='AtlasNoElossMaterialEffectsUpdator',
45  **kwargs):
46  kwargs.setdefault("EnergyLoss", False)
47  return AtlasMaterialEffectsUpdatorCfg(flags, name, **kwargs)
48 
49 
51  name="InDetMaterialEffectsUpdator",
52  **kwargs):
53  if not flags.BField.solenoidOn:
54  import AthenaCommon.SystemOfUnits as Units
55  kwargs.setdefault("EnergyLoss", False)
56  kwargs.setdefault("ForceMomentum", True)
57  kwargs.setdefault("ForcedMomentumValue", 1000*Units.MeV)
58  return AtlasMaterialEffectsUpdatorCfg(flags, name, **kwargs)
59 
60 
62  name="ITkMaterialEffectsUpdator",
63  **kwargs):
64  return InDetMaterialEffectsUpdatorCfg(flags, name, **kwargs)
65 
66 
67 # Navigator used in order to handle the
68 # navigation inside the Tracking Geometry
69 # i.e search for the next TrackingVolume
70 @AccumulatorCache
72  name='AtlasNavigator',
73  **kwargs):
74  # get the correct TrackingGeometry setup
75  result = ComponentAccumulator()
76  if 'TrackingGeometryKey' not in kwargs:
77  from TrackingGeometryCondAlg.AtlasTrackingGeometryCondAlgConfig import (
78  TrackingGeometryCondAlgCfg)
79  acc = TrackingGeometryCondAlgCfg(flags)
80  geom_cond_key = acc.getPrimary().TrackingGeometryWriteKey
81  result.merge(acc)
82  kwargs.setdefault("TrackingGeometryKey", geom_cond_key)
83  result.setPrivateTools(CompFactory.Trk.Navigator(name, **kwargs))
84  return result
85 
86 
87 # Temporary until condition algorithm for tracking geometry
88 # can be used also for FastSim
90  name="AtlasNavigator",
91  **kwargs):
92  if flags.Sim.ISF.UseTrackingGeometryCond:
93  return AtlasNavigatorCfg(flags, name, **kwargs)
94 
95  result = ComponentAccumulator()
96  if 'TrackingGeometrySvc' not in kwargs:
97  from TrkConfig.AtlasTrackingGeometrySvcConfig import (
98  TrackingGeometrySvcCfg)
99  acc = TrackingGeometrySvcCfg(flags)
100  kwargs.setdefault("TrackingGeometrySvc", acc.getPrimary().name)
101  kwargs.setdefault("TrackingGeometryKey", '')
102  result.merge(acc)
103 
104  result.setPrivateTools(CompFactory.Trk.Navigator(name, **kwargs))
105  return result
106 
107 # Uses Highland formula for sigma
108 # from Trk::MaterialInteraction::sigmaMS
109 # (PDG 2018 formula 33.15)
110 # G.R. Lynch and O.I Dahl, Nucl. Instrum. Methods B58, 6 (1991).
111 # Eq. (33.15) is Eq. 12 from this paper
112 # = default config
113 
114 
116  name="AtlasMultipleScatteringUpdator",
117  **kwargs):
118  acc = ComponentAccumulator()
119  kwargs.setdefault("UseTrkUtils", True)
120  acc.setPrivateTools(
121  CompFactory.Trk.MultipleScatteringUpdator(name, **kwargs))
122  return acc
123 
124 # Uses Highland formula for sigma
125 # from Trk::MultipleScatteringUpdator::sigmaSquare
126 # (PDG 2010 formula 27.14)
127 # V.L. Highland, Nucl. Instrum. Methods 129, 497 (1975),
128 # and Nucl. Instrum. Methods 161, 171 (1979)
129 # = non default config, used for GlobalChi2Fitter
130 
131 
133  name="InDetMultipleScatteringUpdator",
134  **kwargs):
135  acc = ComponentAccumulator()
136  kwargs.setdefault("UseTrkUtils", False)
137  acc.setPrivateTools(
138  CompFactory.Trk.MultipleScatteringUpdator(name, **kwargs))
139  return acc
140 
141 
143  name="ITkMultipleScatteringUpdator",
144  **kwargs):
145  return InDetMultipleScatteringUpdatorCfg(flags, name, **kwargs)
146 
147 
149  name="ISF_FatrasMultipleScatteringUpdator",
150  **kwargs):
151  result = ComponentAccumulator()
152 
153  from ISF_FatrasServices.ISF_FatrasConfig import TrkExRndSvcMTCfg
154  kwargs.setdefault("RandomNumberService",
155  result.getPrimaryAndMerge(TrkExRndSvcMTCfg(flags)).name)
156  kwargs.setdefault("RandomStreamName",
157  flags.Sim.Fatras.TrkExRandomStreamName)
158  kwargs.setdefault("GaussianMixtureModel",
159  flags.Sim.Fatras.GaussianMixtureModel)
160 
161  result.setPrivateTools(
162  CompFactory.Trk.MultipleScatteringUpdator(name, **kwargs))
163  return result
164 
165 
166 def NIMatEffUpdatorCfg(flags, name="NIMatEffUpdator", **kwargs):
167  result = ComponentAccumulator()
168  result.setPrivateTools(CompFactory.Trk.NIMatEffUpdator(name, **kwargs))
169  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:128
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:89
python.AtlasExtrapolatorToolsConfig.AtlasMultipleScatteringUpdatorCfg
def AtlasMultipleScatteringUpdatorCfg(flags, name="AtlasMultipleScatteringUpdator", **kwargs)
Definition: AtlasExtrapolatorToolsConfig.py:115
python.AtlasExtrapolatorToolsConfig.AtlasMaterialEffectsUpdatorLandauCfg
def AtlasMaterialEffectsUpdatorLandauCfg(flags, name='AtlasMaterialEffectsUpdatorLandau', **kwargs)
Definition: AtlasExtrapolatorToolsConfig.py:34
python.AtlasExtrapolatorToolsConfig.ITkMultipleScatteringUpdatorCfg
def ITkMultipleScatteringUpdatorCfg(flags, name="ITkMultipleScatteringUpdator", **kwargs)
Definition: AtlasExtrapolatorToolsConfig.py:142
python.AtlasExtrapolatorToolsConfig.AtlasNoElossMaterialEffectsUpdatorCfg
def AtlasNoElossMaterialEffectsUpdatorCfg(flags, name='AtlasNoElossMaterialEffectsUpdator', **kwargs)
Definition: AtlasExtrapolatorToolsConfig.py:43
python.AtlasExtrapolatorToolsConfig.InDetMultipleScatteringUpdatorCfg
def InDetMultipleScatteringUpdatorCfg(flags, name="InDetMultipleScatteringUpdator", **kwargs)
Definition: AtlasExtrapolatorToolsConfig.py:132
python.AtlasExtrapolatorToolsConfig.AtlasNavigatorCfg
def AtlasNavigatorCfg(flags, name='AtlasNavigator', **kwargs)
Definition: AtlasExtrapolatorToolsConfig.py:71
python.AtlasExtrapolatorToolsConfig.ITkMaterialEffectsUpdatorCfg
def ITkMaterialEffectsUpdatorCfg(flags, name="ITkMaterialEffectsUpdator", **kwargs)
Definition: AtlasExtrapolatorToolsConfig.py:61
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:50
ISF_FatrasConfig.TrkExRndSvcMTCfg
def TrkExRndSvcMTCfg(flags)
Definition: ISF_FatrasConfig.py:21
python.AtlasExtrapolatorToolsConfig.fatrasMultipleScatteringUpdatorCfg
def fatrasMultipleScatteringUpdatorCfg(flags, name="ISF_FatrasMultipleScatteringUpdator", **kwargs)
Definition: AtlasExtrapolatorToolsConfig.py:148
python.AtlasExtrapolatorToolsConfig.NIMatEffUpdatorCfg
def NIMatEffUpdatorCfg(flags, name="NIMatEffUpdator", **kwargs)
Definition: AtlasExtrapolatorToolsConfig.py:166