Skip to content
Snippets Groups Projects
Commit 03da00bb authored by Edward Moyse's avatar Edward Moyse
Browse files

Merge branch 'detdescrinfo' into 'master'

AutoConfigFlags: factorize detector description flags

See merge request atlas/athena!39065
parents 6b839fa9 94e450e3
No related branches found
No related tags found
No related merge requests found
......@@ -37,20 +37,21 @@ def _initializeGeometryParameters(geoTag):
dbGeomCursor = AtlasGeoDBInterface(geoTag)
dbGeomCursor.ConnectAndBrowseGeoDB()
# FIXME: geometry parameter names need to be unique across systems!
params = {}
params.update(CommonGeoDB.InitializeGeometryParameters(dbGeomCursor))
params.update(PixelGeoDB.InitializeGeometryParameters(dbGeomCursor))
params.update(LArGeoDB.InitializeGeometryParameters(dbGeomCursor))
params.update(MuonGeoDB.InitializeGeometryParameters(dbGeomCursor))
params = { 'Common' : CommonGeoDB.InitializeGeometryParameters(dbGeomCursor),
'Pixel' : PixelGeoDB.InitializeGeometryParameters(dbGeomCursor),
'LAr' : LArGeoDB.InitializeGeometryParameters(dbGeomCursor),
'Muon' : MuonGeoDB.InitializeGeometryParameters(dbGeomCursor) }
return params
@lru_cache(maxsize=4) # maxsize=1 should be enough for most jobs
def GetDetDescrInfo(geoTag):
"""Query geometry DB for detector description"""
def DetDescrInfo(geoTag):
"""Query geometry DB for detector description. Returns dictionary with
detector description. Queries DB for each tag only once.
geoTag: gemometry tag (e.g. ATLAS-R2-2016-01-00-01)
"""
detDescrInfo = _initializeGeometryParameters(geoTag)
detDescrInfo["geomTag"] = geoTag
return detDescrInfo
# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
from __future__ import print_function
from AthenaConfiguration.AthConfigFlags import AthConfigFlags
from AthenaConfiguration.AutoConfigFlags import GetDetDescrInfo
from AthenaConfiguration.AutoConfigFlags import DetDescrInfo
# This module is based upon Control/AthenaCommon/python/DetFlags.py
# Only some flags have been migrated. A full list of what the old
# DetFlags provided is given for reference below:
......@@ -56,13 +54,13 @@ def createDetectorConfigFlags():
dcf.addFlag('Detector.GeometryLAr', False) # Add separate em HEC and FCAL flags?
dcf.addFlag('Detector.GeometryTile', False)
dcf.addFlag('Detector.GeometryCalo', lambda prevFlags : (prevFlags.Detector.GeometryLAr or prevFlags.Detector.GeometryTile))
dcf.addFlag('Detector.GeometryCSC', lambda prevFlags : GetDetDescrInfo(prevFlags.GeoModel.AtlasVersion).get('HasCSC',"True"))
dcf.addFlag('Detector.GeometryCalo', lambda prevFlags : (prevFlags.Detector.GeometryLAr or prevFlags.Detector.GeometryTile))
dcf.addFlag('Detector.GeometryCSC', lambda prevFlags : DetDescrInfo(prevFlags.GeoModel.AtlasVersion)['Muon']['HasCSC'])
dcf.addFlag('Detector.GeometryMDT', False)
dcf.addFlag('Detector.GeometryRPC', False)
dcf.addFlag('Detector.GeometryTGC', False)
dcf.addFlag('Detector.GeometrysTGC', lambda prevFlags : GetDetDescrInfo(prevFlags.GeoModel.AtlasVersion).get('HasSTGC',"True")) # Set default according to prevFlags.GeoModel.Run?
dcf.addFlag('Detector.GeometryMM', lambda prevFlags : GetDetDescrInfo(prevFlags.GeoModel.AtlasVersion).get('HasMM',"True")) # Set default according to prevFlags.GeoModel.Run?
dcf.addFlag('Detector.GeometrysTGC', lambda prevFlags : DetDescrInfo(prevFlags.GeoModel.AtlasVersion)['Muon']['HasSTGC'])
dcf.addFlag('Detector.GeometryMM', lambda prevFlags : DetDescrInfo(prevFlags.GeoModel.AtlasVersion)['Muon']['HasMM'])
dcf.addFlag('Detector.GeometryMuon', lambda prevFlags : (prevFlags.Detector.GeometryCSC or prevFlags.Detector.GeometryMDT or
prevFlags.Detector.GeometryRPC or prevFlags.Detector.GeometryTGC or
prevFlags.Detector.GeometrysTGC or prevFlags.Detector.GeometryMM))
......
# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
from AthenaConfiguration.AthConfigFlags import AthConfigFlags
from AthenaConfiguration.AutoConfigFlags import GetFileMD, GetDetDescrInfo
from AthenaConfiguration.AutoConfigFlags import GetFileMD, DetDescrInfo
def createGeoModelConfigFlags():
gcf=AthConfigFlags()
gcf.addFlag('GeoModel.Layout', 'atlas') # replaces global.GeoLayout
gcf.addFlag("GeoModel.AtlasVersion", lambda prevFlags : (prevFlags.Input.Files and prevFlags.Input.Files != ["_ATHENA_GENERIC_INPUTFILE_NAME_"] and GetFileMD(prevFlags.Input.Files).get("GeoAtlas",None)) or "ATLAS-R2-2016-01-00-01") #
gcf.addFlag("GeoModel.Align.Dynamic", lambda prevFlags : (not prevFlags.Detector.Simulate and not prevFlags.Input.isMC))
gcf.addFlag("GeoModel.StripGeoType", lambda prevFlags : GetDetDescrInfo(prevFlags.GeoModel.AtlasVersion).get('StripGeoType',"GMX")) # Based on CommonGeometryFlags.StripGeoType
gcf.addFlag("GeoModel.Run", lambda prevFlags : GetDetDescrInfo(prevFlags.GeoModel.AtlasVersion).get('Run',"RUN2")) # Based on CommonGeometryFlags.Run (InDetGeometryFlags.isSLHC replaced by GeoModel.Run=="RUN4")
gcf.addFlag("GeoModel.Type", lambda prevFlags : GetDetDescrInfo(prevFlags.GeoModel.AtlasVersion).get('GeoType',"UNDEFINED")) # Geometry type in {ITKLoI, ITkLoI-VF, etc...}
gcf.addFlag("GeoModel.IBLLayout", lambda prevFlags : GetDetDescrInfo(prevFlags.GeoModel.AtlasVersion).get('IBLlayout',"UNDEFINED")) # IBL layer layout in {"planar", "3D", "noIBL", "UNDEFINED"}
gcf.addFlag("GeoModel.AtlasVersion",
lambda prevFlags : ((prevFlags.Input.Files and
prevFlags.Input.Files != ["_ATHENA_GENERIC_INPUTFILE_NAME_"] and
GetFileMD(prevFlags.Input.Files).get("GeoAtlas",None))
or "ATLAS-R2-2016-01-00-01"))
gcf.addFlag("GeoModel.Align.Dynamic",
lambda prevFlags : not prevFlags.Detector.Simulate and not prevFlags.Input.isMC)
gcf.addFlag("GeoModel.StripGeoType",
lambda prevFlags : DetDescrInfo(prevFlags.GeoModel.AtlasVersion)['Common']['StripGeoType'])
gcf.addFlag("GeoModel.Run",
lambda prevFlags : DetDescrInfo(prevFlags.GeoModel.AtlasVersion)['Common']['Run'])
# Based on CommonGeometryFlags.Run (InDetGeometryFlags.isSLHC replaced by GeoModel.Run=="RUN4")
gcf.addFlag("GeoModel.Type",
lambda prevFlags : DetDescrInfo(prevFlags.GeoModel.AtlasVersion)['Common']['GeoType'])
# Geometry type in {ITKLoI, ITkLoI-VF, etc...}
gcf.addFlag("GeoModel.IBLLayout",
lambda prevFlags : DetDescrInfo(prevFlags.GeoModel.AtlasVersion)['Pixel']['IBLlayout'])
# IBL layer layout in {"planar", "3D", "noIBL"}
return gcf
# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
from AthenaConfiguration.AthConfigFlags import AthConfigFlags
from AthenaConfiguration.AutoConfigFlags import GetDetDescrInfo
from AthenaConfiguration.AutoConfigFlags import DetDescrInfo
import re
# Some comments from Ed about existing flags
......@@ -37,9 +37,9 @@ def createMuonConfigFlags():
mcf.addFlag("Muon.doMDTs",True)
mcf.addFlag("Muon.doTGCs",True)
mcf.addFlag("Muon.doRPCs",True)
mcf.addFlag("Muon.doCSCs",lambda prevFlags : GetDetDescrInfo(prevFlags.GeoModel.AtlasVersion).get('HasCSC',"True"))
mcf.addFlag("Muon.doMicromegas",lambda prevFlags : GetDetDescrInfo(prevFlags.GeoModel.AtlasVersion).get('HasMM',"True"))
mcf.addFlag("Muon.dosTGCs",lambda prevFlags : GetDetDescrInfo(prevFlags.GeoModel.AtlasVersion).get('HasSTGC',"True"))
mcf.addFlag("Muon.doCSCs",lambda prevFlags : DetDescrInfo(prevFlags.GeoModel.AtlasVersion)['Muon']['HasCSC'])
mcf.addFlag("Muon.doMicromegas",lambda prevFlags : DetDescrInfo(prevFlags.GeoModel.AtlasVersion)['Muon']['HasMM'])
mcf.addFlag("Muon.dosTGCs",lambda prevFlags : DetDescrInfo(prevFlags.GeoModel.AtlasVersion)['Muon']['HasSTGC'])
# stages of processing
# 1. Digitization
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment