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

Functions

 configureGeometry (flags, cfg)
 getATLASVersion ()
 dumpGeoOutputFileName (flags)
 resolveDumpGeoGeometryTag (det_descr, configured_tag, fallback_tag)
 dumpGeoHasInputFiles (input_files)
 configureDumpGeoInputFlags (flags)
 validateDumpGeoOutputFile (output_file, force_overwrite)
 logZDCFailureReminder (zdc_enabled, run_succeeded)
 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
 args = flags.fillFromArgs(parser=parser)
 OutputFileName
 FilterDetManagers
 ShowTreetopContent
 ForceOverwrite
 dumpgeo_empty_input = configureDumpGeoInputFlags(flags)
 configured_geometry_tag = None
 geometry_tag
 AtlasVersion
 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
 cfg = MainServicesCfg(flags)
 debugCAlevel = int(args.debugCA)
 status = cfg.run()

Function Documentation

◆ configureDumpGeoInputFlags()

configureDumpGeoInputFlags ( flags)
Configure deterministic defaults for an input-less standalone job.

Definition at line 157 of file DumpGeoConfig.py.

157def configureDumpGeoInputFlags(flags):
158 """Configure deterministic defaults for an input-less standalone job."""
159 if dumpGeoHasInputFiles(flags.Input.Files):
160 return False
161
162 from Campaigns.Utils import Campaign
163 from AthenaConfiguration.TestDefaults import defaultConditionsTags
164
165 flags.Input.Files = []
166
167 # MainServicesCfg and detector configuration require these normally
168 # metadata-derived flags to be initialized for an input-less job.
169 flags.Input.ProjectName = "mc23_13p6TeV"
170 flags.Input.RunNumbers = [330000]
171 flags.Input.TimeStamps = [1]
172 flags.Input.TypedCollections = []
173 flags.IOVDb.GlobalTag = defaultConditionsTags.RUN3_MC
174 flags.Input.isMC = True
175 flags.Input.MCCampaign = Campaign.Unknown
176 return True
177
178

◆ 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 200 of file DumpGeoConfig.py.

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

◆ dumpGeoHasInputFiles()

dumpGeoHasInputFiles ( input_files)
Return whether standalone DumpGeo was given real input files.

Definition at line 150 of file DumpGeoConfig.py.

150def dumpGeoHasInputFiles(input_files):
151 """Return whether standalone DumpGeo was given real input files."""
152 return bool(input_files) and input_files != [
153 "_ATHENA_GENERIC_INPUTFILE_NAME_"
154 ]
155
156

◆ 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

◆ logZDCFailureReminder()

logZDCFailureReminder ( zdc_enabled,
run_succeeded )
Remind standalone users about ZDC diagnostics after a failed run.

Definition at line 190 of file DumpGeoConfig.py.

190def logZDCFailureReminder(zdc_enabled, run_succeeded):
191 """Remind standalone users about ZDC diagnostics after a failed run."""
192 if zdc_enabled and not run_succeeded:
193 _logger.error(
194 "DumpGeo failed while ZDC geometry was enabled. Check the "
195 "preceding ZDC_DetTool messages: the selected geometry tag "
196 "may not contain ZDC geometry information."
197 )
198
199

◆ 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 179 of file DumpGeoConfig.py.

179def validateDumpGeoOutputFile(output_file, force_overwrite):
180 """Reject an existing output file unless overwrite is enabled."""
181 if os.path.exists(output_file) and not force_overwrite:
182 raise ConfigurationError(
183 f"DumpGeo output file '{output_file}' already exists. "
184 "Move or remove it, or enable "
185 "'GeoModel.DumpGeo.ForceOverwrite' "
186 "(or use the '-f' option from the command line)."
187 )
188
189

Variable Documentation

◆ _logger

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

Definition at line 26 of file DumpGeoConfig.py.

◆ action

DumpGeoConfig.action

