diff --git a/Database/AthenaPOOL/AthenaPoolUtilities/share/TPCnvTest.py b/Database/AthenaPOOL/AthenaPoolUtilities/share/TPCnvTest.py
index acae9e8d1756a8103a0125473774491816f790cb..13ef5600186b88e4fafc80fe22e6841003c9f003 100644
--- a/Database/AthenaPOOL/AthenaPoolUtilities/share/TPCnvTest.py
+++ b/Database/AthenaPOOL/AthenaPoolUtilities/share/TPCnvTest.py
@@ -73,12 +73,11 @@ if have_atlas_geo:
     svcMgr.GeoModelSvc.IgnoreTagDifference = True
 
 if have_atlas_geo and moduleExists ('TrkEventCnvTools') and moduleExists ('MuonEventCnvTools'):
-    from AtlasGeoModel.CommonGMJobProperties import CommonGeometryFlags
     from AtlasGeoModel.MuonGMJobProperties import MuonGeometryFlags
     from TrkEventCnvTools import TrkEventCnvToolsConf
     EventCnvSuperTool = TrkEventCnvToolsConf.Trk__EventCnvSuperTool('EventCnvSuperTool')
     from MuonIdHelpers.MuonIdHelpersConf import Muon__MuonIdHelperSvc
-    svcMgr += Muon__MuonIdHelperSvc("MuonIdHelperSvc",HasCSC=MuonGeometryFlags.hasCSC(), HasSTgc=(CommonGeometryFlags.Run() in ["RUN3", "RUN4"]), HasMM=(CommonGeometryFlags.Run() in ["RUN3", "RUN4"]))
+    svcMgr += Muon__MuonIdHelperSvc("MuonIdHelperSvc",HasCSC=MuonGeometryFlags.hasCSC(), HasSTgc=MuonGeometryFlags.hasSTGC(), HasMM=MuonGeometryFlags.hasMM())
     ToolSvc += EventCnvSuperTool
 
 #
diff --git a/DetectorDescription/DetDescrCnvSvc/python/DetDescrCnvSvcConfig.py b/DetectorDescription/DetDescrCnvSvc/python/DetDescrCnvSvcConfig.py
index 180fb79ed88f2bd2929a4a4db3b14832ac188cf8..48efbf03c7c747f24e2e1dee1537ef48bf17dad8 100644
--- a/DetectorDescription/DetDescrCnvSvc/python/DetDescrCnvSvcConfig.py
+++ b/DetectorDescription/DetDescrCnvSvc/python/DetDescrCnvSvcConfig.py
@@ -2,7 +2,6 @@
 
 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
 
-from AtlasGeoModel.CommonGMJobProperties import CommonGeometryFlags
 from AtlasGeoModel.MuonGMJobProperties import MuonGeometryFlags
 
 def DetDescrCnvSvcCfg(configFlags=None):
@@ -13,8 +12,8 @@ def DetDescrCnvSvcCfg(configFlags=None):
     detDescrCnvSvc=DetDescrCnvSvc(IdDictName = "IdDictParser/ATLAS_IDS.xml",
                                   IdDictFromRDB = True,
                                   HasCSC=MuonGeometryFlags.hasCSC(),
-                                  HasSTgc=(CommonGeometryFlags.Run() in ["RUN3", "RUN4"]),
-                                  HasMM=(CommonGeometryFlags.Run() in ["RUN3", "RUN4"]))
+                                  HasSTgc=MuonGeometryFlags.hasSTGC(),
+                                  HasMM=MuonGeometryFlags.hasMM())
     acc.addService(detDescrCnvSvc)
     acc.addService(EvtPersistencySvc("EventPersistencySvc",CnvServices=[detDescrCnvSvc.getName(),])) #No service handle yet???
     return acc
diff --git a/DetectorDescription/DetDescrCnvSvc/python/DetStoreConfig.py b/DetectorDescription/DetDescrCnvSvc/python/DetStoreConfig.py
index 9125a9d7a203c322ad5645c63642cc7d67b49092..e14007180aacd961effc971c54c8d436ee3f9b46 100755
--- a/DetectorDescription/DetDescrCnvSvc/python/DetStoreConfig.py
+++ b/DetectorDescription/DetDescrCnvSvc/python/DetStoreConfig.py
@@ -15,15 +15,14 @@ def _setupDetStoreConfig():
 
     # now configure the Detector Description converter service
     from DetDescrCnvSvc.DetDescrCnvSvcConf import DetDescrCnvSvc
-    from AtlasGeoModel.CommonGMJobProperties import CommonGeometryFlags
     from AtlasGeoModel.MuonGMJobProperties import MuonGeometryFlags
     # Create DetDescrCnvSvc and add to SvcMgr
     # Specify primary Identifier dictionary to be used
     # and whether CSC/sTgc/MM muon chambers are part of the detector
     svcMgr += DetDescrCnvSvc(IdDictName = "IdDictParser/ATLAS_IDS.xml",
                              HasCSC=MuonGeometryFlags.hasCSC(),
-                             HasSTgc=(CommonGeometryFlags.Run() in ["RUN3", "RUN4"]),
-                             HasMM=(CommonGeometryFlags.Run() in ["RUN3", "RUN4"]))
+                             HasSTgc=MuonGeometryFlags.hasSTGC(),
+                             HasMM=MuonGeometryFlags.hasMM())
 
     #theApp.CreateSvc += [ svcMgr.DetDescrCnvSvc.getFullName() ]
     svcMgr.EventPersistencySvc.CnvServices += [ "DetDescrCnvSvc" ]
diff --git a/DetectorDescription/DetDescrCnvSvc/share/DetStore.py b/DetectorDescription/DetDescrCnvSvc/share/DetStore.py
index ed0a1eea70a81a1e636e7f596e4b56117d96731a..2a82ceb54d7087f627ec131df3f73e07b2fc98f8 100755
--- a/DetectorDescription/DetDescrCnvSvc/share/DetStore.py
+++ b/DetectorDescription/DetDescrCnvSvc/share/DetStore.py
@@ -24,8 +24,7 @@ EventPersistencySvc.CnvServices = [ "DetDescrCnvSvc" ]
 DetDescrCnvSvc.IdDictName = "IdDictParser/ATLAS_IDS.xml";
 
 # Specify whether CSC/sTgc/MM muon chambers are part of the detector
-from AtlasGeoModel.CommonGMJobProperties import CommonGeometryFlags
 from AtlasGeoModel.MuonGMJobProperties import MuonGeometryFlags
 DetDescrCnvSvc.HasCSC = MuonGeometryFlags.hasCSC()
-DetDescrCnvSvc.HasSTgc = (CommonGeometryFlags.Run() in ["RUN3", "RUN4"])
-DetDescrCnvSvc.HasMM = (CommonGeometryFlags.Run() in ["RUN3", "RUN4"])
+DetDescrCnvSvc.HasSTgc = MuonGeometryFlags.hasSTGC()
+DetDescrCnvSvc.HasMM = MuonGeometryFlags.hasMM()
diff --git a/DetectorDescription/DetDescrCnvSvc/share/DetStore_joboptions.py b/DetectorDescription/DetDescrCnvSvc/share/DetStore_joboptions.py
index 271a604577583e6092e343ecb4521261a83b1f5a..3d22aa20162414c35e7dbac96cd382011863c6b5 100755
--- a/DetectorDescription/DetDescrCnvSvc/share/DetStore_joboptions.py
+++ b/DetectorDescription/DetDescrCnvSvc/share/DetStore_joboptions.py
@@ -18,11 +18,10 @@ DetDescrCnvSvc = Service( "DetDescrCnvSvc" )
 DetDescrCnvSvc.IdDictName = "IdDictParser/ATLAS_IDS.xml"
 
 # Specify whether CSC/sTgc/MM muon chambers are part of the detector
-from AtlasGeoModel.CommonGMJobProperties import CommonGeometryFlags
 from AtlasGeoModel.MuonGMJobProperties import MuonGeometryFlags
 DetDescrCnvSvc.HasCSC = MuonGeometryFlags.hasCSC()
-DetDescrCnvSvc.HasSTgc = (CommonGeometryFlags.Run() in ["RUN3", "RUN4"])
-DetDescrCnvSvc.HasMM = (CommonGeometryFlags.Run() in ["RUN3", "RUN4"])
+DetDescrCnvSvc.HasSTgc = MuonGeometryFlags.hasSTGC()
+DetDescrCnvSvc.HasMM = MuonGeometryFlags.hasMM()
 
 # Specify the tag to be used
 # DetDescrCnvSvc.IdDictGlobalTag = "initial_layout"
diff --git a/DetectorDescription/GeoModel/AtlasGeoModel/python/Agdd2Geo.py b/DetectorDescription/GeoModel/AtlasGeoModel/python/Agdd2Geo.py
index f4e10065737c89462df269b6269b68f930d8efa2..581c3601798025025ccc83fdfcc8c6022f7363d8 100644
--- a/DetectorDescription/GeoModel/AtlasGeoModel/python/Agdd2Geo.py
+++ b/DetectorDescription/GeoModel/AtlasGeoModel/python/Agdd2Geo.py
@@ -1,7 +1,7 @@
 # Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 
 from AthenaCommon.DetFlags import DetFlags
-from AtlasGeoModel.CommonGMJobProperties import CommonGeometryFlags
+from AtlasGeoModel.MuonGMJobProperties import MuonGeometryFlags
 
 if ( DetFlags.detdescr.Muon_on() ):
     from AthenaCommon import CfgGetter
@@ -13,7 +13,7 @@ if ( DetFlags.detdescr.Muon_on() ):
     if not "MuonAGDDTool/MuonSpectrometer" in AGDD2Geo.Builders.__str__():
         AGDD2Geo.Builders += [CfgGetter.getPrivateTool("MuonSpectrometer", checkType=True)]
 
-    if CommonGeometryFlags.Run() == "RUN3" :
+    if (MuonGeometryFlags.hasSTGC() and MuonGeometryFlags.hasMM()):
         if not "NSWAGDDTool/NewSmallWheel" in AGDD2Geo.Builders.__str__():
             AGDD2Geo.Builders += [CfgGetter.getPrivateTool("NewSmallWheel", checkType=True)]
 
diff --git a/DetectorDescription/GeoModel/AtlasGeoModel/python/MuonGM.py b/DetectorDescription/GeoModel/AtlasGeoModel/python/MuonGM.py
index 4304efec894611f8713b030223c12dd0ed220b32..8c0210f2825da95617ff47047061ecd2669c678d 100755
--- a/DetectorDescription/GeoModel/AtlasGeoModel/python/MuonGM.py
+++ b/DetectorDescription/GeoModel/AtlasGeoModel/python/MuonGM.py
@@ -2,7 +2,6 @@
 
 from AthenaCommon.JobProperties import jobproperties
 from AthenaCommon.DetFlags      import DetFlags
-from AtlasGeoModel.CommonGMJobProperties import CommonGeometryFlags
 from AtlasGeoModel.MuonGMJobProperties import MuonGeometryFlags
 from AthenaCommon import Logging
 
@@ -15,8 +14,8 @@ elif ( DetFlags.detdescr.Muon_on() ):
 
     from MuonGeoModel.MuonGeoModelConf import MuonDetectorTool
     GeoModelSvc.DetectorTools += [ MuonDetectorTool(HasCSC=MuonGeometryFlags.hasCSC(),
-                                                    HasSTgc=(CommonGeometryFlags.Run() in ["RUN3", "RUN4"]),
-                                                    HasMM=(CommonGeometryFlags.Run() in ["RUN3", "RUN4"])) ]
+                                                    HasSTgc=MuonGeometryFlags.hasSTGC(),
+                                                    HasMM=MuonGeometryFlags.hasMM()) ]
     import os
     GeoModelSvc.DetectorTools[ "MuonDetectorTool" ].BuildFromNova = 0
     if ( ( not DetFlags.simulate.any_on() or DetFlags.overlay.any_on() ) and "AthSimulation_DIR" not in os.environ ):
diff --git a/DetectorDescription/GeoModel/AtlasGeoModel/python/MuonGMJobProperties.py b/DetectorDescription/GeoModel/AtlasGeoModel/python/MuonGMJobProperties.py
index a8845a41d35f2f48699d236d0c5d087a72e7279d..27140344eb1d483bbc2309334d2231c5c79969e9 100755
--- a/DetectorDescription/GeoModel/AtlasGeoModel/python/MuonGMJobProperties.py
+++ b/DetectorDescription/GeoModel/AtlasGeoModel/python/MuonGMJobProperties.py
@@ -2,7 +2,6 @@
 
 from AthenaCommon.JobProperties import JobProperty, JobPropertyContainer, jobproperties
 from AtlasGeoModel.CommonGMJobProperties import CommonGMFlags, CommonGeometryFlags
