diff --git a/Tools/PROCTools/python/RunTier0Tests.py b/Tools/PROCTools/python/RunTier0Tests.py
index 05b7cffc395f43e81203e784fb1a59aeb52cc0cc..86912b3c24a14befcca2884be20ed9669980b6a7 100755
--- a/Tools/PROCTools/python/RunTier0Tests.py
+++ b/Tools/PROCTools/python/RunTier0Tests.py
@@ -24,10 +24,11 @@ formatter = logging.Formatter('%(levelname)-8s %(message)s')
 console.setFormatter(formatter)
 logging.getLogger('').addHandler(console)
 
-def RunCleanQTest(qtest,pwd,release,extraArg,CleanRunHeadDir,UniqID):
+def RunCleanQTest(qtest,pwd,release,extraArg,CleanRunHeadDir,UniqID, doR2A=False):
     q=qtest
-    if q != "q221":
-        extraArg=""
+    if q == 'q431' and doR2A:
+        extraArg += " --steering='doRAWtoALL'"
+
     logging.info("Running clean in rel "+release+" \"Reco_tf.py --AMI "+q+" "+extraArg+"\"")
     #Check if CleanRunHead directory exists if not exist with a warning 
 
@@ -38,10 +39,11 @@ def RunCleanQTest(qtest,pwd,release,extraArg,CleanRunHeadDir,UniqID):
     logging.info("Finished clean \"Reco_tf.py --AMI "+q+"\"")
     pass
 
-def RunPatchedQTest(qtest,pwd,release,theTestArea,extraArg):
+def RunPatchedQTest(qtest,pwd,release,theTestArea,extraArg, doR2A=False):
     q=qtest
-    if q != "q221":
-        extraArg=""
+    if q == 'q431' and doR2A:
+        extraArg += " --steering='doRAWtoALL'"
+
     logging.info("Running patched in rel "+release+" \"Reco_tf.py --AMI "+q+" "+extraArg+"\"")
 
     if 'WorkDir_DIR' in os.environ:
@@ -180,7 +182,7 @@ def RunFrozenTier0PolicyTest(q,inputFormat,maxEvents,CleanRunHeadDir,UniqID):
 
     clean_dir = CleanRunHeadDir+"/clean_run_"+q+"_"+UniqID
 
-    comparison_command = "acmd.py diff-root "+clean_dir+"/my"+inputFormat+".pool.root run_"+q+"/my"+inputFormat+".pool.root --ignore-leaves --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"   
+    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()
 
     passed_frozen_tier0_test=False
@@ -297,7 +299,6 @@ def RunWARNINGSTest(q,qTestsToRun,CleanRunHeadDir,UniqID):
             for w in wn:
                 logging.error(w)
             _Test=False
-            sys.exit(0)
 
         elif (len(warnings_test) < len(warnings_ref)):
             logging.error("Test log file "+test_file+" has "+str(len(warnings_ref) - len(warnings_test))+" less warnings than the reference log file "+ref_file)
@@ -363,20 +364,24 @@ def main():
     parser=OptionParser(usage="\n ./RunTier0Test.py \n")
 
     parser.add_option("-e","--extra"     ,type="string"       ,dest="extraArgs"        ,default=""    ,help="define additional args to pass e.g. --preExec 'r2e':'from TriggerJobOpts.TriggerFlags import TriggerFlags;TriggerFlags.triggerMenuSetup=\"MC_pp_v5\"' ")
+    parser.add_option("-a","--r2a"      ,action="store_true"       ,dest="r2a_flag"         ,default=False    ,help="r2a option will run q431 test in r2a mode")
     parser.add_option("-f","--fast"     ,action="store_true"       ,dest="fast_flag"        ,default=False    ,help="fast option will run all q tests simultaneously, such that it will run faster if you have 4 cpu core slots on which to run. Be warned! Only recommended when running on a high performance machine, not lxplus")
     parser.add_option("-c","--cleanDir"     ,type="string"       ,dest="cleanDir"        ,default="/tmp/"    ,help="specify the head directory for running the clean Tier0 tests. The default is /tmp/${USER}")
     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("-v","--val"     ,type="string"        ,dest="val"   ,default=None    ,help="define a particular validation release")
 
     (options,args)=parser.parse_args()
 
     extraArg = ""
     if options.extraArgs == "MC_pp_v5":
         extraArg = "--preExec 'r2e':'from TriggerJobOpts.TriggerFlags import TriggerFlags;TriggerFlags.triggerMenuSetup=\"MC_pp_v5\"' "
