diff --git a/Control/AthenaConfiguration/python/AutoConfigFlags.py b/Control/AthenaConfiguration/python/AutoConfigFlags.py
index b18ebd491b5880941135c1d867e4f99ccda54f41..cc58a4fb4b8a4e48c1f70bb960b5d66a69ebd7a8 100644
--- a/Control/AthenaConfiguration/python/AutoConfigFlags.py
+++ b/Control/AthenaConfiguration/python/AutoConfigFlags.py
@@ -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
diff --git a/Control/AthenaConfiguration/python/DetectorConfigFlags.py b/Control/AthenaConfiguration/python/DetectorConfigFlags.py
index 5960b079514a9e85b78a0e8e7eb4f6c9985c6055..886c1dadb2ba26121368cc6f1138182692bff239 100644
--- a/Control/AthenaConfiguration/python/DetectorConfigFlags.py
+++ b/Control/AthenaConfiguration/python/DetectorConfigFlags.py
@@ -1,9 +1,7 @@
 # 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))
diff --git a/Control/AthenaConfiguration/python/GeoModelConfigFlags.py b/Control/AthenaConfiguration/python/GeoModelConfigFlags.py
index 077dde3dfd56635d44c254c140d5d5cbea41733c..1c81c50711c90ff6275847f8559edbae2d32da7b 100644
--- a/Control/AthenaConfiguration/python/GeoModelConfigFlags.py
+++ b/Control/AthenaConfiguration/python/GeoModelConfigFlags.py
@@ -1,15 +1,35 @@
 # 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
diff --git a/MuonSpectrometer/MuonConfig/python/MuonConfigFlags.py b/MuonSpectrometer/MuonConfig/python/MuonConfigFlags.py
index 030bacb86902094e962485c74d69b2fe710a8f56..b3109196b6c8311023728d9d93cd4c8771df204c 100644
--- a/MuonSpectrometer/MuonConfig/python/MuonConfigFlags.py
+++ b/MuonSpectrometer/MuonConfig/python/MuonConfigFlags.py
@@ -1,7 +1,7 @@
-# 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