diff --git a/Simulation/Digitization/python/DigitizationFlags.py b/Simulation/Digitization/python/DigitizationFlags.py
index 4209095bea311ccb52667a142c3a07057243ba50..770f761fdccfd959f177568fae7c79085e5a099e 100755
--- a/Simulation/Digitization/python/DigitizationFlags.py
+++ b/Simulation/Digitization/python/DigitizationFlags.py
@@ -737,6 +737,14 @@ class TRTRangeCut(JobProperty):
     allowedValues = [0.05,30.0]
     StoredValue=0.05
 
+#
+class PileUpPremixing(JobProperty):
+    """ Run pile-up premixing
+    """
+    statusOn=True
+    allowedTypes=['bool']
+    StoredValue=False
+
 #
 # Defines the container for the digitization flags
 class Digitization(JobPropertyContainer):
@@ -808,7 +816,7 @@ list_jobproperties=[doInDetNoise,doCaloNoise,doMuonNoise,doFwdNoise,doRadiationD
                     bunchSpacing,initialBunchCrossing,finalBunchCrossing,doXingByXingPileUp,\
                     simRunNumber,dataRunNumber,BeamIntensityPattern,FixedT0BunchCrossing,cavernIgnoresBeamInt,\
                     RunAndLumiOverrideList,SignalPatternForSteppingCache,
-                    experimentalDigi,pileupDSID,specialConfiguration,digiSteeringConf,TRTRangeCut]
+                    experimentalDigi,pileupDSID,specialConfiguration,digiSteeringConf,TRTRangeCut,PileUpPremixing]
 
 for i in list_jobproperties:
     jobproperties.Digitization.add_JobProperty(i)
diff --git a/Simulation/SimuJobTransforms/python/simTrfArgs.py b/Simulation/SimuJobTransforms/python/simTrfArgs.py
index a6aa6cc872d23f0f07dd760978055b92219bf826..ff1d0b811b37893ab30f78c83ec0e60af990ec23 100644
--- a/Simulation/SimuJobTransforms/python/simTrfArgs.py
+++ b/Simulation/SimuJobTransforms/python/simTrfArgs.py
@@ -69,6 +69,9 @@ def addBasicDigiArgs(parser):
     parser.add_argument('--AddCaloDigi',
                         type=argFactory(argBool),
                         help='Save Calo Digits too, not just RawChannels.', group='Digi')
+    parser.add_argument('--PileUpPremixing',
+                        type=argFactory(argBool),
+                        help='Run digitization with pile-up premixing configuration.', group='Digi')
 
 ## Add Pile-up related transform arguments to an argparse ArgumentParser
 def addPileUpTrfArgs(parser):
diff --git a/Simulation/SimuJobTransforms/scripts/Digi_tf.py b/Simulation/SimuJobTransforms/scripts/Digi_tf.py
index df78dcf61aaa3edbbc7cd35461e7932d5abda782..33581357fd33fd393217411d161e877a12ad80d3 100755
--- a/Simulation/SimuJobTransforms/scripts/Digi_tf.py
+++ b/Simulation/SimuJobTransforms/scripts/Digi_tf.py
@@ -25,7 +25,7 @@ from SimuJobTransforms.simTrfArgs import addForwardDetTrfArgs, addBasicDigiArgs,
 import PyJobTransforms.trfArgClasses as trfArgClasses
 
 # Prodsys hack...
