8 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
9 from AthenaConfiguration.ComponentFactory
import CompFactory
16 if flags.Detector.GeometryBpipe:
17 from BeamPipeGeoModel.BeamPipeGMConfig
import BeamPipeGeometryCfg
21 if flags.Detector.GeometryPixel:
22 from PixelGeoModel.PixelGeoModelConfig
import PixelReadoutGeometryCfg
27 if flags.Detector.GeometrySCT:
28 from SCT_GeoModel.SCT_GeoModelConfig
import SCT_ReadoutGeometryCfg
31 if flags.Detector.GeometryTRT:
32 from TRT_GeoModel.TRT_GeoModelConfig
import TRT_ReadoutGeometryCfg
38 if flags.Detector.GeometryID:
39 from InDetServMatGeoModel.InDetServMatGeoModelConfig
import (
40 InDetServiceMaterialCfg)
44 if flags.Detector.GeometryLAr:
45 from LArGeoAlgsNV.LArGMConfig
import LArGMCfg
48 if flags.Detector.GeometryTile:
49 from TileGeoModel.TileGMConfig
import TileGMCfg
55 if flags.Detector.GeometryMuon:
56 from MuonConfig.MuonGeometryConfig
import MuonGeoModelCfg
60 if flags.Detector.GeometryHGTD:
62 if flags.HGTD.Geometry.useGeoModelXml:
63 from HGTD_GeoModelXml.HGTD_GeoModelConfig
import HGTD_SimulationGeometryCfg
65 from HGTD_GeoModel.HGTD_GeoModelConfig
import HGTD_SimulationGeometryCfg
69 if flags.Detector.GeometryITkPixel:
70 from PixelGeoModelXml.ITkPixelGeoModelConfig
import ITkPixelReadoutGeometryCfg
72 if flags.Detector.GeometryITkStrip:
73 from StripGeoModelXml.ITkStripGeoModelConfig
import ITkStripReadoutGeometryCfg
80 if flags.Detector.GeometryCavern:
81 from AtlasGeoModel.CavernGMConfig
import CavernGeometryCfg
85 if flags.Detector.GeometryLucid
or flags.Detector.GeometryALFA
or flags.Detector.GeometryAFP
or flags.Detector.GeometryFwdRegion :
86 from AtlasGeoModel.ForDetGeoModelConfig
import ForDetGeometryCfg
88 if flags.Detector.GeometryZDC:
89 from ZDC_GeoM.ZdcGeoModelConfig
import ZDC_DetToolCfg
98 if "AtlasVersion" in os.environ:
99 return os.environ[
"AtlasVersion"]
100 if "AtlasBaseVersion" in os.environ:
101 return os.environ[
"AtlasBaseVersion"]
104 def DumpGeoCfg(flags, name="DumpGeoCA", outFileName="", **kwargs):
118 _logger.verbose(
"Using GeoModel ATLAS version: %s", flags.GeoModel.AtlasVersion)
120 kwargs.setdefault(
"AtlasVersion", flags.GeoModel.AtlasVersion)
121 kwargs.setdefault(
"OutSQLiteFileName", outFileName)
122 if args.filterDetManagers:
123 kwargs.setdefault(
"UserFilterDetManager", args.filterDetManagers.split(
","))
126 the_alg = CompFactory.DumpGeo(name=
"DumpGeoAlg", **kwargs)
127 result.addEventAlgo(the_alg, primary=
True)
131 if __name__==
"__main__":
136 from AthenaCommon.Logging
import logging
139 from AthenaConfiguration.TestDefaults
import defaultGeometryTags
142 _logger = logging.getLogger(
'DumpGeo')
143 _logger.setLevel(VERBOSE)
145 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
147 flags.Exec.MaxEvents = 0
159 flags.Concurrency.NumThreads = 0
166 parser = flags.getArgumentParser()
167 parser.prog =
'dump-geo'
169 parser.add_argument(
"--detDescr", default=defaultGeometryTags.RUN3,
170 help=
"The ATLAS geometry tag you want to dump (a convenience alias for the Athena flag 'GeoModel.AtlasVersion=TAG')", metavar=
"TAG")
172 parser.add_argument(
"--filterDetManagers", help=
"Only output the GeoModel Detector Managers specified in the FILTER list; input is a comma-separated list")
173 parser.add_argument(
"-f",
"--forceOverwrite",
174 help=
"Force to overwrite an existing SQLite output file with the same name, if any", action =
'store_true')
176 args = flags.fillFromArgs(parser=parser)
182 _logger.verbose(
"+ About to set flags related to the input")
186 dumpgeo_empty_input =
False
189 if (flags.Input.Files == []
or
190 flags.Input.Files == [
'_ATHENA_GENERIC_INPUTFILE_NAME_']):
191 from Campaigns.Utils
import Campaign
192 from AthenaConfiguration.TestDefaults
import defaultGeometryTags
194 dumpgeo_empty_input =
True
202 flags.Input.ProjectName =
"mc20_13TeV"
203 flags.Input.RunNumbers = [330000]
204 flags.Input.TimeStamps = [1]
205 flags.Input.TypedCollections = []
208 flags.IOVDb.GlobalTag =
"OFLCOND-MC23-SDR-RUN3-02"
209 flags.Input.isMC =
True
210 flags.Input.MCCampaign = Campaign.Unknown
211 flags.GeoModel.AtlasVersion = defaultGeometryTags.RUN3
212 _logger.verbose(
"+ ... Done")
213 _logger.verbose(
"+ empty input: '%s'" % dumpgeo_empty_input)
215 _logger.verbose(
"+ detDescr flag: '%s'" % args.detDescr)
218 _logger.verbose(
"+ About to set the detector flags")
220 from AthenaConfiguration.DetectorConfigFlags
import setupDetectorFlags
222 toggle_geometry=
True, keep_beampipe=
True)
223 _logger.verbose(
"+ ... Done")
226 _logger.verbose(
"+ About to set this detector description tag: '%s'" % args.detDescr)
227 flags.GeoModel.AtlasVersion = args.detDescr
228 _logger.verbose(
"+ ... Done")
238 outFileName =
"geometry"
239 filterDetManagers = []
244 geoTAG = flags.GeoModel.AtlasVersion
245 print(
"+ DumpGeo -- INFO -- This is the Detector Description geometry TAG you are dumping: '%s'" % geoTAG)
246 outFileName = outFileName +
"-" + geoTAG
249 if args.filterDetManagers:
250 print(
"+ DumpGeo -- NOTE -- Your 'GeoModel Detector Manager' filter set: '%s'" % args.filterDetManagers)
251 filterDetManagers = args.filterDetManagers.split(
",")
252 outFileName = outFileName +
"-" +
"-".
join(filterDetManagers)
254 outFileName = outFileName +
".db"
257 if os.path.exists(outFileName):
258 if args.forceOverwrite
is True:
259 print(
"+ DumpGeo -- NOTE -- You chose to overwrite an existing geometry dump file with the same name, if present.")
262 if os.path.exists(outFileName):
263 os.remove(outFileName)
264 print(f
"The file {outFileName} has been deleted.")
266 print(f
"The file {outFileName} does not exist. So, it was not needed to 'force-delete' it. Continuing...")
268 print(f
"\nDumpGeo -- ERROR! The ouput file '{outFileName}' exists already!\nPlease move or remove it, or use the 'force' option: '-f' or '--forceOverWrite'.\n\n")
280 _logger.verbose(
"+ Setup main services")
281 from AthenaConfiguration.MainServicesConfig
import MainServicesCfg
283 _logger.verbose(
"+ ...Done")
285 _logger.verbose(
"+ About to setup geometry")
287 _logger.verbose(
"+ ...Done")
290 cfg.merge(
DumpGeoCfg(flags, args, outFileName=outFileName))