Skip to content
Snippets Groups Projects
Commit 94e450e3 authored by Frank Winklmeier's avatar Frank Winklmeier
Browse files

AutoConfigFlags: factorize detector description flags

Introduce a "detector" layer for the detector description flags to make
sure we don't have name collisions across systems. Adjust client code
accordingly.

Also remove the default values as those are already being set within the
detector specific GeoDB modules.
parent 285addf8
6 merge requests!58791DataQualityConfigurations: Modify L1Calo config for web display,!46784MuonCondInterface: Enable thread-safety checking.,!46776Updated LArMonitoring config file for WD to match new files produced using MT,!45405updated ART test cron job,!42417Draft: DIRE and VINCIA Base Fragments for Pythia 8.3,!39065AutoConfigFlags: factorize detector description flags
......@@ -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