ATLAS Offline Software
AtlasTrackingGeometryCondAlgConfig.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2 
3 from AthenaConfiguration.AccumulatorCache import AccumulatorCache
4 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
5 from AthenaConfiguration.ComponentFactory import CompFactory
6 from AthenaConfiguration.Enums import LHCPeriod
7 
8 def _setupCondDB(flags, CoolDataBaseFolder, quiet=True):
9 
10  result = ComponentAccumulator()
11 
12  # the tag names
13  materialTagBase = 'AtlasLayerMat_v'
14  version = 21
15  sub_version = ''
16 
17  # Tag an input tag of form TagInfo{Major|Minor}/<tag> or TagInfo(Major|Minor}/<prefix>/<tag>
18  # The tag information string defines how to handle the GeoAtlas in the TagInfo manager
19  # TagInfo : uses the geometry tag as is
20  # TagInfoMajor : only uses the major version of the geometry tag
21  # TagInfoMinor : uses both major and minor version of the geometry tag
22 
23  atlasMaterialTag = materialTagBase + str(version) + sub_version
24  cfolder = CoolDataBaseFolder + '<tag>TagInfoMajor/' + \
25  atlasMaterialTag + '_/GeoAtlas</tag>'
26 
27  if flags.GeoModel.Run < LHCPeriod.Run4:
28  # load the right folders
29  from IOVDbSvc.IOVDbSvcConfig import addFoldersSplitOnline
30  result.merge(addFoldersSplitOnline(
31  flags, 'GLOBAL', [cfolder], [cfolder],
32  splitMC=True, className='Trk::LayerMaterialMap'))
33 
34  #redefine tag and folder for ITk, as we use a different schema
35  else:
36  atlasMaterialTag = flags.ITk.trackingGeometry.materialTag + \
37  str(flags.ITk.trackingGeometry.version)
38  if flags.ITk.trackingGeometry.loadLocalDbForMaterialMaps:
39  DataBaseName = flags.ITk.trackingGeometry.localDatabaseName
40  from IOVDbSvc.IOVDbSvcConfig import addFolders
41  result.merge(addFolders(flags,
42  "/GLOBAL/TrackingGeo/LayerMaterialITK",
43  detDb=DataBaseName,
44  tag=atlasMaterialTag,
45  className='Trk::LayerMaterialMap'))
46  else:
47  materialFileTag = atlasMaterialTag + '_'+ \
48  flags.GeoModel.AtlasVersion
49  from IOVDbSvc.IOVDbSvcConfig import addFolders
50  result.merge(addFolders(flags,
51  "/GLOBAL/TrackingGeo/LayerMaterialITK",
52  "GLOBAL_OFL",
53  tag=materialFileTag,
54  db="OFLP200",
55  className="Trk::LayerMaterialMap"))
56  return result
57 
58 def GeometryBuilderCfg(flags, name='AtlasGeometryBuilder',
59  useCond=True,
60  **kwargs):
61  result = ComponentAccumulator()
62 
63  kwargs.setdefault("WorldDimension", [])
64  kwargs.setdefault("WorldMaterialProperties", [])
65 
66  if "TrackingVolumeArrayCreator" not in kwargs:
67  from TrackingGeometryCondAlg.TrkDetDescrToolsConfig import (
68  TrackingVolumeArrayCreatorCfg)
69  TrackingVolumeArrayCreator = result.popToolsAndMerge(
71  result.addPublicTool(TrackingVolumeArrayCreator)
72  kwargs.setdefault("TrackingVolumeArrayCreator",
73  TrackingVolumeArrayCreator)
74 
75  if "TrackingVolumeHelper" not in kwargs:
76  from TrackingGeometryCondAlg.TrkDetDescrToolsConfig import (
77  TrackingVolumeHelperCfg)
78  TrackingVolumeHelper = result.popToolsAndMerge(
80  result.addPublicTool(TrackingVolumeHelper)
81  kwargs.setdefault("TrackingVolumeHelper", TrackingVolumeHelper)
82 
83  # Depending on the job configuration, setup the various detector builders,
84  # and add to atlas_geometry_builder
85  if flags.Detector.GeometryID:
86  from TrackingGeometryCondAlg.InDetTrackingGeometryConfig import (
87  InDetTrackingGeometryBuilderCfg)
88  kwargs.setdefault(
89  "InDetTrackingGeometryBuilder", result.popToolsAndMerge(
90  InDetTrackingGeometryBuilderCfg(flags, useCond=useCond)))
91 
92  elif flags.Detector.GeometryITk:
93  from TrackingGeometryCondAlg.InDetTrackingGeometryConfig import (
94  ITkTrackingGeometryBuilderCfg)
95  kwargs.setdefault(
96  "InDetTrackingGeometryBuilder", result.popToolsAndMerge(
97  ITkTrackingGeometryBuilderCfg(flags, useCond=useCond)))
98 
99 
100  if flags.Detector.GeometryHGTD and useCond:
101  from TrackingGeometryCondAlg.HGTD_TrackingGeometryConfig import (
102  HGTD_TrackingGeometryBuilderCfg)
103  kwargs.setdefault(
104  "HGTD_TrackingGeometryBuilder", result.popToolsAndMerge(
106 
107  if flags.Detector.GeometryCalo:
108  from TrackingGeometryCondAlg.CaloTrackingGeometryConfig import (
109  CaloTrackingGeometryBuilderCfg)
110  kwargs.setdefault(
111  "CaloTrackingGeometryBuilder", result.popToolsAndMerge(
112  CaloTrackingGeometryBuilderCfg(flags, useCond=useCond)))
113 
114  if flags.Detector.GeometryMuon:
115  from TrackingGeometryCondAlg.MuonTrackingGeometryConfig import (
116  MuonTrackingGeometryBuilderCfg)
117  kwargs.setdefault(
118  "MuonTrackingGeometryBuilder", result.popToolsAndMerge(
119  MuonTrackingGeometryBuilderCfg(flags, useCond=useCond)))
120 
121  geometryBuilder = CompFactory.Trk.GeometryBuilderCond(name, **kwargs) \
122  if useCond else \
123  CompFactory.Trk.GeometryBuilder(name, **kwargs)
124  result.setPrivateTools(geometryBuilder)
125  return result
126 
127 @AccumulatorCache
128 def TrackingGeometryCondAlgCfg(flags, name='AtlasTrackingGeometryCondAlg',
129  doMaterialValidation=False,
130  **kwargs):
131  """
132  Sets up the Tracking Geometry Conditions Algorithm
133  """
134  result = ComponentAccumulator()
135 
136  kwargs.setdefault("GeometryBuilder", result.popToolsAndMerge(
137  GeometryBuilderCfg(flags)))
138 
139  # Now set up processors
140  atlas_geometry_processors = []
141 
142  if flags.TrackingGeometry.MaterialSource == 'COOL':
143  if flags.GeoModel.Run < LHCPeriod.Run4:
144  CoolDataBaseFolder = '/GLOBAL/TrackingGeo/LayerMaterialV2'
145  else:
146  CoolDataBaseFolder = '/GLOBAL/TrackingGeo/LayerMaterialITK'
147 
148  from TrackingGeometryCondAlg.TrkDetDescrToolsConfig import (
149  LayerMaterialProviderCfg)
150  atlas_geometry_processors += [ result.popToolsAndMerge(
152  LayerMaterialMapName = CoolDataBaseFolder,
153  LayerMaterialMapKey = CoolDataBaseFolder)) ]
154 
155  # Setup DBs
156  result.merge(_setupCondDB(flags, CoolDataBaseFolder))
157 
158  elif flags.TrackingGeometry.MaterialSource == 'Input':
159  from TrackingGeometryCondAlg.TrkDetDescrToolsConfig import (
160  InputLayerMaterialProviderCfg)
161  atlas_geometry_processors += [ result.popToolsAndMerge(
163 
164  if doMaterialValidation:
165  from TrackingGeometryCondAlg.TrkDetDescrToolsConfig import (
166  LayerMaterialInspectorCfg)
167  atlas_geometry_processors += [ result.popToolsAndMerge(
168  LayerMaterialInspectorCfg(flags)) ]
169 
170  from GaudiKernel.GaudiHandles import PrivateToolHandleArray
171  kwargs.setdefault("GeometryProcessors", PrivateToolHandleArray(
172  atlas_geometry_processors))
173  kwargs.setdefault("TrackingGeometryWriteKey", 'AtlasTrackingGeometry')
174 
175  result.addCondAlgo(CompFactory.Trk.TrackingGeometryCondAlg(name, **kwargs),
176  primary=True)
177 
178  return result
179 
180 
181 if __name__ == '__main__':
182  from AthenaConfiguration.AllConfigFlags import initConfigFlags
183  from AthenaConfiguration.TestDefaults import defaultTestFiles
184  flags = initConfigFlags()
185  flags.Input.Files = defaultTestFiles.RAW_RUN2
186  flags.lock()
187 
189 
190  f = open('TrackingGeometryCondAlgCfg.pkl', 'wb')
191  acc.store(f)
192  f.close()
MuonTrackingGeometryConfig.MuonTrackingGeometryBuilderCfg
def MuonTrackingGeometryBuilderCfg(flags, name='MuonTrackingGeometryBuilder', useCond=True, **kwargs)
Definition: MuonTrackingGeometryConfig.py:41
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
InDetTrackingGeometryConfig.ITkTrackingGeometryBuilderCfg
def ITkTrackingGeometryBuilderCfg(flags, name='ITkTrackingGeometryBuilder', useCond=True, **kwargs)
Definition: InDetTrackingGeometryConfig.py:356
AtlasTrackingGeometryCondAlgConfig.TrackingGeometryCondAlgCfg
def TrackingGeometryCondAlgCfg(flags, name='AtlasTrackingGeometryCondAlg', doMaterialValidation=False, **kwargs)
Definition: AtlasTrackingGeometryCondAlgConfig.py:128
AtlasTrackingGeometryCondAlgConfig.GeometryBuilderCfg
def GeometryBuilderCfg(flags, name='AtlasGeometryBuilder', useCond=True, **kwargs)
Definition: AtlasTrackingGeometryCondAlgConfig.py:58
InDetTrackingGeometryConfig.InDetTrackingGeometryBuilderCfg
def InDetTrackingGeometryBuilderCfg(flags, name='InDetTrackingGeometryBuilder', useCond=True, **kwargs)
Definition: InDetTrackingGeometryConfig.py:220
TrkDetDescrToolsConfig.LayerMaterialProviderCfg
def LayerMaterialProviderCfg(flags, name='AtlasMaterialCondProvider', **kwargs)
Definition: TrkDetDescrToolsConfig.py:213
CaloTrackingGeometryConfig.CaloTrackingGeometryBuilderCfg
def CaloTrackingGeometryBuilderCfg(flags, name='CaloTrackingGeometryBuilder', useCond=True, **kwargs)
Definition: Tracking/TrkConditions/TrackingGeometryCondAlg/python/CaloTrackingGeometryConfig.py:41
TrkDetDescrToolsConfig.TrackingVolumeArrayCreatorCfg
def TrackingVolumeArrayCreatorCfg(flags, name="TrackingVolumeArrayCreator", **kwargs)
Definition: TrkDetDescrToolsConfig.py:47
AtlasTrackingGeometryCondAlgConfig._setupCondDB
def _setupCondDB(flags, CoolDataBaseFolder, quiet=True)
Definition: AtlasTrackingGeometryCondAlgConfig.py:8
python.IOVDbSvcConfig.addFolders
def addFolders(flags, folderStrings, detDb=None, className=None, extensible=False, tag=None, db=None, modifiers='')
Definition: IOVDbSvcConfig.py:72
TrkDetDescrToolsConfig.LayerMaterialInspectorCfg
def LayerMaterialInspectorCfg(flags, name='AtlasLayerMaterialInspector', **kwargs)
Definition: TrkDetDescrToolsConfig.py:226
python.IOVDbSvcConfig.addFoldersSplitOnline
def addFoldersSplitOnline(flags, detDb, onlineFolders, offlineFolders, className=None, extensible=False, addMCString='_OFL', splitMC=False, tag=None, forceDb=None, modifiers='')
Definition: IOVDbSvcConfig.py:153
Trk::open
@ open
Definition: BinningType.h:40
python.AllConfigFlags.initConfigFlags
def initConfigFlags()
Definition: AllConfigFlags.py:19
HGTD_TrackingGeometryConfig.HGTD_TrackingGeometryBuilderCfg
def HGTD_TrackingGeometryBuilderCfg(flags, name='HGTD_TrackingGeometryBuilderCond', **kwargs)
Definition: HGTD_TrackingGeometryConfig.py:22
str
Definition: BTagTrackIpAccessor.cxx:11
TrkDetDescrToolsConfig.InputLayerMaterialProviderCfg
def InputLayerMaterialProviderCfg(flags, name='AtlasMaterialProvider', **kwargs)
Definition: TrkDetDescrToolsConfig.py:219
TrkDetDescrToolsConfig.TrackingVolumeHelperCfg
def TrackingVolumeHelperCfg(flags, name='TrackingVolumeHelper', **kwargs)
Definition: TrkDetDescrToolsConfig.py:27