ATLAS Offline Software
Loading...
Searching...
No Matches
DumpGeoConfig Namespace Reference

Functions

 configureGeometry (flags, cfg)
 getATLASVersion ()
 dumpGeoOutputFileName (flags)
 resolveDumpGeoGeometryTag (det_descr, configured_tag, fallback_tag)
 validateDumpGeoOutputFile (output_file, force_overwrite)
 zdcGeometryWarning (flags, default_geometry_tags)
 logZDCGeometryWarning (warning, repeated=False)
 DumpGeoCfg (flags, name="DumpGeoAlg", **kwargs)

Variables

 _logger = logging.getLogger('DumpGeo')
 flags = initConfigFlags()
 MaxEvents
 NumThreads
 parser = flags.getArgumentParser(description="Dump the detector geometry to a GeoModel-based SQLite '.db' file.")
 prog
 default
 help
 metavar
 action
 filesInput
 args = flags.fillFromArgs(parser=parser)
 OutputFileName
 FilterDetManagers
 ShowTreetopContent
 ForceOverwrite
 configured_geometry_tag = None
 geometry_tag
 AtlasVersion
bool dumpgeo_empty_input = False
 input_metadata = GetFileMD(flags.Input.Files)
 input_geometry_tag = input_metadata.get("GeoAtlas", None)
 ProjectName
 RunNumbers
 TimeStamps
 TypedCollections
 GlobalTag
 isMC
 MCCampaign
 use_metadata
 toggle_geometry
 keep_beampipe
 zdc_warning = zdcGeometryWarning(flags, defaultGeometryTags)
 cfg = MainServicesCfg(flags)
 debugCAlevel = int(args.debugCA)
 status = cfg.run()
 repeated

Function Documentation

◆ configureGeometry()

configureGeometry ( flags,
cfg )

Definition at line 28 of file DumpGeoConfig.py.

28def configureGeometry(flags, cfg):
29
30 # Beam pipe
31 if flags.Detector.GeometryBpipe:
32 from BeamPipeGeoModel.BeamPipeGMConfig import BeamPipeGeometryCfg
33 cfg.merge(BeamPipeGeometryCfg(flags))
34
35 # Inner Detectors
36 if flags.Detector.GeometryPixel:
37 from PixelGeoModel.PixelGeoModelConfig import PixelReadoutGeometryCfg
38 cfg.merge(PixelReadoutGeometryCfg(flags))
39 # TODO: do we need to set this separately?
40 # if flags.Detector.GeometryBCM:
41
42 if flags.Detector.GeometrySCT:
43 from SCT_GeoModel.SCT_GeoModelConfig import SCT_ReadoutGeometryCfg
44 cfg.merge(SCT_ReadoutGeometryCfg(flags))
45
46 if flags.Detector.GeometryTRT:
47 from TRT_GeoModel.TRT_GeoModelConfig import TRT_ReadoutGeometryCfg
48 cfg.merge(TRT_ReadoutGeometryCfg(flags))
49
50 # InDetServMat
51 # Trigger the build of the InDetServMat geometry
52 # if any ID subsystems have been enabled
53 if flags.Detector.GeometryID:
54 from InDetServMatGeoModel.InDetServMatGeoModelConfig import (
55 InDetServiceMaterialCfg)
56 cfg.merge(InDetServiceMaterialCfg(flags))
57
58 # Calorimeters
59 if flags.Detector.GeometryLAr:
60 from LArGeoAlgsNV.LArGMConfig import LArGMCfg
61 cfg.merge(LArGMCfg(flags))
62
63 if flags.Detector.GeometryTile:
64 from TileGeoModel.TileGMConfig import TileGMCfg
65 #flags.Tile.forceFullGeometry = True
66 cfg.merge(TileGMCfg(flags))
67 # We must set the "FULL" geometry explicitly, otherwise the "RECO" version will be used by default,
68 # which is almost 'empty' (just the first level of child volumes is created for the "RECO" geo).
69 cfg.getService("GeoModelSvc").DetectorTools["TileDetectorTool"].GeometryConfig="FULL"
70 # TODO: do we need to set this separately?
71 # if flags.Detector.GeometryMBTS:
72
73 # Muon spectrometer
74 if flags.Detector.GeometryMuon:
75 from MuonConfig.MuonGeometryConfig import MuonGeoModelCfg
76 cfg.merge(MuonGeoModelCfg(flags))
77
78 # HGTD (defined only for Run4 geometry tags)
79 if flags.Detector.GeometryHGTD:
80 #set up geometry
81 if flags.HGTD.Geometry.useGeoModelXml:
82 from HGTD_GeoModelXml.HGTD_GeoModelConfig import HGTD_SimulationGeometryCfg
83 else:
84 from HGTD_GeoModel.HGTD_GeoModelConfig import HGTD_SimulationGeometryCfg
85 cfg.merge(HGTD_SimulationGeometryCfg(flags))
86
87 # ITk (defined only for Run4 geometry tags)
88 if flags.Detector.GeometryITkPixel:
89 from PixelGeoModelXml.ITkPixelGeoModelConfig import ITkPixelReadoutGeometryCfg
90 cfg.merge(ITkPixelReadoutGeometryCfg(flags))
91 if flags.Detector.GeometryITkStrip:
92 from StripGeoModelXml.ITkStripGeoModelConfig import ITkStripReadoutGeometryCfg
93 cfg.merge(ITkStripReadoutGeometryCfg(flags))
94 # TODO: do we need to set those separately?
95 # if flags.Detector.GeometryBCMPrime:
96 # if flags.Detector.GeometryPLR:
97
98 # Cavern (disabled by default)
99 if flags.Detector.GeometryCavern:
100 from AtlasGeoModel.CavernGMConfig import CavernGeometryCfg
101 cfg.merge(CavernGeometryCfg(flags))
102
103 # Forward detectors (disabled by default)
104 if flags.Detector.GeometryLucid or flags.Detector.GeometryALFA or flags.Detector.GeometryAFP or flags.Detector.GeometryFwdRegion :
105 from AtlasGeoModel.ForDetGeoModelConfig import ForDetGeometryCfg
106 cfg.merge(ForDetGeometryCfg(flags))
107 if flags.Detector.GeometryZDC:
108 from ZDC_GeoM.ZdcGeoModelConfig import ZDC_DetToolCfg
109 cfg.merge(ZDC_DetToolCfg(flags))
110
111 # Temporary 'hack':
112 # Replace EllipticTube with Box,
113 # to bypass a crash due to lack of support
114 # for EllipticTube in GeoModelIO
115 # See: https://its.cern.ch/jira/browse/ATLASSIM-7263
116 if "ForwardRegionGeoModelTool" in cfg.getService("GeoModelSvc").DetectorTools:
117 cfg.getService("GeoModelSvc").DetectorTools["ForwardRegionGeoModelTool"].vp1Compatibility=True
118
119

