Configuring ATLAS geometry layout

The GeoModel descriptions of ATLAS subsystems factorize into two main components:

All primary numbers in the ATLAS Geometry DB are hierarchically tagged, by this way implementing the Hierarchical Versioning System (HVS). HVS tree consists of branch and leaf nodes, where only leafs contain the real data and branches are pure logical entities which are used only to group child HVS nodes. HVS allows the retrieval of leaf data by the tag of any of its parent nodes, in particular by the tag of the root HVS node.

In the case of the ATLAS Geometry DB that means one can get primary numbers for all ATLAS subsystems by providing just top level ATLAS geometry tag. In other words, that allows the configuration of the ATLAS geometry layout in a centralized way.

The top level geometry tag is set to the property of GeoModel service in the job options script, for example:
GeoModelSvc.AtlasVersion = "ATLAS-00"

The GeoModel service passes the ATLAS geometry tag to the subsystem specific Detector Tools, which retrieve their primary numbers from Geometry DB according to this tag and also use the appropriate Detector Factory to actually build geometry description. ATLAS subsystems can override the top level tag by setting the following properties of the GeoModel service:

GeoModelSvc.InDetVersionOverride = <InDetTag>
GeoModelSvc.PixelVersionOverride = <PixelTag>
GeoModelSvc.SCT_VersionOverride = <SCTTag>
GeoModelSvc.TRT_VersionOverride = <TRTTag>
GeoModelSvc.LAr_VersionOverride = <LArTag>
GeoModelSvc.TileVersionOverride = <TileTag>
GeoModelSvc.MuonVersionOverride = <MuonTag>

It is also possible to make further customizations for subsystems by overriding the ATLAS tag with either CUSTOM or CUSTOM-<subsystem_tag>. The custom tags are mainly used for overriding subsystem specific switches.

Using AtlasGeoModel scripts for geometry configuration

DetectorDescription/GeoModel/AtlasGeoModel package serves as a central storage for job options scripts which are used by ATHENA applications to build GeoModel descriptions for various layouts of ATLAS detector. Presently the typical usage of these scripts is as follows:
DetDescrVersion = "Rome-Initial"
include( "AtlasGeoModel/SetGeometryVersion.py" )
include( "AtlasGeoModel/GeoModelInit.py" )

The DetDescrVersion variable is used by AtlasGeoModel/SetGeometryVersion.py script to set the appropriate value for GeoModelSvc.AtlasVersion property, add any subsystem specific overriders if necessary and also configure some other ATHENA services such as ID Dictionary service. The following example shows the part of SetGeometryVersion.py script:

. . .
elif (DetDescrVersion == "Rome-Initial"):
GeoModelSvc.AtlasVersion = "ATLAS-Rome-Initial-02"

DetDescrCnvSvc.IdDictGlobalTag = "initial_layout"
DetDescrCnvSvc.MuonIDFileName = "IdDictMuonSpectrometer_Q.02.xml"
MuonLayout = "Q02_initial_pro"
. . .

Switching ATLAS subsystems On/Off

It is possible to switch On/Off building geometry of ATLAS subsystems by setting flags in the job options scripts. The following example builds geometry for the Liquid Argon Calorimeter only; all other subsystems are switched off:
DetFlags.detdescr.ID_setOff()
DetFlags.detdescr.LAr_setOn()
DetFlags.detdescr.Tile_setOff()
DetFlags.detdescr.Muon_setOff()


Thank you for your feedback sent to Vakho Tsulaia and Joe Boudreau.