-from AthenaCommon import Logging
 
 # -------------------------------------------------------------------------------------
 #  Muon geometry flags initialization
@@ -16,19 +15,29 @@ class MuonGMFlags(CommonGMFlags, object):
         dbId,dbSwitches,dbParam = self.dbGeomCursor.GetCurrentLeafContent("MuonSwitches")
         _layoutName=None
         _hasCsc=True
+        _hasStgc=True
+        _hasMM=True
         if len(dbId)>0:
             key=dbId[0] 
             if "LAYOUTNAME" in dbParam: _layoutName = dbSwitches[key][dbParam.index("LAYOUTNAME")]
             if "HASCSC" in dbParam: _hasCsc = dbSwitches[key][dbParam.index("HASCSC")]
+            if "HASSTGC" in dbParam: _hasStgc = dbSwitches[key][dbParam.index("HASSTGC")]
+            if "HASMM" in dbParam: _hasMM = dbSwitches[key][dbParam.index("HASMM")]
             
         self.__dict__["Layout"] = (_layoutName if _layoutName else "UNDEFINED")
         if _hasCsc == 0: self.__dict__["HasCSC"] = False
         else: self.__dict__["HasCSC"] = True
+        if _hasStgc == 0: self.__dict__["HasSTGC"] = False
+        else: self.__dict__["HasSTGC"] = True
+        if _hasMM == 0: self.__dict__["HasMM"] = False
+        else: self.__dict__["HasMM"] = True
 
     def dump(self):
-        Logging.log.info("MuonGMFlags:")
-        Logging.log.info("Layout      = "+self.__dict__["Layout"])
-        Logging.log.info("HasCSC      = "+self.__dict__["HasCSC"])
+        print "MuonGMFlags:"
+        print "Layout      = ",self.__dict__["Layout"]
+        print "HasCSC      = ",self.__dict__["HasCSC"]
+        print "HasSTGC     = ",self.__dict__["HasSTGC"]
+        print "HasMM       = ",self.__dict__["HasMM"]
 
 
 class GeoLayout(JobProperty):
@@ -43,6 +52,17 @@ class hasCSC(JobProperty):
      allowedTypes = ['bool']
      StoredValue  = True
 
+class hasSTGC(JobProperty):
+     """ does the layout contain STGC chambers? """
+     statusOn     = True
+     allowedTypes = ['bool']
+     StoredValue  = True
+
+class hasMM(JobProperty):
+     """ does the layout contain MicroMegas chambers? """
+     statusOn     = True
+     allowedTypes = ['bool']
+     StoredValue  = True
 
 class MuonGeometryFlags_JobProperties(JobPropertyContainer):
     """ The geometry flag/job property container """
@@ -54,19 +74,27 @@ class MuonGeometryFlags_JobProperties(JobPropertyContainer):
         MuonGeoFlags = MuonGMFlags(geoTagName)
         self.GeoLayout.set_Value_and_Lock(MuonGeoFlags.getValue("Layout"))
         self.hasCSC.set_Value_and_Lock(MuonGeoFlags.getValue("HasCSC"))
+        self.hasSTGC.set_Value_and_Lock(MuonGeoFlags.getValue("HasSTGC"))
+        self.hasMM.set_Value_and_Lock(MuonGeoFlags.getValue("HasMM"))
 
     def reset(self,geoTagName="none"):
         self.GeoLayout.unlock()
         self.hasCSC.unlock()
+        self.hasSTGC.unlock()
+        self.hasMM.unlock()
 
     def dump(self):
-        Logging.log.info("Layout      = "+self.GeoLayout())
-        Logging.log.info("HasCSC      = "+self.hasCSC())
+        print "Layout      = ", self.GeoLayout()
+        print "HasCSC      = ", self.hasCSC()
+        print "HasSTGC     = ", self.hasSTGC()
+        print "HasMM       = ", self.hasMM()
 
 
 jobproperties.add_Container(MuonGeometryFlags_JobProperties)
 jobproperties.MuonGeometryFlags_JobProperties.add_JobProperty(GeoLayout)
 jobproperties.MuonGeometryFlags_JobProperties.add_JobProperty(hasCSC)
+jobproperties.MuonGeometryFlags_JobProperties.add_JobProperty(hasSTGC)
+jobproperties.MuonGeometryFlags_JobProperties.add_JobProperty(hasMM)
 
 MuonGeometryFlags = jobproperties.MuonGeometryFlags_JobProperties
 MuonGeometryFlags.setupValuesFromDB()
diff --git a/DetectorDescription/RegionSelector/python/RegSelConfig.py b/DetectorDescription/RegionSelector/python/RegSelConfig.py
index 91c00c2ef984d0a8735547fe8cf3a1745244d942..c79420f0d8223d58ade4a0aa88aad2d04678677a 100644
--- a/DetectorDescription/RegionSelector/python/RegSelConfig.py
+++ b/DetectorDescription/RegionSelector/python/RegSelConfig.py
@@ -112,7 +112,6 @@ if __name__ == "__main__":
     from AthenaConfiguration.TestDefaults import defaultTestFiles
     from AthenaCommon.Constants import DEBUG
 
-    from AtlasGeoModel.CommonGMJobProperties import CommonGeometryFlags
     from AtlasGeoModel.MuonGMJobProperties import MuonGeometryFlags
 
     ConfigFlags.Detector.GeometryPixel = True
@@ -126,10 +125,9 @@ if __name__ == "__main__":
     ConfigFlags.Detector.GeometryCSC   = True
     if not MuonGeometryFlags.hasCSC(): ConfigFlags.Detector.GeometryCSC = False
     ConfigFlags.Detector.GeometryMM   = True
+    if not MuonGeometryFlags.hasMM(): ConfigFlags.Detector.GeometryMM = False
     ConfigFlags.Detector.GeometrysTGC   = True
-    if not (CommonGeometryFlags.Run() in ["RUN3", "RUN4"]):
-        ConfigFlags.Detector.GeometryMM   = False
-        ConfigFlags.Detector.GeometrysTGC   = False
+    if not MuonGeometryFlags.hasSTGC(): ConfigFlags.Detector.GeometrysTGC = False
     
     ConfigFlags.Input.Files = defaultTestFiles.RAW    
     ConfigFlags.Input.isMC = False
diff --git a/DetectorDescription/RegionSelector/python/RegSelSvcDefault.py b/DetectorDescription/RegionSelector/python/RegSelSvcDefault.py
index f8121be32d05071e62fac9a12fbc608d074e53ac..511a0408b215dec2547051b66b8dbc8ecf718910 100755
--- a/DetectorDescription/RegionSelector/python/RegSelSvcDefault.py
+++ b/DetectorDescription/RegionSelector/python/RegSelSvcDefault.py
@@ -8,7 +8,6 @@ from AthenaCommon.SystemOfUnits import *  # loads MeV etc...
 # import the base class
 from RegionSelector.RegionSelectorConf import RegSelSvc
 
-from AtlasGeoModel.CommonGMJobProperties import CommonGeometryFlags
 from AtlasGeoModel.MuonGMJobProperties import MuonGeometryFlags
 
 class RegSelSvcDefault ( RegSelSvc )  :
@@ -109,17 +108,20 @@ class RegSelSvcDefault ( RegSelSvc )  :
                 tgcTable = TGC_RegionSelectorTable(name = "TGC_RegionSelectorTable")
                 mlog.debug(tgcTable)
 
+            # could avoid first check in case DetFlags.detdescr.CSC_on() would take into account MuonGeometryFlags already
             if MuonGeometryFlags.hasCSC() and DetFlags.detdescr.CSC_on():
                 from MuonRegionSelector.MuonRegionSelectorConf import CSC_RegionSelectorTable
                 cscTable = CSC_RegionSelectorTable(name = "CSC_RegionSelectorTable")
                 mlog.debug(cscTable)
 
-            if (CommonGeometryFlags.Run() in ["RUN3", "RUN4"]) and DetFlags.detdescr.Micromegas_on():
+            # could avoid first check in case DetFlags.detdescr.Micromegas_on() would take into account MuonGeometryFlags already
+            if MuonGeometryFlags.hasMM() and DetFlags.detdescr.Micromegas_on():
                 from MuonRegionSelector.MuonRegionSelectorConf import MM_RegionSelectorTable
                 mmTable = MM_RegionSelectorTable(name = "MM_RegionSelectorTable")
                 mlog.debug(mmTable)
 
-            if (CommonGeometryFlags.Run() in ["RUN3", "RUN4"]) and DetFlags.detdescr.sTGC_on():
+            # could avoid first check in case DetFlags.detdescr.sTGC_on() would take into account MuonGeometryFlags already
+            if MuonGeometryFlags.hasSTGC() and DetFlags.detdescr.sTGC_on():
                 from MuonRegionSelector.MuonRegionSelectorConf import sTGC_RegionSelectorTable
                 stgcTable = sTGC_RegionSelectorTable(name = "sTGC_RegionSelectorTable")
                 mlog.debug(stgcTable)
@@ -197,15 +199,18 @@ class RegSelSvcDefault ( RegSelSvc )  :
                 self.enableTGC = True
             else:
                 self.enableTGC = False
+            # could avoid first check in case DetFlags.detdescr.CSC_on() would take into account MuonGeometryFlags already
             if MuonGeometryFlags.hasCSC() and DetFlags.detdescr.CSC_on():
                 self.enableCSC = True
             else:
                 self.enableCSC = False
-            if (CommonGeometryFlags.Run() in ["RUN3", "RUN4"]) and DetFlags.detdescr.sTGC_on():
+            # could avoid first check in case DetFlags.detdescr.sTGC_on() would take into account MuonGeometryFlags already
+            if MuonGeometryFlags.hasSTGC() and DetFlags.detdescr.sTGC_on():
                 self.enablesTGC = True
             else:
                 self.enablesTGC = False
-            if (CommonGeometryFlags.Run() in ["RUN3", "RUN4"]) and DetFlags.detdescr.Micromegas_on():
+            # could avoid first check in case DetFlags.detdescr.Micromegas_on() would take into account MuonGeometryFlags already
+            if MuonGeometryFlags.hasMM() and DetFlags.detdescr.Micromegas_on():
                 self.enableMM = True
             else:
                 self.enableMM = False
diff --git a/Event/EventOverlay/EventOverlayJobTransforms/share/skeleton.OverlayBS_tf.py b/Event/EventOverlay/EventOverlayJobTransforms/share/skeleton.OverlayBS_tf.py
index 404b2a007d898746abed2285448f1ae7ec26ee5c..404674656fdd82d4afff79bb0a2dd6a0cf010d66 100644
--- a/Event/EventOverlay/EventOverlayJobTransforms/share/skeleton.OverlayBS_tf.py
+++ b/Event/EventOverlay/EventOverlayJobTransforms/share/skeleton.OverlayBS_tf.py
@@ -21,7 +21,7 @@ from AthenaCommon.AthenaCommonFlags  import athenaCommonFlags
 from OverlayCommonAlgs.OverlayFlags import overlayFlags
 
 from MuonRecExample.MuonRecFlags import muonRecFlags
-muonRecFlags.doCSCs.set_Value_and_Lock(True)
+if MuonGeometryFlags.hasCSC(): muonRecFlags.doCSCs.set_Value_and_Lock(True)
 
 from LArConditionsCommon.LArCondFlags import larCondFlags
 larCondFlags.LArCoolChannelSelection.set_Value_and_Lock("")
@@ -144,17 +144,10 @@ else:
     #DetFlags.overlay.LAr_setOff()
     DetFlags.overlay.Truth_setOn()
 
-## Tidy up NSW DetFlags: temporary measure
-DetFlags.sTGC_setOff()
-DetFlags.Micromegas_setOff()
-from AtlasGeoModel.CommonGMJobProperties import CommonGeometryFlags
-if (CommonGeometryFlags.Run() in ["RUN3", "RUN4"]):
-    DetFlags.sTGC_setOn()
-    DetFlags.Micromegas_setOn()
-
 from AtlasGeoModel.MuonGMJobProperties import MuonGeometryFlags
