diff --git a/InnerDetector/InDetDigitization/PixelDigitization/python/PixelDigitizationConfig.py b/InnerDetector/InDetDigitization/PixelDigitization/python/PixelDigitizationConfig.py
index 7dca8ed764f072fef5950c60df8ffca214291fce..b4ffda3505ece725b83140c67cf028cbf1322e6e 100644
--- a/InnerDetector/InDetDigitization/PixelDigitization/python/PixelDigitizationConfig.py
+++ b/InnerDetector/InDetDigitization/PixelDigitization/python/PixelDigitizationConfig.py
@@ -205,6 +205,10 @@ def PixelDigitizationTool(name="PixelDigitizationTool", **kwargs):
       conddb.addFolder('PIXEL_OFL','/PIXEL/PixReco')
     return BasicPixelDigitizationTool(name, **kwargs)
 
+def PixelGeantinoTruthDigitizationTool(name="PixelGeantinoTruthDigitizationTool", **kwargs):
+    kwargs.setdefault("ParticleBarcodeVeto", 0)
+    return PixelDigitizationTool(name, **kwargs)
+
 def PixelDigitizationToolHS(name="PixelDigitizationToolHS", **kwargs):
     kwargs.setdefault("HardScatterSplittingMode", 1)
     return BasicPixelDigitizationTool(name, **kwargs)
diff --git a/InnerDetector/InDetDigitization/PixelDigitization/python/PixelDigitizationConfigDb.py b/InnerDetector/InDetDigitization/PixelDigitization/python/PixelDigitizationConfigDb.py
index ea47b1caa44a8694963986fc24a6dc0b274784b5..0855d849d2d6da8ae96e531ac43525981a96501f 100644
--- a/InnerDetector/InDetDigitization/PixelDigitization/python/PixelDigitizationConfigDb.py
+++ b/InnerDetector/InDetDigitization/PixelDigitization/python/PixelDigitizationConfigDb.py
@@ -3,6 +3,7 @@
 from AthenaCommon.CfgGetter import addTool,addService,addAlgorithm
 
 addTool("PixelDigitization.PixelDigitizationConfig.PixelDigitizationTool", "PixelDigitizationTool")
+addTool("PixelDigitization.PixelDigitizationConfig.PixelGeantinoTruthDigitizationTool", "PixelGeantinoTruthDigitizationTool")
 addTool("PixelDigitization.PixelDigitizationConfig.PixelDigitizationToolHS", "PixelDigitizationToolHS")
 addTool("PixelDigitization.PixelDigitizationConfig.PixelDigitizationToolPU", "PixelDigitizationToolPU")
 addTool("PixelDigitization.PixelDigitizationConfig.PixelDigitizationToolSplitNoMergePU", "PixelDigitizationToolSplitNoMergePU")
diff --git a/InnerDetector/InDetDigitization/SCT_Digitization/python/SCT_DigitizationConfig.py b/InnerDetector/InDetDigitization/SCT_Digitization/python/SCT_DigitizationConfig.py
index 565f012d89613e152bb12afe07202159f8830d5f..5ccf108e8cf19e65e5f6533ef33f3bcb0c00b207 100644
--- a/InnerDetector/InDetDigitization/SCT_Digitization/python/SCT_DigitizationConfig.py
+++ b/InnerDetector/InDetDigitization/SCT_Digitization/python/SCT_DigitizationConfig.py
@@ -243,6 +243,12 @@ def SCT_DigitizationTool(name="SCT_DigitizationTool", **kwargs):
 
 ######################################################################################
 
+def SCT_GeantinoTruthDigitizationTool(name="SCT_GeantinoTruthDigitizationTool", **kwargs):
+    kwargs.setdefault("ParticleBarcodeVeto", 0)
+    return SCT_DigitizationTool(name,**kwargs)
+
+######################################################################################
+
 def SCT_DigitizationToolHS(name="SCT_DigitizationToolHS",**kwargs):
     kwargs.setdefault("OutputObjectName", "SCT_RDOs")
     kwargs.setdefault("OutputSDOName", "SCT_SDO_Map")
