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