-if not MuonGeometryFlags.hasCSC():
-    DetFlags.CSC_setOff()
+if not MuonGeometryFlags.hasCSC(): DetFlags.CSC_setOff()
+if not MuonGeometryFlags.hasSTGC(): DetFlags.sTGC_setOff()
+if not MuonGeometryFlags.hasMM(): DetFlags.Micromegas_setOff()
 
 DetFlags.Print()
 
@@ -180,7 +173,7 @@ if DetFlags.overlay.pixel_on() or DetFlags.overlay.SCT_on() or DetFlags.overlay.
 if DetFlags.overlay.LAr_on() or DetFlags.overlay.Tile_on():
    include ( "EventOverlayJobTransforms/CaloOverlay_jobOptions.py" )
 
-if DetFlags.overlay.CSC_on() or DetFlags.overlay.MDT_on() or DetFlags.overlay.RPC_on() or DetFlags.overlay.TGC_on():
+if (MuonGeometryFlags.hasCSC() and DetFlags.overlay.CSC_on()) or DetFlags.overlay.MDT_on() or DetFlags.overlay.RPC_on() or DetFlags.overlay.TGC_on():
    include ( "EventOverlayJobTransforms/MuonOverlay_jobOptions.py" )
 
 if DetFlags.overlay.LVL1_on():
diff --git a/Event/EventOverlay/EventOverlayJobTransforms/share/skeleton.OverlayPool_tf.py b/Event/EventOverlay/EventOverlayJobTransforms/share/skeleton.OverlayPool_tf.py
index 13c6f4f9533c1d0fce937bbc79d789ad3640aecd..e334aeea937d0bbbe78ed97970be9fd7b8a0c32e 100644
--- a/Event/EventOverlay/EventOverlayJobTransforms/share/skeleton.OverlayPool_tf.py
+++ b/Event/EventOverlay/EventOverlayJobTransforms/share/skeleton.OverlayPool_tf.py
@@ -82,17 +82,10 @@ else:
 
     DetFlags.digitize.LVL1_setOff()
 
-if hasattr(runArgs,"geometryVersion") or not globalflags.DetDescrVersion.isDefault():
-    ## Tidy up NSW DetFlags
-    ## only do this if we can be sure globalflags.DetDescrVersion has been configured.
-    from AtlasGeoModel.CommonGMJobProperties import CommonGeometryFlags
-    if CommonGeometryFlags.Run() not in ["RUN3", "RUN4"]:
-        DetFlags.sTGC_setOff()
-        DetFlags.Micromegas_setOff()
-
-    from AtlasGeoModel.MuonGMJobProperties import MuonGeometryFlags
-    if not MuonGeometryFlags.hasCSC():
-        DetFlags.CSC_setOff()
+from AtlasGeoModel.MuonGMJobProperties import MuonGeometryFlags
+if not MuonGeometryFlags.hasCSC(): DetFlags.CSC_setOff()
+if not MuonGeometryFlags.hasSTGC(): DetFlags.sTGC_setOff()
+if not MuonGeometryFlags.hasMM(): DetFlags.Micromegas_setOff()
 
 DetFlags.Print()
 
@@ -170,7 +163,7 @@ if DetFlags.overlay.pixel_on() or DetFlags.overlay.SCT_on() or DetFlags.overlay.
 if DetFlags.overlay.LAr_on() or DetFlags.overlay.Tile_on():
    include ( "EventOverlayJobTransforms/CaloOverlay_jobOptions.py" )
 
-if DetFlags.overlay.CSC_on() or DetFlags.overlay.MDT_on() or DetFlags.overlay.RPC_on() or DetFlags.overlay.TGC_on() or DetFlags.overlay.sTGC_on() or DetFlags.overlay.Micromegas_on():
+if (MuonGeometryFlags.hasCSC() and DetFlags.overlay.CSC_on()) or DetFlags.overlay.MDT_on() or DetFlags.overlay.RPC_on() or DetFlags.overlay.TGC_on() or (MuonGeometryFlags.hasSTGC() and DetFlags.overlay.sTGC_on()) or (MuonGeometryFlags.hasMM() and DetFlags.overlay.Micromegas_on()):
    include ( "EventOverlayJobTransforms/MuonOverlay_jobOptions.py" )
 
 if DetFlags.overlay.LVL1_on():
diff --git a/Event/EventOverlay/EventOverlayJobTransforms/share/skeleton.Overlay_tf.py b/Event/EventOverlay/EventOverlayJobTransforms/share/skeleton.Overlay_tf.py
index 51bfac1f37623a2912acd1eab3486c0252704b12..95a9e6d63ef54fbe90250fbc5540d5949b35ffa5 100644
--- a/Event/EventOverlay/EventOverlayJobTransforms/share/skeleton.Overlay_tf.py
+++ b/Event/EventOverlay/EventOverlayJobTransforms/share/skeleton.Overlay_tf.py
@@ -109,19 +109,10 @@ else:
 
     DetFlags.digitize.LVL1_setOff()
 
-if hasattr(runArgs,"geometryVersion") or not globalflags.DetDescrVersion.isDefault():
-    ## Tidy up NSW DetFlags: temporary measure
-    ## only do this if we can be sure globalflags.DetDescrVersion has been configured.
-    DetFlags.sTGC_setOff()
-    DetFlags.Micromegas_setOff()
-    from AtlasGeoModel.CommonGMJobProperties import CommonGeometryFlags
-    if (CommonGeometryFlags.Run() in ["RUN3", "RUN4"]):
-        DetFlags.sTGC_setOn()
-        DetFlags.Micromegas_setOn()
-
-        from AtlasGeoModel.MuonGMJobProperties import MuonGeometryFlags
-        if not MuonGeometryFlags.hasCSC():
-            DetFlags.CSC_setOff()
+from AtlasGeoModel.MuonGMJobProperties import MuonGeometryFlags
+if not MuonGeometryFlags.hasCSC(): DetFlags.CSC_setOff()
+if not MuonGeometryFlags.hasSTGC(): DetFlags.sTGC_setOff()
+if not MuonGeometryFlags.hasMM(): DetFlags.Micromegas_setOff()
 
 # TODO: need to do it better
 #DetFlags.makeRIO.all_setOff() ## Currently has to be on otherwise InDetTRTStrawStatusSummarySvc is not created
@@ -198,7 +189,7 @@ if DetFlags.overlay.pixel_on() or DetFlags.overlay.SCT_on() or DetFlags.overlay.
 if DetFlags.overlay.LAr_on() or DetFlags.overlay.Tile_on():
     include ( "EventOverlayJobTransforms/CaloOverlay_jobOptions.py" )
 
-if DetFlags.overlay.CSC_on() or DetFlags.overlay.MDT_on() or DetFlags.overlay.RPC_on() or DetFlags.overlay.TGC_on() or DetFlags.overlay.sTGC_on() or DetFlags.overlay.Micromegas_on():
+if (MuonGeometryFlags.hasCSC() and DetFlags.overlay.CSC_on()) or DetFlags.overlay.MDT_on() or DetFlags.overlay.RPC_on() or DetFlags.overlay.TGC_on() or (MuonGeometryFlags.hasSTGC() and DetFlags.overlay.sTGC_on()) or (MuonGeometryFlags.hasMM() and DetFlags.overlay.Micromegas_on()):
     include ( "EventOverlayJobTransforms/MuonOverlay_jobOptions.py" )
 
 if DetFlags.overlay.LVL1_on():
diff --git a/MuonSpectrometer/MuonCnv/MuonByteStreamCnvTest/share/jobOptions_MuonRDOToDigit.py b/MuonSpectrometer/MuonCnv/MuonByteStreamCnvTest/share/jobOptions_MuonRDOToDigit.py
index d41e97860fd3ff3af0cc961fd13017b84cb26577..a68c1f66a3e5c751497679f33988eea7c6ffea6b 100644
--- a/MuonSpectrometer/MuonCnv/MuonByteStreamCnvTest/share/jobOptions_MuonRDOToDigit.py
+++ b/MuonSpectrometer/MuonCnv/MuonByteStreamCnvTest/share/jobOptions_MuonRDOToDigit.py
@@ -2,7 +2,6 @@ include.block ("MuonByteStreamCnvTest/jobOptions_MuonRDOToDigit.py")
 
 from AthenaCommon.CfgGetter import getPublicTool
 
-from AtlasGeoModel.CommonGMJobProperties import CommonGeometryFlags
 from AtlasGeoModel.MuonGMJobProperties import MuonGeometryFlags
 
 ## configure the tool
@@ -13,11 +12,11 @@ MuonRdoToMuonDigitTool = MuonRdoToMuonDigitTool (
                          DecodeRpcRDO = True,
                          DecodeTgcRDO = True,
                          DecodeCscRDO = MuonGeometryFlags.hasCSC(),
-                         DecodeSTGC_RDO = (CommonGeometryFlags.Run() in ["RUN3", "RUN4"]),
-                         DecodeMM_RDO = (CommonGeometryFlags.Run() in ["RUN3", "RUN4"]),
+                         DecodeSTGC_RDO = MuonGeometryFlags.hasSTGC(),
+                         DecodeMM_RDO = MuonGeometryFlags.hasMM(),
                          cscRdoDecoderTool=("Muon::CscRDO_Decoder" if MuonGeometryFlags.hasCSC() else ""),
-                         stgcRdoDecoderTool=("Muon::STGC_RDO_Decoder" if (CommonGeometryFlags.Run() in ["RUN3", "RUN4"]) else ""),
-                         mmRdoDecoderTool=("Muon::MM_RDO_Decoder" if (CommonGeometryFlags.Run() in ["RUN3", "RUN4"]) else "")
+                         stgcRdoDecoderTool=("Muon::STGC_RDO_Decoder" if MuonGeometryFlags.hasSTGC() else ""),
+                         mmRdoDecoderTool=("Muon::MM_RDO_Decoder" if MuonGeometryFlags.hasMM() else "")
                          )
 			 
 if MuonGeometryFlags.hasCSC(): MuonRdoToMuonDigitTool.cscCalibTool = getPublicTool("CscCalibTool")
diff --git a/MuonSpectrometer/MuonConfig/python/MuonConfigFlags.py b/MuonSpectrometer/MuonConfig/python/MuonConfigFlags.py
index 40e721c4f1b4a9b40808ec8b46535abef5e74721..a5876f048c341761ded19faaa6e1ebdd2c9b88e3 100644
--- a/MuonSpectrometer/MuonConfig/python/MuonConfigFlags.py
+++ b/MuonSpectrometer/MuonConfig/python/MuonConfigFlags.py
@@ -1,6 +1,7 @@
 # Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 
 from AthenaConfiguration.AthConfigFlags import AthConfigFlags
+from AtlasGeoModel.MuonGMJobProperties import MuonGeometryFlags
 import re
 
 # Some comments from Ed about existing flags
@@ -36,10 +37,9 @@ def createMuonConfigFlags():
     mcf.addFlag("Muon.doMDTs",True)
     mcf.addFlag("Muon.doTGCs",True)
     mcf.addFlag("Muon.doRPCs",True)
-    # TODO auto handle NSW here.
-    mcf.addFlag("Muon.doCSCs",True) 
-    mcf.addFlag("Muon.doMicromegas",False) 
-    mcf.addFlag("Muon.dosTGCs",False) 
+    mcf.addFlag("Muon.doCSCs",MuonGeometryFlags.hasCSC()) 
+    mcf.addFlag("Muon.doMicromegas",MuonGeometryFlags.hasMM()) 
+    mcf.addFlag("Muon.dosTGCs",MuonGeometryFlags.hasSTGC()) 
     
     # stages of processing
     # 1. Digitization
diff --git a/MuonSpectrometer/MuonConfig/python/MuonGeometryConfig.py b/MuonSpectrometer/MuonConfig/python/MuonGeometryConfig.py
index 20db94f66106f35b752e517a6de1415333f1919e..7b70a785380eb70bb3a675f29352d4882fd97273 100644
--- a/MuonSpectrometer/MuonConfig/python/MuonGeometryConfig.py
+++ b/MuonSpectrometer/MuonConfig/python/MuonGeometryConfig.py
@@ -6,7 +6,6 @@ from MuonGeoModel.MuonGeoModelConf import MuonDetectorTool
 from MuonIdHelpers.MuonIdHelpersConf import Muon__MuonIdHelperSvc
 from AGDD2GeoSvc.AGDD2GeoSvcConf import AGDDtoGeoSvc
 from MuonAGDD.MuonAGDDConf import MuonAGDDTool, NSWAGDDTool