diff --git a/InnerDetector/InDetDigitization/SCT_Digitization/python/SCT_DigitizationConfigDb.py b/InnerDetector/InDetDigitization/SCT_Digitization/python/SCT_DigitizationConfigDb.py
index 5f12118948aba630f160b2e6239392b68711efd2..72c8ba01ac6fb9c02a5ed57e79d4ea849ff7bd64 100644
--- a/InnerDetector/InDetDigitization/SCT_Digitization/python/SCT_DigitizationConfigDb.py
+++ b/InnerDetector/InDetDigitization/SCT_Digitization/python/SCT_DigitizationConfigDb.py
@@ -2,6 +2,7 @@
 
 from AthenaCommon.CfgGetter import addTool,addService,addAlgorithm
 addTool("SCT_Digitization.SCT_DigitizationConfig.SCT_DigitizationTool"          , "SCT_DigitizationTool")
+addTool("SCT_Digitization.SCT_DigitizationConfig.SCT_GeantinoTruthDigitizationTool"          , "SCT_GeantinoTruthDigitizationTool")
 addTool("SCT_Digitization.SCT_DigitizationConfig.SCT_DigitizationToolHS"        , "SCT_DigitizationToolHS")
 addTool("SCT_Digitization.SCT_DigitizationConfig.SCT_DigitizationToolPU"        , "SCT_DigitizationToolPU")
 addTool("SCT_Digitization.SCT_DigitizationConfig.SCT_DigitizationToolSplitNoMergePU", "SCT_DigitizationToolSplitNoMergePU")
diff --git a/InnerDetector/InDetDigitization/TRT_Digitization/python/TRT_DigitizationConfig.py b/InnerDetector/InDetDigitization/TRT_Digitization/python/TRT_DigitizationConfig.py
index af1410e7061c405852e6e4e84576b979711bd555..4ae69e455bb4b3379c4b1bbab33ef6e8fc62d9ea 100644
--- a/InnerDetector/InDetDigitization/TRT_Digitization/python/TRT_DigitizationConfig.py
+++ b/InnerDetector/InDetDigitization/TRT_Digitization/python/TRT_DigitizationConfig.py
@@ -93,6 +93,10 @@ def TRTDigitizationTool(name="TRTDigitizationTool",**kwargs):
     kwargs.setdefault("HardScatterSplittingMode", 0)
     return BasicTRTDigitizationTool(name,**kwargs)
 
+def TRTGeantinoTruthDigitizationTool(name="TRTGeantinoTruthDigitizationTool",**kwargs):
+    kwargs.setdefault("ParticleBarcodeVeto", 0)
+    return TRTDigitizationTool(name,**kwargs)
+
 def TRTDigitizationToolHS(name="TRTDigitizationToolHS",**kwargs):
     kwargs.setdefault("OutputObjectName", "TRT_RDOs")
     kwargs.setdefault("OutputSDOName", "TRT_SDO_Map")
diff --git a/InnerDetector/InDetDigitization/TRT_Digitization/python/TRT_DigitizationConfigDb.py b/InnerDetector/InDetDigitization/TRT_Digitization/python/TRT_DigitizationConfigDb.py
index 3667cd72f069cc13dd55d9a7c0fb780eca7d98c3..a1300473ef91d3278d1fcf9962c716fe78bde872 100644
--- a/InnerDetector/InDetDigitization/TRT_Digitization/python/TRT_DigitizationConfigDb.py
+++ b/InnerDetector/InDetDigitization/TRT_Digitization/python/TRT_DigitizationConfigDb.py
@@ -3,6 +3,7 @@
 from AthenaCommon.CfgGetter import addTool, addAlgorithm
 addTool("TRT_Digitization.TRT_DigitizationConfig.getTRTRange"            , "TRTRange")
 addTool("TRT_Digitization.TRT_DigitizationConfig.TRTDigitizationTool"    , "TRTDigitizationTool")