Definition at line 318 of file DumpGeoConfig.py.

◆ args

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

Definition at line 323 of file DumpGeoConfig.py.

◆ AtlasVersion

DumpGeoConfig.AtlasVersion

Definition at line 375 of file DumpGeoConfig.py.

◆ cfg

DumpGeoConfig.cfg = MainServicesCfg(flags)

Definition at line 457 of file DumpGeoConfig.py.

◆ configured_geometry_tag

DumpGeoConfig.configured_geometry_tag = None

Definition at line 362 of file DumpGeoConfig.py.

◆ debugCAlevel

DumpGeoConfig.debugCAlevel = int(args.debugCA)

Definition at line 466 of file DumpGeoConfig.py.

◆ default

DumpGeoConfig.default

Definition at line 305 of file DumpGeoConfig.py.

◆ dumpgeo_empty_input

tuple dumpgeo_empty_input = configureDumpGeoInputFlags(flags)

Definition at line 347 of file DumpGeoConfig.py.

◆ FilterDetManagers

DumpGeoConfig.FilterDetManagers

Definition at line 332 of file DumpGeoConfig.py.

◆ flags

DumpGeoConfig.flags = initConfigFlags()

Definition at line 275 of file DumpGeoConfig.py.

◆ ForceOverwrite

DumpGeoConfig.ForceOverwrite

Definition at line 340 of file DumpGeoConfig.py.

◆ geometry_tag

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

Definition at line 365 of file DumpGeoConfig.py.

◆ GlobalTag

DumpGeoConfig.GlobalTag

Definition at line 430 of file DumpGeoConfig.py.

◆ help

DumpGeoConfig.help

Definition at line 306 of file DumpGeoConfig.py.

◆ input_geometry_tag

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

Definition at line 403 of file DumpGeoConfig.py.

◆ input_metadata

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

Definition at line 402 of file DumpGeoConfig.py.

◆ isMC

DumpGeoConfig.isMC

Definition at line 431 of file DumpGeoConfig.py.

◆ keep_beampipe

DumpGeoConfig.keep_beampipe

Definition at line 447 of file DumpGeoConfig.py.

◆ MaxEvents

DumpGeoConfig.MaxEvents

Definition at line 277 of file DumpGeoConfig.py.

◆ MCCampaign

DumpGeoConfig.MCCampaign

Definition at line 432 of file DumpGeoConfig.py.

◆ metavar

DumpGeoConfig.metavar

Definition at line 311 of file DumpGeoConfig.py.

◆ NumThreads

DumpGeoConfig.NumThreads

Definition at line 290 of file DumpGeoConfig.py.

◆ OutputFileName

DumpGeoConfig.OutputFileName

Definition at line 330 of file DumpGeoConfig.py.

◆ parser

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

Definition at line 300 of file DumpGeoConfig.py.

◆ prog

DumpGeoConfig.prog

Definition at line 301 of file DumpGeoConfig.py.

◆ ProjectName

DumpGeoConfig.ProjectName

Definition at line 424 of file DumpGeoConfig.py.

◆ RunNumbers

DumpGeoConfig.RunNumbers

Definition at line 425 of file DumpGeoConfig.py.

◆ ShowTreetopContent

DumpGeoConfig.ShowTreetopContent

Definition at line 338 of file DumpGeoConfig.py.

◆ status

DumpGeoConfig.status = cfg.run()

Definition at line 489 of file DumpGeoConfig.py.

◆ TimeStamps

DumpGeoConfig.TimeStamps

Definition at line 426 of file DumpGeoConfig.py.

◆ toggle_geometry

DumpGeoConfig.toggle_geometry

Definition at line 446 of file DumpGeoConfig.py.

◆ TypedCollections

DumpGeoConfig.TypedCollections

Definition at line 427 of file DumpGeoConfig.py.

◆ use_metadata

DumpGeoConfig.use_metadata

Definition at line 445 of file DumpGeoConfig.py.