diff --git a/Event/EventOverlay/OverlayMonitoringRTT/test/OverlayMonitoringRTT_TestConfiguration.xml b/Event/EventOverlay/OverlayMonitoringRTT/test/OverlayMonitoringRTT_TestConfiguration.xml
index 291ae88068815f985e45efef0970e4cbb909585b..a1818eef1c0eb519423b5df8985a47a1b34a14fc 100644
--- a/Event/EventOverlay/OverlayMonitoringRTT/test/OverlayMonitoringRTT_TestConfiguration.xml
+++ b/Event/EventOverlay/OverlayMonitoringRTT/test/OverlayMonitoringRTT_TestConfiguration.xml
@@ -19,7 +19,7 @@
               <doc></doc>
               <jobTransformJobName>MC15_2016_Legacy_OverlayChain_tf</jobTransformJobName>
               <jobTransformCmd>
-		OverlayChain_tf.py --inputZeroBiasBSFile /afs/cern.ch/work/t/tkharlam/public/mc15_valid.00200010.overlay_streamsAll_2016_pp_1.skim.DRAW.r8381/DRAW.09331084._000146.pool.root.1 --DataRunNumber 2015 --inputEVNTFile /afs/cern.ch/work/t/tkharlam/public/overlay_RTT/mc16_13TeV.361107.PowhegPythia8EvtGen_AZNLOCTEQ6L1_Zmumu.merge.EVNT.e3601_e5984/EVNT.12228944._002158.pool.root.1 --outputRDOFile testRTT.RDO.pool.root --outputHITSFile testRTT.HITS.pool.root --triggerBit 240 --skipEvents 0 --maxEvents 10 --randomSeed 123456789 --geometryVersion ATLAS-R2-2015-03-01-00 --conditionsTag CONDBR2-BLKPA-2016-12 --digiSeedOffset1=211 --digiSeedOffset2=122 --samplingFractionDbTag FTFP_BERT_BIRK --fSampltag LARElecCalibMCfSampl-G496-19213- --preInclude 'sim:EventOverlayJobTransforms/custom.py,EventOverlayJobTransforms/magfield.py' 'overlayBS:EventOverlayJobTransforms/custom.py' --preExec 'from LArROD.LArRODFlags import larRODFlags;larRODFlags.nSamples.set_Value_and_Lock(4);from LArConditionsCommon.LArCondFlags import larCondFlags; larCondFlags.OFCShapeFolder.set_Value_and_Lock("4samples1phase")' --postInclude 'sim:EventOverlayJobTransforms/Rt_override_CONDBR2-BLKPA-2015-12.py,EventOverlayJobTransforms/muAlign.py,EventOverlayJobTransforms/g4runnumber.py' 'overlayBS:EventOverlayJobTransforms/Rt_override_CONDBR2-BLKPA-2015-12.py' --ignorePatterns "L1TopoMenuLoader.+ERROR." 
+		OverlayChain_tf.py --inputZeroBiasBSFile /afs/cern.ch/work/t/tkharlam/public/mc15_valid.00200010.overlay_streamsAll_2016_pp_1.skim.DRAW.r8381/DRAW.09331084._000146.pool.root.1 --DataRunNumber 2015 --inputEVNTFile /afs/cern.ch/work/t/tkharlam/public/overlay_RTT/mc15_13TeV.147407.PowhegPythia8_AZNLO_Zmumu.evgen.EVNT.e4032/EVNT.05685490._000002.pool.root.1 --outputRDOFile testRTT.RDO.pool.root --outputHITSFile testRTT.HITS.pool.root --triggerBit 240 --skipEvents 0 --maxEvents 10 --randomSeed 123456789 --geometryVersion ATLAS-R2-2015-03-01-00 --conditionsTag CONDBR2-BLKPA-2016-12 --digiSeedOffset1=211 --digiSeedOffset2=122 --samplingFractionDbTag FTFP_BERT_BIRK --fSampltag LARElecCalibMCfSampl-G496-19213- --preInclude 'sim:EventOverlayJobTransforms/custom.py,EventOverlayJobTransforms/magfield.py' 'overlayBS:EventOverlayJobTransforms/custom.py' --preExec 'from LArROD.LArRODFlags import larRODFlags;larRODFlags.nSamples.set_Value_and_Lock(4);from LArConditionsCommon.LArCondFlags import larCondFlags; larCondFlags.OFCShapeFolder.set_Value_and_Lock("4samples1phase")' --postInclude 'sim:EventOverlayJobTransforms/Rt_override_CONDBR2-BLKPA-2015-12.py,EventOverlayJobTransforms/muAlign.py,EventOverlayJobTransforms/g4runnumber.py' 'overlayBS:EventOverlayJobTransforms/Rt_override_CONDBR2-BLKPA-2015-12.py' --ignorePatterns "L1TopoMenuLoader.+ERROR." 
               </jobTransformCmd>
               <group>Overlay_JobTransforms</group>
               <queue>long</queue>
diff --git a/Event/EventOverlay/OverlayMonitoringRTT/test/test_BSFilter.sh b/Event/EventOverlay/OverlayMonitoringRTT/test/test_BSFilter.sh
deleted file mode 100644
index 3b8460a1cbf7f01b1c293e4206310ae91cd9bfa5..0000000000000000000000000000000000000000
--- a/Event/EventOverlay/OverlayMonitoringRTT/test/test_BSFilter.sh
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/sh
-
-# art-description: BSOverlayFilter_tf legacy test
-# art-type: grid
-# art-ci: 21.0
-
-# art-output: trigs_tar.txt
-# art-output: log.*
-# art-output: mem.summary.*      
-# art-output: mem.full.*      
-
-BSOverlayFilter_tf.py --jobNumber 23 --inputBSCONFIGFile /cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/OverlayMonitoringRTT/test23.tar --inputFileValidation False --outputBS_TRIGSKIMFile trigskim.RAW --triggerBit 240 --inputFilterFile trigs_tar.txt 
-JOBSTATUS_1=$?
-
-echo "art-result: [${JOBSTATUS_1}]"
-
-rm -f *.RAW
-
-grep 'Events processed: 625' log.BSFilter
-grep 'number of events written: 400' log.BSFilter
-grep 'leaving with code 0' log.BSFilter
-
diff --git a/Event/EventOverlay/OverlayMonitoringRTT/test/test_DataOverlayMC16.sh b/Event/EventOverlay/OverlayMonitoringRTT/test/test_DataOverlayMC16.sh
index 3d24d7d2954eca6f480dafb06a315a8b724e84b7..5f701c007f3292d9211092c98d80645265419679 100755
--- a/Event/EventOverlay/OverlayMonitoringRTT/test/test_DataOverlayMC16.sh
+++ b/Event/EventOverlay/OverlayMonitoringRTT/test/test_DataOverlayMC16.sh
@@ -4,17 +4,9 @@
 # art-type: grid
 # art-ci: 21.0
 
-# art-output: *.root                                                    
-# art-output: log.*                                                            
-# art-output: mem.summary.*                                                    
-# art-output: mem.full.*         
-# art-output: runargs.*
-
-OverlayChain_tf.py --inputZeroBiasBSFile /cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/OverlayMonitoringRTT/mc15_valid.00200010.overlay_streamsAll_2016_pp_1.skim.DRAW.r8381/DRAW.09331084._000146.pool.root.1 --DataRunNumber 2015 --inputEVNTFile /cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/OverlayMonitoringRTT/mc16_13TeV.361107.PowhegPythia8EvtGen_AZNLOCTEQ6L1_Zmumu.merge.EVNT.e3601_e5984/EVNT.12228944._002158.pool.root.1 --outputRDOFile testRTT.RDO.pool.root --outputHITSFile testRTT.HITS.pool.root --triggerBit 240 --skipEvents 0 --maxEvents 10 --randomSeed 123456789 --geometryVersion ATLAS-R2-2015-03-01-00 --conditionsTag CONDBR2-BLKPA-2016-12 --digiSeedOffset1=211 --digiSeedOffset2=122 --samplingFractionDbTag FTFP_BERT_BIRK --fSampltag LARElecCalibMCfSampl-G496-19213- --preInclude 'sim:EventOverlayJobTransforms/custom.py,EventOverlayJobTransforms/magfield.py' 'overlayBS:EventOverlayJobTransforms/custom.py' --preExec 'from LArROD.LArRODFlags import larRODFlags;larRODFlags.nSamples.set_Value_and_Lock(4);from LArConditionsCommon.LArCondFlags import larCondFlags; larCondFlags.OFCShapeFolder.set_Value_and_Lock("4samples1phase")' --postInclude 'sim:EventOverlayJobTransforms/Rt_override_CONDBR2-BLKPA-2015-12.py,EventOverlayJobTransforms/muAlign.py,EventOverlayJobTransforms/g4runnumber.py' 'overlayBS:EventOverlayJobTransforms/Rt_override_CONDBR2-BLKPA-2015-12.py' --ignorePatterns "L1TopoMenuLoader.+ERROR."
-JOBSTATUS_1=$?
+OverlayChain_tf.py --inputZeroBiasBSFile /cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/OverlayMonitoringRTT/mc15_valid.00200010.overlay_streamsAll_2016_pp_1.skim.DRAW.r8381/DRAW.09331084._000146.pool.root.1 --DataRunNumber 2015 --inputEVNTFile /cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/OverlayMonitoringRTT/mc15_13TeV.147407.PowhegPythia8_AZNLO_Zmumu.evgen.EVNT.e4032/EVNT.05685490._000002.pool.root.1 --outputRDOFile testRTT.RDO.pool.root --outputHITSFile testRTT.HITS.pool.root --triggerBit 240 --skipEvents 0 --maxEvents 10 --randomSeed 123456789 --geometryVersion ATLAS-R2-2015-03-01-00 --conditionsTag CONDBR2-BLKPA-2016-12 --digiSeedOffset1=211 --digiSeedOffset2=122 --samplingFractionDbTag FTFP_BERT_BIRK --fSampltag LARElecCalibMCfSampl-G496-19213- --preInclude 'sim:EventOverlayJobTransforms/custom.py,EventOverlayJobTransforms/magfield.py' 'overlayBS:EventOverlayJobTransforms/custom.py' --preExec 'from LArROD.LArRODFlags import larRODFlags;larRODFlags.nSamples.set_Value_and_Lock(4);from LArConditionsCommon.LArCondFlags import larCondFlags; larCondFlags.OFCShapeFolder.set_Value_and_Lock("4samples1phase")' --postInclude 'sim:EventOverlayJobTransforms/Rt_override_CONDBR2-BLKPA-2015-12.py,EventOverlayJobTransforms/muAlign.py,EventOverlayJobTransforms/g4runnumber.py' 'overlayBS:EventOverlayJobTransforms/Rt_override_CONDBR2-BLKPA-2015-12.py' --ignorePatterns "L1TopoMenuLoader.+ERROR."
 
 Reco_tf.py --inputRDOFile testRTT.RDO.pool.root --outputESDFile testRTT.ESD.pool.root --outputAODFile testRTT.AOD.pool.root --preInclude 'EventOverlayJobTransforms/custom.py,EventOverlayJobTransforms/recotrfpre.py' --postInclude 'r2e:EventOverlayJobTransforms/Rt_override_CONDBR2-BLKPA-2015-12.py,EventOverlayJobTransforms/muAlign_reco.py' --preExec 'from LArConditionsCommon.LArCondFlags import larCondFlags;larCondFlags.OFCShapeFolder.set_Value_and_Lock("4samples1phase");rec.doTrigger=False;' --ignorePatterns "L1TopoMenuLoader.+ERROR." --postExec 'r2e:from LArCellRec.LArCellRecConf import LArCellBuilderFromLArRawChannelTool;LArCellBuilderFromLArRawChannelTool.RawChannelsName="LArRawChannels_FromDigits"'
-JOBSTATUS_2=$?
 
 SCRIPT_DIRECTORY=$1 
 PACKAGE=$2 
@@ -25,7 +17,4 @@ PROJECT=$6
 PLATFORM=$7 
 NIGHTLY_TAG=$8 
 
-art.py compare grid $NIGHTLY_RELEASE $PROJECT $PLATFORM $NIGHTLY_TAG $PACKAGE $TEST_NAME testRTT.HITS.pool.root testRTT.RDO.pool.root testRTT.ESD.pool.root
-JOBSTATUS_3=$?
-
-echo "art-result: [${JOBSTATUS_1}, ${JOBSTATUS_2}, ${JOBSTATUS_3}]"
+#art.py compare grid $NIGHTLY_RELEASE $PROJECT $PLATFORM $NIGHTLY_TAG $PACKAGE $TEST_NAME testRTT.HITS.pool.root testRTT.RDO.pool.root testRTT.ESD.pool.root
\ No newline at end of file
diff --git a/Event/EventOverlay/OverlayMonitoringRTT/test/test_MCOverlayMC16.sh b/Event/EventOverlay/OverlayMonitoringRTT/test/test_MCOverlayMC16.sh
deleted file mode 100644
index 73b8289a6ef799e80fc930ae0431c5a8b9194d44..0000000000000000000000000000000000000000
--- a/Event/EventOverlay/OverlayMonitoringRTT/test/test_MCOverlayMC16.sh
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/bin/sh
-
-# art-description: OverlayTrf for data16.
-# art-type: grid
-# art-ci: 21.0
-
-# art-output: *.root                                                           
-# art-output: log.*                                                            
-# art-output: mem.summary.*                                                    
-# art-output: mem.full.*                                                       
-# art-output: runargs.*     
-
-OverlayPool_tf.py --inputHITSFile /cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/OverlayMonitoringRTT/mc16_13TeV.424000.ParticleGun_single_mu_Pt100.simul.HITS.e3580_s3126/HITS.11330296._000376.pool.root.1 --inputRDO_BKGFile /cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/OverlayMonitoringRTT/user.tkharlam.PileupPremixing.r21.0.22.159000.ParticleGenerator_nu_E50.pileup.mc16a_caseA_EXT0/user.tkharlam.11805093.EXT0._000346.RDO.pool.root --outputRDOFile MC_plus_MC.RDO.pool.root --maxEvents 20 --skipEvents 10  --digiSeedOffset1 511 --digiSeedOffset2 727 --conditionsTag OFLCOND-MC16-SDR-14 --geometryVersion ATLAS-R2-2016-01-00-01 --triggerConfig 'OverlayPool=NONE' --postExec 'ServiceMgr.TGCcablingServerSvc.forcedUse=True' --preExec 'from LArROD.LArRODFlags import larRODFlags;larRODFlags.NumberOfCollisions.set_Value_and_Lock(20);larRODFlags.nSamples.set_Value_and_Lock(4);larRODFlags.doOFCPileupOptimization.set_Value_and_Lock(True);larRODFlags.firstSample.set_Value_and_Lock(0);larRODFlags.useHighestGainAutoCorr.set_Value_and_Lock(True)'
-JOBSTATUS_1=$?
-
- Reco_tf.py --inputRDOFile MC_plus_MC.RDO.pool.root --outputESDFile MC_plus_MC.ESD.pool.root --outputAODFile MC_plus_MC.AOD.pool.root --maxEvents -1 --skipEvents 0 --autoConfiguration everything --preExec 'rec.doTrigger=False;from LArROD.LArRODFlags import larRODFlags;larRODFlags.NumberOfCollisions.set_Value_and_Lock(20);larRODFlags.nSamples.set_Value_and_Lock(4);larRODFlags.doOFCPileupOptimization.set_Value_and_Lock(True);larRODFlags.firstSample.set_Value_and_Lock(0);larRODFlags.useHighestGainAutoCorr.set_Value_and_Lock(True);' 'RAWtoESD:from CaloRec.CaloCellFlags import jobproperties;jobproperties.CaloCellFlags.doLArCellEmMisCalib=False'
-JOBSTATUS_2=$?
-
-SCRIPT_DIRECTORY=$1 
-PACKAGE=$2 
-TYPE=$3 
-TEST_NAME=$4 
-NIGHTLY_RELEASE=$5 
-PROJECT=$6 
-PLATFORM=$7 
-NIGHTLY_TAG=$8 
-
-art.py compare grid $NIGHTLY_RELEASE $PROJECT $PLATFORM $NIGHTLY_TAG $PACKAGE $TEST_NAME MC_plus_MC.RDO.pool.root MC_plus_MC.ESD.pool.root MC_plus_MC.AOD.pool.root
-JOBSTATUS_3=$?
-
-echo "art-result: [${JOBSTATUS_1}, ${JOBSTATUS_2}, ${JOBSTATUS_3}]"
diff --git a/Generators/EvgenProdTools/python/LogicalExpressionFilter.py b/Generators/EvgenProdTools/python/LogicalExpressionFilter.py
index fa7f3f12bb2749bbece21eabad34b3c85b26341a..d1d202c44d220ee8a5d8546b4d9c5068b633f505 100644
--- a/Generators/EvgenProdTools/python/LogicalExpressionFilter.py
+++ b/Generators/EvgenProdTools/python/LogicalExpressionFilter.py
@@ -158,8 +158,7 @@ class LogicalExpressionFilter( PyAthena.Alg ):
 
     def evalFilter(self, filterName):
       if not self.algdict[filterName].isExecuted():
-         self.algdict[filterName].sysExecute( )
-#         self.algdict[filterName].sysExecute( self.getContext() ) # for rel. 22
+         self.algdict[filterName].sysExecute( self.getContext() )
          self.algdict[filterName].setExecuted(True)
       decision = self.algdict[filterName].filterPassed()
       self.msg.verbose(filterName + " decision=" + str(decision))
diff --git a/Generators/EvtGen_i/CMakeLists.txt b/Generators/EvtGen_i/CMakeLists.txt
index 434688704289216258ac1ceae0221395c6e0f4c2..e47c478b9ab9cfa289a98b6f8b4362742122c5a8 100644
--- a/Generators/EvtGen_i/CMakeLists.txt
+++ b/Generators/EvtGen_i/CMakeLists.txt
@@ -44,7 +44,6 @@ atlas_add_library( EvtGen_iLib
                    src/EvtPythiaEngine.cxx
                    src/EvtInclusiveDecay.cxx
                    PUBLIC_HEADERS EvtGen_i
-                   DEFINITIONS -DEVTGEN_PYTHIA -DEVTGEN_PHOTOS -DEVTGEN_TAUOLA
                    INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${HEPPDT_INCLUDE_DIRS} ${PYTHIA8_INCLUDE_DIRS} ${PHOTOSPP_INCLUDE_DIRS} ${TAUOLAPP_INCLUDE_DIRS} ${HEPMC_INCLUDE_DIRS} ${EVTGEN_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS}
                    PRIVATE_INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS}
                    PRIVATE_DEFINITIONS ${CLHEP_DEFINITIONS}
diff --git a/InnerDetector/InDetExample/InDetRecExample/python/ConfiguredNewTrackingCuts.py b/InnerDetector/InDetExample/InDetRecExample/python/ConfiguredNewTrackingCuts.py
index 153a7bbf4453066c634af9c4ef857e536e437314..de69d115c739bc1f3bbf694a61825054cea803e8 100755
--- a/InnerDetector/InDetExample/InDetRecExample/python/ConfiguredNewTrackingCuts.py
+++ b/InnerDetector/InDetExample/InDetRecExample/python/ConfiguredNewTrackingCuts.py
@@ -319,7 +319,7 @@ class ConfiguredNewTrackingCuts :
     if mode == "LargeD0": 
       self.__extension          = "LargeD0" # this runs parallel to NewTracking
       self.__maxPT              = 1.0 * Units.TeV
-      self.__minPT              = 900 * Units.MeV
+      self.__minPT              = 500 * Units.MeV
       self.__maxEta             = 5
       self.__maxPrimaryImpact   = 300.0 * Units.mm
       self.__maxZImpact         = 1500.0 * Units.mm
diff --git a/InnerDetector/InDetValidation/InDetPhysValMonitoring/python/InDetPhysValDecoration.py b/InnerDetector/InDetValidation/InDetPhysValMonitoring/python/InDetPhysValDecoration.py
index 126b87738266135bb6bb61670152cfe4c2c99b99..4a361bb77593f1186a8cd6d506496333fe8db8cc 100644
--- a/InnerDetector/InDetValidation/InDetPhysValMonitoring/python/InDetPhysValDecoration.py
+++ b/InnerDetector/InDetValidation/InDetPhysValMonitoring/python/InDetPhysValDecoration.py
@@ -377,6 +377,19 @@ def addExtraMonitoring() :
            mon_manager = topSequence.getChildren()[mon_index]
            from InDetPhysValMonitoring.InDetPhysValMonitoringTool import InDetPhysValMonitoringTool
 
+           from InDetRecExample.InDetKeys import InDetKeys
+           # for backward compatibility check whether DBM has been added already
+           if InDetPhysValFlags.doValidateTightPrimaryTracks() :
+              mon_manager.AthenaMonTools += [ toolFactory(InDetPhysValMonitoringTool.InDetPhysValMonitoringToolTightPrimary ) ]
+
+           if InDetPhysValFlags.doValidateGSFTracks() :
+              mon_manager.AthenaMonTools += [ toolFactory(InDetPhysValMonitoringTool.InDetPhysValMonitoringToolGSF ) ]
+
+           from InDetRecExample.InDetKeys import InDetKeys
+           # for backward compatibility check whether DBM has been added already
+           if InDetPhysValFlags.doValidateDBMTracks() and hasattr(InDetKeys,'DBMTrackParticles') :
+              mon_manager.AthenaMonTools += [ toolFactory(InDetPhysValMonitoringTool.InDetPhysValMonitoringToolDBM ) ]
+
   except ImportError :
     import sys,traceback
     exc_type, exc_value, exc_traceback = sys.exc_info()
@@ -442,6 +455,10 @@ def addDecoratorIfNeeded() :
    # the monitoring manager exists already.
    from  InDetPhysValMonitoring.InDetPhysValJobProperties import InDetPhysValFlags
    InDetPhysValFlags.init()
+   if InDetPhysValFlags.doValidateGSFTracks() or InDetPhysValFlags.doValidateDBMTracks() or InDetPhysValFlags.doValidateTightPrimaryTracks():
+       from RecExConfig.RecFlags import rec
+       rec.UserExecs += ['from InDetPhysValMonitoring.InDetPhysValDecoration import addExtraMonitoring;addExtraMonitoring();']
 
    # from AthenaCommon.AppMgr import ServiceMgr as svcMgr
    # print 'DEBUG addDecoratorIfNeeded add meta data %s.' % svcMgr.TagInfoMgr.ExtraTagValuePairs
+
diff --git a/InnerDetector/InDetValidation/InDetPhysValMonitoring/python/InDetPhysValJobProperties.py b/InnerDetector/InDetValidation/InDetPhysValMonitoring/python/InDetPhysValJobProperties.py
index c2cdc56117157d17d04e868d8cb44257432f8773..751cd8c30e4db6097fdd906e6460636d142eba00 100644
--- a/InnerDetector/InDetValidation/InDetPhysValMonitoring/python/InDetPhysValJobProperties.py
+++ b/InnerDetector/InDetValidation/InDetPhysValMonitoring/python/InDetPhysValJobProperties.py
@@ -52,11 +52,6 @@ class doValidateGSFTracks(InDetPhysValFlagsJobProperty):
     allowedTypes = ['bool']
     StoredValue  = False
 
-class doValidateLooseTracks(InDetPhysValFlagsJobProperty):
-    statusOn     = True
-    allowedTypes = ['bool']
-    StoredValue  = False
-
 class doValidateTightPrimaryTracks(InDetPhysValFlagsJobProperty):
     statusOn     = True
     allowedTypes = ['bool']
@@ -122,8 +117,7 @@ jobproperties.add_Container(InDetPhysValJobProperties)
 _list_InDetPhysValJobProperties = [
     Enabled,
     doValidateDBMTracks,
-    doValidateGSFTracks,    
-    doValidateLooseTracks,
+    doValidateGSFTracks,
     doValidateTightPrimaryTracks,
     doValidateTracksInJets
 ]
diff --git a/InnerDetector/InDetValidation/InDetPhysValMonitoring/python/InDetPhysValMonitoringTool.py b/InnerDetector/InDetValidation/InDetPhysValMonitoring/python/InDetPhysValMonitoringTool.py
index 6e9d441c958ba0b25d4df77d73cc1df927073f23..e941f93a2bfb5b80f169c93c1439503e86748656 100644
--- a/InnerDetector/InDetValidation/InDetPhysValMonitoring/python/InDetPhysValMonitoringTool.py
+++ b/InnerDetector/InDetValidation/InDetPhysValMonitoring/python/InDetPhysValMonitoringTool.py
@@ -85,29 +85,6 @@ class InDetPhysValMonitoringTool(object) :
             from RecExConfig.RecFlags import rec
             rec.UserExecs += ['from InDetPhysValMonitoring.InDetPhysValMonitoringTool import removePhysValExample;removePhysValExample();']
 
-
-  class InDetPhysValMonitoringToolLoose(InDetPhysValMonitoringTool) :
-      '''
-      InDetPhysValMonitoringTool for track particles which pass the loose selection
-      '''
-      #@injectNameArgument
-      #def __new__(cls, *args, **kwargs) :
-      #    return InDetPhysValMonitoringTool.InDetPhysValMonitoringTool.__new__(cls,*args,**kwargs)
-
-      @checkKWArgs
-      def __init__(self, **kwargs) :
-          super(InDetPhysValMonitoringTool.InDetPhysValMonitoringToolLoose,self)\
-                        .__init__(**_args( kwargs,
-                                           name = self.__class__.__name__))
-
-          # special parameters of the InDetPhysValMonitoringTool for monitoring loose tracks
-          self.SubFolder='Loose/'
-          self.useTrackSelection = True
-
-          from InDetPhysValMonitoring.TrackSelectionTool import InDetTrackSelectionTool
-          self.TrackSelectionTool = toolFactory(InDetTrackSelectionTool.InDetTrackSelectionToolLoose)
-
-
   class InDetPhysValMonitoringToolTightPrimary(InDetPhysValMonitoringTool) :
       '''
       InDetPhysValMonitoringTool for track particles which pass the tight primary selection
@@ -129,6 +106,7 @@ class InDetPhysValMonitoringTool(object) :
           from InDetPhysValMonitoring.TrackSelectionTool import InDetTrackSelectionTool
           self.TrackSelectionTool = toolFactory(InDetTrackSelectionTool.InDetTrackSelectionToolTightPrimary)
 
+
   class InDetPhysValMonitoringToolGSF(InDetPhysValMonitoringTool) :
       '''
       InDetPhysValMonitoringTool for GSF track particles
diff --git a/InnerDetector/InDetValidation/InDetPhysValMonitoring/python/TrackSelectionTool.py b/InnerDetector/InDetValidation/InDetPhysValMonitoring/python/TrackSelectionTool.py
index 90b888e37f4197af26cfe7e0d07cc88c33e66dd0..e24bf518dcd12185873b2cb598fd42a63d63724e 100644
--- a/InnerDetector/InDetValidation/InDetPhysValMonitoring/python/TrackSelectionTool.py
+++ b/InnerDetector/InDetValidation/InDetPhysValMonitoring/python/TrackSelectionTool.py
@@ -9,23 +9,6 @@ class InDetTrackSelectionTool(object) :
   '''
   def __init__(self) :
      raise('must not be instantiated. Only child classes should be instantiated.')
-  
-  class InDetTrackSelectionToolLoose(InDet__InDetTrackSelectionTool) :
-      '''
-      Default InDetTrackSelectionTool for InDetTrackParticles
-      '''
-      @injectNameArgument
-      def __new__(cls, *args, **kwargs) :
-          return InDet__InDetTrackSelectionTool.__new__(cls,*args,**kwargs)
-
-      @checkKWArgs
-      def __init__(self, **kwargs) :
-          super(InDetTrackSelectionTool.InDetTrackSelectionToolLoose,self)\
-                        .__init__(**_args( kwargs,
-                                           name = self.__class__.__name__))
-
-          # special parameters of the InDetTrackSelectionToolLoose
-          self.CutLevel = "Loose"
 
   class InDetTrackSelectionToolTightPrimary(InDet__InDetTrackSelectionTool) :
       '''
@@ -43,5 +26,3 @@ class InDetTrackSelectionTool(object) :
 
           # special parameters of the InDetTrackSelectionToolTightPrimary
           self.CutLevel = "TightPrimary"
- 
-
diff --git a/PhysicsAnalysis/PhysicsValidation/PhysValMonitoring/share/PhysValInDet_jobOptions.py b/PhysicsAnalysis/PhysicsValidation/PhysValMonitoring/share/PhysValInDet_jobOptions.py
index b3b8c897ca789dc37f07d5bbd972d77d4eb099bd..5072048d1ee398f6d6b830f2e9a8eb66e7ba4ebb 100644
--- a/PhysicsAnalysis/PhysicsValidation/PhysValMonitoring/share/PhysValInDet_jobOptions.py
+++ b/PhysicsAnalysis/PhysicsValidation/PhysValMonitoring/share/PhysValInDet_jobOptions.py
@@ -4,27 +4,9 @@ decoration = InDetPhysValMonitoring.InDetPhysValDecoration.addDecoratorIfNeeded(
 # add ID physics validation monitoring tool
 
 from InDetPhysValMonitoring.InDetPhysValMonitoringTool import InDetPhysValMonitoringTool
-
 indet_mon_tool = InDetPhysValMonitoringTool.InDetPhysValMonitoringTool()
-ToolSvc += [indet_mon_tool] 
-monMan.AthenaMonTools += [indet_mon_tool] 
-
-if InDetPhysValFlags.doValidateDBMTracks():
-    indet_mon_tool_DBM = InDetPhysValMonitoringTool.InDetPhysValMonitoringToolDBM()
-    ToolSvc += [ indet_mon_tool_DBM ]
-    monMan.AthenaMonTools += [ indet_mon_tool_DBM ] 
 
-if InDetPhysValFlags.doValidateGSFTracks():
-    indet_mon_tool_GSF = InDetPhysValMonitoringTool.InDetPhysValMonitoringToolGSF()
-    ToolSvc += [ indet_mon_tool_GSF ]
-    monMan.AthenaMonTools += [ indet_mon_tool_GSF ]
+ToolSvc += indet_mon_tool
+monMan.AthenaMonTools += [indet_mon_tool]
 
-if InDetPhysValFlags.doValidateLooseTracks():
-    indet_mon_tool_Loose = InDetPhysValMonitoringTool.InDetPhysValMonitoringToolLoose()
-    ToolSvc += [ indet_mon_tool_Loose ]
-    monMan.AthenaMonTools += [ indet_mon_tool_Loose ] 
 
-if InDetPhysValFlags.doValidateTightPrimaryTracks():
-    indet_mon_tool_TightPrimary = InDetPhysValMonitoringTool.InDetPhysValMonitoringToolTightPrimary()
-    ToolSvc += [ indet_mon_tool_TightPrimary ]
-    monMan.AthenaMonTools += [ indet_mon_tool_TightPrimary ] 
diff --git a/PhysicsAnalysis/TauID/TauDQA/src/PhysValTau.cxx b/PhysicsAnalysis/TauID/TauDQA/src/PhysValTau.cxx
index 023ac1b1b6fd429c27d1cd6a9349ee7f3b49f638..2edec5e894485ac6c9d11ea77b690fb32aa47296 100644
--- a/PhysicsAnalysis/TauID/TauDQA/src/PhysValTau.cxx
+++ b/PhysicsAnalysis/TauID/TauDQA/src/PhysValTau.cxx
@@ -34,15 +34,17 @@ using CLHEP::GeV;
 // Constructors
 ////////////////
 
-PhysValTau::PhysValTau(const std::string& type, 
-		       const std::string& name, 
-                       const IInterface* parent) : 
-    ManagedMonitorToolBase(type, name, parent)
+PhysValTau::PhysValTau( const std::string& type, 
+			const std::string& name, 
+			const IInterface* parent ) : 
+    ManagedMonitorToolBase( type, name, parent )
 {
-   declareProperty("TauContainerName", m_TauJetContainerName = "TauRecContainer");
-   declareProperty("TruthParticleContainerName", m_TruthParticleContainerName = "TruthParticle");
-   declareProperty("TauDetailsContainerName", m_TauDetailsContainerName = "TauRecDetailsContainer");
-   declareProperty("isMC", m_isMC= false);
+    declareProperty( "TauContainerName", m_TauJetContainerName = "TauRecContainer" ); 
+    declareProperty( "TruthParticleContainerName", m_TruthParticleContainerName = "TruthParticle" ); 
+    declareProperty( "TauDetailsContainerName", m_TauDetailsContainerName = "TauRecDetailsContainer" ); 
+    declareProperty("isMC",                         m_isMC= false);
+    
+    // std::cout << "Match tool Core Var Truth Cuts Et " << matchtool.getvisETCut() << " eta " << matchtool.getvisEtaCut() << std::endl;
 }
 
 // Destructor
@@ -54,187 +56,193 @@ PhysValTau::~PhysValTau()
 ////////////////////////////
 StatusCode PhysValTau::initialize()
 {
-   ATH_MSG_INFO ("Initializing " << name() << "...");    
-   ATH_CHECK(ManagedMonitorToolBase::initialize());
-   
-   // geometrical matching between Reco Tau and MC tau
-   m_DeltaRMatchCut          = 0.2;
-   m_LeadingChPiPt_Threshold = 0.0;
-   
-   //Truth Matching Cuts
-   m_visETcut                = 10.;
-   m_visEtacut               = 2.5;
+    ATH_MSG_INFO ("Initializing " << name() << "...");    
+    ATH_CHECK(ManagedMonitorToolBase::initialize());
+    
+    // geometrical matching between Reco Tau and MC tau
+    m_DeltaRMatchCut          = 0.2;
+    m_LeadingChPiPt_Threshold = 0.0;
+    
+    //Truth Matching Cuts
+    m_visETcut                = 10.;
+    m_visEtacut               = 2.5;
+    
+    
+    //Initialize Counters
+    
+    m_truth_all = 0;
+    m_truth_1p = 0;
+    m_truth_3p = 0;
     
-   //Initialize Counters
-   m_truth_all = 0;
-   m_truth_1p = 0;
-   m_truth_3p = 0;
-   
-   m_truth_all_matched = 0;
-   m_truth_1p_matched = 0;
-   m_truth_3p_matched = 0;
-   
-   return StatusCode::SUCCESS;
+    m_truth_all_matched = 0;
+    m_truth_1p_matched = 0;
+    m_truth_3p_matched = 0;
+    
+    return StatusCode::SUCCESS;
 }
 
 StatusCode PhysValTau::bookHistograms()
 {
-   ATH_MSG_INFO ("Booking hists " << name() << "...");
-   
-   // Physics validation plots are level 10
-   m_oTauValidationPlots.reset(new TauValidationPlots(0,"Tau/" /* + m_TauJetContainerName*/, m_TauJetContainerName));
-   m_oTauValidationPlots->setDetailLevel(100);
-   m_oTauValidationPlots->initialize();
-   std::vector<HistData> hists = m_oTauValidationPlots->retrieveBookedHistograms();
-   ATH_MSG_INFO ("Filling n of hists " << hists.size() << " ");
-   for (auto hist : hists) {
-      ATH_CHECK(regHist(hist.first,hist.second,all));
-   }
-   
-   return StatusCode::SUCCESS;      
+    ATH_MSG_INFO ("Booking hists " << name() << "...");
+    
+    // Physics validation plots are level 10
+    m_oTauValidationPlots.reset(new TauValidationPlots(0,"Tau/" /* + m_TauJetContainerName*/, m_TauJetContainerName));
+    m_oTauValidationPlots->setDetailLevel(100);
+    m_oTauValidationPlots->initialize();
+    std::vector<HistData> hists = m_oTauValidationPlots->retrieveBookedHistograms();
+    ATH_MSG_INFO ("Filling n of hists " << hists.size() << " ");
+    for (auto hist : hists) {
+	ATH_CHECK(regHist(hist.first,hist.second,all));
+    }
+    
+    return StatusCode::SUCCESS;      
 }
 
 StatusCode PhysValTau::fillHistograms()
 {
     
-   ATH_MSG_INFO ("Filling hists " << name() << "...");
-   ////////////////////////////////////////////////////////////////////////////////////////////////
-   // Retrieve tau container: 
-   const xAOD::TauJetContainer* taus = evtStore()->retrieve< const xAOD::TauJetContainer >( m_TauJetContainerName ); 
-   if ( !taus ) { 
-      ATH_MSG_ERROR ("Couldn't retrieve tau container with key: " << m_TauJetContainerName); 
-      return StatusCode::FAILURE; 
-   }         
-   ATH_MSG_DEBUG("Number of taus: " << taus->size()); 
+    ATH_MSG_INFO ("Filling hists " << name() << "...");
+    ////////////////////////////////////////////////////////////////////////////////////////////////
+    // Retrieve tau container: 
+    const xAOD::TauJetContainer* taus = evtStore()->retrieve< const xAOD::TauJetContainer >( m_TauJetContainerName ); 
+    if (!taus) { 
+	ATH_MSG_ERROR ("Couldn't retrieve tau container with key: " << m_TauJetContainerName); 
+	return StatusCode::FAILURE; 
+    }         
+    ATH_MSG_DEBUG( "Number of taus: " << taus->size() ); 
 
-   ////////////////////////////////////////////////////////////////////////////////////////////////
-   // Retrieve truth container:     
-   const xAOD::TruthParticleContainer* truth = 0;
-   if ( m_isMC ) {
-      truth = evtStore()->retrieve<const xAOD::TruthParticleContainer>(m_TruthParticleContainerName);
-      if ( !truth ) { 
-	 ATH_MSG_ERROR ("Couldn't retrieve tau container with key: " << m_TruthParticleContainerName); 
-	 return StatusCode::FAILURE;
-      }   
-      //  ATH_MSG_DEBUG( "Number of truth: " << truth->size() );      
-   }
-   //////////////////////////////////////////////////////////////////////////////////////////////////
-   // Retrieve true hadronic tau container from truth container
-   // getHaderonicTruth finds true taus (ID == 15) with correct status and no leptonic decay.
-   const xAOD::TruthParticleContainer* trueTauContainer = 0;
-   if ( m_isMC ) {
-      trueTauContainer = truthHandler.getHadronicTruth(truth);
-      ATH_MSG_DEBUG("Number of true had taus: " << trueTauContainer->size());
-   }
+    ////////////////////////////////////////////////////////////////////////////////////////////////
+    // Retrieve truth container:     
+    const xAOD::TruthParticleContainer* truth = 0;
+    if (m_isMC){
+    truth = evtStore()->retrieve< const xAOD::TruthParticleContainer >( m_TruthParticleContainerName );
+    if (!truth) { 
+	ATH_MSG_ERROR ("Couldn't retrieve tau container with key: " << m_TruthParticleContainerName); 
+		return StatusCode::FAILURE;
+    }   
+    //  ATH_MSG_DEBUG( "Number of truth: " << truth->size() );      
+    }
+    //////////////////////////////////////////////////////////////////////////////////////////////////
+    // Retrieve true hadronic tau container from truth container
+    // getHaderonicTruth finds true taus (ID == 15) with correct status and no leptonic decay.
+    const xAOD::TruthParticleContainer* trueTauContainer = 0;
+    if (m_isMC){
+	trueTauContainer = truthHandler.getHadronicTruth(truth);
+	ATH_MSG_DEBUG( "Number of true had taus: " << trueTauContainer->size() );      
+    }
     
-   //////////////////////////////////////////
-   // Plotting TauRec Variables
-   
-   // Loop through reco tau jet container
-   for (auto tau : *taus) { 
-      if (m_detailLevel < 10) continue;
-      if (tau->pt()/GeV < 20) continue;
-      // fill Substructure/PFO histograms
-      m_oTauValidationPlots->m_oRecoTauAllProngsPlots.fill(*tau);
-      m_oTauValidationPlots->m_oNewCorePlots.fill(*tau);
-      m_oTauValidationPlots->m_oRecTauEffPlots.fill(*tau);
-      //Reco Tau General Plots
-      m_oTauValidationPlots->m_oRecoGeneralTauAllProngsPlots.fill(*tau);
-      if ( tau->nTracks()==1 ) {
-	 m_oTauValidationPlots->m_oRecoHad1ProngPlots.fill(*tau);
-	 m_oTauValidationPlots->m_oRecTauEff1PPlots.fill(*tau);
-         
-      }
-      if ( tau->nTracks()==3 ) { 
-	 m_oTauValidationPlots->m_oRecoHad3ProngPlots.fill(*tau);
-	 m_oTauValidationPlots->m_oRecTauEff3PPlots.fill(*tau);
-      }
-   }
-   m_matched_itr.clear();
-   //////////////////////////////////////////
-   // Plotting TruthMatched Variables
-   // Loop through reco tau jet container
-   
-   // 
-   
-   if ( (trueTauContainer != 0) && (m_isMC == true) ) {
-      xAOD::TruthParticleContainer::const_iterator truth_itr = trueTauContainer->begin();
-      xAOD::TruthParticleContainer::const_iterator truth_end = trueTauContainer->end();
-      for ( ; truth_itr != truth_end; truth_itr++ ) {
-	 ATH_MSG_DEBUG( "Trying to match tau :");
-	 xAOD::TruthParticle* trueTau = const_cast<xAOD::TruthParticle*>(*truth_itr);
-	 const xAOD::TauJet *matchedRecTau = 0;
-	 ATH_MSG_DEBUG("Matching Tau");
-	 bool matched = matchTrueAndRecoTau(taus,trueTau,matchedRecTau);
-	 if ( matched ) {
-	    m_oTauValidationPlots->m_oGeneralTauAllProngsPlots.fill(*matchedRecTau);
-	    m_oTauValidationPlots->m_oNewCoreMatchedPlots.fill(*matchedRecTau);
-	    // Substructure/PFO histograms 
-	    m_oTauValidationPlots->m_oMatchedTauAllProngsPlots.fill(*matchedRecTau);
-	    m_oTauValidationPlots->m_oMatchedTauEffPlots.fill(*matchedRecTau);
-	    // 1-prong
-	    if ( matchedRecTau->nTracks() == 1 ) {
-	       m_oTauValidationPlots->m_oHad1ProngPlots.fill(*matchedRecTau);
-	       m_oTauValidationPlots->m_oMatchedTauEff1PPlots.fill(*matchedRecTau);  
-	    }
-	    // 3-prong
-	    else if( matchedRecTau->nTracks() == 3 ) {
-	       m_oTauValidationPlots->m_oHad3ProngPlots.fill(*matchedRecTau);
-	       m_oTauValidationPlots->m_oMatchedTauEff3PPlots.fill(*matchedRecTau);  
-	    }
-	 }
-      }
-      if ( taus != 0 ) {
-	 xAOD::TauJetContainer::const_iterator tau_itr = taus->begin();
-	 xAOD::TauJetContainer::const_iterator tau_end = taus->end();
-	 for ( size_t iRecTau = 0 ; iRecTau < taus->size(); iRecTau++ ) {
-	    bool alreadymatched = false;
-	    if ( m_matched_itr.size() > 0 ) {
-	       for ( size_t i = 0; i < m_matched_itr.size(); i++ ) {
-		  if(m_matched_itr.at(i) == iRecTau) alreadymatched = true;
-	       }
-	    }
-	    if ( alreadymatched ) continue;
-	    const xAOD::TauJet *recTau = taus->at(iRecTau);
-	    if ( m_detailLevel < 10 ) continue;
-	    if ( recTau->pt()/GeV < 20 ) continue;
-	    bool eleMatch = false;
-	    // Matching to electrons (Improvements needed)
-	    for ( auto mc_candidate : *truth ) {
-	       if ( abs(mc_candidate->pdgId())==11 && mc_candidate->pt()>10000. ) {
-		  float dr = sqrt( (mc_candidate->eta()-recTau->eta())*(mc_candidate->eta()-recTau->eta())
-				   + (mc_candidate->phi()-recTau->phi())*(mc_candidate->phi()-recTau->phi()));
-		  if( dr < 0.2 ) {
-		     eleMatch = true;
-		     continue;
-		  }
-	       }
-	    }
-	    // electron matched taus
-	    if ( eleMatch ) {
-	       m_oTauValidationPlots->m_oElMatchedParamPlots.fill(*recTau);
-	       m_oTauValidationPlots->m_oElMatchedEVetoPlots.fill(*recTau);
+    
+    //////////////////////////////////////////
+    // Plotting TauRec Variables
+    
+    // Loop through reco tau jet container
+    for (auto tau : *taus) { 
+	if (m_detailLevel < 10) continue;
+	if (tau->pt()/GeV < 20) continue;
+	m_oTauValidationPlots->m_oRecoTauAllProngsPlots.fill(*tau); // Substructure/PFO histograms filled      
+	m_oTauValidationPlots->m_oNewCorePlots.fill(*tau);          // NewCore histograms filled      
+	m_oTauValidationPlots->m_oRecTauEffPlots.fill(*tau);        //Eff Reco Tau plots
+	m_oTauValidationPlots->m_oRecoGeneralTauAllProngsPlots.fill(*tau);             //Reco Tau General Plots
+	if(tau->nTracks()==1){
+	    m_oTauValidationPlots->m_oRecoHad1ProngPlots.fill(*tau); //Reco Tau 1P plots
+	    m_oTauValidationPlots->m_oRecTauEff1PPlots.fill(*tau); //Eff Reco Tau 1P plots
+	    
+	}
+	if(tau->nTracks()==3){ 
+	    m_oTauValidationPlots->m_oRecoHad3ProngPlots.fill(*tau); //Reco Tau 3P plots
+	    m_oTauValidationPlots->m_oRecTauEff3PPlots.fill(*tau); //Eff Reco Tau 3P plots
+	}
+    }
+    m_matched_itr.clear();
+    //////////////////////////////////////////
+    // Plotting TruthMatched Variables
+    // Loop through reco tau jet container
+    
+    // 
+    
+    if(trueTauContainer != 0 && m_isMC==true){
+	xAOD::TruthParticleContainer::const_iterator truth_itr = trueTauContainer->begin();
+	xAOD::TruthParticleContainer::const_iterator truth_end = trueTauContainer->end();
+	//    std::cout<<"new true tau container"<<std::endl;
+	
+	for (; truth_itr != truth_end; truth_itr++) {
+	    
+	    ATH_MSG_DEBUG( "Trying to match tau :");
+	    xAOD::TruthParticle* trueTau = const_cast<xAOD::TruthParticle*>(*truth_itr);
+	    const xAOD::TauJet *matchedRecTau = 0;
+	    ATH_MSG_DEBUG("Matching Tau");
+	    bool matched = matchTrueAndRecoTau(taus,trueTau,matchedRecTau);
+	    if(matched) {
+		m_oTauValidationPlots->m_oGeneralTauAllProngsPlots.fill(*matchedRecTau);
+		m_oTauValidationPlots->m_oNewCoreMatchedPlots.fill(*matchedRecTau);          // NewCore histograms filled
+		m_oTauValidationPlots->m_oMatchedTauAllProngsPlots.fill(*matchedRecTau); // Substructure/PFO histograms filled
+		m_oTauValidationPlots->m_oMatchedTauEffPlots.fill(*matchedRecTau); 
+		
+		if(matchedRecTau->nTracks() == 1){
+		    m_oTauValidationPlots->m_oHad1ProngPlots.fill(*matchedRecTau);
+		    m_oTauValidationPlots->m_oMatchedTauEff1PPlots.fill(*matchedRecTau);  
+		    
+		    
+		}
+		if(matchedRecTau->nTracks() == 3){
+		    m_oTauValidationPlots->m_oHad3ProngPlots.fill(*matchedRecTau);
+		    m_oTauValidationPlots->m_oMatchedTauEff3PPlots.fill(*matchedRecTau);  
+		}
 	    }
-	    else {
-	       m_oTauValidationPlots->m_oFakeGeneralTauAllProngsPlots.fill(*recTau);
-	       // Substructure/PFO histograms
-	       m_oTauValidationPlots->m_oFakeTauAllProngsPlots.fill(*recTau);
-	       m_oTauValidationPlots->m_oNewCoreFakePlots.fill(*recTau);
-	       m_oTauValidationPlots->m_oFakeTauEffPlots.fill(*recTau);
-	       if ( recTau->nTracks()==1 ) {
-		  m_oTauValidationPlots->m_oFakeHad1ProngPlots.fill(*recTau);
-		  m_oTauValidationPlots->m_oFakeTauEff1PPlots.fill(*recTau);
-	       }
-	       if ( recTau->nTracks()==3 ) {
-		  m_oTauValidationPlots->m_oFakeTauEff3PPlots.fill(*recTau);
-		  m_oTauValidationPlots->m_oFakeHad3ProngPlots.fill(*recTau);    
-	       }
+	}
+	
+	//    std::cout<<"Number of matched: "<<m_matched_itr.size()<<std::endl;
+	if(taus != 0){
+	    xAOD::TauJetContainer::const_iterator tau_itr = taus->begin();
+	    xAOD::TauJetContainer::const_iterator tau_end = taus->end();
+	    for (size_t iRecTau = 0 ; iRecTau < taus->size(); iRecTau++) {
+		bool alreadymatched = false;
+		if(m_matched_itr.size()>0)
+		  for (size_t i = 0; i<m_matched_itr.size(); i++)
+		    if(m_matched_itr.at(i) == iRecTau) alreadymatched = true;
+		if(alreadymatched)continue;
+		const xAOD::TauJet *recTau = taus->at(iRecTau);
+		if (m_detailLevel < 10) continue;
+		if (recTau->pt()/GeV < 20) continue;
+		bool eleMatch = false;
+		// Matching to electrons (Improvements needed)
+		for (auto mc_candidate : *truth) {
+		    
+		    if(abs(mc_candidate->pdgId())==11 && mc_candidate->pt()>10000.)
+			{
+			    float dr = sqrt( (mc_candidate->eta()-recTau->eta())*(mc_candidate->eta()-recTau->eta()) + (mc_candidate->phi()-recTau->phi())*(mc_candidate->phi()-recTau->phi()));
+			    if( dr < 0.2 ) {
+				eleMatch = true;
+				continue;
+			    }
+			}
+		}
+		if(eleMatch){
+		    m_oTauValidationPlots->m_oElMatchedParamPlots.fill(*recTau);
+		    
+		}else{
+		    m_oTauValidationPlots->m_oFakeGeneralTauAllProngsPlots.fill(*recTau);
+		    m_oTauValidationPlots->m_oFakeTauAllProngsPlots.fill(*recTau); // Substructure/PFO histograms filled
+		    m_oTauValidationPlots->m_oNewCoreFakePlots.fill(*recTau);          // NewCore histograms filled
+		    m_oTauValidationPlots->m_oFakeTauEffPlots.fill(*recTau);		    
+		    if(recTau->nTracks()==1)
+			{
+			    m_oTauValidationPlots->m_oFakeHad1ProngPlots.fill(*recTau);
+			    m_oTauValidationPlots->m_oFakeTauEff1PPlots.fill(*recTau);
+			}
+		    if(recTau->nTracks()==3) 
+			{
+			    m_oTauValidationPlots->m_oFakeTauEff3PPlots.fill(*recTau);
+			    m_oTauValidationPlots->m_oFakeHad3ProngPlots.fill(*recTau);	   
+			}
+		    
+		}
+		
 	    }
-	 }
-      }
-   }   /////////////////////////////////////////////////////////////////////////////////////////////////
-   
-   return StatusCode::SUCCESS;
+	}
+    }	/////////////////////////////////////////////////////////////////////////////////////////////////
+    
+    return StatusCode::SUCCESS;
 }
 
 StatusCode PhysValTau::procHistograms()
@@ -258,11 +266,11 @@ bool PhysValTau::matchTrueAndRecoTau(const xAOD::TauJetContainer *&taus, const x
     ATH_MSG_DEBUG( "True decay mode is " << nCharged << "p" << nNeutral << "n" ); 
     
     if (!RecoTypes::IsValidMode(trueDecayMode)) {
-        ATH_MSG_DEBUG(" Decay mode is not valid, skipping..." ); 
+	ATH_MSG_DEBUG(" Decay mode is not valid, skipping..." ); 
         return false;
     }
 
-    TLorentzVector visSum = truthHandler.getTauVisibleSumTruth(trueTau);                    // Get visible TLV for true had tau         
+    TLorentzVector visSum = truthHandler.getTauVisibleSumTruth(trueTau);                    // Get visible TLV for true had tau		
     if ((visSum.Et()/GeV < m_visETcut) || (fabs(visSum.Eta()) > m_visEtacut)) return false;    // Detector limitations
     
     xAOD::TauJetContainer::const_iterator tau_itr = taus->begin();
@@ -280,7 +288,7 @@ bool PhysValTau::matchTrueAndRecoTau(const xAOD::TauJetContainer *&taus, const x
         double recM   = recTau->mIntermediateAxis();
         TLorentzVector hlv_recTau;
         hlv_recTau.SetPtEtaPhiM(recPt, recEta, recPhi, recM);
-        
+	
         double curDeltaR = visSum.DeltaR(hlv_recTau);
         if (curDeltaR < minDeltaR) {
             minDeltaR = curDeltaR;
@@ -292,10 +300,10 @@ bool PhysValTau::matchTrueAndRecoTau(const xAOD::TauJetContainer *&taus, const x
     }
     
     if(matched){
-        const xAOD::TauJet *recTau = taus->at(iMatchedRecTau);
-        m_oTauValidationPlots->m_oMigrationPlots.fill(*recTau,nCharged,nNeutral); //Migration      
-        m_matched_itr.push_back(iMatchedRecTau);
-        //    std::cout<<"Number of matched between: "<<m_matched_itr.size()<<std::endl;
+	const xAOD::TauJet *recTau = taus->at(iMatchedRecTau);
+	m_oTauValidationPlots->m_oMigrationPlots.fill(*recTau,nCharged,nNeutral); //Migration      
+	m_matched_itr.push_back(iMatchedRecTau);
+	//    std::cout<<"Number of matched between: "<<m_matched_itr.size()<<std::endl;
     }
     
     return matched;
diff --git a/PhysicsAnalysis/TauID/TauHistUtils/TauHistUtils/EVetoPlots.h b/PhysicsAnalysis/TauID/TauHistUtils/TauHistUtils/EVetoPlots.h
index 1ff5648c0c729028eac58492b1642f95acb6efc9..6c20f83560d8602ac07adbefe455c5cf62a05391 100644
--- a/PhysicsAnalysis/TauID/TauHistUtils/TauHistUtils/EVetoPlots.h
+++ b/PhysicsAnalysis/TauID/TauHistUtils/TauHistUtils/EVetoPlots.h
@@ -24,9 +24,6 @@ class EVetoPlots: public PlotBase {
     TH1* m_pt_eleBDTloose;
     TH1* m_pt_eleBDTmed; 
     TH1* m_pt_eleBDTtight;
-    TH1* m_pt_eleBDTlooseHighPt;
-    TH1* m_pt_eleBDTmedHighPt; 
-    TH1* m_pt_eleBDTtightHighPt;
     
   private:
     void initializePlots();
diff --git a/PhysicsAnalysis/TauID/TauHistUtils/TauHistUtils/EfficiencyPtPlots.h b/PhysicsAnalysis/TauID/TauHistUtils/TauHistUtils/EfficiencyPtPlots.h
index ade7ba15a6ac5b131d3ba1f3ff05204b8f11885d..c5e4f3673c174ebe432ea9e3c0af3f866a5af686 100644
--- a/PhysicsAnalysis/TauID/TauHistUtils/TauHistUtils/EfficiencyPtPlots.h
+++ b/PhysicsAnalysis/TauID/TauHistUtils/TauHistUtils/EfficiencyPtPlots.h
@@ -21,9 +21,6 @@ class EfficiencyPtPlots: public PlotBase {
     TProfile* m_eff_pt_jetBDTloose;
     TProfile* m_eff_pt_jetBDTmed;
     TProfile* m_eff_pt_jetBDTtight;
-    TProfile* m_eff_pt_jetBDTlooseHighPt;
-    TProfile* m_eff_pt_jetBDTmedHighPt;
-    TProfile* m_eff_pt_jetBDTtightHighPt;
 
     TProfile* m_eff_jetBDTloose;
     TProfile* m_eff_jetBDTmed;
diff --git a/PhysicsAnalysis/TauID/TauHistUtils/TauHistUtils/GeneralTauPlots.h b/PhysicsAnalysis/TauID/TauHistUtils/TauHistUtils/GeneralTauPlots.h
index 3dd320031eb119b15f1db545743151c2f4c1906d..151ced0f00b5cf43395c60f73ec086382cf0e475 100644
--- a/PhysicsAnalysis/TauID/TauHistUtils/TauHistUtils/GeneralTauPlots.h
+++ b/PhysicsAnalysis/TauID/TauHistUtils/TauHistUtils/GeneralTauPlots.h
@@ -13,27 +13,24 @@
 namespace Tau{
 
 class GeneralTauPlots: public PlotBase {
-   public:
-      GeneralTauPlots(PlotBase *pParent, std::string sDir, std::string sTauJetContainerName);
-      virtual ~GeneralTauPlots();
-      
-      void fill(const xAOD::TauJet& tau);
-      
-      Tau::ParamPlots m_oParamPlots;
-      TH1* m_tauCharge;
-      TH1* m_tauNCoreTracks;
-      TH1* m_tauNWideTracks;
-      TH1* m_id_BDTJetScore;
-      TH1* m_pt_jetBDTloose;
-      TH1* m_pt_jetBDTmed;
-      TH1* m_pt_jetBDTtight;
-      TH1* m_pt_jetBDTlooseHighPt;
-      TH1* m_pt_jetBDTmedHighPt;
-      TH1* m_pt_jetBDTtightHighPt;
-
-   private:
-      void initializePlots();
-      std::string m_sTauJetContainerName;
+  public:
+    GeneralTauPlots(PlotBase *pParent, std::string sDir, std::string sTauJetContainerName);
+    virtual ~GeneralTauPlots();
+
+    void fill(const xAOD::TauJet& tau);
+
+    Tau::ParamPlots m_oParamPlots;
+    TH1* m_tauCharge;
+    TH1* m_tauNCoreTracks;
+    TH1* m_tauNWideTracks;
+    TH1* m_id_BDTJetScore;
+    TH1* m_pt_jetBDTloose;
+    TH1* m_pt_jetBDTmed;
+    TH1* m_pt_jetBDTtight;
+
+  private:
+    void initializePlots();
+    std::string m_sTauJetContainerName;
 };
 
 }
diff --git a/PhysicsAnalysis/TauID/TauHistUtils/TauHistUtils/Migration.h b/PhysicsAnalysis/TauID/TauHistUtils/TauHistUtils/Migration.h
index ed51f467c757556acf2f37d2b078ee08a3a09f8a..d43b568f477a91d618c3379a8dd8d542c344a4a4 100644
--- a/PhysicsAnalysis/TauID/TauHistUtils/TauHistUtils/Migration.h
+++ b/PhysicsAnalysis/TauID/TauHistUtils/TauHistUtils/Migration.h
@@ -57,14 +57,39 @@ namespace Tau{
 	    "t1r3",
 	    "t3r1"
 	};
+	/*
+	    "t10r10",
+	    "t10r11",
+	    "t10r1x",
+	    "t10r30",
+	    "t10r3x",
+	    "t11r10",
+	    "t11r11",
+	    "t11r1x",
+	    "t11r30",
+	    "t11r3x",
+	    "t1xr10",
+	    "t1xr11",
+	    "t1xr1x",
+	    "t1xr30",
+	    "t1xr3x",
+	    "t30r10",
+	    "t30r11",
+	    "t30r1x",
+	    "t30r30",
+	    "t30r3x",
+	    "t3xr10",
+	    "t3xr11",
+	    "t3xr1x",
+	    "t3xr30",
+	    "t3xr3x"*/
 	
-	TH1* m_migration_panTau;
-	TH1* m_migration_panTauProto;
+	TH1* m_migration_tauRec;
+	TH1* m_migration_eflow;
 	TH1* m_migration_cellBased;
     private:
 	void initializePlots();
 	std::string m_sTauJetContainerName;
-	void decayModeFill(int trueMode, int recP, int recN,TH1 *histo);
 	void decayModeFill(int trueP,int trueN,int recP, int recN,TH1 *histo);
     };
     
diff --git a/PhysicsAnalysis/TauID/TauHistUtils/TauHistUtils/ParamPlots.h b/PhysicsAnalysis/TauID/TauHistUtils/TauHistUtils/ParamPlots.h
index 11627c1380bf0a0217c75c7905e1b2ae50f4dcad..fe4019f2316065016f990bb16e940bbf3357f2cd 100644
--- a/PhysicsAnalysis/TauID/TauHistUtils/TauHistUtils/ParamPlots.h
+++ b/PhysicsAnalysis/TauID/TauHistUtils/TauHistUtils/ParamPlots.h
@@ -11,21 +11,20 @@
 namespace Tau{
 
 class ParamPlots:public PlotBase {
-   public:      
-      ParamPlots(PlotBase *pParent, std::string sDir, std::string sParticleType);
-      ~ParamPlots();
-      void fill(const xAOD::IParticle& prt);
-      
-      TH1* eta;
-      TH1* phi;
-      TH1* pt;
-      
-      TH1* eta_phi;
-      TH1* eta_pt;
-      
-   private:
-      void initializePlots();
-      std::string m_sParticleType;
+  public:      
+    ParamPlots(PlotBase *pParent, std::string sDir, std::string sParticleType);
+    void fill(const xAOD::IParticle& prt);
+
+    TH1* eta;
+    TH1* phi;
+    TH1* pt;
+
+    TH1* eta_phi;
+    TH1* eta_pt;
+
+  private:
+    void initializePlots();
+    std::string m_sParticleType;
 };
 
 }
diff --git a/PhysicsAnalysis/TauID/TauHistUtils/TauHistUtils/RecoTauPlots.h b/PhysicsAnalysis/TauID/TauHistUtils/TauHistUtils/RecoTauPlots.h
index cc053e394770730cf193deb48dda6d262ff927c4..758ad287fde4dfecb72feb22554c87cef8709ff5 100644
--- a/PhysicsAnalysis/TauID/TauHistUtils/TauHistUtils/RecoTauPlots.h
+++ b/PhysicsAnalysis/TauID/TauHistUtils/TauHistUtils/RecoTauPlots.h
@@ -22,6 +22,18 @@ class RecoTauPlots: public PlotBase {
 
     Tau::ParamPlots m_oParamPlots;
 
+    //Here I try to include eflowRec substructure variables, from the Particle FLow Object (PFO), begining with basic charged and neutral PFO 4-vector.
+    TH1* m_eflowRec_charPFO_Pt;
+    TH1* m_eflowRec_charPFO_Eta;
+    TH1* m_eflowRec_charPFO_Phi;
+    TH1* m_eflowRec_charPFO_E;
+
+    TH1* m_eflowRec_neuPFO_Pt;
+    TH1* m_eflowRec_neuPFO_Eta;
+    TH1* m_eflowRec_neuPFO_Phi;
+    TH1* m_eflowRec_neuPFO_E;
+    TH1* m_eflowRec_neuPFO_bdtPi0Score;
+
     //Here I try to include CellBased substructure variables, from the Particle FLow Object (PFO), begining with basic charged and neutral PFO 4-vector.
     TH1* m_cellBased_charPFO_Pt;
     TH1* m_cellBased_charPFO_Eta;
@@ -51,6 +63,22 @@ class RecoTauPlots: public PlotBase {
     TH1* m_pantau_CellBasedInput_BDTVar_Neutral_Shots_NPhotonsInSeed;
     TH1* m_pantau_CellBasedInput_BDTVar_Combined_DeltaR1stNeutralTo1stCharged;
 
+    TH1* m_pantau_eflowRecInput_isPanTauCandidate;
+    TH1* m_pantau_eflowRecInput_DecayMode;
+    TH1* m_pantau_eflowRecInput_BDTValue_1p0n_vs_1p1n;
+    TH1* m_pantau_eflowRecInput_BDTValue_1p1n_vs_1pXn;
+    TH1* m_pantau_eflowRecInput_BDTValue_3p0n_vs_3pXn;
+    TH1* m_pantau_eflowRecInput_BDTVar_Basic_NPi0NeutConsts;
+    TH1* m_pantau_eflowRecInput_BDTVar_Basic_NNeutralConsts;
+    TH1* m_pantau_eflowRecInput_BDTVar_Charged_Ratio_EtOverEtAllConsts;
+    TH1* m_pantau_eflowRecInput_BDTVar_Neutral_HLV_SumM;
+    TH1* m_pantau_eflowRecInput_BDTVar_Neutral_PID_BDTValues_EtSort_1;
+    TH1* m_pantau_eflowRecInput_BDTVar_Neutral_PID_BDTValues_BDTSort_2;
+    TH1* m_pantau_eflowRecInput_BDTVar_Neutral_Ratio_EtOverEtAllConsts;
+    TH1* m_pantau_eflowRecInput_BDTVar_Neutral_Mean_DRToLeading_WrtEtAllConsts;
+    TH1* m_pantau_eflowRecInput_BDTVar_Combined_DeltaR1stNeutralTo1stCharged;
+
+
     // BDT output
 
     TH1* m_id_BDTJetScore;
diff --git a/PhysicsAnalysis/TauID/TauHistUtils/src/EVetoPlots.cxx b/PhysicsAnalysis/TauID/TauHistUtils/src/EVetoPlots.cxx
index deb71166dae027c0c835786b2a8d685c50f2e611..67392e0bc310759f1db159c19c0c4e6c82170b94 100644
--- a/PhysicsAnalysis/TauID/TauHistUtils/src/EVetoPlots.cxx
+++ b/PhysicsAnalysis/TauID/TauHistUtils/src/EVetoPlots.cxx
@@ -16,9 +16,6 @@ EVetoPlots::EVetoPlots(PlotBase* pParent, std::string sDir, std::string sTauJetC
    m_pt_eleBDTloose(nullptr),
    m_pt_eleBDTmed(nullptr),
    m_pt_eleBDTtight(nullptr),
-   m_pt_eleBDTlooseHighPt(nullptr),
-   m_pt_eleBDTmedHighPt(nullptr),
-   m_pt_eleBDTtightHighPt(nullptr),
    m_sTauJetContainerName(sTauJetContainerName)
 {
 }
@@ -36,12 +33,9 @@ void EVetoPlots::initializePlots(){
   m_CentFrac  = Book1D("CentFrac",m_sTauJetContainerName + " Cent Frac; Cent Frac; # Part",20,0,1.);
 
   m_id_BDTEleScore      = Book1D("id_BDTEleScore",m_sTauJetContainerName + " BDTEleScore ; BDTEleScore; # Tau",10,0.,1.05);
-  m_pt_eleBDTloose      = Book1D("Pt_eleBDTloose",m_sTauJetContainerName + " Tau pt; pt; # Taus",20,0.,150.);
-  m_pt_eleBDTmed        = Book1D("Pt_eleBDTmed",m_sTauJetContainerName + " Tau pt; pt; # Taus",20,0.,150.);
-  m_pt_eleBDTtight      = Book1D("Pt_eleBDTtight",m_sTauJetContainerName + " Tau pt; pt; # Taus",20,0.,150.);
-  m_pt_eleBDTlooseHighPt = Book1D("Pt_eleBDTlooseHighPt",m_sTauJetContainerName + " Tau pt; pt; # Taus",20,0.,1500.);
-  m_pt_eleBDTmedHighPt   = Book1D("Pt_eleBDTmedHighPt",m_sTauJetContainerName + " Tau pt; pt; # Taus",20,0.,1500.);
-  m_pt_eleBDTtightHighPt = Book1D("Pt_eleBDTtightHighPt",m_sTauJetContainerName + " Tau pt; pt; # Taus",20,0.,1500.);
+  m_pt_eleBDTloose      = Book1D("Pt_eleBDTloose",m_sTauJetContainerName + " Tau pt; pt; # Taus",20,0.,300.);
+  m_pt_eleBDTmed        = Book1D("Pt_eleBDTmed",m_sTauJetContainerName + " Tau pt; pt; # Taus",20,0.,300.);
+  m_pt_eleBDTtight      = Book1D("Pt_eleBDTtight",m_sTauJetContainerName + " Tau pt; pt; # Taus",20,0.,300.);
 
 }
 
@@ -65,18 +59,9 @@ void EVetoPlots::fill(const xAOD::TauJet& tau) {
   if (test) m_CentFrac->Fill(avariable,1.);
 
   if(tau.hasDiscriminant(xAOD::TauJetParameters::BDTEleScore) )m_id_BDTEleScore->Fill(tau.discriminant(xAOD::TauJetParameters::BDTEleScore));
-  if ( tau.isTau(xAOD::TauJetParameters::EleBDTLoose) ) {
-     m_pt_eleBDTloose      ->Fill(tau.pt()/1000.0, 1.0);
-     m_pt_eleBDTlooseHighPt->Fill(tau.pt()/1000.0, 1.0);
-  }
-  if ( tau.isTau(xAOD::TauJetParameters::EleBDTMedium) ) {
-     m_pt_eleBDTmed      ->Fill(tau.pt()/1000.0, 1.0);
-     m_pt_eleBDTmedHighPt->Fill(tau.pt()/1000.0, 1.0);
-  }
-  if ( tau.isTau(xAOD::TauJetParameters::EleBDTTight) ) {
-     m_pt_eleBDTtight      ->Fill(tau.pt()/1000.0, 1.0);
-     m_pt_eleBDTtightHighPt->Fill(tau.pt()/1000.0, 1.0);
-  }
+  if(tau.isTau(xAOD::TauJetParameters::EleBDTLoose))      m_pt_eleBDTloose->Fill( tau.pt()/1000,1);
+  if(tau.isTau(xAOD::TauJetParameters::EleBDTMedium))     m_pt_eleBDTmed  ->Fill( tau.pt()/1000,1);
+  if(tau.isTau(xAOD::TauJetParameters::EleBDTTight))      m_pt_eleBDTtight->Fill( tau.pt()/1000,1);
 
 }
 
diff --git a/PhysicsAnalysis/TauID/TauHistUtils/src/EfficiencyPtPlots.cxx b/PhysicsAnalysis/TauID/TauHistUtils/src/EfficiencyPtPlots.cxx
index b48cb72af1ff4bc61b5e44c131beccaadb4a9a96..9aa1ecbcdc8ef2c2cf66bc2ab803012d29ca4b72 100644
--- a/PhysicsAnalysis/TauID/TauHistUtils/src/EfficiencyPtPlots.cxx
+++ b/PhysicsAnalysis/TauID/TauHistUtils/src/EfficiencyPtPlots.cxx
@@ -22,53 +22,45 @@ EfficiencyPtPlots::~EfficiencyPtPlots()
 {
 }
 
-void EfficiencyPtPlots::initializePlots()
-{
-   m_eff_pt_jetBDTloose       = BookTProfile("Eff_Pt_jetBDTloose"," Matched Tau loose eff in pt; pt; eff", 20, 0., 150.0);
-   m_eff_pt_jetBDTmed         = BookTProfile("Eff_Pt_jetBDTmed","Matched Tau med eff in pt; pt; eff", 20, 0.0, 150.0);
-   m_eff_pt_jetBDTtight       = BookTProfile("Eff_Pt_jetBDTtight","Matched Tau tight eff in pt; pt; eff", 20, 0.0, 150.0);
-   m_eff_pt_jetBDTlooseHighPt = BookTProfile("Eff_Pt_jetBDTlooseHightPt"," Matched Tau loose eff in pt; pt; eff", 20, 0.0, 1500.0);
-   m_eff_pt_jetBDTmedHighPt   = BookTProfile("Eff_Pt_jetBDTmedHightPt","Matched Tau med eff in pt; pt; eff", 20, 0.0, 1500.0);
-   m_eff_pt_jetBDTtightHighPt = BookTProfile("Eff_Pt_jetBDTtightHightPt","Matched Tau tight eff in pt; pt; eff", 20, 0.0, 1500.0);
-   m_eff_jetBDTloose          = BookTProfile("Eff_jetBDTloose"," Matched Tau loose eff total; bin; eff",3,-1.5,1.5);
-   m_eff_jetBDTmed            = BookTProfile("Eff_jetBDTmed","Matched Tau med eff total; bin; eff",3,-1.5,1.5);
-   m_eff_jetBDTtight          = BookTProfile("Eff_jetBDTtight","Matched Tau tight eff total; bin; eff",3,-1.5,1.5);
-}
+void EfficiencyPtPlots::initializePlots(){
 
-void EfficiencyPtPlots::fill(const xAOD::TauJet& tau)
-{
-   if ( tau.isTau(xAOD::TauJetParameters::JetBDTSigLoose) ) {
-      m_eff_pt_jetBDTloose      ->Fill(tau.pt()/1000, 1.0, 1.0);
-      m_eff_pt_jetBDTlooseHighPt->Fill(tau.pt()/1000, 1.0, 1.0);
-      m_eff_jetBDTloose         ->Fill(0.0,           1.0, 1.0);
-   }
-   else {
-      m_eff_pt_jetBDTloose      ->Fill(tau.pt()/1000, 0.0, 1.0);
-      m_eff_pt_jetBDTlooseHighPt->Fill(tau.pt()/1000, 0.0, 1.0);
-      m_eff_jetBDTloose         ->Fill(0.0,           0.0, 1.0);
-   }
+   m_eff_pt_jetBDTloose = BookTProfile("Eff_Pt_jetBDTloose"," Matched Tau loose eff in pt; pt; eff",15,0.,300.);
+   m_eff_pt_jetBDTmed   = BookTProfile("Eff_Pt_jetBDTmed","Matched Tau med eff in pt; pt; eff",15,0.,300.);
+   m_eff_pt_jetBDTtight = BookTProfile("Eff_Pt_jetBDTtight","Matched Tau tight eff in pt; pt; eff",15,0.,300.);
+   
+   m_eff_jetBDTloose    = BookTProfile("Eff_jetBDTloose"," Matched Tau loose eff total; bin; eff",3,-1.5,1.5);
+   m_eff_jetBDTmed      = BookTProfile("Eff_jetBDTmed","Matched Tau med eff total; bin; eff",3,-1.5,1.5);
+   m_eff_jetBDTtight    = BookTProfile("Eff_jetBDTtight","Matched Tau tight eff total; bin; eff",3,-1.5,1.5);
    
-   if ( tau.isTau(xAOD::TauJetParameters::JetBDTSigMedium) ) {
-      m_eff_pt_jetBDTmed      ->Fill(tau.pt()/1000, 1.0, 1.0);
-      m_eff_pt_jetBDTmedHighPt->Fill(tau.pt()/1000, 1.0, 1.0);
-      m_eff_jetBDTmed         ->Fill(0.0,           1.0, 1.0);
-   }
-   else {
-      m_eff_pt_jetBDTmed      ->Fill(tau.pt()/1000, 0.0, 1.0);
-      m_eff_pt_jetBDTmedHighPt->Fill(tau.pt()/1000, 0.0, 1.0);
-      m_eff_jetBDTmed         ->Fill(0.0,           0.0, 1.0);
-   }
 
-   if ( tau.isTau(xAOD::TauJetParameters::JetBDTSigTight) ) {
-      m_eff_pt_jetBDTtight      ->Fill(tau.pt()/1000, 1.0, 1.0);
-      m_eff_pt_jetBDTtightHighPt->Fill(tau.pt()/1000, 1.0, 1.0);
-      m_eff_jetBDTtight         ->Fill(0.0,           1.0, 1.0);
-   }
-   else {
-      m_eff_pt_jetBDTtight      ->Fill(tau.pt()/1000, 0.0, 1.0);
-      m_eff_pt_jetBDTtightHighPt->Fill(tau.pt()/1000, 0.0, 1.0);
-      m_eff_jetBDTtight         ->Fill(0.0,           0.0, 1.0);
-   }
+}
+
+void EfficiencyPtPlots::fill(const xAOD::TauJet& tau) {
+    if(tau.isTau(xAOD::TauJetParameters::JetBDTSigLoose)){
+	m_eff_pt_jetBDTloose->Fill( tau.pt()/1000,1,1);
+	m_eff_jetBDTloose->Fill( 0.,1.,1.);
+    }
+    else{
+	m_eff_pt_jetBDTloose->Fill( tau.pt()/1000,0,1);
+	m_eff_jetBDTloose->Fill( 0.,0.,1.);
+    }
+
+    if(tau.isTau(xAOD::TauJetParameters::JetBDTSigMedium)){
+	m_eff_pt_jetBDTmed  ->Fill( tau.pt()/1000,1,1);
+	m_eff_jetBDTmed  ->Fill( 0.,1.,1.);
+    }
+    else{
+	m_eff_pt_jetBDTmed  ->Fill( tau.pt()/1000,0,1);
+	m_eff_jetBDTmed  ->Fill( 0.,0.,1.);
+    }
+    if(tau.isTau(xAOD::TauJetParameters::JetBDTSigTight)){
+	m_eff_pt_jetBDTtight->Fill( tau.pt()/1000,1,1);
+	m_eff_jetBDTtight->Fill( 0.,1.,1.);
+    }
+    else{
+	m_eff_pt_jetBDTtight->Fill( tau.pt()/1000,0,1);
+	m_eff_jetBDTtight->Fill( 0.,0.,1.);
+    }
 
 }
 
diff --git a/PhysicsAnalysis/TauID/TauHistUtils/src/GeneralTauPlots.cxx b/PhysicsAnalysis/TauID/TauHistUtils/src/GeneralTauPlots.cxx
index 5fa54b51875e323cecd880b3aac56448e65281e8..98ecb3514154b2640dfa56b6d42990f59f187ec2 100644
--- a/PhysicsAnalysis/TauID/TauHistUtils/src/GeneralTauPlots.cxx
+++ b/PhysicsAnalysis/TauID/TauHistUtils/src/GeneralTauPlots.cxx
@@ -17,9 +17,6 @@ GeneralTauPlots::GeneralTauPlots(PlotBase* pParent, std::string sDir, std::strin
    m_pt_jetBDTloose(nullptr),
    m_pt_jetBDTmed(nullptr),
    m_pt_jetBDTtight(nullptr),
-   m_pt_jetBDTlooseHighPt(nullptr),
-   m_pt_jetBDTmedHighPt(nullptr),
-   m_pt_jetBDTtightHighPt(nullptr),
    m_sTauJetContainerName(sTauJetContainerName)
 {	
 }
@@ -29,18 +26,17 @@ GeneralTauPlots::~GeneralTauPlots()
 }
 
 void GeneralTauPlots::initializePlots(){
-   // m_oParamPlots.initialize();
-   m_tauCharge      = Book1D("Charge",m_sTauJetContainerName + " Tau charge; charge; # Taus",7,-3.,4.);
-   m_tauNCoreTracks = Book1D("NCoreTracks",m_sTauJetContainerName + " Tau n core tracks; nCore; # Taus",10,0.,10.);
-   m_tauNWideTracks = Book1D("NWideTracks",m_sTauJetContainerName + " Tau n wide tracks; nWide; # Taus",10,0.,10.);
-   m_id_BDTJetScore = Book1D("id_BDTJetScore",m_sTauJetContainerName + " BDTJetScore ; BDTJetScore; # Tau",10,1.01,1.01);
-   
-   m_pt_jetBDTloose = Book1D("Pt_jetBDTloose",m_sTauJetContainerName + " Loose tau pt; pt; # Taus",20, 0.0, 150.0);
-   m_pt_jetBDTmed   = Book1D("Pt_jetBDTmed",m_sTauJetContainerName + " Medium tau pt; pt; # Taus",20, 0.0, 150.0);
-   m_pt_jetBDTtight = Book1D("Pt_jetBDTtigth",m_sTauJetContainerName + " Tight tau pt; pt; # Taus",20, 0.0, 150.0);
-   m_pt_jetBDTlooseHighPt = Book1D("Pt_jetBDTlooseHighPt",m_sTauJetContainerName + " Loose tau pt; pt; # Taus", 20, 0.0, 1500.0);
-   m_pt_jetBDTmedHighPt   = Book1D("Pt_jetBDTmedHighPt",m_sTauJetContainerName + " Medium tau pt; pt; # Taus", 20, 0.0, 1500.0);
-   m_pt_jetBDTtightHighPt = Book1D("Pt_jetBDTtigthHighPt",m_sTauJetContainerName + " Tight tau pt; pt; # Taus", 20, 0.0, 1500.0);
+
+  //  m_oParamPlots.initialize();
+	m_tauCharge      = Book1D("Charge",m_sTauJetContainerName + " Tau charge; charge; # Taus",7,-3.,4.);
+	m_tauNCoreTracks = Book1D("NCoreTracks",m_sTauJetContainerName + " Tau n core tracks; nCore; # Taus",10,0.,10.);
+	m_tauNWideTracks = Book1D("NWideTracks",m_sTauJetContainerName + " Tau n wide tracks; nWide; # Taus",10,0.,10.);
+	m_id_BDTJetScore      = Book1D("id_BDTJetScore",m_sTauJetContainerName + " BDTJetScore ; BDTJetScore; # Tau",10,1.01,1.01);
+	m_pt_jetBDTloose      = Book1D("Pt_jetBDTloose",m_sTauJetContainerName + " Tau pt; pt; # Taus",20,0.,300.);
+	m_pt_jetBDTmed        = Book1D("Pt_jetBDTmed",m_sTauJetContainerName + " Tau pt; pt; # Taus",20,0.,300.);
+	m_pt_jetBDTtight      = Book1D("Pt_jetBDTtigth",m_sTauJetContainerName + " Tau pt; pt; # Taus",20,0.,300.);
+
+
 }
 
 void GeneralTauPlots::fill(const xAOD::TauJet& tau) {
@@ -50,18 +46,9 @@ void GeneralTauPlots::fill(const xAOD::TauJet& tau) {
   //  m_tauNWideTracks->Fill(tau.nWideTracks(), 1.);
   m_tauNWideTracks->Fill(tau.nTracks(xAOD::TauJetParameters::classifiedIsolation), 1.); // 
   if( tau.hasDiscriminant(xAOD::TauJetParameters::BDTJetScore) )m_id_BDTJetScore->Fill(tau.discriminant(xAOD::TauJetParameters::BDTJetScore));
-  if ( tau.isTau(xAOD::TauJetParameters::JetBDTSigLoose) ) {
-     m_pt_jetBDTloose       -> Fill(tau.pt()/1000, 1.0);
-     m_pt_jetBDTlooseHighPt -> Fill(tau.pt()/1000, 1.0);
-  }
-  if ( tau.isTau(xAOD::TauJetParameters::JetBDTSigMedium) ) {
-     m_pt_jetBDTmed       -> Fill(tau.pt()/1000, 1.0);
-     m_pt_jetBDTmedHighPt -> Fill(tau.pt()/1000, 1.0);
-  }
-  if ( tau.isTau(xAOD::TauJetParameters::JetBDTSigTight) ) {
-     m_pt_jetBDTtight       -> Fill(tau.pt()/1000, 1.0);
-     m_pt_jetBDTtightHighPt -> Fill(tau.pt()/1000, 1.0);
-  }
+  if(tau.isTau(xAOD::TauJetParameters::JetBDTSigLoose))   m_pt_jetBDTloose->Fill( tau.pt()/1000,1);
+  if(tau.isTau(xAOD::TauJetParameters::JetBDTSigMedium))  m_pt_jetBDTmed  ->Fill( tau.pt()/1000,1);
+  if(tau.isTau(xAOD::TauJetParameters::JetBDTSigTight))   m_pt_jetBDTtight->Fill( tau.pt()/1000,1);
 
 }
 
diff --git a/PhysicsAnalysis/TauID/TauHistUtils/src/Had1ProngPlots.cxx b/PhysicsAnalysis/TauID/TauHistUtils/src/Had1ProngPlots.cxx
index 09d2198cf1df95c46b217f7c0ad4db93e9c482c1..771ed5820c1628ea86a6a1e6530e285526631760 100644
--- a/PhysicsAnalysis/TauID/TauHistUtils/src/Had1ProngPlots.cxx
+++ b/PhysicsAnalysis/TauID/TauHistUtils/src/Had1ProngPlots.cxx
@@ -6,8 +6,7 @@
 
 namespace Tau{
 
-Had1ProngPlots::Had1ProngPlots(PlotBase* pParent, std::string sDir,
-			       std::string sTauJetContainerName):
+Had1ProngPlots::Had1ProngPlots(PlotBase* pParent, std::string sDir, std::string sTauJetContainerName):
    PlotBase(pParent, sDir),
    m_oGeneralTauPlots(this, "", sTauJetContainerName),
    m_tauNWideTracks(nullptr),
@@ -37,27 +36,27 @@ Had1ProngPlots::~Had1ProngPlots()
 
 void Had1ProngPlots::initializePlots(){
 
-   // m_oGeneralTauPlots.initialize();
-   m_tauCoreFrac   = Book1D("CoreFrac",m_sTauJetContainerName + " Tau CoreFrac; CoreFrac; # Taus",40,0.,2.);
-   m_tauEoverPTrk  = Book1D("EoverPTrk",m_sTauJetContainerName + " Tau E over pLeadTrk; EoverP; # Taus",50,0.,4.);
-   m_tauTrkAvgDist = Book1D("TrkAvgDist",m_sTauJetContainerName + " Tau track avg dist; TrkAvgDist; # Taus",10,-0.2,.8);
-   m_tauIpSig      = Book1D("IpSig",m_sTauJetContainerName + " Tau lead track IP signif. ; IpSig; # Taus",30,-15.,15.);
-   
-   m_tauDRMax     = Book1D("DRMax",m_sTauJetContainerName + " Tau DR Max track-seed; DRMax; # Taus",20,0.,0.5);
-   m_tauSflight   = Book1D("Sflight",m_sTauJetContainerName + " Tau flight sign. ; Sflight; # Taus",100,-10.,20.);
-   m_tauMtrks     = Book1D("Mtracks",m_sTauJetContainerName + " Tau tracks mass ; Mtrks; # Taus",50,-1.,10.);
-   m_SumPtTrkFrac = Book1D("SumPtTrkFrac",m_sTauJetContainerName + " Tau Sum PtTrk Frac ; SumPtTrkFrac; # Taus",100,-10.,20.);
-   
-   m_innerTrkAvgDist    = Book1D("innerTrkAvgDist",m_sTauJetContainerName + "Tau innerTrkAvgDist; innerTrkAvgDist; # of Taus",10,-0.2,.8);
-   m_ptRatioEflowApprox = Book1D("ptRatioEflowApprox",m_sTauJetContainerName + "Tau ptRatioEflowApprox; ptRatioEflowApprox; # of Taus", 10, 0, 10);
-   m_mEflowApprox       = Book1D("mEflowApprox",m_sTauJetContainerName + "Tau mEflowApprox; mEflowApprox; #Taus",30,0.0,3000.0);
-   
-   m_ChPiEMEOverCaloEME = Book1D("ChPiEMEOverCaloEME",m_sTauJetContainerName + "Tau ChPiEMEOverCaloEME; ChPiEMEOverCaloEME; # of Taus", 30, -15, 15);
-   m_EMPOverTrkSysP     = Book1D("EMPOverTrkSysP",m_sTauJetContainerName + "Tau EMPOverTrkSysP; EMPOverTrkSysP; # of Taus", 21, -1, 20);
-   
-   m_HadRadius = Book1D("HadRadius",m_sTauJetContainerName + " Had Radius; HadRadius; # Part",20,0,2.);
-   m_EMRadius  = Book1D("EMRadius",m_sTauJetContainerName + " EM Radius; EMRadius; # Part",20,0,2.);
-   m_IsoFrac   = Book1D("IsoFrac",m_sTauJetContainerName + " Iso Frac; Iso Frac; # Part",20,0,1.);
+  //  m_oGeneralTauPlots.initialize();
+	m_tauCoreFrac =    Book1D("CoreFrac",m_sTauJetContainerName + " Tau CoreFrac; CoreFrac; # Taus",40,0.,2.);
+	m_tauEoverPTrk =   Book1D("EoverPTrk",m_sTauJetContainerName + " Tau E over pLeadTrk; EoverP; # Taus",50,0.,4.);
+	m_tauTrkAvgDist =  Book1D("TrkAvgDist",m_sTauJetContainerName + " Tau track avg dist; TrkAvgDist; # Taus",10,-0.2,.8);
+	m_tauIpSig =       Book1D("IpSig",m_sTauJetContainerName + " Tau lead track IP signif. ; IpSig; # Taus",30,-15.,15.);
+
+	m_tauDRMax =       Book1D("DRMax",m_sTauJetContainerName + " Tau DR Max track-seed; DRMax; # Taus",20,0.,0.5);
+	m_tauSflight =     Book1D("Sflight",m_sTauJetContainerName + " Tau flight sign. ; Sflight; # Taus",100,-10.,20.);
+	m_tauMtrks =       Book1D("Mtracks",m_sTauJetContainerName + " Tau tracks mass ; Mtrks; # Taus",50,-1.,10.);
+	m_SumPtTrkFrac =   Book1D("SumPtTrkFrac",m_sTauJetContainerName + " Tau Sum PtTrk Frac ; SumPtTrkFrac; # Taus",100,-10.,20.);
+
+	m_innerTrkAvgDist                   = Book1D("innerTrkAvgDist",m_sTauJetContainerName + "Tau innerTrkAvgDist; innerTrkAvgDist; # of Taus",10,-0.2,.8);
+	m_ptRatioEflowApprox                 = Book1D("ptRatioEflowApprox",m_sTauJetContainerName + "Tau ptRatioEflowApprox; ptRatioEflowApprox; # of Taus", 10, 0, 10);
+    m_mEflowApprox						= Book1D("mEflowApprox",m_sTauJetContainerName + "Tau mEflowApprox; mEflowApprox; #Taus",30,0,300);
+
+    m_ChPiEMEOverCaloEME               = Book1D("ChPiEMEOverCaloEME",m_sTauJetContainerName + "Tau ChPiEMEOverCaloEME; ChPiEMEOverCaloEME; # of Taus", 30, -15, 15);
+    m_EMPOverTrkSysP                   = Book1D("EMPOverTrkSysP",m_sTauJetContainerName + "Tau EMPOverTrkSysP; EMPOverTrkSysP; # of Taus", 21, -1, 20);
+
+    m_HadRadius = Book1D("HadRadius",m_sTauJetContainerName + " Had Radius; HadRadius; # Part",20,0,2.);
+    m_EMRadius  = Book1D("EMRadius",m_sTauJetContainerName + " EM Radius; EMRadius; # Part",20,0,2.);
+    m_IsoFrac   = Book1D("IsoFrac",m_sTauJetContainerName + " Iso Frac; Iso Frac; # Part",20,0,1.);
 
 }
 
diff --git a/PhysicsAnalysis/TauID/TauHistUtils/src/Had3ProngPlots.cxx b/PhysicsAnalysis/TauID/TauHistUtils/src/Had3ProngPlots.cxx
index bccd482e37ee4f8647404efa893c2a18fcc54ad6..86e2db83fc65444b600fb502bcd54801618c397e 100644
--- a/PhysicsAnalysis/TauID/TauHistUtils/src/Had3ProngPlots.cxx
+++ b/PhysicsAnalysis/TauID/TauHistUtils/src/Had3ProngPlots.cxx
@@ -42,7 +42,7 @@ void Had3ProngPlots::initializePlots(){
 
   m_innerTrkAvgDist    = Book1D("innerTrkAvgDist",m_sTauJetContainerName + "Tau innerTrkAvgDist; innerTrkAvgDist; # of Taus", 10,-0.2,.8);
   m_ptRatioEflowApprox = Book1D("ptRatioEflowApprox",m_sTauJetContainerName + "Tau ptRatioEflowApprox; ptRatioEflowApprox; # of Taus", 10, 0, 10);
-  m_mEflowApprox       = Book1D("mEflowApprox",m_sTauJetContainerName + "Tau mEflowApprox; mEflowApprox; #Taus",30,0.0,3000.0);
+  m_mEflowApprox       = Book1D("mEflowApprox",m_sTauJetContainerName + "Tau mEflowApprox; mEflowApprox; #Taus",30,0,300);
   m_ChPiEMEOverCaloEME = Book1D("ChPiEMEOverCaloEME",m_sTauJetContainerName + "Tau ChPiEMEOverCaloEME; ChPiEMEOverCaloEME; # of Taus", 30, -15, 15);
   m_EMPOverTrkSysP     = Book1D("EMPOverTrkSysP",m_sTauJetContainerName + "Tau EMPOverTrkSysP; EMPOverTrkSysP; # of Taus", 21, -1, 20);
 
diff --git a/PhysicsAnalysis/TauID/TauHistUtils/src/Migration.cxx b/PhysicsAnalysis/TauID/TauHistUtils/src/Migration.cxx
index 17032bda135321cbf02e8900c3576efd070399dc..1955adc11a2e4e25359bfef59cd1f7b82a82a338 100644
--- a/PhysicsAnalysis/TauID/TauHistUtils/src/Migration.cxx
+++ b/PhysicsAnalysis/TauID/TauHistUtils/src/Migration.cxx
@@ -8,8 +8,8 @@ namespace Tau{
 
 Migration::Migration(PlotBase* pParent, std::string sDir, std::string sTauJetContainerName):
    PlotBase(pParent, sDir),
-   m_migration_panTau(nullptr),
-   m_migration_panTauProto(nullptr),
+   m_migration_tauRec(nullptr),
+   m_migration_eflow(nullptr),
    m_migration_cellBased(nullptr),
    m_sTauJetContainerName(sTauJetContainerName)
 {
@@ -19,141 +19,94 @@ Migration::~Migration()
 {
 }
 
-void Migration::initializePlots()
-{
-   m_migration_panTau = Book1D("panTau_migration",m_sTauJetContainerName + " panTau migration",DECAYSIZE,0,DECAYSIZE);
-   m_migration_panTauProto = Book1D("panTauProto_migration",m_sTauJetContainerName + " panTau proto migration",DECAYSIZE,0,DECAYSIZE);
-   m_migration_cellBased = Book1D("cellBased_migration",m_sTauJetContainerName + " cellBased migration",DECAYSIZE,0,DECAYSIZE);
-   m_migration_panTau->GetXaxis()->SetLabelSize(0.05);
-   m_migration_panTauProto->GetXaxis()->SetLabelSize(0.05);
-   m_migration_cellBased->GetXaxis()->SetLabelSize(0.05);
-   for(int i=1; i<= DECAYSIZE;i++){
-      m_migration_panTauProto->GetXaxis()->SetBinLabel(i,m_lable[i-1]);
-      m_migration_panTau->GetXaxis()->SetBinLabel(i,m_lable[i-1]);
-      m_migration_cellBased->GetXaxis()->SetBinLabel(i,m_lable[i-1]);
-   }
-}
-   
-void Migration::fill(const xAOD::TauJet& thisTau,int nProng, int nNeu) {
-
-   // panTau
-   int isPanTauCandidate = 0;
-   bool foundDetail = thisTau.panTauDetail(xAOD::TauJetParameters::PanTauDetails::PanTau_isPanTauCandidate, isPanTauCandidate);
-   if ( !foundDetail || !isPanTauCandidate ) return;
-   
-   int decayMode = xAOD::TauJetParameters::DecayMode::Mode_Error;
-   foundDetail = thisTau.panTauDetail(xAOD::TauJetParameters::PanTauDetails::PanTau_DecayMode, decayMode);
-   if ( foundDetail ) decayModeFill(decayMode, nProng, nNeu, m_migration_panTau);	
-
-   decayMode = xAOD::TauJetParameters::DecayMode::Mode_Error;
-   foundDetail = thisTau.panTauDetail(xAOD::TauJetParameters::PanTauDetails::PanTau_DecayModeProto, decayMode);
-   if ( foundDetail ) decayModeFill(decayMode, nProng, nNeu, m_migration_panTauProto);	
-
-
-//RecTau
-   
+    void Migration::initializePlots(){
+	m_migration_tauRec = Book1D("tauRec_migration",m_sTauJetContainerName + " TauRec migration",DECAYSIZE,0,DECAYSIZE);
+	m_migration_eflow = Book1D("eflow_migration",m_sTauJetContainerName + " eflow migration",DECAYSIZE,0,DECAYSIZE);
+	m_migration_cellBased = Book1D("cellBased_migration",m_sTauJetContainerName + " cellBased migration",DECAYSIZE,0,DECAYSIZE);
+	for(int i=1; i<= DECAYSIZE;i++){
+	    m_migration_tauRec->GetXaxis()->SetBinLabel(i,m_lable[i-1]);
+	    m_migration_eflow->GetXaxis()->SetBinLabel(i,m_lable[i-1]);
+	    m_migration_cellBased->GetXaxis()->SetBinLabel(i,m_lable[i-1]);
+	}
+    }
+    
+    void Migration::fill(const xAOD::TauJet& thisTau,int nProng, int nNeu) {
+	//RecTau
 	
-   
-   
-   /*+++++++++++++++++++++++++++++++++++++++++++++++++
-     +++++++++++++++++++CellBased+++++++++++++++++++++
-     +++++++++++++++++++++++++++++++++++++++++++++++++*/
-
-   
-   //Charged Pions
-   std::vector< ElementLink< xAOD::PFOContainer > > cellBased_chargedPFO = thisTau.protoChargedPFOLinks();
-   int cellP = cellBased_chargedPFO.size();
 	
-   
-   //Neutral Pions
-   int nPi0_tau = 0;
-   std::vector< ElementLink< xAOD::PFOContainer > > cellBased_neutralPFO = thisTau.protoNeutralPFOLinks();
-   std::vector< ElementLink< xAOD::PFOContainer > >::iterator first_cellBased_neutralPFO = cellBased_neutralPFO.begin();
-   std::vector< ElementLink< xAOD::PFOContainer > >::iterator last_cellBased_neutralPFO = cellBased_neutralPFO.end();
-   for (; first_cellBased_neutralPFO != last_cellBased_neutralPFO; ++first_cellBased_neutralPFO){
-      ElementLink<xAOD::PFOContainer> thisLink = *first_cellBased_neutralPFO;
-      const xAOD::PFO* thisPFO = *thisLink;
-      int myNPi0Proto = 0;
-      if(thisPFO->attribute(xAOD::PFODetails::nPi0Proto, myNPi0Proto)) nPi0_tau+=myNPi0Proto;
-      
-   } 
-   decayModeFill(nProng,nNeu,cellP,nPi0_tau,m_migration_cellBased);	
-   
-   
-   
-   /*+++++++++++++++++++++++++++++++++++++++++++++++++
-     +++++++++++++++++++Pantau+++++++++++++++++++++
-     +++++++++++++++++++++++++++++++++++++++++++++++++*/
-   
-}
-
-
-void Migration::decayModeFill(int trueMode, int recP, int recN,TH1 *histo)
-{
-   switch (trueMode) {
-   case xAOD::TauJetParameters::DecayMode::Mode_1p0n:
-      if      ( recP == 1 && recN == 0 ) histo->Fill(t10r10 + 0.5);
-      else if ( recP == 1 && recN == 1 ) histo->Fill(t10r11 + 0.5);
-      else if ( recP == 1 && recN >  1 ) histo->Fill(t10r1x + 0.5);
-      else if ( recP == 3 ) histo->Fill(t1r3 + 0.5);
-      break;
-   case xAOD::TauJetParameters::DecayMode::Mode_1p1n:
-      if      ( recP == 1 && recN == 0 ) histo->Fill(t11r10 + 0.5);
-      else if ( recP == 1 && recN == 1 ) histo->Fill(t11r11 + 0.5);
-      else if ( recP == 1 && recN >  1 ) histo->Fill(t11r1x + 0.5);
-      else if ( recP == 3 ) histo->Fill(t1r3 + 0.5);
-      break;
-   case xAOD::TauJetParameters::DecayMode::Mode_1pXn:
-      if      ( recP == 1 && recN == 0 ) histo->Fill(t1xr10 + 0.5);
-      else if ( recP == 1 && recN == 1 ) histo->Fill(t1xr11 + 0.5);
-      else if ( recP == 1 && recN >  1 ) histo->Fill(t1xr1x + 0.5);
-      else if ( recP == 3 ) histo->Fill(t1r3 + 0.5);
-      break;
-   case xAOD::TauJetParameters::DecayMode::Mode_3p0n:
-      if      ( recP == 3 && recN == 0 ) histo->Fill(t30r30 + 0.5);
-      else if ( recP == 3 && recN >= 1 ) histo->Fill(t30r3x + 0.5);
-      else if ( recP == 1 ) histo->Fill(t3r1 + 0.5);
-      break;
-   case xAOD::TauJetParameters::DecayMode::Mode_3pXn:
-      if      ( recP == 3 && recN == 0 ) histo->Fill(t3xr30 + 0.5);
-      else if ( recP == 3 && recN >= 1 ) histo->Fill(t3xr3x + 0.5);
-      else if ( recP == 1 ) histo->Fill(t3r1 + 0.5);
-      break;
-   }
-   return;
-}
-
-
-void Migration::decayModeFill(int trueP,int trueN,int recP, int recN,TH1 *histo){
-   if(recP == 1 && recN== 0){
-      if(trueP == 1 && trueN== 0) histo->Fill(t10r10 + 0.5);
-      if(trueP == 1 && trueN== 1) histo->Fill(t11r10 + 0.5);
-      if(trueP == 1 && trueN > 1) histo->Fill(t1xr10 + 0.5);
-      if(trueP == 3) histo->Fill(t3r1 + 0.5);
-   }
-   if(recP == 1 && recN== 1){
-      if(trueP == 1 && trueN== 0) histo->Fill(t10r11 + 0.5);
-      if(trueP == 1 && trueN== 1) histo->Fill(t11r11 + 0.5);
-      if(trueP == 1 && trueN > 1) histo->Fill(t1xr11 + 0.5);
-      if(trueP == 3 ) histo->Fill(t3r1 + 0.5);
-   }
-   if(recP == 1 && recN > 1){
-      if(trueP == 1 && trueN== 0) histo->Fill(t10r1x + 0.5);
-      if(trueP == 1 && trueN== 1) histo->Fill(t11r1x + 0.5);
-      if(trueP == 1 && trueN > 1) histo->Fill(t1xr1x + 0.5);
-      if(trueP == 3 ) histo->Fill(t3r1 + 0.5);
-   }
-   if(recP == 3 && recN== 0){
-      if(trueP == 1 ) histo->Fill(t1r3 + 0.5);
-      if(trueP == 3 && trueN== 0) histo->Fill(t30r30 + 0.5);
-      if(trueP == 3 && trueN>= 1) histo->Fill(t3xr30 + 0.5);
-   }
-   if(recP == 3 && recN>= 1){
-      if(trueP == 1 ) histo->Fill(t1r3 + 0.5);
-      if(trueP == 3 && trueN== 0) histo->Fill(t30r3x + 0.5);
-      if(trueP == 3 && trueN>= 1) histo->Fill(t3xr3x + 0.5);
-   }
-   return;
-}
+	
+	
+	/*+++++++++++++++++++++++++++++++++++++++++++++++++
+	  +++++++++++++++++++EFLOW_REC+++++++++++++++++++++
+	  +++++++++++++++++++++++++++++++++++++++++++++++++*/
+	
+	//Charged Pions
+      // FIXME!!! taujet v2 does no longer have eflowrec pfos
+	// std::vector< ElementLink< xAOD::PFOContainer > > eflowRec_chargedPFO = thisTau.eflowRec_Charged_PFOLinks();
+	// int efP = eflowRec_chargedPFO.size();
+	// //Neutral Pions
+	// std::vector< ElementLink< xAOD::PFOContainer > > eflowRec_neutralPFO = thisTau.eflowRec_Pi0_PFOLinks();
+	// int efN = eflowRec_neutralPFO.size();
+	// decayModeFill(nProng,nNeu,efP,efN,m_migration_eflow);
+	/*+++++++++++++++++++++++++++++++++++++++++++++++++
+	  +++++++++++++++++++CellBased+++++++++++++++++++++
+	  +++++++++++++++++++++++++++++++++++++++++++++++++*/
+	
+	//Charged Pions
+	std::vector< ElementLink< xAOD::PFOContainer > > cellBased_chargedPFO = thisTau.protoChargedPFOLinks();
+	int cellP = cellBased_chargedPFO.size();
 
+	
+	//Neutral Pions
+	int nPi0_tau = 0;
+	std::vector< ElementLink< xAOD::PFOContainer > > cellBased_neutralPFO = thisTau.protoNeutralPFOLinks();
+	std::vector< ElementLink< xAOD::PFOContainer > >::iterator first_cellBased_neutralPFO = cellBased_neutralPFO.begin();
+	std::vector< ElementLink< xAOD::PFOContainer > >::iterator last_cellBased_neutralPFO = cellBased_neutralPFO.end();
+	for (; first_cellBased_neutralPFO != last_cellBased_neutralPFO; ++first_cellBased_neutralPFO){
+	    ElementLink<xAOD::PFOContainer> thisLink = *first_cellBased_neutralPFO;
+	    const xAOD::PFO* thisPFO = *thisLink;
+	    int myNPi0Proto = 0;
+	    if(thisPFO->attribute(xAOD::PFODetails::nPi0Proto, myNPi0Proto)) nPi0_tau+=myNPi0Proto;
+	    
+	} 
+	decayModeFill(nProng,nNeu,cellP,nPi0_tau,m_migration_cellBased);	
+	
+	
+	
+	/*+++++++++++++++++++++++++++++++++++++++++++++++++
+	  +++++++++++++++++++Pantau+++++++++++++++++++++
+	  +++++++++++++++++++++++++++++++++++++++++++++++++*/
+	
+    }
+    void Migration::decayModeFill(int trueP,int trueN,int recP, int recN,TH1 *histo){
+	if(recP == 1 && recN== 0){
+	    if(trueP == 1 && trueN== 0) histo->Fill(t10r10 + 0.5);
+	    if(trueP == 1 && trueN== 1) histo->Fill(t11r10 + 0.5);
+	    if(trueP == 1 && trueN > 1) histo->Fill(t1xr10 + 0.5);
+	    if(trueP == 3) histo->Fill(t3r1 + 0.5);
+	}
+	if(recP == 1 && recN== 1){
+	    if(trueP == 1 && trueN== 0) histo->Fill(t10r11 + 0.5);
+	    if(trueP == 1 && trueN== 1) histo->Fill(t11r11 + 0.5);
+	    if(trueP == 1 && trueN > 1) histo->Fill(t1xr11 + 0.5);
+	    if(trueP == 3 ) histo->Fill(t3r1 + 0.5);
+	}
+	if(recP == 1 && recN > 1){
+	    if(trueP == 1 && trueN== 0) histo->Fill(t10r1x + 0.5);
+	    if(trueP == 1 && trueN== 1) histo->Fill(t11r1x + 0.5);
+	    if(trueP == 1 && trueN > 1) histo->Fill(t1xr1x + 0.5);
+	    if(trueP == 3 ) histo->Fill(t3r1 + 0.5);
+	}
+	if(recP == 3 && recN== 0){
+	    if(trueP == 1 ) histo->Fill(t1r3 + 0.5);
+	    if(trueP == 3 && trueN== 0) histo->Fill(t30r30 + 0.5);
+	    if(trueP == 3 && trueN>= 1) histo->Fill(t3xr30 + 0.5);
+	}
+	if(recP == 3 && recN>= 1){
+	    if(trueP == 1 ) histo->Fill(t1r3 + 0.5);
+	    if(trueP == 3 && trueN== 0) histo->Fill(t30r3x + 0.5);
+	    if(trueP == 3 && trueN>= 1) histo->Fill(t3xr3x + 0.5);
+	}
+	return;
+    }
 }
diff --git a/PhysicsAnalysis/TauID/TauHistUtils/src/NewCorePlots.cxx b/PhysicsAnalysis/TauID/TauHistUtils/src/NewCorePlots.cxx
index 2f99d3d22a00dbdca4d76e3961086d5110c89be6..9cc2c23861e66c7012e0c7322370dae907b4c64d 100644
--- a/PhysicsAnalysis/TauID/TauHistUtils/src/NewCorePlots.cxx
+++ b/PhysicsAnalysis/TauID/TauHistUtils/src/NewCorePlots.cxx
@@ -79,7 +79,7 @@ void NewCorePlots::initializePlots(){
 
     m_innerTrkAvgDist                   = Book1D("innerTrkAvgDist",m_sTauJetContainerName + "Tau innerTrkAvgDist; innerTrkAvgDist; # of Taus",10,-0.2,.8);
     m_ptRatioEflowApprox                 = Book1D("ptRatioEflowApprox",m_sTauJetContainerName + "Tau ptRatioEflowApprox; ptRatioEflowApprox; # of Taus", 10, 0, 10);
-    m_mEflowApprox						= Book1D("mEflowApprox",m_sTauJetContainerName + "Tau mEflowApprox; mEflowApprox; #Taus",30,0.0,3000.0);
+    m_mEflowApprox						= Book1D("mEflowApprox",m_sTauJetContainerName + "Tau mEflowApprox; mEflowApprox; #Taus",30,0,300);
 }
 
 void NewCorePlots::fill(const xAOD::TauJet& tau) {
diff --git a/PhysicsAnalysis/TauID/TauHistUtils/src/ParamPlots.cxx b/PhysicsAnalysis/TauID/TauHistUtils/src/ParamPlots.cxx
index 5e7b3bc1e4e00c44c41552f0701f8262a5d94d60..aa60d52e2618d11a1f09934810513b85e07f5597 100644
--- a/PhysicsAnalysis/TauID/TauHistUtils/src/ParamPlots.cxx
+++ b/PhysicsAnalysis/TauID/TauHistUtils/src/ParamPlots.cxx
@@ -6,38 +6,34 @@
 
 namespace Tau{
 
-ParamPlots::ParamPlots(PlotBase* pParent, std::string sDir, std::string sParticleType)
-   : PlotBase(pParent, sDir),
-     eta(nullptr),
-     phi(nullptr),
-     pt(nullptr),
-     eta_phi(nullptr),
-     eta_pt(nullptr),
-     m_sParticleType(sParticleType)
+ParamPlots::ParamPlots(PlotBase* pParent, std::string sDir, std::string sParticleType):PlotBase(pParent, sDir),m_sParticleType(sParticleType)
 {
-}
+  eta=NULL;
+  phi=NULL;
+  pt=NULL;
 
-ParamPlots::~ParamPlots()
-{
+  eta_phi=NULL;
+  eta_pt=NULL;
 }
 
-void ParamPlots::initializePlots()
-{
-   pt  = Book1D("pt" , m_sParticleType+" pt;" +m_sParticleType+" Transverse Momentum [GeV];Entries / 1 GeV",200,0.,200);
-   eta = Book1D("eta", m_sParticleType+" eta;"+m_sParticleType+" Pseudo-Rapidity;Entries / 0.05", 32, -3.2, 3.2);
-   phi = Book1D("phi", m_sParticleType+" phi;"+m_sParticleType+" Azimuthal Angle;Entries / 0.05", 32, -3.2, 3.2);
-   eta_pt  = Book2D("eta_pt",m_sParticleType+" eta vs pt;"+m_sParticleType+" eta;"+m_sParticleType+" pt;Entries.0.05/1 GeV",32,-3.2,3.2,200,0.,200);
-   eta_phi = Book2D("eta_phi_test",m_sParticleType+" eta vs phi;"+m_sParticleType+" eta;"+m_sParticleType+" phi;Entries.0.05/0.5",32,-3.2,3.2,32,-3.2,3.2);
+
+void ParamPlots::initializePlots() {
+  pt  = Book1D("pt" , m_sParticleType+" pt;" +m_sParticleType+" Transverse Momentum [GeV];Entries / 1 GeV",200,0.,200);
+  eta = Book1D("eta", m_sParticleType+" eta;"+m_sParticleType+" Pseudo-Rapidity;Entries / 0.05", 32, -3.2, 3.2);
+  phi = Book1D("phi", m_sParticleType+" phi;"+m_sParticleType+" Azimuthal Angle;Entries / 0.05", 32, -3.2, 3.2);
+
+  eta_pt  = Book2D("eta_pt",m_sParticleType+" eta vs pt;"+m_sParticleType+" eta;"+m_sParticleType+" pt;Entries.0.05/1 GeV",32,-3.2,3.2,200,0.,200);
+  eta_phi = Book2D("eta_phi_test",m_sParticleType+" eta vs phi;"+m_sParticleType+" eta;"+m_sParticleType+" phi;Entries.0.05/0.5",32,-3.2,3.2,32,-3.2,3.2);
 }
 
-   
-void ParamPlots::fill(const xAOD::IParticle& tau)
-{
-   pt->Fill(tau.pt()*0.001);
-   eta->Fill(tau.eta());
-   phi->Fill(tau.phi());
-   eta_pt->Fill(tau.eta(),tau.pt()*0.001);
-   eta_phi->Fill(tau.eta(),tau.phi());
+
+void ParamPlots::fill(const xAOD::IParticle& tau){
+  pt->Fill(tau.pt()*0.001);
+  eta->Fill(tau.eta());
+  phi->Fill(tau.phi());
+
+  eta_pt->Fill(tau.eta(),tau.pt()*0.001);
+  eta_phi->Fill(tau.eta(),tau.phi());
 }
 
 }
diff --git a/PhysicsAnalysis/TauID/TauHistUtils/src/RecoTauPlots.cxx b/PhysicsAnalysis/TauID/TauHistUtils/src/RecoTauPlots.cxx
index 3c52bba569b197f1367a23471f9cd92cf40c49f6..da56580e04ebf2ce3bd2270b21143008ac029927 100644
--- a/PhysicsAnalysis/TauID/TauHistUtils/src/RecoTauPlots.cxx
+++ b/PhysicsAnalysis/TauID/TauHistUtils/src/RecoTauPlots.cxx
@@ -9,6 +9,15 @@ namespace Tau{
 RecoTauPlots::RecoTauPlots(PlotBase* pParent, std::string sDir, std::string sTauJetContainerName):
    PlotBase(pParent, sDir),
    m_oParamPlots(this, "", sTauJetContainerName),
+   m_eflowRec_charPFO_Pt(nullptr),
+   m_eflowRec_charPFO_Eta(nullptr),
+   m_eflowRec_charPFO_Phi(nullptr),
+   m_eflowRec_charPFO_E(nullptr),
+   m_eflowRec_neuPFO_Pt(nullptr),
+   m_eflowRec_neuPFO_Eta(nullptr),
+   m_eflowRec_neuPFO_Phi(nullptr),
+   m_eflowRec_neuPFO_E(nullptr),
+   m_eflowRec_neuPFO_bdtPi0Score(nullptr),
    m_cellBased_charPFO_Pt(nullptr),
    m_cellBased_charPFO_Eta(nullptr),
    m_cellBased_charPFO_Phi(nullptr),
@@ -33,6 +42,20 @@ RecoTauPlots::RecoTauPlots(PlotBase* pParent, std::string sDir, std::string sTau
    m_pantau_CellBasedInput_BDTVar_Neutral_Ratio_EtOverEtAllConsts(nullptr),
    m_pantau_CellBasedInput_BDTVar_Neutral_Shots_NPhotonsInSeed(nullptr),
    m_pantau_CellBasedInput_BDTVar_Combined_DeltaR1stNeutralTo1stCharged(nullptr),
+   m_pantau_eflowRecInput_isPanTauCandidate(nullptr),
+   m_pantau_eflowRecInput_DecayMode(nullptr),
+   m_pantau_eflowRecInput_BDTValue_1p0n_vs_1p1n(nullptr),
+   m_pantau_eflowRecInput_BDTValue_1p1n_vs_1pXn(nullptr),
+   m_pantau_eflowRecInput_BDTValue_3p0n_vs_3pXn(nullptr),
+   m_pantau_eflowRecInput_BDTVar_Basic_NPi0NeutConsts(nullptr),
+   m_pantau_eflowRecInput_BDTVar_Basic_NNeutralConsts(nullptr),
+   m_pantau_eflowRecInput_BDTVar_Charged_Ratio_EtOverEtAllConsts(nullptr),
+   m_pantau_eflowRecInput_BDTVar_Neutral_HLV_SumM(nullptr),
+   m_pantau_eflowRecInput_BDTVar_Neutral_PID_BDTValues_EtSort_1(nullptr),
+   m_pantau_eflowRecInput_BDTVar_Neutral_PID_BDTValues_BDTSort_2(nullptr),
+   m_pantau_eflowRecInput_BDTVar_Neutral_Ratio_EtOverEtAllConsts(nullptr),
+   m_pantau_eflowRecInput_BDTVar_Neutral_Mean_DRToLeading_WrtEtAllConsts(nullptr),
+   m_pantau_eflowRecInput_BDTVar_Combined_DeltaR1stNeutralTo1stCharged(nullptr),
    m_id_BDTJetScore(nullptr),
    m_id_BDTEleScore(nullptr),
    m_sTauJetContainerName(sTauJetContainerName)
@@ -48,6 +71,22 @@ void RecoTauPlots::initializePlots(){
     //  m_oParamPlots.initialize();
 
 
+    /*+++++++++++++++++++++++++++++++++++++++++++++++++
+      +++++++++++++++++++EFLOW_REC+++++++++++++++++++++
+      +++++++++++++++++++++++++++++++++++++++++++++++++*/
+
+
+	// m_eflowRec_charPFO_Pt      = Book1D("eflowRec_PFO_c_Pt",m_sTauJetContainerName + " Charged PFO pt; pt; # PFO",200,0.,200000.);
+	// m_eflowRec_charPFO_Eta      = Book1D("eflowRec_PFO_c_Eta",m_sTauJetContainerName + " Charged PFO eta; eta; # PFO",128,-3.2,3.2);
+	// m_eflowRec_charPFO_Phi      = Book1D("eflowRec_PFO_c_Phi",m_sTauJetContainerName + " Charged PFO phi; phi; # PFO",128,-3.2,3.2);
+	// m_eflowRec_charPFO_E      = Book1D("eflowRec_PFO_c_E",m_sTauJetContainerName + " Charged PFO E; E; # PFO",200,0.,200000.);
+	// m_eflowRec_neuPFO_Pt      = Book1D("eflowRec_PFO_n_Pt",m_sTauJetContainerName + " Neutral PFO pt; pt; # PFO",200,0.,200000.);
+	// m_eflowRec_neuPFO_Eta      = Book1D("eflowRec_PFO_n_Eta",m_sTauJetContainerName + " Neutral PFO eta; eta; # PFO",128,-3.2,3.2);
+	// m_eflowRec_neuPFO_Phi      = Book1D("eflowRec_PFO_n_Phi",m_sTauJetContainerName + " Neutral PFO phi; phi; # PFO",128,-3.2,3.2);
+	// m_eflowRec_neuPFO_E      = Book1D("eflowRec_PFO_n_E",m_sTauJetContainerName + " Neutral PFO E; E; # PFO",200,0.,200000.);
+	// m_eflowRec_neuPFO_bdtPi0Score = Book1D("eflowRec_PFO_n_bdtPi0Score",m_sTauJetContainerName + " Neutral PFO BDT Pi0 Score; Score; # PFO",60,-.6,.6);
+
+
     /*+++++++++++++++++++++++++++++++++++++++++++++++++
       +++++++++++++++++++CellBased+++++++++++++++++++++
       +++++++++++++++++++++++++++++++++++++++++++++++++*/
@@ -58,7 +97,7 @@ void RecoTauPlots::initializePlots(){
 	m_cellBased_charPFO_E      = Book1D("cellBased_PFO_c_E",m_sTauJetContainerName + " Charged PFO E; E; # PFO",200,0.,200000.);
 	m_cellBased_neuPFO_Pt      = Book1D("cellBased_PFO_n_Pt",m_sTauJetContainerName + " Neutral PFO pt; pt; # PFO",200,0.,200000.);
 	m_cellBased_neuPFO_Eta      = Book1D("cellBased_PFO_n_Eta",m_sTauJetContainerName + " Neutral PFO eta; eta; # PFO",128,-3.2,3.2);
-	m_cellBased_neuPFO_Phi      = Book1D("cellBased_PFO_n_Phi",m_sTauJetContainerName + " Neutral PFO phi; phi; # PFO",64,-3.2,3.2);
+	m_cellBased_neuPFO_Phi      = Book1D("cellBased_PFO_n_Phi",m_sTauJetContainerName + " Neutral PFO phi; phi; # PFO",128,-3.2,3.2);
 	m_cellBased_neuPFO_E      = Book1D("cellBased_PFO_n_E",m_sTauJetContainerName + " Neutral PFO E; E; # PFO",200,0.,200000.);
 	m_cellBased_neuPFO_bdtPi0Score = Book1D("cellBased_PFO_n_bdtPi0Score",m_sTauJetContainerName + " Neutral PFO BDT Pi0 Score; Score; # PFO",60,-1.0,1.0);
 
@@ -82,12 +121,57 @@ void RecoTauPlots::initializePlots(){
 	m_pantau_CellBasedInput_BDTVar_Neutral_Shots_NPhotonsInSeed = Book1D("pantau_CellBasedInput_BDTVar_Neutral_Shots_NPhotonsInSeed",m_sTauJetContainerName + "pantau_CellBasedInput_BDTVar_Neutral_Shots_NPhotonsInSeed",10,-0.5,9.5);
 	m_pantau_CellBasedInput_BDTVar_Combined_DeltaR1stNeutralTo1stCharged = Book1D("pantau_CellBasedInput_BDTVar_Combined_DeltaR1stNeutralTo1stCharged",m_sTauJetContainerName + "pantau_CellBasedInput_BDTVar_Combined_DeltaR1stNeutralTo1stCharged",30,0.,0.6);
 
+	m_pantau_eflowRecInput_isPanTauCandidate = Book1D("pantau_eflowRecInput_isPanTauCandidate",m_sTauJetContainerName + "pantau_eflowRecInput_isPanTauCandidate",2,0,2);
+	m_pantau_eflowRecInput_DecayMode = Book1D("pantau_eflowRecInput_DecayMode",m_sTauJetContainerName + "pantau_eflowRecInput_DecayMode",6,-0.5,5.5);
+	m_pantau_eflowRecInput_BDTValue_1p0n_vs_1p1n = Book1D("pantau_eflowRecInput_BDTValue_1p0n_vs_1p1n",m_sTauJetContainerName + "pantau_eflowRecInput_BDTValue_1p0n_vs_1p1n",30,-1.,1.);
+	m_pantau_eflowRecInput_BDTValue_1p1n_vs_1pXn = Book1D("pantau_eflowRecInput_BDTValue_1p1n_vs_1pXn",m_sTauJetContainerName + "pantau_eflowRecInput_BDTValue_1p1n_vs_1pXn",30,-1.,1.);
+	m_pantau_eflowRecInput_BDTValue_3p0n_vs_3pXn = Book1D("pantau_eflowRecInput_BDTValue_3p0n_vs_3pXn",m_sTauJetContainerName + "pantau_eflowRecInput_BDTValue_3p0n_vs_3pXn",30,-1.,1.);
+	m_pantau_eflowRecInput_BDTVar_Basic_NPi0NeutConsts = Book1D("pantau_eflowRecInput_BDTVar_Basic_NPi0NeutConsts",m_sTauJetContainerName + "pantau_eflowRecInput_BDTVar_Basic_NPi0NeutConsts",10.,-0.5,9.5);
+	m_pantau_eflowRecInput_BDTVar_Basic_NNeutralConsts = Book1D("pantau_eflowRecInput_BDTVar_Basic_NNeutralConsts",m_sTauJetContainerName + "pantau_eflowRecInput_BDTVar_Basic_NNeutralConsts",10.,-0.5,9.5);
+	m_pantau_eflowRecInput_BDTVar_Charged_Ratio_EtOverEtAllConsts = Book1D("pantau_eflowRecInput_BDTVar_Charged_Ratio_EtOverEtAllConsts",m_sTauJetContainerName + "pantau_eflowRecInput_BDTVar_Charged_Ratio_EtOverEtAllConsts",30,0.,1.);
+	m_pantau_eflowRecInput_BDTVar_Neutral_HLV_SumM = Book1D("pantau_eflowRecInput_BDTVar_Neutral_HLV_SumM",m_sTauJetContainerName + "pantau_eflowRecInput_BDTVar_Neutral_HLV_SumM",30,0.,6.);
+	m_pantau_eflowRecInput_BDTVar_Neutral_PID_BDTValues_EtSort_1 = Book1D("pantau_eflowRecInput_BDTVar_Neutral_PID_BDTValues_EtSort_1",m_sTauJetContainerName + "pantau_eflowRecInput_BDTVar_Neutral_PID_BDTValues_EtSort_1",30,-1.5,1.5);
+	m_pantau_eflowRecInput_BDTVar_Neutral_PID_BDTValues_BDTSort_2 = Book1D("pantau_eflowRecInput_BDTVar_Neutral_PID_BDTValues_BDTSort_2",m_sTauJetContainerName + "pantau_eflowRecInput_BDTVar_Neutral_PID_BDTValues_BDTSort_2",30,-1.5,1.5);
+	m_pantau_eflowRecInput_BDTVar_Neutral_Ratio_EtOverEtAllConsts = Book1D("pantau_eflowRecInput_BDTVar_Neutral_Ratio_EtOverEtAllConsts",m_sTauJetContainerName + "pantau_eflowRecInput_BDTVar_Neutral_Ratio_EtOverEtAllConsts",30,-0.5,1.2);
+	m_pantau_eflowRecInput_BDTVar_Neutral_Mean_DRToLeading_WrtEtAllConsts = Book1D("pantau_eflowRecInput_BDTVar_Neutral_Mean_DRToLeading_WrtEtAllConsts",m_sTauJetContainerName + "pantau_eflowRecInput_BDTVar_Neutral_Mean_DRToLeading_WrtEtAllConsts",30,-0.5,1.2);
+	m_pantau_eflowRecInput_BDTVar_Combined_DeltaR1stNeutralTo1stCharged = Book1D("pantau_eflowRecInput_BDTVar_Combined_DeltaR1stNeutralTo1stCharged",m_sTauJetContainerName + "pantau_eflowRecInput_BDTVar_Combined_DeltaR1stNeutralTo1stCharged",30,0.,0.6);
   }
     
     void RecoTauPlots::fill(const xAOD::TauJet& thisTau) {
 
 	//Access Particle Flow Object
 
+	/*+++++++++++++++++++++++++++++++++++++++++++++++++
+      +++++++++++++++++++EFLOW_REC+++++++++++++++++++++
+      +++++++++++++++++++++++++++++++++++++++++++++++++*/
+
+    //Charged Pions
+    // std::vector< ElementLink< xAOD::PFOContainer > > eflowRec_chargedPFO = thisTau.eflowRec_Charged_PFOLinks();
+    // std::vector< ElementLink< xAOD::PFOContainer > >::iterator first_eflowRec_chargedPFO = eflowRec_chargedPFO.begin();
+    // std::vector< ElementLink< xAOD::PFOContainer > >::iterator last_eflowRec_chargedPFO = eflowRec_chargedPFO.end();
+
+    // for (; first_eflowRec_chargedPFO != last_eflowRec_chargedPFO; ++first_eflowRec_chargedPFO){
+    //   ElementLink<xAOD::PFOContainer> thisLink = *first_eflowRec_chargedPFO;
+    //   const xAOD::PFO* thisPFO = *thisLink;
+    //   m_eflowRec_charPFO_Pt->Fill( thisPFO->pt()); 
+    //   m_eflowRec_charPFO_Eta->Fill( thisPFO->eta()); 
+    //   m_eflowRec_charPFO_Phi->Fill( thisPFO->phi()); 
+    //   m_eflowRec_charPFO_E->Fill( thisPFO->e());  
+    // } 
+    
+    // //Neutral Pions
+    // std::vector< ElementLink< xAOD::PFOContainer > > eflowRec_neutralPFO = thisTau.eflowRec_Neutral_PFOLinks();
+    // std::vector< ElementLink< xAOD::PFOContainer > >::iterator first_eflowRec_neutralPFO = eflowRec_neutralPFO.begin();
+    // std::vector< ElementLink< xAOD::PFOContainer > >::iterator last_eflowRec_neutralPFO = eflowRec_neutralPFO.end();
+    // for (; first_eflowRec_neutralPFO != last_eflowRec_neutralPFO; ++first_eflowRec_neutralPFO){
+    //   ElementLink<xAOD::PFOContainer> thisLink = *first_eflowRec_neutralPFO;
+    //   const xAOD::PFO* thisPFO = *thisLink;
+    //   m_eflowRec_neuPFO_Pt->Fill( thisPFO->pt()); 
+    //   m_eflowRec_neuPFO_Eta->Fill( thisPFO->eta()); 
+    //   m_eflowRec_neuPFO_Phi->Fill( thisPFO->phi()); 
+    //   m_eflowRec_neuPFO_E->Fill( thisPFO->e());  
+    //   m_eflowRec_neuPFO_bdtPi0Score->Fill(thisPFO->bdtPi0Score());
+    // } 
 
     /*+++++++++++++++++++++++++++++++++++++++++++++++++
       +++++++++++++++++++CellBased+++++++++++++++++++++
@@ -161,6 +245,35 @@ void RecoTauPlots::initializePlots(){
     m_pantau_CellBasedInput_BDTVar_Neutral_Shots_NPhotonsInSeed->Fill(panTauFloat);
     thisTau.panTauDetail( xAOD::TauJetParameters::PanTauDetails::PanTau_BDTVar_Combined_DeltaR1stNeutralTo1stCharged,panTauFloat);
     m_pantau_CellBasedInput_BDTVar_Combined_DeltaR1stNeutralTo1stCharged->Fill(panTauFloat);
+    // thisTau.panTauDetail( xAOD::TauJetParameters::PanTauDetails::pantau_eflowRecInput_isPanTauCandidate,panTauIntiger);
+    // m_pantau_eflowRecInput_isPanTauCandidate->Fill(panTauIntiger);
+    // thisTau.panTauDetail( xAOD::TauJetParameters::PanTauDetails::pantau_eflowRecInput_DecayMode,panTauIntiger);
+    // m_pantau_eflowRecInput_DecayMode->Fill(panTauIntiger);
+    // thisTau.panTauDetail( xAOD::TauJetParameters::PanTauDetails::pantau_eflowRecInput_BDTValue_1p0n_vs_1p1n,panTauFloat);
+    // m_pantau_eflowRecInput_BDTValue_1p0n_vs_1p1n->Fill(panTauFloat);
+    // thisTau.panTauDetail( xAOD::TauJetParameters::PanTauDetails::pantau_eflowRecInput_BDTValue_1p1n_vs_1pXn,panTauFloat);
+    // m_pantau_eflowRecInput_BDTValue_1p1n_vs_1pXn->Fill(panTauFloat);
+    // thisTau.panTauDetail( xAOD::TauJetParameters::PanTauDetails::pantau_eflowRecInput_BDTValue_3p0n_vs_3pXn,panTauFloat);
+    // m_pantau_eflowRecInput_BDTValue_3p0n_vs_3pXn->Fill(panTauFloat);
+    // thisTau.panTauDetail( xAOD::TauJetParameters::PanTauDetails::pantau_eflowRecInput_BDTVar_Basic_NPi0NeutConsts,panTauIntiger);
+    // m_pantau_eflowRecInput_BDTVar_Basic_NPi0NeutConsts->Fill(panTauIntiger);
+    // thisTau.panTauDetail( xAOD::TauJetParameters::PanTauDetails::pantau_eflowRecInput_BDTVar_Basic_NNeutralConsts,panTauIntiger);
+    // m_pantau_eflowRecInput_BDTVar_Basic_NNeutralConsts->Fill(panTauIntiger);
+    // thisTau.panTauDetail( xAOD::TauJetParameters::PanTauDetails::pantau_eflowRecInput_BDTVar_Charged_Ratio_EtOverEtAllConsts,panTauFloat);
+    // m_pantau_eflowRecInput_BDTVar_Charged_Ratio_EtOverEtAllConsts->Fill(panTauFloat);
+    // thisTau.panTauDetail( xAOD::TauJetParameters::PanTauDetails::pantau_eflowRecInput_BDTVar_Neutral_HLV_SumM,panTauFloat);
+    // m_pantau_eflowRecInput_BDTVar_Neutral_HLV_SumM->Fill(panTauFloat);
+    // thisTau.panTauDetail( xAOD::TauJetParameters::PanTauDetails::pantau_eflowRecInput_BDTVar_Neutral_PID_BDTValues_EtSort_1,panTauFloat);
+    // m_pantau_eflowRecInput_BDTVar_Neutral_PID_BDTValues_EtSort_1->Fill(panTauFloat);
+    // thisTau.panTauDetail( xAOD::TauJetParameters::PanTauDetails::pantau_eflowRecInput_BDTVar_Neutral_PID_BDTValues_BDTSort_2,panTauFloat);
+    // m_pantau_eflowRecInput_BDTVar_Neutral_PID_BDTValues_BDTSort_2->Fill(panTauFloat);
+    // thisTau.panTauDetail( xAOD::TauJetParameters::PanTauDetails::pantau_eflowRecInput_BDTVar_Neutral_Ratio_EtOverEtAllConsts,panTauFloat);
+    // m_pantau_eflowRecInput_BDTVar_Neutral_Ratio_EtOverEtAllConsts->Fill(panTauFloat);
+    // thisTau.panTauDetail( xAOD::TauJetParameters::PanTauDetails::pantau_eflowRecInput_BDTVar_Neutral_Mean_DRToLeading_WrtEtAllConsts,panTauFloat);
+    // m_pantau_eflowRecInput_BDTVar_Neutral_Mean_DRToLeading_WrtEtAllConsts->Fill(panTauFloat);
+    // thisTau.panTauDetail( xAOD::TauJetParameters::PanTauDetails::pantau_eflowRecInput_BDTVar_Combined_DeltaR1stNeutralTo1stCharged,panTauFloat);
+    // m_pantau_eflowRecInput_BDTVar_Combined_DeltaR1stNeutralTo1stCharged->Fill(panTauFloat);
+
  
     m_oParamPlots.fill(thisTau);
   }
diff --git a/Projects/AthSimulation/package_filters.txt b/Projects/AthSimulation/package_filters.txt
index baaffe3165f094db63e4c8cbf65ad19de17ce143..077d00503f8ec09f517e3005b844ed012edcbe88 100644
--- a/Projects/AthSimulation/package_filters.txt
+++ b/Projects/AthSimulation/package_filters.txt
@@ -350,6 +350,7 @@
 + Tracking/TrkEvent/TrkEventPrimitives
 + Tracking/TrkEvent/TrkNeutralParameters
 + Tracking/TrkEvent/TrkParametersBase
++ Tracking/TrkEvent/TrkTrackLink
 
 
 # Ignore everything else
diff --git a/Simulation/Digitization/python/DigiOutput.py b/Simulation/Digitization/python/DigiOutput.py
index a6f8823a038e5153014dea1687e623f2a5ddad6e..6e946e7d4c59fafe5716c4eac36766454c8f7b8d 100644
--- a/Simulation/Digitization/python/DigiOutput.py
+++ b/Simulation/Digitization/python/DigiOutput.py
@@ -131,9 +131,8 @@ def getStreamRDO_ItemList(log):
     # Calorimeter Output
     if DetFlags.digitize.LAr_on():
         if DetFlags.writeRDOPool.LAr_on():
-            if not digitizationFlags.PileUpPremixing:
-                StreamRDO_ItemList+=["LArRawChannelContainer#*"]
-            if 'AddCaloDigi' in digitizationFlags.experimentalDigi() or digitizationFlags.PileUpPremixing:
+            StreamRDO_ItemList+=["LArRawChannelContainer#*"]
+            if 'AddCaloDigi' in digitizationFlags.experimentalDigi():
                 StreamRDO_ItemList+=["LArDigitContainer#*"]
             else:
                 StreamRDO_ItemList+=["LArDigitContainer#LArDigitContainer_MC_Thinned"]
@@ -142,9 +141,8 @@ def getStreamRDO_ItemList(log):
             StreamRDO_ItemList+=["LArHitContainer#HGTDDigitContainer_MC"]
     if DetFlags.digitize.Tile_on():
         if DetFlags.writeRDOPool.Tile_on():
-            if not digitizationFlags.PileUpPremixing:
-                StreamRDO_ItemList+=["TileRawChannelContainer#*"]
-            if 'AddCaloDigi' in digitizationFlags.experimentalDigi() or digitizationFlags.PileUpPremixing:
+            StreamRDO_ItemList+=["TileRawChannelContainer#*"]
+            if 'AddCaloDigi' in digitizationFlags.experimentalDigi():
                 StreamRDO_ItemList+=["TileDigitsContainer#*"]
             else:
                 StreamRDO_ItemList+=["TileDigitsContainer#TileDigitsFlt"]
diff --git a/Simulation/FastSimulation/FastChainPileup/test/FastChainPileup_TestConfiguration.xml b/Simulation/FastSimulation/FastChainPileup/test/FastChainPileup_TestConfiguration.xml
index 6d425a494174c5261bfd154b18289c4da127bf98..5a95bc50ef1d1a8efcd0ce04214c19e3b30279cb 100644
--- a/Simulation/FastSimulation/FastChainPileup/test/FastChainPileup_TestConfiguration.xml
+++ b/Simulation/FastSimulation/FastChainPileup/test/FastChainPileup_TestConfiguration.xml
@@ -1,6 +1,4 @@
 <?xml version="1.0"?>
-<!--Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration-->
-
 <!-- MB: Search for RUNNUMBER to replace the run input collections and setting -->
 <!-- MB: xml file validation: http://www.hep.ucl.ac.uk/atlas/AtlasTesting/DTD/onlineValidation/validator.html -->
 <!-- <!DOCTYPE unifiedTestConfiguration SYSTEM "https://test-rtt.web.cern.ch/test-rtt/brinick/Results/unifiedTestConfiguration.dtd"> --> <!-- xmltest
@@ -34,9 +32,9 @@
 	      <!-- standard simulation + reco in FastChain -->
 	      <!-- full sim job -->
 	      <chainElement>
-		  <jobTransform userJobId="ttFC_stdFullSim">
+		  <jobTransform userJobId="ttbarFastChain_stdFullSim">
 		    <doc>FastChain standard sim</doc>
-		    <jobTransformJobName>ttFC_stdFullSim</jobTransformJobName>
+		    <jobTransformJobName>ttbarFastChain_stdFullSim</jobTransformJobName>
 		    <jobTransformCmd> 
 		      Sim_tf.py --conditionsTag 'default:OFLCOND-RUN12-SDR-19' --physicsList 'FTFP_BERT' --truthStrategy 'MC15aPlus' --simulator 'FullG4' --postInclude 'default:RecJobTransforms/UseFrontier.py,G4AtlasTests/postInclude.DCubeTest.py' --preInclude 'EVNTtoHITS:SimulationJobOptions/preInclude.BeamPipeKill.py,SimulationJobOptions/preInclude.FrozenShowersFCalOnly.py' --DataRunNumber '222525' --geometryVersion 'default:ATLAS-R2-2015-03-01-00_VALIDATION' --inputEVNTFile "/afs/cern.ch/atlas/groups/Simulation/EVNT_files/mc12_valid.110401.PowhegPythia_P2012_ttbar_nonallhad.evgen.EVNT.e3099.01517252._000001.pool.root.1" --outputHITSFile "Hits.pool.root" --maxEvents 10
 		    </jobTransformCmd>
@@ -49,9 +47,9 @@
 	      </chainElement>
 	      <!-- standard merge job -->
 	      <chainElement>
-		  <jobTransform userJobId="ttFC_stdFullSimMerge">
+		  <jobTransform userJobId="ttbarFastChain_stdFullSimMerge">
 		    <doc>FastChain standard sim</doc>
-		    <jobTransformJobName>ttFC_stdFullSimMerge</jobTransformJobName>
+		    <jobTransformJobName>ttbarFastChain_stdFullSimMerge</jobTransformJobName>
 		    <jobTransformCmd> 
 		      HITSMerge_tf.py --inputHITSFile='Hits.pool.root' --outputHITS_MRGFile='Merge.pool.root' --maxEvents=50 --skipEvents='0' --geometryVersion 'ATLAS-R2-2015-03-01-00' --conditionsTag 'OFLCOND-RUN12-SDR-19'
 		    </jobTransformCmd>
@@ -73,9 +71,9 @@
 	      </chainElement>
 	      <!-- standard digi job -->
 	      <chainElement>
-		  <jobTransform userJobId="ttFC_stdFullSimDigi">
+		  <jobTransform userJobId="ttbarFastChain_stdFullSimDigi">
 		    <doc>FastChain standard sim</doc>
-		    <jobTransformJobName>ttFC_stdFullSimDigi</jobTransformJobName>
+		    <jobTransformJobName>ttbarFastChain_stdFullSimDigi</jobTransformJobName>
 		    <jobTransformCmd> 
 		      Digi_tf.py --inputHITSFile 'Merge.pool.root' --outputRDOFile 'RDO.pool.root' --maxEvents '50' --skipEvents '0' --geometryVersion 'ATLAS-R2-2015-03-01-00' --digiSeedOffset1 '123456' --digiSeedOffset2 '2345678' --postInclude 'PyJobTransforms/UseFrontier.py' --AddCaloDigi 'False' --conditionsTag 'OFLCOND-RUN12-SDR-31'
 		    </jobTransformCmd>
@@ -96,9 +94,9 @@
 		  </chainfileout>
 	      </chainElement>
 	      <chainElement>
-		<jobTransform userJobId="ttFC_reco_noSplit_noPseudoT_stdFullSimDigi">
+		<jobTransform userJobId="ttbarFastChain_reco_noSplit_noPseudoTracking_stdFullSimDigi">
 		  <doc>FastChain reco</doc>
-		  <jobTransformJobName>ttFC_reco_noSplit_noPseudoT_stdFullSimDigi</jobTransformJobName>
+		  <jobTransformJobName>ttbarFastChain_reco_noSplit_noPseudoTracking_stdFullSimDigi</jobTransformJobName>
 		  <jobTransformCmd> 
 		      FastChain_tf.py --maxEvents 50 --skipEvents 0 --geometryVersion ATLAS-R2-2015-03-01-00 --conditionsTag OFLCOND-RUN12-SDR-31  --inputRDOFile RDO.pool.root --outputAODFile AOD_Split_stdFullSimDigi.pool.root --preExec "RAWtoESD:rec.doTrigger.set_Value_and_Lock(False);recAlgs.doTrigger.set_Value_and_Lock(False);from InDetRecExample.InDetJobProperties import InDetFlags;InDetFlags.doStandardPlots.set_Value_and_Lock(True);"
 		  </jobTransformCmd>
@@ -118,16 +116,114 @@
 		  AOD_Split_stdFullSimDigi.pool.root
 		</chainfileout>
 	      </chainElement>
+<!--	      <chainElement>
+		<jobTransform userJobId="1reg_20.20.3_vs_mig13_ttbarFastChain_reco_noSplit_noPseudoTracking_stdFullSimDigi">
+		  <doc>comparison with reference sample obtained using 20.20.3</doc>
+		  <jobTransformJobName>1reg_20.20.3_vs_mig13_ttbarFastChain_reco_noSplit_noPseudoTracking_stdFullSimDigi</jobTransformJobName>
+		  <jobTransformCmd>sim_reg_test.py ttbarFastChain_reco_noSplit_noPseudoTracking_stdFullSimDigi InDetStandardPlots.root</jobTransformCmd>
+		  <group>FastChainPileup</group>
+		  <queue>medium</queue>
+		  <test position="1">
+		    <modulename>RttLibraryTools</modulename>
+		    <testname>DCubeRunner</testname>
+		    <arg>
+		      <argname>DCubeCfg</argname>
+		      <argvalue>dcube_ttbarFastChain_reco_noSplit_noPseudoTracking_stdFullSimDigi.xml</argvalue>
+		    </arg>
+		    <arg>
+		      <argname>DCubeRef</argname>
+		      <argvalue>1InDetStandardPlots.root</argvalue>
+		    </arg>
+		    <arg>
+		      <argname>DCubeMon</argname>
+		      <argvalue>today.InDetStandardPlots.root</argvalue>
+		    </arg>
+		    <keepFilePattern>DCube-1InDetStandardPlots.root/today.InDetStandardPlots.root.dcube.xml.php</keepFilePattern>
+		  </test>
+		  <testToRemove>
+		      <jobGroupName>RTT:Top</jobGroupName>
+		      <testidentifier>CheckFileRunner0</testidentifier>
+		  </testToRemove>         
+		</jobTransform>
+	      </chainElement>-->
+	      <chainElement>
+		<jobTransform userJobId="1reg_20.20.X-VAL_vs_mig13_ttbarFastChain_reco_noSplit_noPseudoTracking_stdFullSimDigi">
+		  <doc>Regression test of FastChainPileup job ttbarFastChain_reco_noSplit_noPseudoTracking_stdFullSimDigi in releases 20.20.X-VAL vs mig13</doc>
+		  <jobTransformJobName>1reg_20.20.X-VAL_vs_mig13_ttbarFastChain_reco_noSplit_noPseudoTracking_stdFullSimDigi</jobTransformJobName>
+		  <jobTransformCmd>sim_reg_test_fastchain.py FastChainPileup 20.20.X-VAL ttbarFastChain_reco_noSplit_noPseudoTracking_stdFullSimDigi InDetStandardPlots.root FastChainPileup mig13 ttbarFastChain_reco_noSplit_noPseudoTracking_stdFullSimDigi InDetStandardPlots.root</jobTransformCmd>
+		  <group>FastChainPileup</group>
+		  <queue>medium</queue>
+		    <test position="1">
+		      <modulename>RttLibraryTools</modulename>
+		      <testname>DCubeRunner</testname>
+		      <arg>
+			<argname>DCubeCfg</argname>
+			<argvalue>dcube_ttbarFastChain_reco_noSplit_noPseudoTracking_stdFullSimDigi.xml</argvalue>
+		      </arg>
+		      <arg>
+			<argname>DCubeRef</argname>
+			<argvalue>yesterday.InDetStandardPlots.root</argvalue>
+		      </arg>
+		      <arg>
+			<argname>localRefFile</argname>
+			<argvalue>True</argvalue>
+		      </arg>
+		      <arg>
+			<argname>DCubeMon</argname>
+			<argvalue>today.InDetStandardPlots.root</argvalue>
+		      </arg>
+		      <keepFilePattern>DCube-yesterday.InDetStandardPlots.root/today.InDetStandardPlots.root.dcube.xml.php</keepFilePattern>
+		    </test>
+		    <testToRemove>
+			<jobGroupName>RTT:Top</jobGroupName>
+			<testidentifier>CheckFileRunner0</testidentifier>
+		    </testToRemove>		
+		</jobTransform>
+	      </chainElement> 
+<!--	      <chainElement>
+		<jobTransform userJobId="reg_20.20.X_vs_mig13_ttbarFastChain_reco_noSplit_noPseudoTracking_stdFullSimDigi">
+		  <doc>Regression test of FastChainPileup job ttbarFastChain_reco_noSplit_noPseudoTracking_stdFullSimDigi in releases 20.20.X vs mig13</doc>
+		  <jobTransformJobName>reg_20.20.X_vs_mig13_ttbarFastChain_reco_noSplit_noPseudoTracking_stdFullSimDigi</jobTransformJobName>
+		  <jobTransformCmd>sim_reg_test_fastchain.py FastChainPileup 20.20.X ttbarFastChain_reco_noSplit_noPseudoTracking_stdFullSimDigi InDetStandardPlots.root FastChainPileup mig13 ttbarFastChain_reco_noSplit_noPseudoTracking_stdFullSimDigi InDetStandardPlots.root</jobTransformCmd>
+		  <group>FastChainPileup</group>
+		  <queue>medium</queue>
+		    <test position="1">
+		      <modulename>RttLibraryTools</modulename>
+		      <testname>DCubeRunner</testname>
+		      <arg>
+			<argname>DCubeCfg</argname>
+			<argvalue>dcube_ttbarFastChain_reco_noSplit_noPseudoTracking_stdFullSimDigi.xml</argvalue>
+		      </arg>
+		      <arg>
+			<argname>DCubeRef</argname>
+			<argvalue>yesterday.InDetStandardPlots.root</argvalue>
+		      </arg>
+		      <arg>
+			<argname>localRefFile</argname>
+			<argvalue>True</argvalue>
+		      </arg>
+		      <arg>
+			<argname>DCubeMon</argname>
+			<argvalue>today.InDetStandardPlots.root</argvalue>
+		      </arg>
+		      <keepFilePattern>DCube-yesterday.InDetStandardPlots.root/today.InDetStandardPlots.root.dcube.xml.php</keepFilePattern>
+		    </test>
+		    <testToRemove>
+			<jobGroupName>RTT:Top</jobGroupName>
+			<testidentifier>CheckFileRunner0</testidentifier>
+		    </testToRemove>		
+		</jobTransform>
+	      </chainElement>-->
 	    </sequential>
 	    <!-- Run FastChain fast sim + full digi, then different reco jobs on its output and tests in parallel -->
 	    <sequential>
 	      <!-- Run FastChain fast sim + full digi -->
 	      <chainElement>
-		<jobTransform userJobId="ttFC_fastSim_fullDigi">
+		<jobTransform userJobId="ttbarFastChain_fastSim_fullDigi">
 		  <doc>FastChain simdigi</doc>
-		  <jobTransformJobName>ttFC_fastSim_fullDigi</jobTransformJobName>
+		  <jobTransformJobName>ttbarFastChain_fastSim_fullDigi</jobTransformJobName>
 		  <jobTransformCmd> 
-		      FastChain_tf.py --simulator ATLFASTIIF_PileUp --digiSteeringConf "SplitNoMerge" --useISF True --randomSeed 123 --enableLooperKiller True --inputEVNTFile /afs/cern.ch/atlas/offline/ProdData/16.6.X/16.6.7.Y/ttbar_muplusjets-pythia6-7000.evgen.pool.root --outputRDOFile RDO_pileup_fastsim_fulldigi.pool.root --maxEvents 500 --skipEvents 0 --geometryVersion ATLAS-R2-2015-03-01-00 --conditionsTag OFLCOND-RUN12-SDR-31 --preSimExec 'from TrkDetDescrSvc.TrkDetDescrJobProperties import TrkDetFlags;TrkDetFlags.TRT_BuildStrawLayers=True' --preSimInclude FastChainPileup/FastPileup.py --postInclude='PyJobTransforms/UseFrontier.py,G4AtlasTests/postInclude.DCubeTest_FCpileup.py,DigitizationTests/postInclude.RDO_Plots.py' --postExec 'from AthenaCommon.ConfigurationShelve import saveToAscii;saveToAscii("config.txt")' --DataRunNumber '284500' --postSimExec='genSeq.Pythia8.NCollPerEvent=10;'
+		      FastChain_tf.py --simulator ATLFASTIIF_PileUp --digiSteeringConf "SplitNoMerge" --useISF True --randomSeed 123 --enableLooperKiller True --inputEVNTFile /afs/cern.ch/atlas/offline/ProdData/16.6.X/16.6.7.Y/ttbar_muplusjets-pythia6-7000.evgen.pool.root --outputRDOFile RDO_pileup_fastsim_fulldigi.pool.root --maxEvents 500 --skipEvents 0 --geometryVersion ATLAS-R2-2015-03-01-00 --conditionsTag OFLCOND-RUN12-SDR-31 --preSimExec 'from TrkDetDescrSvc.TrkDetDescrJobProperties import TrkDetFlags;TrkDetFlags.TRT_BuildStrawLayers=True' --preSimInclude FastChainPileup/FastPileup.py --postInclude='PyJobTransforms/UseFrontier.py,G4AtlasTests/postInclude.DCubeTest_FCpileup.py,DigitizationTests/postInclude.RDO_Plots.py' --postExec 'from AthenaCommon.ConfigurationShelve import saveToAscii;saveToAscii("config.txt")' --DataRunNumber '222525' --postSimExec='genSeq.Pythia8.NCollPerEvent=10;' --ignorePatterns='G4TestAlg.Lucid.{5}FATAL.{8}LucidHitsTestTool.cxx:66\ \(StatusCode\ LucidHitsTestTool::processEvent\(\)\):\ code\ 0:\ evtStore\(\)->retrieve\(iter\)','FATAL\ message\ limit\ \(500\)\ reached\ for\ G4TestAlg.LucidHitsTestTool.'
 		  </jobTransformCmd>
 		  <group>FastChainPileup</group>
 		  <queue>medium</queue>
@@ -139,10 +235,10 @@
 	      <!-- Run tests & reco jobs in parallel -->
 	      <parallel>
 		<chainElement>
-		<jobTransform userJobId="ttFC_fastSim_fullDigi_Reg">
+		<jobTransform userJobId="ttbarFastChain_fastSim_fullDigi_Reg">
 		  <doc>Regression test between releases</doc>
-		  <jobTransformJobName>ttFC_fastSim_fullDigi_Reg</jobTransformJobName>
-		  <jobTransformCmd>sim_reg_test.py ttFC_fastSim_fullDigi RDO_truth.root RDO_pileup_fastsim_fulldigi.pool.root</jobTransformCmd>
+		  <jobTransformJobName>ttbarFastChain_fastSim_fullDigi_Reg</jobTransformJobName>
+		  <jobTransformCmd>sim_reg_test.py ttbarFastChain_fastSim_fullDigi RDO_truth.root RDO_pileup_fastsim_fulldigi.pool.root</jobTransformCmd>
 		  <group>FastChainPileup</group>
 		  <queue>long</queue>
 		  <test position="1">
@@ -166,10 +262,6 @@
 			<argname>DCubeCfg</argname>
 			<argvalue>dcube_RDO_truth_pileup.xml</argvalue>
 		      </arg>
-		      <arg>
-                        <argname>tolerateWARN</argname>
-                        <argvalue>True</argvalue>
-		      </arg>
 		      <arg>
 			<argname>DCubeRef</argname>
 			<argvalue>yesterday.RDO_truth.root</argvalue>
@@ -186,76 +278,157 @@
 		    </test>
 		  </jobTransform>
 		</chainElement>
-		<sequential>
-		  <chainElement>
-		    <jobTransform userJobId="ttFC_reco_noSplit_PseudoT_fastSim_fullDigi">
-		      <doc>FastChain reco</doc>
-		      <jobTransformJobName>ttFC_reco_noSplit_PseudoT_fastSim_fullDigi</jobTransformJobName>
-		      <jobTransformCmd> 
-			  FastChain_tf.py --maxEvents 500 --skipEvents 0 --geometryVersion ATLAS-R2-2015-03-01-00 --conditionsTag OFLCOND-RUN12-SDR-31  --inputRDOFile RDO_pileup_fastsim_fulldigi.pool.root --outputAODFile AOD_noSplit_pseudoTracking_fastSim_fullDigi.pool.root --preExec "RAWtoESD:from InDetRecExample.InDetJobProperties import InDetFlags;InDetFlags.doPseudoTracking.set_Value_and_Lock(True);rec.doTrigger.set_Value_and_Lock(False);recAlgs.doTrigger.set_Value_and_Lock(False);InDetFlags.doTrackSegmentsTRT.set_Value_and_Lock(True);" "InDetFlags.doStandardPlots.set_Value_and_Lock(True)"
-		      </jobTransformCmd>
-		      <group>FastChainPileup</group>
-		      <chaindataset_info>
-			  <jobTransformData />    
-			  <chaindatasetName>RDO_pileup_fastsim_fulldigi.pool.root</chaindatasetName>
-			  <!-- If the file on the previous line is not in the chain store, then use the following fallback file. -->
-			  <dataset_info>
-			      <jobTransformData />
-			      <datasetName>/afs/cern.ch/work/a/abasalae/public/FastChainRTT/fallbackRTT/RDO_pileup_fastsim_fulldigi.pool.root</datasetName>
-			  </dataset_info>
-		      </chaindataset_info>
-		      <queue>medium</queue>
-		    </jobTransform>
-		    <chainfileout>
-		      AOD_noSplit_PseudoT_fastSim_fullDigi.pool.root
-		    </chainfileout>
-		  </chainElement>
-		  <chainElement>
-		    <jobTransform userJobId="ttFC_reco_noSplit_PseudoT_fastSim_fullDigi_Reg">
-		      <doc>Regression test between releases</doc>
-		      <jobTransformJobName>ttFC_reco_noSplit_PseudoT_fastSim_fullDigi_Reg</jobTransformJobName>
-		      <jobTransformCmd>sim_reg_test.py ttFC_reco_noSplit_PseudoT_fastSim_fullDigi InDetStandardPlots.root</jobTransformCmd>
-		      <group>FastChainPileup</group>
-		      <queue>long</queue>
-			<test position="1">
-			  <modulename>RttLibraryTools</modulename>
-			  <testname>DCubeRunner</testname>
-			  <arg>
-			    <argname>DCubeCfg</argname>
-			    <argvalue>dcube_ttFC_reco_noSplit_PseudoT_fastSim_fullDigi_Reg.xml</argvalue>
-			  </arg>
-			  <arg>
-                            <argname>tolerateWARN</argname>
-                            <argvalue>True</argvalue>
-			  </arg>
-			  <arg>
-			    <argname>DCubeRef</argname>
-			    <argvalue>yesterday.InDetStandardPlots.root</argvalue>
-			  </arg>
-			  <arg>
-			    <argname>localRefFile</argname>
-			    <argvalue>True</argvalue>
-			  </arg>
-			  <arg>
-			    <argname>DCubeMon</argname>
-			    <argvalue>today.InDetStandardPlots.root</argvalue>
-			  </arg>
-			  <keepFilePattern>DCube-yesterday.InDetStandardPlots.root/today.InDetStandardPlots.root.dcube.xml.php</keepFilePattern>
-			</test>
-		      <testToRemove>
+		<!--<chainElement>
+		  <jobTransform userJobId="5reg_20.20.3_vs_mig13_ttbarFastChain_fastSim_fullDigi">
+		    <doc>comparison with reference sample obtained using 20.20.3</doc>
+		    <jobTransformJobName>5reg_20.20.3_vs_mig13_ttbarFastChain_fastSim_fullDigi</jobTransformJobName>
+		    <jobTransformCmd>sim_reg_test.py ttbarFastChain_fastSim_fullDigi RDO_truth.root</jobTransformCmd>
+		    <group>FastChainPileup</group>
+		    <queue>medium</queue>
+		    <test position="1">
+		      <modulename>RttLibraryTools</modulename>
+		      <testname>DCubeRunner</testname>
+		      <arg>
+			<argname>DCubeCfg</argname>
+			<argvalue>dcube_RDO_truth_pileup.xml</argvalue>
+		      </arg>
+		      <arg>
+			<argname>DCubeRef</argname>
+			<argvalue>5RDO_truth.root</argvalue>
+		      </arg>
+		      <arg>
+			<argname>DCubeMon</argname>
+			<argvalue>today.RDO_truth.root</argvalue>
+		      </arg>
+		      <keepFilePattern>DCube-5RDO_truth.root/today.RDO_truth.root.dcube.xml.php</keepFilePattern>
+		    </test>
+		    <testToRemove>
 			<jobGroupName>RTT:Top</jobGroupName>
 			<testidentifier>CheckFileRunner0</testidentifier>
-		      </testToRemove> 
-		      </jobTransform>
-		  </chainElement>
-		</sequential>
+		    </testToRemove>         
+		  </jobTransform>
+		</chainElement>-->
+		<chainElement>
+		  <jobTransform userJobId="5reg_20.20.X-VAL_vs_mig13_ttbarFastChain_fastSim_fullDigi">
+		    <doc>Regression test of FastChain sim + digi in releases 20.20.X-VAL vs mig13</doc>
+		    <jobTransformJobName>5reg_20.20.X-VAL_vs_mig13_ttbarFastChain_fastSim_fullDigi</jobTransformJobName>
+		    <jobTransformCmd>sim_reg_test_fastchain.py FastChainPileup 20.20.X-VAL ttbarFastChain_fastSim_fullDigi RDO_truth.root FastChainPileup mig13 ttbarFastChain_fastSim_fullDigi RDO_truth.root</jobTransformCmd>
+		    <group>FastChainPileup</group>
+		    <queue>medium</queue>
+		      <test position="1">
+			<modulename>RttLibraryTools</modulename>
+			<testname>DCubeRunner</testname>
+			<arg>
+			  <argname>DCubeCfg</argname>
+			  <argvalue>dcube_RDO_truth_pileup.xml</argvalue>
+			</arg>
+			<arg>
+			  <argname>DCubeRef</argname>
+			  <argvalue>yesterday.RDO_truth.root</argvalue>
+			</arg>
+			<arg>
+			  <argname>localRefFile</argname>
+			  <argvalue>True</argvalue>
+			</arg>
+			<arg>
+			  <argname>DCubeMon</argname>
+			  <argvalue>today.RDO_truth.root</argvalue>
+			</arg>
+			<keepFilePattern>DCube-yesterday.RDO_truth.root/today.RDO_truth.root.dcube.xml.php</keepFilePattern>
+		      </test>
+		      <testToRemove>
+			  <jobGroupName>RTT:Top</jobGroupName>
+			  <testidentifier>CheckFileRunner0</testidentifier>
+		      </testToRemove>		
+		  </jobTransform>
+		</chainElement>
+		<!--<chainElement>
+		  <jobTransform userJobId="reg_20.20.X_vs_mig13_ttbarFastChain_fastSim_fullDigi">
+		    <doc>Regression test of FastChain sim + digi in releases 20.20.X vs mig13</doc>
+		    <jobTransformJobName>reg_20.20.X_vs_mig13_ttbarFastChain_fastSim_fullDigi</jobTransformJobName>
+		    <jobTransformCmd>sim_reg_test_fastchain.py FastChainPileup 20.20.X ttbarFastChain_fastSim_fullDigi RDO_truth.root FastChainPileup mig13 ttbarFastChain_fastSim_fullDigi RDO_truth.root</jobTransformCmd>
+		    <group>FastChainPileup</group>
+		    <queue>medium</queue>
+		      <test position="1">
+			<modulename>RttLibraryTools</modulename>
+			<testname>DCubeRunner</testname>
+			<arg>
+			  <argname>DCubeCfg</argname>
+			  <argvalue>dcube_RDO_truth.xml</argvalue>
+			</arg>
+			<arg>
+			  <argname>DCubeRef</argname>
+			  <argvalue>yesterday.RDO_truth.root</argvalue>
+			</arg>
+			<arg>
+			  <argname>localRefFile</argname>
+			  <argvalue>True</argvalue>
+			</arg>
+			<arg>
+			  <argname>DCubeMon</argname>
+			  <argvalue>today.RDO_truth.root</argvalue>
+			</arg>
+			<keepFilePattern>DCube-yesterday.RDO_truth.root/today.RDO_truth.root.dcube.xml.php</keepFilePattern>
+		      </test>
+		      <testToRemove>
+			  <jobGroupName>RTT:Top</jobGroupName>
+			  <testidentifier>CheckFileRunner0</testidentifier>
+		      </testToRemove>		
+		  </jobTransform>
+		</chainElement>-->
+		<chainElement>
+		  <jobTransform userJobId="ttbarFastChain_reco_noSplit_pseudoTracking_fastSim_fullDigi">
+		    <doc>FastChain reco</doc>
+		    <jobTransformJobName>ttbarFastChain_reco_noSplit_pseudoTracking_fastSim_fullDigi</jobTransformJobName>
+		    <jobTransformCmd> 
+			FastChain_tf.py --maxEvents 500 --skipEvents 0 --geometryVersion ATLAS-R2-2015-03-01-00 --conditionsTag OFLCOND-RUN12-SDR-31  --inputRDOFile RDO_pileup_fastsim_fulldigi.pool.root --outputAODFile AOD_noSplit_pseudoTracking_fastSim_fullDigi.pool.root --preExec "RAWtoESD:from InDetRecExample.InDetJobProperties import InDetFlags;InDetFlags.doPseudoTracking.set_Value_and_Lock(True);rec.doTrigger.set_Value_and_Lock(False);recAlgs.doTrigger.set_Value_and_Lock(False);InDetFlags.doTrackSegmentsTRT.set_Value_and_Lock(True);" "InDetFlags.doStandardPlots.set_Value_and_Lock(True)"
+		    </jobTransformCmd>
+		    <group>FastChainPileup</group>
+		    <chaindataset_info>
+			<jobTransformData />    
+			<chaindatasetName>RDO_pileup_fastsim_fulldigi.pool.root</chaindatasetName>
+			<!-- If the file on the previous line is not in the chain store, then use the following fallback file. -->
+			<dataset_info>
+			    <jobTransformData />
+			    <datasetName>/afs/cern.ch/work/a/abasalae/public/FastChainRTT/fallbackRTT/RDO_pileup_fastsim_fulldigi.pool.root</datasetName>
+			</dataset_info>
+		    </chaindataset_info>
+		    <queue>medium</queue>
+		  </jobTransform>
+		  <chainfileout>
+		    AOD_noSplit_pseudoTracking_fastSim_fullDigi.pool.root
+		  </chainfileout>
+		</chainElement>
+		<chainElement>
+		  <jobTransform userJobId="ttbarFastChain_reco_noSplit_noPseudoTracking_fastSim_fullDigi">
+		    <doc>FastChain reco</doc>
+		    <jobTransformJobName>ttbarFastChain_reco_noSplit_noPseudoTracking_fastSim_fullDigi</jobTransformJobName>
+		    <jobTransformCmd> 
+			FastChain_tf.py --maxEvents 500 --skipEvents 0 --geometryVersion ATLAS-R2-2015-03-01-00 --conditionsTag OFLCOND-RUN12-SDR-31  --inputRDOFile RDO_pileup_fastsim_fulldigi.pool.root --outputAODFile AOD_noSplit_noPseudoTracking_fastSim_fullDigi.pool.root --preExec "RAWtoESD:rec.doTrigger.set_Value_and_Lock(False);recAlgs.doTrigger.set_Value_and_Lock(False);" "InDetFlags.doStandardPlots.set_Value_and_Lock(True)"
+		    </jobTransformCmd>
+		    <group>FastChainPileup</group>
+		    <chaindataset_info>
+			<jobTransformData />    
+			<chaindatasetName>RDO_pileup_fastsim_fulldigi.pool.root</chaindatasetName>
+			<!-- If the file on the previous line is not in the chain store, then use the following fallback file. -->
+			<dataset_info>
+			    <jobTransformData />
+			    <datasetName>/afs/cern.ch/work/a/abasalae/public/FastChainRTT/fallbackRTT/RDO_pileup_fastsim_fulldigi.pool.root</datasetName>
+			</dataset_info>
+		    </chaindataset_info>
+		    <queue>medium</queue>
+		  </jobTransform>
+		  <chainfileout>
+		    AOD_noSplit_noPseudoTracking_fastSim_fullDigi.pool.root
+		  </chainfileout>
+		</chainElement>
 		<sequential>
 		  <chainElement>
-		    <jobTransform userJobId="ttFC_reco_newTracking_PseudoT_fastSim_fullDigi">
+		    <jobTransform userJobId="ttbarFastChain_reco_Split_fastSim_fullDigi">
 		      <doc>FastChain reco</doc>
-		      <jobTransformJobName>ttFC_reco_newTracking_PseudoT_fastSim_fullDigi</jobTransformJobName>
+		      <jobTransformJobName>ttbarFastChain_reco_Split_fastSim_fullDigi</jobTransformJobName>
 		      <jobTransformCmd> 
-			  FastChain_tf.py --maxEvents 500 --skipEvents 0 --geometryVersion ATLAS-R2-2015-03-01-00 --conditionsTag OFLCOND-RUN12-SDR-31  --inputRDOFile RDO_pileup_fastsim_fulldigi.pool.root --outputAODFile AOD_newTracking_pseudoTracking_fastSim_fullDigi.pool.root --preExec "RAWtoESD:from InDetRecExample.InDetJobProperties import InDetFlags;InDetFlags.doPseudoTracking.set_Value_and_Lock(True);InDetFlags.doNewTracking.set_Value_and_Lock(True);rec.doTrigger.set_Value_and_Lock(False);recAlgs.doTrigger.set_Value_and_Lock(False);InDetFlags.doTrackSegmentsTRT.set_Value_and_Lock(True);" "InDetFlags.doStandardPlots.set_Value_and_Lock(True)"
+			  FastChain_tf.py --maxEvents 500 --skipEvents 0 --geometryVersion ATLAS-R2-2015-03-01-00 --conditionsTag OFLCOND-RUN12-SDR-31  --inputRDOFile RDO_pileup_fastsim_fulldigi.pool.root --outputAODFile AOD_Split_fastSim_fullDigi.pool.root --preExec "RAWtoESD:from InDetRecExample.InDetJobProperties import InDetFlags;InDetFlags.doSplitReco.set_Value_and_Lock(True);InDetFlags.doTrackSegmentsTRT.set_Value_and_Lock(True);InDetFlags.doStandardPlots.set_Value_and_Lock(True);rec.doTrigger.set_Value_and_Lock(False);recAlgs.doTrigger.set_Value_and_Lock(False);"
 		      </jobTransformCmd>
 		      <group>FastChainPileup</group>
 		      <chaindataset_info>
@@ -270,14 +443,16 @@
 		      <queue>medium</queue>
 		    </jobTransform>
 		    <chainfileout>
-		      AOD_newTracking_PseudoT_fastSim_fullDigi.pool.root
+		      AOD_Split_fastSim_fullDigi.pool.root
 		    </chainfileout>
 		  </chainElement>
-		  <chainElement>
-		      <jobTransform userJobId="ttFC_reco_newTracking_PseudoT_fastSim_fullDigi_Reg">
+		  <!--tests in parallel-->
+		  <parallel>
+		    <chainElement>
+		      <jobTransform userJobId="ttbarFastChain_reco_Split_fastSim_fullDigi_Reg">
 			<doc>Regression test between releases</doc>
-			<jobTransformJobName>ttFC_reco_newTracking_PseudoT_fastSim_fullDigi_Reg</jobTransformJobName>
-			<jobTransformCmd>sim_reg_test.py ttFC_reco_newTracking_PseudoT_fastSim_fullDigi InDetStandardPlots.root</jobTransformCmd>
+			<jobTransformJobName>ttbarFastChain_reco_Split_fastSim_fullDigi_Reg</jobTransformJobName>
+			<jobTransformCmd>sim_reg_test.py ttbarFastChain_reco_Split_fastSim_fullDigi InDetStandardPlots.root</jobTransformCmd>
 			<group>FastChainPileup</group>
 			<queue>long</queue>
 			  <test position="1">
@@ -285,11 +460,7 @@
 			    <testname>DCubeRunner</testname>
 			    <arg>
 			      <argname>DCubeCfg</argname>
-			      <argvalue>dcube_ttFC_reco_newTracking_PseudoT_fastSim_fullDigi_Reg.xml</argvalue>
-			    </arg>
-			    <arg>
-                              <argname>tolerateWARN</argname>
-                              <argvalue>True</argvalue>
+			      <argvalue>dcube_ttbarFastChain_reco_Split_fastSim_fullDigi_Reg.xml</argvalue>
 			    </arg>
 			    <arg>
 			      <argname>DCubeRef</argname>
@@ -310,113 +481,85 @@
 			  <testidentifier>CheckFileRunner0</testidentifier>
 			</testToRemove> 
 			</jobTransform>
-		   </chainElement>
-		</sequential>
-		<sequential>
-		  <chainElement>
-		    <jobTransform userJobId="ttFC_reco_noSplit_noPseudoT_fastSim_fullDigi">
-		      <doc>FastChain reco</doc>
-		      <jobTransformJobName>ttFC_reco_noSplit_noPseudoT_fastSim_fullDigi</jobTransformJobName>
-		      <jobTransformCmd> 
-			  FastChain_tf.py --maxEvents 500 --skipEvents 0 --geometryVersion ATLAS-R2-2015-03-01-00 --conditionsTag OFLCOND-RUN12-SDR-31  --inputRDOFile RDO_pileup_fastsim_fulldigi.pool.root --outputAODFile AOD_noSplit_noPseudoT_fastSim_fullDigi.pool.root --preExec "RAWtoESD:rec.doTrigger.set_Value_and_Lock(False);recAlgs.doTrigger.set_Value_and_Lock(False);" "InDetFlags.doStandardPlots.set_Value_and_Lock(True)"
-		      </jobTransformCmd>
-		      <group>FastChainPileup</group>
-		      <chaindataset_info>
-			  <jobTransformData />    
-			  <chaindatasetName>RDO_pileup_fastsim_fulldigi.pool.root</chaindatasetName>
-			  <!-- If the file on the previous line is not in the chain store, then use the following fallback file. -->
-			  <dataset_info>
-			      <jobTransformData />
-			      <datasetName>/afs/cern.ch/work/a/abasalae/public/FastChainRTT/fallbackRTT/RDO_pileup_fastsim_fulldigi.pool.root</datasetName>
-			  </dataset_info>
-		      </chaindataset_info>
-		      <queue>medium</queue>
-		    </jobTransform>
-		    <chainfileout>
-		      AOD_noSplit_noPseudoT_fastSim_fullDigi.pool.root
-		    </chainfileout>
-		  </chainElement>
-		  <chainElement>
-		    <jobTransform userJobId="ttFC_reco_noSplit_noPseudoT_fastSim_fullDigi_Reg">
-		      <doc>Regression test between releases</doc>
-		      <jobTransformJobName>ttFC_reco_noSplit_noPseudoT_fastSim_fullDigi_Reg</jobTransformJobName>
-		      <jobTransformCmd>sim_reg_test.py ttFC_reco_noSplit_noPseudoT_fastSim_fullDigi InDetStandardPlots.root</jobTransformCmd>
-		      <group>FastChainPileup</group>
-		      <queue>long</queue>
+		    </chainElement>
+		    <!--<chainElement>
+		      <jobTransform userJobId="2reg_20.20.3_vs_mig13_ttbarFastChain_reco_Split_fastSim_fullDigi">
+			<doc>comparison with reference sample obtained using 20.20.3</doc>
+			<jobTransformJobName>2reg_20.20.3_vs_mig13_ttbarFastChain_reco_Split_fastSim_fullDigi</jobTransformJobName>
+			<jobTransformCmd>sim_reg_test.py ttbarFastChain_reco_Split_fastSim_fullDigi InDetStandardPlots.root</jobTransformCmd>
+			<group>FastChainPileup</group>
+			<queue>medium</queue>
 			<test position="1">
 			  <modulename>RttLibraryTools</modulename>
 			  <testname>DCubeRunner</testname>
 			  <arg>
 			    <argname>DCubeCfg</argname>
-			    <argvalue>dcube_ttFC_reco_noSplit_noPseudoT_fastSim_fullDigi_Reg.xml</argvalue>
-			  </arg>
-			  <arg>
-                            <argname>tolerateWARN</argname>
-                            <argvalue>True</argvalue>
+			    <argvalue>dcube_ttbarFastChain_reco_Split_fastSim_fullDigi.xml</argvalue>
 			  </arg>
-
 			  <arg>
 			    <argname>DCubeRef</argname>
-			    <argvalue>yesterday.InDetStandardPlots.root</argvalue>
-			  </arg>
-			  <arg>
-			    <argname>localRefFile</argname>
-			    <argvalue>True</argvalue>
+			    <argvalue>2InDetStandardPlots.root</argvalue>
 			  </arg>
 			  <arg>
 			    <argname>DCubeMon</argname>
 			    <argvalue>today.InDetStandardPlots.root</argvalue>
 			  </arg>
-			  <keepFilePattern>DCube-yesterday.InDetStandardPlots.root/today.InDetStandardPlots.root.dcube.xml.php</keepFilePattern>
+			  <keepFilePattern>DCube-2InDetStandardPlots.root/today.InDetStandardPlots.root.dcube.xml.php</keepFilePattern>
 			</test>
-		      <testToRemove>
-			<jobGroupName>RTT:Top</jobGroupName>
-			<testidentifier>CheckFileRunner0</testidentifier>
-		      </testToRemove> 
+			<testToRemove>
+			    <jobGroupName>RTT:Top</jobGroupName>
+			    <testidentifier>CheckFileRunner0</testidentifier>
+			</testToRemove>         
 		      </jobTransform>
-		  </chainElement>
-		</sequential>
-		<sequential>
+		    </chainElement>-->
+		  </parallel>
 		  <chainElement>
-		    <jobTransform userJobId="ttFC_reco_Split_fastSim_fullDigi">
-		      <doc>FastChain reco</doc>
-		      <jobTransformJobName>ttFC_reco_Split_fastSim_fullDigi</jobTransformJobName>
-		      <jobTransformCmd> 
-			  FastChain_tf.py --maxEvents 500 --skipEvents 0 --geometryVersion ATLAS-R2-2015-03-01-00 --conditionsTag OFLCOND-RUN12-SDR-31  --inputRDOFile RDO_pileup_fastsim_fulldigi.pool.root --outputAODFile AOD_Split_fastSim_fullDigi.pool.root --preExec "RAWtoESD:from InDetRecExample.InDetJobProperties import InDetFlags;InDetFlags.doSplitReco.set_Value_and_Lock(True);InDetFlags.doTrackSegmentsTRT.set_Value_and_Lock(True);InDetFlags.doStandardPlots.set_Value_and_Lock(True);rec.doTrigger.set_Value_and_Lock(False);recAlgs.doTrigger.set_Value_and_Lock(False);"
-		      </jobTransformCmd>
+		    <jobTransform userJobId="2reg_20.20.X-VAL_vs_mig13_ttbarFastChain_reco_Split_fastSim_fullDigi">
+		      <doc>Regression test of FastChainPileup job ttbarFastChain_reco_Split_fastSim_fullDigi in releases 20.20.X-VAL vs mig13</doc>
+		      <jobTransformJobName>2reg_20.20.X-VAL_vs_mig13_ttbarFastChain_reco_Split_fastSim_fullDigi</jobTransformJobName>
+		      <jobTransformCmd>sim_reg_test_fastchain.py FastChainPileup 20.20.X-VAL ttbarFastChain_reco_Split_fastSim_fullDigi InDetStandardPlots.root FastChainPileup mig13 ttbarFastChain_reco_Split_fastSim_fullDigi InDetStandardPlots.root</jobTransformCmd>
 		      <group>FastChainPileup</group>
-		      <chaindataset_info>
-			  <jobTransformData />    
-			  <chaindatasetName>RDO_pileup_fastsim_fulldigi.pool.root</chaindatasetName>
-			  <!-- If the file on the previous line is not in the chain store, then use the following fallback file. -->
-			  <dataset_info>
-			      <jobTransformData />
-			      <datasetName>/afs/cern.ch/work/a/abasalae/public/FastChainRTT/fallbackRTT/RDO_pileup_fastsim_fulldigi.pool.root</datasetName>
-			  </dataset_info>
-		      </chaindataset_info>
 		      <queue>medium</queue>
+			<test position="1">
+			  <modulename>RttLibraryTools</modulename>
+			  <testname>DCubeRunner</testname>
+			  <arg>
+			    <argname>DCubeCfg</argname>
+			    <argvalue>dcube_ttbarFastChain_reco_Split_fastSim_fullDigi.xml</argvalue>
+			  </arg>
+			  <arg>
+			    <argname>DCubeRef</argname>
+			    <argvalue>yesterday.InDetStandardPlots.root</argvalue>
+			  </arg>
+			  <arg>
+			    <argname>localRefFile</argname>
+			    <argvalue>True</argvalue>
+			  </arg>
+			  <arg>
+			    <argname>DCubeMon</argname>
+			    <argvalue>today.InDetStandardPlots.root</argvalue>
+			  </arg>
+			  <keepFilePattern>DCube-yesterday.InDetStandardPlots.root/today.InDetStandardPlots.root.dcube.xml.php</keepFilePattern>
+			</test>
+			<testToRemove>
+			    <jobGroupName>RTT:Top</jobGroupName>
+			    <testidentifier>CheckFileRunner0</testidentifier>
+			</testToRemove>		
 		    </jobTransform>
-		    <chainfileout>
-		      AOD_Split_fastSim_fullDigi.pool.root
-		    </chainfileout>
 		  </chainElement>
-		  <chainElement>
-		    <jobTransform userJobId="ttFC_reco_Split_fastSim_fullDigi_Reg">
-		      <doc>Regression test between releases</doc>
-		      <jobTransformJobName>ttFC_reco_Split_fastSim_fullDigi_Reg</jobTransformJobName>
-		      <jobTransformCmd>sim_reg_test.py ttFC_reco_Split_fastSim_fullDigi InDetStandardPlots.root</jobTransformCmd>
+<!--		  <chainElement>
+		    <jobTransform userJobId="reg_20.20.X_vs_mig13_ttbarFastChain_reco_Split_fastSim_fullDigi">
+		      <doc>Regression test of FastChainPileup job ttbarFastChain_reco_Split_fastSim_fullDigi in releases 20.20.X vs mig13</doc>
+		      <jobTransformJobName>reg_20.20.X_vs_mig13_ttbarFastChain_reco_Split_fastSim_fullDigi</jobTransformJobName>
+		      <jobTransformCmd>sim_reg_test_fastchain.py FastChainPileup 20.20.X ttbarFastChain_reco_Split_fastSim_fullDigi InDetStandardPlots.root FastChainPileup mig13 ttbarFastChain_reco_Split_fastSim_fullDigi InDetStandardPlots.root</jobTransformCmd>
 		      <group>FastChainPileup</group>
-		      <queue>long</queue>
+		      <queue>medium</queue>
 			<test position="1">
 			  <modulename>RttLibraryTools</modulename>
 			  <testname>DCubeRunner</testname>
 			  <arg>
 			    <argname>DCubeCfg</argname>
-			    <argvalue>dcube_ttFC_reco_Split_fastSim_fullDigi_Reg.xml</argvalue>
-			  </arg>
-			  <arg>
-                            <argname>tolerateWARN</argname>
-                            <argvalue>True</argvalue>
+			    <argvalue>dcube_ttbarFastChain_reco_Split_fastSim_fullDigi.xml</argvalue>
 			  </arg>
 			  <arg>
 			    <argname>DCubeRef</argname>
@@ -432,18 +575,18 @@
 			  </arg>
 			  <keepFilePattern>DCube-yesterday.InDetStandardPlots.root/today.InDetStandardPlots.root.dcube.xml.php</keepFilePattern>
 			</test>
-		      <testToRemove>
-			<jobGroupName>RTT:Top</jobGroupName>
-			<testidentifier>CheckFileRunner0</testidentifier>
-		      </testToRemove> 
-		      </jobTransform>
-		  </chainElement>
+			<testToRemove>
+			    <jobGroupName>RTT:Top</jobGroupName>
+			    <testidentifier>CheckFileRunner0</testidentifier>
+			</testToRemove>		
+		    </jobTransform>
+		  </chainElement>-->
 		</sequential>
 		<sequential>
 		  <chainElement>
-		    <jobTransform userJobId="stdReco_fastSim_fullDigi">
+		    <jobTransform userJobId="standard_Reco_tf_fastSim_fullDigi">
 		      <doc>standard reco</doc>
-		      <jobTransformJobName>stdReco_fastSim_fullDigi</jobTransformJobName>
+		      <jobTransformJobName>standard_Reco_tf_fastSim_fullDigi</jobTransformJobName>
 		      <jobTransformCmd> 
 			  Reco_tf.py --inputRDOFile=RDO_pileup_fastsim_fulldigi.pool.root --outputAODFile=AOD_fastSim_fullDigi.pool.root --autoConfiguration=everything --maxEvents=500 --preExec "RAWtoESD:rec.doTrigger.set_Value_and_Lock(False);recAlgs.doTrigger.set_Value_and_Lock(False);InDetFlags.doStandardPlots.set_Value_and_Lock(True)"
 		      </jobTransformCmd>
@@ -463,132 +606,49 @@
 		      AOD_fastSim_fullDigi.pool.root
 		    </chainfileout>
 		  </chainElement>
-		</sequential>
-		<!-- END run reco jobs & tests in parallel -->
-	      </parallel>
-	    <!-- END Run FastChain fast sim + fast digi + reco and tests chain -->
-	    </sequential>
-	    <!-- Run FastChain full sim + full digi and tests -->
-	    <sequential>
-	      <chainElement>
-		<jobTransform userJobId="ttFC_fullSim_fullDigi">
-		  <doc>FastChain simdigi</doc>
-		  <jobTransformJobName>ttFC_fullSim_fullDigi</jobTransformJobName>
-		  <jobTransformCmd> 
-		      FastChain_tf.py --simulator ATLFASTII --digiSteeringConf "SplitNoMerge" --useISF True --randomSeed 123 --enableLooperKiller True --inputEVNTFile /afs/cern.ch/atlas/offline/ProdData/16.6.X/16.6.7.Y/ttbar_muplusjets-pythia6-7000.evgen.pool.root --outputRDOFile RDO_pileup_fullsim_fulldigi.pool.root --maxEvents 50 --skipEvents 0 --geometryVersion ATLAS-R2-2015-03-01-00 --conditionsTag OFLCOND-RUN12-SDR-31 --preSimExec 'from TrkDetDescrSvc.TrkDetDescrJobProperties import TrkDetFlags;TrkDetFlags.TRT_BuildStrawLayers=True' --postInclude='PyJobTransforms/UseFrontier.py,G4AtlasTests/postInclude.DCubeTest.py,DigitizationTests/postInclude.RDO_Plots.py' --postExec 'from AthenaCommon.ConfigurationShelve import saveToAscii;saveToAscii("config.txt")' --DataRunNumber '284500'
-		  </jobTransformCmd>
-		  <group>FastChainPileup</group>
-		  <queue>medium</queue>
-		</jobTransform>
-		<chainfileout>
-		  RDO_pileup_fullsim_fulldigi.pool.root
-		</chainfileout>
-	      </chainElement>
-	      <parallel>
-		<sequential>
-		  <chainElement>
-		    <jobTransform userJobId="ttFC_reco_noSplit_PseudoT_fullSim_fullDigi">
-		      <doc>FastChain reco</doc>
-		      <jobTransformJobName>ttFC_reco_noSplit_PseudoT_fullSim_fullDigi</jobTransformJobName>
-		      <jobTransformCmd> 
-			  FastChain_tf.py --maxEvents 500 --skipEvents 0 --geometryVersion ATLAS-R2-2015-03-01-00 --conditionsTag OFLCOND-RUN12-SDR-31  --inputRDOFile RDO_pileup_fullsim_fulldigi.pool.root --outputAODFile AOD_noSplit_pseudoTracking_fullSim_fullDigi.pool.root --preExec "RAWtoESD:from InDetRecExample.InDetJobProperties import InDetFlags;InDetFlags.doPseudoTracking.set_Value_and_Lock(True);rec.doTrigger.set_Value_and_Lock(False);recAlgs.doTrigger.set_Value_and_Lock(False);InDetFlags.doTrackSegmentsTRT.set_Value_and_Lock(True);" "InDetFlags.doStandardPlots.set_Value_and_Lock(True)"
-		      </jobTransformCmd>
+		  <!--<chainElement>
+		    <jobTransform userJobId="3reg_20.20.3-VAL_vs_mig13_standard_Reco_tf_fastSim_fullDigi">
+		      <doc>comparison with reference sample obtained using 20.20.3</doc>
+		      <jobTransformJobName>3reg_20.20.3-VAL_vs_mig13_standard_Reco_tf_fastSim_fullDigi</jobTransformJobName>
+		      <jobTransformCmd>sim_reg_test.py standard_Reco_tf_fastSim_fullDigi InDetStandardPlots.root</jobTransformCmd>
 		      <group>FastChainPileup</group>
-		      <chaindataset_info>
-			  <jobTransformData />    
-			  <chaindatasetName>RDO_pileup_fullsim_fulldigi.pool.root</chaindatasetName>
-			  <!-- If the file on the previous line is not in the chain store, then use the following fallback file. -->
-			  <dataset_info>
-			      <jobTransformData />
-			      <datasetName>/afs/cern.ch/work/a/abasalae/public/FastChainRTT/fallbackRTT/RDO_pileup_fullsim_fulldigi.pool.root</datasetName>
-			  </dataset_info>
-		      </chaindataset_info>
 		      <queue>medium</queue>
-		    </jobTransform>
-		    <chainfileout>
-		      AOD_noSplit_PseudoT_fullSim_fullDigi.pool.root
-		    </chainfileout>
-		  </chainElement>
-                  <chainElement>
-		    <jobTransform userJobId="ttFC_reco_noSplit_PseudoT_fullSim_fullDigi_Reg">
-		      <doc>Regression test between releases</doc>
-		      <jobTransformJobName>ttFC_reco_noSplit_PseudoT_fullSim_fullDigi_Reg</jobTransformJobName>
-		      <jobTransformCmd>sim_reg_test.py ttFC_reco_noSplit_PseudoT_fullSim_fullDigi InDetStandardPlots.root</jobTransformCmd>
-		      <group>FastChainPileup</group>
-		      <queue>long</queue>
-			<test position="1">
-			  <modulename>RttLibraryTools</modulename>
-			  <testname>DCubeRunner</testname>
-			  <arg>
-			    <argname>DCubeCfg</argname>
-			    <argvalue>dcube_ttFC_reco_noSplit_PseudoT_fullSim_fullDigi_Reg.xml</argvalue>
-			  </arg>
-			  <arg>
-                            <argname>tolerateWARN</argname>
-                            <argvalue>True</argvalue>
-			  </arg>
-			  <arg>
-			    <argname>DCubeRef</argname>
-			    <argvalue>yesterday.InDetStandardPlots.root</argvalue>
-			  </arg>
-			  <arg>
-			    <argname>localRefFile</argname>
-			    <argvalue>True</argvalue>
-			  </arg>
-			  <arg>
-			    <argname>DCubeMon</argname>
-			    <argvalue>today.InDetStandardPlots.root</argvalue>
-			  </arg>
-			  <keepFilePattern>DCube-yesterday.InDetStandardPlots.root/today.InDetStandardPlots.root.dcube.xml.php</keepFilePattern>
-			</test>
+		      <test position="1">
+			<modulename>RttLibraryTools</modulename>
+			<testname>DCubeRunner</testname>
+			<arg>
+			  <argname>DCubeCfg</argname>
+			  <argvalue>dcube_standard_Reco_tf_fastSim_fullDigi.xml</argvalue>
+			</arg>
+			<arg>
+			  <argname>DCubeRef</argname>
+			  <argvalue>3InDetStandardPlots.root</argvalue>
+			</arg>
+			<arg>
+			  <argname>DCubeMon</argname>
+			  <argvalue>today.InDetStandardPlots.root</argvalue>
+			</arg>
+			<keepFilePattern>DCube-3InDetStandardPlots.root/today.InDetStandardPlots.root.dcube.xml.php</keepFilePattern>
+		      </test>
 		      <testToRemove>
-			<jobGroupName>RTT:Top</jobGroupName>
-			<testidentifier>CheckFileRunner0</testidentifier>
-		      </testToRemove> 
-		      </jobTransform>
-		   </chainElement>
-		  </sequential>
-		  <sequential>
-		    <chainElement>
-		      <jobTransform userJobId="ttFC_reco_newTracking_PseudoT_fullSim_fullDigi">
-			<doc>FastChain reco</doc>
-			<jobTransformJobName>ttFC_reco_newTracking_PseudoT_fullSim_fullDigi</jobTransformJobName>
-			<jobTransformCmd> 
-			    FastChain_tf.py --maxEvents 500 --skipEvents 0 --geometryVersion ATLAS-R2-2015-03-01-00 --conditionsTag OFLCOND-RUN12-SDR-31  --inputRDOFile RDO_pileup_fullsim_fulldigi.pool.root --outputAODFile AOD_newTracking_pseudoTracking_fullSim_fullDigi.pool.root --preExec "RAWtoESD:from InDetRecExample.InDetJobProperties import InDetFlags;InDetFlags.doPseudoTracking.set_Value_and_Lock(True);InDetFlags.doNewTracking.set_Value_and_Lock(True);rec.doTrigger.set_Value_and_Lock(False);recAlgs.doTrigger.set_Value_and_Lock(False);InDetFlags.doTrackSegmentsTRT.set_Value_and_Lock(True);" "InDetFlags.doStandardPlots.set_Value_and_Lock(True)"
-			</jobTransformCmd>
-			<group>FastChainPileup</group>
-			<chaindataset_info>
-			    <jobTransformData />    
-			    <chaindatasetName>RDO_pileup_fullsim_fulldigi.pool.root</chaindatasetName>
-			    <!-- If the file on the previous line is not in the chain store, then use the following fallback file. -->
-			    <dataset_info>
-				<jobTransformData />
-				<datasetName>/afs/cern.ch/work/a/abasalae/public/FastChainRTT/fallbackRTT/RDO_pileup_fullsim_fulldigi.pool.root</datasetName>
-			    </dataset_info>
-			</chaindataset_info>
-			<queue>medium</queue>
-		      </jobTransform>
-		      <chainfileout>
-			AOD_newTracking_PseudoT_fullSim_fullDigi.pool.root
-		      </chainfileout>
-		    </chainElement>
-		    <chainElement>
-		    <jobTransform userJobId="ttFC_reco_newTracking_PseudoT_fullSim_fullDigi_Reg">
-		      <doc>Regression test between releases</doc>
-		      <jobTransformJobName>ttFC_reco_newTracking_PseudoT_fullSim_fullDigi_Reg</jobTransformJobName>
-		      <jobTransformCmd>sim_reg_test.py ttFC_reco_newTracking_PseudoT_fullSim_fullDigi InDetStandardPlots.root</jobTransformCmd>
+			  <jobGroupName>RTT:Top</jobGroupName>
+			  <testidentifier>CheckFileRunner0</testidentifier>
+		      </testToRemove>         
+		    </jobTransform>
+		  </chainElement>-->
+		  <chainElement>
+		    <jobTransform userJobId="3reg_20.20.X-VAL_vs_mig13_standard_Reco_tf_fastSim_fullDigi">
+		      <doc>Regression test of FastChainPileup job standard_Reco_tf_fastSim_fullDigi in releases 20.20.X-VAL vs mig13</doc>
+		      <jobTransformJobName>3reg_20.20.X-VAL_vs_mig13_standard_Reco_tf_fastSim_fullDigi</jobTransformJobName>
+		      <jobTransformCmd>sim_reg_test_fastchain.py FastChainPileup 20.20.X-VAL standard_Reco_tf_fastSim_fullDigi InDetStandardPlots.root FastChainPileup mig13 standard_Reco_tf_fastSim_fullDigi InDetStandardPlots.root</jobTransformCmd>
 		      <group>FastChainPileup</group>
-		      <queue>long</queue>
+		      <queue>medium</queue>
 			<test position="1">
 			  <modulename>RttLibraryTools</modulename>
 			  <testname>DCubeRunner</testname>
 			  <arg>
 			    <argname>DCubeCfg</argname>
-			    <argvalue>dcube_ttFC_reco_newTracking_PseudoT_fullSim_fullDigi_Reg.xml</argvalue>
-			  </arg>
-			  <arg>
-                            <argname>tolerateWARN</argname>
-                            <argvalue>True</argvalue>
+			    <argvalue>dcube_standard_Reco_tf_fastSim_fullDigi.xml</argvalue>
 			  </arg>
 			  <arg>
 			    <argname>DCubeRef</argname>
@@ -604,54 +664,25 @@
 			  </arg>
 			  <keepFilePattern>DCube-yesterday.InDetStandardPlots.root/today.InDetStandardPlots.root.dcube.xml.php</keepFilePattern>
 			</test>
-		      <testToRemove>
-			<jobGroupName>RTT:Top</jobGroupName>
-			<testidentifier>CheckFileRunner0</testidentifier>
-		      </testToRemove> 
-		      </jobTransform>
-		  </chainElement>
-		  </sequential>
-		  <sequential>
-		   <chainElement>
-		    <jobTransform userJobId="ttFC_reco_noSplit_noPseudoT_fullSim_fullDigi">
-		      <doc>FastChain reco</doc>
-		      <jobTransformJobName>ttFC_reco_noSplit_noPseudoT_fullSim_fullDigi</jobTransformJobName>
-		      <jobTransformCmd> 
-			  FastChain_tf.py --maxEvents 500 --skipEvents 0 --geometryVersion ATLAS-R2-2015-03-01-00 --conditionsTag OFLCOND-RUN12-SDR-31  --inputRDOFile RDO_pileup_fullsim_fulldigi.pool.root --outputAODFile AOD_noSplit_noPseudoT_fullSim_fullDigi.pool.root --preExec "RAWtoESD:rec.doTrigger.set_Value_and_Lock(False);recAlgs.doTrigger.set_Value_and_Lock(False);" "InDetFlags.doStandardPlots.set_Value_and_Lock(True)"
-		      </jobTransformCmd>
-		      <group>FastChainPileup</group>
-		      <chaindataset_info>
-			  <jobTransformData />    
-			  <chaindatasetName>RDO_pileup_fullsim_fulldigi.pool.root</chaindatasetName>
-			  <!-- If the file on the previous line is not in the chain store, then use the following fallback file. -->
-			  <dataset_info>
-			      <jobTransformData />
-			      <datasetName>/afs/cern.ch/work/a/abasalae/public/FastChainRTT/fallbackRTT/RDO_pileup_fullsim_fulldigi.pool.root</datasetName>
-			  </dataset_info>
-		      </chaindataset_info>
-		      <queue>medium</queue>
+			<testToRemove>
+			    <jobGroupName>RTT:Top</jobGroupName>
+			    <testidentifier>CheckFileRunner0</testidentifier>
+			</testToRemove>		
 		    </jobTransform>
-		    <chainfileout>
-		      AOD_noSplit_noPseudoT_fullSim_fullDigi.pool.root
-		    </chainfileout>
 		  </chainElement>
-		  <chainElement>
-		    <jobTransform userJobId="ttFC_reco_noSplit_noPseudoT_fullSim_fullDigi_Reg">
-		      <doc>Regression test between releases</doc>
-		      <jobTransformJobName>ttFC_reco_noSplit_noPseudoT_fullSim_fullDigi_Reg</jobTransformJobName>
-		      <jobTransformCmd>sim_reg_test.py ttFC_reco_noSplit_noPseudoT_fullSim_fullDigi InDetStandardPlots.root</jobTransformCmd>
+<!--		  <chainElement>
+		    <jobTransform userJobId="reg_20.20.X_vs_mig13_standard_Reco_tf_fastSim_fullDigi">
+		      <doc>Regression test of FastChainPileup job standard_Reco_tf_fastSim_fullDigi in releases 20.20.X vs mig13</doc>
+		      <jobTransformJobName>reg_20.20.X_vs_mig13_standard_Reco_tf_fastSim_fullDigi</jobTransformJobName>
+		      <jobTransformCmd>sim_reg_test_fastchain.py FastChainPileup 20.20.X standard_Reco_tf_fastSim_fullDigi InDetStandardPlots.root FastChainPileup mig13 standard_Reco_tf_fastSim_fullDigi InDetStandardPlots.root</jobTransformCmd>
 		      <group>FastChainPileup</group>
-		      <queue>long</queue>
+		      <queue>medium</queue>
 			<test position="1">
 			  <modulename>RttLibraryTools</modulename>
 			  <testname>DCubeRunner</testname>
 			  <arg>
 			    <argname>DCubeCfg</argname>
-			    <argvalue>dcube_ttFC_reco_noSplit_noPseudoT_fullSim_fullDigi_Reg.xml</argvalue>
-			  </arg>
-			  <arg>
-                            <argname>tolerateWARN</argname>
-                            <argvalue>True</argvalue>
+			    <argvalue>dcube_standard_Reco_tf_fastSim_fullDigi.xml</argvalue>
 			  </arg>
 			  <arg>
 			    <argname>DCubeRef</argname>
@@ -667,374 +698,338 @@
 			  </arg>
 			  <keepFilePattern>DCube-yesterday.InDetStandardPlots.root/today.InDetStandardPlots.root.dcube.xml.php</keepFilePattern>
 			</test>
-		      <testToRemove>
-			<jobGroupName>RTT:Top</jobGroupName>
-			<testidentifier>CheckFileRunner0</testidentifier>
-		      </testToRemove> 
-		      </jobTransform>
-		  </chainElement>
-		</sequential>
-		<chainElement>
-		  <jobTransform userJobId="stdReco_fullSim_fullDigi">
-		    <doc>standard reco</doc>
-		    <jobTransformJobName>stdReco_fullSim_fullDigi</jobTransformJobName>
-		    <jobTransformCmd> 
-			Reco_tf.py --inputRDOFile=RDO_pileup_fullsim_fulldigi.pool.root --outputAODFile=AOD_fullSim_fullDigi.pool.root --autoConfiguration=everything --maxEvents=500 --preExec "RAWtoESD:rec.doTrigger.set_Value_and_Lock(False);recAlgs.doTrigger.set_Value_and_Lock(False);InDetFlags.doStandardPlots.set_Value_and_Lock(True)"
-		    </jobTransformCmd>
-		    <group>FastChainPileup</group>
-		    <chaindataset_info>
-			<jobTransformData />    
-			<chaindatasetName>RDO_pileup_fullsim_fulldigi.pool.root</chaindatasetName>
-			<!-- If the file on the previous line is not in the chain store, then use the following fallback file. -->
-			<dataset_info>
-			    <jobTransformData />
-			    <datasetName>/afs/cern.ch/work/a/abasalae/public/FastChainRTT/fallbackRTT/RDO_pileup_fullsim_fulldigi.pool.root</datasetName>
-			</dataset_info>
-		    </chaindataset_info>
-		    <queue>medium</queue>
-		  </jobTransform>
-		  <chainfileout>
-		    AOD_fullSim_fullDigi.pool.root
-		  </chainfileout>
-		</chainElement>
-		<chainElement>
-		  <jobTransform userJobId="ttFC_fullSim_fullDigi_Reg">
-		    <doc>Regression test between releases</doc>
-		    <jobTransformJobName>ttFC_fullSim_fullDigi_Reg</jobTransformJobName>
-		    <jobTransformCmd>sim_reg_test.py ttFC_fullSim_fullDigi RDO_truth.root RDO_pileup_fullsim_fulldigi.pool.root</jobTransformCmd>
-		    <group>FastChainPileup</group>
-		    <queue>long</queue>
-		    <test position="1">
-		      <modulename>RttLibraryTools</modulename>
-		      <testname>DiffPoolFilesRunner</testname>
-		      <testidentifier>HITS_RegressionTestRunner</testidentifier>
-		      <arg>
-			<argname>fileName</argname>
-			<argvalue>today.RDO_pileup_fullsim_fulldigi.pool.root</argvalue>
-		      </arg>
-		      <arg>
-			<argname>refFileName</argname>
-			<argvalue>yesterday.RDO_pileup_fullsim_fulldigi.pool.root</argvalue>
-		      </arg>
-		      <keepFilePattern>today.RDO_pileup_fullsim_fulldigi.pool.root_yesterday.RDO_pileup_fullsim_fulldigi.pool.root.diffPool</keepFilePattern>
-		    </test>
-		    <test position="2">
-			<modulename>RttLibraryTools</modulename>
-			<testname>ExeRunner</testname>
-			<arg>
-			  <argname>exeName</argname>
-			  <argvalue>acmd.py</argvalue>
-			</arg>
-			<arg>
-			  <argname>exeParamString</argname>
-			  <argvalue>diff-root yesterday.RDO_pileup_fullsim_fulldigi.pool.root today.RDO_pileup_fullsim_fulldigi.pool.root --ignore-leaves RecoTimingObj_p1_EVNTtoHITS_timings RecoTimingObj_p1_HITStoRDO_timings RecoTimingObj_p1_RAWtoESD_timings ESDtoAOD_timings ESDtoAOD_mems RAWtoESD_mems RAWtoESD_timings RecoTimingObj_p1_RAWtoESD_mems</argvalue>
-			</arg>
-			<keepFilePattern>RttLibraryTools_ExeRunner.postprocessing.log</keepFilePattern>
-		      </test>
-		      <test position="3">
-			<modulename>RttLibraryTools</modulename>
-			<testname>DCubeRunner</testname>
-			<arg>
-			  <argname>DCubeCfg</argname>
-			  <argvalue>dcube_RDO_truth_nopileup.xml</argvalue>
-			</arg>
-			<arg>
-                          <argname>tolerateWARN</argname>
-                          <argvalue>True</argvalue>
-			</arg>
-			<arg>
-			  <argname>DCubeRef</argname>
-			  <argvalue>yesterday.RDO_truth.root</argvalue>
-			</arg>
-			<arg>
-			  <argname>localRefFile</argname>
-			  <argvalue>True</argvalue>
-			</arg>
-			<arg>
-			  <argname>DCubeMon</argname>
-			  <argvalue>today.RDO_truth.root</argvalue>
-			</arg>
-			<keepFilePattern>DCube-yesterday.RDO_truth.root/today.RDO_truth.root.dcube.xml.php</keepFilePattern>
-		      </test>
+			<testToRemove>
+			    <jobGroupName>RTT:Top</jobGroupName>
+			    <testidentifier>CheckFileRunner0</testidentifier>
+			</testToRemove>		
 		    </jobTransform>
-		  </chainElement>
+		  </chainElement>-->
+		</sequential>
+		<!-- END run reco jobs & tests in parallel -->
 	      </parallel>
-	    <!-- END Run FastChain full sim + full digi and tests -->
+	    <!-- END Run FastChain fast sim + fast digi + reco and tests chain -->
 	    </sequential>
-	    <!-- Run FastChain fast sim + fast digi + reco chain and tests -->
+	    <!-- Run FastChain full sim + full digi and tests -->
 	    <sequential>
 	      <chainElement>
-		<jobTransform userJobId="ttFC_fastSim_fastDigi">
+		<jobTransform userJobId="ttbarFastChain_fullSim_fullDigi">
 		  <doc>FastChain simdigi</doc>
-		  <jobTransformJobName>ttFC_fastSim_fastDigi</jobTransformJobName>
+		  <jobTransformJobName>ttbarFastChain_fullSim_fullDigi</jobTransformJobName>
 		  <jobTransformCmd> 
-		      FastChain_tf.py --simulator ATLFASTIIF_PileUp --digiSteeringConf "SplitNoMergeFF" --useISF True --randomSeed 123 --enableLooperKiller True --inputEVNTFile /afs/cern.ch/atlas/offline/ProdData/16.6.X/16.6.7.Y/ttbar_muplusjets-pythia6-7000.evgen.pool.root --outputRDOFile RDO_pileup_fastsim_fastdigi.pool.root --maxEvents 500 --skipEvents 0 --geometryVersion ATLAS-R2-2015-03-01-00 --conditionsTag OFLCOND-RUN12-SDR-31 --preSimExec 'from TrkDetDescrSvc.TrkDetDescrJobProperties import TrkDetFlags;TrkDetFlags.TRT_BuildStrawLayers=True' --preSimInclude FastChainPileup/FastPileup.py --postInclude='PyJobTransforms/UseFrontier.py,G4AtlasTests/postInclude.DCubeTest_FCpileup.py,DigitizationTests/postInclude.RDO_Plots.py' --postExec 'RAWtoESD:from AthenaCommon.ConfigurationShelve import saveToAscii;saveToAscii("config.txt")' --DataRunNumber '284500' --postSimExec='genSeq.Pythia8.NCollPerEvent=10;' --preDigiInclude="FastTRT_Digitization/preInclude.FastTRT_Digi.Validation.py"
+		      FastChain_tf.py --simulator ATLFASTII --digiSteeringConf "SplitNoMerge" --useISF True --randomSeed 123 --enableLooperKiller True --inputEVNTFile /afs/cern.ch/atlas/offline/ProdData/16.6.X/16.6.7.Y/ttbar_muplusjets-pythia6-7000.evgen.pool.root --outputRDOFile RDO_pileup_fullsim_fulldigi.pool.root --maxEvents 50 --skipEvents 0 --geometryVersion ATLAS-R2-2015-03-01-00 --conditionsTag OFLCOND-RUN12-SDR-31 --preSimExec 'from TrkDetDescrSvc.TrkDetDescrJobProperties import TrkDetFlags;TrkDetFlags.TRT_BuildStrawLayers=True' --postInclude='PyJobTransforms/UseFrontier.py,G4AtlasTests/postInclude.DCubeTest.py,DigitizationTests/postInclude.RDO_Plots.py' --postExec 'from AthenaCommon.ConfigurationShelve import saveToAscii;saveToAscii("config.txt")' --DataRunNumber '222525' --ignorePatterns='G4TestAlg.Lucid.{5}FATAL.{8}LucidHitsTestTool.cxx:66\ \(StatusCode\ LucidHitsTestTool::processEvent\(\)\):\ code\ 0:\ evtStore\(\)->retrieve\(iter\)','FATAL\ message\ limit\ \(500\)\ reached\ for\ G4TestAlg.LucidHitsTestTool.'
 		  </jobTransformCmd>
 		  <group>FastChainPileup</group>
 		  <queue>medium</queue>
 		</jobTransform>
 		<chainfileout>
-		  RDO_pileup_fastsim_fastdigi.pool.root
+		  RDO_pileup_fullsim_fulldigi.pool.root
 		</chainfileout>
 	      </chainElement>
 	      <parallel>
-		<sequential>
-		  <chainElement>
-		    <jobTransform userJobId="ttFC_reco_noSplit_noPseudoT_fastSim_fastDigi">
-		      <doc>FastChain reco</doc>
-		      <jobTransformJobName>ttFC_reco_noSplit_noPseudoT_fastSim_fastDigi</jobTransformJobName>
-		      <jobTransformCmd> 
-			  FastChain_tf.py --maxEvents 500 --skipEvents 0 --geometryVersion ATLAS-R2-2015-03-01-00 --conditionsTag OFLCOND-RUN12-SDR-31  --inputRDOFile RDO_pileup_fastsim_fastdigi.pool.root --outputAODFile AOD_noSplit_noPseudoT_fastSim_fastDigi.pool.root --preExec "RAWtoESD:rec.doTrigger.set_Value_and_Lock(False);recAlgs.doTrigger.set_Value_and_Lock(False);InDetFlags.pixelClusterSplittingType.set_Value_and_Lock(\"AnalogClus\");InDetFlags.doTIDE_Ambi.set_Value_and_Lock(False);InDetFlags.doStandardPlots.set_Value_and_Lock(True)"
-		      </jobTransformCmd>
-		      <group>FastChainPileup</group>
-		      <chaindataset_info>
-			  <jobTransformData />    
-			  <chaindatasetName>RDO_pileup_fastsim_fastdigi.pool.root</chaindatasetName>
-			  <!-- If the file on the previous line is not in the chain store, then use the following fallback file. -->
-			  <dataset_info>
-			      <jobTransformData />
-			      <datasetName>/afs/cern.ch/work/a/abasalae/public/FastChainRTT/fallbackRTT/RDO_pileup_fastsim_fastdigi.pool.root</datasetName>
-			  </dataset_info>
-		      </chaindataset_info>
-		      <queue>medium</queue>
-		    </jobTransform>
-		    <chainfileout>
-		      AOD_noSplit_noPseudoT_fastSim_fastDigi.pool.root
-		    </chainfileout>
-		  </chainElement>
-		  <chainElement>
-		    <jobTransform userJobId="ttFC_reco_noSplit_noPseudoT_fastSim_fastDigi_Reg">
-		      <doc>Regression test between releases</doc>
-		      <jobTransformJobName>ttFC_reco_noSplit_noPseudoT_fastSim_fastDigi_Reg</jobTransformJobName>
-		      <jobTransformCmd>sim_reg_test.py ttFC_reco_noSplit_noPseudoT_fastSim_fastDigi InDetStandardPlots.root</jobTransformCmd>
-		      <group>FastChainPileup</group>
-		      <queue>long</queue>
-			<test position="1">
-			  <modulename>RttLibraryTools</modulename>
-			  <testname>DCubeRunner</testname>
-			  <arg>
-			    <argname>DCubeCfg</argname>
-			    <argvalue>dcube_ttFC_reco_noSplit_noPseudoT_fastSim_fastDigi_Reg.xml</argvalue>
-			  </arg>
-			  <arg>
-                            <argname>tolerateWARN</argname>
-                            <argvalue>True</argvalue>
-			  </arg>
-			  <arg>
-			    <argname>DCubeRef</argname>
-			    <argvalue>yesterday.InDetStandardPlots.root</argvalue>
-			  </arg>
-			  <arg>
-			    <argname>localRefFile</argname>
-			    <argvalue>True</argvalue>
-			  </arg>
-			  <arg>
-			    <argname>DCubeMon</argname>
-			    <argvalue>today.InDetStandardPlots.root</argvalue>
-			  </arg>
-			  <keepFilePattern>DCube-yesterday.InDetStandardPlots.root/today.InDetStandardPlots.root.dcube.xml.php</keepFilePattern>
-			</test>
-		      <testToRemove>
+		<!--<chainElement>
+		  <jobTransform userJobId="6reg_20.20.3_vs_mig13_ttbarFastChain_fullSim_fullDigi">
+		    <doc>comparison with reference sample obtained using 20.20.3</doc>
+		    <jobTransformJobName>6reg_20.20.3_vs_mig13_ttbarFastChain_fullSim_fullDigi</jobTransformJobName>
+		    <jobTransformCmd>sim_reg_test.py ttbarFastChain_fullSim_fullDigi RDO_truth.root</jobTransformCmd>
+		    <group>FastChainPileup</group>
+		    <queue>medium</queue>
+		    <test position="1">
+		      <modulename>RttLibraryTools</modulename>
+		      <testname>DCubeRunner</testname>
+		      <arg>
+			<argname>DCubeCfg</argname>
+			<argvalue>dcube_RDO_truth_nopileup.xml</argvalue>
+		      </arg>
+		      <arg>
+			<argname>DCubeRef</argname>
+			<argvalue>6RDO_truth.root</argvalue>
+		      </arg>
+		      <arg>
+			<argname>DCubeMon</argname>
+			<argvalue>today.RDO_truth.root</argvalue>
+		      </arg>
+		      <keepFilePattern>DCube-6RDO_truth.root/today.RDO_truth.root.dcube.xml.php</keepFilePattern>
+		    </test>
+		    <testToRemove>
 			<jobGroupName>RTT:Top</jobGroupName>
 			<testidentifier>CheckFileRunner0</testidentifier>
-		      </testToRemove> 
-		      </jobTransform>
-		  </chainElement>
-		</sequential>
+		    </testToRemove>         
+		  </jobTransform>
+		</chainElement>-->
+		<chainElement>
+		  <jobTransform userJobId="6reg_20.20.X-VAL_vs_mig13_ttbarFastChain_fullSim_fullDigi">
+		    <doc>comparison with job in 20.20.X-VAL</doc>
+		    <jobTransformJobName>6reg_20.20.X-VAL_vs_mig13_ttbarFastChain_fullSim_fullDigi</jobTransformJobName>
+		    <jobTransformCmd>sim_reg_test_fastchain.py FastChainPileup 20.20.X-VAL ttbarFastChain_fullSim_fullDigi RDO_truth.root FastChainPileup mig13 ttbarFastChain_fullSim_fullDigi RDO_truth.root</jobTransformCmd>
+		    <group>FastChainPileup</group>
+		    <queue>medium</queue>
+		    <test position="1">
+		      <modulename>RttLibraryTools</modulename>
+		      <testname>DCubeRunner</testname>
+		      <arg>
+			<argname>DCubeCfg</argname>
+			<argvalue>dcube_RDO_truth_nopileup.xml</argvalue>
+		      </arg>
+		      <arg>
+			<argname>DCubeRef</argname>
+			<argvalue>yesterday.RDO_truth.root</argvalue>
+		      </arg>
+		      <arg>
+			<argname>localRefFile</argname>
+			<argvalue>True</argvalue>
+		      </arg>
+		      <arg>
+			<argname>DCubeMon</argname>
+			<argvalue>today.RDO_truth.root</argvalue>
+		      </arg>
+		      <keepFilePattern>DCube-yesterday.RDO_truth.root/today.RDO_truth.root.dcube.xml.php</keepFilePattern>
+		    </test>
+		    <testToRemove>
+			<jobGroupName>RTT:Top</jobGroupName>
+			<testidentifier>CheckFileRunner0</testidentifier>
+		    </testToRemove>         
+		  </jobTransform>
+		</chainElement>
 		<sequential>
 		  <chainElement>
-		    <jobTransform userJobId="ttFC_reco_noSplit_PseudoT_fastSim_fastDigi">
+		    <jobTransform userJobId="ttbarFastChain_reco_noSplit_pseudoTracking_fullSim_fullDigi">
 		      <doc>FastChain reco</doc>
-		      <jobTransformJobName>ttFC_reco_noSplit_PseudoT_fastSim_fastDigi</jobTransformJobName>
+		      <jobTransformJobName>ttbarFastChain_reco_noSplit_pseudoTracking_fullSim_fullDigi</jobTransformJobName>
 		      <jobTransformCmd> 
-			  FastChain_tf.py --maxEvents 500 --skipEvents 0 --geometryVersion ATLAS-R2-2015-03-01-00 --conditionsTag OFLCOND-RUN12-SDR-31  --inputRDOFile RDO_pileup_fastsim_fastdigi.pool.root --outputAODFile AOD_noSplit_pseudoTracking_fastSim_fastDigi.pool.root --preExec "RAWtoESD:rec.doTrigger.set_Value_and_Lock(False);recAlgs.doTrigger.set_Value_and_Lock(False);InDetFlags.pixelClusterSplittingType.set_Value_and_Lock(\"AnalogClus\");InDetFlags.doTIDE_Ambi.set_Value_and_Lock(False);InDetFlags.doStandardPlots.set_Value_and_Lock(True);InDetFlags.doPseudoTracking.set_Value_and_Lock(True);"
+			  FastChain_tf.py --maxEvents 500 --skipEvents 0 --geometryVersion ATLAS-R2-2015-03-01-00 --conditionsTag OFLCOND-RUN12-SDR-31  --inputRDOFile RDO_pileup_fullsim_fulldigi.pool.root --outputAODFile AOD_noSplit_pseudoTracking_fullSim_fullDigi.pool.root --preExec "RAWtoESD:from InDetRecExample.InDetJobProperties import InDetFlags;InDetFlags.doPseudoTracking.set_Value_and_Lock(True);rec.doTrigger.set_Value_and_Lock(False);recAlgs.doTrigger.set_Value_and_Lock(False);InDetFlags.doTrackSegmentsTRT.set_Value_and_Lock(True);" "InDetFlags.doStandardPlots.set_Value_and_Lock(True)"
 		      </jobTransformCmd>
 		      <group>FastChainPileup</group>
 		      <chaindataset_info>
 			  <jobTransformData />    
-			  <chaindatasetName>RDO_pileup_fastsim_fastdigi.pool.root</chaindatasetName>
+			  <chaindatasetName>RDO_pileup_fullsim_fulldigi.pool.root</chaindatasetName>
 			  <!-- If the file on the previous line is not in the chain store, then use the following fallback file. -->
 			  <dataset_info>
 			      <jobTransformData />
-			      <datasetName>/afs/cern.ch/work/a/abasalae/public/FastChainRTT/fallbackRTT/RDO_pileup_fastsim_fastdigi.pool.root</datasetName>
+			      <datasetName>/afs/cern.ch/work/a/abasalae/public/FastChainRTT/fallbackRTT/RDO_pileup_fullsim_fulldigi.pool.root</datasetName>
 			  </dataset_info>
 		      </chaindataset_info>
 		      <queue>medium</queue>
 		    </jobTransform>
 		    <chainfileout>
-		      AOD_noSplit_PseudoT_fastSim_fastDigi.pool.root
+		      AOD_noSplit_pseudoTracking_fullSim_fullDigi.pool.root
 		    </chainfileout>
 		  </chainElement>
-		  <chainElement>
-		    <jobTransform userJobId="ttFC_reco_noSplit_PseudoT_fastSim_fastDigi_Reg">
-		      <doc>Regression test between releases</doc>
-		      <jobTransformJobName>ttFC_reco_noSplit_PseudoT_fastSim_fastDigi_Reg</jobTransformJobName>
-		      <jobTransformCmd>sim_reg_test.py ttFC_reco_noSplit_PseudoT_fastSim_fastDigi InDetStandardPlots.root</jobTransformCmd>
+		  <!--<chainElement>
+		    <jobTransform userJobId="4reg_20.20.3_vs_mig13_ttbarFastChain_reco_noSplit_pseudoTracking_fullSim_fullDigi">
+		      <doc>comparison with reference sample obtained using 20.20.3</doc>
+		      <jobTransformJobName>4reg_20.20.3_vs_mig13_ttbarFastChain_reco_noSplit_pseudoTracking_fullSim_fullDigi</jobTransformJobName>
+		      <jobTransformCmd>sim_reg_test.py ttbarFastChain_reco_noSplit_pseudoTracking_fullSim_fullDigi InDetStandardPlots.root</jobTransformCmd>
 		      <group>FastChainPileup</group>
-		      <queue>long</queue>
-			<test position="1">
-			  <modulename>RttLibraryTools</modulename>
-			  <testname>DCubeRunner</testname>
-			  <arg>
-			    <argname>DCubeCfg</argname>
-			    <argvalue>dcube_ttFC_reco_noSplit_PseudoT_fastSim_fastDigi_Reg.xml</argvalue>
-			  </arg>
-			  <arg>
-                            <argname>tolerateWARN</argname>
-                            <argvalue>True</argvalue>
-			  </arg>
-			  <arg>
-			    <argname>DCubeRef</argname>
-			    <argvalue>yesterday.InDetStandardPlots.root</argvalue>
-			  </arg>
-			  <arg>
-			    <argname>localRefFile</argname>
-			    <argvalue>True</argvalue>
-			  </arg>
-			  <arg>
-			    <argname>DCubeMon</argname>
-			    <argvalue>today.InDetStandardPlots.root</argvalue>
-			  </arg>
-			  <keepFilePattern>DCube-yesterday.InDetStandardPlots.root/today.InDetStandardPlots.root.dcube.xml.php</keepFilePattern>
-			</test>
+		      <queue>medium</queue>
+		      <test position="1">
+			<modulename>RttLibraryTools</modulename>
+			<testname>DCubeRunner</testname>
+			<arg>
+			  <argname>DCubeCfg</argname>
+			  <argvalue>dcube_ttbarFastChain_reco_noSplit_pseudoTracking_fullSim_fullDigi.xml</argvalue>
+			</arg>
+			<arg>
+			  <argname>DCubeRef</argname>
+			  <argvalue>4InDetStandardPlots.root</argvalue>
+			</arg>
+			<arg>
+			  <argname>DCubeMon</argname>
+			  <argvalue>today.InDetStandardPlots.root</argvalue>
+			</arg>
+			<keepFilePattern>DCube-4InDetStandardPlots.root/today.InDetStandardPlots.root.dcube.xml.php</keepFilePattern>
+		      </test>
 		      <testToRemove>
-			<jobGroupName>RTT:Top</jobGroupName>
-			<testidentifier>CheckFileRunner0</testidentifier>
-		      </testToRemove> 
+			  <jobGroupName>RTT:Top</jobGroupName>
+			  <testidentifier>CheckFileRunner0</testidentifier>
+		      </testToRemove>         
+		    </jobTransform>
+		  </chainElement>-->
+		  <chainElement>
+		      <jobTransform userJobId="4reg_20.20.X-VAL_vs_mig13_ttbarFastChain_reco_noSplit_pseudoTracking_fullSim_fullDigi">
+			<doc>Regression test of FastChainPileup job ttbarFastChain_reco_noSplit_pseudoTracking_fullSim_fullDigi in releases 20.20.X-VAL vs mig13</doc>
+			<jobTransformJobName>4reg_20.20.X-VAL_vs_mig13_ttbarFastChain_reco_noSplit_pseudoTracking_fullSim_fullDigi</jobTransformJobName>
+			<jobTransformCmd>sim_reg_test_fastchain.py FastChainPileup 20.20.X-VAL ttbarFastChain_reco_noSplit_pseudoTracking_fullSim_fullDigi InDetStandardPlots.root FastChainPileup mig13 ttbarFastChain_reco_noSplit_pseudoTracking_fullSim_fullDigi InDetStandardPlots.root</jobTransformCmd>
+			<group>FastChainPileup</group>
+			<queue>medium</queue>
+			  <test position="1">
+			    <modulename>RttLibraryTools</modulename>
+			    <testname>DCubeRunner</testname>
+			    <arg>
+			      <argname>DCubeCfg</argname>
+			      <argvalue>dcube_ttbarFastChain_reco_noSplit_pseudoTracking_fullSim_fullDigi.xml</argvalue>
+			    </arg>
+			    <arg>
+			      <argname>DCubeRef</argname>
+			      <argvalue>yesterday.InDetStandardPlots.root</argvalue>
+			    </arg>
+			    <arg>
+			      <argname>localRefFile</argname>
+			      <argvalue>True</argvalue>
+			    </arg>
+			    <arg>
+			      <argname>DCubeMon</argname>
+			      <argvalue>today.InDetStandardPlots.root</argvalue>
+			    </arg>
+			    <keepFilePattern>DCube-yesterday.InDetStandardPlots.root/today.InDetStandardPlots.root.dcube.xml.php</keepFilePattern>
+			  </test>
+			  <testToRemove>
+			      <jobGroupName>RTT:Top</jobGroupName>
+			      <testidentifier>CheckFileRunner0</testidentifier>
+			  </testToRemove>		
+		      </jobTransform>
+		    </chainElement>
+<!--		    <chainElement>
+		      <jobTransform userJobId="reg_20.20.X_vs_mig13_ttbarFastChain_reco_noSplit_pseudoTracking_fullSim_fullDigi">
+			<doc>Regression test of FastChainPileup job ttbarFastChain_reco_noSplit_pseudoTracking_fullSim_fullDigi in releases 20.20.X vs mig13</doc>
+			<jobTransformJobName>reg_20.20.X_vs_mig13_ttbarFastChain_reco_noSplit_pseudoTracking_fullSim_fullDigi</jobTransformJobName>
+			<jobTransformCmd>sim_reg_test_fastchain.py FastChainPileup 20.20.X ttbarFastChain_reco_noSplit_pseudoTracking_fullSim_fullDigi InDetStandardPlots.root FastChainPileup mig13 ttbarFastChain_reco_noSplit_pseudoTracking_fullSim_fullDigi InDetStandardPlots.root</jobTransformCmd>
+			<group>FastChainPileup</group>
+			<queue>medium</queue>
+			  <test position="1">
+			    <modulename>RttLibraryTools</modulename>
+			    <testname>DCubeRunner</testname>
+			    <arg>
+			      <argname>DCubeCfg</argname>
+			      <argvalue>dcube_ttbarFastChain_reco_noSplit_pseudoTracking_fullSim_fullDigi.xml</argvalue>
+			    </arg>
+			    <arg>
+			      <argname>DCubeRef</argname>
+			      <argvalue>yesterday.InDetStandardPlots.root</argvalue>
+			    </arg>
+			    <arg>
+			      <argname>localRefFile</argname>
+			      <argvalue>True</argvalue>
+			    </arg>
+			    <arg>
+			      <argname>DCubeMon</argname>
+			      <argvalue>today.InDetStandardPlots.root</argvalue>
+			    </arg>
+			    <keepFilePattern>DCube-yesterday.InDetStandardPlots.root/today.InDetStandardPlots.root.dcube.xml.php</keepFilePattern>
+			  </test>
+			  <testToRemove>
+			      <jobGroupName>RTT:Top</jobGroupName>
+			      <testidentifier>CheckFileRunner0</testidentifier>
+			  </testToRemove>		
 		      </jobTransform>
-		  </chainElement>
-		</sequential>
-		<sequential>
-		  <chainElement>
-		    <jobTransform userJobId="ttFC_reco_newTracking_PseudoT_fastSim_fastDigi">
+		    </chainElement>-->
+		  </sequential>
+		  <sequential>
+		    <chainElement>
+		    <jobTransform userJobId="ttbarFastChain_reco_noSplit_noPseudoTracking_fullSim_fullDigi">
 		      <doc>FastChain reco</doc>
-		      <jobTransformJobName>ttFC_reco_newTracking_PseudoT_fastSim_fastDigi</jobTransformJobName>
+		      <jobTransformJobName>ttbarFastChain_reco_noSplit_noPseudoTracking_fullSim_fullDigi</jobTransformJobName>
 		      <jobTransformCmd> 
-			  FastChain_tf.py --maxEvents 500 --skipEvents 0 --geometryVersion ATLAS-R2-2015-03-01-00 --conditionsTag OFLCOND-RUN12-SDR-31  --inputRDOFile RDO_pileup_fastsim_fastdigi.pool.root --outputAODFile AOD_newTracking_pseudoTracking_fastSim_fastDigi.pool.root --preExec "RAWtoESD:rec.doTrigger.set_Value_and_Lock(False);recAlgs.doTrigger.set_Value_and_Lock(False);InDetFlags.pixelClusterSplittingType.set_Value_and_Lock(\"AnalogClus\");InDetFlags.doTIDE_Ambi.set_Value_and_Lock(False);InDetFlags.doStandardPlots.set_Value_and_Lock(True);InDetFlags.doPseudoTracking.set_Value_and_Lock(True);InDetFlags.doNewTracking.set_Value_and_Lock(True);"
+			  FastChain_tf.py --maxEvents 500 --skipEvents 0 --geometryVersion ATLAS-R2-2015-03-01-00 --conditionsTag OFLCOND-RUN12-SDR-31  --inputRDOFile RDO_pileup_fullsim_fulldigi.pool.root --outputAODFile AOD_noSplit_noPseudoTracking_fullSim_fullDigi.pool.root --preExec "RAWtoESD:rec.doTrigger.set_Value_and_Lock(False);recAlgs.doTrigger.set_Value_and_Lock(False);" "InDetFlags.doStandardPlots.set_Value_and_Lock(True)"
 		      </jobTransformCmd>
 		      <group>FastChainPileup</group>
 		      <chaindataset_info>
 			  <jobTransformData />    
-			  <chaindatasetName>RDO_pileup_fastsim_fastdigi.pool.root</chaindatasetName>
+			  <chaindatasetName>RDO_pileup_fullsim_fulldigi.pool.root</chaindatasetName>
 			  <!-- If the file on the previous line is not in the chain store, then use the following fallback file. -->
 			  <dataset_info>
 			      <jobTransformData />
-			      <datasetName>/afs/cern.ch/work/a/abasalae/public/FastChainRTT/fallbackRTT/RDO_pileup_fastsim_fastdigi.pool.root</datasetName>
+			      <datasetName>/afs/cern.ch/work/a/abasalae/public/FastChainRTT/fallbackRTT/RDO_pileup_fullsim_fulldigi.pool.root</datasetName>
 			  </dataset_info>
 		      </chaindataset_info>
 		      <queue>medium</queue>
 		    </jobTransform>
 		    <chainfileout>
-		      AOD_newTracking_PseudoT_fastSim_fastDigi.pool.root
+		      AOD_noSplit_noPseudoTracking_fullSim_fullDigi.pool.root
 		    </chainfileout>
 		  </chainElement>
-		  <chainElement>
-		    <jobTransform userJobId="ttFC_reco_newTracking_PseudoT_fastSim_fastDigi_Reg">
-		      <doc>Regression test between releases</doc>
-		      <jobTransformJobName>ttFC_reco_newTracking_PseudoT_fastSim_fastDigi_Reg</jobTransformJobName>
-		      <jobTransformCmd>sim_reg_test.py ttFC_reco_newTracking_PseudoT_fastSim_fastDigi InDetStandardPlots.root</jobTransformCmd>
-		      <group>FastChainPileup</group>
-		      <queue>long</queue>
-			<test position="1">
-			  <modulename>RttLibraryTools</modulename>
-			  <testname>DCubeRunner</testname>
-			  <arg>
-			    <argname>DCubeCfg</argname>
-			    <argvalue>dcube_ttFC_reco_newTracking_PseudoT_fastSim_fastDigi_Reg.xml</argvalue>
-			  </arg>
-			  <arg>
-                            <argname>tolerateWARN</argname>
-                            <argvalue>True</argvalue>
-			  </arg>
-			  <arg>
-			    <argname>DCubeRef</argname>
-			    <argvalue>yesterday.InDetStandardPlots.root</argvalue>
-			  </arg>
-			  <arg>
-			    <argname>localRefFile</argname>
-			    <argvalue>True</argvalue>
-			  </arg>
-			  <arg>
-			    <argname>DCubeMon</argname>
-			    <argvalue>today.InDetStandardPlots.root</argvalue>
-			  </arg>
-			  <keepFilePattern>DCube-yesterday.InDetStandardPlots.root/today.InDetStandardPlots.root.dcube.xml.php</keepFilePattern>
-			</test>
-		      <testToRemove>
-			<jobGroupName>RTT:Top</jobGroupName>
-			<testidentifier>CheckFileRunner0</testidentifier>
-		      </testToRemove> 
-		      </jobTransform>
-		  </chainElement>
-		</sequential>
-		<sequential>
-		  <chainElement>
-		    <jobTransform userJobId="ttFC_reco_Split_fastSim_fastDigi">
-		      <doc>FastChain reco</doc>
-		      <jobTransformJobName>ttFC_reco_Split_fastSim_fastDigi</jobTransformJobName>
-		      <jobTransformCmd> 
-			  FastChain_tf.py --maxEvents 500 --skipEvents 0 --geometryVersion ATLAS-R2-2015-03-01-00 --conditionsTag OFLCOND-RUN12-SDR-31  --inputRDOFile RDO_pileup_fastsim_fastdigi.pool.root --outputAODFile AOD_Split_fastSim_fastDigi.pool.root --preExec "RAWtoESD:rec.doTrigger.set_Value_and_Lock(False);recAlgs.doTrigger.set_Value_and_Lock(False);InDetFlags.pixelClusterSplittingType.set_Value_and_Lock(\"AnalogClus\");InDetFlags.doTIDE_Ambi.set_Value_and_Lock(False);InDetFlags.doStandardPlots.set_Value_and_Lock(True);InDetFlags.doSplitReco.set_Value_and_Lock(True);from InDetRecExample.InDetKeys import InDetKeys; InDetKeys.PixelPUClusters.set_Value_and_Lock('PixelFast_PU_Clusters');InDetKeys.PixelPUClustersTruth.set_Value_and_Lock('PRD_MultiTruthPixel_PU');InDetKeys.SCT_PU_ClustersTruth.set_Value_and_Lock('PRD_MultiTruthSCT_PU');InDetKeys.TRT_PU_DriftCirclesTruth.set_Value_and_Lock('PRD_MultiTruthTRT_PU');"
-		      </jobTransformCmd>
+		  <!--<chainElement>
+		    <jobTransform userJobId="8reg_20.20.3_vs_mig13_ttbarFastChain_reco_noSplit_noPseudoTracking_fullSim_fullDigi">
+		      <doc>comparison with reference sample obtained using 20.20.3</doc>
+		      <jobTransformJobName>8reg_20.20.3_vs_mig13_ttbarFastChain_reco_noSplit_noPseudoTracking_fullSim_fullDigi</jobTransformJobName>
+		      <jobTransformCmd>sim_reg_test.py ttbarFastChain_reco_noSplit_noPseudoTracking_fullSim_fullDigi InDetStandardPlots.root</jobTransformCmd>
 		      <group>FastChainPileup</group>
-		      <chaindataset_info>
-			  <jobTransformData />    
-			  <chaindatasetName>RDO_pileup_fastsim_fastdigi.pool.root</chaindatasetName>
-			  <!-- If the file on the previous line is not in the chain store, then use the following fallback file. -->
-			  <dataset_info>
-			      <jobTransformData />
-			      <datasetName>/afs/cern.ch/work/a/abasalae/public/FastChainRTT/fallbackRTT/RDO_pileup_fastsim_fastdigi.pool.root</datasetName>
-			  </dataset_info>
-		      </chaindataset_info>
 		      <queue>medium</queue>
+		      <test position="1">
+			<modulename>RttLibraryTools</modulename>
+			<testname>DCubeRunner</testname>
+			<arg>
+			  <argname>DCubeCfg</argname>
+			  <argvalue>dcube_ttbarFastChain_reco_noSplit_noPseudoTracking_fullSim_fullDigi.xml</argvalue>
+			</arg>
+			<arg>
+			  <argname>DCubeRef</argname>
+			  <argvalue>8InDetStandardPlots.root</argvalue>
+			</arg>
+			<arg>
+			  <argname>DCubeMon</argname>
+			  <argvalue>today.InDetStandardPlots.root</argvalue>
+			</arg>
+			<keepFilePattern>DCube-8InDetStandardPlots.root/today.InDetStandardPlots.root.dcube.xml.php</keepFilePattern>
+		      </test>
+		      <testToRemove>
+			  <jobGroupName>RTT:Top</jobGroupName>
+			  <testidentifier>CheckFileRunner0</testidentifier>
+		      </testToRemove>         
 		    </jobTransform>
-		    <chainfileout>
-		      AOD_Split_fastSim_fastDigi.pool.root
-		    </chainfileout>
-		  </chainElement>
+		  </chainElement>-->
 		  <chainElement>
-		    <jobTransform userJobId="ttFC_reco_Split_fastSim_fastDigi_Reg">
-		      <doc>Regression test between releases</doc>
-		      <jobTransformJobName>ttFC_reco_Split_fastSim_fastDigi_Reg</jobTransformJobName>
-		      <jobTransformCmd>sim_reg_test.py ttFC_reco_Split_fastSim_fastDigi InDetStandardPlots.root</jobTransformCmd>
+		    <jobTransform userJobId="8reg_20.20.X-VAL_vs_mig13_ttbarFastChain_reco_noSplit_noPseudoTracking_fullSim_fullDigi">
+		      <doc>comparison with 20.20.X-VAL</doc>
+		      <jobTransformJobName>8reg_20.20.X-VAL_vs_mig13_ttbarFastChain_reco_noSplit_noPseudoTracking_fullSim_fullDigi</jobTransformJobName>
+		      <jobTransformCmd>sim_reg_test_fastchain.py FastChainPileup 20.20.X-VAL ttbarFastChain_reco_noSplit_noPseudoTracking_fullSim_fullDigi InDetStandardPlots.root FastChainPileup mig13 ttbarFastChain_reco_noSplit_noPseudoTracking_fullSim_fullDigi InDetStandardPlots.root</jobTransformCmd>
 		      <group>FastChainPileup</group>
-		      <queue>long</queue>
-			<test position="1">
-			  <modulename>RttLibraryTools</modulename>
-			  <testname>DCubeRunner</testname>
-			  <arg>
-			    <argname>DCubeCfg</argname>
-			    <argvalue>dcube_ttFC_reco_Split_fastSim_fastDigi_Reg.xml</argvalue>
-			  </arg>
-			  <arg>
-                            <argname>tolerateWARN</argname>
-                            <argvalue>True</argvalue>
-			  </arg>
-			  <arg>
-			    <argname>DCubeRef</argname>
-			    <argvalue>yesterday.InDetStandardPlots.root</argvalue>
-			  </arg>
-			  <arg>
-			    <argname>localRefFile</argname>
-			    <argvalue>True</argvalue>
-			  </arg>
-			  <arg>
-			    <argname>DCubeMon</argname>
-			    <argvalue>today.InDetStandardPlots.root</argvalue>
-			  </arg>
-			  <keepFilePattern>DCube-yesterday.InDetStandardPlots.root/today.InDetStandardPlots.root.dcube.xml.php</keepFilePattern>
-			</test>
+		      <queue>medium</queue>
+		      <test position="1">
+			<modulename>RttLibraryTools</modulename>
+			<testname>DCubeRunner</testname>
+			<arg>
+			  <argname>DCubeCfg</argname>
+			  <argvalue>dcube_ttbarFastChain_reco_noSplit_noPseudoTracking_fullSim_fullDigi.xml</argvalue>
+			</arg>
+			<arg>
+			  <argname>DCubeRef</argname>
+			  <argvalue>yesterday.InDetStandardPlots.root</argvalue>
+			</arg>
+			<arg>
+			  <argname>localRefFile</argname>
+			  <argvalue>True</argvalue>
+			</arg>
+			<arg>
+			  <argname>DCubeMon</argname>
+			  <argvalue>today.InDetStandardPlots.root</argvalue>
+			</arg>
+			<keepFilePattern>DCube-yesterday.InDetStandardPlots.root/today.InDetStandardPlots.root.dcube.xml.php</keepFilePattern>
+		      </test>
 		      <testToRemove>
-			<jobGroupName>RTT:Top</jobGroupName>
-			<testidentifier>CheckFileRunner0</testidentifier>
-		      </testToRemove> 
-		      </jobTransform>
+			  <jobGroupName>RTT:Top</jobGroupName>
+			  <testidentifier>CheckFileRunner0</testidentifier>
+		      </testToRemove>         
+		    </jobTransform>
 		  </chainElement>
 		</sequential>
 		<chainElement>
-		  <jobTransform userJobId="ttFC_fastSim_fastDigi_Reg">
+		  <jobTransform userJobId="standard_Reco_tf_fullSim_fullDigi">
+		    <doc>standard reco</doc>
+		    <jobTransformJobName>standard_Reco_tf_fullSim_fullDigi</jobTransformJobName>
+		    <jobTransformCmd> 
+			Reco_tf.py --inputRDOFile=RDO_pileup_fullsim_fulldigi.pool.root --outputAODFile=AOD_fullSim_fullDigi.pool.root --autoConfiguration=everything --maxEvents=500 --preExec "RAWtoESD:rec.doTrigger.set_Value_and_Lock(False);recAlgs.doTrigger.set_Value_and_Lock(False);InDetFlags.doStandardPlots.set_Value_and_Lock(True)"
+		    </jobTransformCmd>
+		    <group>FastChainPileup</group>
+		    <chaindataset_info>
+			<jobTransformData />    
+			<chaindatasetName>RDO_pileup_fullsim_fulldigi.pool.root</chaindatasetName>
+			<!-- If the file on the previous line is not in the chain store, then use the following fallback file. -->
+			<dataset_info>
+			    <jobTransformData />
+			    <datasetName>/afs/cern.ch/work/a/abasalae/public/FastChainRTT/fallbackRTT/RDO_pileup_fullsim_fulldigi.pool.root</datasetName>
+			</dataset_info>
+		    </chaindataset_info>
+		    <queue>medium</queue>
+		  </jobTransform>
+		  <chainfileout>
+		    AOD_fullSim_fullDigi.pool.root
+		  </chainfileout>
+		</chainElement>
+		<chainElement>
+		  <jobTransform userJobId="ttbarFastChain_fullSim_fullDigi_Reg">
 		    <doc>Regression test between releases</doc>
-		    <jobTransformJobName>ttFC_fastSim_fastDigi_Reg</jobTransformJobName>
-		    <jobTransformCmd>sim_reg_test.py ttFC_fastSim_fastDigi RDO_truth.root RDO_pileup_fastsim_fastdigi.pool.root</jobTransformCmd>
+		    <jobTransformJobName>ttbarFastChain_fullSim_fullDigi_Reg</jobTransformJobName>
+		    <jobTransformCmd>sim_reg_test.py ttbarFastChain_fullSim_fullDigi RDO_truth.root RDO_pileup_fullsim_fulldigi.pool.root</jobTransformCmd>
 		    <group>FastChainPileup</group>
 		    <queue>long</queue>
 		    <test position="1">
@@ -1043,13 +1038,13 @@
 		      <testidentifier>HITS_RegressionTestRunner</testidentifier>
 		      <arg>
 			<argname>fileName</argname>
-			<argvalue>today.RDO_pileup_fastsim_fastdigi.pool.root</argvalue>
+			<argvalue>today.RDO_pileup_fullsim_fulldigi.pool.root</argvalue>
 		      </arg>
 		      <arg>
 			<argname>refFileName</argname>
-			<argvalue>yesterday.RDO_pileup_fastsim_fastdigi.pool.root</argvalue>
+			<argvalue>yesterday.RDO_pileup_fullsim_fulldigi.pool.root</argvalue>
 		      </arg>
-		      <keepFilePattern>today.RDO_pileup_fastsim_fastdigi.pool.root_yesterday.RDO_pileup_fastsim_fastdigi.pool.root.diffPool</keepFilePattern>
+		      <keepFilePattern>today.RDO_pileup_fullsim_fulldigi.pool.root_yesterday.RDO_pileup_fullsim_fulldigi.pool.root.diffPool</keepFilePattern>
 		    </test>
 		    <test position="2">
 			<modulename>RttLibraryTools</modulename>
@@ -1060,7 +1055,7 @@
 			</arg>
 			<arg>
 			  <argname>exeParamString</argname>
-			  <argvalue>diff-root yesterday.RDO_pileup_fastsim_fastdigi.pool.root today.RDO_pileup_fastsim_fastdigi.pool.root --ignore-leaves RecoTimingObj_p1_EVNTtoHITS_timings RecoTimingObj_p1_HITStoRDO_timings RecoTimingObj_p1_RAWtoESD_timings ESDtoAOD_timings ESDtoAOD_mems RAWtoESD_mems RAWtoESD_timings RecoTimingObj_p1_RAWtoESD_mems</argvalue>
+			  <argvalue>diff-root yesterday.RDO_pileup_fullsim_fulldigi.pool.root today.RDO_pileup_fullsim_fulldigi.pool.root --ignore-leaves RecoTimingObj_p1_EVNTtoHITS_timings RecoTimingObj_p1_HITStoRDO_timings RecoTimingObj_p1_RAWtoESD_timings ESDtoAOD_timings ESDtoAOD_mems RAWtoESD_mems RAWtoESD_timings RecoTimingObj_p1_RAWtoESD_mems</argvalue>
 			</arg>
 			<keepFilePattern>RttLibraryTools_ExeRunner.postprocessing.log</keepFilePattern>
 		      </test>
@@ -1069,11 +1064,7 @@
 			<testname>DCubeRunner</testname>
 			<arg>
 			  <argname>DCubeCfg</argname>
-			  <argvalue>dcube_RDO_truth_fastdigi.xml</argvalue>
-			</arg>
-			<arg>
-                          <argname>tolerateWARN</argname>
-                          <argvalue>True</argvalue>
+			  <argvalue>dcube_RDO_truth_nopileup.xml</argvalue>
 			</arg>
 			<arg>
 			  <argname>DCubeRef</argname>
@@ -1092,92 +1083,117 @@
 		    </jobTransform>
 		  </chainElement>
 	      </parallel>
-	    <!-- END Run FastChain fast sim + fast digi and tests -->	      
+	    <!-- END Run FastChain full sim + full digi and tests -->
 	    </sequential>
-	    <!-- Run FastChain 'Fast PU, Full HS' and tests: G4HS_FastPileup sim (G4 for HS, Pythia on the fly + FastCaloSim for PU) + fast digi PU/full digi HS + Split reco (truth tracking PU, full HS)  -->
+	    <!-- Run FastChain fast sim + fast digi + reco chain and tests -->
 	    <sequential>
 	      <chainElement>
-		<jobTransform userJobId="ttFC_fullHS_fastPU_simDigi">
+		<jobTransform userJobId="ttbarFastChain_fastSim_fastDigi">
 		  <doc>FastChain simdigi</doc>
-		  <jobTransformJobName>ttFC_fullHS_fastPU_simDigi</jobTransformJobName>
+		  <jobTransformJobName>ttbarFastChain_fastSim_fastDigi</jobTransformJobName>
 		  <jobTransformCmd> 
-		      FastChain_tf.py --simulator G4HS_FastPileup --digiSteeringConf "SplitNoMergeSF" --useISF True --randomSeed 123 --enableLooperKiller True --inputEVNTFile /afs/cern.ch/atlas/offline/ProdData/16.6.X/16.6.7.Y/ttbar_muplusjets-pythia6-7000.evgen.pool.root --outputRDOFile RDO_fullHS_fastPU_simdigi.pool.root --maxEvents 10 --skipEvents 0 --geometryVersion ATLAS-R2-2015-03-01-00 --conditionsTag OFLCOND-RUN12-SDR-31 --preSimExec 'from TrkDetDescrSvc.TrkDetDescrJobProperties import TrkDetFlags;TrkDetFlags.TRT_BuildStrawLayers=True' --preSimInclude FastChainPileup/FastPileup.py --postInclude='PyJobTransforms/UseFrontier.py,G4AtlasTests/postInclude.DCubeTest_FCpileup.py,DigitizationTests/postInclude.RDO_Plots.py' --postExec 'RAWtoESD:from AthenaCommon.ConfigurationShelve import saveToAscii;saveToAscii("config.txt")' --DataRunNumber '284500' --postSimExec='genSeq.Pythia8.NCollPerEvent=10;' --preDigiInclude="FastTRT_Digitization/preInclude.FastTRT_Digi.Validation.py"
+		      FastChain_tf.py --simulator ATLFASTIIF_PileUp --digiSteeringConf "SplitNoMergeFF" --useISF True --randomSeed 123 --enableLooperKiller True --inputEVNTFile /afs/cern.ch/atlas/offline/ProdData/16.6.X/16.6.7.Y/ttbar_muplusjets-pythia6-7000.evgen.pool.root --outputRDOFile RDO_pileup_fastsim_fastdigi.pool.root --maxEvents 500 --skipEvents 0 --geometryVersion ATLAS-R2-2015-03-01-00 --conditionsTag OFLCOND-RUN12-SDR-31 --preSimExec 'from TrkDetDescrSvc.TrkDetDescrJobProperties import TrkDetFlags;TrkDetFlags.TRT_BuildStrawLayers=True' --preSimInclude FastChainPileup/FastPileup.py --postInclude='PyJobTransforms/UseFrontier.py,G4AtlasTests/postInclude.DCubeTest_FCpileup.py,DigitizationTests/postInclude.RDO_Plots.py' --postExec 'RAWtoESD:import AthenaCommon.AlgSequence as acas;job = acas.AlgSequence();del job.InDetSCT_Clusterization;from AthenaCommon.ConfigurationShelve import saveToAscii;saveToAscii("config.txt")' --DataRunNumber '222525' --postSimExec='genSeq.Pythia8.NCollPerEvent=10;' --ignorePatterns='G4TestAlg.Lucid.{5}FATAL.{8}LucidHitsTestTool.cxx:66\ \(StatusCode\ LucidHitsTestTool::processEvent\(\)\):\ code\ 0:\ evtStore\(\)->retrieve\(iter\)','FATAL\ message\ limit\ \(500\)\ reached\ for\ G4TestAlg.LucidHitsTestTool.' --preDigiInclude="FastTRT_Digitization/preInclude.FastTRT_Digi.Validation.py"
 		  </jobTransformCmd>
 		  <group>FastChainPileup</group>
 		  <queue>medium</queue>
 		</jobTransform>
 		<chainfileout>
-		  RDO_fullHS_fastPU_simdigi.pool.root
+		  RDO_pileup_fastsim_fastdigi.pool.root
 		</chainfileout>
 	      </chainElement>
 	      <parallel>
-                <sequential>
-                  <chainElement>
-                    <jobTransform userJobId="ttFC_reco_Split_fullHS_fastPU_simDigi">
-                      <doc>FastChain reco</doc>
-                      <jobTransformJobName>ttFC_reco_Split_fullHS_fastPU_simDigi</jobTransformJobName>
-                      <jobTransformCmd>
-			FastChain_tf.py --maxEvents 10 --skipEvents 0 --geometryVersion ATLAS-R2-2015-03-01-00 --conditionsTag OFLCOND-RUN12-SDR-31  --inputRDOFile RDO_fullHS_fastPU_simdigi.pool.root --outputAODFile AOD_Split_fullHS_fastPU_simDigi.pool.root --preExec "RAWtoESD:rec.doTrigger.set_Value_and_Lock(False);InDetFlags.doStatistics.set_Value_and_Lock(False);recAlgs.doTrigger.set_Value_and_Lock(False);InDetFlags.pixelClusterSplittingType.set_Value_and_Lock(\"AnalogClus\");InDetFlags.doTIDE_Ambi.set_Value_and_Lock(False);InDetFlags.doStandardPlots.set_Value_and_Lock(True);InDetFlags.doSplitReco.set_Value_and_Lock(True);from InDetRecExample.InDetKeys import InDetKeys; InDetKeys.PixelPUClusters.set_Value_and_Lock('PixelFast_PU_Clusters');InDetKeys.PixelPUClustersTruth.set_Value_and_Lock('PRD_MultiTruthPixel_PU');InDetKeys.SCT_PU_ClustersTruth.set_Value_and_Lock('PRD_MultiTruthSCT_PU');InDetKeys.TRT_PU_DriftCirclesTruth.set_Value_and_Lock('PRD_MultiTruthTRT_PU');" --postExec 'RAWtoESD:import AthenaCommon.AlgSequence as acas;job = acas.AlgSequence();del job.InDetSCT_ClusterizationPU;del job.InDetPixelClusterizationPU;del job.InDetPRD_MultiTruthMakerSiPU;del job.InDetPRD_MultiTruthMakerTRTPU;'
-                      </jobTransformCmd>
-                      <group>FastChainPileup</group>
-                      <chaindataset_info>
-                          <jobTransformData />   
-                          <chaindatasetName>RDO_fullHS_fastPU_simdigi.pool.root</chaindatasetName>
-                          <dataset_info>
-                              <jobTransformData />
-                              <datasetName>/afs/cern.ch/work/a/abasalae/public/FastChainRTT/fallbackRTT/RDO_fullHS_fastPU_simdigi.pool.root</datasetName>
-                          </dataset_info>
-                      </chaindataset_info>
-                      <queue>medium</queue>
-                    </jobTransform>
-                    <chainfileout>
-                      AOD_Split_fullHS_fastPU_simDigi.pool.root
-                    </chainfileout>
-                  </chainElement>
-                  <chainElement>
-                    <jobTransform userJobId="ttFC_reco_Split_fullHS_fastPU_simDigi_Reg">
-                      <doc>Regression test between releases</doc>
-                      <jobTransformJobName>ttFC_reco_Split_fullHS_fastPU_simDigi_Reg</jobTransformJobName>
-                      <jobTransformCmd>sim_reg_test.py ttFC_reco_Split_fullHS_fastPU_simDigi InDetStandardPlots.root</jobTransformCmd>
-                      <group>FastChainPileup</group>
-                      <queue>long</queue>
-                        <test position="1">
-                          <modulename>RttLibraryTools</modulename>
-                          <testname>DCubeRunner</testname>
-                          <arg>
-                            <argname>DCubeCfg</argname>
-                            <argvalue>dcube_ttFC_reco_Split_fullHS_fastPU_simDigi_Reg.xml</argvalue>
-                          </arg>
-                          <arg>
-                            <argname>tolerateWARN</argname>
-                            <argvalue>True</argvalue>
-                          </arg>
-                          <arg>
-                            <argname>DCubeRef</argname>
-                            <argvalue>yesterday.InDetStandardPlots.root</argvalue>
-                          </arg>
-                          <arg>
-                            <argname>localRefFile</argname>
-                            <argvalue>True</argvalue>
-                          </arg>
-                          <arg>
-                            <argname>DCubeMon</argname>
-                            <argvalue>today.InDetStandardPlots.root</argvalue>
-                          </arg>
-                          <keepFilePattern>DCube-yesterday.InDetStandardPlots.root/today.InDetStandardPlots.root.dcube.xml.php</keepFilePattern>
-                        </test>
-                      <testToRemove>
-                        <jobGroupName>RTT:Top</jobGroupName>
-                        <testidentifier>CheckFileRunner0</testidentifier>
-                      </testToRemove>
-                      </jobTransform>
-                  </chainElement>
-                </sequential>
+		<!--<chainElement>
+		  <jobTransform userJobId="7reg_20.20.3_vs_mig13_ttbarFastChain_fastSim_fastDigi">
+		    <doc>comparison with reference sample obtained using 20.20.3</doc>
+		    <jobTransformJobName>7reg_20.20.3_vs_mig13_ttbarFastChain_fastSim_fastDigi</jobTransformJobName>
+		    <jobTransformCmd>sim_reg_test.py ttbarFastChain_fastSim_fastDigi RDO_truth.root</jobTransformCmd>
+		    <group>FastChainPileup</group>
+		    <queue>medium</queue>
+		    <test position="1">
+		      <modulename>RttLibraryTools</modulename>
+		      <testname>DCubeRunner</testname>
+		      <arg>
+			<argname>DCubeCfg</argname>
+			<argvalue>dcube_RDO_truth_fastdigi.xml</argvalue>
+		      </arg>
+		      <arg>
+			<argname>DCubeRef</argname>
+			<argvalue>7RDO_truth.root</argvalue>
+		      </arg>
+		      <arg>
+			<argname>DCubeMon</argname>
+			<argvalue>today.RDO_truth.root</argvalue>
+		      </arg>
+		      <keepFilePattern>DCube-7RDO_truth.root/today.RDO_truth.root.dcube.xml.php</keepFilePattern>
+		    </test>
+		    <testToRemove>
+			<jobGroupName>RTT:Top</jobGroupName>
+			<testidentifier>CheckFileRunner0</testidentifier>
+		    </testToRemove>         
+		  </jobTransform>
+		</chainElement>-->
+		<chainElement>
+		  <jobTransform userJobId="7reg_20.20.X-VAL_vs_mig13_ttbarFastChain_fastSim_fastDigi">
+		    <doc>comparison with job in 20.20.X-VAL</doc>
+		    <jobTransformJobName>7reg_20.20.X-VAL_vs_mig13_ttbarFastChain_fastSim_fastDigi</jobTransformJobName>
+		    <jobTransformCmd>sim_reg_test_fastchain.py FastChainPileup 20.20.X-VAL ttbarFastChain_fastSim_fastDigi RDO_truth.root FastChainPileup mig13 ttbarFastChain_fastSim_fastDigi RDO_truth.root</jobTransformCmd>
+		    <group>FastChainPileup</group>
+		    <queue>medium</queue>
+		    <test position="1">
+		      <modulename>RttLibraryTools</modulename>
+		      <testname>DCubeRunner</testname>
+		      <arg>
+			<argname>DCubeCfg</argname>
+			<argvalue>dcube_RDO_truth_fastdigi.xml</argvalue>
+		      </arg>
+		      <arg>
+			<argname>DCubeRef</argname>
+			<argvalue>yesterday.RDO_truth.root</argvalue>
+		      </arg>
+		      <arg>
+			<argname>localRefFile</argname>
+			<argvalue>True</argvalue>
+		      </arg>
+		      <arg>
+			<argname>DCubeMon</argname>
+			<argvalue>today.RDO_truth.root</argvalue>
+		      </arg>
+		      <keepFilePattern>DCube-yesterday.RDO_truth.root/today.RDO_truth.root.dcube.xml.php</keepFilePattern>
+		    </test>
+		    <testToRemove>
+			<jobGroupName>RTT:Top</jobGroupName>
+			<testidentifier>CheckFileRunner0</testidentifier>
+		    </testToRemove>         
+		  </jobTransform>
+		</chainElement>
+		<chainElement>
+		  <jobTransform userJobId="ttbarFastChain_reco_noSplit_noPseudoTracking_fastSim_fastDigi">
+		    <doc>FastChain reco</doc>
+		    <jobTransformJobName>ttbarFastChain_reco_noSplit_noPseudoTracking_fastSim_fastDigi</jobTransformJobName>
+		    <jobTransformCmd> 
+			FastChain_tf.py --maxEvents 500 --skipEvents 0 --geometryVersion ATLAS-R2-2015-03-01-00 --conditionsTag OFLCOND-RUN12-SDR-31  --inputRDOFile RDO_pileup_fastsim_fastdigi.pool.root --outputAODFile AOD_noSplit_noPseudoTracking_fastSim_fastDigi.pool.root --preExec "RAWtoESD:rec.doTrigger.set_Value_and_Lock(False);recAlgs.doTrigger.set_Value_and_Lock(False);InDetFlags.pixelClusterSplittingType.set_Value_and_Lock(\"AnalogClus\");InDetFlags.doTIDE_Ambi.set_Value_and_Lock(False);InDetFlags.doStandardPlots.set_Value_and_Lock(True)"
+		    </jobTransformCmd>
+		    <group>FastChainPileup</group>
+		    <chaindataset_info>
+			<jobTransformData />    
+			<chaindatasetName>RDO_pileup_fastsim_fastdigi.pool.root</chaindatasetName>
+			<!-- If the file on the previous line is not in the chain store, then use the following fallback file. -->
+			<dataset_info>
+			    <jobTransformData />
+			    <datasetName>/afs/cern.ch/work/a/abasalae/public/FastChainRTT/fallbackRTT/RDO_pileup_fastsim_fastdigi.pool.root</datasetName>
+			</dataset_info>
+		    </chaindataset_info>
+		    <queue>medium</queue>
+		  </jobTransform>
+		  <chainfileout>
+		    AOD_noSplit_noPseudoTracking_fastSim_fastDigi.pool.root
+		  </chainfileout>
+		</chainElement>
 		<chainElement>
-		  <jobTransform userJobId="ttFC_fullHS_fastPU_simDigi_Reg">
+		  <jobTransform userJobId="ttbarFastChain_fastSim_fastDigi_Reg">
 		    <doc>Regression test between releases</doc>
-		    <jobTransformJobName>ttFC_fullHS_fastPU_simDigi_Reg</jobTransformJobName>
-		    <jobTransformCmd>sim_reg_test.py ttFC_fullHS_fastPU_simDigi RDO_truth.root RDO_fullHS_fastPU_simdigi.pool.root</jobTransformCmd>
+		    <jobTransformJobName>ttbarFastChain_fastSim_fastDigi_Reg</jobTransformJobName>
+		    <jobTransformCmd>sim_reg_test.py ttbarFastChain_fastSim_fastDigi RDO_truth.root RDO_pileup_fastsim_fastdigi.pool.root</jobTransformCmd>
 		    <group>FastChainPileup</group>
 		    <queue>long</queue>
 		    <test position="1">
@@ -1186,13 +1202,13 @@
 		      <testidentifier>HITS_RegressionTestRunner</testidentifier>
 		      <arg>
 			<argname>fileName</argname>
-			<argvalue>today.RDO_fullHS_fastPU_simdigi.pool.root</argvalue>
+			<argvalue>today.RDO_pileup_fastsim_fastdigi.pool.root</argvalue>
 		      </arg>
 		      <arg>
 			<argname>refFileName</argname>
-			<argvalue>yesterday.RDO_fullHS_fastPU_simdigi.pool.root</argvalue>
+			<argvalue>yesterday.RDO_pileup_fastsim_fastdigi.pool.root</argvalue>
 		      </arg>
-		      <keepFilePattern>today.RDO_fullHS_fastPU_simdigi.pool.root_yesterday.RDO_fullHS_fastPU_simdigi.pool.root.diffPool</keepFilePattern>
+		      <keepFilePattern>today.RDO_pileup_fastsim_fastdigi.pool.root_yesterday.RDO_pileup_fastsim_fastdigi.pool.root.diffPool</keepFilePattern>
 		    </test>
 		    <test position="2">
 			<modulename>RttLibraryTools</modulename>
@@ -1203,7 +1219,7 @@
 			</arg>
 			<arg>
 			  <argname>exeParamString</argname>
-			  <argvalue>diff-root yesterday.RDO_fullHS_fastPU_simdigi.pool.root today.RDO_fullHS_fastPU_simdigi.pool.root --ignore-leaves RecoTimingObj_p1_EVNTtoHITS_timings RecoTimingObj_p1_HITStoRDO_timings RecoTimingObj_p1_RAWtoESD_timings ESDtoAOD_timings ESDtoAOD_mems RAWtoESD_mems RAWtoESD_timings RecoTimingObj_p1_RAWtoESD_mems</argvalue>
+			  <argvalue>diff-root yesterday.RDO_pileup_fastsim_fastdigi.pool.root today.RDO_pileup_fastsim_fastdigi.pool.root --ignore-leaves RecoTimingObj_p1_EVNTtoHITS_timings RecoTimingObj_p1_HITStoRDO_timings RecoTimingObj_p1_RAWtoESD_timings ESDtoAOD_timings ESDtoAOD_mems RAWtoESD_mems RAWtoESD_timings RecoTimingObj_p1_RAWtoESD_mems</argvalue>
 			</arg>
 			<keepFilePattern>RttLibraryTools_ExeRunner.postprocessing.log</keepFilePattern>
 		      </test>
@@ -1212,11 +1228,7 @@
 			<testname>DCubeRunner</testname>
 			<arg>
 			  <argname>DCubeCfg</argname>
-			  <argvalue>dcube_RDO_truth_fullHS_fastPU_simdigi.xml</argvalue>
-			</arg>
-			<arg>
-                          <argname>tolerateWARN</argname>
-                          <argvalue>True</argvalue>
+			  <argvalue>dcube_RDO_truth_fastdigi.xml</argvalue>
 			</arg>
 			<arg>
 			  <argname>DCubeRef</argname>
@@ -1235,15 +1247,50 @@
 		    </jobTransform>
 		  </chainElement>
 	      </parallel>
+	    <!-- END Run FastChain fast sim + fast digi and tests -->	      
 	    </sequential>
 	  <!-- END sim jobs, reco jobs + tests chains  -->
 	  </parallel>
 	  <!-- Run tests dependent on different reco jobs -->
 	  <chainElement>
-	    <jobTransform userJobId="0reg_stdReco_fastSim_fullDigi_vs_ttFC_reco_Split_fastSim_fullDigi">
-	      <doc>Regression test of FastChainPileup job stdReco_fastSim_fullDigi vs ttFC_reco_Split_fastSim_fullDigi</doc>
-	      <jobTransformJobName>0reg_stdReco_fastSim_fullDigi_vs_ttFC_reco_Split_fastSim_fullDigi</jobTransformJobName>
-	      <jobTransformCmd>sim_reg_test_fastchain.py FastChainPileup current stdReco_fastSim_fullDigi InDetStandardPlots.root FastChainPileup current ttFC_reco_Split_fastSim_fullDigi InDetStandardPlots.root</jobTransformCmd>
+	    <jobTransform userJobId="0reg_standard_Reco_tf_fastSim_fullDigi_vs_ttbarFastChain_reco_Split_fastSim_fullDigi">
+	      <doc>Regression test of FastChainPileup job standard_Reco_tf_fastSim_fullDigi vs ttbarFastChain_reco_Split_fastSim_fullDigi</doc>
+	      <jobTransformJobName>0reg_standard_Reco_tf_fastSim_fullDigi_vs_ttbarFastChain_reco_Split_fastSim_fullDigi</jobTransformJobName>
+	      <jobTransformCmd>sim_reg_test_fastchain.py FastChainPileup current standard_Reco_tf_fastSim_fullDigi InDetStandardPlots.root FastChainPileup current ttbarFastChain_reco_Split_fastSim_fullDigi InDetStandardPlots.root</jobTransformCmd>
+	      <group>FastChainPileup</group>
+	      <queue>medium</queue>
+		<test position="1">
+		  <modulename>RttLibraryTools</modulename>
+		  <testname>DCubeRunner</testname>
+		  <arg>
+		    <argname>DCubeCfg</argname>
+		    <argvalue>dcube_standard_Reco_tf_fastSim_fullDigi_vs_ttbarFastChain_reco_Split_fastSim_fullDigi.xml</argvalue>
+		  </arg>
+		  <arg>
+		    <argname>DCubeRef</argname>
+		    <argvalue>yesterday.InDetStandardPlots.root</argvalue>
+		  </arg>
+		  <arg>
+		    <argname>localRefFile</argname>
+		    <argvalue>True</argvalue>
+		  </arg>
+		  <arg>
+		    <argname>DCubeMon</argname>
+		    <argvalue>today.InDetStandardPlots.root</argvalue>
+		  </arg>
+		  <keepFilePattern>DCube-yesterday.InDetStandardPlots.root/today.InDetStandardPlots.root.dcube.xml.php</keepFilePattern>
+		</test>
+		<testToRemove>
+		    <jobGroupName>RTT:Top</jobGroupName>
+		    <testidentifier>CheckFileRunner0</testidentifier>
+		</testToRemove>		
+	    </jobTransform>
+	  </chainElement> 
+	  <chainElement>
+	    <jobTransform userJobId="0reg_standard_Reco_tf_fullSim_fullDigi_vs_ttbarFastChain_reco_noSplit_pseudoTracking_fullSim_fullDigi">
+	      <doc>Regression test of FastChainPileup job standard_Reco_tf_fullSim_fullDigi vs ttbarFastChain_reco_noSplit_pseudoTracking_fullSim_fullDigi</doc>
+	      <jobTransformJobName>0reg_standard_Reco_tf_fullSim_fullDigi_vs_ttbarFastChain_reco_noSplit_pseudoTracking_fullSim_fullDigi</jobTransformJobName>
+	      <jobTransformCmd>sim_reg_test_fastchain.py FastChainPileup current standard_Reco_tf_fullSim_fullDigi InDetStandardPlots.root FastChainPileup current ttbarFastChain_reco_noSplit_pseudoTracking_fullSim_fullDigi InDetStandardPlots.root</jobTransformCmd>
 	      <group>FastChainPileup</group>
 	      <queue>medium</queue>
 		<test position="1">
@@ -1251,11 +1298,7 @@
 		  <testname>DCubeRunner</testname>
 		  <arg>
 		    <argname>DCubeCfg</argname>
-		    <argvalue>dcube_stdReco_fastSim_fullDigi_vs_ttFC_reco_Split_fastSim_fullDigi.xml</argvalue>
-		  </arg>
-		  <arg>
-                    <argname>tolerateWARN</argname>
-                    <argvalue>True</argvalue>
+		    <argvalue>dcube_standard_Reco_tf_fullSim_fullDigi_vs_ttbarFastChain_reco_noSplit_pseudoTracking_fullSim_fullDigi.xml</argvalue>
 		  </arg>
 		  <arg>
 		    <argname>DCubeRef</argname>
@@ -1276,12 +1319,12 @@
 		    <testidentifier>CheckFileRunner0</testidentifier>
 		</testToRemove>		
 	    </jobTransform>
-	  </chainElement> 
+	  </chainElement>   
 	  <chainElement>
-	    <jobTransform userJobId="0reg_stdReco_fullSim_fullDigi_vs_ttFC_reco_noSplit_PseudoT_fullSim_fullDigi">
-	      <doc>Regression test of FastChainPileup job stdReco_fullSim_fullDigi vs ttFC_reco_noSplit_PseudoT_fullSim_fullDigi</doc>
-	      <jobTransformJobName>0reg_stdReco_fullSim_fullDigi_vs_ttFC_reco_noSplit_pseudoTracking_fullSim_fullDigi</jobTransformJobName>
-	      <jobTransformCmd>sim_reg_test_fastchain.py FastChainPileup current stdReco_fullSim_fullDigi InDetStandardPlots.root FastChainPileup current ttFC_reco_noSplit_PseudoT_fullSim_fullDigi InDetStandardPlots.root</jobTransformCmd>
+	    <jobTransform userJobId="0reg_standard_Reco_tf_fastSim_fullDigi_vs_ttbarFastChain_reco_noSplit_noPseudoTracking_fastSim_fullDigi">
+	      <doc>Regression test of FastChainPileup job standard_Reco_tf_fastSim_fullDigi vs ttbarFastChain_reco_noSplit_noPseudoTracking_fastSim_fullDigi</doc>
+	      <jobTransformJobName>0reg_standard_Reco_tf_fastSim_fullDigi_vs_ttbarFastChain_reco_noSplit_noPseudoTracking_fastSim_fullDigi</jobTransformJobName>
+	      <jobTransformCmd>sim_reg_test_fastchain.py FastChainPileup current standard_Reco_tf_fastSim_fullDigi InDetStandardPlots.root FastChainPileup current ttbarFastChain_reco_noSplit_noPseudoTracking_fastSim_fullDigi InDetStandardPlots.root</jobTransformCmd>
 	      <group>FastChainPileup</group>
 	      <queue>medium</queue>
 		<test position="1">
@@ -1289,11 +1332,7 @@
 		  <testname>DCubeRunner</testname>
 		  <arg>
 		    <argname>DCubeCfg</argname>
-		    <argvalue>dcube_stdReco_fullSim_fullDigi_vs_ttFC_reco_noSplit_PseudoT_fullSim_fullDigi.xml</argvalue>
-		  </arg>
-		  <arg>
-                    <argname>tolerateWARN</argname>
-                    <argvalue>True</argvalue>
+		    <argvalue>dcube_standard_Reco_tf_fastSim_fullDigi_vs_ttbarFastChain_reco_noSplit_noPseudoTracking_fastSim_fullDigi.xml</argvalue>
 		  </arg>
 		  <arg>
 		    <argname>DCubeRef</argname>
@@ -1314,12 +1353,12 @@
 		    <testidentifier>CheckFileRunner0</testidentifier>
 		</testToRemove>		
 	    </jobTransform>
-	  </chainElement>   
-	  <chainElement>
-	    <jobTransform userJobId="0reg_stdReco_fastSim_fullDigi_vs_ttFC_reco_noSplit_noPseudoT_fastSim_fullDigi">
-	      <doc>Regression test of FastChainPileup job stdReco_fastSim_fullDigi vs ttFC_reco_noSplit_noPseudoT_fastSim_fullDigi</doc>
-	      <jobTransformJobName>0reg_stdReco_fastSim_fullDigi_vs_ttFC_reco_noSplit_noPseudoT_fastSim_fullDigi</jobTransformJobName>
-	      <jobTransformCmd>sim_reg_test_fastchain.py FastChainPileup current stdReco_fastSim_fullDigi InDetStandardPlots.root FastChainPileup current ttFC_reco_noSplit_noPseudoT_fastSim_fullDigi InDetStandardPlots.root</jobTransformCmd>
+	  </chainElement> 
+	  <!--<chainElement>
+	    <jobTransform userJobId="0reg_ttbarFastChain_reco_noSplit_noPseudoTracking_fullSim_fullDigi_vs_ttbarFastChain_reco_noSplit_noPseudoTracking_fastSim_fullDigi">
+	      <doc>Regression test of FastChainPileup job ttbarFastChain_reco_noSplit_noPseudoTracking_fullSim_fullDigi vs ttbarFastChain_reco_noSplit_noPseudoTracking_fastSim_fullDigi</doc>
+	      <jobTransformJobName>0reg_ttbarFastChain_reco_noSplit_noPseudoTracking_fullSim_fullDigi_vs_ttbarFastChain_reco_noSplit_noPseudoTracking_fastSim_fullDigi</jobTransformJobName>
+	      <jobTransformCmd>sim_reg_test_fastchain.py FastChainPileup current ttbarFastChain_reco_noSplit_noPseudoTracking_fullSim_fullDigi InDetStandardPlots.root FastChainPileup current ttbarFastChain_reco_noSplit_noPseudoTracking_fastSim_fullDigi InDetStandardPlots.root</jobTransformCmd>
 	      <group>FastChainPileup</group>
 	      <queue>medium</queue>
 		<test position="1">
@@ -1327,11 +1366,7 @@
 		  <testname>DCubeRunner</testname>
 		  <arg>
 		    <argname>DCubeCfg</argname>
-		    <argvalue>dcube_stdReco_fastSim_fullDigi_vs_ttFC_reco_noSplit_noPseudoT_fastSim_fullDigi.xml</argvalue>
-		  </arg>
-		  <arg>
-                    <argname>tolerateWARN</argname>
-                    <argvalue>True</argvalue>
+		    <argvalue>dcube_ttbarFastChain_reco_noSplit_noPseudoTracking_fullSim_fullDigi_vs_ttbarFastChain_reco_noSplit_noPseudoTracking_fastSim_fullDigi.xml</argvalue>
 		  </arg>
 		  <arg>
 		    <argname>DCubeRef</argname>
@@ -1352,12 +1387,12 @@
 		    <testidentifier>CheckFileRunner0</testidentifier>
 		</testToRemove>		
 	    </jobTransform>
-	  </chainElement> 
+	  </chainElement>-->
 	  <chainElement>
-	    <jobTransform userJobId="0reg_stdReco_fastSim_fullDigi_vs_ttFC_reco_noSplit_PseudoT_fastSim_fullDigi">
-	      <doc>Regression test of FastChainPileup job stdReco_fastSim_fullDigi vs ttFC_reco_noSplit_PseudoT_fastSim_fullDigi</doc>
-	      <jobTransformJobName>0reg_stdReco_fastSim_fullDigi_vs_ttFC_reco_noSplit_PseudoT_fastSim_fullDigi</jobTransformJobName>
-	      <jobTransformCmd>sim_reg_test_fastchain.py FastChainPileup current stdReco_fastSim_fullDigi InDetStandardPlots.root FastChainPileup current ttFC_reco_noSplit_PseudoT_fastSim_fullDigi InDetStandardPlots.root</jobTransformCmd>
+	    <jobTransform userJobId="0reg_standard_Reco_tf_fastSim_fullDigi_vs_ttbarFastChain_reco_noSplit_pseudoTracking_fastSim_fullDigi">
+	      <doc>Regression test of FastChainPileup job standard_Reco_tf_fastSim_fullDigi vs ttbarFastChain_reco_noSplit_pseudoTracking_fastSim_fullDigi</doc>
+	      <jobTransformJobName>0reg_standard_Reco_tf_fastSim_fullDigi_vs_ttbarFastChain_reco_noSplit_pseudoTracking_fastSim_fullDigi</jobTransformJobName>
+	      <jobTransformCmd>sim_reg_test_fastchain.py FastChainPileup current standard_Reco_tf_fastSim_fullDigi InDetStandardPlots.root FastChainPileup current ttbarFastChain_reco_noSplit_pseudoTracking_fastSim_fullDigi InDetStandardPlots.root</jobTransformCmd>
 	      <group>FastChainPileup</group>
 	      <queue>medium</queue>
 		<test position="1">
@@ -1365,11 +1400,7 @@
 		  <testname>DCubeRunner</testname>
 		  <arg>
 		    <argname>DCubeCfg</argname>
-		    <argvalue>dcube_stdReco_fastSim_fullDigi_vs_ttFC_reco_noSplit_PseudoT_fastSim_fullDigi.xml</argvalue>
-		  </arg>
-		  <arg>
-                    <argname>tolerateWARN</argname>
-                    <argvalue>True</argvalue>
+		    <argvalue>dcube_standard_Reco_tf_fastSim_fullDigi_vs_ttbarFastChain_reco_noSplit_pseudoTracking_fastSim_fullDigi.xml</argvalue>
 		  </arg>
 		  <arg>
 		    <argname>DCubeRef</argname>
@@ -1393,12 +1424,12 @@
 	  </chainElement>
 	<!-- END main job sequence -->
 	</sequential>
-	<!-- run stdReco_PseudoT_oldHits job and test -->
+	<!-- run standardReco_pseudoTracking_oldHits job and test -->
 	<sequential>
 	  <chainElement>
-	    <jobTransform userJobId="stdReco_PseudoT_oldHits">
+	    <jobTransform userJobId="standardReco_pseudoTracking_oldHits">
 	      <doc>FastChain reco</doc>
-	      <jobTransformJobName>stdReco_PseudoT_oldHits</jobTransformJobName>
+	      <jobTransformJobName>standardReco_pseudoTracking_oldHits</jobTransformJobName>
 	      <jobTransformCmd> 
 		  Reco_tf.py --inputHITSFile=/afs/cern.ch/user/a/abasalae/work/FastChainRTT/20.20.3_ReferenceProduction/standardReco_pseudoTracking_oldHits/valid1/HITS.06695914._000339.pool.root.1 --outputESDFile=ESD.pool.root --autoConfiguration=everything --maxEvents=500 --preExec "RAWtoESD:rec.doTrigger.set_Value_and_Lock(False);from RecExConfig.RecAlgsFlags import recAlgs;recAlgs.doTrigger.set_Value_and_Lock(False);from InDetRecExample.InDetJobProperties import InDetFlags;InDetFlags.doPseudoTracking.set_Value_and_Lock(True);InDetFlags.doStandardPlots.set_Value_and_Lock(True);" --outputRDOFile=RDO.oldhits.pool.root --postInclude='HITtoRDO:G4AtlasTests/postInclude.DCubeTest.py,DigitizationTests/postInclude.RDO_Plots.py'
 	      </jobTransformCmd>
@@ -1423,11 +1454,11 @@
 	  </chainElement>
 	  <!-- run tests in parallel-->
 	  <parallel>
-	    <chainElement>
-	    <jobTransform userJobId="stdReco_PseudoT_oldHits_digi_Reg">
+	   <chainElement>
+	    <jobTransform userJobId="standardReco_pseudoTracking_oldHits_digi_Reg">
 	      <doc>Regression test between releases</doc>
-	      <jobTransformJobName>stdReco_PseudoT_oldHits_digi_Reg</jobTransformJobName>
-	      <jobTransformCmd>sim_reg_test.py stdReco_PseudoT_oldHits RDO_truth.root RDO.oldhits.pool.root</jobTransformCmd>
+	      <jobTransformJobName>standardReco_pseudoTracking_oldHits_digi_Reg</jobTransformJobName>
+	      <jobTransformCmd>sim_reg_test.py standardReco_pseudoTracking_oldHits RDO_truth.root RDO.pool.root</jobTransformCmd>
 	      <group>FastChainPileup</group>
 	      <queue>long</queue>
 	      <test position="1">
@@ -1454,10 +1485,6 @@
 		    <argname>DCubeCfg</argname>
 		    <argvalue>dcube_RDO_truth.xml</argvalue>
 		  </arg>
-		  <arg>
-                    <argname>tolerateWARN</argname>
-                    <argvalue>True</argvalue>
-		  </arg>
 		  <arg>
 		    <argname>DCubeRef</argname>
 		    <argvalue>yesterday.RDO_truth.root</argvalue>
@@ -1475,10 +1502,10 @@
 	      </jobTransform>
 	    </chainElement>
 	    <chainElement>
-	      <jobTransform userJobId="stdReco_PseudoT_oldHits_Reg">
+	      <jobTransform userJobId="standardReco_pseudoTracking_oldHits_Reg">
 		<doc>Regression test between releases</doc>
-		<jobTransformJobName>stdReco_PseudoT_oldHits_Reg</jobTransformJobName>
-		<jobTransformCmd>sim_reg_test.py stdReco_PseudoT_oldHits InDetStandardPlots.root</jobTransformCmd>
+		<jobTransformJobName>standardReco_pseudoTracking_oldHits_Reg</jobTransformJobName>
+		<jobTransformCmd>sim_reg_test.py standardReco_pseudoTracking_oldHits InDetStandardPlots.root</jobTransformCmd>
 		<group>FastChainPileup</group>
 		<queue>long</queue>
 		  <test position="1">
@@ -1486,11 +1513,7 @@
 		    <testname>DCubeRunner</testname>
 		    <arg>
 		      <argname>DCubeCfg</argname>
-		      <argvalue>dcube_stdReco_PseudoT_oldHits_Reg.xml</argvalue>
-		    </arg>
-		    <arg>
-                      <argname>tolerateWARN</argname>
-                      <argvalue>True</argvalue>
+		      <argvalue>dcube_standardReco_pseudoTracking_oldHits_Reg.xml</argvalue>
 		    </arg>
 		    <arg>
 		      <argname>DCubeRef</argname>
@@ -1512,8 +1535,327 @@
 		</testToRemove> 
 		</jobTransform>
 	    </chainElement>
+	    <!--<chainElement>
+	      <jobTransform userJobId="9reg_20.20.3_vs_mig13_standardReco_pseudoTracking_oldHits">
+		<doc>comparison with reference sample obtained using 20.20.3</doc>
+		<jobTransformJobName>9reg_20.20.3_vs_mig13_standardReco_pseudoTracking_oldHits</jobTransformJobName>
+		<jobTransformCmd>sim_reg_test.py standardReco_pseudoTracking_oldHits InDetStandardPlots.root</jobTransformCmd>
+		<group>FastChainPileup</group>
+		<queue>medium</queue>
+		<test position="1">
+		  <modulename>RttLibraryTools</modulename>
+		  <testname>DCubeRunner</testname>
+		  <arg>
+		    <argname>DCubeCfg</argname>
+		    <argvalue>dcube_standardReco_pseudoTracking_oldHits.xml</argvalue>
+		  </arg>
+		  <arg>
+		    <argname>DCubeRef</argname>
+		    <argvalue>9InDetStandardPlots.root</argvalue>
+		  </arg>
+		  <arg>
+		    <argname>DCubeMon</argname>
+		    <argvalue>today.InDetStandardPlots.root</argvalue>
+		  </arg>
+		  <keepFilePattern>DCube-9InDetStandardPlots.root/today.InDetStandardPlots.root.dcube.xml.php</keepFilePattern>
+		</test>
+		<testToRemove>
+		    <jobGroupName>RTT:Top</jobGroupName>
+		    <testidentifier>CheckFileRunner0</testidentifier>
+		</testToRemove>         
+	      </jobTransform>
+	    </chainElement>-->
+	    <chainElement>
+	      <jobTransform userJobId="9reg_20.20.X-VAL_vs_mig13_standardReco_pseudoTracking_oldHits">
+		<doc>comparison with 20.20.X-VAL</doc>
+		<jobTransformJobName>9reg_20.20.X-VAL_vs_mig13_standardReco_pseudoTracking_oldHits</jobTransformJobName>
+		<jobTransformCmd>sim_reg_test_fastchain.py FastChainPileup 20.20.X-VAL standardReco_pseudoTracking_oldHits InDetStandardPlots.root FastChainPileup mig13 standardReco_pseudoTracking_oldHits InDetStandardPlots.root</jobTransformCmd>
+		<group>FastChainPileup</group>
+		<queue>medium</queue>
+		<test position="1">
+		  <modulename>RttLibraryTools</modulename>
+		  <testname>DCubeRunner</testname>
+		  <arg>
+		    <argname>DCubeCfg</argname>
+		    <argvalue>dcube_standardReco_pseudoTracking_oldHits.xml</argvalue>
+		  </arg>
+		  <arg>
+		    <argname>DCubeRef</argname>
+		    <argvalue>yesterday.InDetStandardPlots.root</argvalue>
+		  </arg>
+		  <arg>
+		    <argname>localRefFile</argname>
+		    <argvalue>True</argvalue>
+		  </arg>		  
+		  <arg>
+		    <argname>DCubeMon</argname>
+		    <argvalue>today.InDetStandardPlots.root</argvalue>
+		  </arg>
+		  <keepFilePattern>DCube-yesterday.InDetStandardPlots.root/today.InDetStandardPlots.root.dcube.xml.php</keepFilePattern>
+		</test>
+		<testToRemove>
+		    <jobGroupName>RTT:Top</jobGroupName>
+		    <testidentifier>CheckFileRunner0</testidentifier>
+		</testToRemove>         
+	      </jobTransform>
+	    </chainElement>
 	  </parallel>
 	</sequential>
+	<!-- run standardReco_pseudoTracking_oldHits job and test -->
+	<sequential>
+	  <chainElement>
+	    <jobTransform userJobId="standardReco_pseudoTracking_oldHits_20.20.X-VAL_RDO">
+	      <doc>FastChain reco</doc>
+	      <jobTransformJobName>standardReco_pseudoTracking_oldHits_20.20.X-VAL_RDO</jobTransformJobName>
+	      <jobTransformCmd> 
+		  sim_reg_test_fastchain.py FastChainPileup 20.20.X-VAL standardReco_pseudoTracking_oldHits RDO.oldhits.pool.root FastChainPileup 20.20.X-VAL standardReco_pseudoTracking_oldHits RDO.oldhits.pool.root;Reco_tf.py --inputRDOFile=today.RDO.oldhits.pool.root --outputESDFile=ESD.pool.root --autoConfiguration=everything --maxEvents=500 --preExec "RAWtoESD:rec.doTrigger.set_Value_and_Lock(False);from RecExConfig.RecAlgsFlags import recAlgs;recAlgs.doTrigger.set_Value_and_Lock(False);from InDetRecExample.InDetJobProperties import InDetFlags;InDetFlags.doPseudoTracking.set_Value_and_Lock(True);InDetFlags.doStandardPlots.set_Value_and_Lock(True);"
+	      </jobTransformCmd>
+	      <group>FastChainPileup</group>
+	      <queue>medium</queue>
+	    </jobTransform>
+	  </chainElement>
+	  <chainElement>
+	    <jobTransform userJobId="10reg_20.20.X-VAL_vs_mig13_standardReco_pseudoTracking_oldHits_20.20.X-VAL_RDO">
+	      <doc>comparison with 20.20.X-VAL</doc>
+	      <jobTransformJobName>10reg_20.20.X-VAL_vs_mig13_standardReco_pseudoTracking_oldHits_20.20.X-VAL_RDO</jobTransformJobName>
+	      <jobTransformCmd>sim_reg_test_fastchain.py FastChainPileup 20.20.X-VAL standardReco_pseudoTracking_oldHits InDetStandardPlots.root FastChainPileup mig13 standardReco_pseudoTracking_oldHits_20.20.X-VAL_RDO InDetStandardPlots.root</jobTransformCmd>
+	      <group>FastChainPileup</group>
+	      <queue>medium</queue>
+	      <test position="1">
+		<modulename>RttLibraryTools</modulename>
+		<testname>DCubeRunner</testname>
+		<arg>
+		  <argname>DCubeCfg</argname>
+		  <argvalue>dcube_standardReco_pseudoTracking_oldHits.xml</argvalue>
+		</arg>
+		<arg>
+		  <argname>DCubeRef</argname>
+		  <argvalue>yesterday.InDetStandardPlots.root</argvalue>
+		</arg>
+		<arg>
+		  <argname>localRefFile</argname>
+		  <argvalue>True</argvalue>
+		</arg>		  
+		<arg>
+		  <argname>DCubeMon</argname>
+		  <argvalue>today.InDetStandardPlots.root</argvalue>
+		</arg>
+		<keepFilePattern>DCube-yesterday.InDetStandardPlots.root/today.InDetStandardPlots.root.dcube.xml.php</keepFilePattern>
+	      </test>
+	      <testToRemove>
+		  <jobGroupName>RTT:Top</jobGroupName>
+		  <testidentifier>CheckFileRunner0</testidentifier>
+	      </testToRemove>         
+	    </jobTransform>
+	  </chainElement>
+	</sequential>
+	<!-- run independent tests in parallel -->
+	<!--<parallel>
+	  <chainElement>
+	    <jobTransform userJobId="reg_20.20.X-VAL_vs_mig13_ATLFASTIIF_ttbar_1sim">
+	      <doc>Regression test of ISF_Validation job ATLFASTIIF_ttbar_1sim in releases 20.20.X-VAL vs mig13</doc>
+	      <jobTransformJobName>reg_20.20.X-VAL_vs_mig13_ATLFASTIIF_ttbar_1sim</jobTransformJobName>
+	      <jobTransformCmd>sim_reg_test_fastchain.py ISF_Validation 20.20.X-VAL ATLFASTIIF_ttbar_1sim truth.root ISF_Validation mig13 ATLFASTIIF_ttbar_1sim truth.root</jobTransformCmd>
+	      <group>FastChainPileup</group>
+	      <queue>medium</queue>
+		<test position="1">
+		  <modulename>RttLibraryTools</modulename>
+		  <testname>DCubeRunner</testname>
+		  <arg>
+		    <argname>DCubeCfg</argname>
+		    <argvalue>dcube_truth_ATLFASTII.xml</argvalue>
+		  </arg>
+		  <arg>
+		    <argname>DCubeRef</argname>
+		    <argvalue>yesterday.truth.root</argvalue>
+		  </arg>
+		  <arg>
+		    <argname>localRefFile</argname>
+		    <argvalue>True</argvalue>
+		  </arg>
+		  <arg>
+		    <argname>DCubeMon</argname>
+		    <argvalue>today.truth.root</argvalue>
+		  </arg>
+		  <keepFilePattern>DCube-yesterday.truth.root/today.truth.root.dcube.xml.php</keepFilePattern>
+		</test>
+		<testToRemove>
+		    <jobGroupName>RTT:Top</jobGroupName>
+		    <testidentifier>CheckFileRunner0</testidentifier>
+		</testToRemove>		
+	    </jobTransform>
+	  </chainElement>
+	  <chainElement>
+	    <jobTransform userJobId="reg_20.20.X_vs_mig13_ATLFASTIIF_ttbar_1sim">
+	      <doc>Regression test of ISF_Validation job ATLFASTIIF_ttbar_1sim in releases 20.20.X vs mig13</doc>
+	      <jobTransformJobName>reg_20.20.X_vs_mig13_ATLFASTIIF_ttbar_1sim</jobTransformJobName>
+	      <jobTransformCmd>sim_reg_test_fastchain.py ISF_Validation 20.20.X ATLFASTIIF_ttbar_1sim truth.root ISF_Validation mig13 ATLFASTIIF_ttbar_1sim truth.root</jobTransformCmd>
+	      <group>FastChainPileup</group>
+	      <queue>medium</queue>
+		<test position="1">
+		  <modulename>RttLibraryTools</modulename>
+		  <testname>DCubeRunner</testname>
+		  <arg>
+		    <argname>DCubeCfg</argname>
+		    <argvalue>dcube_truth_ATLFASTII.xml</argvalue>
+		  </arg>
+		  <arg>
+		    <argname>DCubeRef</argname>
+		    <argvalue>yesterday.truth.root</argvalue>
+		  </arg>
+		  <arg>
+		    <argname>localRefFile</argname>
+		    <argvalue>True</argvalue>
+		  </arg>
+		  <arg>
+		    <argname>DCubeMon</argname>
+		    <argvalue>today.truth.root</argvalue>
+		  </arg>
+		  <keepFilePattern>DCube-yesterday.truth.root/today.truth.root.dcube.xml.php</keepFilePattern>
+		</test>
+		<testToRemove>
+		    <jobGroupName>RTT:Top</jobGroupName>
+		    <testidentifier>CheckFileRunner0</testidentifier>
+		</testToRemove>		
+	    </jobTransform>
+	  </chainElement>
+	  <chainElement>
+	    <jobTransform userJobId="reg_20.20.X-VAL_vs_mig13_ATLFASTII_ttbar_1sim">
+	      <doc>Regression test of ISF_Validation job ATLFASTII_ttbar_1sim in releases 20.20.X-VAL vs mig13</doc>
+	      <jobTransformJobName>reg_20.20.X-VAL_vs_mig13_ATLFASTII_ttbar_1sim</jobTransformJobName>
+	      <jobTransformCmd>sim_reg_test_fastchain.py ISF_Validation 20.20.X-VAL ATLFASTII_ttbar_1sim truth.root ISF_Validation mig13 ATLFASTII_ttbar_1sim truth.root</jobTransformCmd>
+	      <group>FastChainPileup</group>
+	      <queue>medium</queue>
+		<test position="1">
+		  <modulename>RttLibraryTools</modulename>
+		  <testname>DCubeRunner</testname>
+		  <arg>
+		    <argname>DCubeCfg</argname>
+		    <argvalue>dcube_truth_ATLFASTII.xml</argvalue>
+		  </arg>
+		  <arg>
+		    <argname>DCubeRef</argname>
+		    <argvalue>yesterday.truth.root</argvalue>
+		  </arg>
+		  <arg>
+		    <argname>localRefFile</argname>
+		    <argvalue>True</argvalue>
+		  </arg>
+		  <arg>
+		    <argname>DCubeMon</argname>
+		    <argvalue>today.truth.root</argvalue>
+		  </arg>
+		  <keepFilePattern>DCube-yesterday.truth.root/today.truth.root.dcube.xml.php</keepFilePattern>
+		</test>
+		<testToRemove>
+		    <jobGroupName>RTT:Top</jobGroupName>
+		    <testidentifier>CheckFileRunner0</testidentifier>
+		</testToRemove>		
+	    </jobTransform>
+	  </chainElement>
+	  <chainElement>
+	    <jobTransform userJobId="reg_20.20.X_vs_mig13_ATLFASTII_ttbar_1sim">
+	      <doc>Regression test of ISF_Validation job ATLFASTII_ttbar_1sim in releases 20.20.X vs mig13</doc>
+	      <jobTransformJobName>reg_20.20.X_vs_mig13_ATLFASTII_ttbar_1sim</jobTransformJobName>
+	      <jobTransformCmd>sim_reg_test_fastchain.py ISF_Validation 20.20.X ATLFASTII_ttbar_1sim truth.root ISF_Validation mig13 ATLFASTII_ttbar_1sim truth.root</jobTransformCmd>
+	      <group>FastChainPileup</group>
+	      <queue>medium</queue>
+		<test position="1">
+		  <modulename>RttLibraryTools</modulename>
+		  <testname>DCubeRunner</testname>
+		  <arg>
+		    <argname>DCubeCfg</argname>
+		    <argvalue>dcube_truth_ATLFASTII.xml</argvalue>
+		  </arg>
+		  <arg>
+		    <argname>DCubeRef</argname>
+		    <argvalue>yesterday.truth.root</argvalue>
+		  </arg>
+		  <arg>
+		    <argname>localRefFile</argname>
+		    <argvalue>True</argvalue>
+		  </arg>
+		  <arg>
+		    <argname>DCubeMon</argname>
+		    <argvalue>today.truth.root</argvalue>
+		  </arg>
+		  <keepFilePattern>DCube-yesterday.truth.root/today.truth.root.dcube.xml.php</keepFilePattern>
+		</test>
+		<testToRemove>
+		    <jobGroupName>RTT:Top</jobGroupName>
+		    <testidentifier>CheckFileRunner0</testidentifier>
+		</testToRemove>		
+	    </jobTransform>
+	  </chainElement>
+	  <chainElement>
+	    <jobTransform userJobId="reg_20.20.X-VAL_vs_mig13_FullG4_ttbar_1sim">
+	      <doc>Regression test of ISF_Validation job FullG4_ttbar_1sim in releases 20.20.X-VAL vs mig13</doc>
+	      <jobTransformJobName>reg_20.20.X-VAL_vs_mig13_FullG4_ttbar_1sim</jobTransformJobName>
+	      <jobTransformCmd>sim_reg_test_fastchain.py ISF_Validation 20.20.X-VAL FullG4_ttbar_1sim truth.root ISF_Validation mig13 FullG4_ttbar_1sim truth.root</jobTransformCmd>
+	      <group>FastChainPileup</group>
+	      <queue>medium</queue>
+		<test position="1">
+		  <modulename>RttLibraryTools</modulename>
+		  <testname>DCubeRunner</testname>
+		  <arg>
+		    <argname>DCubeCfg</argname>
+		    <argvalue>dcube-G4_ttbar_1sim.xml</argvalue>
+		  </arg>
+		  <arg>
+		    <argname>DCubeRef</argname>
+		    <argvalue>yesterday.truth.root</argvalue>
+		  </arg>
+		  <arg>
+		    <argname>localRefFile</argname>
+		    <argvalue>True</argvalue>
+		  </arg>
+		  <arg>
+		    <argname>DCubeMon</argname>
+		    <argvalue>today.truth.root</argvalue>
+		  </arg>
+		  <keepFilePattern>DCube-yesterday.truth.root/today.truth.root.dcube.xml.php</keepFilePattern>
+		</test>
+		<testToRemove>
+		    <jobGroupName>RTT:Top</jobGroupName>
+		    <testidentifier>CheckFileRunner0</testidentifier>
+		</testToRemove>		
+	    </jobTransform>
+	  </chainElement>
+	  <chainElement>
+	    <jobTransform userJobId="reg_20.20.X_vs_mig13_FullG4_ttbar_1sim">
+	      <doc>Regression test of ISF_Validation job FullG4_ttbar_1sim in releases 20.20.X vs mig13</doc>
+	      <jobTransformJobName>reg_20.20.X_vs_mig13_FullG4_ttbar_1sim</jobTransformJobName>
+	      <jobTransformCmd>sim_reg_test_fastchain.py ISF_Validation 20.20.X FullG4_ttbar_1sim truth.root ISF_Validation mig13 FullG4_ttbar_1sim truth.root</jobTransformCmd>
+	      <group>FastChainPileup</group>
+	      <queue>medium</queue>
+		<test position="1">
+		  <modulename>RttLibraryTools</modulename>
+		  <testname>DCubeRunner</testname>
+		  <arg>
+		    <argname>DCubeCfg</argname>
+		    <argvalue>dcube-G4_ttbar_1sim.xml</argvalue>
+		  </arg>
+		  <arg>
+		    <argname>DCubeRef</argname>
+		    <argvalue>yesterday.truth.root</argvalue>
+		  </arg>
+		  <arg>
+		    <argname>localRefFile</argname>
+		    <argvalue>True</argvalue>
+		  </arg>
+		  <arg>
+		    <argname>DCubeMon</argname>
+		    <argvalue>today.truth.root</argvalue>
+		  </arg>
+		  <keepFilePattern>DCube-yesterday.truth.root/today.truth.root.dcube.xml.php</keepFilePattern>
+		</test>
+		<testToRemove>
+		    <jobGroupName>RTT:Top</jobGroupName>
+		    <testidentifier>CheckFileRunner0</testidentifier>
+		</testToRemove>		
+	    </jobTransform>
+	  </chainElement>
+	</parallel>-->
        <!-- END -->
        </parallel>
       </chain>
diff --git a/Simulation/G4Atlas/G4AtlasApps/python/SimFlags.py b/Simulation/G4Atlas/G4AtlasApps/python/SimFlags.py
index 46d7a160d2e51f5a301c99670ab7825a692e186c..f5f64f01e046d222381ddb6b81206ed09724dd29 100644
--- a/Simulation/G4Atlas/G4AtlasApps/python/SimFlags.py
+++ b/Simulation/G4Atlas/G4AtlasApps/python/SimFlags.py
@@ -639,14 +639,6 @@ class ParticleID(JobProperty):
     allowedTypes = ['bool']
     StoredValue = False
 
-class RecordStepInfo(JobProperty):
-    """
-    Should FCS_StepInfoCollections be recorded
-    """
-    statusOn = True
-    allowedTypes = ['bool']
-    StoredValue = False
-
 class RecordFlux(JobProperty):
     """
     Record flux through the entirety of the detector
diff --git a/Simulation/G4Atlas/G4AtlasTools/python/G4AtlasToolsConfig.py b/Simulation/G4Atlas/G4AtlasTools/python/G4AtlasToolsConfig.py
index 337d297ff1929c3332063162c132e453d84b4f2f..5d5439468b791ec8d18afbff8169994db23c84c4 100644
--- a/Simulation/G4Atlas/G4AtlasTools/python/G4AtlasToolsConfig.py
+++ b/Simulation/G4Atlas/G4AtlasTools/python/G4AtlasToolsConfig.py
@@ -112,9 +112,6 @@ def generateCaloSensitiveDetectorList():
             SensitiveDetectorList += [ 'TileGeoG4CalibSD' ] # mode 1 : With CaloCalibrationHits
         else:
             SensitiveDetectorList += [ 'TileGeoG4SD' ]      # mode 0 : No CaloCalibrationHits
-    from G4AtlasApps.SimFlags import simFlags
-    if simFlags.RecordStepInfo.get_Value():
-        SensitiveDetectorList += [ 'FCS_StepInfoSensitiveDetector' ]
     return SensitiveDetectorList
 
 def generateMuonSensitiveDetectorList():
diff --git a/Simulation/ISF/ISF_Example/python/ISF_Output.py b/Simulation/ISF/ISF_Example/python/ISF_Output.py
index 74c397b07b39583c4d4f13a1c48cbfa9c0b9b855..fcb2bc118614cd3047c515a197939ddf9c07a462 100644
--- a/Simulation/ISF/ISF_Example/python/ISF_Output.py
+++ b/Simulation/ISF/ISF_Example/python/ISF_Output.py
@@ -70,7 +70,7 @@ def getHITSStreamItemList():
     ## TimingAlg
     hitsItemList +=["RecoTimingObj#EVNTtoHITS_timings"]
 
-    if simFlags.RecordStepInfo.get_Value():
+    if 'G4UA::FastCaloSimParamActionTool' in simFlags.OptionalUserActionList.get_Value()['Step']:
         hitsItemList +=["ISF_FCS_Parametrization::FCS_StepInfoCollection#MergedEventSteps"]
 
     ## add xAOD::TrackParticles output collection Parametric Simulation
diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimParametrization/share/ISF_FastCaloSimParametrization_SimPostInclude.py b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimParametrization/share/ISF_FastCaloSimParametrization_SimPostInclude.py
index a59ee537a7a600deaaf28d45472527c2b91fb6cd..67017a344bb85806b0cb4485b6529dbf93939eee 100644
--- a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimParametrization/share/ISF_FastCaloSimParametrization_SimPostInclude.py
+++ b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimParametrization/share/ISF_FastCaloSimParametrization_SimPostInclude.py
@@ -1,23 +1,3 @@
 from ISF_FastCaloSimParametrization.ISF_FastCaloSimParametrizationConf import FastCaloSimParamAlg
 topSeq += FastCaloSimParamAlg()
 ISF_HITSStream.stream1.ItemList += ["ISF_FCS_Parametrization::FCS_StepInfoCollection#MergedEventSteps"]
-from AthenaCommon.CfgGetter import getPublicTool
-stepInfoSDTool = getPublicTool("SensitiveDetectorMasterTool").SensitiveDetectors['FCS_StepInfoSensitiveDetector']
-stepInfoSDTool.shift_lar_subhit=True
-stepInfoSDTool.shorten_lar_step=True
-
-stepInfoSDTool.maxEtaPS=1
-stepInfoSDTool.maxPhiPS=5
-stepInfoSDTool.maxrPS=0
-
-stepInfoSDTool.maxEtaEM1=1
-stepInfoSDTool.maxPhiEM1=5
-stepInfoSDTool.maxrEM1=15
-
-stepInfoSDTool.maxEtaEM2=1
-stepInfoSDTool.maxPhiEM2=5
-stepInfoSDTool.maxrEM2=60
-
-stepInfoSDTool.maxEtaEM3=1
-stepInfoSDTool.maxPhiEM3=5
-stepInfoSDTool.maxrEM3=8
diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimParametrization/share/ISF_FastCaloSimParametrization_SimPostInclude_1mm.py b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimParametrization/share/ISF_FastCaloSimParametrization_SimPostInclude_1mm.py
deleted file mode 100644
index b42cd82a47bed2666c9ae87fcf77a95df3a2c4e1..0000000000000000000000000000000000000000
--- a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimParametrization/share/ISF_FastCaloSimParametrization_SimPostInclude_1mm.py
+++ /dev/null
@@ -1,8 +0,0 @@
-from ISF_FastCaloSimParametrization.ISF_FastCaloSimParametrizationConf import FastCaloSimParamAlg
-topSeq += FastCaloSimParamAlg()
-ISF_HITSStream.stream1.ItemList += ["ISF_FCS_Parametrization::FCS_StepInfoCollection#MergedEventSteps"]
-from AthenaCommon.CfgGetter import getPublicTool
-stepInfoSDTool = getPublicTool("SensitiveDetectorMasterTool").SensitiveDetectors['FCS_StepInfoSensitiveDetector']
-stepInfoSDTool.shift_lar_subhit=True
-stepInfoSDTool.shorten_lar_step=True
-stepInfoSDTool.maxRadiusLAr=1
diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimParametrization/share/ISF_FastCaloSimParametrization_SimPreInclude.py b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimParametrization/share/ISF_FastCaloSimParametrization_SimPreInclude.py
index ed3a162c17b790a20a87e26b63ba21df04bb1f51..b10f924dd25a540cad352e7af86af1869323773b 100644
--- a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimParametrization/share/ISF_FastCaloSimParametrization_SimPreInclude.py
+++ b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimParametrization/share/ISF_FastCaloSimParametrization_SimPreInclude.py
@@ -1,2 +1,20 @@
 from G4AtlasApps.SimFlags import simFlags
-simFlags.RecordStepInfo=True
+simFlags.OptionalUserActionList.addAction('G4UA::FastCaloSimParamActionTool',['BeginOfEvent','EndOfEvent','BeginOfRun','EndOfRun','Step'])
+simFlags.UserActionConfig.addConfig('G4UA::FastCaloSimParamActionTool',"shift_lar_subhit",True)
+simFlags.UserActionConfig.addConfig('G4UA::FastCaloSimParamActionTool',"shorten_lar_step",True)
+# optimised merging scheme parameters
+simFlags.UserActionConfig.addConfig('G4UA::FastCaloSimParamActionTool',"maxEtaPS",1)
+simFlags.UserActionConfig.addConfig('G4UA::FastCaloSimParamActionTool',"maxPhiPS",5)
+simFlags.UserActionConfig.addConfig('G4UA::FastCaloSimParamActionTool',"maxrPS",0)
+
+simFlags.UserActionConfig.addConfig('G4UA::FastCaloSimParamActionTool',"maxEtaEM1",1)
+simFlags.UserActionConfig.addConfig('G4UA::FastCaloSimParamActionTool',"maxPhiEM1",5)
+simFlags.UserActionConfig.addConfig('G4UA::FastCaloSimParamActionTool',"maxrEM1",15)
+
+simFlags.UserActionConfig.addConfig('G4UA::FastCaloSimParamActionTool',"maxEtaEM2",1)
+simFlags.UserActionConfig.addConfig('G4UA::FastCaloSimParamActionTool',"maxPhiEM2",5)
+simFlags.UserActionConfig.addConfig('G4UA::FastCaloSimParamActionTool',"maxrEM2",60)
+
+simFlags.UserActionConfig.addConfig('G4UA::FastCaloSimParamActionTool',"maxEtaEM3",1)
+simFlags.UserActionConfig.addConfig('G4UA::FastCaloSimParamActionTool',"maxPhiEM3",5)
+simFlags.UserActionConfig.addConfig('G4UA::FastCaloSimParamActionTool',"maxrEM3",8)
diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimParametrization/share/ISF_FastCaloSimParametrization_SimPreInclude_1mm.py b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimParametrization/share/ISF_FastCaloSimParametrization_SimPreInclude_1mm.py
new file mode 100644
index 0000000000000000000000000000000000000000..d4c0a586f46d8c4cba3ff89c2e1e4c717bcc832c
--- /dev/null
+++ b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimParametrization/share/ISF_FastCaloSimParametrization_SimPreInclude_1mm.py
@@ -0,0 +1,6 @@
+from G4AtlasApps.SimFlags import simFlags
+simFlags.OptionalUserActionList.addAction('G4UA::FastCaloSimParamActionTool',['BeginOfEvent','EndOfEvent','BeginOfRun','EndOfRun','Step'])
+simFlags.UserActionConfig.addConfig('G4UA::FastCaloSimParamActionTool',"shift_lar_subhit",True)
+simFlags.UserActionConfig.addConfig('G4UA::FastCaloSimParamActionTool',"shorten_lar_step",True)
+simFlags.UserActionConfig.addConfig('G4UA::FastCaloSimParamActionTool',"maxRadiusLAr",1)
+# optimised merging scheme parameters are not required for 1mm merging
diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/CMakeLists.txt b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/CMakeLists.txt
deleted file mode 100644
index 4c03c106111bed7f6a8b90f37a0839758b36b8ca..0000000000000000000000000000000000000000
--- a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/CMakeLists.txt
+++ /dev/null
@@ -1,41 +0,0 @@
-################################################################################
-# Package: ISF_FastCaloSimSD
-################################################################################
-
-# Declare the package name:
-atlas_subdir( ISF_FastCaloSimSD )
-
-# Declare the package's dependencies:
-atlas_depends_on_subdirs( PUBLIC
-                          Control/StoreGate
-                          GaudiKernel
-                          Simulation/G4Atlas/G4AtlasInterfaces
-                          Simulation/G4Atlas/G4AtlasTools
-                          TileCalorimeter/TileG4/TileG4Interfaces
-                          PRIVATE
-                          Calorimeter/CaloDetDescr
-                          Calorimeter/CaloIdentifier
-                          Control/CxxUtils
-                          Control/AthenaBaseComps
-                          Generators/GeneratorObjects
-                          LArCalorimeter/LArG4/LArG4Code
-                          Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimEvent
-                          DetectorDescription/Identifier )
-
-# External dependencies:
-find_package( CLHEP )
-find_package( Geant4 )
-find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread )
-find_package( XercesC )
-
-# Component(s) in the package:
-atlas_add_component( ISF_FastCaloSimSD
-                     src/*.cxx
-                     src/components/*.cxx
-                     INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${XERCESC_INCLUDE_DIRS} ${GEANT4_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS}
-                     LINK_LIBRARIES ${ROOT_LIBRARIES} ${XERCESC_LIBRARIES} ${GEANT4_LIBRARIES} ${CLHEP_LIBRARIES} StoreGateLib SGtests GaudiKernel G4AtlasInterfaces G4AtlasToolsLib CaloDetDescrLib CaloIdentifier CxxUtils GeneratorObjects LArG4Code ISF_FastCaloSimEvent Identifier )
-
-# Install files from the package:
-atlas_install_headers( ISF_FastCaloSimSD )
-atlas_install_python_modules( python/*.py )
-
diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/python/ISF_FastCaloSimSDConfig.py b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/python/ISF_FastCaloSimSDConfig.py
deleted file mode 100644
index a8dc3f98ead00a0b408104c3b30aa00fcf3dc39f..0000000000000000000000000000000000000000
--- a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/python/ISF_FastCaloSimSDConfig.py
+++ /dev/null
@@ -1,31 +0,0 @@
-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-
-from AthenaCommon import CfgMgr
-
-def getFCS_StepInfoSensitiveDetector(name="FCS_StepInfoSensitiveDetector", **kwargs):
-    ## Main configuration
-    kwargs.setdefault("StacVolumes",["LArMgr::LAr::EMB::STAC"])
-    kwargs.setdefault("PresamplerVolumes",["LArMgr::LAr::Barrel::Presampler::Module"])
-    kwargs.setdefault("NegIWVolumes",["LArMgr::LAr::EMEC::Neg::InnerWheel"])
-    kwargs.setdefault("NegOWVolumes",["LArMgr::LAr::EMEC::Neg::OuterWheel"])
-    kwargs.setdefault("BOBarretteVolumes",["LArMgr::LAr::EMEC::BackOuterBarrette::Module::Phidiv"])
-    kwargs.setdefault("MiniVolumes",["LArMgr::MiniFCAL::Wafer"])
-    kwargs.setdefault("PosIWVolumes",["LArMgr::LAr::EMEC::Pos::InnerWheel"])
-    kwargs.setdefault("PosOWVolumes",["LArMgr::LAr::EMEC::Pos::OuterWheel"])
-    kwargs.setdefault("PresVolumes", ["LArMgr::LAr::Endcap::Presampler::LiquidArgon"])
-    kwargs.setdefault("SliceVolumes",["LArMgr::LAr::HEC::Module::Depth::Slice"])
-    kwargs.setdefault("FCAL1Volumes",["LArMgr::LAr::FCAL::Module1::Gap"])
-    kwargs.setdefault("FCAL2Volumes",["LArMgr::LAr::FCAL::Module2::Gap"])
-    kwargs.setdefault("FCAL3Volumes",["LArMgr::LAr::FCAL::Module3::Gap"])
-    kwargs.setdefault("TileVolumes",["Tile::Scintillator"])
-    kwargs.setdefault("OutputCollectionNames", ["EventSteps"])
-    # TODO Add extra configuration here!!
-    return CfgMgr.FCS_Param__FCS_StepInfoSDTool(name, **kwargs)
-
-##def getFastCaloSimParamActionTool(name='G4UA::FastCaloSimParamActionTool', **kwargs):
-##    from G4AtlasApps.SimFlags import simFlags
-##    # example custom configuration
-##    if name in simFlags.UserActionConfig.get_Value().keys():
-##        for prop,value in simFlags.UserActionConfig.get_Value()[name].iteritems():
-##            kwargs.setdefault(prop,value)
-##    return CfgMgr.G4UA__FastCaloSimParamActionTool(name,**kwargs)
diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/python/ISF_FastCaloSimSDConfigDb.py b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/python/ISF_FastCaloSimSDConfigDb.py
deleted file mode 100644
index 4c205253ba04f0718f153a112c49c46d2cce888d..0000000000000000000000000000000000000000
--- a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/python/ISF_FastCaloSimSDConfigDb.py
+++ /dev/null
@@ -1,5 +0,0 @@
-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-
-from AthenaCommon.CfgGetter import addTool
-
-addTool("ISF_FastCaloSimSD.ISF_FastCaloSimSDConfig.getFCS_StepInfoSensitiveDetector", "FCS_StepInfoSensitiveDetector")
diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/FCS_StepInfoSD.cxx b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/FCS_StepInfoSD.cxx
deleted file mode 100644
index 9e46bd508c0182f256f3c02e31ce168746bb4068..0000000000000000000000000000000000000000
--- a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/FCS_StepInfoSD.cxx
+++ /dev/null
@@ -1,227 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#include "FCS_StepInfoSD.h"
-
-#include "CaloIdentifier/CaloIdManager.h"
-#include "CaloIdentifier/LArID_Exception.h"
-#include "CaloIdentifier/LArEM_ID.h"
-#include "CaloIdentifier/LArFCAL_ID.h"
-#include "CaloIdentifier/LArHEC_ID.h"
-#include "CaloIdentifier/LArMiniFCAL_ID.h"
-#include "CaloDetDescr/CaloDetDescrManager.h"
-#include "CaloDetDescr/CaloDetDescrElement.h"
-
-#include "G4Step.hh"
-#include "G4ThreeVector.hh"
-
-FCS_StepInfoSD::FCS_StepInfoSD(G4String a_name, const FCS_Param::Config& config)
-  : G4VSensitiveDetector(a_name)
-  , m_config(config)
-  , m_larEmID(nullptr)
-  , m_larFcalID(nullptr)
-  , m_larHecID(nullptr)
-  , m_larMiniFcalID(nullptr)
-  , m_calo_dd_man(nullptr)
-{
-  m_calo_dd_man  = CaloDetDescrManager::instance(); //FIXME Move somewhere else!!
-}
-
-FCS_StepInfoSD::~FCS_StepInfoSD()
-{
-}
-
-G4bool FCS_StepInfoSD::ProcessHits(G4Step*,G4TouchableHistory*)
-{
-  G4ExceptionDescription description;
-  description << "ProcessHits: Base class method should not be called!!!";
-  G4Exception("FCS_StepInfoSD", "FCSBadCall", FatalException, description);
-  abort();
-  return false;
-}
-
-inline double FCS_StepInfoSD::getMaxTime(const CaloCell_ID::CaloSample& layer) const
-{
-  /// NB The result of this function should actually be constant for each SD
-  if (layer >= CaloCell_ID::PreSamplerB && layer <= CaloCell_ID::EME3) {
-    return m_config.m_maxTimeLAr;
-  }
-  if (layer >= CaloCell_ID::HEC0  && layer <= CaloCell_ID::HEC3) {
-    return m_config.m_maxTimeHEC;
-  }
-  if (layer >=CaloCell_ID::FCAL0 && layer <= CaloCell_ID::FCAL2) {
-    return m_config.m_maxTimeFCAL;
-  }
-  return m_config.m_maxTime;
-}
-
-inline double FCS_StepInfoSD::getMaxRadius(const CaloCell_ID::CaloSample& layer) const
-{
-  /// NB The result of this function should actually be constant for each SD
-  if (layer >= CaloCell_ID::PreSamplerB && layer <= CaloCell_ID::EME3) {
-    return m_config.m_maxRadiusLAr;
-  }
-  if (layer >= CaloCell_ID::HEC0  && layer <= CaloCell_ID::HEC3) {
-    return m_config.m_maxRadiusHEC;
-  }
-  if (layer >=CaloCell_ID::FCAL0 && layer <= CaloCell_ID::FCAL2) {
-        return m_config.m_maxRadiusFCAL;
-  }
-  return m_config.m_maxRadius;
-}
-
-inline double FCS_StepInfoSD::getMaxDeltaR(const CaloCell_ID::CaloSample& layer) const
-{
-  /// NB The result of this function should actually be constant for each SD
-  if(m_config.m_maxRadiusLAr != 25) return 999.;
-  if (layer >= CaloCell_ID::PreSamplerB && layer <= CaloCell_ID::EME3) {
-    if (layer==CaloCell_ID::PreSamplerB || layer==CaloCell_ID::PreSamplerE) {
-      // PS default is 1mm in eta, 5mm in phi, no cut in r
-      return m_config.m_maxrPS;
-    }
-    else if (layer==CaloCell_ID::EMB1 || layer==CaloCell_ID::EME1) {
-      // EM1 default is 1mm in eta, 5mm in phi, 15mm in r
-      return m_config.m_maxrEM1;
-    }
-    else if (layer==CaloCell_ID::EMB2 || layer==CaloCell_ID::EME2) {
-      // EM2 default is 1mm in eta, 5mm in phi, 60mm in r
-      return m_config.m_maxrEM2;
-    }
-    else if (layer==CaloCell_ID::EMB3 || layer==CaloCell_ID::EME3) {
-      // EM3 default is 1mm in eta, 5mm in phi, 8mm in r
-      return m_config.m_maxrEM3;
-    }
-  }
-  return 999.;
-}
-
-inline double FCS_StepInfoSD::getMaxDeltaEta(const CaloCell_ID::CaloSample& layer) const
-{
-  /// NB The result of this function should actually be constant for each SD
-  if(m_config.m_maxRadiusLAr != 25) return 999.;
-  if (layer >= CaloCell_ID::PreSamplerB && layer <= CaloCell_ID::EME3) {
-    if (layer==CaloCell_ID::PreSamplerB || layer==CaloCell_ID::PreSamplerE) {
-      // PS default is 1mm in eta, 5mm in phi, no cut in r
-      return m_config.m_maxEtaPS;
-    }
-    else if (layer==CaloCell_ID::EMB1 || layer==CaloCell_ID::EME1) {
-      // EM1 default is 1mm in eta, 5mm in phi, 15mm in r
-      return m_config.m_maxEtaEM1;
-    }
-    else if (layer==CaloCell_ID::EMB2 || layer==CaloCell_ID::EME2) {
-      // EM2 default is 1mm in eta, 5mm in phi, 60mm in r
-      return m_config.m_maxEtaEM2;
-    }
-    else if (layer==CaloCell_ID::EMB3 || layer==CaloCell_ID::EME3) {
-      // EM3 default is 1mm in eta, 5mm in phi, 8mm in r
-      return m_config.m_maxEtaEM3;
-    }
-  }
-  return 999.;
-}
-
-inline double FCS_StepInfoSD::getMaxDeltaPhi(const CaloCell_ID::CaloSample& layer) const
-{
-  /// NB The result of this function should actually be constant for each SD
-  if(m_config.m_maxRadiusLAr != 25) return 999.;
-  if (layer >= CaloCell_ID::PreSamplerB && layer <= CaloCell_ID::EME3) {
-    if (layer==CaloCell_ID::PreSamplerB || layer==CaloCell_ID::PreSamplerE) {
-      // PS default is 1mm in eta, 5mm in phi, no cut in r
-      return m_config.m_maxPhiPS;
-    }
-    else if (layer==CaloCell_ID::EMB1 || layer==CaloCell_ID::EME1) {
-      // EM1 default is 1mm in eta, 5mm in phi, 15mm in r
-      return m_config.m_maxPhiEM1;
-    }
-    else if (layer==CaloCell_ID::EMB2 || layer==CaloCell_ID::EME2) {
-      // EM2 default is 1mm in eta, 5mm in phi, 60mm in r
-      return m_config.m_maxPhiEM2;
-    }
-    else if (layer==CaloCell_ID::EMB3 || layer==CaloCell_ID::EME3) {
-      // EM3 default is 1mm in eta, 5mm in phi, 8mm in r
-       return m_config.m_maxPhiEM3;
-    }
-  }
-  return 999.;
-}
-
-void FCS_StepInfoSD::update_map(const CLHEP::Hep3Vector & l_vec, const Identifier & l_cell, double l_energy, double l_time, bool l_valid, int l_detector)
-{
-  // Drop any hits that don't have a good identifier attached
-  if (!m_calo_dd_man->get_element(l_cell)) { return; }
-
-  auto map_item = m_hit_map.find( l_cell );
-  if (map_item==m_hit_map.end()) {
-    m_hit_map[l_cell] = new std::vector< ISF_FCS_Parametrization::FCS_StepInfo* >;
-    m_hit_map[l_cell]->reserve(200);
-    m_hit_map[l_cell]->push_back( new ISF_FCS_Parametrization::FCS_StepInfo( l_vec , l_cell , l_energy , l_time , l_valid , l_detector ) );
-  }
-  else {
-
-    // Get the appropriate merging limits
-    const CaloCell_ID::CaloSample& layer = m_calo_dd_man->get_element(l_cell)->getSampling();
-    const double tsame(this->getMaxTime(layer));
-    const double maxRadius(this->getMaxRadius(layer));
-    const double maxDeltaR(this->getMaxDeltaR(layer));
-    const double maxDeltaEta(this->getMaxDeltaEta(layer));
-    const double maxDeltaPhi(this->getMaxDeltaPhi(layer));
-    bool match = false;
-    for (auto map_it : * map_item->second) {
-      // Time check is straightforward
-      const double delta_t = std::fabs(map_it->time()-l_time);
-      if ( delta_t >= tsame ) { continue; }
-
-      // Distance check is less straightforward
-      const CLHEP::Hep3Vector & currentPosition = map_it->position();
-      const double hit_diff2 = currentPosition.diff2( l_vec );
-
-      // Overall merging scheme
-      if (layer >= CaloCell_ID::PreSamplerB && layer <= CaloCell_ID::EME3) {
-        // Customized merging scheme for LAr barrel and endcap, use only if we're not changing maxRadiusLAr value
-        if(m_config.m_maxRadiusLAr == 25) {
-          const CLHEP::Hep3Vector a_diff = l_vec - currentPosition;
-          const double a_diffmag(a_diff.mag());
-          const double a_inv_length = 1./a_diffmag;
-          const double delta_r = std::fabs(a_diff.dot( l_vec ) * a_inv_length);
-          if (delta_r >= maxDeltaR) { continue; }
-          const double delta_eta = std::fabs(std::sin(l_vec.theta()-currentPosition.theta())*a_diffmag);
-          if (delta_eta >= maxDeltaEta) { continue; }
-          const double delta_phi = std::fabs(std::sin(l_vec.phi()-currentPosition.phi())*a_diffmag);
-          if (delta_phi >= maxDeltaPhi) { continue; }
-        }
-        else {
-          if ( hit_diff2 >= maxRadius ) { continue; }
-        }
-      }
-      else if ( hit_diff2 >= maxRadius ) { continue; }
-      // Found a match.  Make a temporary that will be deleted!
-      const ISF_FCS_Parametrization::FCS_StepInfo my_info( l_vec , l_cell , l_energy , l_time , l_valid , l_detector );
-      *map_it += my_info;
-      match = true;
-      break;
-    } // End of search for match in time and space
-    if (!match) {
-      map_item->second->push_back( new ISF_FCS_Parametrization::FCS_StepInfo( l_vec , l_cell , l_energy , l_time , l_valid , l_detector ) );
-    } // Didn't match
-  } // ID already in the map
-  return;
-} // That's it for updating the map!
-
-void FCS_StepInfoSD::EndOfAthenaEvent( ISF_FCS_Parametrization::FCS_StepInfoCollection* hitContainer )
-{
-  // Unpack map into vector
-  for (auto it : m_hit_map) {
-    for (auto a_s : * it.second) {
-      // Giving away ownership of the objects!
-      hitContainer->push_back( a_s );
-    }
-    it.second->clear();
-    delete it.second;
-  } // Vector of IDs in the map
-  m_hit_map.clear();
-  if (m_config.verboseLevel > 4) {
-    G4cout <<this->GetName()<< " DEBUG EndOfAthenaEvent: After initial cleanup, N=" << hitContainer->size() << G4endl;
-  }
-  return;
-}
diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/FCS_StepInfoSD.h b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/FCS_StepInfoSD.h
deleted file mode 100644
index 1a4c3410976fc92b0ea63abb5afeec716db9e01d..0000000000000000000000000000000000000000
--- a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/FCS_StepInfoSD.h
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef ISF_FASTCALOSIM_FCS_STEPINFOSD_H
-#define ISF_FASTCALOSIM_FCS_STEPINFOSD_H
-
-#include "G4VSensitiveDetector.hh"
-
-#include "CaloIdentifier/CaloCell_ID.h" // For CaloCell_ID::CaloSample
-#include "LArG4Code/LArG4Identifier.h"
-
-#include "LArSimEvent/LArHit.h"
-#include "CLHEP/Units/SystemOfUnits.h"
-
-#include "ISF_FastCaloSimEvent/FCS_StepInfoCollection.h"
-
-#include <map>
-#include <vector>
-
-// Forward declarations
-class G4Step;
-class G4TouchableHistory;
-
-class LArEM_ID;
-class LArFCAL_ID;
-class LArHEC_ID;
-class LArMiniFCAL_ID;
-class CaloDetDescrManager;
-
-class ILArCalculatorSvc;
-class ITileCalculator;
-class LArHitContainer;
-
-class StoreGateSvc;
-
-namespace FCS_Param {
-
-  struct Config
-  {
-    /** Helper to keep the same verbosity everywhere */
-    int verboseLevel=0;
-    bool shift_lar_subhit=true;
-    bool shorten_lar_step=false;
-
-    // Merging properties
-    double            m_maxRadius=25.;                //!< property, see @link LArG4GenShowerLib::LArG4GenShowerLib @endlink
-    double            m_maxRadiusLAr=25.;             //!< property, see @link LArG4GenShowerLib::LArG4GenShowerLib @endlink
-    double            m_maxRadiusHEC=100.;             //!< property, see @link LArG4GenShowerLib::LArG4GenShowerLib @endlink
-    double            m_maxRadiusFCAL=100.;            //!< property, see @link LArG4GenShowerLib::LArG4GenShowerLib @endlink
-    double            m_maxRadiusTile=100.;            //!< property, see @link LArG4GenShowerLib::LArG4GenShowerLib @endlink
-
-    double            m_maxTime=25.;
-    double            m_maxTimeLAr=25.;
-    double            m_maxTimeHEC=25.;
-    double            m_maxTimeFCAL=25.;
-    double            m_maxTimeTile=25.;
-
-    // Optimised merging scheme
-    double            m_maxEtaPS=1.;
-    double            m_maxPhiPS=5.;
-    double            m_maxrPS=0.;
-
-    double            m_maxEtaEM1=1.;
-    double            m_maxPhiEM1=5.;
-    double            m_maxrEM1=15.;
-
-    double            m_maxEtaEM2=1.;
-    double            m_maxPhiEM2=5.;
-    double            m_maxrEM2=60.;
-
-    double            m_maxEtaEM3=1.;
-    double            m_maxPhiEM3=5.;
-    double            m_maxrEM3=8.;
-
-    ILArCalculatorSvc *m_LArCalculator=nullptr;
-    ITileCalculator *m_TileCalculator=nullptr;
-  };
-
-}
-
-/// @class FCS_StepInfoSD
-/// @brief Common sensitive detector class for LAr systems.
-///
-/// This SD implementation saves the standard LArHits.
-/// See LArG4CalibSD for an SD that handles calibration hits.
-///
-class FCS_StepInfoSD : public G4VSensitiveDetector
-{
-public:
-
-  /// Constructor
-  FCS_StepInfoSD(G4String a_name, const FCS_Param::Config& config);
-
-  /// Destructor
-  virtual ~FCS_StepInfoSD();
-
-  /// Main processing method
-  G4bool ProcessHits(G4Step* a_step, G4TouchableHistory*) override;
-
-  /// End of athena event processing
-  void EndOfAthenaEvent( ISF_FCS_Parametrization::FCS_StepInfoCollection* hitContnainer );
-
-  /// Sets the ID helper pointers
-  void setupHelpers( const LArEM_ID* EM ,
-                     const LArFCAL_ID* FCAL ,
-                     const LArHEC_ID* HEC ,
-                     const LArMiniFCAL_ID* mini ) {
-    m_larEmID = EM;
-    m_larFcalID = FCAL;
-    m_larHecID = HEC;
-    m_larMiniFcalID = mini;
-  }
-
-protected:
-  /// Keep a map instead of trying to keep the full vector.
-  /// At the end of the event we'll push the map back into the
-  /// FCS_StepInfoCollection in StoreGate.
-  virtual void update_map(const CLHEP::Hep3Vector & l_vec, const Identifier & l_cell, double l_energy, double l_time, bool l_valid, int l_detector);
-  FCS_Param::Config m_config;
-  /// Pointers to the identifier helpers
-  const LArEM_ID*       m_larEmID;
-  const LArFCAL_ID*     m_larFcalID;
-  const LArHEC_ID*      m_larHecID;
-  const LArMiniFCAL_ID* m_larMiniFcalID;
-  const CaloDetDescrManager *m_calo_dd_man;
-  std::map< Identifier , std::vector< ISF_FCS_Parametrization::FCS_StepInfo* >* > m_hit_map;
-
-private:
-  ///
-  double getMaxTime(const CaloCell_ID::CaloSample& layer) const;
-  ///
-  double getMaxRadius(const CaloCell_ID::CaloSample& layer) const;
-  ///
-  double getMaxDeltaR(const CaloCell_ID::CaloSample& layer) const;
-  ///
-  double getMaxDeltaEta(const CaloCell_ID::CaloSample& layer) const;
-  ///
-  double getMaxDeltaPhi(const CaloCell_ID::CaloSample& layer) const;
-
-};
-
-#endif // ISF_FASTCALOSIM_FCS_STEPINFOSD_H
diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/FCS_StepInfoSDTool.cxx b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/FCS_StepInfoSDTool.cxx
deleted file mode 100644
index a4e4660568e51214be86dc03cd1bf0185446c2e9..0000000000000000000000000000000000000000
--- a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/FCS_StepInfoSDTool.cxx
+++ /dev/null
@@ -1,290 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#include "FCS_StepInfoSDTool.h"
-
-#include <memory>
-
-// External includes
-#include "CLHEP/Units/SystemOfUnits.h"
-
-// Athena includes
-#include "CaloIdentifier/CaloIdManager.h"
-#include "CaloIdentifier/LArEM_ID.h"
-#include "CaloIdentifier/LArFCAL_ID.h"
-#include "CaloIdentifier/LArHEC_ID.h"
-#include "CaloIdentifier/LArMiniFCAL_ID.h"
-#include "LArG4Code/ILArCalculatorSvc.h"
-#include "LArG4Code/VolumeUtils.h"
-#include "TileG4Interfaces/ITileCalculator.h"
-
-// Local includes
-#include "LArFCS_StepInfoSD.h"
-#include "TileFCS_StepInfoSD.h"
-#include "SDWrapper.h"
-
-/// Template instantiation for FCS_StepInfoSD
-using FCS_StepInfoSDWrapper = FCS_Param::detail::SDWrapper<FCS_StepInfoSD, ISF_FCS_Parametrization::FCS_StepInfoCollection>;
-
-namespace FCS_Param
-{
-
-  //---------------------------------------------------------------------------
-  // Tool constructor
-  //---------------------------------------------------------------------------
-  FCS_StepInfoSDTool::FCS_StepInfoSDTool(const std::string& type, const std::string& name,
-                             const IInterface* parent)
-    : SensitiveDetectorBase(type, name, parent)
-    , m_hitCollName("EventSteps")
-    , m_bpsmodcalc("EMBPresamplerCalculator", name)
-    , m_embcalc("EMBCalculator", name)
-    , m_emepiwcalc("EMECPosInnerWheelCalculator", name)
-    , m_emeniwcalc("EMECNegInnerWheelCalculator", name)
-    , m_emepowcalc("EMECPosOuterWheelCalculator", name)
-    , m_emenowcalc("EMECNegOuterWheelCalculator", name)
-    , m_emepscalc("EMECPresamplerCalculator", name)
-    , m_emeobarcalc("EMECBackOuterBarretteCalculator", name)
-    , m_heccalc("HECWheelCalculator", name)
-    , m_fcal1calc("FCAL1Calculator", name)
-    , m_fcal2calc("FCAL2Calculator", name)
-    , m_fcal3calc("FCAL3Calculator", name)
-    , m_minfcalcalc("MiniFCALCalculator", name)
-    , m_tileCalculator("TileGeoG4SDCalc", name)
-    , m_larEmID(nullptr)
-    , m_larFcalID(nullptr)
-    , m_larHecID(nullptr)
-    , m_larMiniFcalID(nullptr)
-    , m_config()
-  {
-    declareProperty("HitCollectionName", m_hitCollName);
-    declareProperty("StacVolumes", m_stacVolumes);
-    declareProperty("PresamplerVolumes", m_presBarVolumes);
-    declareProperty("PosIWVolumes", m_posIWVolumes);
-    declareProperty("NegIWVolumes", m_negIWVolumes);
-    declareProperty("PosOWVolumes", m_posOWVolumes);
-    declareProperty("NegOWVolumes", m_negOWVolumes);
-    declareProperty("PresVolumes", m_presECVolumes);
-    declareProperty("BOBarretteVolumes", m_bobVolumes);
-    declareProperty("FCAL1Volumes", m_fcal1Volumes);
-    declareProperty("FCAL2Volumes", m_fcal2Volumes);
-    declareProperty("FCAL3Volumes", m_fcal3Volumes);
-    declareProperty("SliceVolumes", m_sliceVolumes);
-    declareProperty("MiniVolumes", m_miniVolumes);
-    declareProperty("TileVolumes", m_tileVolumes);
-
-    declareProperty("EMBPSCalibrationCalculator",m_bpsmodcalc);
-    declareProperty("EMBCalibrationCalculator",m_embcalc);
-    declareProperty("EMECPosIWCalibrationCalculator",m_emepiwcalc);
-    declareProperty("EMECNegIWCalibrationCalculator",m_emeniwcalc);
-    declareProperty("EMECPosOWCalibrationCalculator",m_emepowcalc);
-    declareProperty("EMECNegOWCalibrationCalculator",m_emenowcalc);
-    declareProperty("EMECPSCalibrationCalculator",m_emepscalc);
-    declareProperty("EMECBOBCalibrationCalculator",m_emeobarcalc);
-    declareProperty("HECWActiveCalculator",m_heccalc);
-    declareProperty("FCAL1CalibCalculator",m_fcal1calc);
-    declareProperty("FCAL2CalibCalculator",m_fcal2calc);
-    declareProperty("FCAL3CalibCalculator",m_fcal3calc);
-    declareProperty("MiniFCALActiveCalibrationCalculator",m_minfcalcalc);
-    declareProperty("TileCalculator", m_tileCalculator);
-
-    declareProperty("shift_lar_subhit",m_config.shift_lar_subhit, "");
-    declareProperty("shorten_lar_step",m_config.shorten_lar_step, "");
-
-    declareProperty("maxRadius",m_config.m_maxRadius, "");
-    declareProperty("maxRadiusLAr",m_config.m_maxRadiusLAr, "");
-    declareProperty("maxRadiusHEC",m_config.m_maxRadiusHEC, "");
-    declareProperty("maxRadiusFCAL",m_config.m_maxRadiusFCAL, "");
-    declareProperty("maxRadiusTile",m_config.m_maxRadiusTile, "");
-
-    declareProperty("maxTime",m_config.m_maxTime, "");
-    declareProperty("maxTimeLAr",m_config.m_maxTimeLAr, "");
-    declareProperty("maxTimeHEC",m_config.m_maxTimeHEC, "");
-    declareProperty("maxTimeFCAL",m_config.m_maxTimeFCAL, "");
-    declareProperty("maxTimeTile",m_config.m_maxTimeTile, "");
-
-    declareProperty("maxEtaPS", m_config.m_maxEtaPS, "");
-    declareProperty("maxPhiPS", m_config.m_maxPhiPS, "");
-    declareProperty("maxrPS", m_config.m_maxrPS, "");
-
-    declareProperty("maxEtaEM1", m_config.m_maxEtaEM1, "");
-    declareProperty("maxPhiEM1", m_config.m_maxPhiEM1, "");
-    declareProperty("maxrEM1", m_config.m_maxrEM1, "");
-
-    declareProperty("maxEtaEM2", m_config.m_maxEtaEM2, "");
-    declareProperty("maxPhiEM2", m_config.m_maxPhiEM2, "");
-    declareProperty("maxrEM2", m_config.m_maxrEM2, "");
-
-    declareProperty("maxEtaEM3", m_config.m_maxEtaEM3, "");
-    declareProperty("maxPhiEM3", m_config.m_maxPhiEM3, "");
-    declareProperty("maxrEM3", m_config.m_maxrEM3, "");
-  }
-
-  //---------------------------------------------------------------------------
-  // Initialize the tool
-  //---------------------------------------------------------------------------
-  StatusCode FCS_StepInfoSDTool::initialize()
-  {
-    ATH_MSG_DEBUG( "Initializing " << name() );
-
-    const CaloIdManager* idMgr = nullptr;
-    CHECK( detStore()->retrieve(idMgr) );
-    if( (m_larEmID = idMgr->getEM_ID()) == nullptr) {
-      ATH_MSG_ERROR("Invalid LAr EM ID helper");
-      return StatusCode::FAILURE;
-    }
-    if( (m_larFcalID = idMgr->getFCAL_ID()) == nullptr) {
-      ATH_MSG_ERROR("Invalid LAr FCAL ID helper");
-      return StatusCode::FAILURE;
-    }
-    if( (m_larHecID = idMgr->getHEC_ID()) == nullptr) {
-      ATH_MSG_ERROR("Invalid LAr HEC ID helper");
-      return StatusCode::FAILURE;
-    }
-    if( (m_larMiniFcalID = idMgr->getMiniFCAL_ID()) == nullptr) {
-      ATH_MSG_ERROR("Invalid LAr Mini FCAL ID helper");
-      return StatusCode::FAILURE;
-    }
-
-    // No general volume list for SensitiveDetectorBase
-    m_noVolumes = true;
-
-    ATH_CHECK(this->initializeCalculators());
-
-    return StatusCode::SUCCESS;
-  }
-
-  //---------------------------------------------------------------------------
-  // Initialization of Athena-components
-  //---------------------------------------------------------------------------
-  StatusCode FCS_StepInfoSDTool::initializeCalculators()
-  {
-    // Lots of calculators !!!
-    ATH_CHECK(m_bpsmodcalc.retrieve());
-    ATH_CHECK(m_embcalc.retrieve());
-    ATH_CHECK(m_emepiwcalc.retrieve());
-    ATH_CHECK(m_emeniwcalc.retrieve());
-    ATH_CHECK(m_emepowcalc.retrieve());
-    ATH_CHECK(m_emenowcalc.retrieve());
-    ATH_CHECK(m_emepscalc.retrieve());
-    ATH_CHECK(m_emeobarcalc.retrieve());
-    ATH_CHECK(m_heccalc.retrieve());
-    ATH_CHECK(m_fcal1calc.retrieve());
-    ATH_CHECK(m_fcal2calc.retrieve());
-    ATH_CHECK(m_fcal3calc.retrieve());
-    ATH_CHECK(m_minfcalcalc.retrieve());
-    ATH_CHECK(m_tileCalculator.retrieve());
-
-    return StatusCode::SUCCESS;
-  }
-
-  //---------------------------------------------------------------------------
-  // Collect hits for this event
-  //---------------------------------------------------------------------------
-  StatusCode FCS_StepInfoSDTool::Gather()
-  {
-    ATH_MSG_DEBUG("Gathering hits to write out in " << name());
-    auto sdWrapper = dynamic_cast<FCS_StepInfoSDWrapper*>( getSD() );
-    if(!sdWrapper) {
-      ATH_MSG_ERROR("Failed to cast SD to FCS_StepInfoSDWrapper");
-      return StatusCode::FAILURE;
-    }
-    sdWrapper->EndOfAthenaEvent();
-    return StatusCode::SUCCESS;
-  }
-
-  //---------------------------------------------------------------------------
-  // Create SD wrapper for current thread
-  //---------------------------------------------------------------------------
-  G4VSensitiveDetector* FCS_StepInfoSDTool::makeSD()
-  {
-    // Create the wrapper
-    auto sdWrapper = new FCS_StepInfoSDWrapper("FCS_StepInfoSDWrapper", m_hitCollName);
-
-    // Create the SDs.
-    sdWrapper->addSD( makeOneLArSD( "Barrel::Presampler::Module::StepInfo", &*m_bpsmodcalc, m_presBarVolumes ) );
-    sdWrapper->addSD( makeOneLArSD( "EMB::STAC::StepInfo", &*m_embcalc, m_stacVolumes ) );
-    sdWrapper->addSD( makeOneLArSD( "EMEC::Pos::InnerWheel::StepInfo", &*m_emepiwcalc, m_posIWVolumes ) );
-    sdWrapper->addSD( makeOneLArSD( "EMEC::Neg::InnerWheel::StepInfo", &*m_emeniwcalc, m_negIWVolumes ) );
-    sdWrapper->addSD( makeOneLArSD( "EMEC::Pos::OuterWheel::StepInfo", &*m_emepowcalc, m_posOWVolumes ) );
-    sdWrapper->addSD( makeOneLArSD( "EMEC::Neg::OuterWheel::StepInfo", &*m_emenowcalc, m_negOWVolumes ) );
-    sdWrapper->addSD( makeOneLArSD( "Endcap::Presampler::LiquidArgon::StepInfo", &*m_emepscalc, m_presECVolumes ) );
-    sdWrapper->addSD( makeOneLArSD( "EMEC::BackOuterBarrette::StepInfo", &*m_emeobarcalc, m_bobVolumes ) );
-    sdWrapper->addSD( makeOneLArSD( "FCAL::Module1::Gap::StepInfo", &*m_fcal1calc, m_fcal1Volumes ) );
-    sdWrapper->addSD( makeOneLArSD( "FCAL::Module2::Gap::StepInfo", &*m_fcal2calc, m_fcal2Volumes ) );
-    sdWrapper->addSD( makeOneLArSD( "FCAL::Module3::Gap::StepInfo", &*m_fcal3calc, m_fcal3Volumes ) );
-    sdWrapper->addSD( makeOneLArSD( "HEC::Module::Depth::Slice::Wheel::StepInfo", &*m_heccalc, m_sliceVolumes ) );
-    sdWrapper->addSD( makeOneLArSD( "MiniFCAL::Wafer::StepInfo", &*m_minfcalcalc, m_miniVolumes ) );
-    sdWrapper->addSD( makeOneTileSD( "Tile::Scintillator::StepInfo", &*m_tileCalculator, m_tileVolumes ) );
-
-    return sdWrapper;
-  }
-
-  //---------------------------------------------------------------------------
-  // Create one LAr SD
-  //---------------------------------------------------------------------------
-  std::unique_ptr<FCS_StepInfoSD>
-  FCS_StepInfoSDTool::makeOneLArSD(const std::string& sdName, ILArCalculatorSvc* calc,
-                          const std::vector<std::string>& volumes) const
-  {
-    ATH_MSG_VERBOSE( name() << " makeOneSD" );
-
-    // Parse the wildcard patterns for existing volume names
-    auto parsedVolumes = LArG4::findLogicalVolumes(volumes, msg()); // from LArG4Code/VolumeUtils.h
-
-    // Inject the Calculator into m_config
-    FCS_Param::Config config(m_config);
-    config.m_LArCalculator = calc;
-    if(!calc) {
-      throw GaudiException("nullptr for ILArCalculatorSvc provided to constructor for: " + sdName,
-                           name(), StatusCode::FAILURE);
-    }
-    if(msgLvl(MSG::VERBOSE))    { config.verboseLevel = 10; }
-    else if(msgLvl(MSG::DEBUG)) { config.verboseLevel = 5;  }
-    // Create the simple SD
-   std::unique_ptr<FCS_StepInfoSD> sd =
-      std::make_unique<LArFCS_StepInfoSD>(sdName, config);
-    sd->setupHelpers(m_larEmID, m_larFcalID, m_larHecID, m_larMiniFcalID);
-
-    // Assign the volumes to the SD
-    if( this->assignSD( sd.get(), parsedVolumes ).isFailure() ) {
-      // TODO: can I just return NULL here?
-      throw GaudiException("Failed to assign sd: " + sdName,
-                           name(), StatusCode::FAILURE);
-    }
-    return std::move(sd);
-  }
-
-  //---------------------------------------------------------------------------
-  // Create one Tile SD
-  //---------------------------------------------------------------------------
-  std::unique_ptr<FCS_StepInfoSD>
-  FCS_StepInfoSDTool::makeOneTileSD(const std::string& sdName, ITileCalculator* calc,
-                          const std::vector<std::string>& volumes) const
-  {
-    ATH_MSG_VERBOSE( name() << " makeOneSD" );
-
-    // Inject the Calculator into m_config
-    FCS_Param::Config config(m_config);
-    config.m_TileCalculator = calc;
-    if(!calc) {
-      throw GaudiException("nullptr for ITileCalculator provided to constructor for: " + sdName,
-                           name(), StatusCode::FAILURE);
-    }
-    if(msgLvl(MSG::VERBOSE))    { config.verboseLevel = 10; }
-    else if(msgLvl(MSG::DEBUG)) { config.verboseLevel = 5;  }
-     // Create the simple SD
-    std::unique_ptr<FCS_StepInfoSD> sd =
-      std::make_unique<TileFCS_StepInfoSD>(sdName, config);
-    sd->setupHelpers(m_larEmID, m_larFcalID, m_larHecID, m_larMiniFcalID);
-
-    // Assign the volumes to the SD
-    if( this->assignSD( sd.get(), volumes ).isFailure() ) {
-      // TODO: can I just return NULL here?
-      throw GaudiException("Failed to assign sd: " + sdName,
-                           name(), StatusCode::FAILURE);
-    }
-    return std::move(sd);
-  }
-
-} // namespace FCS_Param
diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/FCS_StepInfoSDTool.h b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/FCS_StepInfoSDTool.h
deleted file mode 100644
index 1bd88ab1e4b149129fa1b54b503e4cb2f74c467f..0000000000000000000000000000000000000000
--- a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/FCS_StepInfoSDTool.h
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef ISF_FASTCALOSIMSD_FCS_STEPINFOSDTOOL_H
-#define ISF_FASTCALOSIMSD_FCS_STEPINFOSDTOOL_H
-
-/// @file FCS_StepInfoSDTool.h
-/// @brief Defines the FCS_StepInfoSDTool class
-/// @author Steve Farrell <Steven.Farrell@cern.ch>
-/// @date 2016-03-26
-
-// System includes
-#include <string>
-#include <vector>
-
-// G4Atlas includes
-#include "G4AtlasTools/SensitiveDetectorBase.h"
-
-// Local includes
-#include "FCS_StepInfoSD.h"
-
-// Forward declarations
-class ILArCalculatorSvc;
-class LArEM_ID;
-class LArFCAL_ID;
-class LArHEC_ID;
-class LArMiniFCAL_ID;
-class ITileCalculator;
-
-namespace FCS_Param
-{
-
-  /// @class FCS_StepInfoSDTool
-  /// @brief A base class for tools that manage FCS_StepInfoSDs.
-  ///
-  /// @todo Add more details.
-  ///
-  /// @author Steve Farrell <Steven.Farrell@cern.ch>
-  ///
-  class FCS_StepInfoSDTool : public SensitiveDetectorBase
-  {
-
-  public:
-
-    /// Constructor
-    FCS_StepInfoSDTool(const std::string& type, const std::string& name,
-                       const IInterface* parent);
-
-    /// Initialize the tool
-    StatusCode initialize() override final;
-
-    /// Calls down to all the SDs to pack their hits into one collection
-    StatusCode Gather() override final;
-
-  private:
-
-    /// Create the SD wrapper for current worker thread
-    G4VSensitiveDetector* makeSD() override final;
-
-    /// Initialize Calculator Services
-    virtual StatusCode initializeCalculators();
-
-    /// Helper method to create one SD
-    std::unique_ptr<FCS_StepInfoSD>
-    makeOneLArSD(const std::string& name, ILArCalculatorSvc* calc,
-              const std::vector<std::string>& volumes) const;
-
-    /// Helper method to create one SD
-    std::unique_ptr<FCS_StepInfoSD>
-    makeOneTileSD(const std::string& name, ITileCalculator* calc,
-                  const std::vector<std::string>& volumes) const;
-
-    /// Hit collection name
-    std::string m_hitCollName;
-
-    /// @name SD volumes
-    /// @{
-    std::vector<std::string> m_stacVolumes;
-    std::vector<std::string> m_presBarVolumes;
-    std::vector<std::string> m_posIWVolumes;
-    std::vector<std::string> m_negIWVolumes;
-    std::vector<std::string> m_posOWVolumes;
-    std::vector<std::string> m_negOWVolumes;
-    std::vector<std::string> m_presECVolumes;
-    std::vector<std::string> m_bobVolumes;
-    std::vector<std::string> m_fcal1Volumes;
-    std::vector<std::string> m_fcal2Volumes;
-    std::vector<std::string> m_fcal3Volumes;
-    std::vector<std::string> m_sliceVolumes;
-    std::vector<std::string> m_miniVolumes;
-    std::vector<std::string> m_tileVolumes;
-    /// @}
-
-    ServiceHandle<ILArCalculatorSvc> m_bpsmodcalc; //LArG4::BarrelPresampler::CalibrationCalculator
-    ServiceHandle<ILArCalculatorSvc> m_embcalc;    //LArG4::Barrel::CalibrationCalculator
-    ServiceHandle<ILArCalculatorSvc> m_emepiwcalc; //LArG4::EC::CalibrationCalculator(LArWheelCalculator::InnerAbsorberWheel, 1)
-    ServiceHandle<ILArCalculatorSvc> m_emeniwcalc; //LArG4::EC::CalibrationCalculator(LArWheelCalculator::InnerAbsorberWheel, -1)
-    ServiceHandle<ILArCalculatorSvc> m_emepowcalc; //LArG4::EC::CalibrationCalculator(LArWheelCalculator::OuterAbsorberWheel, 1)
-    ServiceHandle<ILArCalculatorSvc> m_emenowcalc; //LArG4::EC::CalibrationCalculator(LArWheelCalculator::OuterAbsorberWheel, -1)
-    ServiceHandle<ILArCalculatorSvc> m_emepscalc; //LArG4::EC::PresamplerCalibrationCalculator
-    ServiceHandle<ILArCalculatorSvc> m_emeobarcalc; //LArG4::EC::CalibrationCalculator(LArWheelCalculator::BackOuterBarretteWheelCalib, 1)
-    ServiceHandle<ILArCalculatorSvc> m_heccalc;   //LArG4::HEC::LArHECCalibrationWheelCalculator(LArG4::HEC::kWheelActive)
-    ServiceHandle<ILArCalculatorSvc> m_fcal1calc;
-    ServiceHandle<ILArCalculatorSvc> m_fcal2calc;
-    ServiceHandle<ILArCalculatorSvc> m_fcal3calc;
-    ServiceHandle<ILArCalculatorSvc> m_minfcalcalc;  //LArG4::MiniFCAL::MiniFCALCalibrationCalculator(LArG4::MiniFCAL::kActive)
-    ServiceHandle<ITileCalculator> m_tileCalculator;
-
-    /// @name Calo identifier helpers
-    /// @{
-    const LArEM_ID*       m_larEmID;
-    const LArFCAL_ID*     m_larFcalID;
-    const LArHEC_ID*      m_larHecID;
-    const LArMiniFCAL_ID* m_larMiniFcalID;
-    /// @}
-    FCS_Param::Config m_config;
-
-  }; // class FCS_StepInfoSDTool
-
-} // namespace FCS_Param
-
-#endif
diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/LArFCS_StepInfoSD.cxx b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/LArFCS_StepInfoSD.cxx
deleted file mode 100644
index db10072268276ec8cfabae3cab0a751ca6abfa93..0000000000000000000000000000000000000000
--- a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/LArFCS_StepInfoSD.cxx
+++ /dev/null
@@ -1,274 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// class header
-#include "LArFCS_StepInfoSD.h"
-/// Geant4 headers
-#include "G4Step.hh"
-#include "G4ThreeVector.hh"
-#include "G4TouchableHistory.hh"
-
-/// Athena headers
-#include "CaloDetDescr/CaloDetDescrManager.h"
-#include "CaloDetDescr/CaloDetDescrElement.h"
-#include "LArG4Code/ILArCalculatorSvc.h"
-
-LArFCS_StepInfoSD::LArFCS_StepInfoSD(G4String a_name, const FCS_Param::Config& config)
-  : FCS_StepInfoSD(a_name, config)
-  , m_calculator(m_config.m_LArCalculator)
-{
-}
-
-LArFCS_StepInfoSD::~LArFCS_StepInfoSD()
-{
-}
-
-G4bool LArFCS_StepInfoSD::ProcessHits(G4Step* a_step,G4TouchableHistory*)
-{
-  G4bool result(false);
-  // If there's no energy, there's no hit.  (Aside: Isn't this energy
-  // the same as the energy from the calculator?  Not necessarily.
-  // The calculator may include detector effects such as
-  // charge-collection which are not modeled by Geant4.)
-  if(a_step->GetTotalEnergyDeposit() <= 0.) { return result; }
-
-  if (m_calculator) {
-    const double StepLength = a_step->GetStepLength()/ CLHEP::mm;
-    const G4ThreeVector preStepPosition = a_step->GetPreStepPoint()->GetPosition(); //pre step is the position we're interested in
-    const G4ThreeVector postStepPosition = a_step->GetPostStepPoint()->GetPosition();
-    double et(0.); // Total collected charge
-    std::vector<const G4Step*> steps;
-    bool madeSubSteps(false);
-    if (m_config.shorten_lar_step && StepLength>0.2) {
-      //create smaller substeps instead
-      G4int nsub_step=(int) (StepLength/0.2) + 1;
-      G4double delta=1./((double) nsub_step);
-      //G4cout <<"Orig prestep: "<<preStepPosition<<std::endl;
-      for (G4int i=0;i<nsub_step;i++) {
-        G4double fraction1 = ((G4double) i)*delta;
-        G4double fraction2 = (((G4double) i) + 1.)*delta;
-        G4ThreeVector subpoint1=preStepPosition*(1-fraction1) + postStepPosition*fraction1;
-        G4ThreeVector subpoint2=preStepPosition*(1-fraction2) + postStepPosition*fraction2;
-        G4StepPoint *startpoint = new G4StepPoint(*(a_step->GetPreStepPoint()));
-        G4StepPoint *endpoint = new G4StepPoint(*(a_step->GetPostStepPoint()));
-        startpoint->SetPosition(subpoint1);
-        endpoint->SetPosition(subpoint2);
-
-        G4Step* newstep = new G4Step(*a_step);
-        newstep->SetPreStepPoint(startpoint);
-        newstep->SetPostStepPoint(endpoint);
-        newstep->SetStepLength( (subpoint1-subpoint2).mag());
-        newstep->SetTotalEnergyDeposit(a_step->GetTotalEnergyDeposit()/nsub_step);
-        steps.push_back(newstep);
-        madeSubSteps=true;
-      }
-    }
-    else {
-      steps.push_back(a_step);
-    }
-
-    for (const G4Step* substep : steps) {
-      G4ThreeVector stepPosition = 0.5*(substep->GetPreStepPoint()->GetPosition()+substep->GetPostStepPoint()->GetPosition());
-      std::vector<LArHitData> processedHits;
-      if (m_calculator->Process(substep, processedHits)) {
-        for (const auto& larhit: processedHits) {
-          et += larhit.energy;
-        }
-      }
-      else {
-        if (m_config.verboseLevel > 4) {
-          //Maybe 0 hits or something like that...
-          G4cout << this->GetName()<<" WARNING ProcessHits: Call to ILArCalculatorSvc::Process failed! Details:" << G4endl
-                 << "          " << "Volume: "<< a_step->GetPreStepPoint()->GetPhysicalVolume()->GetName()<<" "<<m_calculator<< " position: "<<stepPosition<<" SL: "<<StepLength<<G4endl
-                 << "          " << "Orig position: "<<substep->GetPreStepPoint()->GetPosition()<<"  /  "<<substep->GetPostStepPoint()->GetPosition()<<G4endl
-                 << "          " << "StepLength: "<<StepLength<<" step: "<<preStepPosition<<" / "<<postStepPosition<<G4endl;
-            }
-        return result;
-      }
-
-      // drop hits with zero deposited energy (could still happen with negative corrections from calculator)
-      //Or if total energy is <0
-      if (et <= 0.) {
-        if (m_config.verboseLevel > 4) {
-          G4cout << this->GetName()<<" WARNING ProcessHits: Total negative energy: " << et << " not processing..." << G4endl;
-        }
-        return result;
-      }
-
-      const size_t numberOfProcessedHits = processedHits.size();
-      const G4ThreeVector originalStepPosition = stepPosition;
-      double maxSubHitEnergy = -999.;
-      int maxSubHitEnergyindex =-1;
-      if (numberOfProcessedHits>0) {
-        maxSubHitEnergy = processedHits[0].energy;
-        maxSubHitEnergyindex = 0;
-      }
-      //Figure out the subhit with most energy
-      for (size_t i=1; i<numberOfProcessedHits; ++i) {
-        if (maxSubHitEnergy<processedHits[i].energy) {
-          maxSubHitEnergy = processedHits[i].energy;
-          maxSubHitEnergyindex = i;
-        }
-      }
-      //Identifier for the subhit with max energy
-      Identifier maxEnergyIdentifier = this->ConvertID(processedHits[maxSubHitEnergyindex].id);
-      CaloDetDescrElement *maxEnergyCell = m_calo_dd_man->get_element(maxEnergyIdentifier);
-
-      Identifier invalidIdentifier;
-      //for (size_t i=0; i<numberOfProcessedHits; ++i) {
-      for (const auto& larhit: processedHits) {
-        Identifier id = this->ConvertID(larhit.id);
-        if (id == invalidIdentifier) {
-          G4cout << this->GetName()<<" WARNING ProcessHits: Something wrong with LArG4Identifier: "<<(std::string) larhit.id<<G4endl
-                 <<"          "<<id<<G4endl
-                 <<"          "<<id.getString()<<G4endl
-                 <<"          "<< a_step->GetPreStepPoint()->GetPhysicalVolume()->GetLogicalVolume()->GetName()<<G4endl
-                 <<"          numberOfProcessedHits: "<<numberOfProcessedHits<<G4endl;
-          G4cout <<"          "<<invalidIdentifier<<G4endl;
-        }
-        //need to get the cell information
-        if (numberOfProcessedHits>1) {
-          if (!m_larEmID->is_em_barrel(id)) {
-            //It didn't seem to happen outside em_barrel, so flag up if it does:
-            G4cout << this->GetName()<<" WARNING ProcessHits: Outside LAr barrel, but numberOfProcessedHits="<<numberOfProcessedHits
-                   <<", LArG4Identifier: "<<(std::string) larhit.id<<G4endl;
-          }
-          else {
-            if (m_config.shift_lar_subhit) {
-              //find subhit with largest energy
-              if (maxSubHitEnergyindex == -1) {
-                G4cout << this->GetName()<<" WARNING ProcessHits: no subhit index with e>-999??? "<<G4endl;
-                return result;
-              }
-              if(m_config.verboseLevel > 9) {
-                G4cout << this->GetName()<<" VERBOSE ProcessHits: shifting subhits: largest energy subhit index is "<<maxSubHitEnergyindex<<" E: "<<maxSubHitEnergy<<" identifier: "<<maxEnergyIdentifier.getString()<<G4endl;
-              }
-              //from identifier
-              CaloDetDescrElement *thiscell = m_calo_dd_man->get_element(id);
-              if (!maxEnergyCell) {
-                //How often does this happen? Do not shift.
-                G4cout << this->GetName()<<" WARNING ProcessHits: maxEnergyCell failed: "<<maxEnergyIdentifier.getString()<<G4endl
-                       <<"          "<<m_calo_dd_man->get_element(id)->getSampling()<<G4endl
-                       <<"          "<<originalStepPosition.eta()<<G4endl
-                       <<"          "<< originalStepPosition.phi()<<G4endl;
-                stepPosition = originalStepPosition;
-              }
-              else if (maxEnergyCell == thiscell) {
-                //The cells match, so do not shift this hit.
-                if(m_config.verboseLevel > 9) {
-                  G4cout << this->GetName()<<" VERBOSE ProcessHits: Original step position: "<<originalStepPosition.x()<<" "<<originalStepPosition.y()<<" "<<originalStepPosition.z()<<G4endl
-                  <<"          "<<"This cell: "<<thiscell->x()<<" "<<thiscell->y()<<" "<<thiscell->z()<<G4endl
-                  <<"          "<<"No shift"<<G4endl;
-                }
-                stepPosition = originalStepPosition;
-              }
-              else {
-                //the two cells do not match => shift
-                G4ThreeVector diff(thiscell->x()-maxEnergyCell->x(), thiscell->y()-maxEnergyCell->y(), thiscell->z()-maxEnergyCell->z());
-                stepPosition = originalStepPosition+diff;
-                if(m_config.verboseLevel > 9) {
-                  CaloDetDescrElement *bestcell = m_calo_dd_man->get_element(m_calo_dd_man->get_element(id)->getSampling(),originalStepPosition.eta(), originalStepPosition.phi());
-                  G4cout << this->GetName()<<" VERBOSE ProcessHits: Original step position: "<<originalStepPosition.x()<<" "<<originalStepPosition.y()<<" "<<originalStepPosition.z()<<G4endl
-                  <<"          "<<"This cell: "<<thiscell->x()<<" "<<thiscell->y()<<" "<<thiscell->z()<<G4endl
-                  <<"          "<<"Highest E cell: "<<maxEnergyCell->x()<<" "<<maxEnergyCell->y()<<" "<<maxEnergyCell->z()<<G4endl
-                  <<"          "<<"(Best cell: "<<bestcell->x()<<" "<<bestcell->y()<<" "<<bestcell->z()<<")"<<G4endl
-                  <<"          "<<"Shifted step position: "<<stepPosition.x()<<" "<<stepPosition.y()<<" "<<stepPosition.z()<<G4endl;
-                }
-              }
-            }
-          }
-        }
-        //Finalize time for LAr hits?: NO
-        //double time = larhit.energy)==0 ? 0. : (double) larhit.time/larhit.energy/CLHEP::ns;
-        double time = larhit.time;
-        double energy = larhit.energy/CLHEP::MeV;
-        this->update_map(stepPosition, id, energy, time, true, numberOfProcessedHits); //store numberOfProcessedHits as info
-      }//numberOfProcessedHits
-    } //istep
-    if (madeSubSteps) {
-      //only delete steps when doing substeps. Do not delete the original G4Step!
-      while(!steps.empty()) { delete steps.back(); steps.pop_back(); }
-    }
-  }
-  return result;
-}
-
-Identifier LArFCS_StepInfoSD::ConvertID(const LArG4Identifier& a_ident) const
-{
-  Identifier id;
-  if(a_ident[0]==4) {
-    // is LAr
-    if(a_ident[1]==1) {
-      //is LAr EM
-      try {
-        id = m_larEmID->channel_id(a_ident[2],  // barrel_ec
-                                   a_ident[3],  // sampling
-                                   a_ident[4],  // region
-                                   a_ident[5],  // eta
-                                   a_ident[6]); // phi
-      }
-      catch (LArID_Exception& e) {
-        G4ExceptionDescription description;
-        description << "ConvertID: LArEM_ID error code " << e.code() << " "
-                    << (std::string) e;
-        G4Exception("LArFCS_StepInfoSD", "ConvertIDEM", FatalException, description);
-        abort();
-      }
-    }
-    else if(a_ident[1]==2) {
-      //is EM HEC
-      try {
-        id = m_larHecID->channel_id(a_ident[2],  // zSide
-                                    a_ident[3],  // sampling
-                                    a_ident[4],  // region
-                                    a_ident[5],  // eta
-                                    a_ident[6]); // phi
-      }
-      catch(LArID_Exception& e) {
-        G4ExceptionDescription description;
-        description << "ConvertID: LArHEC_ID error code " << e.code() << " "
-                    << (std::string) e;
-        G4Exception("LArFCS_StepInfoSD", "ConvertIDHEC", FatalException, description);
-        abort();
-      }
-    }
-    else if(a_ident[1]==3) {
-      // FCAL
-      if(a_ident[3]>0) {
-        //is EM FCAL
-        try {
-          id = m_larFcalID->channel_id(a_ident[2],  // zSide
-                                       a_ident[3],  // sampling
-                                       a_ident[4],  // eta
-                                       a_ident[5]); // phi
-        }
-        catch(LArID_Exception& e) {
-          G4ExceptionDescription description;
-          description << "ConvertID: LArFCAL_ID error code " << e.code() << " "
-                      << (std::string) e;
-          G4Exception("LArFCS_StepInfoSD", "ConvertIDFCAL", FatalException, description);
-          abort();
-        }
-      }
-      else {
-        //is Mini FCAL
-        try {
-          id = m_larMiniFcalID->channel_id(a_ident[2],  // zSide
-                                           a_ident[3],  // module
-                                           a_ident[4],  // depth
-                                           a_ident[5],  // eta
-                                           a_ident[6]); // phi
-        }
-        catch(LArID_Exception& e) {
-          G4ExceptionDescription description;
-          description << "ConvertID: LArMiniFCAL_ID error code " << e.code() << " "
-                      << (std::string) e;
-          G4Exception("LArFCS_StepInfoSD", "ConvertIDMiniFCAL", FatalException, description);
-          abort();
-        }
-      }
-    }
-  }
-  return id;
-}
diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/LArFCS_StepInfoSD.h b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/LArFCS_StepInfoSD.h
deleted file mode 100644
index e5756d43a11aecd4e249103047392535d9ba3bcb..0000000000000000000000000000000000000000
--- a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/LArFCS_StepInfoSD.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef ISF_FASTCALOSIM_LARFCS_STEPINFOSD_H
-#define ISF_FASTCALOSIM_LARFCS_STEPINFOSD_H
-
-// Base class header
-#include "FCS_StepInfoSD.h"
-
-#include "LArG4Code/LArG4Identifier.h"
-
-// Forward declarations
-class LArEM_ID;
-class LArFCAL_ID;
-class LArHEC_ID;
-class LArMiniFCAL_ID;
-class CaloDetDescrManager;
-
-class G4Step;
-class G4TouchableHistory;
-class ILArCalculatorSvc;
-
-/// @class FCS_StepInfoSD
-/// @brief Common sensitive detector class for LAr systems.
-///
-/// This SD implementation saves the standard LArHits.
-/// See LArG4CalibSD for an SD that handles calibration hits.
-///
-class LArFCS_StepInfoSD : public FCS_StepInfoSD
-{
-public:
-
-  /// Constructor
-  LArFCS_StepInfoSD(G4String a_name, const FCS_Param::Config& config);
-
-  /// Destructor
-  virtual ~LArFCS_StepInfoSD();
-
-  /// Main processing method
-  G4bool ProcessHits(G4Step* a_step, G4TouchableHistory*) override;
-
-private:
-  /// Helper function for making "real" identifiers from LArG4Identifiers
-  Identifier ConvertID(const LArG4Identifier& a_ident) const;
-
-  /// Member variable - the calculator we'll use
-  ILArCalculatorSvc * m_calculator;
-};
-
-#endif // ISF_FASTCALOSIM_LARFCS_STEPINFOSD_H
diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/SDWrapper.cxx b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/SDWrapper.cxx
deleted file mode 100644
index 7df4b9c974dae8a427ff028af4465e9fbae0085c..0000000000000000000000000000000000000000
--- a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/SDWrapper.cxx
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#include "SDWrapper.h"
-
-// Geant4 includes
-#include "G4SDManager.hh"
-
-// Framework utilities
-#include "CxxUtils/make_unique.h"
-
-// Project includes
-#include "ISF_FastCaloSimEvent/FCS_StepInfoCollection.h"
-
-// Local includes
-#include "FCS_StepInfoSD.h"
-
-namespace FCS_Param
-{
-
-  namespace detail
-  {
-
-    //-------------------------------------------------------------------------
-    // Construct with a hit collection name
-    //-------------------------------------------------------------------------
-    template<class SDType, class HitContainerType>
-    SDWrapper<SDType, HitContainerType>::
-    SDWrapper(const std::string& name, const std::string& hitCollectionName)
-      : G4VSensitiveDetector(name),
-        m_hitCollName(hitCollectionName),
-        m_hitColl(hitCollectionName)
-    {}
-
-    //-------------------------------------------------------------------------
-    // Add a unique SD to the list
-    //-------------------------------------------------------------------------
-    template<class SDType, class HitContainerType>
-    void SDWrapper<SDType, HitContainerType>::
-    addSD(std::unique_ptr<SDType> sd)
-    {
-      m_sdList.push_back( std::move(sd) );
-    }
-
-    //-------------------------------------------------------------------------
-    // Initialize the hit collection at the beginning of the G4 event
-    //-------------------------------------------------------------------------
-    template<class SDType, class HitContainerType>
-    void SDWrapper<SDType, HitContainerType>::
-    Initialize(G4HCofThisEvent*)
-    {
-      if(!m_hitColl.isValid()) {
-        if(verboseLevel >= 5) {
-          G4cout << GetName() << " \tDEBUG\t" << "Initializing hit container: "
-                 << m_hitCollName << G4endl;
-        }
-        m_hitColl = CxxUtils::make_unique<HitContainerType>();
-      }
-    }
-
-    //-------------------------------------------------------------------------
-    // This should not be called
-    //-------------------------------------------------------------------------
-    template<class SDType, class HitContainerType>
-    bool SDWrapper<SDType, HitContainerType>::
-    ProcessHits(G4Step*, G4TouchableHistory*)
-    {
-      G4ExceptionDescription description;
-      description << "ProcessHits: this SD shouldn't be assigned to volumes!";
-      G4Exception(GetName(), "SDError", FatalException, description);
-      return false;
-    }
-
-    //-------------------------------------------------------------------------
-    // Gather the hits into the WriteHandle from all the SDs
-    //-------------------------------------------------------------------------
-    template<class SDType, class HitContainerType>
-    void SDWrapper<SDType, HitContainerType>::
-    EndOfAthenaEvent()
-    {
-      if(!m_hitColl.isValid()) {
-        G4cerr << GetName() << " \tERROR\t" << "Hit collection WriteHandle is "
-               << "invalid!" << G4endl;
-        throw std::runtime_error("Invalid hit container WriteHandle: " +
-                                 m_hitColl.name());
-      }
-      // Loop over each SD and fill the container
-      for(auto& sd : m_sdList) {
-        sd->EndOfAthenaEvent( &*m_hitColl );
-      }
-    }
-
-    //-------------------------------------------------------------------------
-    // Explit template instantiations
-    //-------------------------------------------------------------------------
-    template class SDWrapper<FCS_StepInfoSD, ISF_FCS_Parametrization::FCS_StepInfoCollection>;
-
-  } // namespace detail
-
-} // namespace FCS_Param
diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/SDWrapper.h b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/SDWrapper.h
deleted file mode 100644
index ef3a248cf715e95334a6e6befe294f3b84f5c72e..0000000000000000000000000000000000000000
--- a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/SDWrapper.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef ISF_FASTCALOSIMSD_SDWRAPPER_H
-#define ISF_FASTCALOSIMSD_SDWRAPPER_H
-
-// System includes
-#include <string>
-#include <vector>
-#include <memory>
-
-// External includes
-#include "G4VSensitiveDetector.hh"
-
-// Framework includes
-#include "StoreGate/WriteHandle.h"
-
-
-// Forward declarations
-class FCS_StepInfoSD;
-namespace ISF_FCS_Parametrization {
-  class FCS_StepInfoCollection;
-}
-namespace FCS_Param
-{
-
-  namespace detail
-  {
-
-    /// @class SDWrapper
-    /// @brief A template class which wraps multiple sensitive detectors.
-    ///
-    /// Allows for SD tools to manage several SDs which collaborate to fill one
-    /// hit container in a multi-threading-friendly way. The wrapper owns the
-    /// WriteHandle for the hit container and gathers hits from each SD at the
-    /// end of an event.
-    ///
-    /// The inheritance from G4VSensitiveDetector is merely a trick so the SD
-    /// tool can save this object in the SensitiveDetectorBase thread-local
-    /// container. It also allows to create the hit container at the right time
-    /// via the SD Initialize method invoked by Geant4.
-    ///
-    /// Clients shouldn't use this generic template directly, but should use
-    /// the explicitly allowed specializations given below.
-    ///
-    /// @author Steve Farrell <Steven.Farrell@cern.ch>
-    ///
-    template<class SDType, class HitContainerType>
-    class SDWrapper : public G4VSensitiveDetector
-    {
-
-      public:
-
-        /// Alias to the SD list type
-        using SDList_t = std::vector< std::unique_ptr<SDType> >;
-
-        /// Construct the wrapper from the output collection name
-        SDWrapper(const std::string& name, const std::string& hitCollectionName);
-
-        /// Add an SD to this wrapper
-        void addSD(std::unique_ptr<SDType> sd);
-
-        /// Beginning of G4 event; initialize the hit collection.
-        virtual void Initialize(G4HCofThisEvent*) override final;
-
-        /// This method should not be called. It will throw.
-        virtual bool ProcessHits(G4Step*, G4TouchableHistory*) override final;
-
-        /// Gather the hits into the WriteHandle from all the SDs
-        void EndOfAthenaEvent();
-
-      private:
-
-        /// The hit container name
-        std::string m_hitCollName;
-
-        /// The hit container handle
-        SG::WriteHandle<HitContainerType> m_hitColl;
-
-        /// The list of sensitive detectors that I own and manage
-        SDList_t m_sdList;
-
-    }; // class SDWrapper
-
-  } // namespace detail
-
-
-  /// Template instantiation for LArG4SimpleSD
-  using FCS_StepInfoSDWrapper = detail::SDWrapper<FCS_StepInfoSD, ISF_FCS_Parametrization::FCS_StepInfoCollection>;
-
-} // namespace FCS_Param
-
-#endif
diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/TileFCS_StepInfoSD.cxx b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/TileFCS_StepInfoSD.cxx
deleted file mode 100644
index 41ca1bd2cbc1ae42d71150395b899620c0ae4668..0000000000000000000000000000000000000000
--- a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/TileFCS_StepInfoSD.cxx
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-//************************************************************
-//
-// Class TileFCS_StepInfoSD
-// Sensitive detector for TileCal G4 simulations with TileGeoModel
-//
-// Author: Vakho Tsulaia <Vakhtang.Tsulaia@cern.ch>
-//
-// Major updates: July, 2013 (Sergey)
-//
-//************************************************************
-
-// class header
-#include "TileFCS_StepInfoSD.h"
-/// Geant4 headers
-#include "G4Step.hh"
-#include "G4ThreeVector.hh"
-#include "G4TouchableHistory.hh"
-
-/// Athena headers
-#include "CaloDetDescr/CaloDetDescrManager.h"
-#include "TileG4Interfaces/ITileCalculator.h"
-
-TileFCS_StepInfoSD::TileFCS_StepInfoSD(G4String name, const FCS_Param::Config & config)
-  : FCS_StepInfoSD(name, config)
-  , m_calculator(config.m_TileCalculator)
-{
-}
-
-TileFCS_StepInfoSD::~TileFCS_StepInfoSD() {
-}
-
-G4bool TileFCS_StepInfoSD::ProcessHits(G4Step* a_step, G4TouchableHistory* /*ROhist*/) {
-  G4bool result(false);
-  // If there's no energy, there's no hit.  (Aside: Isn't this energy
-  // the same as the energy from the calculator?  Not necessarily.
-  // The calculator may include detector effects such as
-  // charge-collection which are not modeled by Geant4.)
-  if(a_step->GetTotalEnergyDeposit() <= 0.) { return result; }
-
-  if (m_calculator) {
-    //calculation of MicroHit with a_step
-    TileHitData hitData;
-    TileMicroHit micHit = m_calculator->GetTileMicroHit(a_step, hitData);
-    Identifier m_invalid_id;
-
-    //Check if MicroHit is not in scintillator
-    if ((micHit.pmt_up == m_invalid_id) && (micHit.pmt_down == m_invalid_id)) {
-      G4cout <<this->GetName()<<" WARNING ProcessHits: Invalid hit in Tile??"<<G4endl;
-      return result;
-    }
-    else {
-      // Store TileHits Information
-      if ((micHit.pmt_up == m_invalid_id) ||  (micHit.pmt_down == m_invalid_id)) {
-        G4cout <<this->GetName()<<" WARNING ProcessHits: Something wrong in identifier: One tile pmt: "<<micHit.pmt_up<<" "<<micHit.pmt_down<<std::endl;
-        G4cout <<this->GetName()<<" WARNING ProcessHits: E up: "<<micHit.e_up<<" E down: "<<micHit.e_down<<" T up: "<<micHit.time_up<<" T down: "<<micHit.time_down<<std::endl;
-      }
-      const G4ThreeVector pos = 0.5*(a_step->GetPreStepPoint()->GetPosition()+a_step->GetPostStepPoint()->GetPosition());
-
-      this->update_map(pos, micHit.pmt_up, micHit.e_up, micHit.time_up, true,1);
-      this->update_map(pos, micHit.pmt_down, micHit.e_down,micHit.time_down , true,1);
-    }
-  }
-  return true;
-}
-
-void TileFCS_StepInfoSD::update_map(const CLHEP::Hep3Vector & l_vec, const Identifier & l_cell, double l_energy, double l_time, bool l_valid, int l_detector)
-{
-  // Drop any hits that don't have a good identifier attached
-  if (!m_calo_dd_man->get_element(l_cell)) { return; }
-
-  auto map_item = m_hit_map.find( l_cell );
-  if (map_item==m_hit_map.end()) {
-    m_hit_map[l_cell] = new std::vector< ISF_FCS_Parametrization::FCS_StepInfo* >;
-    m_hit_map[l_cell]->push_back( new ISF_FCS_Parametrization::FCS_StepInfo( l_vec , l_cell , l_energy , l_time , l_valid , l_detector ) );
-  }
-  else {
-    bool match = false;
-    for (auto map_it : * map_item->second) {
-      // Time check
-      const double delta_t = std::fabs(map_it->time()-l_time);
-      if ( delta_t >= m_config.m_maxTimeTile ) { continue; }
-      // Distance check
-      const double hit_diff2 = map_it->position().diff2( l_vec );
-      if ( hit_diff2 >= m_config.m_maxRadiusTile ) { continue; }
-      // Found a match.  Make a temporary that will be deleted!
-      const ISF_FCS_Parametrization::FCS_StepInfo my_info( l_vec , l_cell , l_energy , l_time , l_valid , l_detector );
-      *map_it += my_info;
-      match = true;
-      break;
-    } // End of search for match in time and space
-    if (!match) {
-      map_item->second->push_back( new ISF_FCS_Parametrization::FCS_StepInfo( l_vec , l_cell , l_energy , l_time , l_valid , l_detector ) );
-    } // Didn't match
-  } // ID already in the map
-
-} // That's it for updating the map!
diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/TileFCS_StepInfoSD.h b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/TileFCS_StepInfoSD.h
deleted file mode 100644
index 7664e789390f3e49f8965800974f3357fb5a5fac..0000000000000000000000000000000000000000
--- a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/TileFCS_StepInfoSD.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-//************************************************************
-//
-// Class TileFCS_StepInfoSD
-// Sensitive detector for TileCal G4 simulations using TileGeoModel
-//
-// Author: Vakho Tsulaia <Vakhtang.Tsulaia@cern.ch>
-//
-// Major updates: July, 2013 (Sergey)
-//
-//************************************************************
-
-#ifndef ISF_FASTCALOSIMSD_TILEFCS_STEPINFOSD_H
-#define ISF_FASTCALOSIMSD_TILEFCS_STEPINFOSD_H
-
-// Base class header
-#include "FCS_StepInfoSD.h"
-
-class G4Step;
-class G4TouchableHistory;
-class ITileCalculator;
-
-class TileFCS_StepInfoSD: public FCS_StepInfoSD {
-public:
-  TileFCS_StepInfoSD(G4String name, const FCS_Param::Config& config);
-  ~TileFCS_StepInfoSD();
-
-  G4bool ProcessHits(G4Step*, G4TouchableHistory*) override final;
-
-  // Don't leave copy constructors or assignment operators around
-  TileFCS_StepInfoSD(const TileFCS_StepInfoSD&) = delete;
-  TileFCS_StepInfoSD& operator=(const TileFCS_StepInfoSD&) = delete;
-
-protected:
-  /// Keep a map instead of trying to keep the full vector.
-  /// At the end of the event we'll push the map back into the
-  /// FCS_StepInfoCollection in StoreGate.
-  virtual void update_map(const CLHEP::Hep3Vector & l_vec, const Identifier & l_cell, double l_energy, double l_time, bool l_valid, int l_detector) override final;
-
-private:
- ITileCalculator* m_calculator;
-};
-
-#endif // ISF_FASTCALOSIMSD_TILEFCS_STEPINFOSD_H
-
diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/components/ISF_FastCaloSimSD_entries.cxx b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/components/ISF_FastCaloSimSD_entries.cxx
deleted file mode 100644
index 0da3aea99724c9970f7a4c6e3a5d20c0e996439a..0000000000000000000000000000000000000000
--- a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/components/ISF_FastCaloSimSD_entries.cxx
+++ /dev/null
@@ -1,5 +0,0 @@
-#include "GaudiKernel/DeclareFactoryEntries.h"
-
-#include "../FCS_StepInfoSDTool.h"
-
-DECLARE_TOOL_FACTORY( FCS_Param::FCS_StepInfoSDTool )
diff --git a/Tools/PROCTools/python/RunTier0Tests.py b/Tools/PROCTools/python/RunTier0Tests.py
index 8106dcbc70e145c94cb8a2554c7cdc585ff7ef8f..69787fcd17e9588066d945e71d3ee4a6ea3815c5 100755
--- a/Tools/PROCTools/python/RunTier0Tests.py
+++ b/Tools/PROCTools/python/RunTier0Tests.py
@@ -25,48 +25,6 @@ formatter = logging.Formatter('%(levelname)-8s %(message)s')
 console.setFormatter(formatter)
 logging.getLogger('').addHandler(console)
 
-def RunCleanSTest(stest,input_file,pwd,release,extraArg,CleanRunHeadDir,UniqID):
-    s=stest 
-    logging.info("Running clean in rel "+release+" \"Sim_tf.py --AMIConfig "+s+" --inputEVNTFile "+ input_file + " --outputHITSFile myHITS.pool.root " + extraArg+"\"")
-
-    CleanDirName="clean_run_"+s+"_"+UniqID
-
-    cmd = ( " mkdir -p " + CleanRunHeadDir +" ;" + 
-            " cd "       + CleanRunHeadDir +" ;" + 
-            " mkdir -p " + CleanDirName    +" ;" + 
-            " cd "       + CleanDirName    +" ;" + 
-            " source $AtlasSetup/scripts/asetup.sh "+release+" >& /dev/null ;" +
-            " Sim_tf.py --AMIConfig="+s+" --inputEVNTFile "+input_file + " --outputHITSFile myHITS.pool.root " +extraArg+" > "+s+".log 2>&1"
-           )
-    subprocess.call(cmd,shell=True)
-
-    logging.info("Finished clean in rel "+release+" \"Sim_tf.py --AMIConfig "+s+" --inputEVNTFile "+ input_file + " --outputHITSFile myHITS.pool.root " + extraArg+"\"")
-    pass
-
-def RunPatchedSTest(stest,input_file,pwd,release,extraArg):
-    s=stest 
-    logging.info("Running patched in rel "+release+" \"Sim_tf.py --AMIConfig "+s+" --inputEVNTFile "+ input_file + " --outputHITSFile myHITS.pool.root " + extraArg+"\"")
-
-    if 'WorkDir_DIR' in os.environ:
-        cmake_build_dir = (os.environ['WorkDir_DIR'])
-        cmd = ( " cd "+pwd+" ;" + 
-                " source $AtlasSetup/scripts/asetup.sh "+release+"  >& /dev/null;" + 
-                " source "+cmake_build_dir+"/setup.sh ;" + 
-                " mkdir -p run_"+s+"; cd run_"+s+";" + 
-                " Sim_tf.py --AMIConfig="+s+" --inputEVNTFile "+input_file + " --outputHITSFile myHITS.pool.root " +extraArg+" > "+s+".log 2>&1"
-              )
-        subprocess.call(cmd,shell=True)
-    else :
-        cmd = ( " cd "+pwd+" ;" + 
-                " source $AtlasSetup/scripts/asetup.sh "+release+"  >& /dev/null;" + 
-                " mkdir -p run_"+s+"; cd run_"+s+";" + 
-                " Sim_tf.py --AMIConfig="+s+" --inputEVNTFile "+input_file + " --outputHITSFile myHITS.pool.root " +extraArg+" > "+s+".log 2>&1"
-              )
-        subprocess.call(cmd,shell=True)
-
-    logging.info("Finished patched in rel "+release+" \"Sim_tf.py --AMIConfig "+s+" --inputEVNTFile "+ input_file + " --outputHITSFile myHITS.pool.root " + extraArg+"\"")
-    pass
-
 def RunCleanQTest(qtest,pwd,release,extraArg,CleanRunHeadDir,UniqID, doR2A=False, trigConfig="2017"):
     q=qtest
     if q == 'q431' and doR2A:
@@ -214,7 +172,7 @@ def RunFrozenTier0PolicyTest(q,inputFormat,maxEvents,CleanRunHeadDir,UniqID,RunP
     if RunPatchedOnly: #overwrite
         clean_dir = '/afs/cern.ch/work/g/gencomm/public/referenceFiles/'+q
 
-    comparison_command = "acmd.py diff-root "+clean_dir+"/my"+inputFormat+".pool.root run_"+q+"/my"+inputFormat+".pool.root --error-mode resilient --ignore-leaves  RecoTimingObj_p1_EVNTtoHITS_timings  RecoTimingObj_p1_HITStoRDO_timings  RecoTimingObj_p1_RAWtoESD_mems  RecoTimingObj_p1_RAWtoESD_timings  RAWtoESD_mems  RAWtoESD_timings  ESDtoAOD_mems  ESDtoAOD_timings  HITStoRDO_mems  HITStoRDO_timings --entries "+str(maxEvents)+" > run_"+q+"/diff-root-"+q+"."+inputFormat+".log 2>&1"   
+    comparison_command = "acmd.py diff-root "+clean_dir+"/my"+inputFormat+".pool.root run_"+q+"/my"+inputFormat+".pool.root --error-mode resilient --ignore-leaves  RecoTimingObj_p1_HITStoRDO_timings  RecoTimingObj_p1_RAWtoESD_mems  RecoTimingObj_p1_RAWtoESD_timings  RAWtoESD_mems  RAWtoESD_timings  ESDtoAOD_mems  ESDtoAOD_timings  HITStoRDO_mems  HITStoRDO_timings --entries "+str(maxEvents)+" > run_"+q+"/diff-root-"+q+"."+inputFormat+".log 2>&1"   
     output,error = subprocess.Popen(['/bin/bash', '-c', comparison_command], stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()
 
     # We want to catch/print both container additions/subtractions as well as
@@ -417,7 +375,7 @@ def main():
     parser.add_option("-r","--ref"     ,type="string"        ,dest="ref"   ,default=None    ,help="define a particular reference release")
     parser.add_option("-v","--val"     ,type="string"        ,dest="val"   ,default=None    ,help="define a particular validation release")
     parser.add_option("-t","--trigRun2Config", type="string", dest="trigRun2Config_flag", default="2017"       ,help="specify the value of run2Config variable used by trigger. Allowed values are \"2016\" and \"2017\" (default)")
-    parser.add_option("-s","--sim", action="store_true", dest="sim_flag", default=False, help="sim will run the Sim_tf.py test")
+
     parser.add_option("-p","--patched"     ,action="store_true"       ,dest="patched_flag"        ,default=False    ,help="patched option will run q-tests just on your patched version of packages. Be warned! File output comparisons will only be performed against pre-defined reference files stored in the directory /afs/cern.ch/work/g/gencomm/public/referenceFiles and performance comparison tests will not be run.")
 
 
@@ -429,7 +387,6 @@ def main():
     else:
         extraArg = options.extraArgs
 
-    RunSim  = options.sim_flag
     RunFast = options.fast_flag
     RunPatchedOnly = options.patched_flag
     CleanRunHeadDir=options.cleanDir
@@ -484,11 +441,7 @@ def main():
 ########### Define which q-tests to run
 
         qTestsToRun = {}
-        if RunSim:
-            qTestsToRun = { 
-            's3126':[ 'EVNTtoHITS' ]
-            }
-        elif r2aMode:
+        if r2aMode:
             qTestsToRun = { 
             'q221':[ 'HITtoRDO','RAWtoESD','ESDtoAOD','AODtoTAG'],
             'q431':[ 'RAWtoALL']
@@ -522,24 +475,16 @@ def main():
 #        mysetup=mysetup+",builds"
         logging.info("------------------ Run Athena q-test jobs---------------"                )
 
-        sim_input_file = "/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/CommonInputs/ttbar_muplusjets-pythia6-7000.evgen.pool.root" # For sim test
-
         if RunFast:
             for qtest in qTestsToRun:
                 q=str(qtest)
 
                 def mycleanqtest():
-                    if RunSim:
-                        RunCleanSTest(q,sim_input_file,mypwd,cleanSetup,extraArg,CleanRunHeadDir,UniqName)
-                    else:   
-                        RunCleanQTest(q,mypwd,cleanSetup,extraArg,CleanRunHeadDir,UniqName, doR2A=r2aMode, trigConfig=trigRun2Config)
+                    RunCleanQTest(q,mypwd,cleanSetup,extraArg,CleanRunHeadDir,UniqName, doR2A=r2aMode, trigConfig=trigRun2Config)
                     pass
 
                 def mypatchedqtest():
-                    if RunSim:
-                        RunPatchedSTest(q,sim_input_file,mypwd,cleanSetup,extraArg)
-                    else:
-                        RunPatchedQTest(q,mypwd,mysetup,extraArg, doR2A=r2aMode, trigConfig=trigRun2Config)
+                    RunPatchedQTest(q,mypwd,mysetup,extraArg, doR2A=r2aMode, trigConfig=trigRun2Config)
                     pass
             
                 mythreads[q+"_clean"]   = threading.Thread(target=mycleanqtest)
@@ -555,11 +500,9 @@ def main():
             for qtest in qTestsToRun:
                 q=str(qtest)
 
+
                 def mypatchedqtest():
-                    if RunSim:
-                        RunPatchedSTest(q,sim_input_file,mypwd,cleanSetup,extraArg)
-                    else:
-                        RunPatchedQTest(q,mypwd,mysetup,extraArg, doR2A=r2aMode, trigConfig=trigRun2Config)
+                    RunPatchedQTest(q,mypwd,mysetup,extraArg, doR2A=r2aMode, trigConfig=trigRun2Config)
                     pass
             
                 mythreads[q+"_patched"] = threading.Thread(target=mypatchedqtest)
@@ -575,17 +518,11 @@ def main():
                 q=str(qtest)
 
                 def mycleanqtest():
-                    if RunSim:
-                        RunCleanSTest(q,sim_input_file,mypwd,cleanSetup,extraArg,CleanRunHeadDir,UniqName)
-                    else:   
-                        RunCleanQTest(q,mypwd,cleanSetup,extraArg,CleanRunHeadDir,UniqName,trigConfig=trigRun2Config)
+                    RunCleanQTest(q,mypwd,cleanSetup,extraArg,CleanRunHeadDir,UniqName,trigConfig=trigRun2Config)
                     pass
                 
                 def mypatchedqtest():
-                    if RunSim:
-                        RunPatchedSTest(q,sim_input_file,mypwd,cleanSetup,extraArg)
-                    else:   
-                        RunPatchedQTest(q,mypwd,mysetup,extraArg,trigConfig=trigRun2Config)
+                    RunPatchedQTest(q,mypwd,mysetup,extraArg,trigConfig=trigRun2Config)
                     pass
 
                 mythreads[q+"_clean"]   = threading.Thread(target=mycleanqtest)
@@ -598,6 +535,7 @@ def main():
 
 #Run post-processing tests
 
+
         All_Tests_Passed = True
 
         for qtest in qTestsToRun:                                       
@@ -611,15 +549,11 @@ def main():
                 All_Tests_Passed = False
                 continue
 
-            if RunSim:
-                if not RunFrozenTier0PolicyTest(q,"HITS",10,CleanRunHeadDir,UniqName,RunPatchedOnly):
-                    All_Tests_Passed = False
-            else:
-                if not RunFrozenTier0PolicyTest(q,"ESD",10,CleanRunHeadDir,UniqName,RunPatchedOnly):
-                    All_Tests_Passed = False
+            if not RunFrozenTier0PolicyTest(q,"ESD",10,CleanRunHeadDir,UniqName,RunPatchedOnly):
+                All_Tests_Passed = False
 
-                if not RunFrozenTier0PolicyTest(q,"AOD",20,CleanRunHeadDir,UniqName,RunPatchedOnly):
-                    All_Tests_Passed = False
+            if not RunFrozenTier0PolicyTest(q,"AOD",20,CleanRunHeadDir,UniqName,RunPatchedOnly):
+                All_Tests_Passed = False
 
             if RunPatchedOnly: continue  # Performance checks against static references not possible
     
@@ -656,3 +590,4 @@ def main():
 
 if __name__ == '__main__':
         main()
+
diff --git a/Tools/PyJobTransforms/python/trfExe.py b/Tools/PyJobTransforms/python/trfExe.py
index 43a9df2838f6ba133e90c5461976db4a84e2443d..45080afca4585173ef7df2fcb680850860e4c582 100755
--- a/Tools/PyJobTransforms/python/trfExe.py
+++ b/Tools/PyJobTransforms/python/trfExe.py
@@ -1078,9 +1078,8 @@ class athenaExecutor(scriptExecutor):
             ignorePatterns = trfValidation.ignorePatterns(files = athenaExecutor._defaultIgnorePatternFile, extraSearch=igPat)
         
         # Now actually scan my logfile
-        msg.info('Scanning logfile {0} for errors in substep {1}'.format(self._logFileName, self._substep))
-        self._logScan = trfValidation.athenaLogFileReport(logfile=self._logFileName, substepName=self._substep,
-                                                          ignoreList=ignorePatterns)
+        msg.info('Scanning logfile {0} for errors'.format(self._logFileName))
+        self._logScan = trfValidation.athenaLogFileReport(logfile = self._logFileName, ignoreList = ignorePatterns)
         worstError = self._logScan.worstError()
         self._dbMonitor = self._logScan.dbMonitor()
         
diff --git a/Tools/PyJobTransforms/python/trfUtils.py b/Tools/PyJobTransforms/python/trfUtils.py
index 9b9f0a5ce2b65815f736a9c480cf30a706d87a67..c4bfac7aa464cea3694b9db58bf91f67f8b0f265 100644
--- a/Tools/PyJobTransforms/python/trfUtils.py
+++ b/Tools/PyJobTransforms/python/trfUtils.py
@@ -302,19 +302,14 @@ def shQuoteStrings(strArray = sys.argv):
 ## @brief Generator to return lines and line count from a file
 #  @param filename: Filename to open and deliver lines from
 #  @param strip: If lines get stripped before being returned (default @c True)
-#  @param removeTimestamp: Removes timestamp from left.(default @c True) Since strings are removed only from left,
-#                          this option requires explicit removal of substepName.
-#  @param substepName: Removes substepName from left, if it's value is provided. (default @c None)
 #  @note This is useful so that multiple parts of code can co-operatively take lines from the file
-def lineByLine(filename, strip=True, removeTimestamp=True, substepName=None):
+def lineByLine(filename, strip = True, removeTimestamp = True):
     linecounter = 0
     f = open(filename, 'r')
     for line in f:
         linecounter += 1
-        if substepName and isinstance(substepName, str):    # Remove substepName only if caller provides that string.
-            line = line.lstrip(substepName)
         if removeTimestamp:
-            line = line.lstrip('0123456789:-, ')            # Remove timestamps in both serial and MP mode.
+            line = line.lstrip('0123456789:-, ') # Remove timestamps in both serial and MP mode.
         if strip:
             line = line.strip()
         yield line, linecounter
diff --git a/Tools/PyJobTransforms/python/trfValidation.py b/Tools/PyJobTransforms/python/trfValidation.py
index 06e87ce9e96612e53f2b3bd6f803dad7c8315716..36131827fa7f805e690ee397f5b0307aef41f62a 100644
--- a/Tools/PyJobTransforms/python/trfValidation.py
+++ b/Tools/PyJobTransforms/python/trfValidation.py
@@ -213,9 +213,8 @@ class logFileReport(object):
 class athenaLogFileReport(logFileReport):
     ## @brief Class constructor
     #  @param logfile Logfile (or list of logfiles) to scan
-    #  @param substepName Name of the substep executor, that has requested this log scan
     #  @param msgLimit The number of messages in each category on which a
-    def __init__(self, logfile, substepName=None, msgLimit=10, msgDetailLevel=stdLogLevels['ERROR'], ignoreList=None):
+    def __init__(self, logfile, msgLimit=10, msgDetailLevel=stdLogLevels['ERROR'], ignoreList=None):
         if ignoreList:
             self._ignoreList = ignoreList
         else:
@@ -230,7 +229,6 @@ class athenaLogFileReport(logFileReport):
 
         self._metaPat = re.compile(r"MetaData:\s+(.*?)\s*=\s*(.*)$")
         self._metaData = {}
-        self._substepName = substepName
         self._msgLimit = msgLimit
 
         self.resetReport()
@@ -263,6 +261,7 @@ class athenaLogFileReport(logFileReport):
         self._dbbytes = 0
         self._dbtime  = 0.0
 
+
     def scanLogFile(self, resetReport=False):
         if resetReport:
             self.resetReport()
@@ -271,7 +270,7 @@ class athenaLogFileReport(logFileReport):
             msg.debug('Now scanning logfile {0}'.format(log))
             # N.B. Use the generator so that lines can be grabbed by subroutines, e.g., core dump svc reporter
             try:
-                myGen = trfUtils.lineByLine(log, substepName=self._substepName)
+                myGen = trfUtils.lineByLine(log)
             except IOError, e:
                 msg.error('Failed to open transform logfile {0}: {1:s}'.format(log, e))
                 # Return this as a small report
@@ -383,7 +382,6 @@ class athenaLogFileReport(logFileReport):
                     self._dbbytes += int(a.group('bytes'))
                     self._dbtime  += float(a.group('time'))
 
-
     ## Return data volume and time spend to retrieve information from the database
     def dbMonitor(self):
         return {'bytes' : self._dbbytes, 'time' : self._dbtime} if self._dbbytes > 0 or self._dbtime > 0 else None
diff --git a/Tools/PyJobTransforms/test/test_trfValidation.py b/Tools/PyJobTransforms/test/test_trfValidation.py
index 76364aad5546f6bc76d8b7adbef82fe3bd1597e2..7581d488322ad19965497b2b80dca6bd3332d7b9 100755
--- a/Tools/PyJobTransforms/test/test_trfValidation.py
+++ b/Tools/PyJobTransforms/test/test_trfValidation.py
@@ -178,7 +178,7 @@ class eventCheckTests(unittest.TestCase):
                                          'maxEvents': None,
                                          'evAccEff': 0.99})
         self.assertRaises(trfExceptions.TransformValidationException, evmatch.decide)
-
+        
     def test_inputGlobWithFail(self):
         evmatch = eventMatch(executor=None)
         evmatch.configureCheck(override={'inEventDict': {'NTUP_ZEE': 100},
@@ -540,8 +540,7 @@ class athenaLogFileReportTests(unittest.TestCase):
         self.myFileReport10 = athenaLogFileReport('file10')
 
     def tearDown(self):
-        for f in 'file1', 'file2', 'file3', 'file4', 'file5', 'file6', 'file7', 'file8', 'file9', 'file10',\
-                 'logWithSubstepNameSerial', 'logWithSubstepNameMP':
+        for f in 'file1', 'file2', 'file3', 'file4', 'file5', 'file6', 'file7', 'file8', 'file9', 'file10':
             try:
                 os.unlink(f)
             except OSError:
@@ -570,44 +569,6 @@ class athenaLogFileReportTests(unittest.TestCase):
                                                            'firstError': {'count': 1, 'firstLine': 9,
                                                                           'message': 'DRAW_TOPSLMUKernel                                ERROR Incompatible vectors - different length'},})
 
-    def test_logscanErrorWithSubstepNameSerial(self):
-        testLogERRORwithSubstepNameSerial = '''
-RAWtoALL 22:21:40 ToolSvc.TileROD_Decoder   INFO    ROD 540007 has unexpected data size
-RAWtoALL 22:21:40 ToolSvc.TileROD_Decoder   WARNING Frag has unexpected size ignoring 6 words to end of ROD frag
-RAWtoALL 22:21:40 ToolSvc.TileROD_Decoder   ERROR   ROB 540007 ROD 540007 has unexpected data size
-RAWtoALL 22:21:40 AlgErrorAuditor           ERROR   Illegal Return Code: Algorithm ManagedAthenaTileMon reported an \
-ERROR, but returned a StatusCode "SUCCESS"'''
-
-        logFileName = 'logWithSubstepNameSerial'
-        with open(logFileName, 'w') as logFile:
-            print >> logFile, testLogERRORwithSubstepNameSerial
-
-        logFileReportSerial = athenaLogFileReport(logfile=logFileName, substepName='RAWtoALL')
-        expectedError = dict(level='ERROR', nLevel=logging.ERROR,
-                             firstError=dict(count=1, firstLine=4, message='ToolSvc.TileROD_Decoder   ERROR   ROB 54'
-                                                                           '0007 ROD 540007 has unexpected data size'))
-        self.assertEqual(logFileReportSerial.worstError(), expectedError)
-
-    def test_logscanErrorWithSubstepNameMP(self):
-        testLogERRORwithSubstepNameMP = '''
-RAWtoALL 22:21:40 2017-07-13 19:23:38,171 ToolSvc.TileROD_Decoder   INFO    ROD 540007 has unexpected data size
-RAWtoALL 22:21:40 2017-07-13 19:23:38,171 ToolSvc.TileROD_Decoder   WARNING Frag 0x40f has unexpected size ignoring \
-6 words till the end of ROD frag
-RAWtoALL 22:21:40 2017-07-13 19:23:38,171 ToolSvc.TileROD_Decoder   ERROR   ROB 540007 ROD 540007 has unexpected \
-data size
-RAWtoALL 22:21:40 2017-07-13 19:23:38,184 AlgErrorAuditor           ERROR   Illegal Return Code: Algorithm \
-ManagedAthenaTileMon reported an ERROR, but returned a StatusCode "SUCCESS"'''
-
-        logFileName = 'logWithSubstepNameMP'
-        with open(logFileName, 'w') as logFile:
-            print >> logFile, testLogERRORwithSubstepNameMP
-
-        logFileReportMP = athenaLogFileReport(logfile=logFileName, substepName='RAWtoALL')
-        expectedError = dict(level='ERROR', nLevel=logging.ERROR,
-                             firstError=dict(count=1, firstLine=4, message='ToolSvc.TileROD_Decoder   ERROR   ROB '
-                                                                           '540007 ROD 540007 has unexpected data size'))
-        self.assertEqual(logFileReportMP.worstError(), expectedError)
-
     def test_badAlloc(self):
         self.assertEqual(self.myFileReport4.worstError(), {'level': 'CATASTROPHE', 'nLevel': stdLogLevels['CATASTROPHE'],
                                                            'firstError': {'count': 1, 'firstLine': 11,
diff --git a/Trigger/TrigMonitoring/TrigMuonMonitoring/python/TrigMuonMonitCategory.py b/Trigger/TrigMonitoring/TrigMuonMonitoring/python/TrigMuonMonitCategory.py
index 7bb3c9a1b322d06b21e5b4b3aef4640a371ac74e..1e00d57b424ec2776bb24b631571da83e0a5fc78 100644
--- a/Trigger/TrigMonitoring/TrigMuonMonitoring/python/TrigMuonMonitCategory.py
+++ b/Trigger/TrigMonitoring/TrigMuonMonitoring/python/TrigMuonMonitCategory.py
@@ -7,9 +7,9 @@ monitoring_muonNonIso_HI = ['HLT_mu15_L1MU10','HLT_mu14']#8TeV
 monitoring_muonNonIso_pp = ['HLT_mu60']
 #monitoring_muonNonIso_pp = ['HLT_mu50']
 
-monitoring_muonIso = ['HLT_mu26_ivarmedium']
+monitoring_muonIso = ['HLT_mu26_ivarmedium','HLT_mu26_imedium']
 monitoring_muonIso_HI = ['']
-monitoring_muonIso_pp = ['HLT_mu26_ivarmedium']
+monitoring_muonIso_pp = ['HLT_mu26_ivarmedium','HLT_mu26_imedium']
 
 monitoring_MSonly = ['HLT_mu60_0eta105_msonly']
 monitoring_MSonly_HI = ['HLT_mu15_msonly']
diff --git a/Trigger/TrigMonitoring/TrigMuonMonitoring/src/MuZTPMon.cxx b/Trigger/TrigMonitoring/TrigMuonMonitoring/src/MuZTPMon.cxx
index 77444cd3d4f7ec5bce659ff5eec07c81a578b1e1..fa711772789854ec2597a590b359997aefb5e57f 100644
--- a/Trigger/TrigMonitoring/TrigMuonMonitoring/src/MuZTPMon.cxx
+++ b/Trigger/TrigMonitoring/TrigMuonMonitoring/src/MuZTPMon.cxx
@@ -361,7 +361,7 @@ StatusCode HLTMuonMonTool::fillMuZTPDQA()
   //LOOP OVER ALL TRIGGER CHAINS
   for(std::map<std::string, std::string>::iterator itmap=m_ztpmap.begin();itmap!=m_ztpmap.end();++itmap){
 
-    ATH_MSG_DEBUG("Starting chain " << itmap->first << " => " << itmap->second);
+    ATH_MSG_DEBUG("Starting chain " << itmap->first);  
 
     std::string histdirmuztp="HLT/MuonMon/MuZTP/"+itmap->second;
     double ptcut=999999.;