-from AtlasGeoModel.CommonGMJobProperties import CommonGeometryFlags
 from AtlasGeoModel.MuonGMJobProperties import MuonGeometryFlags
 
 def MuonGeoModelCfg(flags):
@@ -19,8 +18,8 @@ def MuonGeoModelCfg(flags):
 
     detTool = MuonDetectorTool(
         HasCSC=MuonGeometryFlags.hasCSC(),
-        HasSTgc=(CommonGeometryFlags.Run() in ["RUN3", "RUN4"]),
-        HasMM=(CommonGeometryFlags.Run() in ["RUN3", "RUN4"])
+        HasSTgc=MuonGeometryFlags.hasSTGC(),
+        HasMM=MuonGeometryFlags.hasMM()
         )
     detTool.UseConditionDb = 1
     detTool.UseIlinesFromGM = 1
@@ -103,17 +102,12 @@ def MuonGeoModelCfg(flags):
         detTool.UseAsciiConditionData = 0
         if flags.Detector.SimulateMuon:
             detTool.FillCacheInitTime = 0
-            if flags.GeoModel.Run=="RUN3" or flags.GeoModel.Run=="RUN4":
-                detTool.StationSelection  = 2
-                detTool.SelectedStations  = [ "EIL1", "EIL2", "EIL6", "EIL7",
-                                              "EIS*", "EIL10", "EIL11", "EIL12",
-                                              "EIL17", "CSS*", "CSL*", "T4E*",
-                                              "T4F*" ]
+
             ## Additional material in the muon system
             AGDD2Geo = AGDDtoGeoSvc()
             muonAGDDTool = MuonAGDDTool("MuonSpectrometer", BuildNSW=False)
             AGDD2Geo.Builders += [ muonAGDDTool ]
-            if flags.GeoModel.Run=="RUN3" or flags.GeoModel.Run=="RUN4":
+            if (MuonGeometryFlags.hasSTGC() and MuonGeometryFlags.hasMM()):
                 nswAGDDTool = NSWAGDDTool("NewSmallWheel", Locked=False)
                 nswAGDDTool.Volumes = ["NewSmallWheel"]
                 nswAGDDTool.DefaultDetector = "Muon"
@@ -124,8 +118,8 @@ def MuonGeoModelCfg(flags):
 
     acc.addService( Muon__MuonIdHelperSvc("MuonIdHelperSvc",
         HasCSC=MuonGeometryFlags.hasCSC(),
-        HasSTgc=(CommonGeometryFlags.Run() in ["RUN3", "RUN4"]),
-        HasMM=(CommonGeometryFlags.Run() in ["RUN3", "RUN4"])
+        HasSTgc=MuonGeometryFlags.hasSTGC(),
+        HasMM=MuonGeometryFlags.hasMM()
         ) )
 
     return acc
diff --git a/MuonSpectrometer/MuonConfig/python/MuonRecToolsConfig.py b/MuonSpectrometer/MuonConfig/python/MuonRecToolsConfig.py
index 00f1bc851f86105cf34b8e3f7819b728b14639e9..ba19fac9ae0feffddc557903521e9d6b13bd42a9 100644
--- a/MuonSpectrometer/MuonConfig/python/MuonRecToolsConfig.py
+++ b/MuonSpectrometer/MuonConfig/python/MuonRecToolsConfig.py
@@ -66,7 +66,6 @@ def MuonSeededSegmentFinderCfg(flags,name="MuonSeededSegmentFinder", **kwargs):
 def MuonSegmentMomentumFromFieldCfg(flags, name="MuonSegmentMomentumFromField", **kwargs):
     from MuonSegmentMomentum.MuonSegmentMomentumConf import MuonSegmentMomentumFromField
     from MagFieldServices.MagFieldServicesConfig import MagneticFieldSvcCfg
-    from AtlasGeoModel.CommonGMJobProperties import CommonGeometryFlags
     from AtlasGeoModel.MuonGMJobProperties import MuonGeometryFlags
     
     result = ComponentAccumulator()
