ATLAS Offline Software
Loading...
Searching...
No Matches
ActsGeometryConfig.py
Go to the documentation of this file.
1# Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
2from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
3from AthenaConfiguration.ComponentFactory import CompFactory
4
5
7 name: str = "ActsTrackingGeometrySvc",
8 **kwargs) -> ComponentAccumulator:
9 acc = 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 = "ActsMaterialJsonWriterTool",
162 **kwargs) -> ComponentAccumulator:
163 acc = ComponentAccumulator()
164 acc.addPublicTool(CompFactory.ActsMaterialJsonWriterTool(name, **kwargs), primary=True)
165 return acc
166
167
169 name: str = "ActsObjWriterTool",
170 **kwargs) -> ComponentAccumulator:
171 acc = ComponentAccumulator()
172 acc.addPublicTool(CompFactory.ActsObjWriterTool(name, **kwargs), primary=True)
173 return acc
174
175
177 name: str = "ActsExtrapolationAlg",
178 **kwargs) -> ComponentAccumulator:
179 acc = ComponentAccumulator()
180
181 if "ExtrapolationTool" not in kwargs:
182 kwargs.setdefault("ExtrapolationTool", acc.popToolsAndMerge(ActsExtrapolationToolCfg(flags))) # PrivateToolHandle
183
184 acc.merge(ActsPropStepRootWriterSvcCfg(flags, FilePath="propsteps.root", TreeName="propsteps"))
185 acc.addEventAlgo(CompFactory.ActsExtrapolationAlg(name, **kwargs))
186 return acc
187
189 name: str = "ActsWriteTrackingGeometry",
190 **kwargs) -> ComponentAccumulator:
191 acc = ComponentAccumulator()
192
193 if 'TrackingGeometryTool' not in kwargs:
194 kwargs.setdefault("TrackingGeometryTool", acc.getPrimaryAndMerge(ActsTrackingGeometryToolCfg(flags))) # PrivateToolHandle
195
196 if 'MaterialJsonWriterTool' not in kwargs:
197 kwargs.setdefault("MaterialJsonWriterTool", acc.getPrimaryAndMerge(ActsMaterialJsonWriterToolCfg(flags,
198 OutputFile = "geometry-maps.json",
199 processSensitives = False,
200 processNonMaterial = True) ))
201
202 subDetectors = []
203 if flags.Detector.GeometryBpipe:
204 subDetectors = ["BeamPipe"]
205
206 if flags.Detector.GeometryPixel:
207 subDetectors += ["Pixel"]
208 if flags.Detector.GeometryITkPixel:
209 subDetectors += ["ITkPixel"]
210
211 if flags.Detector.GeometrySCT:
212 subDetectors += ["SCT"]
213 if flags.Detector.GeometryITkStrip:
214 subDetectors += ["ITkStrip"]
215 if flags.Detector.GeometryHGTD:
216 subDetectors += ["HGTD"]
217
218 acc.addEventAlgo(CompFactory.ActsWriteTrackingGeometry(name, **kwargs))
219 return acc
220
222 name: str = "ActsWriteTrackingGeometryTransformsAlg",
223 **kwargs: dict) -> ComponentAccumulator:
224 acc = ComponentAccumulator()
225
226 if 'TrackingGeometryTool' not in kwargs:
227 kwargs.setdefault("TrackingGeometryTool", acc.getPrimaryAndMerge(ActsTrackingGeometryToolCfg(flags))) # PrivateToolHandle
228
229 acc.addEventAlgo(CompFactory.ActsWriteTrackingGeometryTransforms(name,**kwargs))
230 return acc
231
233 name: str = "ActsVolumeIdToDetectorCollectionMappingAlgCfg",
234 **kwargs) -> ComponentAccumulator:
235 acc = ComponentAccumulator()
236 if 'TrackingGeometryTool' not in kwargs :
237 kwargs.setdefault('TrackingGeometryTool',
238 acc.getPrimaryAndMerge(ActsTrackingGeometryToolCfg(flags)))
239 kwargs.setdefault('ActsVolumeIdToDetectorElementCollectionMap', 'VolumeIdToDetectorElementCollectionMap')
240
241 def filterCollections(flags, pixel_det_el, strip_det_el) :
242 ret=[]
243 if flags.Detector.GeometryITkPixel:
244 ret += [ pixel_det_el ]
245 if flags.Detector.GeometryITkStrip:
246 ret += [ strip_det_el ]
247 return ret
248 kwargs.setdefault('DetectorElementsKeys', filterCollections( flags,
249 'ITkPixelDetectorElementCollection',
250 'ITkStripDetectorElementCollection'))
251
252 acc.addCondAlgo(CompFactory.ActsTrk.ActsVolumeIdToDetectorElementCollectionMappingAlg(name, **kwargs))
253 return acc
254
256 name: str = "ItkBlueprintNodeBuilder",
257 **kwargs) -> ComponentAccumulator:
258 result = ComponentAccumulator()
259 the_tool = CompFactory.ActsTrk.ItkBlueprintNodeBuilder(name, **kwargs)
260 result.setPrivateTools(the_tool)
261 return result
262
264 name: str = "CaloBlueprintNodeBuilder",
265 **kwargs) -> ComponentAccumulator:
266 result = ComponentAccumulator()
267 the_tool = CompFactory.ActsTrk.CaloBlueprintNodeBuilder(name, **kwargs)
268 result.setPrivateTools(the_tool)
269 return result
270
ComponentAccumulator ActsTrackingGeometryToolCfg(flags, str name="ActsTrackingGeometryTool")
ComponentAccumulator ActsWriteTrackingGeometryCfg(flags, str name="ActsWriteTrackingGeometry", **kwargs)
ComponentAccumulator ActsPropStepRootWriterSvcCfg(flags, str name="ActsPropStepRootWriterSvc", **kwargs)
ComponentAccumulator caloBlueprintNodeBuilderCfg(flags, str name="CaloBlueprintNodeBuilder", **kwargs)
ComponentAccumulator ActsVolumeIdToDetectorCollectionMappingAlgCfg(flags, str name="ActsVolumeIdToDetectorCollectionMappingAlgCfg", **kwargs)
ComponentAccumulator ActsTrackingGeometrySvcCfg(flags, str name="ActsTrackingGeometrySvc", **kwargs)
ComponentAccumulator ActsMaterialJsonWriterToolCfg(flags, str name="ActsMaterialJsonWriterTool", **kwargs)
ComponentAccumulator ActsExtrapolationAlgCfg(flags, str name="ActsExtrapolationAlg", **kwargs)
ComponentAccumulator ItkBlueprintNodeBuilderCfg(flags, str name="ItkBlueprintNodeBuilder", **kwargs)
ComponentAccumulator ActsExtrapolationToolCfg(flags, str name="ActsExtrapolationTool", **kwargs)
ComponentAccumulator ActsWriteTrackingGeometryTransformsAlgCfg(flags, str name="ActsWriteTrackingGeometryTransformsAlg", **dict kwargs)
ComponentAccumulator ActsObjWriterToolCfg(flags, str name="ActsObjWriterTool", **kwargs)