+addTool("TRT_Digitization.TRT_DigitizationConfig.TRTGeantinoTruthDigitizationTool"    , "TRTGeantinoTruthDigitizationTool")
 addTool("TRT_Digitization.TRT_DigitizationConfig.TRTDigitizationToolHS"  , "TRTDigitizationToolHS")
 addTool("TRT_Digitization.TRT_DigitizationConfig.TRTDigitizationToolPU"  , "TRTDigitizationToolPU")
 addTool("TRT_Digitization.TRT_DigitizationConfig.TRTDigitizationToolSplitNoMergePU", "TRTDigitizationToolSplitNoMergePU")
diff --git a/Simulation/Digitization/python/DigiAlgConfig.py b/Simulation/Digitization/python/DigiAlgConfig.py
index 71c978f8787661180a0f6f5a794cd2bfa7401bb2..80b16aff41d98c91cf8741e3af7b027a20e49ac4 100644
--- a/Simulation/Digitization/python/DigiAlgConfig.py
+++ b/Simulation/Digitization/python/DigiAlgConfig.py
@@ -99,6 +99,23 @@ def getStandardInDetPileUpTools():
             PileUpToolsList += [ "TRTDigitizationTool" ]
     return PileUpToolsList
 
+def getGeantinoTruthInDetPileUpTools():
+    from AthenaCommon.DetFlags import DetFlags
+    from Digitization.DigitizationFlags import digitizationFlags
+    PileUpToolsList = []
+    unsupportedKeys = ['doFastPixelDigi', 'doLightPixelDigi', 'doSmearedPixelDigi', 'doFastSCT_Digi', 'doFastTRT_Digi']
+    if not set(unsupportedKeys).isdisjoint(set(digitizationFlags.experimentalDigi())):
+        print "DigiAlgConfig.py ERROR The following digitizationFlags.experimentalDigi settings are not supported when digiSteeringConf is set to", digitizationFlags.digitSteeringConf.get_Value(), ": ", str(unsupportedKeys), " and will be ignored."
+    if DetFlags.digitize.BCM_on():
+        PileUpToolsList += [ "BCM_DigitizationTool" ]
+    if DetFlags.digitize.pixel_on():
+        PileUpToolsList += [ "PixelGeantinoTruthDigitizationTool" ]
+    if DetFlags.digitize.SCT_on():
+        PileUpToolsList += [ "SCT_GeantinoTruthDigitizationTool" ]
+    if DetFlags.digitize.TRT_on():
+        PileUpToolsList += [ "TRTGeantinoTruthDigitizationTool" ]
+    return PileUpToolsList
+
 def getFastInDetPileUpTools():
     from AthenaCommon.DetFlags import DetFlags
     PileUpToolsList = []
@@ -280,6 +297,22 @@ def getStandardInTimeOnlyTruthPileUpToolsList():
     PileUpToolsList += [ "MergeRecoTimingObjTool" ]
     return PileUpToolsList
 
+def getStandardInTimeOnlyGeantinoTruthPileUpToolsList():
+    PileUpToolsList = []
+    ## Truth information
+    PileUpToolsList += getStandardInTimeOnlyTruthPileUpTools()
+    ## Forward Detector Digitization
+    PileUpToolsList += getStandardForwardPileUpTools()
+    ## Inner Detector Digitization
+    PileUpToolsList += getGeantinoTruthInDetPileUpTools()
+    ## Calo Digitization
+    PileUpToolsList += getStandardCaloPileUpTools()
+    ## Muon System Digitization
+    PileUpToolsList += getStandardMuonPileUpTools()
+    ## RecoTimingObj
+    PileUpToolsList += [ "MergeRecoTimingObjTool" ]
+    return PileUpToolsList
+
 def getFastPileUpToolsList():
     PileUpToolsList = []
     ## Truth information