◆ DumpGeoCfg()

DumpGeoCfg ( flags,
name = "DumpGeoAlg",
** kwargs )

Definition at line 193 of file DumpGeoConfig.py.

193def DumpGeoCfg(flags, name="DumpGeoAlg", **kwargs):
194 if _logger.isEnabledFor(logging.DEBUG):
195 _logger.debug(
196 "Dumping the 'GeoModel.DumpGeo' configuration flags:"
197 )
198 flags.dump("GeoModel.DumpGeo")
199
200 # Debug messages
201 _logger.debug("kwargs: %s", kwargs)
202
203 # set additional DumpGeo Alg's properties
204 _logger.verbose("Using ATLAS/Athena version: %s", getATLASVersion())
205 _logger.verbose("Using GeoModel ATLAS version: %s", flags.GeoModel.AtlasVersion)
206 kwargs.setdefault("AtlasRelease", getATLASVersion())
207 kwargs.setdefault("AtlasVersion", flags.GeoModel.AtlasVersion)
208
209 # Set the user's choice to see the content of the Treetops
210 if flags.GeoModel.DumpGeo.ShowTreetopContent:
211 kwargs.setdefault("ShowTreetopContent", True)
212
213 # Configure DetectorManager filtering independently of the output file
214 # name. In particular, a user-defined file name must not disable the
215 # filter passed to the C++ algorithm.
216 filterDetManagers = flags.GeoModel.DumpGeo.FilterDetManagers
217 if filterDetManagers:
218 _logger.info(
219 "+++ Filtering on these GeoModel 'Detector Managers': '%s'",
220 filterDetManagers,
221 )
222 kwargs.setdefault("UserFilterDetManager", filterDetManagers)
223
224 # Set the name of the output '.db' file.
225 configuredOutFileName = dumpGeoOutputFileName(flags)
226 if not flags.GeoModel.DumpGeo.OutputFileName:
227 _logger.info(
228 "+++ Dumping this Detector Description geometry TAG: '%s'",
229 flags.GeoModel.AtlasVersion,
230 )
231
232 # Set the output file name variable in the C++ code
233 kwargs.setdefault("OutSQLiteFileName", configuredOutFileName)
234
235 # The final algorithm property is authoritative. A caller can override the
236 # flag-derived filename through kwargs, so validation and deletion must use
237 # the same path that the C++ algorithm will write.
238 outFileName = kwargs["OutSQLiteFileName"]
239 kwargs.setdefault(
240 "ForceOverwrite",
241 flags.GeoModel.DumpGeo.ForceOverwrite,
242 )
243 forceOverwrite = kwargs["ForceOverwrite"]
244
245 # Reject an existing file unless overwrite is enabled. Destructive removal
246 # is deliberately deferred to DumpGeo::initialize(), immediately before
247 # the C++ algorithm opens the output database.
248 validateDumpGeoOutputFile(
249 outFileName,
250 forceOverwrite,
251 )
252
253 # Schedule the DumpGeo Athena Algorithm
254 result = ComponentAccumulator()
255 the_alg = CompFactory.DumpGeo(name=name, **kwargs)
256 result.addEventAlgo(the_alg, primary=True)
257 return result
258
259

