ATLAS Offline Software
Loading...
Searching...
No Matches
AtlasTrackingGeometrySvcConfig.py
Go to the documentation of this file.
1# Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
2
3from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
4from AthenaConfiguration.ComponentFactory import CompFactory
5from AthenaConfiguration.Enums import ProductionStep
6
7def TrackingGeometrySvcCfg(flags , name = 'AtlasTrackingGeometrySvc',
8 doMaterialValidation=False,
9 **kwargs):
10 """
11 Sets up the Tracking Geometry Service
12 """
13 if not (flags.Common.ProductionStep in [ProductionStep.Simulation, ProductionStep.FastChain] or
14 flags.Sim.ISFRun is True):
15 from AthenaCommon.Logging import logging
16 mlog = logging.getLogger("TrackingGeometrySvcCfg")
17 mlog.warning(
18 " TrackingGeometrySvc is to be deprecated in favour of TrackingGeometryCondAlg")
19
20 result = ComponentAccumulator()
21
22 from TrackingGeometryCondAlg.AtlasTrackingGeometryCondAlgConfig import (
23 GeometryBuilderCfg)
24 kwargs.setdefault("GeometryBuilder", result.popToolsAndMerge(
25 GeometryBuilderCfg(flags, useCond=False)))
26
27 # Now set up processors
28 atlas_geometry_processors=[] # array of private ToolHandles
29
30 if flags.TrackingGeometry.MaterialSource == 'COOL':
31 CoolDataBaseFolder = '/GLOBAL/TrackingGeo/LayerMaterialV2'
32 if flags.Detector.GeometryITk:
33 CoolDataBaseFolder = '/GLOBAL/TrackingGeo/LayerMaterialITK'
34
35 from TrackingGeometryCondAlg.TrkDetDescrToolsConfig import (
36 LayerMaterialProviderCfg)
37 atlas_geometry_processors += [ result.popToolsAndMerge(
38 LayerMaterialProviderCfg(flags, name='AtlasMaterialProvider',
39 LayerMaterialMapName = CoolDataBaseFolder,
40 LayerMaterialMapKey = '')) ] # Different from AtlasTrackingGeometryCondAlgConfig
41
42 # Setup DBs
43 from TrackingGeometryCondAlg.AtlasTrackingGeometryCondAlgConfig import _setupCondDB
44 result.merge(_setupCondDB(flags, CoolDataBaseFolder))
45
46 elif flags.TrackingGeometry.MaterialSource == 'Input':
47 from TrackingGeometryCondAlg.TrkDetDescrToolsConfig import (
48 InputLayerMaterialProviderCfg)
49 atlas_geometry_processors += [ result.popToolsAndMerge(
50 InputLayerMaterialProviderCfg(flags)) ]
51
52 if doMaterialValidation:
53 from TrackingGeometryCondAlg.TrkDetDescrToolsConfig import (
54 LayerMaterialInspectorCfg)
55 atlas_geometry_processors += [ result.popToolsAndMerge(
56 LayerMaterialInspectorCfg(flags)) ]
57
58 from GaudiKernel.GaudiHandles import PrivateToolHandleArray
59 kwargs.setdefault("GeometryProcessors", PrivateToolHandleArray(
60 atlas_geometry_processors))
61 kwargs.setdefault("TrackingGeometryName", 'AtlasTrackingGeometry')
62 kwargs.setdefault("BuildGeometryFromTagInfo", True)
63
64 result.addService(CompFactory.Trk.TrackingGeometrySvc(name, **kwargs),
65 primary = True)
66
67 return result
68
69if __name__ == '__main__':
70 from AthenaConfiguration.AllConfigFlags import initConfigFlags
71 flags = initConfigFlags()
72
73 from AthenaConfiguration.TestDefaults import defaultTestFiles, defaultGeometryTags
74 flags.Input.Files = defaultTestFiles.RAW_RUN2
75 flags.GeoModel.AtlasVersion = defaultGeometryTags.RUN2
76 flags.lock()
77
79
80 f=open('TrackingGeometrySvcCfg.pkl','wb')
81 acc.store(f)
82 f.close()
TrackingGeometrySvcCfg(flags, name='AtlasTrackingGeometrySvc', doMaterialValidation=False, **kwargs)