@@ -400,6 +433,10 @@ def getStandardInTimeOnlyTruthPileUpToolsAlg(name="StandardInTimeOnlyTruthPileUp
     kwargs.setdefault('PileUpTools', getStandardInTimeOnlyTruthPileUpToolsList() )
     return getStandardPileUpToolsAlg(name, **kwargs)
 
+def getStandardInTimeOnlyGeantinoTruthPileUpToolsAlg(name="StandardInTimeOnlyGeantinoTruthPileUpToolsAlg", **kwargs):
+    kwargs.setdefault('PileUpTools', getStandardInTimeOnlyGeantinoTruthPileUpToolsList() )
+    return getStandardPileUpToolsAlg(name, **kwargs)
+
 def getSplitNoMergePileUpToolsAlg(name="SplitNoMergePileUpToolsAlg", **kwargs):
     kwargs.setdefault('PileUpTools', getSplitNoMergePileUpToolsList() )
     return getStandardPileUpToolsAlg(name, **kwargs)
diff --git a/Simulation/Digitization/python/DigitizationConfigDb.py b/Simulation/Digitization/python/DigitizationConfigDb.py
index 0ebd5274a8156eb640406c73be95e5d2e60a8978..a791db8ec48534ca9d14fde3238da646dd2ac514 100644
--- a/Simulation/Digitization/python/DigitizationConfigDb.py
+++ b/Simulation/Digitization/python/DigitizationConfigDb.py
@@ -32,6 +32,7 @@ addAlgorithm("Digitization.DigiAlgConfig.getFastPileUpToolsAlg"      , "FastPile
 addAlgorithm("Digitization.DigiAlgConfig.getSplitPileUpToolsAlg"     , "SplitPileUpToolsAlg")
 addAlgorithm("Digitization.DigiAlgConfig.getStandardSignalOnlyTruthPileUpToolsAlg"  , "StandardSignalOnlyTruthPileUpToolsAlg")
 addAlgorithm("Digitization.DigiAlgConfig.getStandardInTimeOnlyTruthPileUpToolsAlg"  , "StandardInTimeOnlyTruthPileUpToolsAlg")
+addAlgorithm("Digitization.DigiAlgConfig.getStandardInTimeOnlyGeantinoTruthPileUpToolsAlg"  , "StandardInTimeOnlyGeantinoTruthPileUpToolsAlg")
 addAlgorithm("Digitization.DigiAlgConfig.getSplitNoMergePileUpToolsAlg"  , "SplitNoMergePileUpToolsAlg")
 addAlgorithm("Digitization.DigiAlgConfig.getSplitNoMergeSFPileUpToolsAlg"  , "SplitNoMergeSFPileUpToolsAlg")
 addAlgorithm("Digitization.DigiAlgConfig.getSplitNoMergeFSPileUpToolsAlg"  , "SplitNoMergeFSPileUpToolsAlg")
diff --git a/Simulation/Digitization/python/DigitizationWriteMetaData.py b/Simulation/Digitization/python/DigitizationWriteMetaData.py
index 7a398acc7aeecc6172e53fd9e0485de761b80805..513b038d87d3ecafb753b10f433bb616bc2ec79d 100644
--- a/Simulation/Digitization/python/DigitizationWriteMetaData.py
+++ b/Simulation/Digitization/python/DigitizationWriteMetaData.py
@@ -76,7 +76,7 @@ def writeDigitizationMetadata():
                          "initialBunchCrossing", "finalBunchCrossing", "FixedT0BunchCrossing",
                          "doLowPtMinimumBias", "doHighPtMinimumBias",
                          "doCavern", "doBeamGas", "doBeamHalo",
-                         "rndmSvc", "physicsList", "overrideMetadata","pileupDSID"]
+                         "rndmSvc", "physicsList", "overrideMetadata","pileupDSID","digiSteeringConf"]
                          #"readSeedsFromFile", "rndmSeedInputFile",
     from Digitization.DigitizationFlags import digitizationFlags
     if (not ModifyingEventIdBySvc()):