◆ dumpGeoOutputFileName()

dumpGeoOutputFileName ( flags)
Return the configured DumpGeo SQLite output file name.

Definition at line 128 of file DumpGeoConfig.py.

128def dumpGeoOutputFileName(flags):
129 """Return the configured DumpGeo SQLite output file name."""
130 if flags.GeoModel.DumpGeo.OutputFileName:
131 return flags.GeoModel.DumpGeo.OutputFileName
132
133 output_file = f"geometry-{flags.GeoModel.AtlasVersion}"
134 filter_det_managers = flags.GeoModel.DumpGeo.FilterDetManagers
135 if filter_det_managers:
136 output_file += "-" + "-".join(filter_det_managers)
137
138 return output_file + ".db"
139
140

◆ getATLASVersion()

getATLASVersion ( )

Definition at line 120 of file DumpGeoConfig.py.

120def getATLASVersion():
121 if "AtlasVersion" in os.environ:
122 return os.environ["AtlasVersion"]
123 if "AtlasBaseVersion" in os.environ:
124 return os.environ["AtlasBaseVersion"]
125 return "Unknown"
126
127

◆ logZDCGeometryWarning()

logZDCGeometryWarning ( warning,
repeated = False )
Log a ZDC geometry warning, optionally as an end-of-run reminder.

Definition at line 184 of file DumpGeoConfig.py.

184def logZDCGeometryWarning(warning, repeated=False):
185 """Log a ZDC geometry warning, optionally as an end-of-run reminder."""
186 if not warning:
187 return
188 if repeated:
189 _logger.warning("Repeating the earlier ZDC geometry warning:")
190 _logger.warning(*warning)
191
192

◆ resolveDumpGeoGeometryTag()

resolveDumpGeoGeometryTag ( det_descr,
configured_tag,
fallback_tag )
Resolve the geometry tag using the DumpGeo command-line precedence.

Definition at line 141 of file DumpGeoConfig.py.

141def resolveDumpGeoGeometryTag(det_descr, configured_tag, fallback_tag):
142 """Resolve the geometry tag using the DumpGeo command-line precedence."""
143 if det_descr:
144 return det_descr
145 if configured_tag:
146 return configured_tag
147 return fallback_tag
148
149

◆ validateDumpGeoOutputFile()

validateDumpGeoOutputFile ( output_file,
force_overwrite )
Reject an existing output file unless overwrite is enabled.

Definition at line 150 of file DumpGeoConfig.py.

150def validateDumpGeoOutputFile(output_file, force_overwrite):
151 """Reject an existing output file unless overwrite is enabled."""
152 if os.path.exists(output_file) and not force_overwrite:
153 raise ConfigurationError(
154 f"DumpGeo output file '{output_file}' already exists. "
155 "Move or remove it, or enable "
156 "'GeoModel.DumpGeo.ForceOverwrite' "
157 "(or use the '-f' option from the command line)."
158 )
159
160

◆ zdcGeometryWarning()

zdcGeometryWarning ( flags,
default_geometry_tags )
Return logger arguments for an incompatible ZDC geometry tag.

Definition at line 161 of file DumpGeoConfig.py.

161def zdcGeometryWarning(flags, default_geometry_tags):
162 """Return logger arguments for an incompatible ZDC geometry tag."""
163 if not flags.Detector.GeometryZDC:
164 return None
165
166 known_zdc_tags = {
167 default_geometry_tags.RUN2_ZDC,
168 default_geometry_tags.RUN3_ZDC23,
169 default_geometry_tags.RUN3_ZDC24,
170 }
171 if flags.GeoModel.AtlasVersion in known_zdc_tags:
172 return None
173
174 return (
175 "ZDC geometry was enabled with geometry tag '%s', which may "
176 "not contain a ZDC GeoDB payload. Consider using "
177 "--detDescr=%s or --detDescr=%s for Run 3.",
178 flags.GeoModel.AtlasVersion,
179 default_geometry_tags.RUN3_ZDC23,
180 default_geometry_tags.RUN3_ZDC24,
181 )
182
183

Variable Documentation

◆ _logger

DumpGeoConfig._logger = logging.getLogger('DumpGeo')
protected

Definition at line 26 of file DumpGeoConfig.py.

◆ action

DumpGeoConfig.action

Definition at line 311 of file DumpGeoConfig.py.

