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  #No non-blueprint mode exists for calo, so all we do here is
45  #to setup both the LAr and Tile geometry to enable access to the
46  #CaloDetDescrManager geometry information. This is needed
47  #for the Acts calo blueprint builder tool
48  #Note that in blueprint mode the calo geometry is built
49  #in initialize of the TrackingGeometrySvc and so we use
50  #a static calo geometry. To avoid errors the flag Lar.doAlign
51  #must be set to false (when flag values are set)
52  from LArGeoAlgsNV.LArGMConfig import LArGMCfg
53  acc.merge(LArGMCfg(flags))
54  from TileGeoModel.TileGMConfig import TileGMCfg
55  acc.merge(TileGMCfg(flags))
56 
57  #first add the itk builder and then the muon system - this is the correct order
58  if flags.Acts.TrackingGeometry.UseBlueprint:
59  if flags.Detector.GeometryITkPixel or flags.Detector.GeometryITkStrip:
60  blueprintTools += [acc.popToolsAndMerge(ItkBlueprintNodeBuilderCfg(flags))]
61  if flags.Detector.GeometryCalo:
62  subDetectors += ["Calo"]
63  blueprintTools += [acc.popToolsAndMerge(caloBlueprintNodeBuilderCfg(flags))]
64  if flags.Detector.GeometryMuon:
65  subDetectors += ["Muon"]
66  from MuonConfig.MuonGeometryConfig import MuonGeoModelCfg
67  acc.merge(MuonGeoModelCfg(flags))
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.ActsTrk.ExtrapolationTool(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  acc.addEventAlgo(CompFactory.ActsWriteTrackingGeometry(name, **kwargs))
254  return acc
255 
257  name: str = "ActsWriteTrackingGeometryTransformsAlg",
258  **kwargs: dict) -> ComponentAccumulator:
259  acc = ComponentAccumulator()
260 
261  if 'TrackingGeometryTool' not in kwargs:
262  kwargs.setdefault("TrackingGeometryTool", acc.getPrimaryAndMerge(ActsTrackingGeometryToolCfg(flags))) # PrivateToolHandle
263 
264  acc.addEventAlgo(CompFactory.ActsWriteTrackingGeometryTransforms(name,**kwargs))
265  return acc
266 
268  name: str = "ActsMaterialMapping",
269  **kwargs) -> ComponentAccumulator:
270  acc = ComponentAccumulator()
271 
272  if 'MaterialStepConverterTool' not in kwargs:
273  kwargs.setdefault("MaterialStepConverterTool", acc.getPrimaryAndMerge(ActsMaterialStepConverterToolCfg(flags)))
274 
275  if 'SurfaceMappingTool' not in kwargs:
276  kwargs.setdefault("SurfaceMappingTool", acc.getPrimaryAndMerge(ActsSurfaceMappingToolCfg(flags)))
277 
278  if 'VolumeMappingTool' not in kwargs:
279  kwargs.setdefault("VolumeMappingTool", acc.getPrimaryAndMerge(ActsVolumeMappingToolCfg(flags)))
280 
281  if 'MaterialJsonWriterTool' not in kwargs:
282  kwargs.setdefault("MaterialJsonWriterTool",
283  acc.getPrimaryAndMerge( ActsMaterialJsonWriterToolCfg(flags,
284  OutputFile = "material-maps.json",
285  processSensitives = False,
286  processNonMaterial = False) ))
287 
288  acc.addEventAlgo(CompFactory.ActsMaterialMapping(name, **kwargs))
289  return acc
290 
292  name: str = "ActsVolumeIdToDetectorCollectionMappingAlgCfg",
293  **kwargs) -> ComponentAccumulator:
294  acc = ComponentAccumulator()
295  if 'TrackingGeometryTool' not in kwargs :
296  kwargs.setdefault('TrackingGeometryTool',
297  acc.getPrimaryAndMerge(ActsTrackingGeometryToolCfg(flags)))
298  kwargs.setdefault('ActsVolumeIdToDetectorElementCollectionMap', 'VolumeIdToDetectorElementCollectionMap')
299 
300  def filterCollections(flags, pixel_det_el, strip_det_el) :
301  ret=[]
302  if flags.Detector.GeometryITkPixel:
303  ret += [ pixel_det_el ]
304  if flags.Detector.GeometryITkStrip:
305  ret += [ strip_det_el ]
306  return ret
307  kwargs.setdefault('DetectorElementsKeys', filterCollections( flags,
308  'ITkPixelDetectorElementCollection',
309  'ITkStripDetectorElementCollection'))
310 
311  acc.addCondAlgo(CompFactory.ActsTrk.ActsVolumeIdToDetectorElementCollectionMappingAlg(name, **kwargs))
312  return acc
313 
315  name: str = "ItkBlueprintNodeBuilder",
316  **kwargs) -> ComponentAccumulator:
317  result = ComponentAccumulator()
318  the_tool = CompFactory.ActsTrk.ItkBlueprintNodeBuilder(name, **kwargs)
319  result.setPrivateTools(the_tool)
320  return result
321 
323  name: str = "CaloBlueprintNodeBuilder",
324  **kwargs) -> ComponentAccumulator:
325  result = ComponentAccumulator()
326  the_tool = CompFactory.ActsTrk.CaloBlueprintNodeBuilder(name, **kwargs)
327  result.setPrivateTools(the_tool)
328  return result
329 
ActsGeometryConfig.ActsTrackingGeometrySvcCfg
ComponentAccumulator ActsTrackingGeometrySvcCfg(flags, str name="ActsTrackingGeometrySvc", **kwargs)
Definition: ActsGeometryConfig.py:6
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:342
BeamPipeGMConfig.BeamPipeGeometryCfg
def BeamPipeGeometryCfg(flags)
Definition: BeamPipeGMConfig.py:5
ActsMuonDetectorCfg.MuonBlueprintNodeBuilderCfg
def MuonBlueprintNodeBuilderCfg(flags, name="MuonBlueprintNodeBuilder", **kwargs)
Definition: ActsMuonDetectorCfg.py:5
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:132
ITkPixelGeoModelConfig.ITkPixelReadoutGeometryCfg
def ITkPixelReadoutGeometryCfg(flags)
Definition: ITkPixelGeoModelConfig.py:39
ActsGeometryConfig.ItkBlueprintNodeBuilderCfg
ComponentAccumulator ItkBlueprintNodeBuilderCfg(flags, str name="ItkBlueprintNodeBuilder", **kwargs)
Definition: ActsGeometryConfig.py:314
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:291
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:256
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:109
ActsGeometryConfig.ActsMaterialMappingCfg
ComponentAccumulator ActsMaterialMappingCfg(flags, str name="ActsMaterialMapping", **kwargs)
Definition: ActsGeometryConfig.py:267
ActsGeometryConfig.caloBlueprintNodeBuilderCfg
ComponentAccumulator caloBlueprintNodeBuilderCfg(flags, str name="CaloBlueprintNodeBuilder", **kwargs)
Definition: ActsGeometryConfig.py:322
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
TileGMConfig.TileGMCfg
def TileGMCfg(flags)
Definition: TileGMConfig.py:7