@@ -88,7 +87,7 @@ def MuonSegmentMomentumFromFieldCfg(flags, name="MuonSegmentMomentumFromField",
     kwargs.setdefault("PropagatorTool", muon_prop)
     
     kwargs.setdefault("HasCSC",  MuonGeometryFlags.hasCSC())
-    kwargs.setdefault("HasSTgc", (CommonGeometryFlags.Run() in ["RUN3", "RUN4"]))
+    kwargs.setdefault("HasSTgc", MuonGeometryFlags.hasSTGC())
         
     muon_seg_mom_from_field = MuonSegmentMomentumFromField(name=name, **kwargs)
     result.setPrivateTools(muon_seg_mom_from_field)
diff --git a/MuonSpectrometer/MuonDetDescr/MuonAGDD/python/MuonAGDDConfig.py b/MuonSpectrometer/MuonDetDescr/MuonAGDD/python/MuonAGDDConfig.py
index 68617e53bd0d927f70c136fe8466e86fdf283193..29465e7ddea93f7c40f345466e1ffb2cebd21a7d 100644
--- a/MuonSpectrometer/MuonDetDescr/MuonAGDD/python/MuonAGDDConfig.py
+++ b/MuonSpectrometer/MuonDetDescr/MuonAGDD/python/MuonAGDDConfig.py
@@ -1,12 +1,6 @@
-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-
-# As of the summer of 2018, there is no way to turn off the NSW for RUN3 configuration
-# By default for RUN3, readAGDD is true so the NSW information is pulled directly from the database
-# If the user sets readAGDD to false in the config files, an XML file must be defined also.
-# Otherwise, with readAGDD overwritten to false, the job will crash 
+# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 
 from AthenaCommon import CfgMgr
-from AtlasGeoModel.CommonGMJobProperties import CommonGeometryFlags
 
 def MuonAGDDTool(name="MuonSpectrometer", **kwargs):
     kwargs.setdefault("BuildNSW", False)
@@ -14,9 +8,6 @@ def MuonAGDDTool(name="MuonSpectrometer", **kwargs):
 
 def NSWAGDDTool(name="NewSmallWheel", **kwargs):
     kwargs.setdefault("Locked", False)
-    if not CommonGeometryFlags.Run() == "RUN3" :
-        kwargs.setdefault("XMLFiles", ["NSW_StationDescription.xml"])
     kwargs.setdefault("Volumes", ["NewSmallWheel"])
     kwargs.setdefault("DefaultDetector", "Muon")
     return CfgMgr.NSWAGDDTool(name, **kwargs)
-
diff --git a/MuonSpectrometer/MuonDetDescr/MuonRegionSelector/share/MuonRegionSelectorTable_jobOptions.py b/MuonSpectrometer/MuonDetDescr/MuonRegionSelector/share/MuonRegionSelectorTable_jobOptions.py
index ecdf575e962a3a871b569e224d0e22e26d2cca1e..9999734ee3b97dff59abaf931ffe0a656dd8e34f 100644
--- a/MuonSpectrometer/MuonDetDescr/MuonRegionSelector/share/MuonRegionSelectorTable_jobOptions.py
+++ b/MuonSpectrometer/MuonDetDescr/MuonRegionSelector/share/MuonRegionSelectorTable_jobOptions.py
@@ -6,6 +6,7 @@
 
 include.block("MuonRegionSelector/MuonRegionSelectorTable_jobOptions.py")
 
+from AtlasGeoModel.MuonGMJobProperties import MuonGeometryFlags
 
 # get DetFlags
 from AthenaCommon.DetFlags import DetFlags
@@ -14,9 +15,6 @@ topSequence = AlgSequence()
 # get ToolSvc
 ToolSvc = Service( "ToolSvc" )
 
-from AtlasGeoModel.CommonGMJobProperties import CommonGeometryFlags
-from AtlasGeoModel.MuonGMJobProperties import MuonGeometryFlags
-
 #### RPC ####
 
 if DetFlags.detdescr.RPC_on():
@@ -43,6 +41,7 @@ else :
 
 #### CSC ####
 
+# could avoid first check in case DetFlags.detdescr.CSC_on() would take into account MuonGeometryFlags already
 if MuonGeometryFlags.hasCSC() and DetFlags.detdescr.CSC_on():
     from MuonRegionSelector.MuonRegionSelectorConf import CSC_RegionSelectorTable
     CSC_RegionSelectorTable = CSC_RegionSelectorTable(name = "CSC_RegionSelectorTable")
@@ -66,7 +65,8 @@ else :
 
 #### New small wheel ####
 
-if (CommonGeometryFlags.Run() in ["RUN3", "RUN4"]) and DetFlags.detdescr.Micromegas_on():
+# could avoid first check in case DetFlags.detdescr.Micromegas_on() would take into account MuonGeometryFlags already
+if MuonGeometryFlags.hasMM() and DetFlags.detdescr.Micromegas_on():
     from MuonRegionSelector.MuonRegionSelectorConf import MM_RegionSelectorTable
     MM_RegionSelectorTable = MM_RegionSelectorTable(name = "MM_RegionSelectorTable")
 
@@ -76,7 +76,8 @@ else :
     MM_RegionSelectorTable = None
 
 
-if (CommonGeometryFlags.Run() in ["RUN3", "RUN4"]) and DetFlags.detdescr.sTGC_on():
+# could avoid first check in case DetFlags.detdescr.sTGC_on() would take into account MuonGeometryFlags already
+if MuonGeometryFlags.hasSTGC() and DetFlags.detdescr.sTGC_on():
     from MuonRegionSelector.MuonRegionSelectorConf import sTGC_RegionSelectorTable
     sTGC_RegionSelectorTable = sTGC_RegionSelectorTable(name = "sTGC_RegionSelectorTable")
 
diff --git a/MuonSpectrometer/MuonReconstruction/MuonRecExample/python/MooreTools.py b/MuonSpectrometer/MuonReconstruction/MuonRecExample/python/MooreTools.py
index 5647cca1072df8b769c6c397c574bd2a3d852c2c..8ce4c5b14cab392399c79b0a8beb0f1789b9ac21 100644
--- a/MuonSpectrometer/MuonReconstruction/MuonRecExample/python/MooreTools.py
+++ b/MuonSpectrometer/MuonReconstruction/MuonRecExample/python/MooreTools.py
@@ -36,7 +36,6 @@ from MuonRecUtils import logMuon,ConfiguredBase,ExtraFlags
 from MuonRecFlags import muonRecFlags
 from MuonStandaloneFlags import muonStandaloneFlags
 from AtlasGeoModel.MuonGMJobProperties import MuonGeometryFlags
-from AtlasGeoModel.CommonGMJobProperties import CommonGeometryFlags
 #==============================================================
 
 # call  setDefaults to update flags
@@ -337,11 +336,9 @@ def MuonSeededSegmentFinder(name="MuonSeededSegmentFinder",**kwargs):
         kwargs.setdefault("SegmentMaker", segMaker)
         kwargs.setdefault("SegmentMakerNoHoles", segMaker)
 
-        if not MuonGeometryFlags.hasCSC():
-            kwargs.setdefault("CscPrepDataContainer","")
-        if not (CommonGeometryFlags.Run() in ["RUN3", "RUN4"]):
-            kwargs.setdefault("sTgcPrepDataContainer","")
-            kwargs.setdefault("MMPrepDataContainer","")
+        if not MuonGeometryFlags.hasCSC(): kwargs.setdefault("CscPrepDataContainer","")
+        if not MuonGeometryFlags.hasSTGC(): kwargs.setdefault("sTgcPrepDataContainer","")
+        if not MuonGeometryFlags.hasMM(): kwargs.setdefault("MMPrepDataContainer","")
     
     return CfgMgr.Muon__MuonSeededSegmentFinder(name,**kwargs)
 
@@ -421,9 +418,8 @@ def MuonChamberHoleRecoveryTool(name="MuonChamberHoleRecoveryTool",extraFlags=No
     # add in missing C++ dependency. TODO: fix in C++
     getPublicTool("ResidualPullCalculator")
 
-    if not (CommonGeometryFlags.Run() in ["RUN3", "RUN4"]):
-        kwargs.setdefault("sTgcPrepDataContainer","")
-        kwargs.setdefault("MMPrepDataContainer","")
+    if not MuonGeometryFlags.hasSTGC(): kwargs.setdefault("sTgcPrepDataContainer","")
+    if not MuonGeometryFlags.hasMM(): kwargs.setdefault("MMPrepDataContainer","")
 
     #MDT conditions information not available online
     if(athenaCommonFlags.isOnline):
diff --git a/MuonSpectrometer/MuonReconstruction/MuonRecExample/python/MuonRecTools.py b/MuonSpectrometer/MuonReconstruction/MuonRecExample/python/MuonRecTools.py
index 31172b28c0e278691709114cc1c2068196644054..e73e942cba7c8d9a240f4da0d45742a75b365e38 100644
--- a/MuonSpectrometer/MuonReconstruction/MuonRecExample/python/MuonRecTools.py
+++ b/MuonSpectrometer/MuonReconstruction/MuonRecExample/python/MuonRecTools.py
@@ -33,7 +33,6 @@ from AthenaCommon.CfgGetter import getPrivateTool,getPrivateToolClone,getPublicT
 # temporarily for backwards compat. TO BE REMOVED
 from AthenaCommon.CfgGetter import addTool,addToolClone,addService
 
-from AtlasGeoModel.CommonGMJobProperties import CommonGeometryFlags
 from AtlasGeoModel.MuonGMJobProperties import MuonGeometryFlags
 from TriggerJobOpts.TriggerFlags import TriggerFlags
 
@@ -243,8 +242,8 @@ def MuonIdHelperTool(name="MuonIdHelperTool",**kwargs):
 def MuonIdHelperSvc(name="MuonIdHelperSvc",**kwargs):
     from MuonIdHelpers.MuonIdHelpersConf import Muon__MuonIdHelperSvc
     kwargs.setdefault("HasCSC", MuonGeometryFlags.hasCSC())
-    kwargs.setdefault("HasSTgc", (CommonGeometryFlags.Run() in ["RUN3", "RUN4"]))
-    kwargs.setdefault("HasMM", (CommonGeometryFlags.Run() in ["RUN3", "RUN4"]))
+    kwargs.setdefault("HasSTgc", MuonGeometryFlags.hasSTGC())
+    kwargs.setdefault("HasMM", MuonGeometryFlags.hasMM())
     return Muon__MuonIdHelperSvc(name,**kwargs)
 
 def MuonStraightLineExtrapolator(name="MuonStraightLineExtrapolator",**kwargs):
diff --git a/MuonSpectrometer/MuonReconstruction/MuonRecExample/python/MuonStandalone.py b/MuonSpectrometer/MuonReconstruction/MuonRecExample/python/MuonStandalone.py
index 5d92a8d0f3166e8f35977632b2db82fa9c26bae7..39c3de3aff1e1c4394bbb08d13fc5d1feba77780 100644
--- a/MuonSpectrometer/MuonReconstruction/MuonRecExample/python/MuonStandalone.py
+++ b/MuonSpectrometer/MuonReconstruction/MuonRecExample/python/MuonStandalone.py
@@ -157,9 +157,8 @@ class MuonStandalone(ConfiguredMuonRec):
         if muonStandaloneFlags.segmentOrigin == 'TruthTracking':
             SegmentLocation = "ThirdChainSegments"
 
-        # we assume that RUN3 or RUN4 means that at least one sTgc and one MM chamber is present
-        from AtlasGeoModel.CommonGMJobProperties import CommonGeometryFlags
-        if (CommonGeometryFlags.Run() in ["RUN3", "RUN4"]):
+        # do the following in case of (at least one) NSW
+        if (MuonGeometryFlags.hasSTGC() and MuonGeometryFlags.hasMM()):
             getPublicTool("MuonLayerHoughTool")
             self.addAlg( CfgMgr.MuonLayerHoughAlg( "MuonLayerHoughAlg", PrintSummary = muonStandaloneFlags.printSummary()  ) )
             if not muonStandaloneFlags.patternsOnly():
diff --git a/MuonSpectrometer/MuonReconstruction/MuonRecExample/share/MuonRDO_to_PRD_jobOptions.py b/MuonSpectrometer/MuonReconstruction/MuonRecExample/share/MuonRDO_to_PRD_jobOptions.py
index 6bc428a45a8351af496a4d7e323e2e6b0e87026c..6705ccdb8053f9caa6ff12ee495f23a674d4edf2 100644
--- a/MuonSpectrometer/MuonReconstruction/MuonRecExample/share/MuonRDO_to_PRD_jobOptions.py
+++ b/MuonSpectrometer/MuonReconstruction/MuonRecExample/share/MuonRDO_to_PRD_jobOptions.py
@@ -19,7 +19,6 @@ beamFlags = jobproperties.Beam
 from AthenaCommon.CfgGetter import getAlgorithm
 from MuonRecExample.MuonPrdProviderToolsConfig import RpcPrepDataProviderTool, MdtPrepDataProviderTool, TgcPrepDataProviderTool, CscPrepDataProviderTool
 
-from AtlasGeoModel.CommonGMJobProperties import CommonGeometryFlags
 from AtlasGeoModel.MuonGMJobProperties import MuonGeometryFlags
 
 if MuonGeometryFlags.hasCSC() and muonRecFlags.doCSCs() and DetFlags.makeRIO.CSC_on() and (DetFlags.haveRDO.CSC_on() or DetFlags.digitize.CSC_on()):
@@ -39,7 +38,7 @@ if muonRecFlags.doTGCs() and DetFlags.makeRIO.TGC_on() and (DetFlags.haveRDO.TGC
     topSequence.TgcRdoToTgcPrepData.DecodingTool = TgcPrepDataProviderTool()
 
 if not muonRecFlags.doFastDigitization():
-    if (CommonGeometryFlags.Run() in ["RUN3", "RUN4"]):
+    if (MuonGeometryFlags.hasSTGC() and MuonGeometryFlags.hasMM()):
         if muonRecFlags.dosTGCs() and DetFlags.makeRIO.sTGC_on() and (DetFlags.haveRDO.sTGC_on() or DetFlags.digitize.sTGC_on()):
             topSequence += getAlgorithm("StgcRdoToStgcPrepData", tryDefaultConfigurable=True)
         if muonRecFlags.doMicromegas() and DetFlags.makeRIO.Micromegas_on() and (DetFlags.haveRDO.Micromegas_on() or DetFlags.digitize.Micromegas_on()):
diff --git a/MuonSpectrometer/MuonReconstruction/MuonRecExample/share/MuonRecOutputItemList_jobOptions.py b/MuonSpectrometer/MuonReconstruction/MuonRecExample/share/MuonRecOutputItemList_jobOptions.py
index b17a073aa5ef581c0fbfad9935da6c6bd5065143..b9b149554ae0de20c6df3a7e7762816a7ad3dccb 100644
--- a/MuonSpectrometer/MuonReconstruction/MuonRecExample/share/MuonRecOutputItemList_jobOptions.py
+++ b/MuonSpectrometer/MuonReconstruction/MuonRecExample/share/MuonRecOutputItemList_jobOptions.py
@@ -3,7 +3,6 @@ from RecExConfig.RecFlags import rec
 from MuonRecExample.MuonRecFlags import muonRecFlags
 from AthenaCommon.BeamFlags import jobproperties
 
-from AtlasGeoModel.CommonGMJobProperties import CommonGeometryFlags
 from AtlasGeoModel.MuonGMJobProperties import MuonGeometryFlags
 
 #AOD list, also added to the ESD
@@ -44,9 +43,10 @@ if DetFlags.detdescr.Muon_on() and (rec.doWriteAOD() or rec.doWriteESD()):
       MuonAODList += [ "xAOD::TrackMeasurementValidationContainer#RPC_Measurements"] 
       MuonAODList += [ "xAOD::TrackMeasurementValidationAuxContainer#RPC_MeasurementsAux."] 
       MuonAODList += [ "xAOD::TrackMeasurementValidationContainer#TGC_MeasurementsAllBCs"] 
-      MuonAODList += [ "xAOD::TrackMeasurementValidationAuxContainer#TGC_MeasurementsAllBCsAux."] 
-      MuonAODList += [ "xAOD::TrackMeasurementValidationContainer#CSC_Clusters"] 
-      MuonAODList += [ "xAOD::TrackMeasurementValidationAuxContainer#CSC_ClustersAux."] 
+      MuonAODList += [ "xAOD::TrackMeasurementValidationAuxContainer#TGC_MeasurementsAllBCsAux."]
+      if MuonGeometryFlags.hasCSC():
+         MuonAODList += [ "xAOD::TrackMeasurementValidationContainer#CSC_Clusters"] 
+         MuonAODList += [ "xAOD::TrackMeasurementValidationAuxContainer#CSC_ClustersAux."] 
       if muonRecFlags.doCreateClusters:
          MuonAODList += [ "xAOD::TrackMeasurementValidationContainer#RPC_Clusters"] 
          MuonAODList += [ "xAOD::TrackMeasurementValidationAuxContainer#RPC_ClustersAux."] 
@@ -65,9 +65,8 @@ if DetFlags.detdescr.Muon_on() and rec.doWriteESD():
 
 
    #PRDs
-   if (CommonGeometryFlags.Run() in ["RUN3", "RUN4"]):
-      MuonESDList+=["Muon::MMPrepDataContainer#MM_Measurements"]
-      MuonESDList+=["Muon::sTgcPrepDataContainer#STGC_Measurements"]
+   if MuonGeometryFlags.hasMM(): MuonESDList+=["Muon::MMPrepDataContainer#MM_Measurements"]
+   if MuonGeometryFlags.hasSTGC(): MuonESDList+=["Muon::sTgcPrepDataContainer#STGC_Measurements"]
    if MuonGeometryFlags.hasCSC():
       MuonESDList+=["Muon::CscPrepDataContainer#CSC_Clusters"]
       MuonESDList+=["Muon::CscStripPrepDataContainer#CSC_Measurements"]
@@ -94,22 +93,22 @@ if DetFlags.detdescr.Muon_on() and rec.doWriteESD():
       MuonESDList += [ "TrackRecordCollection#MuonEntryLayerFilter" ]
       MuonESDList += [ "TrackRecordCollection#MuonExitLayerFilter" ]
                
-      MuonESDList += ["PRD_MultiTruthCollection#MDT_TruthMap","PRD_MultiTruthCollection#CSC_TruthMap","PRD_MultiTruthCollection#RPC_TruthMap",
-                      "PRD_MultiTruthCollection#TGC_TruthMap","PRD_MultiTruthCollection#STGC_TruthMap","PRD_MultiTruthCollection#MM_TruthMap"]
+      MuonESDList += ["PRD_MultiTruthCollection#MDT_TruthMap","PRD_MultiTruthCollection#RPC_TruthMap", "PRD_MultiTruthCollection#TGC_TruthMap"]
+      if MuonGeometryFlags.hasCSC(): MuonESDList += ["PRD_MultiTruthCollection#CSC_TruthMap"]
+      if MuonGeometryFlags.hasSTGC(): MuonESDList += ["PRD_MultiTruthCollection#STGC_TruthMap"]
+      if MuonGeometryFlags.hasMM(): MuonESDList += ["PRD_MultiTruthCollection#MM_TruthMap"]
 
       #Track truth
       MuonESDList+=["DetailedTrackTruthCollection#MuonSpectrometerTracksTruth"]
       MuonESDList+=["TrackTruthCollection#MuonSpectrometerTracksTruth"]
 
       if muonRecFlags.writeSDOs():
-         if MuonGeometryFlags.hasCSC():
-            MuonESDList+=["CscSimDataCollection#CSC_SDO"]
+         if MuonGeometryFlags.hasCSC(): MuonESDList+=["CscSimDataCollection#CSC_SDO"]
          MuonESDList+=["MuonSimDataCollection#MDT_SDO"]
          MuonESDList+=["MuonSimDataCollection#RPC_SDO"]
          MuonESDList+=["MuonSimDataCollection#TGC_SDO"]
-         if (CommonGeometryFlags.Run() in ["RUN3", "RUN4"]):
-            MuonESDList+=["MuonSimDataCollection#STGC_SDO"]
-            MuonESDList+=["MuonSimDataCollection#MM_SDO"]
+         if MuonGeometryFlags.hasSTGC(): MuonESDList+=["MuonSimDataCollection#STGC_SDO"]
+         if MuonGeometryFlags.hasMM(): MuonESDList+=["MuonSimDataCollection#MM_SDO"]
 
    # commenting if-statement since mandatory for e.g. RPC calibration
    # Write out CSC, RPC, and MDT RDOs.
diff --git a/MuonSpectrometer/MuonReconstruction/MuonRecExample/share/MuonRec_jobOptions.py b/MuonSpectrometer/MuonReconstruction/MuonRecExample/share/MuonRec_jobOptions.py
index a65b657cd605803f13985851390dfbc32c4c612f..f475c3a39420ca59189d53d456e111f79dab01ba 100644
--- a/MuonSpectrometer/MuonReconstruction/MuonRecExample/share/MuonRec_jobOptions.py
+++ b/MuonSpectrometer/MuonReconstruction/MuonRecExample/share/MuonRec_jobOptions.py
@@ -26,7 +26,6 @@ from RecExConfig.RecAlgsFlags import recAlgs
 from MuonRecExample.MuonAlignFlags import muonAlignFlags
 from AthenaCommon.AppMgr import ToolSvc
 
-from AtlasGeoModel.CommonGMJobProperties import CommonGeometryFlags
 from AtlasGeoModel.MuonGMJobProperties import MuonGeometryFlags
 
 muonRecFlags.setDefaults()
@@ -40,8 +39,8 @@ if rec.readESD() or rec.readAOD():
     MuonIdHelperTool()
 
 if muonRecFlags.doCSCs() and not MuonGeometryFlags.hasCSC(): muonRecFlags.doCSCs = False
-if muonRecFlags.dosTGCs() and (CommonGeometryFlags.Run() not in ["RUN3", "RUN4"]): muonRecFlags.dosTGCs = False
-if muonRecFlags.doMicromegas() and (CommonGeometryFlags.Run() not in ["RUN3", "RUN4"]): muonRecFlags.doMicromegas = False
+if muonRecFlags.dosTGCs() and not MuonGeometryFlags.hasSTGC(): muonRecFlags.dosTGCs = False
+if muonRecFlags.doMicromegas() and not MuonGeometryFlags.hasMM(): muonRecFlags.doMicromegas = False
 
 if muonRecFlags.doDigitization():
     include("MuonRecExample/MuonDigitization_jobOptions.py")
@@ -81,7 +80,7 @@ if rec.readESD() and DetFlags.readRIOPool.TGC_on():
     include("MuonTGC_CnvTools/TgcPrepDataReplicationAlg_jopOptions.py")
 
 if muonRecFlags.doFastDigitization():
-    if CommonGeometryFlags.Run() in ["RUN3", "RUN4"]:
+    if (MuonGeometryFlags.hasSTGC() and MuonGeometryFlags.hasMM()):
         #if DetFlags.Micromegas_on() and DetFlags.digitize.Micromegas_on():    
         from MuonFastDigitization.MuonFastDigitizationConf import MM_FastDigitizer
         topSequence += MM_FastDigitizer("MM_FastDigitizer")
@@ -116,8 +115,9 @@ if rec.doTruth() and DetFlags.makeRIO.Muon_on():
    from AthenaCommon import CfgGetter
    topSequence.MuonTruthDecorationAlg.MCTruthClassifier = CfgGetter.getPublicTool(MCTruthClassifier(name="MCTruthClassifier",ParticleCaloExtensionTool=""))
    topSequence.MuonTruthDecorationAlg.SDOs=["RPC_SDO","TGC_SDO","MDT_SDO"]
-   if CommonGeometryFlags.Run() in ["RUN3", "RUN4"]:
+   if (MuonGeometryFlags.hasSTGC() and MuonGeometryFlags.hasMM()):
        topSequence.MuonTruthDecorationAlg.SDOs+=["MM_SDO","sTGC_SDO"]
+   if not MuonGeometryFlags.hasCSC(): topSequence.MuonTruthDecorationAlg.CSCSDOs = ""
 
    try:
        from PyUtils.MetaReaderPeeker import metadata
@@ -151,7 +151,7 @@ if muonRecFlags.doStandalone():
         from TrkTruthAlgs.TrkTruthAlgsConf import TrackTruthSelector
         from TrkTruthAlgs.TrkTruthAlgsConf import TrackParticleTruthAlg
         col =  "MuonSpectrometerTracks" 
-        topSequence += MuonDetailedTrackTruthMaker(name="MuonStandaloneDetailedTrackTruthMaker", TrackCollectionNames = [col], HasCSC=MuonGeometryFlags.hasCSC(), HasSTgc=(CommonGeometryFlags.Run() in ["RUN3", "RUN4"]), HasMM=(CommonGeometryFlags.Run() in ["RUN3", "RUN4"]))
+        topSequence += MuonDetailedTrackTruthMaker(name="MuonStandaloneDetailedTrackTruthMaker", TrackCollectionNames = [col], HasCSC=MuonGeometryFlags.hasCSC(), HasSTgc=MuonGeometryFlags.hasSTGC(), HasMM=MuonGeometryFlags.hasMM())
         topSequence += TrackTruthSelector(name= col + "Selector", 
                                           DetailedTrackTruthName = col + "DetailedTruth",
                                           OutputName             = col + "Truth") 
@@ -159,7 +159,7 @@ if muonRecFlags.doStandalone():
                                              TrackTruthName=col+"Truth",
                                              TrackParticleName = "MuonSpectrometerTrackParticles" )
 
-        topSequence += Muon__MuonSegmentTruthAssociationAlg("MuonSegmentTruthAssociationAlg", HasCSC=MuonGeometryFlags.hasCSC(), HasSTgc=(CommonGeometryFlags.Run() in ["RUN3", "RUN4"]), HasMM=(CommonGeometryFlags.Run() in ["RUN3", "RUN4"]))
+        topSequence += Muon__MuonSegmentTruthAssociationAlg("MuonSegmentTruthAssociationAlg", HasCSC=MuonGeometryFlags.hasCSC(), HasSTgc=MuonGeometryFlags.hasSTGC(), HasMM=MuonGeometryFlags.hasMM())
 
         try:
             from PyUtils.MetaReaderPeeker import metadata
diff --git a/Reconstruction/MuonIdentification/MuonCombinedRecExample/python/MuGirlTagTool.py b/Reconstruction/MuonIdentification/MuonCombinedRecExample/python/MuGirlTagTool.py
index 47e4fb03577ce5f1c18b65f241cc25b76a7aa4cb..9cdf84b91a9070dcc1d4e1696ce6380d26c78ed4 100644
--- a/Reconstruction/MuonIdentification/MuonCombinedRecExample/python/MuGirlTagTool.py
+++ b/Reconstruction/MuonIdentification/MuonCombinedRecExample/python/MuGirlTagTool.py
@@ -18,7 +18,6 @@ from MuonRecExample.MuonRecTools import DCMathSegmentMaker
 ###logfile
 from AthenaCommon.Logging import log
 
-from AtlasGeoModel.CommonGMJobProperties import CommonGeometryFlags
 from AtlasGeoModel.MuonGMJobProperties import MuonGeometryFlags
 from TriggerJobOpts.TriggerFlags import TriggerFlags
 
@@ -74,11 +73,9 @@ def MuonStauSeededSegmentFinder( name="MuonStauSeededSegmentFinder", **kwargs ):
     kwargs.setdefault("MdtRotCreator", getPublicTool("MdtDriftCircleOnTrackCreatorStau") )
     kwargs.setdefault("SegmentMaker", getPublicTool("DCMathStauSegmentMaker") )
     kwargs.setdefault("SegmentMakerNoHoles", getPublicTool("DCMathStauSegmentMaker") )
-    if not MuonGeometryFlags.hasCSC():
-       kwargs.setdefault("CscPrepDataContainer","")
-    if not (CommonGeometryFlags.Run() in ["RUN3", "RUN4"]):
-       kwargs.setdefault("sTgcPrepDataContainer","")
-       kwargs.setdefault("MMPrepDataContainer","")
+    if not MuonGeometryFlags.hasCSC(): kwargs.setdefault("CscPrepDataContainer","")
+    if not MuonGeometryFlags.hasSTGC(): kwargs.setdefault("sTgcPrepDataContainer","")
+    if not MuonGeometryFlags.hasMM(): kwargs.setdefault("MMPrepDataContainer","")
 
     return MuonSeededSegmentFinder(name,**kwargs)
 
diff --git a/Reconstruction/MuonIdentification/MuonCombinedRecExample/python/MuonCombinedAlgs.py b/Reconstruction/MuonIdentification/MuonCombinedRecExample/python/MuonCombinedAlgs.py
index fc370fd1e7c2f063c8f84f6fb36a9229dcf92fe2..df269ff8bfd197d00e2e8625d0eb485b4e9f9e8b 100644
--- a/Reconstruction/MuonIdentification/MuonCombinedRecExample/python/MuonCombinedAlgs.py
+++ b/Reconstruction/MuonIdentification/MuonCombinedRecExample/python/MuonCombinedAlgs.py
@@ -10,7 +10,6 @@ from AthenaCommon.AlgSequence import AlgSequence
 from AthenaCommon import CfgMgr
 from AthenaCommon.BeamFlags import jobproperties
 
-from AtlasGeoModel.CommonGMJobProperties import CommonGeometryFlags
 from AtlasGeoModel.MuonGMJobProperties import MuonGeometryFlags
 from TriggerJobOpts.TriggerFlags import TriggerFlags
 
@@ -24,16 +23,16 @@ def MuonCombinedInDetExtensionAlg(name="MuonCombinedInDetExtensionAlg",**kwargs)
         kwargs.setdefault("TagMap", "caloTagMap" )
     kwargs.setdefault("MuonCombinedInDetExtensionTools", tools )
     kwargs.setdefault("HasCSC", MuonGeometryFlags.hasCSC() )
-    kwargs.setdefault("HasSTgc", (CommonGeometryFlags.Run() in ["RUN3", "RUN4"]) )
-    kwargs.setdefault("HasMM", (CommonGeometryFlags.Run() in ["RUN3", "RUN4"]) )
+    kwargs.setdefault("HasSTgc", MuonGeometryFlags.hasSTGC() )
+    kwargs.setdefault("HasMM", MuonGeometryFlags.hasMM() )
     return CfgMgr.MuonCombinedInDetExtensionAlg(name,**kwargs)
 
 def MuGirlAlg(name="MuGirlAlg",**kwargs):
     tools = [getPublicTool("MuGirlTagTool")]
     kwargs.setdefault("MuonCombinedInDetExtensionTools", tools )
     kwargs.setdefault("HasCSC", MuonGeometryFlags.hasCSC() )
-    kwargs.setdefault("HasSTgc", (CommonGeometryFlags.Run() in ["RUN3", "RUN4"]) )
-    kwargs.setdefault("HasMM", (CommonGeometryFlags.Run() in ["RUN3", "RUN4"]) )
+    kwargs.setdefault("HasSTgc", MuonGeometryFlags.hasSTGC() )
+    kwargs.setdefault("HasMM", MuonGeometryFlags.hasMM() )
     return CfgMgr.MuonCombinedInDetExtensionAlg(name,**kwargs)
 
 
@@ -45,8 +44,8 @@ def MuonCaloTagAlg(name="MuonCaloTagAlg",**kwargs):
     kwargs.setdefault("METrackCollection","")
     kwargs.setdefault("SegmentCollection","")
     kwargs.setdefault("HasCSC", MuonGeometryFlags.hasCSC() )
-    kwargs.setdefault("HasSTgc", (CommonGeometryFlags.Run() in ["RUN3", "RUN4"]) )
-    kwargs.setdefault("HasMM", (CommonGeometryFlags.Run() in ["RUN3", "RUN4"]) )
+    kwargs.setdefault("HasSTgc", MuonGeometryFlags.hasSTGC() )
+    kwargs.setdefault("HasMM", MuonGeometryFlags.hasMM() )
     return CfgMgr.MuonCombinedInDetExtensionAlg(name,**kwargs)
 
 def MuonSegmentTagAlg( name="MuonSegmentTagAlg", **kwargs ):
@@ -63,8 +62,8 @@ def MuonInsideOutRecoAlg( name="MuonInsideOutRecoAlg", **kwargs ):
     kwargs.setdefault("MuonCombinedInDetExtensionTools", tools )
     kwargs.setdefault("usePRDs",True)
     kwargs.setdefault("HasCSC", MuonGeometryFlags.hasCSC() )
-    kwargs.setdefault("HasSTgc", (CommonGeometryFlags.Run() in ["RUN3", "RUN4"]) )
-    kwargs.setdefault("HasMM", (CommonGeometryFlags.Run() in ["RUN3", "RUN4"]) )
+    kwargs.setdefault("HasSTgc", MuonGeometryFlags.hasSTGC() )
+    kwargs.setdefault("HasMM", MuonGeometryFlags.hasMM() )
     kwargs.setdefault("TagMap","muGirlTagMap")
     return CfgMgr.MuonCombinedInDetExtensionAlg(name,**kwargs)
 
@@ -73,8 +72,8 @@ def MuGirlStauAlg(name="MuGirlStauAlg",**kwargs):
     kwargs.setdefault("MuonCombinedInDetExtensionTools", tools )
     kwargs.setdefault("TagMap","stauTagMap")
     kwargs.setdefault("HasCSC", MuonGeometryFlags.hasCSC() )
-    kwargs.setdefault("HasSTgc", (CommonGeometryFlags.Run() in ["RUN3", "RUN4"]) )
-    kwargs.setdefault("HasMM", (CommonGeometryFlags.Run() in ["RUN3", "RUN4"]) )
+    kwargs.setdefault("HasSTgc", MuonGeometryFlags.hasSTGC() )
+    kwargs.setdefault("HasMM", MuonGeometryFlags.hasMM() )
     kwargs.setdefault("CombinedTrackCollection","MuGirlStauCombinedTracks")
     kwargs.setdefault("METrackCollection","")
     kwargs.setdefault("SegmentCollection","MuGirlStauSegments")
diff --git a/Reconstruction/MuonIdentification/MuonCombinedRecExample/share/MuonCombinedRec_postprocessing.py b/Reconstruction/MuonIdentification/MuonCombinedRecExample/share/MuonCombinedRec_postprocessing.py
index b558aaea4b373c69bbb794f2de14319cfc53a127..5b25086d1c53b6bb69022a072b7871e5d5d1bf0f 100644
--- a/Reconstruction/MuonIdentification/MuonCombinedRecExample/share/MuonCombinedRec_postprocessing.py
+++ b/Reconstruction/MuonIdentification/MuonCombinedRecExample/share/MuonCombinedRec_postprocessing.py
@@ -28,9 +28,10 @@ if rec.doTruth() and muonCombinedRecFlags.doxAOD() and rec.doMuonCombined():
     topSequence+= MuonDetailedTrackTruthMaker("MuonCombinedDetailedTrackTruthMaker")
     topSequence.MuonCombinedDetailedTrackTruthMaker.TrackCollectionNames = cols 
     topSequence.MuonCombinedDetailedTrackTruthMaker.DetailedTrackTruthNames = fcols
+    from AtlasGeoModel.MuonGMJobProperties import MuonGeometryFlags
     topSequence.MuonCombinedDetailedTrackTruthMaker.HasCSC = MuonGeometryFlags.hasCSC()
-    topSequence.MuonCombinedDetailedTrackTruthMaker.HasSTgc = (CommonGeometryFlags.Run() in ["RUN3", "RUN4"])
-    topSequence.MuonCombinedDetailedTrackTruthMaker.HasMM = (CommonGeometryFlags.Run() in ["RUN3", "RUN4"])
+    topSequence.MuonCombinedDetailedTrackTruthMaker.HasSTgc = MuonGeometryFlags.hasSTGC()
+    topSequence.MuonCombinedDetailedTrackTruthMaker.HasMM = MuonGeometryFlags.hasMM()
         
     from TrkTruthAlgs.TrkTruthAlgsConf import TrackParticleTruthAlg
     for i in range(0, len(fcols)):
diff --git a/Simulation/G4Atlas/G4AtlasApps/python/SimAtlasKernel.py b/Simulation/G4Atlas/G4AtlasApps/python/SimAtlasKernel.py
index 6ccb5ad359e1f622b0f7eb093b282614b3921825..273b7aec934f54b5abd8253d4f803c0d37b68d0d 100644
--- a/Simulation/G4Atlas/G4AtlasApps/python/SimAtlasKernel.py
+++ b/Simulation/G4Atlas/G4AtlasApps/python/SimAtlasKernel.py
@@ -49,13 +49,10 @@ class AtlasSimSkeleton(SimSkeleton):
         ## Tidy up DBM DetFlags: temporary measure
         DetFlags.DBM_setOff()
 
-        ## Tidy up NSW DetFlags: temporary measure
-        DetFlags.sTGC_setOff()
-        DetFlags.Micromegas_setOff()
-        from AtlasGeoModel.CommonGMJobProperties import CommonGeometryFlags
-        if CommonGeometryFlags.Run() in ["RUN3", "RUN4"]:
-            DetFlags.sTGC_setOn()
-            DetFlags.Micromegas_setOn()
+        from AtlasGeoModel.MuonGMJobProperties import MuonGeometryFlags
+        if not MuonGeometryFlags.hasCSC(): DetFlags.CSC_setOff()
+        if not MuonGeometryFlags.hasSTGC(): DetFlags.sTGC_setOff()
+        if not MuonGeometryFlags.hasMM(): DetFlags.Micromegas_setOff()
 
         ## Switch off tasks
         DetFlags.pileup.all_setOff()
@@ -182,8 +179,8 @@ class AtlasSimSkeleton(SimSkeleton):
             if not "MuonAGDDTool/MuonSpectrometer" in AGDD2Geo.Builders:
                 ToolSvc += CfgGetter.getPublicTool("MuonSpectrometer", checkType=True)
                 AGDD2Geo.Builders += ["MuonAGDDTool/MuonSpectrometer"]
-            from AtlasGeoModel.CommonGMJobProperties import CommonGeometryFlags
-            if CommonGeometryFlags.Run() in ["RUN3", "RUN4"]:
+            from AtlasGeoModel.MuonGMJobProperties import MuonGeometryFlags
+            if (MuonGeometryFlags.hasSTGC() and MuonGeometryFlags.hasMM()):
                 if not "NSWAGDDTool/NewSmallWheel" in AGDD2Geo.Builders:
                     ToolSvc += CfgGetter.getPublicTool("NewSmallWheel", checkType=True)
                     AGDD2Geo.Builders += ["NSWAGDDTool/NewSmallWheel"]
diff --git a/Simulation/G4Atlas/G4AtlasApps/python/SimSkeleton.py b/Simulation/G4Atlas/G4AtlasApps/python/SimSkeleton.py
index 9e76433cbe37d72daaf6ef58460b13a2f5cdadcf..269fd186225ac8a2b11dbeaaafdf36f0fe79c2eb 100644
--- a/Simulation/G4Atlas/G4AtlasApps/python/SimSkeleton.py
+++ b/Simulation/G4Atlas/G4AtlasApps/python/SimSkeleton.py
@@ -104,10 +104,9 @@ class SimSkeleton(object):
                                  "TrackRecordCollection#MuonExitLayer"]
             from AtlasGeoModel.MuonGMJobProperties import MuonGeometryFlags
             if MuonGeometryFlags.hasCSC(): stream1.ItemList += ["CSCSimHitCollection#*"]
-            from AtlasGeoModel.CommonGMJobProperties import CommonGeometryFlags
-            if (CommonGeometryFlags.Run() in ["RUN3", "RUN4"]):
-                stream1.ItemList += ["sTGCSimHitCollection#*"]
-                stream1.ItemList += ["MMSimHitCollection#*"]
+            if MuonGeometryFlags.hasSTGC(): stream1.ItemList += ["sTGCSimHitCollection#*"]
+            if MuonGeometryFlags.hasMM(): stream1.ItemList += ["MMSimHitCollection#*"]
+            
         ## Lucid
         if DetFlags.Lucid_on():
             stream1.ItemList += ["LUCID_SimHitCollection#*"]
diff --git a/Simulation/G4Atlas/G4AtlasApps/share/G4Atlas.flat.configuration.py b/Simulation/G4Atlas/G4AtlasApps/share/G4Atlas.flat.configuration.py
index 11c7546cc62f6ddc39cbba3e4df262b6fa33dfe5..a2d89959222a673a573f3b54e139daa74ecbed9c 100644
--- a/Simulation/G4Atlas/G4AtlasApps/share/G4Atlas.flat.configuration.py
+++ b/Simulation/G4Atlas/G4AtlasApps/share/G4Atlas.flat.configuration.py
@@ -27,16 +27,10 @@ from AthenaCommon.DetFlags import DetFlags
 ## Tidy up DBM DetFlags: temporary measure
 DetFlags.DBM_setOff()
 
-## Tidy up NSW DetFlags: temporary measure
-DetFlags.sTGC_setOff()
-DetFlags.Micromegas_setOff()
-from AtlasGeoModel.CommonGMJobProperties import CommonGeometryFlags
-if (CommonGeometryFlags.Run() in ["RUN3", "RUN4"]):
-    DetFlags.sTGC_setOn()
-    DetFlags.Micromegas_setOn()
 from AtlasGeoModel.MuonGMJobProperties import MuonGeometryFlags
-if not MuonGeometryFlags.hasCSC():
-    DetFlags.CSC_setOff()
+if not MuonGeometryFlags.hasSTGC(): DetFlags.sTGC_setOff()
+if not MuonGeometryFlags.hasMM(): DetFlags.Micromegas_setOff()
+if not MuonGeometryFlags.hasCSC(): DetFlags.CSC_setOff()
 
 ## Switch off tasks
 DetFlags.pileup.all_setOff()
@@ -128,7 +122,7 @@ if DetFlags.Muon_on():
     from AthenaCommon import CfgGetter
     if not "MuonAGDDTool/MuonSpectrometer" in AGDD2Geo.Builders.__str__():
         AGDD2Geo.Builders += [CfgGetter.getPrivateTool("MuonSpectrometer", checkType=True)]
-    if (CommonGeometryFlags.Run() in ["RUN3", "RUN4"]):
+    if (MuonGeometryFlags.hasSTGC() and MuonGeometryFlags.hasMM()):
         if not "NSWAGDDTool/NewSmallWheel" in AGDD2Geo.Builders.__str__():
             AGDD2Geo.Builders += [CfgGetter.getPrivateTool("NewSmallWheel", checkType=True)]
     theApp.CreateSvc += ["AGDDtoGeoSvc"]
@@ -209,9 +203,8 @@ if not simFlags.ISFRun:
                                  "MDTSimHitCollection#*",
                                  "TrackRecordCollection#MuonExitLayer"]
             if MuonGeometryFlags.hasCSC(): stream1.ItemList += ["CSCSimHitCollection#*"]
