diff --git a/Simulation/Digitization/python/DigiOutput.py b/Simulation/Digitization/python/DigiOutput.py
index 08e7afa176661d4f3fefd80471161bff3f1fe59b..97c20ed88121182c5bce58092518fc0a4e4da633 100644
--- a/Simulation/Digitization/python/DigiOutput.py
+++ b/Simulation/Digitization/python/DigiOutput.py
@@ -89,7 +89,7 @@ def getStreamRDO_ItemList(log):
             if fastDigiOutputExpected():
                 StreamRDO_ItemList+=["PRD_MultiTruthCollection#*"]
         if DetFlags.writeRDOPool.Muon_on():
-            StreamRDO_ItemList+=["CscSimDataCollection#CSC_SDO"]
+            StreamRDO_ItemList+=["CscSimDataCollection#*CSC_SDO"]
             StreamRDO_ItemList+=["MuonSimDataCollection#*"]
     # Forward Detector Output
     if DetFlags.digitize.Lucid_on():
@@ -150,10 +150,10 @@ def getStreamRDO_ItemList(log):
             if 'AddCaloDigi' in digitizationFlags.experimentalDigi():
                 StreamRDO_ItemList+=["TileDigitsContainer#*"]
             elif digitizationFlags.PileUpPremixing:
-                StreamRDO_ItemList+=["TileDigitsContainer#TileDigitsCnt"]
+                StreamRDO_ItemList+=["TileDigitsContainer#*TileDigitsCnt"]
             else:
                 StreamRDO_ItemList+=["TileDigitsContainer#TileDigitsFlt"]
-            StreamRDO_ItemList+=["TileL2Container#TileL2Cnt"]
+            StreamRDO_ItemList+=["TileL2Container#*TileL2Cnt"]
     # Muon Spectrometer Output
     if DetFlags.digitize.Muon_on():
         if DetFlags.writeRDOPool.CSC_on():
@@ -183,8 +183,9 @@ def getStreamRDO_ItemList(log):
     if DetFlags.simulateLVL1.Tile_on():
         if DetFlags.writeRDOPool.Tile_on():
             StreamRDO_ItemList+=["TileTTL1Container#*"]
-            StreamRDO_ItemList+=["TileDigitsContainer#MuRcvDigitsCnt"]
-            StreamRDO_ItemList+=["TileRawChannelContainer#MuRcvRawChCnt"]
+            StreamRDO_ItemList+=["TileDigitsContainer#*MuRcvDigitsCnt"]
+            if not digitizationFlags.PileUpPremixing:
+                StreamRDO_ItemList+=["TileRawChannelContainer#MuRcvRawChCnt"]
             StreamRDO_ItemList+=["TileMuonReceiverContainer#*"]
     if DetFlags.digitize.LVL1_on():
         if DetFlags.writeRDOPool.LVL1_on():
diff --git a/TileCalorimeter/TileL2Algs/python/TileL2FromRawChGetter.py b/TileCalorimeter/TileL2Algs/python/TileL2FromRawChGetter.py
index 10bdcea20c34738569169a76ce7f5bd3d9e3ccef..3f21f72c15e6fec2f4caa9ca3aa99c4ffae54b07 100755
--- a/TileCalorimeter/TileL2Algs/python/TileL2FromRawChGetter.py
+++ b/TileCalorimeter/TileL2Algs/python/TileL2FromRawChGetter.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 
 # Author: J. Poveda (Ximo.Poveda@cern.ch)
 # TileL2 creation from TileRawChannel
@@ -52,7 +52,12 @@ class TileL2FromRawChGetter ( Configured )  :
         self._TileRawChannelToL2Handle = theTileRawChannelToL2 ;
 
         # sets output key  
-        theTileRawChannelToL2.TileL2Container=self.outputKey()        
+        from Digitization.DigitizationFlags import digitizationFlags
+        if digitizationFlags.PileUpPremixing and 'OverlayMT' in digitizationFlags.experimentalDigi():
+            from OverlayCommonAlgs.OverlayFlags import overlayFlags
+            theTileRawChannelToL2.TileL2Container = overlayFlags.bkgPrefix() + self.outputKey()
+        else:
+            theTileRawChannelToL2.TileL2Container = self.outputKey()
 
 
         # register output in objKeyStore
diff --git a/TileCalorimeter/TileSimAlgs/python/TileDigitsGetter.py b/TileCalorimeter/TileSimAlgs/python/TileDigitsGetter.py
index f83c2a867bed519d14ae099b961094e38d0987eb..1d2acd39246d8dbfec069f72ce7e84802da58113 100644
--- a/TileCalorimeter/TileSimAlgs/python/TileDigitsGetter.py
+++ b/TileCalorimeter/TileSimAlgs/python/TileDigitsGetter.py
@@ -55,12 +55,12 @@ class TileDigitsGetter ( Configured )  :
         theTileDigitsMaker=TileDigitsMaker()
         self._TileDigitsMakerHandle = theTileDigitsMaker ;
 
-        theTileDigitsMaker.TileHitContainer_DigiHSTruth="TileHitCnt_DigiHSTruth"
         from Digitization.DigitizationFlags import digitizationFlags
         theTileDigitsMaker.DoHSTruthReconstruction = digitizationFlags.doDigiTruth()
         # Configure TileDigitsMaker here
         # Check TileDigitization_jobOptions.py for full configurability
         theTileDigitsMaker.TileHitContainer="TileHitCnt"
+        theTileDigitsMaker.TileHitContainer_DigiHSTruth="TileHitCnt_DigiHSTruth"
         theTileDigitsMaker.TileInfoName="TileInfo"
 
         theTileDigitsMaker.CalibrationRun=False