-ListOfDefaultPositionalKeys=['--AFPOn', '--ALFAOn', '--AddCaloDigi', '--DBRelease', '--DataRunNumber', '--FwdRegionOn', '--LucidOn', '--ZDCOn', '--amiConfig', '--amiMetadataTag', '--asetup', '--athena', '--athenaopts', '--beamType', '--bunchSpacing', '--checkEventCount', '--command', '--conditionsTag', '--digiRndmSvc', '--digiSeedOffset1', '--digiSeedOffset2', '--doAllNoise', '--env', '--eventAcceptanceEfficiency', '--execOnly', '--geometryVersion', '--ignoreErrors', '--ignoreFiles', '--ignorePatterns', '--imf', '--inputBeamGasHitsFile', '--inputBeamHaloHitsFile', '--inputCavernHitsFile', '--inputHITSFile', '--inputHighPtMinbiasHitsFile', '--inputLowPtMinbiasHitsFile', '--jobNumber', '--maxEvents', '--numberOfBeamGas', '--numberOfBeamHalo', '--numberOfCavernBkg', '--numberOfHighPtMinBias', '--numberOfLowPtMinBias', '--outputRDOFile', '--outputRDO_FILTFile', '--pileupFinalBunch', '--pileupInitialBunch', '--postExec', '--postInclude', '--preExec', '--preInclude', '--reportName', '--reportType', '--runNumber', '--samplingFractionDbTag', '--showGraph', '--showPath', '--showSteps', '--skipEvents', '--skipFileValidation', '--skipInputFileValidation', '--skipOutputFileValidation', '--tcmalloc', '--testPileUpConfig', '--triggerConfig']
+ListOfDefaultPositionalKeys=['--AFPOn', '--ALFAOn', '--AddCaloDigi', '--DBRelease', '--DataRunNumber', '--FwdRegionOn', '--LucidOn', '--PileUpPremixing', '--ZDCOn', '--amiConfig', '--amiMetadataTag', '--asetup', '--athena', '--athenaopts', '--beamType', '--bunchSpacing', '--checkEventCount', '--command', '--conditionsTag', '--digiRndmSvc', '--digiSeedOffset1', '--digiSeedOffset2', '--doAllNoise', '--env', '--eventAcceptanceEfficiency', '--execOnly', '--geometryVersion', '--ignoreErrors', '--ignoreFiles', '--ignorePatterns', '--imf', '--inputBeamGasHitsFile', '--inputBeamHaloHitsFile', '--inputCavernHitsFile', '--inputHITSFile', '--inputHighPtMinbiasHitsFile', '--inputLowPtMinbiasHitsFile', '--jobNumber', '--maxEvents', '--numberOfBeamGas', '--numberOfBeamHalo', '--numberOfCavernBkg', '--numberOfHighPtMinBias', '--numberOfLowPtMinBias', '--outputRDOFile', '--outputRDO_FILTFile', '--pileupFinalBunch', '--pileupInitialBunch', '--postExec', '--postInclude', '--preExec', '--preInclude', '--reportName', '--reportType', '--runNumber', '--samplingFractionDbTag', '--showGraph', '--showPath', '--showSteps', '--skipEvents', '--skipFileValidation', '--skipInputFileValidation', '--skipOutputFileValidation', '--tcmalloc', '--testPileUpConfig', '--triggerConfig']
 
 @stdTrfExceptionHandler
 @sigUsrStackTrace
diff --git a/Simulation/SimuJobTransforms/share/skeleton.HITtoRDO.py b/Simulation/SimuJobTransforms/share/skeleton.HITtoRDO.py
index d9406d810f381bf70424daa3cf7b6317deb32d2b..3ebd5a0325a1e53d6c452c7f800453967416f7aa 100644
--- a/Simulation/SimuJobTransforms/share/skeleton.HITtoRDO.py
+++ b/Simulation/SimuJobTransforms/share/skeleton.HITtoRDO.py
@@ -199,6 +199,10 @@ if hasattr(runArgs,"conditionsTag"):
     if(runArgs.conditionsTag!='NONE'):
         digitizationFlags.IOVDbGlobalTag = runArgs.conditionsTag
 
+if hasattr(runArgs,"PileUpPremixing"):
+    digilog.info("Doing pile-up premixing")
+    digitizationFlags.PileUpPremixing = runArgs.PileUpPremixing
+
 #--------------------------------------------------------------
 # Pileup configuration
 #--------------------------------------------------------------
@@ -405,11 +409,9 @@ if hasattr(runArgs,"outputRDOFile") or hasattr(runArgs,"outputRDO_FILTFile"):
         athenaCommonFlags.PoolRDOOutput.set_Value_and_Lock( runArgs.outputRDOFile )
     elif hasattr(runArgs,"outputRDO_FILTFile"):
         athenaCommonFlags.PoolRDOOutput.set_Value_and_Lock( runArgs.outputRDO_FILTFile )
-    if hasattr(runArgs, "AddCaloDigi"):
-        AddCaloDigi = runArgs.AddCaloDigi
-        if AddCaloDigi:
-            digilog.info("Will write out all LArDigitContainers and TileDigitsContainers to RDO file.")
-            digitizationFlags.experimentalDigi+=["AddCaloDigi"]
+    if digitizationFlags.PileUpPremixing or (hasattr(runArgs, "AddCaloDigi") and runArgs.AddCaloDigi):
+        digilog.info("Will write out all LArDigitContainers and TileDigitsContainers to RDO file.")
+        digitizationFlags.experimentalDigi+=["AddCaloDigi"]
 else:
     digilog.info("no output file (outputRDOFile or outputRDO_FILTFile) specified - switching off output StreamRDO")
     if not 'DetFlags' in dir():