diff --git a/HighGranularityTimingDetector/HGTD_G4/HGTD_G4_SD/python/HGTD_G4_SDToolConfig.py b/HighGranularityTimingDetector/HGTD_G4/HGTD_G4_SD/python/HGTD_G4_SDToolConfig.py
index f1e6ed95e7d1cb7d37128bfd07b0ede6aba1fac6..d7463494370cf46c2513558807dda3557e6c7765 100644
--- a/HighGranularityTimingDetector/HGTD_G4/HGTD_G4_SD/python/HGTD_G4_SDToolConfig.py
+++ b/HighGranularityTimingDetector/HGTD_G4/HGTD_G4_SD/python/HGTD_G4_SDToolConfig.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
 
 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
 from AthenaConfiguration.ComponentFactory import CompFactory
@@ -9,7 +9,7 @@ def HgtdSensorSDCfg(flags, name="HgtdSensorSD", **kwargs):
     bare_collection_name = "HGTD_Hits"
     mergeable_collection_suffix = "_G4"
     merger_input_property = "HGTDHits"
-    region = "ID"
+    region = "ITk"
 
     acc, hits_collection_name = CollectionMergerCfg(flags,
                                                     bare_collection_name,
diff --git a/MuonSpectrometer/MuonG4/MuonG4SD/python/MuonG4SDConfig.py b/MuonSpectrometer/MuonG4/MuonG4SD/python/MuonG4SDConfig.py
index 50f5139bf27bc6d1b33aa0dbd7c5fb32139450c7..e5c71cfb6f896dd8ad325e14dbc6e33770faaa7c 100644
--- a/MuonSpectrometer/MuonG4/MuonG4SD/python/MuonG4SDConfig.py
+++ b/MuonSpectrometer/MuonG4/MuonG4SD/python/MuonG4SDConfig.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
 
 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
 
@@ -48,16 +48,34 @@ def SetupSensitiveDetectorsCfg(flags):
 def SimHitContainerListCfg(flags):
     simHitContainers = []
     if flags.Detector.EnableMDT:
-        simHitContainers+=[("MDTSimHitCollection", "MDT_Hits")]
+        if (flags.Sim.ISFRun and flags.Sim.ISF.HITSMergingRequired.get('MUON', True)):
+            simHitContainers+=[("MDTSimHitCollection", "MDT_Hits_G4")]
+        else:
+            simHitContainers+=[("MDTSimHitCollection", "MDT_Hits")]
     if flags.Detector.EnableRPC:
-        simHitContainers+=[("RPCSimHitCollection", "RPC_Hits")]
+        if (flags.Sim.ISFRun and flags.Sim.ISF.HITSMergingRequired.get('MUON', True)):
+            simHitContainers+=[("RPCSimHitCollection", "RPC_Hits_G4")]
+        else:
+            simHitContainers+=[("RPCSimHitCollection", "RPC_Hits")]
     if flags.Detector.EnableTGC:
-        simHitContainers+=[("TGCSimHitCollection", "TGC_Hits")]
+        if (flags.Sim.ISFRun and flags.Sim.ISF.HITSMergingRequired.get('MUON', True)):
+            simHitContainers+=[("TGCSimHitCollection", "TGC_Hits_G4")]
+        else:
+            simHitContainers+=[("TGCSimHitCollection", "TGC_Hits")]
     if flags.Detector.EnableMM:
-        simHitContainers+=[("MMSimHitCollection", "MM_Hits")]
+        if (flags.Sim.ISFRun and flags.Sim.ISF.HITSMergingRequired.get('MUON', True)):
+            simHitContainers+=[("MMSimHitCollection", "MM_Hits_G4")]
+        else:
+            simHitContainers+=[("MMSimHitCollection", "MM_Hits")]
     if flags.Detector.EnablesTGC:
-        simHitContainers+=[("sTGCSimHitCollection", "sTGC_Hits")]
+        if (flags.Sim.ISFRun and flags.Sim.ISF.HITSMergingRequired.get('MUON', True)):
+            simHitContainers+=[("sTGCSimHitCollection", "sTGC_Hits_G4")]
+        else:
+            simHitContainers+=[("sTGCSimHitCollection", "sTGC_Hits")]
     if flags.Detector.EnableCSC:
-        simHitContainers+=[("CSCSimHitCollection", "CSC_Hits")]
+        if (flags.Sim.ISFRun and flags.Sim.ISF.HITSMergingRequired.get('MUON', True)):
+            simHitContainers+=[("CSCSimHitCollection", "CSC_Hits_G4")]
+        else:
+            simHitContainers+=[("CSCSimHitCollection", "CSC_Hits")]
     return simHitContainers
 
diff --git a/MuonSpectrometer/MuonPhaseII/MuonG4/MuonSensitiveDetectorsR4/python/SensitiveDetectorsCfg.py b/MuonSpectrometer/MuonPhaseII/MuonG4/MuonSensitiveDetectorsR4/python/SensitiveDetectorsCfg.py
index df9aafa6fe34d8bef8a0de0661bc98c14600e9eb..04706dc173bebf7ec951d391b124439faaead1b6 100644
--- a/MuonSpectrometer/MuonPhaseII/MuonG4/MuonSensitiveDetectorsR4/python/SensitiveDetectorsCfg.py
+++ b/MuonSpectrometer/MuonPhaseII/MuonG4/MuonSensitiveDetectorsR4/python/SensitiveDetectorsCfg.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
 from AthenaConfiguration.ComponentFactory import CompFactory
 
@@ -74,7 +74,7 @@ def SetupSensitiveDetectorsCfg(flags):
 
     if flags.Detector.EnableMDT:
         tools += [result.popToolsAndMerge(MdtSensitiveDetectorToolCfg(flags))]
-    
+
     if flags.Detector.EnableRPC:
         tools += [result.popToolsAndMerge(RpcSensitiveDetectorToolCfg(flags))]
 
@@ -91,14 +91,29 @@ def SetupSensitiveDetectorsCfg(flags):
 def SimHitContainerListCfg(flags):
     simHitContainers = []
     if flags.Detector.EnableMDT:
-        simHitContainers+=[("xAOD::MuonSimHitContainer", "xRawMdtSimHits")]
+        if (flags.Sim.ISFRun and flags.Sim.ISF.HITSMergingRequired.get('MUON', True)):
+            simHitContainers+=[("xAOD::MuonSimHitContainer", "xRawMdtSimHits_G4")]
+        else:
+            simHitContainers+=[("xAOD::MuonSimHitContainer", "xRawMdtSimHits")]
     if flags.Detector.EnableMM:
-        simHitContainers+=[("xAOD::MuonSimHitContainer", "xRawMmSimHits")]
+        if (flags.Sim.ISFRun and flags.Sim.ISF.HITSMergingRequired.get('MUON', True)):
+            simHitContainers+=[("xAOD::MuonSimHitContainer", "xRawMmSimHits_G4")]
+        else:
+            simHitContainers+=[("xAOD::MuonSimHitContainer", "xRawMmSimHits")]
     if flags.Detector.EnableRPC:
-        simHitContainers+=[("xAOD::MuonSimHitContainer", "xRawRpcSimHits")]
+        if (flags.Sim.ISFRun and flags.Sim.ISF.HITSMergingRequired.get('MUON', True)):
+            simHitContainers+=[("xAOD::MuonSimHitContainer", "xRawRpcSimHits_G4")]
+        else:
+            simHitContainers+=[("xAOD::MuonSimHitContainer", "xRawRpcSimHits")]
     if flags.Detector.EnableTGC:
-        simHitContainers+=[("xAOD::MuonSimHitContainer", "xRawTgcSimHits")]
+        if (flags.Sim.ISFRun and flags.Sim.ISF.HITSMergingRequired.get('MUON', True)):
+            simHitContainers+=[("xAOD::MuonSimHitContainer", "xRawTgcSimHits_G4")]
+        else:
+            simHitContainers+=[("xAOD::MuonSimHitContainer", "xRawTgcSimHits")]
     if flags.Detector.EnablesTGC:
-        simHitContainers+=[("xAOD::MuonSimHitContainer", "xRawStgcSimHits")]
-    
-    return simHitContainers
\ No newline at end of file
+        if (flags.Sim.ISFRun and flags.Sim.ISF.HITSMergingRequired.get('MUON', True)):
+            simHitContainers+=[("xAOD::MuonSimHitContainer", "xRawStgcSimHits_G4")]
+        else:
+            simHitContainers+=[("xAOD::MuonSimHitContainer", "xRawStgcSimHits")]
+
+    return simHitContainers
diff --git a/Simulation/G4Atlas/G4AtlasTools/python/G4AtlasToolsConfig.py b/Simulation/G4Atlas/G4AtlasTools/python/G4AtlasToolsConfig.py
index b61f98271c4034d012026af23f9008e1c91ec90c..acd2861ca38394d8582fcf931207052eca798593 100644
--- a/Simulation/G4Atlas/G4AtlasTools/python/G4AtlasToolsConfig.py
+++ b/Simulation/G4Atlas/G4AtlasTools/python/G4AtlasToolsConfig.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
 from AthenaConfiguration.ComponentFactory import CompFactory
 from AthenaConfiguration.Enums import BeamType
@@ -330,14 +330,47 @@ def SimHitContainerListCfg(flags):
             writtenContainers += [("TileHitVector", "MBTSHits")]
             writtenContainers += [("TileHitVector", "TileHitVec")]
     if flags.Detector.GeometryTRT:
-         writtenContainers += [("TRTUncompressedHitCollection", "TRTUncompressedHits")]
+        if (flags.Sim.ISFRun and flags.Sim.ISF.HITSMergingRequired.get('ID', True)):
+            writtenContainers += [("TRTUncompressedHitCollection", "TRTUncompressedHits_G4")]
+        else:
+            writtenContainers += [("TRTUncompressedHitCollection", "TRTUncompressedHits")]
     if flags.Detector.EnableBCM:
-       writtenContainers += [("SiHitCollection", "BCMHits")]
-       writtenContainers += [("SiHitCollection", "BLMHits")]
+        if (flags.Sim.ISFRun and flags.Sim.ISF.HITSMergingRequired.get('ID', True)):
+            writtenContainers += [("SiHitCollection", "BCMHits_G4")]
+            writtenContainers += [("SiHitCollection", "BLMHits_G4")]
+    else:
+            writtenContainers += [("SiHitCollection", "BCMHits")]
+            writtenContainers += [("SiHitCollection", "BLMHits")]
     if flags.Detector.EnablePixel:
-       writtenContainers += [("SiHitCollection", "PixelHits")]
+        if (flags.Sim.ISFRun and flags.Sim.ISF.HITSMergingRequired.get('ID', True)):
+            writtenContainers += [("SiHitCollection", "PixelHits_G4")]
+        else:
+            writtenContainers += [("SiHitCollection", "PixelHits")]
     if flags.Detector.EnableSCT:
-       writtenContainers += [("SiHitCollection", "SCT_Hits")]
+        if (flags.Sim.ISFRun and flags.Sim.ISF.HITSMergingRequired.get('ID', True)):
+           writtenContainers += [("SiHitCollection", "SCT_Hits_G4")]
+        else:
+            writtenContainers += [("SiHitCollection", "SCT_Hits")]
+    if flags.Detector.EnableITkPixel:
+        if (flags.Sim.ISFRun and flags.Sim.ISF.HITSMergingRequired.get('ITk', True)):
+            writtenContainers += [("SiHitCollection", "ITkPixelHits_G4")]
+        else:
+            writtenContainers += [("SiHitCollection", "ITkPixelHits")]
+    if flags.Detector.EnableITkStrip:
+        if (flags.Sim.ISFRun and flags.Sim.ISF.HITSMergingRequired.get('ITk', True)):
+           writtenContainers += [("SiHitCollection", "ITkStripHits_G4")]
+        else:
+            writtenContainers += [("SiHitCollection", "ITkStripHits")]
+    if flags.Detector.EnablePLR:
+        if (flags.Sim.ISFRun and flags.Sim.ISF.HITSMergingRequired.get('ITk', True)):
+            writtenContainers += [("SiHitCollection", "PLR_Hits_G4")]
+        else:
+            writtenContainers += [("SiHitCollection", "PLR_Hits")]
+    if flags.Detector.EnableHGTD:
+        if (flags.Sim.ISFRun and flags.Sim.ISF.HITSMergingRequired.get('ITk', True)):
+            writtenContainers += [("SiHitCollection", "HGTDHits_G4")]
+        else:
+            writtenContainers += [("SiHitCollection", "HGTDHits")]
     from SimulationConfig.SimEnums import CalibrationRun
     if flags.Sim.CalibrationRun in [CalibrationRun.LAr, CalibrationRun.LArTile, CalibrationRun.LArTileZDC]:
         # Needed to ensure that DeadMaterialCalibrationHitsMerger is scheduled correctly.