-            if (CommonGeometryFlags.Run() in ["RUN3", "RUN4"]):
-                stream1.ItemList += ["sTGCSimHitCollection#*"]
-                stream1.ItemList += ["MMSimHitCollection#*"]
+            if MuonGeometryFlags.hasSTGC(): stream1.ItemList += ["sTGCSimHitCollection#*"]
+            if MuonGeometryFlags.hasMM(): stream1.ItemList += ["MMSimHitCollection#*"]
 
         ## Lucid
         if DetFlags.Lucid_on():
diff --git a/Simulation/G4Atlas/G4AtlasTests/share/postInclude.DCubeTest.py b/Simulation/G4Atlas/G4AtlasTests/share/postInclude.DCubeTest.py
index b8149d319e8fda97962ae76bfc3fdf0e5a28fee4..9b20b8f08361b578781009bab6246e74717bfa71 100644
--- a/Simulation/G4Atlas/G4AtlasTests/share/postInclude.DCubeTest.py
+++ b/Simulation/G4Atlas/G4AtlasTests/share/postInclude.DCubeTest.py
@@ -17,7 +17,9 @@ if not hasattr(job, 'G4TestAlg'):
     job += G4TestAlg()
 from AthenaCommon.DetFlags import DetFlags
 from G4AtlasApps.SimFlags import simFlags
