diff --git a/Event/EventOverlay/EventOverlayJobTransforms/share/MuonOverlay_jobOptions.py b/Event/EventOverlay/EventOverlayJobTransforms/share/MuonOverlay_jobOptions.py
index c2608fd0b0424945624676a952d3bfc8bd0b1eb5..06712206c31a681e0e2e1c60961219167d35fdd6 100644
--- a/Event/EventOverlay/EventOverlayJobTransforms/share/MuonOverlay_jobOptions.py
+++ b/Event/EventOverlay/EventOverlayJobTransforms/share/MuonOverlay_jobOptions.py
@@ -47,10 +47,7 @@ if DetFlags.overlay.MDT_on() or DetFlags.overlay.CSC_on() or DetFlags.overlay.RP
         job += CfgGetter.getAlgorithm("MdtDigitToMdtRDO")
 
     if DetFlags.overlay.sTGC_on():
-        # As of July 2019, the input RDOs still hold a DigitContainer
-        # so no Need to run Rdo->Digit
-        # To be changed when we remove digitContainer from RDO
-        #job += CfgGetter.getAlgorithm("STGC_RdoToDigitAlg")
+        job += CfgGetter.getAlgorithm("STGC_RdoToDigitAlg")
         job += CfgGetter.getAlgorithm("STGC_OverlayDigitizer")
         job += CfgGetter.getAlgorithm("STGC_Overlay")
         if not overlayFlags.isDataOverlay():
@@ -58,10 +55,7 @@ if DetFlags.overlay.MDT_on() or DetFlags.overlay.CSC_on() or DetFlags.overlay.RP
         job += CfgGetter.getAlgorithm("STGC_DigitToRDO")
 
     if DetFlags.overlay.Micromegas_on():
-        # As of July 2019, the input RDOs still hold a DigitContainer
-        # so no need to run Rdo->Digit
-        # To be changed when we remove digitContainer from RDO
-        #job += CfgGetter.getAlgorithm("MM_RdoToDigitAlg")
+        job += CfgGetter.getAlgorithm("MM_RdoToDigitAlg")
         job += CfgGetter.getAlgorithm("MM_OverlayDigitizer")
         job += CfgGetter.getAlgorithm("MM_Overlay")
         if not overlayFlags.isDataOverlay():
diff --git a/Event/EventOverlay/EventOverlayJobTransforms/share/OverlayOutput_jobOptions.py b/Event/EventOverlay/EventOverlayJobTransforms/share/OverlayOutput_jobOptions.py
index e6115496c7f8de3e8de772eea7763ee2fba7a46b..18b581350dd14a339b4d72193272dc5d99a83d76 100644
--- a/Event/EventOverlay/EventOverlayJobTransforms/share/OverlayOutput_jobOptions.py
+++ b/Event/EventOverlay/EventOverlayJobTransforms/share/OverlayOutput_jobOptions.py
@@ -115,9 +115,11 @@ if DetFlags.overlay.TGC_on():
 
 if DetFlags.overlay.sTGC_on():
     outStream.ItemList += [ 'Muon::STGC_RawDataContainer#sTGCRDO' ]
+    outStream.ItemList += [ "sTgcDigitContainer#sTGC_DIGITS" ]
 
 if DetFlags.overlay.Micromegas_on():
     outStream.ItemList += [ 'Muon::MM_RawDataContainer#MMRDO' ]
+    outStream.ItemList += [ "MmDigitContainer#MM_DIGITS" ]
 
 if DetFlags.overlay.LVL1_on():
     if DetFlags.simulateLVL1.LAr_on():
