diff --git a/AtlasGeometryCommon/SubDetectorEnvelopes/python/SubDetectorEnvelopesConfigNew.py b/AtlasGeometryCommon/SubDetectorEnvelopes/python/SubDetectorEnvelopesConfigNew.py
index 38cd6ae3541edc145d942463bc3258f738b912d0..66193a60672b137d5af85bae4c301db216d1c6b7 100644
--- a/AtlasGeometryCommon/SubDetectorEnvelopes/python/SubDetectorEnvelopesConfigNew.py
+++ b/AtlasGeometryCommon/SubDetectorEnvelopes/python/SubDetectorEnvelopesConfigNew.py
@@ -26,8 +26,7 @@ def EnvelopeDefSvcCfg(ConfigFlags, name="AtlasGeometry_EnvelopeDefSvc", **kwargs
     # setup fallback BeamPipeEnvelope
     BeamPipe = Volume()
 
-    if ConfigFlags.Detector.GeometryHGTD:
-        BeamPipe.addRZ(   34.3,   3420.0 )
+    if ConfigFlags.GeoModel.Run not in ["RUN1", "RUN2", "RUN3"]:
         BeamPipe.addRZ(   34.3,   3545.0 )
         BeamPipe.addRZ(  120.0,   3545.0 )
     else:
@@ -53,7 +52,7 @@ def EnvelopeDefSvcCfg(ConfigFlags, name="AtlasGeometry_EnvelopeDefSvc", **kwargs
     # setup fallback IDEnvelope
     InDet = Volume()
     # InDet should include HGTD when it's turned on
-    if ConfigFlags.Detector.GeometryHGTD:
+    if ConfigFlags.GeoModel.Run not in ["RUN1", "RUN2", "RUN3"]:
         InDet.addRZ( 1148.,  3545. )
         InDet.addRZ(  34.3,  3545. )
     else:
@@ -66,7 +65,7 @@ def EnvelopeDefSvcCfg(ConfigFlags, name="AtlasGeometry_EnvelopeDefSvc", **kwargs
     # setup fallback CaloEnvelope
     Calo = Volume()
 
-    if ConfigFlags.Detector.GeometryHGTD:
+    if ConfigFlags.GeoModel.Run not in ["RUN1", "RUN2", "RUN3"]:
         Calo.addRZ( 1148.0,  3545.0 )
         Calo.addRZ(  120.0,  3545.0 )
     else:
diff --git a/HighGranularityTimingDetector/HGTD_DetDescr/HGTD_GeoModel/python/HGTD_GeoModelConfig.py b/HighGranularityTimingDetector/HGTD_DetDescr/HGTD_GeoModel/python/HGTD_GeoModelConfig.py
index 5601cdb1aabf4249b969ada84c8ce7825941ad97..8a8990dc3077628d21d498ce94bea485b27087a9 100644
--- a/HighGranularityTimingDetector/HGTD_DetDescr/HGTD_GeoModel/python/HGTD_GeoModelConfig.py
+++ b/HighGranularityTimingDetector/HGTD_DetDescr/HGTD_GeoModel/python/HGTD_GeoModelConfig.py
@@ -1,6 +1,6 @@
 # Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
 
-def HGTD_GeometryCfg(flags):
+def HGTD_GeoModelCfg(flags):
     from AtlasGeoModel.GeoModelConfig import GeoModelCfg
     acc = GeoModelCfg(flags)
     geoModelSvc = acc.getPrimary()
@@ -11,12 +11,18 @@ def HGTD_GeometryCfg(flags):
     hgtdDetectorTool.DetectorName = "HGTD"
     hgtdDetectorTool.PrintModuleNumberPerRow = False
     geoModelSvc.DetectorTools += [ hgtdDetectorTool ]
-    
     return acc
 
+
+def HGTD_SimulationGeometryCfg(flags):
+    # main GeoModel config
+    acc = HGTD_GeoModelCfg(flags)
+    return acc
+
+
 def HGTD_ReadoutGeometryCfg(flags):
     # main GeoModel config
-    acc = HGTD_GeometryCfg(flags)
+    acc = HGTD_GeoModelCfg(flags)
     from HGTD_ConditionsAlgorithms.HGTD_ConditionsAlgorithmsConfig import HGTD_DetectorElementCondAlgCfg
     acc.merge(HGTD_DetectorElementCondAlgCfg(flags))
     return acc
diff --git a/Simulation/G4Atlas/G4AtlasTools/python/G4GeometryToolConfig.py b/Simulation/G4Atlas/G4AtlasTools/python/G4GeometryToolConfig.py
index 0c5c994d33378f199cbf8b0db2a8eac885787811..5b1dcb8ce0e2e7537bed975eca0d0a4e0d9a4a25 100644
--- a/Simulation/G4Atlas/G4AtlasTools/python/G4GeometryToolConfig.py
+++ b/Simulation/G4Atlas/G4AtlasTools/python/G4GeometryToolConfig.py
@@ -7,7 +7,7 @@ from AthenaConfiguration.ComponentFactory import CompFactory
 from AthenaCommon import Logging
 
 #the physics region tools
-from G4AtlasTools.G4PhysicsRegionConfigNew import SX1PhysicsRegionToolCfg, BedrockPhysicsRegionToolCfg, CavernShaftsConcretePhysicsRegionToolCfg, PixelPhysicsRegionToolCfg, SCTPhysicsRegionToolCfg, TRTPhysicsRegionToolCfg, TRT_ArPhysicsRegionToolCfg,ITkPixelPhysicsRegionToolCfg,ITkStripPhysicsRegionToolCfg,BeampipeFwdCutPhysicsRegionToolCfg, FWDBeamLinePhysicsRegionToolCfg, EMBPhysicsRegionToolCfg, EMECPhysicsRegionToolCfg, HECPhysicsRegionToolCfg, FCALPhysicsRegionToolCfg, FCAL2ParaPhysicsRegionToolCfg, EMECParaPhysicsRegionToolCfg, FCALParaPhysicsRegionToolCfg, PreSampLArPhysicsRegionToolCfg, DeadMaterialPhysicsRegionToolCfg
+from G4AtlasTools.G4PhysicsRegionConfigNew import SX1PhysicsRegionToolCfg, BedrockPhysicsRegionToolCfg, CavernShaftsConcretePhysicsRegionToolCfg, PixelPhysicsRegionToolCfg, SCTPhysicsRegionToolCfg, TRTPhysicsRegionToolCfg, TRT_ArPhysicsRegionToolCfg,ITkPixelPhysicsRegionToolCfg,ITkStripPhysicsRegionToolCfg,HGTDPhysicsRegionToolCfg,BeampipeFwdCutPhysicsRegionToolCfg, FWDBeamLinePhysicsRegionToolCfg, EMBPhysicsRegionToolCfg, EMECPhysicsRegionToolCfg, HECPhysicsRegionToolCfg, FCALPhysicsRegionToolCfg, FCAL2ParaPhysicsRegionToolCfg, EMECParaPhysicsRegionToolCfg, FCALParaPhysicsRegionToolCfg, PreSampLArPhysicsRegionToolCfg, DeadMaterialPhysicsRegionToolCfg
 from G4AtlasTools.G4PhysicsRegionConfigNew import DriftWallPhysicsRegionToolCfg, DriftWall1PhysicsRegionToolCfg, DriftWall2PhysicsRegionToolCfg, MuonSystemFastPhysicsRegionToolCfg
 
 #the field config tools
@@ -104,8 +104,8 @@ def ITkStripGeoDetectorToolCfg(ConfigFlags, name='ITkStrip', **kwargs):
 
 def HGTDGeoDetectorToolCfg(ConfigFlags, name='HGTD', **kwargs):
     #set up geometry
-    from HGTD_GeoModel.HGTD_GeoModelConfig import HGTD_GeometryCfg
-    result = HGTD_GeometryCfg(ConfigFlags)
+    from HGTD_GeoModel.HGTD_GeoModelConfig import HGTD_SimulationGeometryCfg
+    result = HGTD_SimulationGeometryCfg(ConfigFlags)
     kwargs.setdefault("DetectorName", "HGTD")
     #add the GeometryNotifierSvc
     result.addService(G4GeometryNotifierSvcCfg(ConfigFlags))
@@ -253,8 +253,8 @@ def ITKEnvelopeCfg(ConfigFlags, name="ITK", **kwargs):
     kwargs.setdefault("DetectorName", "ITK")
     kwargs.setdefault("InnerRadius", 32.15*mm)
     kwargs.setdefault("OuterRadius", 1.148*m)
-    if ConfigFlags.Detector.GeometryHGTD:
-        # ITk should include the HGTD (3420 mm < |z| < 3545 mm) when turned on
+    if ConfigFlags.GeoModel.Run not in ["RUN1", "RUN2", "RUN3"]:
+        # ITk should include the HGTD (3420 mm < |z| < 3545 mm) for now
         kwargs.setdefault("dZ", 354.5*cm)
     else:
         kwargs.setdefault("dZ", 347.5*cm)
@@ -269,6 +269,10 @@ def ITKEnvelopeCfg(ConfigFlags, name="ITK", **kwargs):
     if ConfigFlags.Detector.GeometryPLR:
         toolPLR = result.popToolsAndMerge(PLRGeoDetectorToolCfg(ConfigFlags))
         SubDetectorList += [toolPLR]
+    # TODO: for now HGTD is also here
+    if ConfigFlags.Detector.GeometryHGTD:
+        toolHGTD = result.popToolsAndMerge(HGTDGeoDetectorToolCfg(ConfigFlags))
+        SubDetectorList += [toolHGTD]
 
     kwargs.setdefault("SubDetectors", SubDetectorList)
     result.setPrivateTools(CylindricalEnvelope(name, **kwargs))
@@ -310,8 +314,8 @@ def CALOEnvelopeCfg(ConfigFlags, name="CALO", **kwargs):
     kwargs.setdefault("NSurfaces", 18)
     kwargs.setdefault("InnerRadii", [41.,41.,41.,41.,41.,41.,120.,120.,1148.,1148.,120.,120.,41.,41.,41.,41.,41.,41.]) #FIXME Units?
     kwargs.setdefault("OuterRadii", [415.,415.,3795.,3795.,4251.,4251.,4251.,4251.,4251.,4251.,4251.,4251.,4251.,4251.,3795.,3795.,415.,415.]) #FIXME Units?
-    if ConfigFlags.Detector.GeometryHGTD:
-        # Make room for HGTD (3420 mm < |z| < 3545 mm) when turned on
+    if ConfigFlags.GeoModel.Run not in ["RUN1", "RUN2", "RUN3"]:
+        # Make room for HGTD (3420 mm < |z| < 3545 mm)
         kwargs.setdefault("ZSurfaces", [-6781.,-6747.,-6747.,-6530.,-6530.,-4587.,-4587.,-3545.,-3545.,3545.,3545.,4587.,4587.,6530.,6530.,6747.,6747.,6781.]) #FIXME Units?
     else:
         kwargs.setdefault("ZSurfaces", [-6781.,-6747.,-6747.,-6530.,-6530.,-4587.,-4587.,-3475.,-3475.,3475.,3475.,4587.,4587.,6530.,6530.,6747.,6747.,6781.]) #FIXME Units?
@@ -399,12 +403,9 @@ def generateSubDetectorList(ConfigFlags):
     if ConfigFlags.Detector.GeometryID:
         toolIDET = result.popToolsAndMerge(IDETEnvelopeCfg(ConfigFlags))
         SubDetectorList += [ toolIDET ]
-    if ConfigFlags.Detector.GeometryITk:
+    if ConfigFlags.Detector.GeometryITk or ConfigFlags.Detector.GeometryHGTD:  # TODO: HGTD is also here for now
         toolITK = result.popToolsAndMerge(ITKEnvelopeCfg(ConfigFlags))
         SubDetectorList += [ toolITK ]
-    if ConfigFlags.Detector.GeometryHGTD:
-        toolHGTD = result.popToolsAndMerge(HGTDGeoDetectorToolCfg(ConfigFlags))
-        SubDetectorList += [ toolHGTD ]
     if ConfigFlags.Detector.GeometryCalo:
         toolCALO = result.popToolsAndMerge(CALOEnvelopeCfg(ConfigFlags))
         SubDetectorList += [ toolCALO ]
@@ -552,9 +553,12 @@ def getATLAS_RegionCreatorList(ConfigFlags):
                 regionCreatorList += [FWDBeamLinePhysicsRegionToolCfg(ConfigFlags)]
     if ConfigFlags.Detector.GeometryITk:
         if ConfigFlags.Detector.GeometryITkPixel:
-            regionCreatorList += [ITkPixelPhysicsRegionToolCfg(ConfigFlags)] #TODO: add dedicated config
+            regionCreatorList += [ITkPixelPhysicsRegionToolCfg(ConfigFlags)]
         if ConfigFlags.Detector.GeometryITkStrip:
-            regionCreatorList += [ITkStripPhysicsRegionToolCfg(ConfigFlags)] #TODO: And here...
+            regionCreatorList += [ITkStripPhysicsRegionToolCfg(ConfigFlags)]
+    if ConfigFlags.Detector.GeometryHGTD:
+        regionCreatorList += [HGTDPhysicsRegionToolCfg(ConfigFlags)]
+    if ConfigFlags.Detector.GeometryITk or ConfigFlags.Detector.GeometryHGTD:  # TODO: I do not know why this is only for ITk (and HGTD)
         # FIXME dislike the ordering here, but try to maintain the same ordering as in the old configuration.
         if ConfigFlags.Detector.GeometryBpipe:
             if ConfigFlags.Sim.BeamPipeSimMode != "Normal":
@@ -643,7 +647,7 @@ def ATLAS_FieldMgrListCfg(ConfigFlags):
         acc = InDetFieldManagerToolCfg(ConfigFlags)
         tool  = result.popToolsAndMerge(acc)
         fieldMgrList += [tool]
-    if ConfigFlags.Detector.GeometryITk:
+    if ConfigFlags.Detector.GeometryITk or ConfigFlags.Detector.GeometryHGTD:  # TODO: while HGTD is included in the ITK envelope
         acc = ITkFieldManagerToolCfg(ConfigFlags)
         tool  = result.popToolsAndMerge(acc)
         fieldMgrList += [tool]
diff --git a/Simulation/G4Atlas/G4AtlasTools/python/G4PhysicsRegionConfigNew.py b/Simulation/G4Atlas/G4AtlasTools/python/G4PhysicsRegionConfigNew.py
index 32ec5769d1f7c46e6a26fa46967151d931310c64..e4f1d209fb60ae4472498ccdda80088701d4c3a2 100644
--- a/Simulation/G4Atlas/G4AtlasTools/python/G4PhysicsRegionConfigNew.py
+++ b/Simulation/G4Atlas/G4AtlasTools/python/G4PhysicsRegionConfigNew.py
@@ -99,8 +99,18 @@ def ITkPixelPhysicsRegionToolCfg(ConfigFlags, name='ITkPixelPhysicsRegionTool',
 def ITkStripPhysicsRegionToolCfg(ConfigFlags, name='ITkStripPhysicsRegionTool', **kwargs):
     kwargs.setdefault("RegionName", 'ITkStrip')
     volumeList = ['ITkStrip::BRLSensorSS', 'ITkStrip::BRLSensorMS',
-                   'ITkStrip::ECSensor0', 'ITkStrip::ECSensor1', 'ITkStrip::ECSensor2',
-                   'ITkStrip::ECSensor3', 'ITkStrip::ECSensor4', 'ITkStrip::ECSensor5']
+                  'ITkStrip::ECSensor0', 'ITkStrip::ECSensor1', 'ITkStrip::ECSensor2',
+                  'ITkStrip::ECSensor3', 'ITkStrip::ECSensor4', 'ITkStrip::ECSensor5']
+    kwargs.setdefault("VolumeList",  volumeList)
+    kwargs.setdefault("ElectronCut", 0.05)
+    kwargs.setdefault("PositronCut", 0.05)
+    kwargs.setdefault("GammaCut",    0.05)
+    return RegionCreator(name, **kwargs)
+
+def HGTDPhysicsRegionToolCfg(ConfigFlags, name='HGTDPhysicsRegionTool', **kwargs):
+    kwargs.setdefault("RegionName", 'HGTD')
+    volumeList = ['HGTD::HGTDSiSensor0', 'HGTD::HGTDSiSensor1',
+                  'HGTD::HGTDSiSensor2', 'HGTD::HGTDSiSensor3']
     kwargs.setdefault("VolumeList",  volumeList)
     kwargs.setdefault("ElectronCut", 0.05)
     kwargs.setdefault("PositronCut", 0.05)
diff --git a/Simulation/SimuJobTransforms/python/RDOMerge_Skeleton.py b/Simulation/SimuJobTransforms/python/RDOMerge_Skeleton.py
index 8e02fc05a91290842863dc5a4d1cf7e0474173df..f11ab1931086ee1e41e58cfba5775c145d64aec5 100644
--- a/Simulation/SimuJobTransforms/python/RDOMerge_Skeleton.py
+++ b/Simulation/SimuJobTransforms/python/RDOMerge_Skeleton.py
@@ -80,8 +80,8 @@ def fromRunArgs(runArgs):
         cfg.merge(ITkStripReadoutGeometryCfg(ConfigFlags))
 
     if ConfigFlags.Detector.EnableHGTD:
-        from HGTD_GeoModel.HGTD_GeoModelConfig import HGTD_GeometryCfg
-        cfg.merge(HGTD_GeometryCfg(ConfigFlags))
+        from HGTD_GeoModel.HGTD_GeoModelConfig import HGTD_ReadoutGeometryCfg
+        cfg.merge(HGTD_ReadoutGeometryCfg(ConfigFlags))
 
     if ConfigFlags.Detector.EnableLAr:
         from LArGeoAlgsNV.LArGMConfig import LArGMCfg
diff --git a/Simulation/SimuJobTransforms/python/SimOutputConfig.py b/Simulation/SimuJobTransforms/python/SimOutputConfig.py
index 6a2d7e6643a78dbae85d0c54e0d99c3cc9e17512..6da1a3497c6b89b4328356338532b6636a8e80f8 100644
--- a/Simulation/SimuJobTransforms/python/SimOutputConfig.py
+++ b/Simulation/SimuJobTransforms/python/SimOutputConfig.py
@@ -31,7 +31,8 @@ def getStreamHITS_ItemList(ConfigFlags):
                  "xAOD::TruthParticleAuxContainer#TruthPileupParticlesAux."]
 
     if ConfigFlags.Detector.EnablePixel or  ConfigFlags.Detector.EnableSCT or \
-       ConfigFlags.Detector.EnableITkPixel or  ConfigFlags.Detector.EnableITkStrip or ConfigFlags.Detector.EnablePLR:
+       ConfigFlags.Detector.EnableITkPixel or  ConfigFlags.Detector.EnableITkStrip or ConfigFlags.Detector.EnablePLR or \
+       ConfigFlags.Detector.EnableHGTD:
         ItemList += ["SiHitCollection#*"]
 
     if ConfigFlags.Detector.EnableTRT:
diff --git a/Simulation/Tools/HitAnalysis/python/SiHitAnalysis.py b/Simulation/Tools/HitAnalysis/python/SiHitAnalysis.py
index 59bce4a93f08bd4c8ad0c41f07fda24e66fec5ba..7875998cc3aa72f2ce99f8c6f5fd1fe8454a1bcd 100644
--- a/Simulation/Tools/HitAnalysis/python/SiHitAnalysis.py
+++ b/Simulation/Tools/HitAnalysis/python/SiHitAnalysis.py
@@ -45,8 +45,8 @@ def ITkStripHitAnalysisCfg(flags):
 
 
 def HGTD_HitAnalysisCfg(flags):
-    from HGTD_GeoModel.HGTD_GeoModelConfig import HGTD_GeometryCfg
-    acc = HGTD_GeometryCfg(flags)
+    from HGTD_GeoModel.HGTD_GeoModelConfig import HGTD_SimulationGeometryCfg
+    acc = HGTD_SimulationGeometryCfg(flags)
 
     alg = CompFactory.SiHitAnalysis('HGTD_HitAnalysis')
     alg.CollectionName = 'HGTD_Hits'