-simFlags.ReleaseGeoModel=False;
+simFlags.ReleaseGeoModel=False
+
+from AtlasGeoModel.MuonGMJobProperties import MuonGeometryFlags
 
 from AthenaCommon import CfgGetter
 if DetFlags.Truth_on():
@@ -49,14 +51,10 @@ if simFlags.CalibrationRun.get_Value()=='LAr+Tile':
 if DetFlags.Muon_on():
     job.G4TestAlg.SimTestTools += [CfgGetter.getPrivateTool("MDTHitsTestTool", checkType=True)]
     job.G4TestAlg.SimTestTools += [CfgGetter.getPrivateTool("RPCHitsTestTool", checkType=True)]
-    from AtlasGeoModel.CommonGMJobProperties import CommonGeometryFlags
-    if (CommonGeometryFlags.Run() in ["RUN3", "RUN4"]):
-        job.G4TestAlg.SimTestTools += [CfgGetter.getPrivateTool("MMHitsTestTool",  checkType=True)]
-        job.G4TestAlg.SimTestTools += [CfgGetter.getPrivateTool("sTGCHitsTestTool",  checkType=True)]
-    from AtlasGeoModel.MuonGMJobProperties import MuonGeometryFlags
-    if MuonGeometryFlags.hasCSC():
-        job.G4TestAlg.SimTestTools += [CfgGetter.getPrivateTool("CSCHitsTestTool", checkType=True)]
     job.G4TestAlg.SimTestTools += [CfgGetter.getPrivateTool("TGCHitsTestTool", checkType=True)]