◆ args

DumpGeoConfig.args = flags.fillFromArgs(parser=parser)

Definition at line 318 of file DumpGeoConfig.py.

◆ AtlasVersion

DumpGeoConfig.AtlasVersion

Definition at line 363 of file DumpGeoConfig.py.

◆ cfg

DumpGeoConfig.cfg = MainServicesCfg(flags)

Definition at line 448 of file DumpGeoConfig.py.

◆ configured_geometry_tag

DumpGeoConfig.configured_geometry_tag = None

Definition at line 350 of file DumpGeoConfig.py.

◆ debugCAlevel

DumpGeoConfig.debugCAlevel = int(args.debugCA)

Definition at line 457 of file DumpGeoConfig.py.

◆ default

DumpGeoConfig.default

Definition at line 298 of file DumpGeoConfig.py.

◆ dumpgeo_empty_input

tuple dumpgeo_empty_input = False

Definition at line 381 of file DumpGeoConfig.py.

◆ filesInput

DumpGeoConfig.filesInput

Definition at line 317 of file DumpGeoConfig.py.

◆ FilterDetManagers

DumpGeoConfig.FilterDetManagers

Definition at line 327 of file DumpGeoConfig.py.

◆ flags

DumpGeoConfig.flags = initConfigFlags()

Definition at line 268 of file DumpGeoConfig.py.

◆ ForceOverwrite

DumpGeoConfig.ForceOverwrite

Definition at line 335 of file DumpGeoConfig.py.

◆ geometry_tag

DumpGeoConfig.geometry_tag
Initial value:
= resolveDumpGeoGeometryTag(
args.detDescr,
configured_geometry_tag,
defaultGeometryTags.RUN3,
)

Definition at line 353 of file DumpGeoConfig.py.

◆ GlobalTag

DumpGeoConfig.GlobalTag

Definition at line 415 of file DumpGeoConfig.py.

◆ help

DumpGeoConfig.help

Definition at line 299 of file DumpGeoConfig.py.

◆ input_geometry_tag

DumpGeoConfig.input_geometry_tag = input_metadata.get("GeoAtlas", None)

Definition at line 388 of file DumpGeoConfig.py.

◆ input_metadata

DumpGeoConfig.input_metadata = GetFileMD(flags.Input.Files)

Definition at line 387 of file DumpGeoConfig.py.

◆ isMC

DumpGeoConfig.isMC

Definition at line 416 of file DumpGeoConfig.py.

◆ keep_beampipe

DumpGeoConfig.keep_beampipe

Definition at line 432 of file DumpGeoConfig.py.

◆ MaxEvents

DumpGeoConfig.MaxEvents

Definition at line 270 of file DumpGeoConfig.py.

◆ MCCampaign

DumpGeoConfig.MCCampaign

Definition at line 417 of file DumpGeoConfig.py.

◆ metavar

DumpGeoConfig.metavar

Definition at line 304 of file DumpGeoConfig.py.

◆ NumThreads

DumpGeoConfig.NumThreads

Definition at line 283 of file DumpGeoConfig.py.

◆ OutputFileName

DumpGeoConfig.OutputFileName

Definition at line 325 of file DumpGeoConfig.py.

◆ parser

DumpGeoConfig.parser = flags.getArgumentParser(description="Dump the detector geometry to a GeoModel-based SQLite '.db' file.")

Definition at line 293 of file DumpGeoConfig.py.

◆ prog

DumpGeoConfig.prog

Definition at line 294 of file DumpGeoConfig.py.

◆ ProjectName

DumpGeoConfig.ProjectName

Definition at line 409 of file DumpGeoConfig.py.

◆ repeated

DumpGeoConfig.repeated

Definition at line 482 of file DumpGeoConfig.py.

◆ RunNumbers

DumpGeoConfig.RunNumbers

Definition at line 410 of file DumpGeoConfig.py.

◆ ShowTreetopContent

DumpGeoConfig.ShowTreetopContent

Definition at line 333 of file DumpGeoConfig.py.

◆ status

DumpGeoConfig.status = cfg.run()

Definition at line 480 of file DumpGeoConfig.py.

◆ TimeStamps

DumpGeoConfig.TimeStamps

Definition at line 411 of file DumpGeoConfig.py.

◆ toggle_geometry

DumpGeoConfig.toggle_geometry

Definition at line 431 of file DumpGeoConfig.py.

◆ TypedCollections

DumpGeoConfig.TypedCollections

Definition at line 412 of file DumpGeoConfig.py.

◆ use_metadata

DumpGeoConfig.use_metadata

Definition at line 430 of file DumpGeoConfig.py.

◆ zdc_warning

DumpGeoConfig.zdc_warning = zdcGeometryWarning(flags, defaultGeometryTags)

Definition at line 439 of file DumpGeoConfig.py.