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

Functions

 configureGeometry (flags, cfg)
 getATLASVersion ()
 DumpGeoCfg (flags, name="DumpGeoCA", **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
 ShowTreetopContent
 ForceOverwrite
bool dumpgeo_empty_input = False
 ProjectName
 RunNumbers
 TimeStamps
 TypedCollections
 GlobalTag
 isMC
 MCCampaign
 AtlasVersion
 None
 use_metadata
 toggle_geometry
 True
 keep_beampipe
 cfg = MainServicesCfg(flags)
 debugCAlevel = int(args.debugCA)

Function Documentation

◆ configureGeometry()

DumpGeoConfig.configureGeometry ( flags,
cfg )

Definition at line 25 of file DumpGeoConfig.py.

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

◆ DumpGeoCfg()

DumpGeoConfig.DumpGeoCfg ( flags,
name = "DumpGeoCA",
** kwargs )

Definition at line 124 of file DumpGeoConfig.py.

124def DumpGeoCfg(flags, name="DumpGeoCA", **kwargs):
125 result = ComponentAccumulator()
126
127 _logger.info("We're using these 'GeoModel.DumpGeo' configuration flags:")
128 flags.dump("GeoModel.DumpGeo")
129
130 # Debug messages
131 _logger.debug("kwargs: %s", kwargs)
132
133 # set additional DumpGeo Alg's properties
134 _logger.verbose("Using ATLAS/Athena version: %s", getATLASVersion())
135 _logger.verbose("Using GeoModel ATLAS version: %s", flags.GeoModel.AtlasVersion)
136 kwargs.setdefault("AtlasRelease", getATLASVersion())
137 kwargs.setdefault("AtlasVersion", flags.GeoModel.AtlasVersion)
138
139 # Set the user's choice to see the content of the Treetops
140 if flags.GeoModel.DumpGeo.ShowTreetopContent:
141 kwargs.setdefault("ShowTreetopContent", True)
142
143 # Set the name of the output '.db' file.
144 # Pick the custom name if the user set it;
145 # otherwise, build it from the geometry tag
146 # and the filtered Detector Managers (if any).
147 outFileName = ""
148 if flags.GeoModel.DumpGeo.OutputFileName:
149 outFileName = flags.GeoModel.DumpGeo.OutputFileName
150 else:
151 # Handle the user's inputs and create a file name
152 # for the output SQLite, accordingly
153 outFileName = "geometry"
154 filterDetManagers = []
155 # - Put Geometry TAG into the file name
156 # NOTE: at this point, the user-defined Geo TAG args.detDescr,
157 # if set, has already replaced the default TAG in 'flags';
158 # so, we can use the latter, directy.
159 geoTAG = flags.GeoModel.AtlasVersion
160 _logger.info("+++ Dumping this Detector Description geometry TAG: '%s'", geoTAG)
161 outFileName = outFileName + "-" + geoTAG
162
163 if flags.GeoModel.DumpGeo.FilterDetManagers:
164
165 _logger.info("+++ Filtering on these GeoModel 'Detector Managers': '%s'", flags.GeoModel.DumpGeo.FilterDetManagers)
166
167 filterDetManagers = flags.GeoModel.DumpGeo.FilterDetManagers
168
169 # Set the filter variable that is used in the C++ code
170 kwargs.setdefault("UserFilterDetManager", filterDetManagers)
171
172 # - Put the filtered Detector Managers' names into the file name,
173 # if the user asked to filter on them
174 outFileName = outFileName + "-" + "-".join(filterDetManagers)
175
176 # - Add the final extension to the name of the output SQLite file
177 outFileName = outFileName + ".db"
178
179 # Set the output file name variable in the C++ code
180 kwargs.setdefault("OutSQLiteFileName", outFileName)
181
182 # Check if the output SQLite file exists already,
183 # and overwrite it if the user asked to do so;
184 # otherwise, throw an error.
185 if os.path.exists(outFileName):
186 if flags.GeoModel.DumpGeo.ForceOverwrite:
187 print("+ DumpGeo -- NOTE -- You chose to overwrite an existing geometry dump file with the same name, if present.")
188 # os.environ["DUMPGEOFORCEOVERWRITE"] = "1" # save to an env var, for later use in GeoModelStandalone/GeoExporter
189 # Check if the file exists before attempting to delete it
190 if os.path.exists(outFileName):
191 os.remove(outFileName)
192 _logger.verbose(f"The file {outFileName} has been deleted.")
193 else:
194 _logger.verbose(f"The file {outFileName} does not exist. So, it was not needed to 'force-delete' it. Continuing...")
195 else:
196 _logger.error(f"+++ DumpGeo -- ERROR!! The ouput file '{outFileName}' exists already!\nPlease move or remove it, or use the 'force' option: '-f' or '--forceOverWrite'.\n\n")
197 sys.exit()
198
199 # Schedule the DumpGeo Athena Algorithm
200 the_alg = CompFactory.DumpGeo(name="DumpGeoAlg", **kwargs)
201 result.addEventAlgo(the_alg, primary=True)
202 return result
203
204
void print(char *figname, TCanvas *c1)

◆ getATLASVersion()

DumpGeoConfig.getATLASVersion ( )

Definition at line 117 of file DumpGeoConfig.py.

117def getATLASVersion():
118 if "AtlasVersion" in os.environ:
119 return os.environ["AtlasVersion"]
120 if "AtlasBaseVersion" in os.environ:
121 return os.environ["AtlasBaseVersion"]
122 return "Unknown"
123

Variable Documentation

◆ _logger

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

Definition at line 23 of file DumpGeoConfig.py.

◆ action

DumpGeoConfig.action

Definition at line 248 of file DumpGeoConfig.py.

◆ args

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

Definition at line 255 of file DumpGeoConfig.py.

◆ AtlasVersion

DumpGeoConfig.AtlasVersion

Definition at line 302 of file DumpGeoConfig.py.

◆ cfg

DumpGeoConfig.cfg = MainServicesCfg(flags)

Definition at line 328 of file DumpGeoConfig.py.

◆ debugCAlevel

DumpGeoConfig.debugCAlevel = int(args.debugCA)

Definition at line 337 of file DumpGeoConfig.py.

◆ default

DumpGeoConfig.default

Definition at line 241 of file DumpGeoConfig.py.

◆ dumpgeo_empty_input

bool DumpGeoConfig.dumpgeo_empty_input = False

Definition at line 277 of file DumpGeoConfig.py.

◆ filesInput

DumpGeoConfig.filesInput

Definition at line 254 of file DumpGeoConfig.py.

◆ flags

DumpGeoConfig.flags = initConfigFlags()

Definition at line 213 of file DumpGeoConfig.py.

◆ ForceOverwrite

DumpGeoConfig.ForceOverwrite

Definition at line 270 of file DumpGeoConfig.py.

◆ GlobalTag

DumpGeoConfig.GlobalTag

Definition at line 299 of file DumpGeoConfig.py.

◆ help

DumpGeoConfig.help

Definition at line 242 of file DumpGeoConfig.py.

◆ isMC

DumpGeoConfig.isMC

Definition at line 300 of file DumpGeoConfig.py.

◆ keep_beampipe

DumpGeoConfig.keep_beampipe

Definition at line 314 of file DumpGeoConfig.py.

◆ MaxEvents

DumpGeoConfig.MaxEvents

Definition at line 215 of file DumpGeoConfig.py.

◆ MCCampaign

DumpGeoConfig.MCCampaign

Definition at line 301 of file DumpGeoConfig.py.

◆ metavar

DumpGeoConfig.metavar

Definition at line 242 of file DumpGeoConfig.py.

◆ None

DumpGeoConfig.None

Definition at line 313 of file DumpGeoConfig.py.

◆ NumThreads

DumpGeoConfig.NumThreads

Definition at line 228 of file DumpGeoConfig.py.

◆ OutputFileName

DumpGeoConfig.OutputFileName

Definition at line 266 of file DumpGeoConfig.py.

◆ parser

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

Definition at line 238 of file DumpGeoConfig.py.

◆ prog

DumpGeoConfig.prog

Definition at line 239 of file DumpGeoConfig.py.

◆ ProjectName

DumpGeoConfig.ProjectName

Definition at line 293 of file DumpGeoConfig.py.

◆ RunNumbers

DumpGeoConfig.RunNumbers

Definition at line 294 of file DumpGeoConfig.py.

◆ ShowTreetopContent

DumpGeoConfig.ShowTreetopContent

Definition at line 268 of file DumpGeoConfig.py.

◆ TimeStamps

DumpGeoConfig.TimeStamps

Definition at line 295 of file DumpGeoConfig.py.

◆ toggle_geometry

DumpGeoConfig.toggle_geometry

Definition at line 314 of file DumpGeoConfig.py.

◆ True

DumpGeoConfig.True

Definition at line 314 of file DumpGeoConfig.py.

◆ TypedCollections

DumpGeoConfig.TypedCollections

Definition at line 296 of file DumpGeoConfig.py.

◆ use_metadata

DumpGeoConfig.use_metadata

Definition at line 313 of file DumpGeoConfig.py.