ATLAS Offline Software
ActsGeometryConfig.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
2 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
3 from AthenaConfiguration.ComponentFactory import CompFactory
4 
5 
7  name: str = "ActsTrackingGeometrySvc",
8  **kwargs) -> ComponentAccumulator:
10 
11  from ROOT.ActsTrk import DetectorType
12  kwargs.setdefault("NotAlignDetectors", [DetectorType.Trt,
13  DetectorType.Hgtd])
14  kwargs.setdefault("UseBlueprint", flags.Acts.TrackingGeometry.UseBlueprint)
15 
16  subDetectors = []
17  blueprintTools = []
18 
19  if flags.Detector.GeometryBpipe:
20  from BeamPipeGeoModel.BeamPipeGMConfig import BeamPipeGeometryCfg
21  acc.merge(BeamPipeGeometryCfg(flags))
22  kwargs.setdefault("BuildBeamPipe", True)
23 
24  if flags.Detector.GeometryPixel:
25  subDetectors += ["Pixel"]
26  from PixelGeoModel.PixelGeoModelConfig import PixelReadoutGeometryCfg
27  acc.merge(PixelReadoutGeometryCfg(flags))
28 
29 
30  if flags.Detector.GeometrySCT:
31  subDetectors += ["SCT"]
32  from SCT_GeoModel.SCT_GeoModelConfig import SCT_ReadoutGeometryCfg
33  acc.merge(SCT_ReadoutGeometryCfg(flags))
34 
35  if flags.Detector.GeometryTRT:
36  # Commented out because TRT is not production ready yet and we don't
37  # want to turn it on even if the global flag is set
38  # subDetectors += ["TRT"]
39  from TRT_GeoModel.TRT_GeoModelConfig import TRT_ReadoutGeometryCfg
40  acc.merge(TRT_ReadoutGeometryCfg(flags))
41 
42  if flags.Detector.GeometryCalo:
43  # Commented out because Calo is not production ready yet and we don't
44  # want to turn it on even if the global flag is set
45  # subDetectors += ["Calo"]
46  # kwargs.setdefault("CaloVolumeBuilder", CompFactory.ActsCaloTrackingVolumeBuilder())
47 
48  # need to configure calo geometry, otherwise we get a crash
49  # Do this even though it's not production ready yet, so the service can
50  # be forced to build the calorimeter later on anyway
51  from LArGeoAlgsNV.LArGMConfig import LArGMCfg
52  acc.merge(LArGMCfg(flags))
53  from TileGeoModel.TileGMConfig import TileGMCfg
54  acc.merge(TileGMCfg(flags))
55 
56  if flags.Muon.usePhaseIIGeoSetup and not flags.Acts.TrackingGeometry.UseBlueprint:
57  subDetectors += ["Muon"]
58  from MuonConfig.MuonGeometryConfig import MuonGeoModelCfg
59  acc.merge(MuonGeoModelCfg(flags))
60  from ActsMuonDetector.ActsMuonDetectorCfg import MsTrackingVolumeBuilderCfg
61  kwargs.setdefault("MSVolumeBuilder", acc.popToolsAndMerge(MsTrackingVolumeBuilderCfg(flags)))
62 
63  #first add the itk builder and then the muon system - this is the correct order
64  if flags.Acts.TrackingGeometry.UseBlueprint:
65  if flags.Detector.GeometryITkPixel or flags.Detector.GeometryITkStrip:
66  blueprintTools += [acc.popToolsAndMerge(ItkBlueprintNodeBuilderCfg(flags))]
67  if flags.Detector.GeometryMuon:
68  from ActsMuonDetector.ActsMuonDetectorCfg import MuonBlueprintNodeBuilderCfg
69  blueprintTools += [acc.popToolsAndMerge(MuonBlueprintNodeBuilderCfg(flags))]
70  # also Calo needs to be added
71 
72  if flags.Detector.GeometryITkPixel:
73  subDetectors += ["ITkPixel"]
74  from PixelGeoModelXml.ITkPixelGeoModelConfig import ITkPixelReadoutGeometryCfg
75  acc.merge(ITkPixelReadoutGeometryCfg(flags))
76 
77  if flags.Detector.GeometryITkStrip:
78  subDetectors += ["ITkStrip"]
79  from StripGeoModelXml.ITkStripGeoModelConfig import ITkStripReadoutGeometryCfg
80  acc.merge(ITkStripReadoutGeometryCfg(flags))
81 
82 
83  if flags.Detector.GeometryHGTD:
84  subDetectors += ["HGTD"]
85  if flags.HGTD.Geometry.useGeoModelXml:
86  from HGTD_GeoModelXml.HGTD_GeoModelConfig import HGTD_ReadoutGeometryCfg
87  else:
88  from HGTD_GeoModel.HGTD_GeoModelConfig import HGTD_ReadoutGeometryCfg
89  acc.merge(HGTD_ReadoutGeometryCfg(flags))
90 
91  actsTrackingGeometrySvc = CompFactory.ActsTrackingGeometrySvc(name,
92  BuildSubDetectors=subDetectors,
93  BlueprintNodeBuilders=blueprintTools,
94  **kwargs)
95 
96  if flags.Acts.TrackingGeometry.MaterialSource == "Default":
97  if flags.Detector.GeometryITk:
98  extension = "ITk"
99  if flags.Detector.GeometryHGTD:
100  extension += "-HGTD"
101  if flags.Acts.TrackingGeometry.InsertITkPassiveMaterialLayers:
102  extension += "-passiveLayers"
103  if flags.Acts.TrackingGeometry.MaterialFileExtension:
104  extension += "-"+flags.Acts.TrackingGeometry.MaterialFileExtension
105  actsTrackingGeometrySvc.UseMaterialMap = True
106  actsTrackingGeometrySvc.MaterialMapCalibFolder = flags.Acts.TrackingGeometry.MaterialCalibrationFolder
107  actsTrackingGeometrySvc.MaterialMapInputFile = \
108  "material-maps-" + flags.GeoModel.AtlasVersion + "-" + extension + ".json"
109 
110  elif flags.Acts.TrackingGeometry.MaterialSource.find(".json") != -1:
111  actsTrackingGeometrySvc.UseMaterialMap = True
112  actsTrackingGeometrySvc.MaterialMapCalibFolder = flags.Acts.TrackingGeometry.MaterialCalibrationFolder
113  actsTrackingGeometrySvc.MaterialMapInputFile = flags.Acts.TrackingGeometry.MaterialSource
114 
115  if flags.Acts.TrackingGeometry.InsertITkPassiveMaterialLayers:
116  actsTrackingGeometrySvc.PassiveITkInnerPixelBarrelLayerRadii = flags.Acts.TrackingGeometry.PassiveITkInnerPixelBarrelLayerRadii
117  actsTrackingGeometrySvc.PassiveITkInnerPixelBarrelLayerHalflengthZ = flags.Acts.TrackingGeometry.PassiveITkInnerPixelBarrelLayerHalflengthZ
118  actsTrackingGeometrySvc.PassiveITkInnerPixelBarrelLayerThickness = flags.Acts.TrackingGeometry.PassiveITkInnerPixelBarrelLayerThickness
119  actsTrackingGeometrySvc.PassiveITkOuterPixelBarrelLayerRadii = flags.Acts.TrackingGeometry.PassiveITkOuterPixelBarrelLayerRadii
120  actsTrackingGeometrySvc.PassiveITkOuterPixelBarrelLayerHalflengthZ = flags.Acts.TrackingGeometry.PassiveITkOuterPixelBarrelLayerHalflengthZ
121  actsTrackingGeometrySvc.PassiveITkOuterPixelBarrelLayerThickness = flags.Acts.TrackingGeometry.PassiveITkOuterPixelBarrelLayerThickness
122  actsTrackingGeometrySvc.PassiveITkStripBarrelLayerRadii = flags.Acts.TrackingGeometry.PassiveITkStripBarrelLayerRadii
123  actsTrackingGeometrySvc.PassiveITkStripBarrelLayerHalflengthZ = flags.Acts.TrackingGeometry.PassiveITkStripBarrelLayerHalflengthZ
124  actsTrackingGeometrySvc.PassiveITkStripBarrelLayerThickness = flags.Acts.TrackingGeometry.PassiveITkStripBarrelLayerThickness
125 
126 
127 
128  acc.addService(actsTrackingGeometrySvc, primary = True)
129  return acc
130 
131 
133  name: str = "ActsPropStepRootWriterSvc",
134  **kwargs) -> ComponentAccumulator:
135  acc = ComponentAccumulator()
136  acc.addService(CompFactory.ActsPropStepRootWriterSvc(name, **kwargs))
137  return acc
138 
139 
141  name: str = "ActsTrackingGeometryTool" ) -> ComponentAccumulator:
142  acc = ComponentAccumulator()
143  acc.merge(ActsTrackingGeometrySvcCfg(flags))
144  from ActsAlignmentAlgs.AlignmentAlgsConfig import ActsGeometryContextAlgCfg
145  acc.merge(ActsGeometryContextAlgCfg(flags))
146  acc.addPublicTool(CompFactory.ActsTrackingGeometryTool(name), primary = True)
147  return acc
148 
150  name: str = "ActsExtrapolationTool",
151  **kwargs) -> ComponentAccumulator:
152  acc = ComponentAccumulator()
153  from MagFieldServices.MagFieldServicesConfig import AtlasFieldCacheCondAlgCfg
154  acc.merge(AtlasFieldCacheCondAlgCfg(flags))
155  kwargs.setdefault("TrackingGeometryTool", acc.getPrimaryAndMerge(ActsTrackingGeometryToolCfg(flags))) # PrivateToolHandle
156  acc.setPrivateTools(CompFactory.ActsExtrapolationTool(name, **kwargs))
157  return acc
158 
159 
161  name: str = "ActsMaterialTrackWriterSvc",
162  **kwargs) -> ComponentAccumulator:
163  acc = ComponentAccumulator()
164  acc.merge(ActsTrackingGeometrySvcCfg(flags))
165  acc.addService(CompFactory.ActsMaterialTrackWriterSvc(name, **kwargs), primary=True)
166  return acc
167 
168 
170  name: str = "ActsMaterialStepConverterTool",
171  **kwargs ) -> ComponentAccumulator:
172  acc = ComponentAccumulator()
173  acc.addPublicTool(CompFactory.ActsMaterialStepConverterTool(name, **kwargs), primary=True)
174  return acc
175 
176 
178  name: str = "ActsSurfaceMappingTool",
179  **kwargs ) -> ComponentAccumulator:
180  acc = ComponentAccumulator()
181  kwargs.setdefault("TrackingGeometryTool", acc.getPrimaryAndMerge(ActsTrackingGeometryToolCfg(flags))) # PrivateToolHandle
182  acc.addPublicTool(CompFactory.ActsSurfaceMappingTool(name, **kwargs), primary=True)
183  return acc
184 
185 
187  name: str = "ActsVolumeMappingTool",
188  **kwargs ) -> ComponentAccumulator:
189  acc = ComponentAccumulator()
190  kwargs.setdefault("TrackingGeometryTool", acc.getPrimaryAndMerge(ActsTrackingGeometryToolCfg(flags))) # PrivateToolHandle
191  acc.addPublicTool(CompFactory.ActsVolumeMappingTool(name, **kwargs), primary=True)
192  return acc
193 
194 
196  name: str = "ActsMaterialJsonWriterTool",
197  **kwargs) -> ComponentAccumulator:
198  acc = ComponentAccumulator()
199  acc.addPublicTool(CompFactory.ActsMaterialJsonWriterTool(name, **kwargs), primary=True)
200  return acc
201 
202 
204  name: str = "ActsObjWriterTool",
205  **kwargs) -> ComponentAccumulator:
206  acc = ComponentAccumulator()
207  acc.addPublicTool(CompFactory.ActsObjWriterTool(name, **kwargs), primary=True)
208  return acc
209 
210 
212  name: str = "ActsExtrapolationAlg",
213  **kwargs) -> ComponentAccumulator:
214  acc = ComponentAccumulator()
215 
216  if "ExtrapolationTool" not in kwargs:
217  kwargs.setdefault("ExtrapolationTool", acc.popToolsAndMerge(ActsExtrapolationToolCfg(flags))) # PrivateToolHandle
218 
219  acc.merge(ActsPropStepRootWriterSvcCfg(flags, FilePath="propsteps.root", TreeName="propsteps"))
220  acc.addEventAlgo(CompFactory.ActsExtrapolationAlg(name, **kwargs))
221  return acc
222 
224  name: str = "ActsWriteTrackingGeometry",
225  **kwargs) -> ComponentAccumulator:
226  acc = ComponentAccumulator()
227 
228  if 'TrackingGeometryTool' not in kwargs:
229  kwargs.setdefault("TrackingGeometryTool", acc.getPrimaryAndMerge(ActsTrackingGeometryToolCfg(flags))) # PrivateToolHandle
230 
231  if 'MaterialJsonWriterTool' not in kwargs:
232  kwargs.setdefault("MaterialJsonWriterTool", acc.getPrimaryAndMerge(ActsMaterialJsonWriterToolCfg(flags,
233  OutputFile = "geometry-maps.json",
234  processSensitives = False,
235  processNonMaterial = True) ))
236 
237  subDetectors = []
238  if flags.Detector.GeometryBpipe:
239  subDetectors = ["BeamPipe"]
240 
241  if flags.Detector.GeometryPixel:
242  subDetectors += ["Pixel"]
243  if flags.Detector.GeometryITkPixel:
244  subDetectors += ["ITkPixel"]
245 
246  if flags.Detector.GeometrySCT:
247  subDetectors += ["SCT"]
248  if flags.Detector.GeometryITkStrip:
249  subDetectors += ["ITkStrip"]
250  if flags.Detector.GeometryHGTD:
251  subDetectors += ["HGTD"]
252 
253  if 'ObjWriterTool' not in kwargs:
254  kwargs.setdefault("ObjWriterTool",
255  acc.getPrimaryAndMerge(ActsObjWriterToolCfg(flags,
256  OutputDirectory = "obj",
257  SubDetectors = subDetectors) ))
258 
259  acc.addEventAlgo(CompFactory.ActsWriteTrackingGeometry(name, **kwargs))
260  return acc
261 
263  name: str = "ActsWriteTrackingGeometryTransformsAlg",
264  **kwargs: dict) -> ComponentAccumulator:
265  acc = ComponentAccumulator()
266 
267  if 'TrackingGeometryTool' not in kwargs:
268  kwargs.setdefault("TrackingGeometryTool", acc.getPrimaryAndMerge(ActsTrackingGeometryToolCfg(flags))) # PrivateToolHandle
269 
270  acc.addEventAlgo(CompFactory.ActsWriteTrackingGeometryTransforms(name,**kwargs))
271  return acc
272 
274  name: str = "ActsMaterialMapping",
275  **kwargs) -> ComponentAccumulator:
276  acc = ComponentAccumulator()
277 
278  if 'MaterialStepConverterTool' not in kwargs:
279  kwargs.setdefault("MaterialStepConverterTool", acc.getPrimaryAndMerge(ActsMaterialStepConverterToolCfg(flags)))
280 
281  if 'SurfaceMappingTool' not in kwargs:
282  kwargs.setdefault("SurfaceMappingTool", acc.getPrimaryAndMerge(ActsSurfaceMappingToolCfg(flags)))
283 
284  if 'VolumeMappingTool' not in kwargs:
285  kwargs.setdefault("VolumeMappingTool", acc.getPrimaryAndMerge(ActsVolumeMappingToolCfg(flags)))
286 
287  if 'MaterialJsonWriterTool' not in kwargs:
288  kwargs.setdefault("MaterialJsonWriterTool",
289  acc.getPrimaryAndMerge( ActsMaterialJsonWriterToolCfg(flags,
290  OutputFile = "material-maps.json",
291  processSensitives = False,
292  processNonMaterial = False) ))
293 
294  acc.addEventAlgo(CompFactory.ActsMaterialMapping(name, **kwargs))
295  return acc
296 
298  name: str = "ActsVolumeIdToDetectorCollectionMappingAlgCfg",
299  **kwargs) -> ComponentAccumulator:
300  acc = ComponentAccumulator()
301  if 'TrackingGeometryTool' not in kwargs :
302  kwargs.setdefault('TrackingGeometryTool',
303  acc.getPrimaryAndMerge(ActsTrackingGeometryToolCfg(flags)))
304  kwargs.setdefault('ActsVolumeIdToDetectorElementCollectionMap', 'VolumeIdToDetectorElementCollectionMap')
305 
306  def filterCollections(flags, pixel_det_el, strip_det_el) :
307  ret=[]
308  if flags.Detector.GeometryITkPixel:
309  ret += [ pixel_det_el ]
310  if flags.Detector.GeometryITkStrip:
311  ret += [ strip_det_el ]
312  return ret
313  kwargs.setdefault('DetectorElementsKeys', filterCollections( flags,
314  'ITkPixelDetectorElementCollection',
315  'ITkStripDetectorElementCollection'))
316 
317  acc.addCondAlgo(CompFactory.ActsTrk.ActsVolumeIdToDetectorElementCollectionMappingAlg(name, **kwargs))
318  return acc
319 
321  name: str = "ItkBlueprintNodeBuilder",
322  **kwargs) -> ComponentAccumulator:
323  result = ComponentAccumulator()
324  the_tool = CompFactory.ActsTrk.ItkBlueprintNodeBuilder(name, **kwargs)
325  result.setPrivateTools(the_tool)
326  return result
327 
ActsGeometryConfig.ActsTrackingGeometrySvcCfg
ComponentAccumulator ActsTrackingGeometrySvcCfg(flags, str name="ActsTrackingGeometrySvc", **kwargs)
Definition: ActsGeometryConfig.py:6
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
BeamPipeGMConfig.BeamPipeGeometryCfg
def BeamPipeGeometryCfg(flags)
Definition: BeamPipeGMConfig.py:5
ActsMuonDetectorCfg.MuonBlueprintNodeBuilderCfg
def MuonBlueprintNodeBuilderCfg(flags, name="MuonBlueprintNodeBuilder", **kwargs)
Definition: ActsMuonDetectorCfg.py:22
TRT_GeoModelConfig.TRT_ReadoutGeometryCfg
def TRT_ReadoutGeometryCfg(flags)
Definition: TRT_GeoModelConfig.py:59
ITkStripGeoModelConfig.ITkStripReadoutGeometryCfg
def ITkStripReadoutGeometryCfg(flags)
Definition: ITkStripGeoModelConfig.py:43
ActsGeometryConfig.ActsPropStepRootWriterSvcCfg
ComponentAccumulator ActsPropStepRootWriterSvcCfg(flags, str name="ActsPropStepRootWriterSvc", **kwargs)
Definition: ActsGeometryConfig.py:132
ITkPixelGeoModelConfig.ITkPixelReadoutGeometryCfg
def ITkPixelReadoutGeometryCfg(flags)
Definition: ITkPixelGeoModelConfig.py:39
ActsGeometryConfig.ItkBlueprintNodeBuilderCfg
ComponentAccumulator ItkBlueprintNodeBuilderCfg(flags, str name="ItkBlueprintNodeBuilder", **kwargs)
Definition: ActsGeometryConfig.py:320
ActsGeometryConfig.ActsMaterialTrackWriterSvcCfg
ComponentAccumulator ActsMaterialTrackWriterSvcCfg(flags, str name="ActsMaterialTrackWriterSvc", **kwargs)
Definition: ActsGeometryConfig.py:160
ActsGeometryConfig.ActsVolumeIdToDetectorCollectionMappingAlgCfg
ComponentAccumulator ActsVolumeIdToDetectorCollectionMappingAlgCfg(flags, str name="ActsVolumeIdToDetectorCollectionMappingAlgCfg", **kwargs)
Definition: ActsGeometryConfig.py:297
ActsGeometryConfig.ActsExtrapolationAlgCfg
ComponentAccumulator ActsExtrapolationAlgCfg(flags, str name="ActsExtrapolationAlg", **kwargs)
Definition: ActsGeometryConfig.py:211
ActsGeometryConfig.ActsObjWriterToolCfg
ComponentAccumulator ActsObjWriterToolCfg(flags, str name="ActsObjWriterTool", **kwargs)
Definition: ActsGeometryConfig.py:203
ActsGeometryConfig.ActsWriteTrackingGeometryCfg
ComponentAccumulator ActsWriteTrackingGeometryCfg(flags, str name="ActsWriteTrackingGeometry", **kwargs)
Definition: ActsGeometryConfig.py:223
ActsGeometryConfig.ActsWriteTrackingGeometryTransformsAlgCfg
ComponentAccumulator ActsWriteTrackingGeometryTransformsAlgCfg(flags, str name="ActsWriteTrackingGeometryTransformsAlg", **dict kwargs)
Definition: ActsGeometryConfig.py:262
SCT_GeoModelConfig.SCT_ReadoutGeometryCfg
def SCT_ReadoutGeometryCfg(flags)
Definition: SCT_GeoModelConfig.py:50
MuonGeometryConfig.MuonGeoModelCfg
def MuonGeoModelCfg(flags)
Definition: MuonGeometryConfig.py:28
ActsGeometryConfig.ActsExtrapolationToolCfg
ComponentAccumulator ActsExtrapolationToolCfg(flags, str name="ActsExtrapolationTool", **kwargs)
Definition: ActsGeometryConfig.py:149
AlignmentAlgsConfig.ActsGeometryContextAlgCfg
def ActsGeometryContextAlgCfg(flags, name="GeometryContextAlg", **kwargs)
Setup the Geometry context algorithm.
Definition: AlignmentAlgsConfig.py:125
ActsGeometryConfig.ActsMaterialMappingCfg
ComponentAccumulator ActsMaterialMappingCfg(flags, str name="ActsMaterialMapping", **kwargs)
Definition: ActsGeometryConfig.py:273
HGTD_GeoModelConfig.HGTD_ReadoutGeometryCfg
def HGTD_ReadoutGeometryCfg(flags)
Definition: python/HGTD_GeoModelConfig.py:23
ActsGeometryConfig.ActsTrackingGeometryToolCfg
ComponentAccumulator ActsTrackingGeometryToolCfg(flags, str name="ActsTrackingGeometryTool")
Definition: ActsGeometryConfig.py:140
LArGMConfig.LArGMCfg
def LArGMCfg(flags)
Definition: LArGMConfig.py:8
PixelGeoModelConfig.PixelReadoutGeometryCfg
def PixelReadoutGeometryCfg(flags)
Definition: PixelGeoModelConfig.py:52
ActsGeometryConfig.ActsVolumeMappingToolCfg
ComponentAccumulator ActsVolumeMappingToolCfg(flags, str name="ActsVolumeMappingTool", **kwargs)
Definition: ActsGeometryConfig.py:186
ActsGeometryConfig.ActsMaterialJsonWriterToolCfg
ComponentAccumulator ActsMaterialJsonWriterToolCfg(flags, str name="ActsMaterialJsonWriterTool", **kwargs)
Definition: ActsGeometryConfig.py:195
ActsGeometryConfig.ActsMaterialStepConverterToolCfg
ComponentAccumulator ActsMaterialStepConverterToolCfg(flags, str name="ActsMaterialStepConverterTool", **kwargs)
Definition: ActsGeometryConfig.py:169
ActsGeometryConfig.ActsSurfaceMappingToolCfg
ComponentAccumulator ActsSurfaceMappingToolCfg(flags, str name="ActsSurfaceMappingTool", **kwargs)
Definition: ActsGeometryConfig.py:177
python.MagFieldServicesConfig.AtlasFieldCacheCondAlgCfg
def AtlasFieldCacheCondAlgCfg(flags, **kwargs)
Definition: MagFieldServicesConfig.py:8
ActsMuonDetectorCfg.MsTrackingVolumeBuilderCfg
def MsTrackingVolumeBuilderCfg(flags, name="MSTrackingVolumeBuilder", **kwargs)
Definition: ActsMuonDetectorCfg.py:14
TileGMConfig.TileGMCfg
def TileGMCfg(flags)
Definition: TileGMConfig.py:7