+    if MuonGeometryFlags.hasCSC(): job.G4TestAlg.SimTestTools += [CfgGetter.getPrivateTool("CSCHitsTestTool", checkType=True)]
+    if MuonGeometryFlags.hasMM(): job.G4TestAlg.SimTestTools += [CfgGetter.getPrivateTool("MMHitsTestTool",  checkType=True)]
+    if MuonGeometryFlags.hasSTGC(): job.G4TestAlg.SimTestTools += [CfgGetter.getPrivateTool("sTGCHitsTestTool",  checkType=True)]
     if DetFlags.Truth_on():
         job.G4TestAlg.SimTestTools += [CfgGetter.getPrivateTool("MuonEntryLayerTestTool", checkType=True)]
         job.G4TestAlg.SimTestTools += [CfgGetter.getPrivateTool("MuonExitLayerTestTool", checkType=True)]
diff --git a/Simulation/G4Atlas/G4AtlasTools/python/G4AtlasToolsConfig.py b/Simulation/G4Atlas/G4AtlasTools/python/G4AtlasToolsConfig.py
index 1c310a9208933e12f75bbdb1860f4d47ddd5458b..64c1416b264e0067b38b2adb03bd1925299f585e 100644
--- a/Simulation/G4Atlas/G4AtlasTools/python/G4AtlasToolsConfig.py
+++ b/Simulation/G4Atlas/G4AtlasTools/python/G4AtlasToolsConfig.py
@@ -2,6 +2,7 @@
 from __future__ import print_function
 
 from AthenaCommon import CfgMgr
+from AtlasGeoModel.MuonGMJobProperties import MuonGeometryFlags
 
 def generateFastSimulationList():
     FastSimulationList=[]
@@ -128,16 +129,14 @@ def generateMuonSensitiveDetectorList():
             if DetFlags.simulate.MDT_on() : SensitiveDetectorList += [ 'MDTSensitiveDetectorCosmics' ]
             if DetFlags.simulate.RPC_on() : SensitiveDetectorList += [ 'RPCSensitiveDetectorCosmics' ]
             if DetFlags.simulate.TGC_on() : SensitiveDetectorList += [ 'TGCSensitiveDetectorCosmics' ]
-            if DetFlags.simulate.CSC_on() : SensitiveDetectorList += [ 'CSCSensitiveDetectorCosmics' ]
+            if MuonGeometryFlags.hasCSC() and DetFlags.simulate.CSC_on() : SensitiveDetectorList += [ 'CSCSensitiveDetectorCosmics' ]
         else:
             if DetFlags.simulate.MDT_on() : SensitiveDetectorList += [ 'MDTSensitiveDetector' ]
             if DetFlags.simulate.RPC_on() : SensitiveDetectorList += [ 'RPCSensitiveDetector' ]
             if DetFlags.simulate.TGC_on() : SensitiveDetectorList += [ 'TGCSensitiveDetector' ]
-            if DetFlags.simulate.CSC_on() : SensitiveDetectorList += [ 'CSCSensitiveDetector' ]
-        from AtlasGeoModel.CommonGMJobProperties import CommonGeometryFlags
-        if (CommonGeometryFlags.Run() in ["RUN3", "RUN4"]):
-            if DetFlags.simulate.sTGC_on() : SensitiveDetectorList += [ 'sTGCSensitiveDetector' ]
-            if DetFlags.simulate.Micromegas_on() : SensitiveDetectorList += [ 'MicromegasSensitiveDetector' ]
+            if MuonGeometryFlags.hasCSC() and DetFlags.simulate.CSC_on() : SensitiveDetectorList += [ 'CSCSensitiveDetector' ]
+        if MuonGeometryFlags.hasSTGC() and DetFlags.simulate.sTGC_on() : SensitiveDetectorList += [ 'sTGCSensitiveDetector' ]
+        if MuonGeometryFlags.hasMM() and DetFlags.simulate.Micromegas_on() : SensitiveDetectorList += [ 'MicromegasSensitiveDetector' ]
     return SensitiveDetectorList
 
 def generateEnvelopeSensitiveDetectorList():
diff --git a/Simulation/ISF/ISF_Example/python/ISF_Output.py b/Simulation/ISF/ISF_Example/python/ISF_Output.py
index 2e751ae2451d7b6677eafbaaca183d7b57d11f49..bd1ae638f6307b0827b386891947e265b4ab9f5f 100644
--- a/Simulation/ISF/ISF_Example/python/ISF_Output.py
+++ b/Simulation/ISF/ISF_Example/python/ISF_Output.py
@@ -45,11 +45,8 @@ def getHITSStreamItemList():
                          "TrackRecordCollection#MuonExitLayer"]
         from AtlasGeoModel.MuonGMJobProperties import MuonGeometryFlags
         if MuonGeometryFlags.hasCSC(): hitsItemList += ["CSCSimHitCollection#*"]
-        from AtlasGeoModel.CommonGMJobProperties import CommonGeometryFlags
-        if (CommonGeometryFlags.Run() in ["RUN3", "RUN4"]):
-            hitsItemList += ["sTGCSimHitCollection#*"]
-            hitsItemList += ["MMSimHitCollection#*"]
-            hitsItemList += ["GenericMuonSimHitCollection#*"]
+        if MuonGeometryFlags.hasSTGC(): hitsItemList += ["sTGCSimHitCollection#*"]
+        if MuonGeometryFlags.hasMM(): hitsItemList += ["MMSimHitCollection#*"]
 
     ## FwdRegion
     if DetFlags.FwdRegion_on():
diff --git a/Tools/FullChainTransforms/share/FastChainSkeleton.EVGENtoRDO.py b/Tools/FullChainTransforms/share/FastChainSkeleton.EVGENtoRDO.py
index 0d849955625d3bfadf728b1d99d35c49c02b6bb3..c96ffbafdb0de7bd9fab57a26c8f436e41c42faa 100644
--- a/Tools/FullChainTransforms/share/FastChainSkeleton.EVGENtoRDO.py
+++ b/Tools/FullChainTransforms/share/FastChainSkeleton.EVGENtoRDO.py
@@ -21,7 +21,7 @@ fast_chain_log.info( str(runArgs) )
 
 from AthenaCommon import CfgGetter
 import AthenaCommon.SystemOfUnits as Units
-
+from AtlasGeoModel.MuonGMJobProperties import MuonGeometryFlags
 
 ### Start of Sim
 
@@ -281,23 +281,18 @@ except:
 DetFlags.LVL1_setOff()
 DetFlags.Truth_setOn()
 DetFlags.Forward_setOff() # Forward dets are off by default
-DetFlags.Micromegas_setOff()
-DetFlags.sTGC_setOff()
 DetFlags.FTK_setOff()
 checkHGTDOff = getattr(DetFlags, 'HGTD_setOff', None)
 if checkHGTDOff is not None:
     checkHGTDOff() #Default for now
 
-# from AthenaCommon.DetFlags import DetFlags
-
-# from AthenaCommon.DetFlags import DetFlags
     ## Tidy up DBM DetFlags: temporary measure
 DetFlags.DBM_setOff()
 
-from AtlasGeoModel.CommonGMJobProperties import CommonGeometryFlags
-if (CommonGeometryFlags.Run() in ["RUN3", "RUN4"]):
-    DetFlags.sTGC_setOn()
-    DetFlags.Micromegas_setOn()
+# turn off DetFlags for muon detectors which are not part of the layout
+if not MuonGeometryFlags.hasCSC(): DetFlags.CSC_setOff()
+if not MuonGeometryFlags.hasSTGC(): DetFlags.sTGC_setOff()
+if not MuonGeometryFlags.hasMM(): DetFlags.Micromegas_setOff()
 
 #if simFlags.ForwardDetectors.statusOn:
 #    if DetFlags.geometry.FwdRegion_on():
@@ -308,13 +303,17 @@ if (CommonGeometryFlags.Run() in ["RUN3", "RUN4"]):
 DetFlags.digitize.all_setOn()
 DetFlags.digitize.LVL1_setOff()
 DetFlags.digitize.ZDC_setOff()
-DetFlags.digitize.Micromegas_setOff()
-DetFlags.digitize.sTGC_setOff()
 DetFlags.digitize.Forward_setOff()
 DetFlags.digitize.Lucid_setOff()
 DetFlags.digitize.AFP_setOff()
 DetFlags.digitize.ALFA_setOff()
 
+# turn off DetFlags.digitize for muon detectors which are not part of the layout
+# (since DetFlags.digitize.all_setOn() is called a few lines above)
+if not MuonGeometryFlags.hasCSC(): DetFlags.digitize.CSC_setOff()
+if not MuonGeometryFlags.hasSTGC(): DetFlags.digitize.sTGC_setOff()
+if not MuonGeometryFlags.hasMM(): DetFlags.digitize.Micromegas_setOff()
+
 #set all detdescr on except fwd.
 #DetFlags.detdescr.all_setOn()
 #DetFlags.detdescr.LVL1_setOff()
@@ -776,7 +775,7 @@ if ISF_Flags.UsingGeant4():
         AGDD2Geo = AGDDtoGeoSvc()
         if not "MuonAGDDTool/MuonSpectrometer" in AGDD2Geo.Builders.__str__():
             AGDD2Geo.Builders += [CfgGetter.getPrivateTool("MuonSpectrometer", checkType=True)]
-        if (CommonGeometryFlags.Run() in ["RUN3", "RUN4"]):
+        if (MuonGeometryFlags.hasSTGC() and MuonGeometryFlags.hasMM()):
             if not "NSWAGDDTool/NewSmallWheel" in AGDD2Geo.Builders.__str__():
                 AGDD2Geo.Builders += [CfgGetter.getPrivateTool("NewSmallWheel", checkType=True)]
         theApp.CreateSvc += ["AGDDtoGeoSvc"]
diff --git a/Trigger/TrigAlgorithms/TrigMuonEF/python/TrigMuonEFConfig.py b/Trigger/TrigAlgorithms/TrigMuonEF/python/TrigMuonEFConfig.py
index e1d495e92b5ef26787fd5f2b1067632e883cf2c1..65dde956e068667ef0b424723a479962a141a12c 100755
--- a/Trigger/TrigAlgorithms/TrigMuonEF/python/TrigMuonEFConfig.py
+++ b/Trigger/TrigAlgorithms/TrigMuonEF/python/TrigMuonEFConfig.py
@@ -21,7 +21,6 @@ from MuonCombinedRecExample.MuonCombinedRecFlags import muonCombinedRecFlags
 from TrkDetDescrSvc.AtlasTrackingGeometrySvc import AtlasTrackingGeometrySvc
 
 from MuonRecExample.MuonRecFlags import muonRecFlags
-from AtlasGeoModel.CommonGMJobProperties import CommonGeometryFlags
 from AtlasGeoModel.MuonGMJobProperties import MuonGeometryFlags
 
 #Offline calorimeter isolation tool
@@ -407,7 +406,7 @@ def TMEF_MuonLayerSegmentFinderTool(name="TMEF_MuonLayerSegmentFinderTool",**kwa
     if not MuonGeometryFlags.hasCSC():
         kwargs.setdefault('Csc2DSegmentMaker', '')
         kwargs.setdefault('Csc4DSegmentMaker', '')
-    if (CommonGeometryFlags.Run() in ["RUN3", "RUN4"]): kwargs.setdefault('NSWMuonClusterSegmentFinderTool','TMEF_MuonClusterSegmentFinderTool')
+    if (MuonGeometryFlags.hasSTGC() and MuonGeometryFlags.hasMM()): kwargs.setdefault('NSWMuonClusterSegmentFinderTool','TMEF_MuonClusterSegmentFinderTool')
     return CfgMgr.Muon__MuonLayerSegmentFinderTool(name,**kwargs)
 
 def TMEF_MuonInsideOutRecoTool(name="TMEF_MuonInsideOutRecoTool",**kwargs):