@@ -69,7 +69,11 @@ class TileDigitsGetter ( Configured )  :
         theTileDigitsMaker.IntegerDigits = not digitizationFlags.PileUpPremixing() 
 
         # sets output key  
-        theTileDigitsMaker.TileDigitsContainer=self.outputKey()        
+        if digitizationFlags.PileUpPremixing and 'OverlayMT' in digitizationFlags.experimentalDigi():
+            from OverlayCommonAlgs.OverlayFlags import overlayFlags
+            theTileDigitsMaker.TileDigitsContainer = overlayFlags.bkgPrefix() + self.outputKey()
+        else:
+            theTileDigitsMaker.TileDigitsContainer = self.outputKey()
 
 
         # register output in objKeyStore
diff --git a/TileCalorimeter/TileSimAlgs/python/TileTTL1FromHitsGetter.py b/TileCalorimeter/TileSimAlgs/python/TileTTL1FromHitsGetter.py
index 6071ee23e41735356a65c592db3c0191343178bd..c8c2fb0a9027e53a3fee23b5615c79e2939336c4 100644
--- a/TileCalorimeter/TileSimAlgs/python/TileTTL1FromHitsGetter.py
+++ b/TileCalorimeter/TileSimAlgs/python/TileTTL1FromHitsGetter.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 
 # Author: J. Poveda (Ximo.Poveda@cern.ch)
 # TileTTL1 creation from TileHit
@@ -56,7 +56,14 @@ class TileTTL1FromHitsGetter ( Configured )  :
         theTileHitToTTL1.TileInfoName="TileInfo"
 
         # sets output key  
-        theTileHitToTTL1.TileTTL1Container=self.outputKey()        
+        from Digitization.DigitizationFlags import digitizationFlags
+        if digitizationFlags.PileUpPremixing and 'OverlayMT' in digitizationFlags.experimentalDigi():
+            from OverlayCommonAlgs.OverlayFlags import overlayFlags
+            theTileHitToTTL1.TileTTL1Container = overlayFlags.bkgPrefix() + self.outputKey()
+            theTileHitToTTL1.TileMBTSTTL1Container = overlayFlags.bkgPrefix() + "TileTTL1MBTS"
+        else:
+            theTileHitToTTL1.TileTTL1Container = self.outputKey()
+            theTileHitToTTL1.TileMBTSTTL1Container = "TileTTL1MBTS"
 
 
         # register output in objKeyStore
diff --git a/TileCalorimeter/TileSimAlgs/share/TileDigiCommon_jobOptions.py b/TileCalorimeter/TileSimAlgs/share/TileDigiCommon_jobOptions.py
index ff4eed4937c9a593c93b1bc55fed511c9a18f596..a4004c46f083a2f8bec426652ed611ae15b924d1 100644
--- a/TileCalorimeter/TileSimAlgs/share/TileDigiCommon_jobOptions.py
+++ b/TileCalorimeter/TileSimAlgs/share/TileDigiCommon_jobOptions.py
@@ -138,6 +138,8 @@ if doTileDigitToRawChannel:
       theTileRawChannelGetter_DigiHSTruth.TileRawChannelContainer = "TileRawChannelCnt_DigiHSTruth"
 
     TileRChMaker = theTileRawChannelGetter.TileRChMaker()
+    if digitizationFlags.PileUpPremixing and 'OverlayMT' in digitizationFlags.experimentalDigi():
+        TileRChMaker.TileDigitsContainer = overlayFlags.bkgPrefix() + 'TileDigitsCnt'
 
     TileRawChannelBuilderOptATLAS = None
     if jobproperties.TileRecFlags.doTileOptATLAS():
diff --git a/TileCalorimeter/TileSimAlgs/share/TileMuonReceiver_jobOptions.py b/TileCalorimeter/TileSimAlgs/share/TileMuonReceiver_jobOptions.py
index ee20a8262cffc1748f982190f69d7ade00c2af9f..5137a1aaf6bff61e3a9698721c6a78fcc3de95ca 100644
--- a/TileCalorimeter/TileSimAlgs/share/TileMuonReceiver_jobOptions.py
+++ b/TileCalorimeter/TileSimAlgs/share/TileMuonReceiver_jobOptions.py
@@ -52,7 +52,9 @@ topSequence += CfgMgr.TilePulseForTileMuonReceiver('TilePulseForTileMuonReceiver
                                                    , UseCoolPulseShapes = True
                                                    , TileCondToolPulseShape = TileCondToolMuRcvPulseShape
                                                    , TileRawChannelBuilderMF = TileMuRcvRawChannelBuilderMF)
-
+if jobproperties.Digitization.PileUpPremixing and 'OverlayMT' in jobproperties.Digitization.experimentalDigi():
+    from OverlayCommonAlgs.OverlayFlags import overlayFlags
+    topSequence.TilePulseForTileMuonReceiver.MuonReceiverDigitsContainer = overlayFlags.bkgPrefix() + "MuRcvDigitsCnt"
 
 topSequence += CfgMgr.TileMuonReceiverDecision('TileMuonReceiverDecision'
 #                                                , OutputLevel = VERBOSE 
@@ -60,4 +62,6 @@ topSequence += CfgMgr.TileMuonReceiverDecision('TileMuonReceiverDecision'
 						, MuonReceiverEneThreshCellD6andD5Low = 500
 						, MuonReceiverEneThreshCellD6High = 600
 						, MuonReceiverEneThreshCellD6andD5High = 600)
-
+if jobproperties.Digitization.PileUpPremixing and 'OverlayMT' in jobproperties.Digitization.experimentalDigi():
+    from OverlayCommonAlgs.OverlayFlags import overlayFlags
+    topSequence.TileMuonReceiverDecision.TileMuonReceiverContainer = overlayFlags.bkgPrefix() + "TileMuRcvCnt"