diff --git a/MuonSpectrometer/MuonDigitization/MM_Digitization/MM_Digitization/MM_DigitizationTool.h b/MuonSpectrometer/MuonDigitization/MM_Digitization/MM_Digitization/MM_DigitizationTool.h
index 908a10b8ebef21c5f38ed309c46862e537c7b88f..00f489ffabb54939df9a36c7c92b10e2b957cba0 100644
--- a/MuonSpectrometer/MuonDigitization/MM_Digitization/MM_Digitization/MM_DigitizationTool.h
+++ b/MuonSpectrometer/MuonDigitization/MM_Digitization/MM_Digitization/MM_DigitizationTool.h
@@ -113,7 +113,7 @@ class MM_DigitizationTool : public PileUpToolBase {
 
 	private:
 		/** Record MmDigitContainer and MuonSimDataCollection */
-		StatusCode getNextEvent();
+		StatusCode getNextEvent(const EventContext& ctx);
 		StatusCode doDigitization(const EventContext& ctx);
 
 		bool  checkMMSimHit(const MMSimHit& /* hit */ ) const;
diff --git a/MuonSpectrometer/MuonDigitization/MM_Digitization/python/MM_DigitizationConfig.py b/MuonSpectrometer/MuonDigitization/MM_Digitization/python/MM_DigitizationConfig.py
index de87d975364ebb5e9e73822dc1d82c302f24744a..6c28133e59cb8ba108899428cb537a007dbab33e 100644
--- a/MuonSpectrometer/MuonDigitization/MM_Digitization/python/MM_DigitizationConfig.py
+++ b/MuonSpectrometer/MuonDigitization/MM_Digitization/python/MM_DigitizationConfig.py
@@ -60,6 +60,7 @@ def MM_Response_DigitTool(name="MM_Response_DigitTool",**kwargs):
 def MM_OverlayDigitizationTool(name="MM_OverlayDigitizationTool",**kwargs):
     from OverlayCommonAlgs.OverlayFlags import overlayFlags
     if overlayFlags.isOverlayMT():
+        kwargs.setdefault("OnlyUseContainerName", False)
         kwargs.setdefault("OutputObjectName", overlayFlags.sigPrefix() + "MM_DIGITS")
         if not overlayFlags.isDataOverlay():
             kwargs.setdefault("OutputSDOName", overlayFlags.sigPrefix() + "MM_SDO")
diff --git a/MuonSpectrometer/MuonDigitization/MM_Digitization/src/MM_DigitizationTool.cxx b/MuonSpectrometer/MuonDigitization/MM_Digitization/src/MM_DigitizationTool.cxx
index 9a20034e37996e5de92b9a3c11b77f278aafa667..2b7a70825b733755709013d706a2407dc52386d9 100644
--- a/MuonSpectrometer/MuonDigitization/MM_Digitization/src/MM_DigitizationTool.cxx
+++ b/MuonSpectrometer/MuonDigitization/MM_Digitization/src/MM_DigitizationTool.cxx
@@ -328,7 +328,7 @@ StatusCode MM_DigitizationTool::processBunchXing(int bunchXing,
 }
 
 /*******************************************************************************/
-StatusCode MM_DigitizationTool::getNextEvent() {
+StatusCode MM_DigitizationTool::getNextEvent(const EventContext& ctx) {
 
 // Get next event and extract collection of hit collections:
 // This is applicable to non-PileUp Event...
@@ -338,6 +338,21 @@ StatusCode MM_DigitizationTool::getNextEvent() {
 	//  get the container(s)
 	typedef PileUpMergeSvc::TimedList<MMSimHitCollection>::type TimedHitCollList;
 
+  // In case of single hits container just load the collection using read handles
+  if (!m_onlyUseContainerName) {
+    SG::ReadHandle<MMSimHitCollection> hitCollection(m_hitsContainerKey, ctx);
+    if (!hitCollection.isValid()) {
+      ATH_MSG_ERROR("Could not get MMSimHitCollection container " << hitCollection.name() << " from store " << hitCollection.store());
+      return StatusCode::FAILURE;
+    }
+
+    // create a new hits collection
+    m_timedHitCollection_MM = std::make_unique<TimedHitCollection<MMSimHit>>(1);
+    m_timedHitCollection_MM->insert(0, hitCollection.cptr());
+    ATH_MSG_DEBUG("MMSimHitCollection found with " << hitCollection->size() << " hits");
+    return StatusCode::SUCCESS;
+  }
+
 	//this is a list<info<time_t, DataLink<MMSimHitCollection> > >
 	TimedHitCollList hitCollList;
 
@@ -397,7 +412,7 @@ StatusCode MM_DigitizationTool::processAllSubEvents(const EventContext& ctx) {
 
 	//merging of the hit collection in getNextEvent method
 
-	if (m_timedHitCollection_MM == nullptr) ATH_CHECK( getNextEvent() );
+	if (m_timedHitCollection_MM == nullptr) ATH_CHECK( getNextEvent(ctx) );
 
 	ATH_CHECK( doDigitization(ctx) );
 
diff --git a/MuonSpectrometer/MuonDigitization/sTGC_Digitization/python/sTGC_DigitizationConfig.py b/MuonSpectrometer/MuonDigitization/sTGC_Digitization/python/sTGC_DigitizationConfig.py
index 95da4c275dc0afa04cdba642bafb164a2fa9cb00..cf8758139fc3a585bc92626f63cd86263c30df83 100644
--- a/MuonSpectrometer/MuonDigitization/sTGC_Digitization/python/sTGC_DigitizationConfig.py
+++ b/MuonSpectrometer/MuonDigitization/sTGC_Digitization/python/sTGC_DigitizationConfig.py
@@ -47,6 +47,7 @@ def getSTGCRange(name="sTgcRange", **kwargs):
 def STGC_OverlayDigitizationTool(name="STGC_OverlayDigitizationTool",**kwargs):
     from OverlayCommonAlgs.OverlayFlags import overlayFlags
     if overlayFlags.isOverlayMT():
+        kwargs.setdefault("OnlyUseContainerName", False)
         kwargs.setdefault("OutputObjectName", overlayFlags.sigPrefix() + "sTGC_DIGITS")
         if not overlayFlags.isDataOverlay():
             kwargs.setdefault("OutputSDOName", overlayFlags.sigPrefix() + "sTGC_SDO")
diff --git a/MuonSpectrometer/MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h b/MuonSpectrometer/MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h
index 885cf8eca76329c62cd1b243172ae9e93dfff0df..3cb01a0e2039e114182a41a3cc5fb097074b26c7 100644
--- a/MuonSpectrometer/MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h
+++ b/MuonSpectrometer/MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h
@@ -98,7 +98,7 @@ private:
   CLHEP::HepRandomEngine* getRandomEngine(const std::string& streamName, const EventContext& ctx) const;
 
   /** Get next event and extract collection of hit collections */
-  StatusCode getNextEvent();
+  StatusCode getNextEvent(const EventContext& ctx);
   /** Core part of digitization use by mergeEvent (IPileUpTool) and digitize (IMuonDigitizationTool) */
   StatusCode doDigitization(const EventContext& ctx);
 
diff --git a/MuonSpectrometer/MuonDigitization/sTGC_Digitization/src/sTgcDigitizationTool.cxx b/MuonSpectrometer/MuonDigitization/sTGC_Digitization/src/sTgcDigitizationTool.cxx
index 1c702151c4ff77c256f24c5f979ff6f1d29f4c6a..7463d2b401185e73d4cbb469d958c5af0a9edcf7 100644
--- a/MuonSpectrometer/MuonDigitization/sTGC_Digitization/src/sTgcDigitizationTool.cxx
+++ b/MuonSpectrometer/MuonDigitization/sTGC_Digitization/src/sTgcDigitizationTool.cxx
@@ -216,12 +216,27 @@ StatusCode sTgcDigitizationTool::processBunchXing(int bunchXing,
   return StatusCode::SUCCESS;
 }
 /*******************************************************************************/
-StatusCode sTgcDigitizationTool::getNextEvent() {
+StatusCode sTgcDigitizationTool::getNextEvent(const EventContext& ctx) {
 
   ATH_MSG_DEBUG ( "sTgcDigitizationTool::getNextEvent()" );
 
   //  get the container(s)
   typedef PileUpMergeSvc::TimedList<sTGCSimHitCollection>::type TimedHitCollList;
+
+  // In case of single hits container just load the collection using read handles
+  if (!m_onlyUseContainerName) {
+    SG::ReadHandle<sTGCSimHitCollection> hitCollection(m_hitsContainerKey, ctx);
+    if (!hitCollection.isValid()) {
+      ATH_MSG_ERROR("Could not get sTGCSimHitCollection container " << hitCollection.name() << " from store " << hitCollection.store());
+      return StatusCode::FAILURE;
+    }
+
+    // create a new hits collection
+    m_thpcsTGC = std::make_unique<TimedHitCollection<sTGCSimHit>>(1);
+    m_thpcsTGC->insert(0, hitCollection.cptr());
+    ATH_MSG_DEBUG("sTGCSimHitCollection found with " << hitCollection->size() << " hits");
+    return StatusCode::SUCCESS;
+  }
  
   //this is a list<info<time_t, DataLink<sTGCSimHitCollection> > >
   TimedHitCollList hitCollList;
@@ -288,7 +303,7 @@ StatusCode sTgcDigitizationTool::processAllSubEvents(const EventContext& ctx) {
 
   //merging of the hit collection in getNextEvent method      
   if (m_thpcsTGC == nullptr) {
-    status = getNextEvent();
+    status = getNextEvent(ctx);
     if (StatusCode::FAILURE == status) {
       ATH_MSG_INFO ( "There are no sTGC hits in this event" );
       return status;