+    else:
+        extraArg = options.extraArgs
 
     RunFast = options.fast_flag
     CleanRunHeadDir=options.cleanDir
+    r2aMode = options.r2a_flag
+
 #        tct_ESD = "root://eosatlas//eos/atlas/atlascerngroupdisk/proj-sit/rtt/prod/tct/"+latest_nightly+"/"+release+"/"+platform+"/offline/Tier0ChainTests/"+q+"/myESD.pool.root"                                                       
     
     
@@ -424,10 +429,19 @@ def main():
         
 
 ########### Define which q-tests to run
-        qTestsToRun = { 
+
+        qTestsToRun = {}
+        if r2aMode:
+            qTestsToRun = { 
+            'q221':[ 'HITtoRDO','RAWtoESD','ESDtoAOD','AODtoTAG'],
+            'q431':[ 'RAWtoALL']
+            }
+        else:
+            qTestsToRun = { 
             'q221':[ 'HITtoRDO','RAWtoESD','ESDtoAOD','AODtoTAG'],
             'q431':[ 'RAWtoESD','ESDtoAOD','AODtoTAG']
             }          
+
         
 ########### Get release info
         mysetup = GetReleaseSetup() 
@@ -458,11 +472,11 @@ def main():
                 q=str(qtest)
 
                 def mycleanqtest():
-                    RunCleanQTest(q,mypwd,cleanSetup,extraArg,CleanRunHeadDir,UniqName)
+                    RunCleanQTest(q,mypwd,cleanSetup,extraArg,CleanRunHeadDir,UniqName, doR2A=r2aMode)
                     pass
     
                 def mypatchedqtest():
-                    RunPatchedQTest(q,mypwd,mysetup,myTestArea,extraArg)
+                    RunPatchedQTest(q,mypwd,mysetup,myTestArea,extraArg, doR2A=r2aMode)
                     pass
             
                 mythreads[q+"_clean"]   = threading.Thread(target=mycleanqtest)
diff --git a/Tools/PROCTools/python/diffTAGTree.py b/Tools/PROCTools/python/diffTAGTree.py
index a9f4aed86b9fe5fb7bbdccbb6002b11d7848b900..e14178462ce24dcfd87f33db3a7a172ec8e6e005 100755
--- a/Tools/PROCTools/python/diffTAGTree.py
+++ b/Tools/PROCTools/python/diffTAGTree.py
@@ -7,7 +7,7 @@ sys.argv += [ '-b' ] # tell ROOT to not use graphics
 from ROOT import TFile, TTree
 sys.argv.pop()
 
-setIgnoreLeaves=("Token","StreamESD_ref","StreamRDO_ref","StreamAOD_ref","RecoTimeRAWtoESD","RecoTimeESDtoAOD","JetMissingETWord")
+setIgnoreLeaves=("Token","StreamESD_ref","StreamRDO_ref","StreamAOD_ref","RecoTimeRAWtoESD","RecoTimeESDtoAOD","RecoTimeRAWtoALL","JetMissingETWord")
 
 def diffTTree(tOld,tNew,details=None): 
     nOld = tOld.GetEntriesFast()
diff --git a/Tools/PROCTools/python/getFileLists.py b/Tools/PROCTools/python/getFileLists.py
index 6bbfb264e298b96b1d80789e56a0f278233ff078..c8a1e0652224a5f871a36ff875a1645b65450143 100644
--- a/Tools/PROCTools/python/getFileLists.py
+++ b/Tools/PROCTools/python/getFileLists.py
@@ -137,7 +137,7 @@ class findTCTFiles:
         
         names = self._commonDirs.keys()
         for tctname in names:
-            if (tctname.startswith("LatestRun") or tctname.endswith("_MP") or tctname.endswith("IDCosmic0") or tctname.endswith("_PHYSVAL")):
+            if (tctname.startswith("LatestRun") or tctname.endswith("_MP") or tctname.endswith("IDCosmic0") or tctname.endswith("_PHYSVAL") or tctname.endswith("Derived_Outputs")):
                 print "skipping "+tctname
                 self._commonDirs.pop(tctname)
                 continue