From 465fdf7ef80f9ae0e7d53a29e3316373c7fb6e6a Mon Sep 17 00:00:00 2001
From: Tim Adye <tim.adye@cern.ch>
Date: Fri, 18 Dec 2020 12:52:47 +0000
Subject: [PATCH] rename old ART steering files to _old, and new ones to
 replace them. Only 3 tests have new steering, so the rest still need to be
 added

---
 .../share/TIDAdata-run3-larged0-el.dat        |  27 ++++
 .../share/TIDAdata-run3-larged0.dat           |  27 ++++
 .../TIDAdata-run3-offline-larged0-el.dat      |  27 ++++
 .../share/TIDAdata-run3-offline-larged0.dat   |  27 ++++
 .../TrigInDetValidation/CMakeLists.txt        |   2 +-
 .../python/TrigInDetArtSteps.py               | 153 +++++++++---------
 ...NewArtSteps.py => TrigInDetOldArtSteps.py} | 148 +++++++++--------
 .../share/TrigInDetValidation_Base.py         | 104 ++++--------
 ...Base.py => TrigInDetValidation_OldBase.py} |  87 +++++++---
 .../test/test_trigID_all_ttbar_pu40.py        |  20 ++-
 .../test/test_trigID_all_ttbar_pu40_new.py    |  53 ------
 .../test/test_trigID_all_ttbar_pu40_old.py    |   2 +-
 .../test/test_trigID_all_ttbar_pu80.py        | 117 +++-----------
 .../test/test_trigID_all_ttbar_pu80_old.py    | 127 +++++++++++++++
 .../test/test_trigID_all_ttbar_pu80_short.py  | 117 +++-----------
 .../test_trigID_all_ttbar_pu80_short_old.py   | 127 +++++++++++++++
 .../test/test_trigID_all_ttbar_pu80_st.py     | 118 +++-----------
 .../test/test_trigID_all_ttbar_pu80_st_old.py | 128 +++++++++++++++
 .../test/test_trigID_bjet_nopps_pu40.py       |   9 +-
 .../test/test_trigID_bjet_nopps_pu40_old.py   |  45 ++++++
 .../test/test_trigID_bjet_pu40.py             |   9 +-
 .../test/test_trigID_bjet_pu40_old.py         |  40 +++++
 .../test/test_trigID_el_jpsiee_pu40.py        | 112 +++----------
 .../test/test_trigID_el_jpsiee_pu40_old.py    | 125 ++++++++++++++
 .../test/test_trigID_el_singlee_7-80.py       | 118 +++-----------
 .../test_trigID_el_singlee_7-80_larged0.py    | 118 +++-----------
 ...test_trigID_el_singlee_7-80_larged0_old.py | 125 ++++++++++++++
 .../test_trigID_el_singlee_7-80_larged0_pu.py | 118 +++-----------
 ...t_trigID_el_singlee_7-80_larged0_pu_old.py | 125 ++++++++++++++
 .../test/test_trigID_el_singlee_7-80_old.py   | 125 ++++++++++++++
 .../test/test_trigID_el_singlee_7-80_pu40.py  | 118 +++-----------
 .../test_trigID_el_singlee_7-80_pu40_old.py   | 125 ++++++++++++++
 .../test/test_trigID_el_zee_pu40.py           | 118 +++-----------
 .../test/test_trigID_el_zee_pu40_old.py       | 125 ++++++++++++++
 .../test/test_trigID_el_zee_pu40_short.py     | 118 +++-----------
 .../test/test_trigID_el_zee_pu40_short_old.py | 125 ++++++++++++++
 .../test/test_trigID_el_zee_pu40_st.py        | 118 +++-----------
 .../test/test_trigID_el_zee_pu40_st_old.py    | 125 ++++++++++++++
 .../test/test_trigID_fsjet_ml_pu40.py         |  10 +-
 .../test/test_trigID_fsjet_ml_pu40_old.py     |  45 ++++++
 .../test/test_trigID_fsjet_nopps_pu40.py      |  11 +-
 .../test/test_trigID_fsjet_pu40.py            |  11 +-
 .../test/test_trigID_fsjet_pu40_new.py        |  51 ------
 .../test/test_trigID_fsjet_pu40_old.py        |  43 +++++
 .../test/test_trigID_fsjet_pu40_st.py         |  10 +-
 .../test/test_trigID_fsjet_pu40_st_old.py     |  43 +++++
 .../test/test_trigID_minbias.py               |   7 +-
 .../test/test_trigID_minbias_old.py           |  44 +++++
 .../test/test_trigID_mu_bphys.py              | 101 ++----------
 ..._mt-old.py => test_trigID_mu_bphys_old.py} |  37 ++---
 .../test/test_trigID_mu_singlemu_larged0.py   | 111 +++----------
 .../test_trigID_mu_singlemu_larged0_old.py    | 125 ++++++++++++++
 .../test_trigID_mu_singlemu_larged0_pu.py     | 109 +++----------
 .../test_trigID_mu_singlemu_larged0_pu_old.py | 125 ++++++++++++++
 .../test/test_trigID_mu_zmumu_pu40.py         |  16 +-
 .../test/test_trigID_mu_zmumu_pu40_build.py   |  67 ++------
 .../test_trigID_mu_zmumu_pu40_build_old.py    |  70 ++++++++
 .../test/test_trigID_mu_zmumu_pu40_old.py     |  46 ++++++
 .../test/test_trigID_mu_zmumu_pu40_short.py   |  16 +-
 .../test_trigID_mu_zmumu_pu40_short_old.py    |  46 ++++++
 .../test/test_trigID_mu_zmumu_pu40_st.py      |  16 +-
 .../test/test_trigID_mu_zmumu_pu40_st_old.py  |  46 ++++++
 .../test/test_trigID_tau_ztautau_pu46.py      |  79 ++-------
 .../test/test_trigID_tau_ztautau_pu46_new.py  |  45 ------
 .../test/test_trigID_tau_ztautau_pu46_old.py  |  94 +++++++++++
 .../test/test_trigID_tau_ztautau_pu46_st.py   |  79 ++-------
 .../test_trigID_tau_ztautau_pu46_st_old.py    |  94 +++++++++++
 67 files changed, 3094 insertions(+), 1955 deletions(-)
 create mode 100755 Trigger/TrigAnalysis/TrigInDetAnalysisUser/share/TIDAdata-run3-larged0-el.dat
 create mode 100755 Trigger/TrigAnalysis/TrigInDetAnalysisUser/share/TIDAdata-run3-larged0.dat
 create mode 100755 Trigger/TrigAnalysis/TrigInDetAnalysisUser/share/TIDAdata-run3-offline-larged0-el.dat
 create mode 100755 Trigger/TrigAnalysis/TrigInDetAnalysisUser/share/TIDAdata-run3-offline-larged0.dat
 rename Trigger/TrigValidation/TrigInDetValidation/python/{TrigInDetNewArtSteps.py => TrigInDetOldArtSteps.py} (70%)
 mode change 100755 => 100644 Trigger/TrigValidation/TrigInDetValidation/share/TrigInDetValidation_Base.py
 rename Trigger/TrigValidation/TrigInDetValidation/share/{TrigInDetValidation_NewBase.py => TrigInDetValidation_OldBase.py} (53%)
 mode change 100755 => 100644
 delete mode 100755 Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu40_new.py
 create mode 100755 Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu80_old.py
 create mode 100755 Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu80_short_old.py
 create mode 100755 Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu80_st_old.py
 create mode 100755 Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_bjet_nopps_pu40_old.py
 create mode 100755 Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_bjet_pu40_old.py
 create mode 100755 Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_jpsiee_pu40_old.py
 create mode 100755 Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_singlee_7-80_larged0_old.py
 create mode 100755 Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_singlee_7-80_larged0_pu_old.py
 create mode 100755 Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_singlee_7-80_old.py
 create mode 100755 Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_singlee_7-80_pu40_old.py
 create mode 100755 Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_zee_pu40_old.py
 create mode 100755 Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_zee_pu40_short_old.py
 create mode 100755 Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_zee_pu40_st_old.py
 create mode 100755 Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_fsjet_ml_pu40_old.py
 delete mode 100755 Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_fsjet_pu40_new.py
 create mode 100755 Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_fsjet_pu40_old.py
 create mode 100755 Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_fsjet_pu40_st_old.py
 create mode 100755 Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_minbias_old.py
 rename Trigger/TrigValidation/TrigInDetValidation/test/{test_trigID_mu_zmumu_pu40_mt-old.py => test_trigID_mu_bphys_old.py} (74%)
 create mode 100755 Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_singlemu_larged0_old.py
 create mode 100755 Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_singlemu_larged0_pu_old.py
 create mode 100755 Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_zmumu_pu40_build_old.py
 create mode 100755 Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_zmumu_pu40_old.py
 create mode 100755 Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_zmumu_pu40_short_old.py
 create mode 100755 Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_zmumu_pu40_st_old.py
 delete mode 100755 Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_tau_ztautau_pu46_new.py
 create mode 100755 Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_tau_ztautau_pu46_old.py
 create mode 100755 Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_tau_ztautau_pu46_st_old.py

diff --git a/Trigger/TrigAnalysis/TrigInDetAnalysisUser/share/TIDAdata-run3-larged0-el.dat b/Trigger/TrigAnalysis/TrigInDetAnalysisUser/share/TIDAdata-run3-larged0-el.dat
new file mode 100755
index 00000000000..c74433b5c08
--- /dev/null
+++ b/Trigger/TrigAnalysis/TrigInDetAnalysisUser/share/TIDAdata-run3-larged0-el.dat
@@ -0,0 +1,27 @@
+// emacs: this is -*- c++ -*-
+
+#define LARGED0_EL
+
+#include "TIDAdata_cuts.dat"
+
+refChain = "Truth";
+//refChain = "Offline";
+//refChain = "Electrons";
+//refChain = "Muons";
+//refChain = "Taus";
+
+
+MinVertices = 0;
+
+
+#include "TIDAdata-chains-run3.dat"
+
+
+InitialiseFirstEvent = 1;
+
+outputFile = "data-output.root";
+DataFiles = { "TrkNtuple-0000.root"};
+//DataSets = {"./"}
+
+
+#include "TIDAbeam.dat"
diff --git a/Trigger/TrigAnalysis/TrigInDetAnalysisUser/share/TIDAdata-run3-larged0.dat b/Trigger/TrigAnalysis/TrigInDetAnalysisUser/share/TIDAdata-run3-larged0.dat
new file mode 100755
index 00000000000..73a3c6bf8fa
--- /dev/null
+++ b/Trigger/TrigAnalysis/TrigInDetAnalysisUser/share/TIDAdata-run3-larged0.dat
@@ -0,0 +1,27 @@
+// emacs: this is -*- c++ -*-
+
+#define LARGED0
+
+#include "TIDAdata_cuts.dat"
+
+refChain = "Truth";
+//refChain = "Offline";
+//refChain = "Electrons";
+//refChain = "Muons";
+//refChain = "Taus";
+
+
+MinVertices = 0;
+
+
+#include "TIDAdata-chains-run3.dat"
+
+
+InitialiseFirstEvent = 1;
+
+outputFile = "data-output.root";
+DataFiles = { "TrkNtuple-0000.root"};
+//DataSets = {"./"}
+
+
+#include "TIDAbeam.dat"
diff --git a/Trigger/TrigAnalysis/TrigInDetAnalysisUser/share/TIDAdata-run3-offline-larged0-el.dat b/Trigger/TrigAnalysis/TrigInDetAnalysisUser/share/TIDAdata-run3-offline-larged0-el.dat
new file mode 100755
index 00000000000..a9ea6505453
--- /dev/null
+++ b/Trigger/TrigAnalysis/TrigInDetAnalysisUser/share/TIDAdata-run3-offline-larged0-el.dat
@@ -0,0 +1,27 @@
+// emacs: this is -*- c++ -*-
+
+#define LARGED0_EL
+
+#include "TIDAdata_cuts-offline.dat"
+
+//refChain = "Truth";
+refChain = "Offline";
+//refChain = "Electrons";
+//refChain = "Muons";
+//refChain = "Taus";
+
+
+MinVertices = 0;
+
+
+#include "TIDAdata-chains-run3.dat"
+
+
+InitialiseFirstEvent = 1;
+
+outputFile = "data-output.root";
+DataFiles = { "TrkNtuple-0000.root"};
+//DataSets = {"./"}
+
+
+#include "TIDAbeam.dat"
diff --git a/Trigger/TrigAnalysis/TrigInDetAnalysisUser/share/TIDAdata-run3-offline-larged0.dat b/Trigger/TrigAnalysis/TrigInDetAnalysisUser/share/TIDAdata-run3-offline-larged0.dat
new file mode 100755
index 00000000000..2669ca8c7e8
--- /dev/null
+++ b/Trigger/TrigAnalysis/TrigInDetAnalysisUser/share/TIDAdata-run3-offline-larged0.dat
@@ -0,0 +1,27 @@
+// emacs: this is -*- c++ -*-
+
+#define LARGED0
+
+#include "TIDAdata_cuts-offline.dat"
+
+//refChain = "Truth";
+refChain = "Offline";
+//refChain = "Electrons";
+//refChain = "Muons";
+//refChain = "Taus";
+
+
+MinVertices = 0;
+
+
+#include "TIDAdata-chains-run3.dat"
+
+
+InitialiseFirstEvent = 1;
+
+outputFile = "data-output.root";
+DataFiles = { "TrkNtuple-0000.root"};
+//DataSets = {"./"}
+
+
+#include "TIDAbeam.dat"
diff --git a/Trigger/TrigValidation/TrigInDetValidation/CMakeLists.txt b/Trigger/TrigValidation/TrigInDetValidation/CMakeLists.txt
index 0afca4f193c..5fa71b2c2ec 100644
--- a/Trigger/TrigValidation/TrigInDetValidation/CMakeLists.txt
+++ b/Trigger/TrigValidation/TrigInDetValidation/CMakeLists.txt
@@ -17,5 +17,5 @@ atlas_install_scripts( scripts/TIDA*.py test/test*.py POST_BUILD_CMD ${ATLAS_FLA
 # Unit test for python test scripts:
 atlas_add_test( TrigValSteeringUT
                 SCRIPT trigvalsteering-unit-tester.py ${CMAKE_CURRENT_SOURCE_DIR}/test
-                PROPERTIES TIMEOUT 300
+                PROPERTIES TIMEOUT 1200
                 POST_EXEC_SCRIPT nopost.sh )
diff --git a/Trigger/TrigValidation/TrigInDetValidation/python/TrigInDetArtSteps.py b/Trigger/TrigValidation/TrigInDetValidation/python/TrigInDetArtSteps.py
index ac024978f59..ab13d80eba2 100644
--- a/Trigger/TrigValidation/TrigInDetValidation/python/TrigInDetArtSteps.py
+++ b/Trigger/TrigValidation/TrigInDetValidation/python/TrigInDetArtSteps.py
@@ -35,6 +35,7 @@ class TrigInDetReco(ExecStep):
         self.slices = []
         self.preexec_trig = ' '
         self.postinclude_trig = postinclude_file
+        self.release = 'latest'
         self.preexec_reco =  ';'.join([
             'from RecExConfig.RecFlags import rec',
             'rec.doForwardDet=False',
@@ -59,8 +60,9 @@ class TrigInDetReco(ExecStep):
         ])
         self.postexec_trig = "from AthenaCommon.AppMgr import ServiceMgr; ServiceMgr.AthenaPoolCnvSvc.MaxFileSizes=['tmp.RDO_TRIG=100000000000']"
 
+
         self.postexec_reco = "from AthenaCommon.AppMgr import ServiceMgr; ServiceMgr.AthenaPoolCnvSvc.MaxFileSizes=['tmp.ESD=100000000000']"
-        self.args = '--outputAODFile=AOD.pool.root --steering="doRDO_TRIG" --asetup "RAWtoESD:Athena,22.0.20" "ESDtoAOD:Athena,22.0.20" '
+        self.args = '--outputAODFile=AOD.pool.root --steering="doRDO_TRIG"'
 
 
     def configure(self, test):
@@ -100,6 +102,25 @@ class TrigInDetReco(ExecStep):
         chains += ']'
         self.preexec_trig = 'doEmptyMenu=True;'+flags+'selectChains='+chains
 
+        if (self.release == 'current'):
+            print( "Using current release for offline Reco steps  " )
+        else:
+            # get the current atlas base release, and the previous base release
+            import os
+            DVERSION=os.getenv('Athena_VERSION')
+            if (self.release == 'latest'):
+                if ( DVERSION is None ) :
+                    AVERSION = "22.0.20"
+                else:
+                    BASE=DVERSION[:5]
+                    SUB=int(DVERSION[5:])
+                    SUB -= 1
+                    AVERSION=BASE+str(SUB)
+            else:
+                AVERSION = self.release
+            self.args += ' --asetup "RAWtoESD:Athena,'+AVERSION+'" "ESDtoAOD:Athena,'+AVERSION+'" '
+            print( "remapping athena base release version for offline Reco steps: ", DVERSION, " -> ", AVERSION )
+
 
         self.args += ' --preExec "RDOtoRDOTrigger:{:s};" "all:{:s};" "RAWtoESD:{:s};" "ESDtoAOD:{:s};"'.format(
             self.preexec_trig, self.preexec_all, self.preexec_reco, self.preexec_aod)
@@ -126,31 +147,52 @@ class TrigInDetAna(AthenaCheckerStep):
 # Additional post-processing steps
 ##################################################
 
-class TrigInDetdictStep(Step):
+class TrigInDetRdictStep(Step):
     '''
     Execute TIDArdict for TrkNtuple files.
     '''
-    def __init__(self, name='TrigInDetdict', reference='Truth' ):
-        super(TrigInDetdictStep, self).__init__(name)
-        self.args=' '
+    def __init__(self, name='TrigInDetdict', args=None, testbin='Test_bin.dat'):
+        super(TrigInDetRdictStep, self).__init__(name)
+        self.args=args + "  -b " + testbin + " "
         self.auto_report_result = True
         self.required = True
-        self.reference = reference
         self.executable = 'TIDArdict'
 
     def configure(self, test):
-        os.system( 'get_files -data TIDAbeam.dat' )
-        os.system( 'get_files -data Test_bin.dat' )
-        os.system( 'get_files -data TIDAdata-chains-run3.dat' )
-        os.system( 'get_files -data TIDAhisto-panel.dat' )
-        os.system( 'get_files -data TIDAdata-run3.dat' )
-        os.system( 'get_files -data TIDAdata_cuts.dat' )
-        os.system( 'get_files -data TIDAdata-run3-offline.dat' )
-        os.system( 'get_files -data TIDAdata_cuts-offline.dat' )
-        os.system( 'get_files -jo   TIDAml_extensions.py' ) 
-        super(TrigInDetdictStep, self).configure(test)
-
-
+        os.system( 'get_files -data TIDAbeam.dat &> /dev/null' )
+        os.system( 'get_files -data Test_bin.dat &> /dev/null' )
+        os.system( 'get_files -data Test_bin_larged0.dat &> /dev/null' )
+        os.system( 'get_files -data TIDAdata-chains-run3.dat &> /dev/null' )
+        os.system( 'get_files -data TIDAhisto-panel.dat &> /dev/null' )
+        os.system( 'get_files -data TIDAhisto-panel-vtx.dat &> /dev/null' )
+        os.system( 'get_files -data TIDAhistos-vtx.dat &> /dev/null' )
+        os.system( 'get_files -data TIDAdata-run3.dat &> /dev/null' )
+        os.system( 'get_files -data TIDAdata-run3-larged0.dat &> /dev/null' )
+        os.system( 'get_files -data TIDAdata-run3-larged0-el.dat &> /dev/null' )
+        os.system( 'get_files -data TIDAdata_cuts.dat &> /dev/null' )
+        os.system( 'get_files -data TIDAdata-run3-offline.dat &> /dev/null' )
+        os.system( 'get_files -data TIDAdata-run3-offline-larged0.dat &> /dev/null' )
+        os.system( 'get_files -data TIDAdata-run3-offline-larged0-el.dat &> /dev/null' )
+        os.system( 'get_files -data TIDAdata-run3-offline-vtx.dat &> /dev/null' )
+        os.system( 'get_files -data TIDAdata_cuts-offline.dat &> /dev/null' )
+        os.system( 'get_files -jo   TIDAml_extensions.py &> /dev/null' )
+        super(TrigInDetRdictStep, self).configure(test)
+
+
+def json_chains( slice ) : 
+    json_file     = 'TrigInDetValidation/comparitor.json'
+    json_fullpath = FindFile(json_file, os.environ['DATAPATH'].split(os.pathsep), os.R_OK)
+
+    if not json_fullpath:
+        print('Failed to determine full path for input JSON %s', json_file)
+        return None
+        
+    with open(json_fullpath) as f:
+        data = json.load(f)
+       
+    chainmap = data[slice]
+
+    return chainmap['chains']
 
 
 
@@ -158,76 +200,25 @@ class TrigInDetCompStep(RefComparisonStep):
     '''
     Execute TIDAcomparitor for data.root files.
     '''
-    def __init__( self, name='TrigInDetComp', level='', slice='', input_file='data-hists.root', type='truth', lowpt=False ):
+    def __init__( self, name='TrigInDetComp', slice=None, args=None, file=None, reference=None ):
         super(TrigInDetCompStep, self).__init__(name)
-
-        self.input_file = input_file
-        # self.output_dir = 'HLT-plots'
-        self.output_dir = ''
-
-        if level == '' : 
-            raise Exception( 'no level specified' )
-
-        if slice == '' : 
-            raise Exception( 'no slice specified' )
-
-        self.level  = level
-        self.slice  = slice
-        self.lowpt  = lowpt
-        self.type   = type
-        self.chains = ' '
-        self.args   = ' --oldrms -c TIDAhisto-panel.dat '
-        self.test   = ' '
+        if reference is None :
+            self.reference  = file # do we need this any more ??? 
+            self.args  = args + " " + file + "  " + file + " --noref --oldrms "
+        else:
+            self.reference = reference
+            self.args  = args + " " + file + "  " + reference + " --oldrms "
+        self.slice = slice 
         self.auto_report_result = True
         self.required   = True
+
         self.executable = 'TIDAcomparitor'
     
 
     def configure(self, test):
-
-        json_file     = 'TrigInDetValidation/comparitor.json'
-        json_fullpath = FindFile(json_file, os.environ['DATAPATH'].split(os.pathsep), os.R_OK)
-
-        if not json_fullpath:
-            print('Failed to determine full path for input JSON %s', json_file)
-            return None
-
-        with open(json_fullpath) as f:
-            data = json.load(f)
-
-        self.output_dir = 'HLT'+self.level+'-plots'
-
-        flag = self.level+self.slice
-
-        if (self.lowpt):
-            self.output_dir = self.output_dir+'-lowpt'    
-            flag = flag+'Lowpt'
-            
-        data_object = data[flag]
-
-        self.chains = data_object['chains']
-
-        # what is all this doing ? does it need to be so complicated ?
-
-        if (self.test=='ttbar'):
-            self.output_dir = self.output_dir+"-"+self.slice
-
-        if (self.type == 'offline'):
-            self.output_dir = self.output_dir+'-offline'    
-            self.input_file = 'data-hists-offline.root'
-
-        self.args += self.input_file + ' ' 
-
-        if (self.reference is None):
-            # if no reference found, use input file as reference - athout it doesn't matter - could use --noref
-            self.args += self.input_file + ' ' 
-        else:
-            self.args += self.ref_file + ' ' 
-
-        self.args += self.chains + ' -d ' + self.output_dir
-
-        print( "TIDAComparitor " + self.args ) 
-
+        self.chains = json_chains( self.slice )
+        self.args += " " + self.chains
+        print( "\033[0;32mTIDAcomparitor "+self.args+" \033[0m" )
         super(TrigInDetCompStep, self).configure(test)
 
 
diff --git a/Trigger/TrigValidation/TrigInDetValidation/python/TrigInDetNewArtSteps.py b/Trigger/TrigValidation/TrigInDetValidation/python/TrigInDetOldArtSteps.py
similarity index 70%
rename from Trigger/TrigValidation/TrigInDetValidation/python/TrigInDetNewArtSteps.py
rename to Trigger/TrigValidation/TrigInDetValidation/python/TrigInDetOldArtSteps.py
index 9be14b5c66a..ac024978f59 100644
--- a/Trigger/TrigValidation/TrigInDetValidation/python/TrigInDetNewArtSteps.py
+++ b/Trigger/TrigValidation/TrigInDetValidation/python/TrigInDetOldArtSteps.py
@@ -35,7 +35,6 @@ class TrigInDetReco(ExecStep):
         self.slices = []
         self.preexec_trig = ' '
         self.postinclude_trig = postinclude_file
-        self.release = 'latest'
         self.preexec_reco =  ';'.join([
             'from RecExConfig.RecFlags import rec',
             'rec.doForwardDet=False',
@@ -60,9 +59,8 @@ class TrigInDetReco(ExecStep):
         ])
         self.postexec_trig = "from AthenaCommon.AppMgr import ServiceMgr; ServiceMgr.AthenaPoolCnvSvc.MaxFileSizes=['tmp.RDO_TRIG=100000000000']"
 
-
         self.postexec_reco = "from AthenaCommon.AppMgr import ServiceMgr; ServiceMgr.AthenaPoolCnvSvc.MaxFileSizes=['tmp.ESD=100000000000']"
-        self.args = '--outputAODFile=AOD.pool.root --steering="doRDO_TRIG"'
+        self.args = '--outputAODFile=AOD.pool.root --steering="doRDO_TRIG" --asetup "RAWtoESD:Athena,22.0.20" "ESDtoAOD:Athena,22.0.20" '
 
 
     def configure(self, test):
@@ -102,25 +100,6 @@ class TrigInDetReco(ExecStep):
         chains += ']'
         self.preexec_trig = 'doEmptyMenu=True;'+flags+'selectChains='+chains
 
-        if (self.release == 'current'):
-            print( "Using current release for offline Reco steps  " )
-        else:
-            # get the current atlas base release, and the previous base release
-            import os
-            DVERSION=os.getenv('Athena_VERSION')
-            if (self.release == 'latest'):
-                if ( DVERSION is None ) :
-                    AVERSION = "22.0.20"
-                else:
-                    BASE=DVERSION[:5]
-                    SUB=int(DVERSION[5:])
-                    SUB -= 1
-                    AVERSION=BASE+str(SUB)
-            else:
-                AVERSION = self.release
-            self.args += ' --asetup "RAWtoESD:Athena,'+AVERSION+'" "ESDtoAOD:Athena,'+AVERSION+'" '
-            print( "remapping athena base release version for offline Reco steps: ", DVERSION, " -> ", AVERSION )
-
 
         self.args += ' --preExec "RDOtoRDOTrigger:{:s};" "all:{:s};" "RAWtoESD:{:s};" "ESDtoAOD:{:s};"'.format(
             self.preexec_trig, self.preexec_all, self.preexec_reco, self.preexec_aod)
@@ -147,47 +126,31 @@ class TrigInDetAna(AthenaCheckerStep):
 # Additional post-processing steps
 ##################################################
 
-class TrigInDetRdictStep(Step):
+class TrigInDetdictStep(Step):
     '''
     Execute TIDArdict for TrkNtuple files.
     '''
-    def __init__(self, name='TrigInDetdict', args=None ):
-        super(TrigInDetRdictStep, self).__init__(name)
-        self.args=args + "  -b Test_bin.dat "
+    def __init__(self, name='TrigInDetdict', reference='Truth' ):
+        super(TrigInDetdictStep, self).__init__(name)
+        self.args=' '
         self.auto_report_result = True
         self.required = True
+        self.reference = reference
         self.executable = 'TIDArdict'
 
     def configure(self, test):
-        os.system( 'get_files -data TIDAbeam.dat &> /dev/null' )
-        os.system( 'get_files -data Test_bin.dat &> /dev/null' )
-        os.system( 'get_files -data TIDAdata-chains-run3.dat &> /dev/null' )
-        os.system( 'get_files -data TIDAhisto-panel.dat &> /dev/null' )
-        os.system( 'get_files -data TIDAhisto-panel-vtx.dat &> /dev/null' )
-        os.system( 'get_files -data TIDAhistos-vtx.dat &> /dev/null' )
-        os.system( 'get_files -data TIDAdata-run3.dat &> /dev/null' )
-        os.system( 'get_files -data TIDAdata_cuts.dat &> /dev/null' )
-        os.system( 'get_files -data TIDAdata-run3-offline.dat &> /dev/null' )
-        os.system( 'get_files -data TIDAdata-run3-offline-vtx.dat &> /dev/null' )
-        os.system( 'get_files -data TIDAdata_cuts-offline.dat &> /dev/null' )
-        os.system( 'get_files -jo   TIDAml_extensions.py &> /dev/null' )
-        super(TrigInDetRdictStep, self).configure(test)
-
-
-def json_chains( slice ) : 
-    json_file     = 'TrigInDetValidation/comparitor.json'
-    json_fullpath = FindFile(json_file, os.environ['DATAPATH'].split(os.pathsep), os.R_OK)
-
-    if not json_fullpath:
-        print('Failed to determine full path for input JSON %s', json_file)
-        return None
-        
-    with open(json_fullpath) as f:
-        data = json.load(f)
-       
-    chainmap = data[slice]
-
-    return chainmap['chains']
+        os.system( 'get_files -data TIDAbeam.dat' )
+        os.system( 'get_files -data Test_bin.dat' )
+        os.system( 'get_files -data TIDAdata-chains-run3.dat' )
+        os.system( 'get_files -data TIDAhisto-panel.dat' )
+        os.system( 'get_files -data TIDAdata-run3.dat' )
+        os.system( 'get_files -data TIDAdata_cuts.dat' )
+        os.system( 'get_files -data TIDAdata-run3-offline.dat' )
+        os.system( 'get_files -data TIDAdata_cuts-offline.dat' )
+        os.system( 'get_files -jo   TIDAml_extensions.py' ) 
+        super(TrigInDetdictStep, self).configure(test)
+
+
 
 
 
@@ -195,25 +158,76 @@ class TrigInDetCompStep(RefComparisonStep):
     '''
     Execute TIDAcomparitor for data.root files.
     '''
-    def __init__( self, name='TrigInDetComp', slice=None, args=None, file=None, reference=None ):
+    def __init__( self, name='TrigInDetComp', level='', slice='', input_file='data-hists.root', type='truth', lowpt=False ):
         super(TrigInDetCompStep, self).__init__(name)
-        if reference is None :
-            self.reference  = file # do we need this any more ??? 
-            self.args  = args + " " + file + "  " + file + " --noref --oldrms "
-        else:
-            self.reference = reference
-            self.args  = args + " " + file + "  " + reference + " --oldrms "
-        self.slice = slice 
+
+        self.input_file = input_file
+        # self.output_dir = 'HLT-plots'
+        self.output_dir = ''
+
+        if level == '' : 
+            raise Exception( 'no level specified' )
+
+        if slice == '' : 
+            raise Exception( 'no slice specified' )
+
+        self.level  = level
+        self.slice  = slice
+        self.lowpt  = lowpt
+        self.type   = type
+        self.chains = ' '
+        self.args   = ' --oldrms -c TIDAhisto-panel.dat '
+        self.test   = ' '
         self.auto_report_result = True
         self.required   = True
-
         self.executable = 'TIDAcomparitor'
     
 
     def configure(self, test):
-        self.chains = json_chains( self.slice )
-        self.args += " " + self.chains
-        print( "\033[0;32mTIDAcomparitor "+self.args+" \033[0m" )
+
+        json_file     = 'TrigInDetValidation/comparitor.json'
+        json_fullpath = FindFile(json_file, os.environ['DATAPATH'].split(os.pathsep), os.R_OK)
+
+        if not json_fullpath:
+            print('Failed to determine full path for input JSON %s', json_file)
+            return None
+
+        with open(json_fullpath) as f:
+            data = json.load(f)
+
+        self.output_dir = 'HLT'+self.level+'-plots'
+
+        flag = self.level+self.slice
+
+        if (self.lowpt):
+            self.output_dir = self.output_dir+'-lowpt'    
+            flag = flag+'Lowpt'
+            
+        data_object = data[flag]
+
+        self.chains = data_object['chains']
+
+        # what is all this doing ? does it need to be so complicated ?
+
+        if (self.test=='ttbar'):
+            self.output_dir = self.output_dir+"-"+self.slice
+
+        if (self.type == 'offline'):
+            self.output_dir = self.output_dir+'-offline'    
+            self.input_file = 'data-hists-offline.root'
+
+        self.args += self.input_file + ' ' 
+
+        if (self.reference is None):
+            # if no reference found, use input file as reference - athout it doesn't matter - could use --noref
+            self.args += self.input_file + ' ' 
+        else:
+            self.args += self.ref_file + ' ' 
+
+        self.args += self.chains + ' -d ' + self.output_dir
+
+        print( "TIDAComparitor " + self.args ) 
+
         super(TrigInDetCompStep, self).configure(test)
 
 
diff --git a/Trigger/TrigValidation/TrigInDetValidation/share/TrigInDetValidation_Base.py b/Trigger/TrigValidation/TrigInDetValidation/share/TrigInDetValidation_Base.py
old mode 100755
new mode 100644
index 77bc6865110..41efe587db3
--- a/Trigger/TrigValidation/TrigInDetValidation/share/TrigInDetValidation_Base.py
+++ b/Trigger/TrigValidation/TrigInDetValidation/share/TrigInDetValidation_Base.py
@@ -1,9 +1,6 @@
 ###  #!/usr/bin/env python
 
-
-
 # Slices = ['fsjet']
-# RunEF  = False
 # Events = 10
 # Threads = 1
 # Slots = 1
@@ -13,13 +10,13 @@
 import re
 
 from TrigValTools.TrigValSteering import Test, CheckSteps
-from TrigInDetValidation.TrigInDetArtSteps import TrigInDetReco, TrigInDetAna, TrigInDetdictStep, TrigInDetCompStep, TrigInDetCpuCostStep
+from TrigInDetValidation.TrigInDetArtSteps import TrigInDetReco, TrigInDetAna, TrigInDetRdictStep, TrigInDetCompStep, TrigInDetCpuCostStep
 
 
 import sys,getopt
 
 try:
-    opts, args = getopt.getopt(sys.argv[1:],"lcxpn:",["local","config"])
+    opts, args = getopt.getopt(sys.argv[1:],"lcxptn:",["local","config"])
 except getopt.GetoptError:
     print("Usage:  ")
     print("-l(--local)    run locally with input file from art eos grid-input")
@@ -27,24 +24,20 @@ except getopt.GetoptError:
     print("-p             run post-processing, even if -x is set")
     print("-n  N          run only on N events per job")
     print("-c(--config)   run with config_only and print to a pkl file")
+    print("-t             test steering, dry run for all steps")
     print("")
-
+    sys.exit(1)
 
 Events_local  = 0
 local         = False
 exclude       = False
 postproc      = False
 testconfig    = False
-lowpt_local   = []
-
+dry_run       = False
 
-try: GridFiles
-except NameError: GridFiles=False
 
-if GridFiles==True :
-    use_gridfiles = True
-else:
-    use_gridfiles = False
+if "Art_type"  not in locals(): Art_type = 'grid'
+if "GridFiles" not in locals(): GridFiles=False
 
 for opt,arg in opts:
     if opt in ("-l", "--local"):
@@ -57,6 +50,8 @@ for opt,arg in opts:
         Events_local=arg
     if opt in ("-c", "--config"):
         testconfig = True
+    if opt=="-t":
+        dry_run=True
 
 
 if 'postinclude_file' in dir() :
@@ -70,19 +65,14 @@ rdo2aod.slices            = Slices
 rdo2aod.threads           = Threads
 rdo2aod.concurrent_events = Slots 
 rdo2aod.config_only       = testconfig
-
-if "Lowpt" in locals() : 
-    if isinstance( Lowpt, list ) : 
-        lowpt_local = Lowpt
-    else : 
-        lowpt_local = [ Lowpt ]
-else : 
-    lowpt_local = [ False ]
+if 'Release' in dir():
+    rdo2aod.release           = Release
 
 
 if "Args" not in locals() : 
     Args = " "
 
+
 # allow command line to override programed number of events to process
 
 if Events_local != 0 : 
@@ -95,7 +85,7 @@ rdo2aod.perfmon = False
 rdo2aod.timeout = 18*3600
 rdo2aod.input   = Input    # defined in TrigValTools/share/TrigValInputs.json  
 
-if use_gridfiles: 
+if GridFiles:
     if local:
 #   rdo2aod.input = 'Single_el_larged0'    # defined in TrigValTools/share/TrigValInputs.json  
        rdo2aod.input = Input   # should match definition in TrigValTools/share/TrigValInputs.json  
@@ -108,7 +98,9 @@ if use_gridfiles:
 # Run athena analysis to produce TrkNtuple
 
 test = Test.Test()
-test.art_type = 'grid'
+test.art_type = Art_type
+if dry_run:
+    test.dry_run = True
 if (not exclude):
     test.exec_steps = [rdo2aod]
     test.exec_steps.append(TrigInDetAna())
@@ -116,62 +108,20 @@ if (not exclude):
 
 # Run TIDArdict
 
-# first make sure that we have a proper list ..
-if isinstance( TrackReference, str ):
-    TrackReference = [ TrackReference ]
-
-for ref in TrackReference : 
-
-    hist_file = 'data-hists.root'
-    ext       = ''
-
-    if   ( ref == 'Truth' ) :
-        args = 'TIDAdata-run3.dat  -b Test_bin.dat -o ' + hist_file + Args
-    elif ( ref == 'Offline' ) :
-        # if more than one reefrence ...
-        if len(TrackReference)>1 : 
-            hist_file = 'data-hists-offline.root'
-            ext       = 'offline'
-        args = 'TIDAdata-run3-offline.dat -r Offline  -b Test_bin.dat -o ' + hist_file
-    else :
-        # here actually we should allow functionality 
-        # to use different pdgid truth or offline as
-        # a reference:
-        # presumably we run offline muons etc as well 
-        # now in the transform
-        raise Exception( 'unknown reference: ', ref )
-
-    if ((not exclude) or postproc ):
-        rdict = TrigInDetdictStep( name=ref, reference=ref )
-        rdict.args = args
-        print( "\033[0;32m TIDArdict "+args+" \033[0m" )
 
+if ((not exclude) or postproc ):
+    for job in Jobs :
+        if len(job) >= 3:
+            rdict = TrigInDetRdictStep( name=job[0], args=job[1], testbin=job[2] )
+        else:
+            rdict = TrigInDetRdictStep( name=job[0], args=job[1] )
+        print( "\n\033[0;32m TIDArdict "+job[1]+" \033[0m" )
         test.check_steps.append(rdict)
        
-    # Now the comparitor steps
-    # here, the compararitor must know the name of the root file to process
-    # we set it in the comparitor job, using the "offline" extension
-    # this isn't ideal, since we set the hist file in this code also 
-    # so really we should pass it in consistently, and the options 
-    # for the directory names should be unrelated 
-    
-    for slice in Slices :
-        for _lowpt in lowpt_local :
-            
-            stagetag = slice+ext
-            if _lowpt :
-                stagetag += "-lowpt"
-                
-            print( "stagetag "+stagetag )
-                
-            comp1=TrigInDetCompStep( 'Comp_L2'+stagetag, 'L2', slice, type=ext, lowpt=_lowpt )
-            test.check_steps.append(comp1)
-            
-            if ( RunEF ) : 
-                comp2=TrigInDetCompStep( 'Comp_EF'+stagetag, 'EF', slice, type=ext, lowpt=_lowpt )
-                test.check_steps.append(comp2)
-
-
+        
+for _slice in Comp :
+    compstep = TrigInDetCompStep( name=_slice[0], slice=_slice[1], file=_slice[2], args=_slice[3] ) 
+    test.check_steps.append(compstep)
 
 # CPU cost steps
 
diff --git a/Trigger/TrigValidation/TrigInDetValidation/share/TrigInDetValidation_NewBase.py b/Trigger/TrigValidation/TrigInDetValidation/share/TrigInDetValidation_OldBase.py
old mode 100755
new mode 100644
similarity index 53%
rename from Trigger/TrigValidation/TrigInDetValidation/share/TrigInDetValidation_NewBase.py
rename to Trigger/TrigValidation/TrigInDetValidation/share/TrigInDetValidation_OldBase.py
index d2de1c9dfbb..4353425c43a
--- a/Trigger/TrigValidation/TrigInDetValidation/share/TrigInDetValidation_NewBase.py
+++ b/Trigger/TrigValidation/TrigInDetValidation/share/TrigInDetValidation_OldBase.py
@@ -1,5 +1,7 @@
 ###  #!/usr/bin/env python
 
+
+
 # Slices = ['fsjet']
 # RunEF  = False
 # Events = 10
@@ -10,14 +12,8 @@
 
 import re
 
-from TrigValTools.TrigValSteering import Test
-from TrigValTools.TrigValSteering import CheckSteps
-
-from TrigInDetValidation.TrigInDetNewArtSteps import TrigInDetReco
-from TrigInDetValidation.TrigInDetNewArtSteps import TrigInDetAna
-from TrigInDetValidation.TrigInDetNewArtSteps import TrigInDetRdictStep
-from TrigInDetValidation.TrigInDetNewArtSteps import TrigInDetCompStep
-from TrigInDetValidation.TrigInDetNewArtSteps import TrigInDetCpuCostStep
+from TrigValTools.TrigValSteering import Test, CheckSteps
+from TrigInDetValidation.TrigInDetOldArtSteps import TrigInDetReco, TrigInDetAna, TrigInDetdictStep, TrigInDetCompStep, TrigInDetCpuCostStep
 
 
 import sys,getopt
@@ -32,13 +28,14 @@ except getopt.GetoptError:
     print("-n  N          run only on N events per job")
     print("-c(--config)   run with config_only and print to a pkl file")
     print("")
-    sys.exit(1)
+
 
 Events_local  = 0
 local         = False
 exclude       = False
 postproc      = False
 testconfig    = False
+lowpt_local   = []
 
 
 try: GridFiles
@@ -73,14 +70,19 @@ rdo2aod.slices            = Slices
 rdo2aod.threads           = Threads
 rdo2aod.concurrent_events = Slots 
 rdo2aod.config_only       = testconfig
-if 'Release' in dir():
-    rdo2aod.release           = Release
+
+if "Lowpt" in locals() : 
+    if isinstance( Lowpt, list ) : 
+        lowpt_local = Lowpt
+    else : 
+        lowpt_local = [ Lowpt ]
+else : 
+    lowpt_local = [ False ]
 
 
 if "Args" not in locals() : 
     Args = " "
 
-
 # allow command line to override programed number of events to process
 
 if Events_local != 0 : 
@@ -114,17 +116,62 @@ if (not exclude):
 
 # Run TIDArdict
 
+# first make sure that we have a proper list ..
+if isinstance( TrackReference, str ):
+    TrackReference = [ TrackReference ]
+
+for ref in TrackReference : 
+
+    hist_file = 'data-hists.root'
+    ext       = ''
+
+    if   ( ref == 'Truth' ) :
+        args = 'TIDAdata-run3.dat  -b Test_bin.dat -o ' + hist_file + Args
+    elif ( ref == 'Offline' ) :
+        # if more than one reefrence ...
+        if len(TrackReference)>1 : 
+            hist_file = 'data-hists-offline.root'
+            ext       = 'offline'
+        args = 'TIDAdata-run3-offline.dat -r Offline  -b Test_bin.dat -o ' + hist_file
+    else :
+        # here actually we should allow functionality 
+        # to use different pdgid truth or offline as
+        # a reference:
+        # presumably we run offline muons etc as well 
+        # now in the transform
+        raise Exception( 'unknown reference: ', ref )
+
+    if ((not exclude) or postproc ):
+        rdict = TrigInDetdictStep( name=ref, reference=ref )
+        rdict.args = args
+        print( "\033[0;32m TIDArdict "+args+" \033[0m" )
 
-if ((not exclude) or postproc ):
-    for job in Jobs : 
-        rdict = TrigInDetRdictStep( name=job[0], args=job[1] )
-        print( "\n\033[0;32m TIDArdict "+job[1]+" \033[0m" )
         test.check_steps.append(rdict)
        
-        
-for _slice in Comp :
-    compstep = TrigInDetCompStep( name=_slice[0], slice=_slice[1], file=_slice[2], args=_slice[3] ) 
-    test.check_steps.append(compstep)
+    # Now the comparitor steps
+    # here, the compararitor must know the name of the root file to process
+    # we set it in the comparitor job, using the "offline" extension
+    # this isn't ideal, since we set the hist file in this code also 
+    # so really we should pass it in consistently, and the options 
+    # for the directory names should be unrelated 
+    
+    for slice in Slices :
+        for _lowpt in lowpt_local :
+            
+            stagetag = slice+ext
+            if _lowpt :
+                stagetag += "-lowpt"
+                
+            print( "stagetag "+stagetag )
+                
+            comp1=TrigInDetCompStep( 'Comp_L2'+stagetag, 'L2', slice, type=ext, lowpt=_lowpt )
+            test.check_steps.append(comp1)
+            
+            if ( RunEF ) : 
+                comp2=TrigInDetCompStep( 'Comp_EF'+stagetag, 'EF', slice, type=ext, lowpt=_lowpt )
+                test.check_steps.append(comp2)
+
+
 
 # CPU cost steps
 
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu40.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu40.py
index a426a5d7604..54421eb0d9f 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu40.py
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu40.py
@@ -25,16 +25,28 @@
 # art-output: *.dat 
 
 
-Slices  = ['muon','electron','tau','bjet']
-RunEF   = False
-Events  = 4000 
+Slices  = ['muon','electron','tau','bjet','fsjet']
+Events  = 4000
 Threads = 8 
 Slots   = 8
 Input   = 'ttbar_ID'    # defined in TrigValTools/share/TrigValInputs.json  
 
-TrackReference = [ 'Offline' ]
+Jobs = [ ( "Offline",     " TIDAdata-run3-offline.dat      -r Offline -o data-hists-offline.root" ),
+         ( "OfflineVtx",  " TIDAdata-run3-offline-vtx.dat  -r Offline -o data-hists-offline-vtx.root" ) ]
 
+Comp = [ ( "L2muon",       "L2muon",      "data-hists-offline.root",      " -c TIDAhisto-panel.dat  -d HLTL2-plots-muon " ),
+         ( "L2electron",   "L2electron",  "data-hists-offline.root",      " -c TIDAhisto-panel.dat  -d HLTL2-plots-electron " ),
+         ( "L2tau",        "L2tau",       "data-hists-offline.root",      " -c TIDAhisto-panel.dat  -d HLTL2-plots-tau " ),
+         ( "L2bjet",       "L2bjet",      "data-hists-offline.root",      " -c TIDAhisto-panel.dat  -d HLTL2-plots-bjet " ),   
+         ( "FSjetoffline", "L2fsjet",     "data-hists-offline.root",      " -c TIDAhisto-panel.dat  -d HLTL2-plots-FS " ),
+         ( "FSvtx",        "L2fsjetvtx",  "data-hists-offline-vtx.root",  " -c TIDAhisto-panel-vtx.dat  -d HLTL2-plots-vtx     --ncols 3" ),
+         ( "FSvtxall",     "L2fsjetvtx",  "data-hists-offline.root",      " -c TIDAhisto-panel-vtx.dat  -d HLTL2-plots-vtxall  --ncols 3" ), 
 
+         ( "EFmuon",       "EFmuon",      "data-hists-offline.root",   " -c TIDAhisto-panel.dat  -d HLTEF-plots-muon " ),
+         ( "EFelectron",   "EFelectron",  "data-hists-offline.root",   " -c TIDAhisto-panel.dat  -d HLTEF-plots-electron " ),
+         ( "EFtau",        "EFtau",       "data-hists-offline.root",   " -c TIDAhisto-panel.dat  -d HLTEF-plots-tau " ),
+         ( "EFbjet",       "EFmuon",      "data-hists-offline.root",   " -c TIDAhisto-panel.dat  -d HLTEF-plots-bjet " ) ]
+   
 from AthenaCommon.Include import include 
 include("TrigInDetValidation/TrigInDetValidation_Base.py")
 
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu40_new.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu40_new.py
deleted file mode 100755
index a510619a439..00000000000
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu40_new.py
+++ /dev/null
@@ -1,53 +0,0 @@
-#!/usr/bin/env python
-
-# art-description: art job for all_ttbar_pu40_new
-# art-type: grid
-# art-include: master/Athena
-# art-athena-mt: 8
-# art-memory: 4096
-# art-html: https://idtrigger-val.web.cern.ch/idtrigger-val/TIDAWeb/TIDAart/?jobdir=
-# art-output: *.txt
-# art-output: *.log
-# art-output: log.*
-# art-output: *.out
-# art-output: *.err
-# art-output: *.log.tar.gz
-# art-output: *.new
-# art-output: *.json
-# art-output: *.root
-# art-output: *.check*
-# art-output: HLT*
-# art-output: times*
-# art-output: cost-perCall
-# art-output: cost-perEvent
-# art-output: cost-perCall-chain
-# art-output: cost-perEvent-chain
-# art-output: *.dat 
-
-
-Slices  = ['muon','electron','tau','bjet','fsjet']
-RunEF   = False
-Events  = 4000
-Threads = 8 
-Slots   = 8
-Input   = 'ttbar_ID'    # defined in TrigValTools/share/TrigValInputs.json  
-
-Jobs = [ ( "Offline",     " TIDAdata-run3-offline.dat      -o data-hists-offline.root" ),
-         ( "OfflineVtx",  " TIDAdata-run3-offline-vtx.dat  -o data-hists-offline-vtx.root" ) ]
-
-Comp = [ ( "L2muon",       "L2muon",      "data-hists-offline.root",      " -c TIDAhisto-panel.dat  -d HLTL2-plots-muon " ),
-         ( "L2electron",   "L2electron",  "data-hists-offline.root",      " -c TIDAhisto-panel.dat  -d HLTL2-plots-electron " ),
-         ( "L2tau",        "L2tau",       "data-hists-offline.root",      " -c TIDAhisto-panel.dat  -d HLTL2-plots-tau " ),
-         ( "L2bjet",       "L2bjet",      "data-hists-offline.root",      " -c TIDAhisto-panel.dat  -d HLTL2-plots-bjet " ),   
-         ( "FSjetoffline", "L2fsjet",     "data-hists-offline.root",      " -c TIDAhisto-panel.dat  -d HLTL2-plots-FS " ),
-         ( "FSvtx",        "L2fsjetvtx",  "data-hists-offline-vtx.root",  " -c TIDAhisto-panel-vtx.dat  -d HLTL2-plots-vtx     --ncols 3" ),
-         ( "FSvtxall",     "L2fsjetvtx",  "data-hists-offline.root",      " -c TIDAhisto-panel-vtx.dat  -d HLTL2-plots-vtxall  --ncols 3" ), 
-
-         ( "EFmuon",       "EFmuon",      "data-hists-offline.root",   " -c TIDAhisto-panel.dat  -d HLTEF-plots-muon " ),
-         ( "EFelectron",   "EFelectron",  "data-hists-offline.root",   " -c TIDAhisto-panel.dat  -d HLTEF-plots-electron " ),
-         ( "EFtau",        "EFtau",       "data-hists-offline.root",   " -c TIDAhisto-panel.dat  -d HLTEF-plots-tau " ),
-         ( "EFbjet",       "EFmuon",      "data-hists-offline.root",   " -c TIDAhisto-panel.dat  -d HLTEF-plots-bjet " ) ]
-   
-from AthenaCommon.Include import include 
-include("TrigInDetValidation/TrigInDetValidation_NewBase.py")
-
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu40_old.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu40_old.py
index def488af358..c35d261d368 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu40_old.py
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu40_old.py
@@ -27,7 +27,7 @@
 
 
 from TrigValTools.TrigValSteering import Test, CheckSteps
-from TrigInDetValidation.TrigInDetArtSteps import TrigInDetReco, TrigInDetAna, TrigInDetdictStep, TrigInDetCompStep, TrigInDetCpuCostStep
+from TrigInDetValidation.TrigInDetOldArtSteps import TrigInDetReco, TrigInDetAna, TrigInDetdictStep, TrigInDetCompStep, TrigInDetCpuCostStep
 
 
 import sys,getopt
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu80.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu80.py
index bc4dd8c7eaa..8a755103d53 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu80.py
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu80.py
@@ -3,7 +3,6 @@
 # art-description: art job for all_ttbar_pu80
 # art-type: grid
 # art-include: master/Athena
-# art-input-nfiles: 3
 # art-athena-mt: 8
 # art-memory: 4096
 # art-html: https://idtrigger-val.web.cern.ch/idtrigger-val/TIDAWeb/TIDAart/?jobdir=
@@ -26,102 +25,28 @@
 # art-output: *.dat 
 
 
-from TrigValTools.TrigValSteering import Test, CheckSteps
-from TrigInDetValidation.TrigInDetArtSteps import TrigInDetReco, TrigInDetAna, TrigInDetdictStep, TrigInDetCompStep, TrigInDetCpuCostStep
+Slices  = ['muon','electron','tau','bjet','fsjet']
+Events  = 4000
+Threads = 8 
+Slots   = 8
+Input   = 'ttbar_pu80'    # defined in TrigValTools/share/TrigValInputs.json  
 
+Jobs = [ ( "Offline",     " TIDAdata-run3-offline.dat      -r Offline -o data-hists-offline.root" ),
+         ( "OfflineVtx",  " TIDAdata-run3-offline-vtx.dat  -r Offline -o data-hists-offline-vtx.root" ) ]
 
-import sys,getopt
+Comp = [ ( "L2muon",       "L2muon",      "data-hists-offline.root",      " -c TIDAhisto-panel.dat  -d HLTL2-plots-muon " ),
+         ( "L2electron",   "L2electron",  "data-hists-offline.root",      " -c TIDAhisto-panel.dat  -d HLTL2-plots-electron " ),
+         ( "L2tau",        "L2tau",       "data-hists-offline.root",      " -c TIDAhisto-panel.dat  -d HLTL2-plots-tau " ),
+         ( "L2bjet",       "L2bjet",      "data-hists-offline.root",      " -c TIDAhisto-panel.dat  -d HLTL2-plots-bjet " ),   
+         ( "FSjetoffline", "L2fsjet",     "data-hists-offline.root",      " -c TIDAhisto-panel.dat  -d HLTL2-plots-FS " ),
+         ( "FSvtx",        "L2fsjetvtx",  "data-hists-offline-vtx.root",  " -c TIDAhisto-panel-vtx.dat  -d HLTL2-plots-vtx     --ncols 3" ),
+         ( "FSvtxall",     "L2fsjetvtx",  "data-hists-offline.root",      " -c TIDAhisto-panel-vtx.dat  -d HLTL2-plots-vtxall  --ncols 3" ), 
 
-try:
-    opts, args = getopt.getopt(sys.argv[1:],"lxp",["local"])
-except getopt.GetoptError:
-    print("Usage:  ")
-    print("-l(--local)    run locally with input file from art eos grid-input")
-    print("-x             don't run athena or post post-processing, only plotting")
-    print("-p             run post-processing, even if -x is set")
+         ( "EFmuon",       "EFmuon",      "data-hists-offline.root",   " -c TIDAhisto-panel.dat  -d HLTEF-plots-muon " ),
+         ( "EFelectron",   "EFelectron",  "data-hists-offline.root",   " -c TIDAhisto-panel.dat  -d HLTEF-plots-electron " ),
+         ( "EFtau",        "EFtau",       "data-hists-offline.root",   " -c TIDAhisto-panel.dat  -d HLTEF-plots-tau " ),
+         ( "EFbjet",       "EFmuon",      "data-hists-offline.root",   " -c TIDAhisto-panel.dat  -d HLTEF-plots-bjet " ) ]
+   
+from AthenaCommon.Include import include 
+include("TrigInDetValidation/TrigInDetValidation_Base.py")
 
-
-local=False
-exclude=False
-postproc=False
-for opt,arg in opts:
-    if opt in ("-l", "--local"):
-        local=True
-    if opt=="-x":
-        exclude=True
-    if opt=="-p":
-        postproc=True
-
-
-rdo2aod = TrigInDetReco()
-rdo2aod.slices = ['muon','electron','tau','bjet']
-rdo2aod.max_events = 4000 
-rdo2aod.threads = 8 
-rdo2aod.concurrent_events = 8
-rdo2aod.perfmon = False
-rdo2aod.timeout = 18*3600
-rdo2aod.input = 'ttbar_pu80'   # defined in TrigValTools/share/TrigValInputs.json  
-
-
-test = Test.Test()
-test.art_type = 'grid'
-if (not exclude):
-    test.exec_steps = [rdo2aod]
-    test.exec_steps.append(TrigInDetAna()) # Run analysis to produce TrkNtuple
-    test.check_steps = CheckSteps.default_check_steps(test)
-
-# Run Tidardict
-if ((not exclude) or postproc ):
-    rdict = TrigInDetdictStep()
-    rdict.args='TIDAdata-run3-offline.dat -r Offline -f data-hists.root -b Test_bin.dat '
-    test.check_steps.append(rdict)
-
- 
-# Now the comparitor steps
-comp=TrigInDetCompStep('Comp_L2muon','L2','muon')
-comp.test='ttbar'
-test.check_steps.append(comp)
- 
- 
-comp2=TrigInDetCompStep('Comp_EFmuon','EF','muon')
-comp2.test='ttbar'
-test.check_steps.append(comp2)
-
-
-comp3=TrigInDetCompStep('Comp_L2bjet','L2','bjet')
-comp3.test='ttbar'
-test.check_steps.append(comp3)
-
-comp4=TrigInDetCompStep('Comp_EFbjet','EF','bjet')
-comp4.test='ttbar'
-test.check_steps.append(comp4)
-
-comp5=TrigInDetCompStep('Comp_L2tau','L2','tau')
-comp5.test='ttbar'
-test.check_steps.append(comp5)
-
-comp6=TrigInDetCompStep('Comp_EFtau','EF','tau')
-comp6.test='ttbar'
-test.check_steps.append(comp6)
-
-comp7=TrigInDetCompStep('Comp_L2ele','L2','electron')
-comp7.test='ttbar'
-test.check_steps.append(comp7)
-
-comp8=TrigInDetCompStep('Comp_EFele','EF','electron')
-comp8.test='ttbar'
-test.check_steps.append(comp8)
-
-comp9=TrigInDetCompStep('Comp_L2FS','L2','FS')
-comp9.test='ttbar'
-test.check_steps.append(comp9)
-
-# CPU cost steps
-cpucost=TrigInDetCpuCostStep('CpuCostStep1', ftf_times=False)
-test.check_steps.append(cpucost)
-
-cpucost2=TrigInDetCpuCostStep('CpuCostStep2')
-test.check_steps.append(cpucost2)
-
-import sys
-sys.exit(test.run())
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu80_old.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu80_old.py
new file mode 100755
index 00000000000..63ce3daf22f
--- /dev/null
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu80_old.py
@@ -0,0 +1,127 @@
+#!/usr/bin/env python
+
+# art-description: art job for all_ttbar_pu80
+# art-type: grid
+# art-include: master/Athena
+# art-input-nfiles: 3
+# art-athena-mt: 8
+# art-memory: 4096
+# art-html: https://idtrigger-val.web.cern.ch/idtrigger-val/TIDAWeb/TIDAart/?jobdir=
+# art-output: *.txt
+# art-output: *.log
+# art-output: log.*
+# art-output: *.out
+# art-output: *.err
+# art-output: *.log.tar.gz
+# art-output: *.new
+# art-output: *.json
+# art-output: *.root
+# art-output: *.check*
+# art-output: HLT*
+# art-output: times*
+# art-output: cost-perCall
+# art-output: cost-perEvent
+# art-output: cost-perCall-chain
+# art-output: cost-perEvent-chain
+# art-output: *.dat 
+
+
+from TrigValTools.TrigValSteering import Test, CheckSteps
+from TrigInDetValidation.TrigInDetOldArtSteps import TrigInDetReco, TrigInDetAna, TrigInDetdictStep, TrigInDetCompStep, TrigInDetCpuCostStep
+
+
+import sys,getopt
+
+try:
+    opts, args = getopt.getopt(sys.argv[1:],"lxp",["local"])
+except getopt.GetoptError:
+    print("Usage:  ")
+    print("-l(--local)    run locally with input file from art eos grid-input")
+    print("-x             don't run athena or post post-processing, only plotting")
+    print("-p             run post-processing, even if -x is set")
+
+
+local=False
+exclude=False
+postproc=False
+for opt,arg in opts:
+    if opt in ("-l", "--local"):
+        local=True
+    if opt=="-x":
+        exclude=True
+    if opt=="-p":
+        postproc=True
+
+
+rdo2aod = TrigInDetReco()
+rdo2aod.slices = ['muon','electron','tau','bjet']
+rdo2aod.max_events = 4000 
+rdo2aod.threads = 8 
+rdo2aod.concurrent_events = 8
+rdo2aod.perfmon = False
+rdo2aod.timeout = 18*3600
+rdo2aod.input = 'ttbar_pu80'   # defined in TrigValTools/share/TrigValInputs.json  
+
+
+test = Test.Test()
+test.art_type = 'grid'
+if (not exclude):
+    test.exec_steps = [rdo2aod]
+    test.exec_steps.append(TrigInDetAna()) # Run analysis to produce TrkNtuple
+    test.check_steps = CheckSteps.default_check_steps(test)
+
+# Run Tidardict
+if ((not exclude) or postproc ):
+    rdict = TrigInDetdictStep()
+    rdict.args='TIDAdata-run3-offline.dat -r Offline -f data-hists.root -b Test_bin.dat '
+    test.check_steps.append(rdict)
+
+ 
+# Now the comparitor steps
+comp=TrigInDetCompStep('Comp_L2muon','L2','muon')
+comp.test='ttbar'
+test.check_steps.append(comp)
+ 
+ 
+comp2=TrigInDetCompStep('Comp_EFmuon','EF','muon')
+comp2.test='ttbar'
+test.check_steps.append(comp2)
+
+
+comp3=TrigInDetCompStep('Comp_L2bjet','L2','bjet')
+comp3.test='ttbar'
+test.check_steps.append(comp3)
+
+comp4=TrigInDetCompStep('Comp_EFbjet','EF','bjet')
+comp4.test='ttbar'
+test.check_steps.append(comp4)
+
+comp5=TrigInDetCompStep('Comp_L2tau','L2','tau')
+comp5.test='ttbar'
+test.check_steps.append(comp5)
+
+comp6=TrigInDetCompStep('Comp_EFtau','EF','tau')
+comp6.test='ttbar'
+test.check_steps.append(comp6)
+
+comp7=TrigInDetCompStep('Comp_L2ele','L2','electron')
+comp7.test='ttbar'
+test.check_steps.append(comp7)
+
+comp8=TrigInDetCompStep('Comp_EFele','EF','electron')
+comp8.test='ttbar'
+test.check_steps.append(comp8)
+
+comp9=TrigInDetCompStep('Comp_L2FS','L2','FS')
+comp9.test='ttbar'
+test.check_steps.append(comp9)
+
+# CPU cost steps
+cpucost=TrigInDetCpuCostStep('CpuCostStep1', ftf_times=False)
+test.check_steps.append(cpucost)
+
+cpucost2=TrigInDetCpuCostStep('CpuCostStep2')
+test.check_steps.append(cpucost2)
+
+import sys
+sys.exit(test.run())
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu80_short.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu80_short.py
index d012c879722..b1f1181b7bd 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu80_short.py
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu80_short.py
@@ -3,7 +3,6 @@
 # art-description: art job for all_ttbar_pu80_short
 # art-type: grid
 # art-include: master/Athena
-# art-input-nfiles: 3
 # art-athena-mt: 8
 # art-memory: 4096
 # art-html: https://idtrigger-val.web.cern.ch/idtrigger-val/TIDAWeb/TIDAart/?jobdir=
@@ -26,102 +25,28 @@
 # art-output: *.dat 
 
 
-from TrigValTools.TrigValSteering import Test, CheckSteps
-from TrigInDetValidation.TrigInDetArtSteps import TrigInDetReco, TrigInDetAna, TrigInDetdictStep, TrigInDetCompStep, TrigInDetCpuCostStep
+Slices  = ['muon','electron','tau','bjet','fsjet']
+Events  = 1000
+Threads = 8 
+Slots   = 8
+Input   = 'ttbar_pu80'    # defined in TrigValTools/share/TrigValInputs.json  
 
+Jobs = [ ( "Offline",     " TIDAdata-run3-offline.dat      -r Offline -o data-hists-offline.root" ),
+         ( "OfflineVtx",  " TIDAdata-run3-offline-vtx.dat  -r Offline -o data-hists-offline-vtx.root" ) ]
 
-import sys,getopt
+Comp = [ ( "L2muon",       "L2muon",      "data-hists-offline.root",      " -c TIDAhisto-panel.dat  -d HLTL2-plots-muon " ),
+         ( "L2electron",   "L2electron",  "data-hists-offline.root",      " -c TIDAhisto-panel.dat  -d HLTL2-plots-electron " ),
+         ( "L2tau",        "L2tau",       "data-hists-offline.root",      " -c TIDAhisto-panel.dat  -d HLTL2-plots-tau " ),
+         ( "L2bjet",       "L2bjet",      "data-hists-offline.root",      " -c TIDAhisto-panel.dat  -d HLTL2-plots-bjet " ),   
+         ( "FSjetoffline", "L2fsjet",     "data-hists-offline.root",      " -c TIDAhisto-panel.dat  -d HLTL2-plots-FS " ),
+         ( "FSvtx",        "L2fsjetvtx",  "data-hists-offline-vtx.root",  " -c TIDAhisto-panel-vtx.dat  -d HLTL2-plots-vtx     --ncols 3" ),
+         ( "FSvtxall",     "L2fsjetvtx",  "data-hists-offline.root",      " -c TIDAhisto-panel-vtx.dat  -d HLTL2-plots-vtxall  --ncols 3" ), 
 
-try:
-    opts, args = getopt.getopt(sys.argv[1:],"lxp",["local"])
-except getopt.GetoptError:
-    print("Usage:  ")
-    print("-l(--local)    run locally with input file from art eos grid-input")
-    print("-x             don't run athena or post post-processing, only plotting")
-    print("-p             run post-processing, even if -x is set")
+         ( "EFmuon",       "EFmuon",      "data-hists-offline.root",   " -c TIDAhisto-panel.dat  -d HLTEF-plots-muon " ),
+         ( "EFelectron",   "EFelectron",  "data-hists-offline.root",   " -c TIDAhisto-panel.dat  -d HLTEF-plots-electron " ),
+         ( "EFtau",        "EFtau",       "data-hists-offline.root",   " -c TIDAhisto-panel.dat  -d HLTEF-plots-tau " ),
+         ( "EFbjet",       "EFmuon",      "data-hists-offline.root",   " -c TIDAhisto-panel.dat  -d HLTEF-plots-bjet " ) ]
+   
+from AthenaCommon.Include import include 
+include("TrigInDetValidation/TrigInDetValidation_Base.py")
 
-
-local=False
-exclude=False
-postproc=False
-for opt,arg in opts:
-    if opt in ("-l", "--local"):
-        local=True
-    if opt=="-x":
-        exclude=True
-    if opt=="-p":
-        postproc=True
-
-
-rdo2aod = TrigInDetReco()
-rdo2aod.slices = ['muon','electron','tau','bjet']
-rdo2aod.max_events = 1000 
-rdo2aod.threads = 8 
-rdo2aod.concurrent_events = 8
-rdo2aod.perfmon = False
-rdo2aod.timeout = 18*3600
-rdo2aod.input = 'ttbar_pu80'   # defined in TrigValTools/share/TrigValInputs.json  
-
-
-test = Test.Test()
-test.art_type = 'grid'
-if (not exclude):
-    test.exec_steps = [rdo2aod]
-    test.exec_steps.append(TrigInDetAna()) # Run analysis to produce TrkNtuple
-    test.check_steps = CheckSteps.default_check_steps(test)
-
-# Run Tidardict
-if ((not exclude) or postproc ):
-    rdict = TrigInDetdictStep()
-    rdict.args='TIDAdata-run3-offline.dat -r Offline -f data-hists.root -b Test_bin.dat '
-    test.check_steps.append(rdict)
-
- 
-# Now the comparitor steps
-comp=TrigInDetCompStep('Comp_L2muon','L2','muon')
-comp.test='ttbar'
-test.check_steps.append(comp)
- 
- 
-comp2=TrigInDetCompStep('Comp_EFmuon','EF','muon')
-comp2.test='ttbar'
-test.check_steps.append(comp2)
-
-
-comp3=TrigInDetCompStep('Comp_L2bjet','L2','bjet')
-comp3.test='ttbar'
-test.check_steps.append(comp3)
-
-comp4=TrigInDetCompStep('Comp_EFbjet','EF','bjet')
-comp4.test='ttbar'
-test.check_steps.append(comp4)
-
-comp5=TrigInDetCompStep('Comp_L2tau','L2','tau')
-comp5.test='ttbar'
-test.check_steps.append(comp5)
-
-comp6=TrigInDetCompStep('Comp_EFtau','EF','tau')
-comp6.test='ttbar'
-test.check_steps.append(comp6)
-
-comp7=TrigInDetCompStep('Comp_L2ele','L2','electron')
-comp7.test='ttbar'
-test.check_steps.append(comp7)
-
-comp8=TrigInDetCompStep('Comp_EFele','EF','electron')
-comp8.test='ttbar'
-test.check_steps.append(comp8)
-
-comp9=TrigInDetCompStep('Comp_L2FS','L2','FS')
-comp9.test='ttbar'
-test.check_steps.append(comp9)
-
-# CPU cost steps
-cpucost=TrigInDetCpuCostStep('CpuCostStep1', ftf_times=False)
-test.check_steps.append(cpucost)
-
-cpucost2=TrigInDetCpuCostStep('CpuCostStep2')
-test.check_steps.append(cpucost2)
-
-import sys
-sys.exit(test.run())
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu80_short_old.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu80_short_old.py
new file mode 100755
index 00000000000..83941ab6bf6
--- /dev/null
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu80_short_old.py
@@ -0,0 +1,127 @@
+#!/usr/bin/env python
+
+# art-description: art job for all_ttbar_pu80_short
+# art-type: grid
+# art-include: master/Athena
+# art-input-nfiles: 3
+# art-athena-mt: 8
+# art-memory: 4096
+# art-html: https://idtrigger-val.web.cern.ch/idtrigger-val/TIDAWeb/TIDAart/?jobdir=
+# art-output: *.txt
+# art-output: *.log
+# art-output: log.*
+# art-output: *.out
+# art-output: *.err
+# art-output: *.log.tar.gz
+# art-output: *.new
+# art-output: *.json
+# art-output: *.root
+# art-output: *.check*
+# art-output: HLT*
+# art-output: times*
+# art-output: cost-perCall
+# art-output: cost-perEvent
+# art-output: cost-perCall-chain
+# art-output: cost-perEvent-chain
+# art-output: *.dat 
+
+
+from TrigValTools.TrigValSteering import Test, CheckSteps
+from TrigInDetValidation.TrigInDetOldArtSteps import TrigInDetReco, TrigInDetAna, TrigInDetdictStep, TrigInDetCompStep, TrigInDetCpuCostStep
+
+
+import sys,getopt
+
+try:
+    opts, args = getopt.getopt(sys.argv[1:],"lxp",["local"])
+except getopt.GetoptError:
+    print("Usage:  ")
+    print("-l(--local)    run locally with input file from art eos grid-input")
+    print("-x             don't run athena or post post-processing, only plotting")
+    print("-p             run post-processing, even if -x is set")
+
+
+local=False
+exclude=False
+postproc=False
+for opt,arg in opts:
+    if opt in ("-l", "--local"):
+        local=True
+    if opt=="-x":
+        exclude=True
+    if opt=="-p":
+        postproc=True
+
+
+rdo2aod = TrigInDetReco()
+rdo2aod.slices = ['muon','electron','tau','bjet']
+rdo2aod.max_events = 1000 
+rdo2aod.threads = 8 
+rdo2aod.concurrent_events = 8
+rdo2aod.perfmon = False
+rdo2aod.timeout = 18*3600
+rdo2aod.input = 'ttbar_pu80'   # defined in TrigValTools/share/TrigValInputs.json  
+
+
+test = Test.Test()
+test.art_type = 'grid'
+if (not exclude):
+    test.exec_steps = [rdo2aod]
+    test.exec_steps.append(TrigInDetAna()) # Run analysis to produce TrkNtuple
+    test.check_steps = CheckSteps.default_check_steps(test)
+
+# Run Tidardict
+if ((not exclude) or postproc ):
+    rdict = TrigInDetdictStep()
+    rdict.args='TIDAdata-run3-offline.dat -r Offline -f data-hists.root -b Test_bin.dat '
+    test.check_steps.append(rdict)
+
+ 
+# Now the comparitor steps
+comp=TrigInDetCompStep('Comp_L2muon','L2','muon')
+comp.test='ttbar'
+test.check_steps.append(comp)
+ 
+ 
+comp2=TrigInDetCompStep('Comp_EFmuon','EF','muon')
+comp2.test='ttbar'
+test.check_steps.append(comp2)
+
+
+comp3=TrigInDetCompStep('Comp_L2bjet','L2','bjet')
+comp3.test='ttbar'
+test.check_steps.append(comp3)
+
+comp4=TrigInDetCompStep('Comp_EFbjet','EF','bjet')
+comp4.test='ttbar'
+test.check_steps.append(comp4)
+
+comp5=TrigInDetCompStep('Comp_L2tau','L2','tau')
+comp5.test='ttbar'
+test.check_steps.append(comp5)
+
+comp6=TrigInDetCompStep('Comp_EFtau','EF','tau')
+comp6.test='ttbar'
+test.check_steps.append(comp6)
+
+comp7=TrigInDetCompStep('Comp_L2ele','L2','electron')
+comp7.test='ttbar'
+test.check_steps.append(comp7)
+
+comp8=TrigInDetCompStep('Comp_EFele','EF','electron')
+comp8.test='ttbar'
+test.check_steps.append(comp8)
+
+comp9=TrigInDetCompStep('Comp_L2FS','L2','FS')
+comp9.test='ttbar'
+test.check_steps.append(comp9)
+
+# CPU cost steps
+cpucost=TrigInDetCpuCostStep('CpuCostStep1', ftf_times=False)
+test.check_steps.append(cpucost)
+
+cpucost2=TrigInDetCpuCostStep('CpuCostStep2')
+test.check_steps.append(cpucost2)
+
+import sys
+sys.exit(test.run())
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu80_st.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu80_st.py
index b54945e9f25..ad18d67f9c5 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu80_st.py
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu80_st.py
@@ -3,7 +3,6 @@
 # art-description: art job for all_ttbar_pu80_st
 # art-type: grid
 # art-include: master/Athena
-# art-input-nfiles: 3
 # art-athena-mt: 4
 # art-memory: 4096
 # art-html: https://idtrigger-val.web.cern.ch/idtrigger-val/TIDAWeb/TIDAart/?jobdir=
@@ -26,103 +25,28 @@
 # art-output: *.dat 
 
 
-from TrigValTools.TrigValSteering import Test, CheckSteps
-from TrigInDetValidation.TrigInDetArtSteps import TrigInDetReco, TrigInDetAna, TrigInDetdictStep, TrigInDetCompStep, TrigInDetCpuCostStep
+Slices  = ['muon','electron','tau','bjet','fsjet']
+Events  = 1000
+Threads = 1
+Slots   = 1
+Input   = 'ttbar_pu80'    # defined in TrigValTools/share/TrigValInputs.json  
 
+Jobs = [ ( "Offline",     " TIDAdata-run3-offline.dat      -r Offline -o data-hists-offline.root" ),
+         ( "OfflineVtx",  " TIDAdata-run3-offline-vtx.dat  -r Offline -o data-hists-offline-vtx.root" ) ]
 
-import sys,getopt
+Comp = [ ( "L2muon",       "L2muon",      "data-hists-offline.root",      " -c TIDAhisto-panel.dat  -d HLTL2-plots-muon " ),
+         ( "L2electron",   "L2electron",  "data-hists-offline.root",      " -c TIDAhisto-panel.dat  -d HLTL2-plots-electron " ),
+         ( "L2tau",        "L2tau",       "data-hists-offline.root",      " -c TIDAhisto-panel.dat  -d HLTL2-plots-tau " ),
+         ( "L2bjet",       "L2bjet",      "data-hists-offline.root",      " -c TIDAhisto-panel.dat  -d HLTL2-plots-bjet " ),   
+         ( "FSjetoffline", "L2fsjet",     "data-hists-offline.root",      " -c TIDAhisto-panel.dat  -d HLTL2-plots-FS " ),
+         ( "FSvtx",        "L2fsjetvtx",  "data-hists-offline-vtx.root",  " -c TIDAhisto-panel-vtx.dat  -d HLTL2-plots-vtx     --ncols 3" ),
+         ( "FSvtxall",     "L2fsjetvtx",  "data-hists-offline.root",      " -c TIDAhisto-panel-vtx.dat  -d HLTL2-plots-vtxall  --ncols 3" ), 
 
-try:
-    opts, args = getopt.getopt(sys.argv[1:],"lxp",["local"])
-except getopt.GetoptError:
-    print("Usage:  ")
-    print("-l(--local)    run locally with input file from art eos grid-input")
-    print("-x             don't run athena or post post-processing, only plotting")
-    print("-p             run post-processing, even if -x is set")
+         ( "EFmuon",       "EFmuon",      "data-hists-offline.root",   " -c TIDAhisto-panel.dat  -d HLTEF-plots-muon " ),
+         ( "EFelectron",   "EFelectron",  "data-hists-offline.root",   " -c TIDAhisto-panel.dat  -d HLTEF-plots-electron " ),
+         ( "EFtau",        "EFtau",       "data-hists-offline.root",   " -c TIDAhisto-panel.dat  -d HLTEF-plots-tau " ),
+         ( "EFbjet",       "EFmuon",      "data-hists-offline.root",   " -c TIDAhisto-panel.dat  -d HLTEF-plots-bjet " ) ]
+   
+from AthenaCommon.Include import include 
+include("TrigInDetValidation/TrigInDetValidation_Base.py")
 
-
-local=False
-exclude=False
-postproc=False
-for opt,arg in opts:
-    if opt in ("-l", "--local"):
-        local=True
-    if opt=="-x":
-        exclude=True
-    if opt=="-p":
-        postproc=True
-
-
-rdo2aod = TrigInDetReco()
-rdo2aod.slices = ['muon','electron','tau','bjet']
-rdo2aod.max_events = 1000 
-rdo2aod.threads = 1 
-rdo2aod.concurrent_events = 1 
-rdo2aod.perfmon = False
-rdo2aod.timeout = 18*3600
-rdo2aod.input = 'ttbar_pu80'   # defined in TrigValTools/share/TrigValInputs.json  
-
-
-test = Test.Test()
-test.art_type = 'grid'
-if (not exclude):
-    test.exec_steps = [rdo2aod]
-    test.exec_steps.append(TrigInDetAna()) # Run analysis to produce TrkNtuple
-    test.check_steps = CheckSteps.default_check_steps(test)
-
-# Run Tidardict
-if ((not exclude) or postproc ):
-    rdict = TrigInDetdictStep()
-    rdict.args='TIDAdata-run3-offline.dat -r Offline -f data-hists.root -b Test_bin.dat '
-    test.check_steps.append(rdict)
-
- 
-# Now the comparitor steps
-comp=TrigInDetCompStep('Comp_L2muon','L2','muon')
-comp.test='ttbar'
-test.check_steps.append(comp)
- 
- 
-comp2=TrigInDetCompStep('Comp_EFmuon','EF','muon')
-comp2.test='ttbar'
-test.check_steps.append(comp2)
-
-
-comp3=TrigInDetCompStep('Comp_L2bjet','L2','bjet')
-comp3.test='ttbar'
-test.check_steps.append(comp3)
-
-comp4=TrigInDetCompStep('Comp_EFbjet','EF','bjet')
-comp4.test='ttbar'
-test.check_steps.append(comp4)
-
-comp5=TrigInDetCompStep('Comp_L2tau','L2','tau')
-comp5.test='ttbar'
-test.check_steps.append(comp5)
-
-comp6=TrigInDetCompStep('Comp_EFtau','EF','tau')
-comp6.test='ttbar'
-test.check_steps.append(comp6)
-
-comp7=TrigInDetCompStep('Comp_L2ele','L2','electron')
-comp7.test='ttbar'
-test.check_steps.append(comp7)
-
-comp8=TrigInDetCompStep('Comp_EFele','EF','electron')
-comp8.test='ttbar'
-test.check_steps.append(comp8)
-
-comp9=TrigInDetCompStep('Comp_L2FS','L2','FS')
-comp9.test='ttbar'
-test.check_steps.append(comp9)
-
-# CPU cost steps
-cpucost=TrigInDetCpuCostStep('CpuCostStep1', ftf_times=False)
-test.check_steps.append(cpucost)
-
-cpucost2=TrigInDetCpuCostStep('CpuCostStep2')
-test.check_steps.append(cpucost2)
-
-
-import sys
-sys.exit(test.run())
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu80_st_old.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu80_st_old.py
new file mode 100755
index 00000000000..357cde75098
--- /dev/null
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu80_st_old.py
@@ -0,0 +1,128 @@
+#!/usr/bin/env python
+
+# art-description: art job for all_ttbar_pu80_st
+# art-type: grid
+# art-include: master/Athena
+# art-input-nfiles: 3
+# art-athena-mt: 4
+# art-memory: 4096
+# art-html: https://idtrigger-val.web.cern.ch/idtrigger-val/TIDAWeb/TIDAart/?jobdir=
+# art-output: *.txt
+# art-output: *.log
+# art-output: log.*
+# art-output: *.out
+# art-output: *.err
+# art-output: *.log.tar.gz
+# art-output: *.new
+# art-output: *.json
+# art-output: *.root
+# art-output: *.check*
+# art-output: HLT*
+# art-output: times*
+# art-output: cost-perCall
+# art-output: cost-perEvent
+# art-output: cost-perCall-chain
+# art-output: cost-perEvent-chain
+# art-output: *.dat 
+
+
+from TrigValTools.TrigValSteering import Test, CheckSteps
+from TrigInDetValidation.TrigInDetOldArtSteps import TrigInDetReco, TrigInDetAna, TrigInDetdictStep, TrigInDetCompStep, TrigInDetCpuCostStep
+
+
+import sys,getopt
+
+try:
+    opts, args = getopt.getopt(sys.argv[1:],"lxp",["local"])
+except getopt.GetoptError:
+    print("Usage:  ")
+    print("-l(--local)    run locally with input file from art eos grid-input")
+    print("-x             don't run athena or post post-processing, only plotting")
+    print("-p             run post-processing, even if -x is set")
+
+
+local=False
+exclude=False
+postproc=False
+for opt,arg in opts:
+    if opt in ("-l", "--local"):
+        local=True
+    if opt=="-x":
+        exclude=True
+    if opt=="-p":
+        postproc=True
+
+
+rdo2aod = TrigInDetReco()
+rdo2aod.slices = ['muon','electron','tau','bjet']
+rdo2aod.max_events = 1000 
+rdo2aod.threads = 1 
+rdo2aod.concurrent_events = 1 
+rdo2aod.perfmon = False
+rdo2aod.timeout = 18*3600
+rdo2aod.input = 'ttbar_pu80'   # defined in TrigValTools/share/TrigValInputs.json  
+
+
+test = Test.Test()
+test.art_type = 'grid'
+if (not exclude):
+    test.exec_steps = [rdo2aod]
+    test.exec_steps.append(TrigInDetAna()) # Run analysis to produce TrkNtuple
+    test.check_steps = CheckSteps.default_check_steps(test)
+
+# Run Tidardict
+if ((not exclude) or postproc ):
+    rdict = TrigInDetdictStep()
+    rdict.args='TIDAdata-run3-offline.dat -r Offline -f data-hists.root -b Test_bin.dat '
+    test.check_steps.append(rdict)
+
+ 
+# Now the comparitor steps
+comp=TrigInDetCompStep('Comp_L2muon','L2','muon')
+comp.test='ttbar'
+test.check_steps.append(comp)
+ 
+ 
+comp2=TrigInDetCompStep('Comp_EFmuon','EF','muon')
+comp2.test='ttbar'
+test.check_steps.append(comp2)
+
+
+comp3=TrigInDetCompStep('Comp_L2bjet','L2','bjet')
+comp3.test='ttbar'
+test.check_steps.append(comp3)
+
+comp4=TrigInDetCompStep('Comp_EFbjet','EF','bjet')
+comp4.test='ttbar'
+test.check_steps.append(comp4)
+
+comp5=TrigInDetCompStep('Comp_L2tau','L2','tau')
+comp5.test='ttbar'
+test.check_steps.append(comp5)
+
+comp6=TrigInDetCompStep('Comp_EFtau','EF','tau')
+comp6.test='ttbar'
+test.check_steps.append(comp6)
+
+comp7=TrigInDetCompStep('Comp_L2ele','L2','electron')
+comp7.test='ttbar'
+test.check_steps.append(comp7)
+
+comp8=TrigInDetCompStep('Comp_EFele','EF','electron')
+comp8.test='ttbar'
+test.check_steps.append(comp8)
+
+comp9=TrigInDetCompStep('Comp_L2FS','L2','FS')
+comp9.test='ttbar'
+test.check_steps.append(comp9)
+
+# CPU cost steps
+cpucost=TrigInDetCpuCostStep('CpuCostStep1', ftf_times=False)
+test.check_steps.append(cpucost)
+
+cpucost2=TrigInDetCpuCostStep('CpuCostStep2')
+test.check_steps.append(cpucost2)
+
+
+import sys
+sys.exit(test.run())
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_bjet_nopps_pu40.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_bjet_nopps_pu40.py
index 850c9adf65f..d881c3ff9b5 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_bjet_nopps_pu40.py
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_bjet_nopps_pu40.py
@@ -30,14 +30,19 @@ os.system("echo 'ftf = findAlgorithm(topSequence, \"TrigFastTrackFinder__jet\")'
 os.system("echo 'ftf.TripletDoPPS=False' >> dopps.py")
 
 Slices = ['bjet']
-RunEF   = True
 Events  = 4000
 Threads = 8 
 Slots   = 8
 postinclude_file = 'dopps.py'
 Input = 'ttbar_ID'    # defined in TrigValTools/share/TrigValInputs.json  
 
-TrackReference = [ 'Truth', 'Offline' ]
+Jobs = [ ( "Truth",       " TIDAdata-run3.dat                    -o data-hists.root" ),
+         ( "Offline",     " TIDAdata-run3-offline.dat -r Offline -o data-hists-offline.root" ) ]
+
+Comp = [ ( "L2bjet",              "L2bjet",      "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTL2-plots " ),
+         ( "L2bjetoffline",       "L2bjet",      "data-hists-offline.root", " -c TIDAhisto-panel.dat  -d HLTL2-plots-offline " ),
+         ( "EFbjet",              "EFbjet",      "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTEF-plots " ),
+         ( "EFbjetoffline",       "EFbjet",      "data-hists-offline.root", " -c TIDAhisto-panel.dat  -d HLTEF-plots-offline " ) ]
 
 
 from AthenaCommon.Include import include 
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_bjet_nopps_pu40_old.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_bjet_nopps_pu40_old.py
new file mode 100755
index 00000000000..f014eae0bec
--- /dev/null
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_bjet_nopps_pu40_old.py
@@ -0,0 +1,45 @@
+#!/usr/bin/env python
+
+# art-description: art job for bjet_pu40_mt
+# art-type: grid
+# art-include: master/Athena
+# art-input-nfiles: 3
+# art-athena-mt: 4
+# art-memory: 4096
+# art-html: https://idtrigger-val.web.cern.ch/idtrigger-val/TIDAWeb/TIDAart/?jobdir=
+# art-output: *.txt
+# art-output: *.log
+# art-output: log.*
+# art-output: *.out
+# art-output: *.err
+# art-output: *.log.tar.gz
+# art-output: *.new
+# art-output: *.json
+# art-output: *.root
+# art-output: *.check*
+# art-output: HLT*
+# art-output: times*
+# art-output: cost-perCall
+# art-output: cost-perEvent
+# art-output: cost-perCall-chain
+# art-output: cost-perEvent-chain
+# art-output: *.dat 
+
+import os
+os.system("echo 'ftf = findAlgorithm(topSequence, \"TrigFastTrackFinder__jet\")' > dopps.py")
+os.system("echo 'ftf.TripletDoPPS=False' >> dopps.py")
+
+Slices = ['bjet']
+RunEF   = True
+Events  = 4000
+Threads = 8 
+Slots   = 8
+postinclude_file = 'dopps.py'
+Input = 'ttbar_ID'    # defined in TrigValTools/share/TrigValInputs.json  
+
+TrackReference = [ 'Truth', 'Offline' ]
+
+
+from AthenaCommon.Include import include 
+include("TrigInDetValidation/TrigInDetValidation_OldBase.py")
+
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_bjet_pu40.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_bjet_pu40.py
index 3a9b964b4f7..a99b3d6d885 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_bjet_pu40.py
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_bjet_pu40.py
@@ -26,13 +26,18 @@
 # art-output: *.dat 
 
 Slices = ['bjet']
-RunEF   = True
 Events  = 4000
 Threads = 8 
 Slots   = 8
 Input = 'ttbar_ID'    # defined in TrigValTools/share/TrigValInputs.json  
 
-TrackReference = [ 'Truth', 'Offline' ]
+Jobs = [ ( "Truth",       " TIDAdata-run3.dat                    -o data-hists.root" ),
+         ( "Offline",     " TIDAdata-run3-offline.dat -r Offline -o data-hists-offline.root" ) ]
+
+Comp = [ ( "L2bjet",              "L2bjet",      "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTL2-plots " ),
+         ( "L2bjetoffline",       "L2bjet",      "data-hists-offline.root", " -c TIDAhisto-panel.dat  -d HLTL2-plots-offline " ),
+         ( "EFbjet",              "EFbjet",      "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTEF-plots " ),
+         ( "EFbjetoffline",       "EFbjet",      "data-hists-offline.root", " -c TIDAhisto-panel.dat  -d HLTEF-plots-offline " ) ]
 
 
 from AthenaCommon.Include import include 
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_bjet_pu40_old.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_bjet_pu40_old.py
new file mode 100755
index 00000000000..3aa3e95ad34
--- /dev/null
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_bjet_pu40_old.py
@@ -0,0 +1,40 @@
+#!/usr/bin/env python
+
+# art-description: art job for bjet_pu40_mt
+# art-type: grid
+# art-include: master/Athena
+# art-input-nfiles: 3
+# art-athena-mt: 4
+# art-memory: 4096
+# art-html: https://idtrigger-val.web.cern.ch/idtrigger-val/TIDAWeb/TIDAart/?jobdir=
+# art-output: *.txt
+# art-output: *.log
+# art-output: log.*
+# art-output: *.out
+# art-output: *.err
+# art-output: *.log.tar.gz
+# art-output: *.new
+# art-output: *.json
+# art-output: *.root
+# art-output: *.check*
+# art-output: HLT*
+# art-output: times*
+# art-output: cost-perCall
+# art-output: cost-perEvent
+# art-output: cost-perCall-chain
+# art-output: cost-perEvent-chain
+# art-output: *.dat 
+
+Slices = ['bjet']
+RunEF   = True
+Events  = 4000
+Threads = 8 
+Slots   = 8
+Input = 'ttbar_ID'    # defined in TrigValTools/share/TrigValInputs.json  
+
+TrackReference = [ 'Truth', 'Offline' ]
+
+
+from AthenaCommon.Include import include 
+include("TrigInDetValidation/TrigInDetValidation_OldBase.py")
+
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_jpsiee_pu40.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_jpsiee_pu40.py
index bc85b432601..9c022553168 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_jpsiee_pu40.py
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_jpsiee_pu40.py
@@ -5,7 +5,7 @@
 # art-include: master/Athena
 # art-input: mc15_13TeV.129190.Pythia8_AU2CTEQ6L1_ppToJpsie3e3.recon.RDO.e3802_s2608_s2183_r7042
 # art-input-nfiles: 16
-# art-athena-mt: 8
+# art-athena-mt: 4
 # art-memory: 4096
 # art-html: https://idtrigger-val.web.cern.ch/idtrigger-val/TIDAWeb/TIDAart/?jobdir=
 # art-output: *.txt
@@ -27,99 +27,25 @@
 # art-output: *.dat 
 
 
-from TrigValTools.TrigValSteering import Test, CheckSteps
-from TrigInDetValidation.TrigInDetArtSteps import TrigInDetReco, TrigInDetAna, TrigInDetdictStep, TrigInDetCompStep, TrigInDetCpuCostStep
+Slices  = ['electron']
+Events  = 8000
+Threads = 8 
+Slots   = 8
+Input   = 'Jpsiee_pu40'    # defined in TrigValTools/share/TrigValInputs.json
+GridFiles=True
 
-import sys,getopt
+Jobs = [ ( "Truth",       " TIDAdata-run3.dat                    -o data-hists.root -p 11" ),
+         ( "Offline",     " TIDAdata-run3-offline.dat -r Offline -o data-hists-offline.root" ) ]
 
-try:
-    opts, args = getopt.getopt(sys.argv[1:],"lxp",["local"])
-except getopt.GetoptError:
-    print("Usage:  ")
-    print("-l(--local)    run locally with input file from art eos grid-input")
-    print("-x             don't run athena or post post-processing, only plotting")
-    print("-p             run post-processing, even if -x is set")
+Comp = [ ( "L2ele",              "L2electron",      "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTL2-plots " ),
+         ( "L2ele-lowpt",        "L2electronLowpt", "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTL2-plots-lowpt " ),
+         ( "L2eleoffline",       "L2electron",      "data-hists-offline.root", " -c TIDAhisto-panel.dat  -d HLTL2-plots-offline " ),
+         ( "L2eleoffline-lowpt", "L2electronLowpt", "data-hists-offline.root", " -c TIDAhisto-panel.dat  -d HLTL2-plots-lowpt-offline " ),
+         ( "EFele",              "EFelectron",      "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTEF-plots " ),
+         ( "EFele-lowpt",        "EFelectronLowpt", "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTEF-plots-lowpt " ),
+         ( "EFeleoffline",       "EFelectron",      "data-hists-offline.root", " -c TIDAhisto-panel.dat  -d HLTEF-plots-offline " ),
+         ( "EFeleoffline-lowpt", "EFelectronLowpt", "data-hists-offline.root", " -c TIDAhisto-panel.dat  -d HLTEF-plots-lowpt-offline " ) ]
 
 
-local=False
-exclude=False
-postproc=False
-for opt,arg in opts:
-    if opt in ("-l", "--local"):
-        local=True
-    if opt=="-x":
-        exclude=True
-    if opt=="-p":
-        postproc=True
-
-
-rdo2aod = TrigInDetReco()
-rdo2aod.slices = ['electron']
-rdo2aod.max_events = 8000 
-rdo2aod.threads = 8
-rdo2aod.concurrent_events = 8
-rdo2aod.perfmon = False
-rdo2aod.timeout = 18*3600
-if local:
-    rdo2aod.input = 'Jpsiee_pu40'     # defined in TrigValTools/share/TrigValInputs.json  
-else:
-    rdo2aod.input = ''
-    rdo2aod.args += '--inputRDOFile=$ArtInFile '
-
-
-test = Test.Test()
-test.art_type = 'grid'
-if (not exclude):
-    test.exec_steps = [rdo2aod]
-    test.exec_steps.append(TrigInDetAna()) # Run analysis to produce TrkNtuple
-    test.check_steps = CheckSteps.default_check_steps(test)
-
- 
-# Run Tidardict
-if ((not exclude) or postproc ):
-    rdict = TrigInDetdictStep()
-    rdict.args='TIDAdata-run3.dat -f data-hists.root -p 11 -b Test_bin.dat '
-    test.check_steps.append(rdict)
-    rdict2 = TrigInDetdictStep('TrigInDetDict2')
-    rdict2.args='TIDAdata-run3-offline.dat -r Offline  -f data-hists-offline.root -b Test_bin.dat '
-    test.check_steps.append(rdict2)
-
- 
-# Now the comparitor steps
-comp=TrigInDetCompStep('Comp_L2ele','L2','electron')
-test.check_steps.append(comp)
-  
-comp2=TrigInDetCompStep('Comp_EFele','EF','electron')
-test.check_steps.append(comp2)
-
-comp3=TrigInDetCompStep('Comp_L2eleLowpt','L2','electron',lowpt=True)
-test.check_steps.append(comp3)
-
-comp4=TrigInDetCompStep('Comp_EFeleLowpt','EF','electron',lowpt=True)
-test.check_steps.append(comp4)
-
-comp5=TrigInDetCompStep('Comp_L2ele_off','L2','electron')
-comp5.type = 'offline'
-test.check_steps.append(comp5)
-  
-comp6=TrigInDetCompStep('Comp_EFele_off','EF','electron')
-comp6.type = 'offline'
-test.check_steps.append(comp6)
-
-comp7=TrigInDetCompStep('Comp_L2eleLowpt_off','L2','electron',lowpt=True)
-comp7.type = 'offline'
-test.check_steps.append(comp7)
-
-comp8=TrigInDetCompStep('Comp_EFeleLowpt_off','EF','electron',lowpt=True)
-comp8.type = 'offline'
-test.check_steps.append(comp8)
-
-# CPU cost steps
-cpucost=TrigInDetCpuCostStep('CpuCostStep1', ftf_times=False)
-test.check_steps.append(cpucost)
-
-cpucost2=TrigInDetCpuCostStep('CpuCostStep2')
-test.check_steps.append(cpucost2)
-
-import sys
-sys.exit(test.run())
+from AthenaCommon.Include import include 
+include("TrigInDetValidation/TrigInDetValidation_Base.py")
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_jpsiee_pu40_old.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_jpsiee_pu40_old.py
new file mode 100755
index 00000000000..3995c8d3cec
--- /dev/null
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_jpsiee_pu40_old.py
@@ -0,0 +1,125 @@
+#!/usr/bin/env python
+
+# art-description: art job for el_Jpsiee_pu40
+# art-type: grid
+# art-include: master/Athena
+# art-input: mc15_13TeV.129190.Pythia8_AU2CTEQ6L1_ppToJpsie3e3.recon.RDO.e3802_s2608_s2183_r7042
+# art-input-nfiles: 16
+# art-athena-mt: 8
+# art-memory: 4096
+# art-html: https://idtrigger-val.web.cern.ch/idtrigger-val/TIDAWeb/TIDAart/?jobdir=
+# art-output: *.txt
+# art-output: *.log
+# art-output: log.*
+# art-output: *.out
+# art-output: *.err
+# art-output: *.log.tar.gz
+# art-output: *.new
+# art-output: *.json
+# art-output: *.root
+# art-output: *.check*
+# art-output: HLT*
+# art-output: times*
+# art-output: cost-perCall
+# art-output: cost-perEvent
+# art-output: cost-perCall-chain
+# art-output: cost-perEvent-chain
+# art-output: *.dat 
+
+
+from TrigValTools.TrigValSteering import Test, CheckSteps
+from TrigInDetValidation.TrigInDetOldArtSteps import TrigInDetReco, TrigInDetAna, TrigInDetdictStep, TrigInDetCompStep, TrigInDetCpuCostStep
+
+import sys,getopt
+
+try:
+    opts, args = getopt.getopt(sys.argv[1:],"lxp",["local"])
+except getopt.GetoptError:
+    print("Usage:  ")
+    print("-l(--local)    run locally with input file from art eos grid-input")
+    print("-x             don't run athena or post post-processing, only plotting")
+    print("-p             run post-processing, even if -x is set")
+
+
+local=False
+exclude=False
+postproc=False
+for opt,arg in opts:
+    if opt in ("-l", "--local"):
+        local=True
+    if opt=="-x":
+        exclude=True
+    if opt=="-p":
+        postproc=True
+
+
+rdo2aod = TrigInDetReco()
+rdo2aod.slices = ['electron']
+rdo2aod.max_events = 8000 
+rdo2aod.threads = 8
+rdo2aod.concurrent_events = 8
+rdo2aod.perfmon = False
+rdo2aod.timeout = 18*3600
+if local:
+    rdo2aod.input = 'Jpsiee_pu40'     # defined in TrigValTools/share/TrigValInputs.json  
+else:
+    rdo2aod.input = ''
+    rdo2aod.args += '--inputRDOFile=$ArtInFile '
+
+
+test = Test.Test()
+test.art_type = 'grid'
+if (not exclude):
+    test.exec_steps = [rdo2aod]
+    test.exec_steps.append(TrigInDetAna()) # Run analysis to produce TrkNtuple
+    test.check_steps = CheckSteps.default_check_steps(test)
+
+ 
+# Run Tidardict
+if ((not exclude) or postproc ):
+    rdict = TrigInDetdictStep()
+    rdict.args='TIDAdata-run3.dat -f data-hists.root -p 11 -b Test_bin.dat '
+    test.check_steps.append(rdict)
+    rdict2 = TrigInDetdictStep('TrigInDetDict2')
+    rdict2.args='TIDAdata-run3-offline.dat -r Offline  -f data-hists-offline.root -b Test_bin.dat '
+    test.check_steps.append(rdict2)
+
+ 
+# Now the comparitor steps
+comp=TrigInDetCompStep('Comp_L2ele','L2','electron')
+test.check_steps.append(comp)
+  
+comp2=TrigInDetCompStep('Comp_EFele','EF','electron')
+test.check_steps.append(comp2)
+
+comp3=TrigInDetCompStep('Comp_L2eleLowpt','L2','electron',lowpt=True)
+test.check_steps.append(comp3)
+
+comp4=TrigInDetCompStep('Comp_EFeleLowpt','EF','electron',lowpt=True)
+test.check_steps.append(comp4)
+
+comp5=TrigInDetCompStep('Comp_L2ele_off','L2','electron')
+comp5.type = 'offline'
+test.check_steps.append(comp5)
+  
+comp6=TrigInDetCompStep('Comp_EFele_off','EF','electron')
+comp6.type = 'offline'
+test.check_steps.append(comp6)
+
+comp7=TrigInDetCompStep('Comp_L2eleLowpt_off','L2','electron',lowpt=True)
+comp7.type = 'offline'
+test.check_steps.append(comp7)
+
+comp8=TrigInDetCompStep('Comp_EFeleLowpt_off','EF','electron',lowpt=True)
+comp8.type = 'offline'
+test.check_steps.append(comp8)
+
+# CPU cost steps
+cpucost=TrigInDetCpuCostStep('CpuCostStep1', ftf_times=False)
+test.check_steps.append(cpucost)
+
+cpucost2=TrigInDetCpuCostStep('CpuCostStep2')
+test.check_steps.append(cpucost2)
+
+import sys
+sys.exit(test.run())
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_singlee_7-80.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_singlee_7-80.py
index b29f913f599..7e39bc2265a 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_singlee_7-80.py
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_singlee_7-80.py
@@ -27,99 +27,25 @@
 # art-output: *.dat 
 
 
-from TrigValTools.TrigValSteering import Test, CheckSteps
-from TrigInDetValidation.TrigInDetArtSteps import TrigInDetReco, TrigInDetAna, TrigInDetdictStep, TrigInDetCompStep, TrigInDetCpuCostStep
-
-import sys,getopt
-
-try:
-    opts, args = getopt.getopt(sys.argv[1:],"lxp",["local"])
-except getopt.GetoptError:
-    print("Usage:  ")
-    print("-l(--local)    run locally with input file from art eos grid-input")
-    print("-x             don't run athena or post post-processing, only plotting")
-    print("-p             run post-processing, even if -x is set")
-
-
-local=False
-exclude=False
-postproc=False
-for opt,arg in opts:
-    if opt in ("-l", "--local"):
-        local=True
-    if opt=="-x":
-        exclude=True
-    if opt=="-p":
-        postproc=True
-
-
-rdo2aod = TrigInDetReco()
-rdo2aod.slices = ['electron']
-rdo2aod.max_events = 20000 
-rdo2aod.threads = 8
-rdo2aod.concurrent_events = 8
-rdo2aod.perfmon = False
-rdo2aod.timeout = 18*3600
-if local:
-    rdo2aod.input = 'Single_el'     # defined in TrigValTools/share/TrigValInputs.json  
-else:
-    rdo2aod.input = ''
-    rdo2aod.args += '--inputRDOFile=$ArtInFile '
-
-
-test = Test.Test()
-test.art_type = 'grid'
-if (not exclude):
-    test.exec_steps = [rdo2aod]
-    test.exec_steps.append(TrigInDetAna()) # Run analysis to produce TrkNtuple
-    test.check_steps = CheckSteps.default_check_steps(test)
-
- 
-# Run Tidardict
-if ((not exclude) or postproc ):
-    rdict = TrigInDetdictStep()
-    rdict.args='TIDAdata-run3.dat -f data-hists.root -p 11 -b Test_bin.dat '
-    test.check_steps.append(rdict)
-    rdict2 = TrigInDetdictStep('TrigInDetDict2')
-    rdict2.args='TIDAdata-run3-offline.dat -r Offline  -f data-hists-offline.root -b Test_bin.dat '
-    test.check_steps.append(rdict2)
-
- 
-# Now the comparitor steps
-comp=TrigInDetCompStep('Comp_L2ele','L2','electron')
-test.check_steps.append(comp)
-  
-comp2=TrigInDetCompStep('Comp_EFele','EF','electron')
-test.check_steps.append(comp2)
-
-comp3=TrigInDetCompStep('Comp_L2eleLowpt','L2','electron',lowpt=True)
-test.check_steps.append(comp3)
-
-comp4=TrigInDetCompStep('Comp_EFeleLowpt','EF','electron',lowpt=True)
-test.check_steps.append(comp4)
-
-comp5=TrigInDetCompStep('Comp_L2ele_off','L2','electron')
-comp5.type = 'offline'
-test.check_steps.append(comp5)
-  
-comp6=TrigInDetCompStep('Comp_EFele_off','EF','electron')
-comp6.type = 'offline'
-test.check_steps.append(comp6)
-
-comp7=TrigInDetCompStep('Comp_L2eleLowpt_off','L2','electron',lowpt=True)
-comp7.type = 'offline'
-test.check_steps.append(comp7)
-
-comp8=TrigInDetCompStep('Comp_EFeleLowpt_off','EF','electron',lowpt=True)
-comp8.type = 'offline'
-test.check_steps.append(comp8)
-
-# CPU cost steps
-cpucost=TrigInDetCpuCostStep('CpuCostStep1', ftf_times=False)
-test.check_steps.append(cpucost)
-
-cpucost2=TrigInDetCpuCostStep('CpuCostStep2')
-test.check_steps.append(cpucost2)
-
-import sys
-sys.exit(test.run())
+Slices  = ['electron']
+Events  = 20000 
+Threads = 8 
+Slots   = 8
+Input   = 'Single_el'    # defined in TrigValTools/share/TrigValInputs.json
+GridFiles=True
+
+Jobs = [ ( "Truth",       " TIDAdata-run3.dat                    -o data-hists.root -p 11" ),
+         ( "Offline",     " TIDAdata-run3-offline.dat -r Offline -o data-hists-offline.root" ) ]
+
+Comp = [ ( "L2ele",              "L2electron",      "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTL2-plots " ),
+         ( "L2ele-lowpt",        "L2electronLowpt", "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTL2-plots-lowpt " ),
+         ( "L2eleoffline",       "L2electron",      "data-hists-offline.root", " -c TIDAhisto-panel.dat  -d HLTL2-plots-offline " ),
+         ( "L2eleoffline-lowpt", "L2electronLowpt", "data-hists-offline.root", " -c TIDAhisto-panel.dat  -d HLTL2-plots-lowpt-offline " ),
+         ( "EFele",              "EFelectron",      "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTEF-plots " ),
+         ( "EFele-lowpt",        "EFelectronLowpt", "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTEF-plots-lowpt " ),
+         ( "EFeleoffline",       "EFelectron",      "data-hists-offline.root", " -c TIDAhisto-panel.dat  -d HLTEF-plots-offline " ),
+         ( "EFeleoffline-lowpt", "EFelectronLowpt", "data-hists-offline.root", " -c TIDAhisto-panel.dat  -d HLTEF-plots-lowpt-offline " ) ]
+
+
+from AthenaCommon.Include import include 
+include("TrigInDetValidation/TrigInDetValidation_Base.py")
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_singlee_7-80_larged0.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_singlee_7-80_larged0.py
index c2483367915..c6b34f1ae1a 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_singlee_7-80_larged0.py
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_singlee_7-80_larged0.py
@@ -27,99 +27,25 @@
 # art-output: *.dat 
 
 
-from TrigValTools.TrigValSteering import Test, CheckSteps
-from TrigInDetValidation.TrigInDetArtSteps import TrigInDetReco, TrigInDetAna, TrigInDetdictStep, TrigInDetCompStep, TrigInDetCpuCostStep
-
-import sys,getopt
-
-try:
-    opts, args = getopt.getopt(sys.argv[1:],"lxp",["local"])
-except getopt.GetoptError:
-    print("Usage:  ")
-    print("-l(--local)    run locally with input file from art eos grid-input")
-    print("-x             don't run athena or post post-processing, only plotting")
-    print("-p             run post-processing, even if -x is set")
-
-
-local=False
-exclude=False
-postproc=False
-for opt,arg in opts:
-    if opt in ("-l", "--local"):
-        local=True
-    if opt=="-x":
-        exclude=True
-    if opt=="-p":
-        postproc=True
-
-
-rdo2aod = TrigInDetReco()
-rdo2aod.slices = ['electron']
-rdo2aod.max_events = 20000 
-rdo2aod.threads = 8
-rdo2aod.concurrent_events = 8
-rdo2aod.perfmon = False
-rdo2aod.timeout = 18*3600
-if local:
-    rdo2aod.input = 'Single_el_larged0'    # defined in TrigValTools/share/TrigValInputs.json  
-else:
-    rdo2aod.input = ''
-    rdo2aod.args += '--inputRDOFile=$ArtInFile '
-
-
-test = Test.Test()
-test.art_type = 'grid'
-if (not exclude):
-    test.exec_steps = [rdo2aod]
-    test.exec_steps.append(TrigInDetAna()) # Run analysis to produce TrkNtuple
-    test.check_steps = CheckSteps.default_check_steps(test)
-
- 
-# Run Tidardict
-if ((not exclude) or postproc ):
-    rdict = TrigInDetdictStep()
-    rdict.args='TIDAdata-run3.dat -f data-hists.root -p 11 -b Test_bin.dat '
-    test.check_steps.append(rdict)
-    rdict2 = TrigInDetdictStep('TrigInDetDict2')
-    rdict2.args='TIDAdata-run3-offline.dat -r Offline  -f data-hists-offline.root -b Test_bin.dat '
-    test.check_steps.append(rdict2)
-
- 
-# Now the comparitor steps
-comp=TrigInDetCompStep('Comp_L2ele','L2','electron')
-test.check_steps.append(comp)
-  
-comp2=TrigInDetCompStep('Comp_EFele','EF','electron')
-test.check_steps.append(comp2)
-
-comp3=TrigInDetCompStep('Comp_L2eleLowpt','L2','electron',lowpt=True)
-test.check_steps.append(comp3)
-
-comp4=TrigInDetCompStep('Comp_EFeleLowpt','EF','electron',lowpt=True)
-test.check_steps.append(comp4)
-
-comp5=TrigInDetCompStep('Comp_L2ele_off','L2','electron')
-comp5.type = 'offline'
-test.check_steps.append(comp5)
-  
-comp6=TrigInDetCompStep('Comp_EFele_off','EF','electron')
-comp6.type = 'offline'
-test.check_steps.append(comp6)
-
-comp7=TrigInDetCompStep('Comp_L2eleLowpt_off','L2','electron',lowpt=True)
-comp7.type = 'offline'
-test.check_steps.append(comp7)
-
-comp8=TrigInDetCompStep('Comp_EFeleLowpt_off','EF','electron',lowpt=True)
-comp8.type = 'offline'
-test.check_steps.append(comp8)
-
-# CPU cost steps
-cpucost=TrigInDetCpuCostStep('CpuCostStep1', ftf_times=False)
-test.check_steps.append(cpucost)
-
-cpucost2=TrigInDetCpuCostStep('CpuCostStep2')
-test.check_steps.append(cpucost2)
-
-import sys
-sys.exit(test.run())
+Slices  = ['electron']
+Events  = 20000 
+Threads = 8 
+Slots   = 8
+Input   = 'Single_el_larged0'    # defined in TrigValTools/share/TrigValInputs.json
+GridFiles=True
+
+Jobs = [ ( "Truth",       " TIDAdata-run3-larged0-el.dat                    -o data-hists.root -p 11",   "Test_bin_larged0.dat" ),
+         ( "Offline",     " TIDAdata-run3-offline-larged0-el.dat -r Offline -o data-hists-offline.root", "Test_bin_larged0.dat" ) ]
+
+Comp = [ ( "L2ele",              "L2electron",      "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTL2-plots " ),
+         ( "L2ele-lowpt",        "L2electronLowpt", "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTL2-plots-lowpt " ),
+         ( "L2eleoffline",       "L2electron",      "data-hists-offline.root", " -c TIDAhisto-panel.dat  -d HLTL2-plots-offline " ),
+         ( "L2eleoffline-lowpt", "L2electronLowpt", "data-hists-offline.root", " -c TIDAhisto-panel.dat  -d HLTL2-plots-lowpt-offline " ),
+         ( "EFele",              "EFelectron",      "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTEF-plots " ),
+         ( "EFele-lowpt",        "EFelectronLowpt", "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTEF-plots-lowpt " ),
+         ( "EFeleoffline",       "EFelectron",      "data-hists-offline.root", " -c TIDAhisto-panel.dat  -d HLTEF-plots-offline " ),
+         ( "EFeleoffline-lowpt", "EFelectronLowpt", "data-hists-offline.root", " -c TIDAhisto-panel.dat  -d HLTEF-plots-lowpt-offline " ) ]
+
+
+from AthenaCommon.Include import include 
+include("TrigInDetValidation/TrigInDetValidation_Base.py")
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_singlee_7-80_larged0_old.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_singlee_7-80_larged0_old.py
new file mode 100755
index 00000000000..976ed85fa7d
--- /dev/null
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_singlee_7-80_larged0_old.py
@@ -0,0 +1,125 @@
+#!/usr/bin/env python
+
+# art-description: art job for el_singlee_7-80_larged0
+# art-type: grid
+# art-include: master/Athena
+# art-input: mc15_13TeV.159053.ParticleGenerator_e_Et7to80_vertxy20.recon.RDO.e3603_s2726_r7728
+# art-input-nfiles: 10
+# art-athena-mt: 8
+# art-memory: 4096
+# art-html: https://idtrigger-val.web.cern.ch/idtrigger-val/TIDAWeb/TIDAart/?jobdir=
+# art-output: *.txt
+# art-output: *.log
+# art-output: log.*
+# art-output: *.out
+# art-output: *.err
+# art-output: *.log.tar.gz
+# art-output: *.new
+# art-output: *.json
+# art-output: *.root
+# art-output: *.check*
+# art-output: HLT*
+# art-output: times*
+# art-output: cost-perCall
+# art-output: cost-perEvent
+# art-output: cost-perCall-chain
+# art-output: cost-perEvent-chain
+# art-output: *.dat 
+
+
+from TrigValTools.TrigValSteering import Test, CheckSteps
+from TrigInDetValidation.TrigInDetOldArtSteps import TrigInDetReco, TrigInDetAna, TrigInDetdictStep, TrigInDetCompStep, TrigInDetCpuCostStep
+
+import sys,getopt
+
+try:
+    opts, args = getopt.getopt(sys.argv[1:],"lxp",["local"])
+except getopt.GetoptError:
+    print("Usage:  ")
+    print("-l(--local)    run locally with input file from art eos grid-input")
+    print("-x             don't run athena or post post-processing, only plotting")
+    print("-p             run post-processing, even if -x is set")
+
+
+local=False
+exclude=False
+postproc=False
+for opt,arg in opts:
+    if opt in ("-l", "--local"):
+        local=True
+    if opt=="-x":
+        exclude=True
+    if opt=="-p":
+        postproc=True
+
+
+rdo2aod = TrigInDetReco()
+rdo2aod.slices = ['electron']
+rdo2aod.max_events = 20000 
+rdo2aod.threads = 8
+rdo2aod.concurrent_events = 8
+rdo2aod.perfmon = False
+rdo2aod.timeout = 18*3600
+if local:
+    rdo2aod.input = 'Single_el_larged0'    # defined in TrigValTools/share/TrigValInputs.json  
+else:
+    rdo2aod.input = ''
+    rdo2aod.args += '--inputRDOFile=$ArtInFile '
+
+
+test = Test.Test()
+test.art_type = 'grid'
+if (not exclude):
+    test.exec_steps = [rdo2aod]
+    test.exec_steps.append(TrigInDetAna()) # Run analysis to produce TrkNtuple
+    test.check_steps = CheckSteps.default_check_steps(test)
+
+ 
+# Run Tidardict
+if ((not exclude) or postproc ):
+    rdict = TrigInDetdictStep()
+    rdict.args='TIDAdata-run3-larged0-el.dat -f data-hists.root -p 11 -b Test_bin_larged0.dat '
+    test.check_steps.append(rdict)
+    rdict2 = TrigInDetdictStep('TrigInDetDict2')
+    rdict2.args='TIDAdata-run3-offline-larged0-el.dat -r Offline  -f data-hists-offline.root -b Test_bin_larged0.dat '
+    test.check_steps.append(rdict2)
+
+ 
+# Now the comparitor steps
+comp=TrigInDetCompStep('Comp_L2ele','L2','electron')
+test.check_steps.append(comp)
+  
+comp2=TrigInDetCompStep('Comp_EFele','EF','electron')
+test.check_steps.append(comp2)
+
+comp3=TrigInDetCompStep('Comp_L2eleLowpt','L2','electron',lowpt=True)
+test.check_steps.append(comp3)
+
+comp4=TrigInDetCompStep('Comp_EFeleLowpt','EF','electron',lowpt=True)
+test.check_steps.append(comp4)
+
+comp5=TrigInDetCompStep('Comp_L2ele_off','L2','electron')
+comp5.type = 'offline'
+test.check_steps.append(comp5)
+  
+comp6=TrigInDetCompStep('Comp_EFele_off','EF','electron')
+comp6.type = 'offline'
+test.check_steps.append(comp6)
+
+comp7=TrigInDetCompStep('Comp_L2eleLowpt_off','L2','electron',lowpt=True)
+comp7.type = 'offline'
+test.check_steps.append(comp7)
+
+comp8=TrigInDetCompStep('Comp_EFeleLowpt_off','EF','electron',lowpt=True)
+comp8.type = 'offline'
+test.check_steps.append(comp8)
+
+# CPU cost steps
+cpucost=TrigInDetCpuCostStep('CpuCostStep1', ftf_times=False)
+test.check_steps.append(cpucost)
+
+cpucost2=TrigInDetCpuCostStep('CpuCostStep2')
+test.check_steps.append(cpucost2)
+
+import sys
+sys.exit(test.run())
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_singlee_7-80_larged0_pu.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_singlee_7-80_larged0_pu.py
index 3b730c992d5..4d139d865c7 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_singlee_7-80_larged0_pu.py
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_singlee_7-80_larged0_pu.py
@@ -27,99 +27,25 @@
 # art-output: *.dat 
 
 
-from TrigValTools.TrigValSteering import Test, CheckSteps
-from TrigInDetValidation.TrigInDetArtSteps import TrigInDetReco, TrigInDetAna, TrigInDetdictStep, TrigInDetCompStep, TrigInDetCpuCostStep
-
-import sys,getopt
-
-try:
-    opts, args = getopt.getopt(sys.argv[1:],"lxp",["local"])
-except getopt.GetoptError:
-    print("Usage:  ")
-    print("-l(--local)    run locally with input file from art eos grid-input")
-    print("-x             don't run athena or post post-processing, only plotting")
-    print("-p             run post-processing, even if -x is set")
-
-
-local=False
-exclude=False
-postproc=False
-for opt,arg in opts:
-    if opt in ("-l", "--local"):
-        local=True
-    if opt=="-x":
-        exclude=True
-    if opt=="-p":
-        postproc=True
-
-
-rdo2aod = TrigInDetReco()
-rdo2aod.slices = ['electron']
-rdo2aod.max_events = 20000 
-rdo2aod.threads = 8
-rdo2aod.concurrent_events = 8
-rdo2aod.perfmon = False
-rdo2aod.timeout = 18*3600
-if local:
-    rdo2aod.input = 'Single_el_larged0_pu'    # defined in TrigValTools/share/TrigValInputs.json  
-else:
-    rdo2aod.input = ''
-    rdo2aod.args += '--inputRDOFile=$ArtInFile '
-
-
-test = Test.Test()
-test.art_type = 'grid'
-if (not exclude):
-    test.exec_steps = [rdo2aod]
-    test.exec_steps.append(TrigInDetAna()) # Run analysis to produce TrkNtuple
-    test.check_steps = CheckSteps.default_check_steps(test)
-
- 
-# Run Tidardict
-if ((not exclude) or postproc ):
-    rdict = TrigInDetdictStep()
-    rdict.args='TIDAdata-run3.dat -f data-hists.root -p 11 -b Test_bin.dat '
-    test.check_steps.append(rdict)
-    rdict2 = TrigInDetdictStep('TrigInDetDict2')
-    rdict2.args='TIDAdata-run3-offline.dat -r Offline  -f data-hists-offline.root -b Test_bin.dat '
-    test.check_steps.append(rdict2)
-
- 
-# Now the comparitor steps
-comp=TrigInDetCompStep('Comp_L2ele','L2','electron')
-test.check_steps.append(comp)
-  
-comp2=TrigInDetCompStep('Comp_EFele','EF','electron')
-test.check_steps.append(comp2)
-
-comp3=TrigInDetCompStep('Comp_L2eleLowpt','L2','electron',lowpt=True)
-test.check_steps.append(comp3)
-
-comp4=TrigInDetCompStep('Comp_EFeleLowpt','EF','electron',lowpt=True)
-test.check_steps.append(comp4)
-
-comp5=TrigInDetCompStep('Comp_L2ele_off','L2','electron')
-comp5.type = 'offline'
-test.check_steps.append(comp5)
-  
-comp6=TrigInDetCompStep('Comp_EFele_off','EF','electron')
-comp6.type = 'offline'
-test.check_steps.append(comp6)
-
-comp7=TrigInDetCompStep('Comp_L2eleLowpt_off','L2','electron',lowpt=True)
-comp7.type = 'offline'
-test.check_steps.append(comp7)
-
-comp8=TrigInDetCompStep('Comp_EFeleLowpt_off','EF','electron',lowpt=True)
-comp8.type = 'offline'
-test.check_steps.append(comp8)
-
-# CPU cost steps
-cpucost=TrigInDetCpuCostStep('CpuCostStep1', ftf_times=False)
-test.check_steps.append(cpucost)
-
-cpucost2=TrigInDetCpuCostStep('CpuCostStep2')
-test.check_steps.append(cpucost2)
-
-import sys
-sys.exit(test.run())
+Slices  = ['electron']
+Events  = 20000 
+Threads = 8 
+Slots   = 8
+Input   = 'Single_el_larged0_pu'    # defined in TrigValTools/share/TrigValInputs.json
+GridFiles=True
+
+Jobs = [ ( "Truth",       " TIDAdata-run3-larged0-el.dat                    -o data-hists.root -p 11",   "Test_bin_larged0.dat" ),
+         ( "Offline",     " TIDAdata-run3-offline-larged0-el.dat -r Offline -o data-hists-offline.root", "Test_bin_larged0.dat" ) ]
+
+Comp = [ ( "L2ele",              "L2electron",      "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTL2-plots " ),
+         ( "L2ele-lowpt",        "L2electronLowpt", "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTL2-plots-lowpt " ),
+         ( "L2eleoffline",       "L2electron",      "data-hists-offline.root", " -c TIDAhisto-panel.dat  -d HLTL2-plots-offline " ),
+         ( "L2eleoffline-lowpt", "L2electronLowpt", "data-hists-offline.root", " -c TIDAhisto-panel.dat  -d HLTL2-plots-lowpt-offline " ),
+         ( "EFele",              "EFelectron",      "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTEF-plots " ),
+         ( "EFele-lowpt",        "EFelectronLowpt", "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTEF-plots-lowpt " ),
+         ( "EFeleoffline",       "EFelectron",      "data-hists-offline.root", " -c TIDAhisto-panel.dat  -d HLTEF-plots-offline " ),
+         ( "EFeleoffline-lowpt", "EFelectronLowpt", "data-hists-offline.root", " -c TIDAhisto-panel.dat  -d HLTEF-plots-lowpt-offline " ) ]
+
+
+from AthenaCommon.Include import include 
+include("TrigInDetValidation/TrigInDetValidation_Base.py")
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_singlee_7-80_larged0_pu_old.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_singlee_7-80_larged0_pu_old.py
new file mode 100755
index 00000000000..ed1cd1d3eb8
--- /dev/null
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_singlee_7-80_larged0_pu_old.py
@@ -0,0 +1,125 @@
+#!/usr/bin/env python
+
+# art-description: art job for el_singlee_7-80_larged0_pu
+# art-type: grid
+# art-include: master/Athena
+# art-input: mc15_13TeV.159053.ParticleGenerator_e_Et7to80_vertxy20.recon.RDO.e3603_s2726_r7772
+# art-input-nfiles: 10
+# art-athena-mt: 8
+# art-memory: 4096
+# art-html: https://idtrigger-val.web.cern.ch/idtrigger-val/TIDAWeb/TIDAart/?jobdir=
+# art-output: *.txt
+# art-output: *.log
+# art-output: log.*
+# art-output: *.out
+# art-output: *.err
+# art-output: *.log.tar.gz
+# art-output: *.new
+# art-output: *.json
+# art-output: *.root
+# art-output: *.check*
+# art-output: HLT*
+# art-output: times*
+# art-output: cost-perCall
+# art-output: cost-perEvent
+# art-output: cost-perCall-chain
+# art-output: cost-perEvent-chain
+# art-output: *.dat 
+
+
+from TrigValTools.TrigValSteering import Test, CheckSteps
+from TrigInDetValidation.TrigInDetOldArtSteps import TrigInDetReco, TrigInDetAna, TrigInDetdictStep, TrigInDetCompStep, TrigInDetCpuCostStep
+
+import sys,getopt
+
+try:
+    opts, args = getopt.getopt(sys.argv[1:],"lxp",["local"])
+except getopt.GetoptError:
+    print("Usage:  ")
+    print("-l(--local)    run locally with input file from art eos grid-input")
+    print("-x             don't run athena or post post-processing, only plotting")
+    print("-p             run post-processing, even if -x is set")
+
+
+local=False
+exclude=False
+postproc=False
+for opt,arg in opts:
+    if opt in ("-l", "--local"):
+        local=True
+    if opt=="-x":
+        exclude=True
+    if opt=="-p":
+        postproc=True
+
+
+rdo2aod = TrigInDetReco()
+rdo2aod.slices = ['electron']
+rdo2aod.max_events = 20000 
+rdo2aod.threads = 8
+rdo2aod.concurrent_events = 8
+rdo2aod.perfmon = False
+rdo2aod.timeout = 18*3600
+if local:
+    rdo2aod.input = 'Single_el_larged0_pu'    # defined in TrigValTools/share/TrigValInputs.json  
+else:
+    rdo2aod.input = ''
+    rdo2aod.args += '--inputRDOFile=$ArtInFile '
+
+
+test = Test.Test()
+test.art_type = 'grid'
+if (not exclude):
+    test.exec_steps = [rdo2aod]
+    test.exec_steps.append(TrigInDetAna()) # Run analysis to produce TrkNtuple
+    test.check_steps = CheckSteps.default_check_steps(test)
+
+ 
+# Run Tidardict
+if ((not exclude) or postproc ):
+    rdict = TrigInDetdictStep()
+    rdict.args='TIDAdata-run3-larged0-el.dat -f data-hists.root -p 11 -b Test_bin_larged0.dat '
+    test.check_steps.append(rdict)
+    rdict2 = TrigInDetdictStep('TrigInDetDict2')
+    rdict2.args='TIDAdata-run3-offline-larged0-el.dat -r Offline  -f data-hists-offline.root -b Test_bin_larged0.dat '
+    test.check_steps.append(rdict2)
+
+ 
+# Now the comparitor steps
+comp=TrigInDetCompStep('Comp_L2ele','L2','electron')
+test.check_steps.append(comp)
+  
+comp2=TrigInDetCompStep('Comp_EFele','EF','electron')
+test.check_steps.append(comp2)
+
+comp3=TrigInDetCompStep('Comp_L2eleLowpt','L2','electron',lowpt=True)
+test.check_steps.append(comp3)
+
+comp4=TrigInDetCompStep('Comp_EFeleLowpt','EF','electron',lowpt=True)
+test.check_steps.append(comp4)
+
+comp5=TrigInDetCompStep('Comp_L2ele_off','L2','electron')
+comp5.type = 'offline'
+test.check_steps.append(comp5)
+  
+comp6=TrigInDetCompStep('Comp_EFele_off','EF','electron')
+comp6.type = 'offline'
+test.check_steps.append(comp6)
+
+comp7=TrigInDetCompStep('Comp_L2eleLowpt_off','L2','electron',lowpt=True)
+comp7.type = 'offline'
+test.check_steps.append(comp7)
+
+comp8=TrigInDetCompStep('Comp_EFeleLowpt_off','EF','electron',lowpt=True)
+comp8.type = 'offline'
+test.check_steps.append(comp8)
+
+# CPU cost steps
+cpucost=TrigInDetCpuCostStep('CpuCostStep1', ftf_times=False)
+test.check_steps.append(cpucost)
+
+cpucost2=TrigInDetCpuCostStep('CpuCostStep2')
+test.check_steps.append(cpucost2)
+
+import sys
+sys.exit(test.run())
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_singlee_7-80_old.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_singlee_7-80_old.py
new file mode 100755
index 00000000000..50bf73e3b53
--- /dev/null
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_singlee_7-80_old.py
@@ -0,0 +1,125 @@
+#!/usr/bin/env python
+
+# art-description: art job for el_singlee_7-80
+# art-type: grid
+# art-include: master/Athena
+# art-input: mc15_13TeV.159010.ParticleGenerator_e_Et7to80.recon.RDO.e1948_s2726_r7728
+# art-input-nfiles: 10
+# art-athena-mt: 8
+# art-memory: 4096
+# art-html: https://idtrigger-val.web.cern.ch/idtrigger-val/TIDAWeb/TIDAart/?jobdir=
+# art-output: *.txt
+# art-output: *.log
+# art-output: log.*
+# art-output: *.out
+# art-output: *.err
+# art-output: *.log.tar.gz
+# art-output: *.new
+# art-output: *.json
+# art-output: *.root
+# art-output: *.check*
+# art-output: HLT*
+# art-output: times*
+# art-output: cost-perCall
+# art-output: cost-perEvent
+# art-output: cost-perCall-chain
+# art-output: cost-perEvent-chain
+# art-output: *.dat 
+
+
+from TrigValTools.TrigValSteering import Test, CheckSteps
+from TrigInDetValidation.TrigInDetOldArtSteps import TrigInDetReco, TrigInDetAna, TrigInDetdictStep, TrigInDetCompStep, TrigInDetCpuCostStep
+
+import sys,getopt
+
+try:
+    opts, args = getopt.getopt(sys.argv[1:],"lxp",["local"])
+except getopt.GetoptError:
+    print("Usage:  ")
+    print("-l(--local)    run locally with input file from art eos grid-input")
+    print("-x             don't run athena or post post-processing, only plotting")
+    print("-p             run post-processing, even if -x is set")
+
+
+local=False
+exclude=False
+postproc=False
+for opt,arg in opts:
+    if opt in ("-l", "--local"):
+        local=True
+    if opt=="-x":
+        exclude=True
+    if opt=="-p":
+        postproc=True
+
+
+rdo2aod = TrigInDetReco()
+rdo2aod.slices = ['electron']
+rdo2aod.max_events = 20000 
+rdo2aod.threads = 8
+rdo2aod.concurrent_events = 8
+rdo2aod.perfmon = False
+rdo2aod.timeout = 18*3600
+if local:
+    rdo2aod.input = 'Single_el'     # defined in TrigValTools/share/TrigValInputs.json  
+else:
+    rdo2aod.input = ''
+    rdo2aod.args += '--inputRDOFile=$ArtInFile '
+
+
+test = Test.Test()
+test.art_type = 'grid'
+if (not exclude):
+    test.exec_steps = [rdo2aod]
+    test.exec_steps.append(TrigInDetAna()) # Run analysis to produce TrkNtuple
+    test.check_steps = CheckSteps.default_check_steps(test)
+
+ 
+# Run Tidardict
+if ((not exclude) or postproc ):
+    rdict = TrigInDetdictStep()
+    rdict.args='TIDAdata-run3.dat -f data-hists.root -p 11 -b Test_bin.dat '
+    test.check_steps.append(rdict)
+    rdict2 = TrigInDetdictStep('TrigInDetDict2')
+    rdict2.args='TIDAdata-run3-offline.dat -r Offline  -f data-hists-offline.root -b Test_bin.dat '
+    test.check_steps.append(rdict2)
+
+ 
+# Now the comparitor steps
+comp=TrigInDetCompStep('Comp_L2ele','L2','electron')
+test.check_steps.append(comp)
+  
+comp2=TrigInDetCompStep('Comp_EFele','EF','electron')
+test.check_steps.append(comp2)
+
+comp3=TrigInDetCompStep('Comp_L2eleLowpt','L2','electron',lowpt=True)
+test.check_steps.append(comp3)
+
+comp4=TrigInDetCompStep('Comp_EFeleLowpt','EF','electron',lowpt=True)
+test.check_steps.append(comp4)
+
+comp5=TrigInDetCompStep('Comp_L2ele_off','L2','electron')
+comp5.type = 'offline'
+test.check_steps.append(comp5)
+  
+comp6=TrigInDetCompStep('Comp_EFele_off','EF','electron')
+comp6.type = 'offline'
+test.check_steps.append(comp6)
+
+comp7=TrigInDetCompStep('Comp_L2eleLowpt_off','L2','electron',lowpt=True)
+comp7.type = 'offline'
+test.check_steps.append(comp7)
+
+comp8=TrigInDetCompStep('Comp_EFeleLowpt_off','EF','electron',lowpt=True)
+comp8.type = 'offline'
+test.check_steps.append(comp8)
+
+# CPU cost steps
+cpucost=TrigInDetCpuCostStep('CpuCostStep1', ftf_times=False)
+test.check_steps.append(cpucost)
+
+cpucost2=TrigInDetCpuCostStep('CpuCostStep2')
+test.check_steps.append(cpucost2)
+
+import sys
+sys.exit(test.run())
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_singlee_7-80_pu40.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_singlee_7-80_pu40.py
index 6cfc807a53d..8a942ade8f2 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_singlee_7-80_pu40.py
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_singlee_7-80_pu40.py
@@ -27,99 +27,25 @@
 # art-output: *.dat 
 
 
-from TrigValTools.TrigValSteering import Test, CheckSteps
-from TrigInDetValidation.TrigInDetArtSteps import TrigInDetReco, TrigInDetAna, TrigInDetdictStep, TrigInDetCompStep, TrigInDetCpuCostStep
-
-import sys,getopt
-
-try:
-    opts, args = getopt.getopt(sys.argv[1:],"lxp",["local"])
-except getopt.GetoptError:
-    print("Usage:  ")
-    print("-l(--local)    run locally with input file from art eos grid-input")
-    print("-x             don't run athena or post post-processing, only plotting")
-    print("-p             run post-processing, even if -x is set")
-
-
-local=False
-exclude=False
-postproc=False
-for opt,arg in opts:
-    if opt in ("-l", "--local"):
-        local=True
-    if opt=="-x":
-        exclude=True
-    if opt=="-p":
-        postproc=True
-
-
-rdo2aod = TrigInDetReco()
-rdo2aod.slices = ['electron']
-rdo2aod.max_events = 20000 
-rdo2aod.threads = 8
-rdo2aod.concurrent_events = 8
-rdo2aod.perfmon = False
-rdo2aod.timeout = 18*3600
-if local:
-    rdo2aod.input = 'Single_el_pu'    # defined in TrigValTools/share/TrigValInputs.json  
-else:
-    rdo2aod.input = ''
-    rdo2aod.args += '--inputRDOFile=$ArtInFile '
-
-
-test = Test.Test()
-test.art_type = 'grid'
-if (not exclude):
-    test.exec_steps = [rdo2aod]
-    test.exec_steps.append(TrigInDetAna()) # Run analysis to produce TrkNtuple
-    test.check_steps = CheckSteps.default_check_steps(test)
-
- 
-# Run Tidardict
-if ((not exclude) or postproc ):
-    rdict = TrigInDetdictStep()
-    rdict.args='TIDAdata-run3.dat -f data-hists.root -p 11 -b Test_bin.dat '
-    test.check_steps.append(rdict)
-    rdict2 = TrigInDetdictStep('TrigInDetDict2')
-    rdict2.args='TIDAdata-run3-offline.dat -r Offline  -f data-hists-offline.root -b Test_bin.dat '
-    test.check_steps.append(rdict2)
-
- 
-# Now the comparitor steps
-comp=TrigInDetCompStep('Comp_L2ele','L2','electron')
-test.check_steps.append(comp)
-  
-comp2=TrigInDetCompStep('Comp_EFele','EF','electron')
-test.check_steps.append(comp2)
-
-comp3=TrigInDetCompStep('Comp_L2eleLowpt','L2','electron',lowpt=True)
-test.check_steps.append(comp3)
-
-comp4=TrigInDetCompStep('Comp_EFeleLowpt','EF','electron',lowpt=True)
-test.check_steps.append(comp4)
-
-comp5=TrigInDetCompStep('Comp_L2ele_off','L2','electron')
-comp5.type = 'offline'
-test.check_steps.append(comp5)
-  
-comp6=TrigInDetCompStep('Comp_EFele_off','EF','electron')
-comp6.type = 'offline'
-test.check_steps.append(comp6)
-
-comp7=TrigInDetCompStep('Comp_L2eleLowpt_off','L2','electron',lowpt=True)
-comp7.type = 'offline'
-test.check_steps.append(comp7)
-
-comp8=TrigInDetCompStep('Comp_EFeleLowpt_off','EF','electron',lowpt=True)
-comp8.type = 'offline'
-test.check_steps.append(comp8)
-
-# CPU cost steps
-cpucost=TrigInDetCpuCostStep('CpuCostStep1', ftf_times=False)
-test.check_steps.append(cpucost)
-
-cpucost2=TrigInDetCpuCostStep('CpuCostStep2')
-test.check_steps.append(cpucost2)
-
-import sys
-sys.exit(test.run())
+Slices  = ['electron']
+Events  = 20000 
+Threads = 8 
+Slots   = 8
+Input   = 'Single_el_pu'    # defined in TrigValTools/share/TrigValInputs.json
+GridFiles=True
+
+Jobs = [ ( "Truth",       " TIDAdata-run3.dat                    -o data-hists.root -p 11" ),
+         ( "Offline",     " TIDAdata-run3-offline.dat -r Offline -o data-hists-offline.root" ) ]
+
+Comp = [ ( "L2ele",              "L2electron",      "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTL2-plots " ),
+         ( "L2ele-lowpt",        "L2electronLowpt", "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTL2-plots-lowpt " ),
+         ( "L2eleoffline",       "L2electron",      "data-hists-offline.root", " -c TIDAhisto-panel.dat  -d HLTL2-plots-offline " ),
+         ( "L2eleoffline-lowpt", "L2electronLowpt", "data-hists-offline.root", " -c TIDAhisto-panel.dat  -d HLTL2-plots-lowpt-offline " ),
+         ( "EFele",              "EFelectron",      "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTEF-plots " ),
+         ( "EFele-lowpt",        "EFelectronLowpt", "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTEF-plots-lowpt " ),
+         ( "EFeleoffline",       "EFelectron",      "data-hists-offline.root", " -c TIDAhisto-panel.dat  -d HLTEF-plots-offline " ),
+         ( "EFeleoffline-lowpt", "EFelectronLowpt", "data-hists-offline.root", " -c TIDAhisto-panel.dat  -d HLTEF-plots-lowpt-offline " ) ]
+
+
+from AthenaCommon.Include import include 
+include("TrigInDetValidation/TrigInDetValidation_Base.py")
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_singlee_7-80_pu40_old.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_singlee_7-80_pu40_old.py
new file mode 100755
index 00000000000..f9da6ad4346
--- /dev/null
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_singlee_7-80_pu40_old.py
@@ -0,0 +1,125 @@
+#!/usr/bin/env python
+
+# art-description: art job for el_singlee_7-80_pu40
+# art-type: grid
+# art-include: master/Athena
+# art-input: mc15_13TeV.159010.ParticleGenerator_e_Et7to80.recon.RDO.e1948_s2726_r7728
+# art-input-nfiles: 10
+# art-athena-mt: 8
+# art-memory: 4096
+# art-html: https://idtrigger-val.web.cern.ch/idtrigger-val/TIDAWeb/TIDAart/?jobdir=
+# art-output: *.txt
+# art-output: *.log
+# art-output: log.*
+# art-output: *.out
+# art-output: *.err
+# art-output: *.log.tar.gz
+# art-output: *.new
+# art-output: *.json
+# art-output: *.root
+# art-output: *.check*
+# art-output: HLT*
+# art-output: times*
+# art-output: cost-perCall
+# art-output: cost-perEvent
+# art-output: cost-perCall-chain
+# art-output: cost-perEvent-chain
+# art-output: *.dat 
+
+
+from TrigValTools.TrigValSteering import Test, CheckSteps
+from TrigInDetValidation.TrigInDetOldArtSteps import TrigInDetReco, TrigInDetAna, TrigInDetdictStep, TrigInDetCompStep, TrigInDetCpuCostStep
+
+import sys,getopt
+
+try:
+    opts, args = getopt.getopt(sys.argv[1:],"lxp",["local"])
+except getopt.GetoptError:
+    print("Usage:  ")
+    print("-l(--local)    run locally with input file from art eos grid-input")
+    print("-x             don't run athena or post post-processing, only plotting")
+    print("-p             run post-processing, even if -x is set")
+
+
+local=False
+exclude=False
+postproc=False
+for opt,arg in opts:
+    if opt in ("-l", "--local"):
+        local=True
+    if opt=="-x":
+        exclude=True
+    if opt=="-p":
+        postproc=True
+
+
+rdo2aod = TrigInDetReco()
+rdo2aod.slices = ['electron']
+rdo2aod.max_events = 20000 
+rdo2aod.threads = 8
+rdo2aod.concurrent_events = 8
+rdo2aod.perfmon = False
+rdo2aod.timeout = 18*3600
+if local:
+    rdo2aod.input = 'Single_el_pu'    # defined in TrigValTools/share/TrigValInputs.json  
+else:
+    rdo2aod.input = ''
+    rdo2aod.args += '--inputRDOFile=$ArtInFile '
+
+
+test = Test.Test()
+test.art_type = 'grid'
+if (not exclude):
+    test.exec_steps = [rdo2aod]
+    test.exec_steps.append(TrigInDetAna()) # Run analysis to produce TrkNtuple
+    test.check_steps = CheckSteps.default_check_steps(test)
+
+ 
+# Run Tidardict
+if ((not exclude) or postproc ):
+    rdict = TrigInDetdictStep()
+    rdict.args='TIDAdata-run3.dat -f data-hists.root -p 11 -b Test_bin.dat '
+    test.check_steps.append(rdict)
+    rdict2 = TrigInDetdictStep('TrigInDetDict2')
+    rdict2.args='TIDAdata-run3-offline.dat -r Offline  -f data-hists-offline.root -b Test_bin.dat '
+    test.check_steps.append(rdict2)
+
+ 
+# Now the comparitor steps
+comp=TrigInDetCompStep('Comp_L2ele','L2','electron')
+test.check_steps.append(comp)
+  
+comp2=TrigInDetCompStep('Comp_EFele','EF','electron')
+test.check_steps.append(comp2)
+
+comp3=TrigInDetCompStep('Comp_L2eleLowpt','L2','electron',lowpt=True)
+test.check_steps.append(comp3)
+
+comp4=TrigInDetCompStep('Comp_EFeleLowpt','EF','electron',lowpt=True)
+test.check_steps.append(comp4)
+
+comp5=TrigInDetCompStep('Comp_L2ele_off','L2','electron')
+comp5.type = 'offline'
+test.check_steps.append(comp5)
+  
+comp6=TrigInDetCompStep('Comp_EFele_off','EF','electron')
+comp6.type = 'offline'
+test.check_steps.append(comp6)
+
+comp7=TrigInDetCompStep('Comp_L2eleLowpt_off','L2','electron',lowpt=True)
+comp7.type = 'offline'
+test.check_steps.append(comp7)
+
+comp8=TrigInDetCompStep('Comp_EFeleLowpt_off','EF','electron',lowpt=True)
+comp8.type = 'offline'
+test.check_steps.append(comp8)
+
+# CPU cost steps
+cpucost=TrigInDetCpuCostStep('CpuCostStep1', ftf_times=False)
+test.check_steps.append(cpucost)
+
+cpucost2=TrigInDetCpuCostStep('CpuCostStep2')
+test.check_steps.append(cpucost2)
+
+import sys
+sys.exit(test.run())
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_zee_pu40.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_zee_pu40.py
index 167ab6ca0a9..4dadf400dbd 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_zee_pu40.py
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_zee_pu40.py
@@ -27,99 +27,25 @@
 # art-output: *.dat 
 
 
-from TrigValTools.TrigValSteering import Test, CheckSteps
-from TrigInDetValidation.TrigInDetArtSteps import TrigInDetReco, TrigInDetAna, TrigInDetdictStep, TrigInDetCompStep, TrigInDetCpuCostStep
-
-import sys,getopt
-
-try:
-    opts, args = getopt.getopt(sys.argv[1:],"lxp",["local"])
-except getopt.GetoptError:
-    print("Usage:  ")
-    print("-l(--local)    run locally with input file from art eos grid-input")
-    print("-x             don't run athena or post post-processing, only plotting")
-    print("-p             run post-processing, even if -x is set")
-
-
-local=False
-exclude=False
-postproc=False
-for opt,arg in opts:
-    if opt in ("-l", "--local"):
-        local=True
-    if opt=="-x":
-        exclude=True
-    if opt=="-p":
-        postproc=True
-
-
-rdo2aod = TrigInDetReco()
-rdo2aod.slices = ['electron']
-rdo2aod.max_events = 16000 
-rdo2aod.threads = 8
-rdo2aod.concurrent_events = 8
-rdo2aod.perfmon = False
-rdo2aod.timeout = 18*3600
-if local:
-    rdo2aod.input = 'Zee_pu40'      # defined in TrigValTools/share/TrigValInputs.json  
-else:
-    rdo2aod.input = ''
-    rdo2aod.args += '--inputRDOFile=$ArtInFile '
-
-
-test = Test.Test()
-test.art_type = 'grid'
-if (not exclude):
-    test.exec_steps = [rdo2aod]
-    test.exec_steps.append(TrigInDetAna()) # Run analysis to produce TrkNtuple
-    test.check_steps = CheckSteps.default_check_steps(test)
-
- 
-# Run Tidardict
-if ((not exclude) or postproc ):
-    rdict = TrigInDetdictStep()
-    rdict.args='TIDAdata-run3.dat -f data-hists.root -p 11 -b Test_bin.dat '
-    test.check_steps.append(rdict)
-    rdict2 = TrigInDetdictStep('TrigInDetDict2')
-    rdict2.args='TIDAdata-run3-offline.dat -r Offline  -f data-hists-offline.root -b Test_bin.dat '
-    test.check_steps.append(rdict2)
-
- 
-# Now the comparitor steps
-comp=TrigInDetCompStep('Comp_L2ele','L2','electron')
-test.check_steps.append(comp)
-  
-comp2=TrigInDetCompStep('Comp_EFele','EF','electron')
-test.check_steps.append(comp2)
-
-comp3=TrigInDetCompStep('Comp_L2eleLowpt','L2','electron',lowpt=True)
-test.check_steps.append(comp3)
-
-comp4=TrigInDetCompStep('Comp_EFeleLowpt','EF','electron',lowpt=True)
-test.check_steps.append(comp4)
-
-comp5=TrigInDetCompStep('Comp_L2ele_off','L2','electron')
-comp5.type = 'offline'
-test.check_steps.append(comp5)
-  
-comp6=TrigInDetCompStep('Comp_EFele_off','EF','electron')
-comp6.type = 'offline'
-test.check_steps.append(comp6)
-
-comp7=TrigInDetCompStep('Comp_L2eleLowpt_off','L2','electron',lowpt=True)
-comp7.type = 'offline'
-test.check_steps.append(comp7)
-
-comp8=TrigInDetCompStep('Comp_EFeleLowpt_off','EF','electron',lowpt=True)
-comp8.type = 'offline'
-test.check_steps.append(comp8)
-
-# CPU cost steps
-cpucost=TrigInDetCpuCostStep('CpuCostStep1', ftf_times=False)
-test.check_steps.append(cpucost)
-
-cpucost2=TrigInDetCpuCostStep('CpuCostStep2')
-test.check_steps.append(cpucost2)
-
-import sys
-sys.exit(test.run())
+Slices  = ['electron']
+Events  = 16000
+Threads = 8 
+Slots   = 8
+Input   = 'Zee_pu40'    # defined in TrigValTools/share/TrigValInputs.json
+GridFiles=True
+
+Jobs = [ ( "Truth",       " TIDAdata-run3.dat                    -o data-hists.root -p 11" ),
+         ( "Offline",     " TIDAdata-run3-offline.dat -r Offline -o data-hists-offline.root" ) ]
+
+Comp = [ ( "L2ele",              "L2electron",      "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTL2-plots " ),
+         ( "L2ele-lowpt",        "L2electronLowpt", "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTL2-plots-lowpt " ),
+         ( "L2eleoffline",       "L2electron",      "data-hists-offline.root", " -c TIDAhisto-panel.dat  -d HLTL2-plots-offline " ),
+         ( "L2eleoffline-lowpt", "L2electronLowpt", "data-hists-offline.root", " -c TIDAhisto-panel.dat  -d HLTL2-plots-lowpt-offline " ),
+         ( "EFele",              "EFelectron",      "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTEF-plots " ),
+         ( "EFele-lowpt",        "EFelectronLowpt", "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTEF-plots-lowpt " ),
+         ( "EFeleoffline",       "EFelectron",      "data-hists-offline.root", " -c TIDAhisto-panel.dat  -d HLTEF-plots-offline " ),
+         ( "EFeleoffline-lowpt", "EFelectronLowpt", "data-hists-offline.root", " -c TIDAhisto-panel.dat  -d HLTEF-plots-lowpt-offline " ) ]
+
+
+from AthenaCommon.Include import include 
+include("TrigInDetValidation/TrigInDetValidation_Base.py")
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_zee_pu40_old.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_zee_pu40_old.py
new file mode 100755
index 00000000000..82997b99273
--- /dev/null
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_zee_pu40_old.py
@@ -0,0 +1,125 @@
+#!/usr/bin/env python
+
+# art-description: art job for el_zee_pu40
+# art-type: grid
+# art-include: master/Athena
+# art-input: mc15_13TeV.361106.PowhegPythia8EvtGen_AZNLOCTEQ6L1_Zee.recon.RDO.e3601_s2665_s2183_r7191
+# art-input-nfiles: 8
+# art-athena-mt: 8
+# art-memory: 4096
+# art-html: https://idtrigger-val.web.cern.ch/idtrigger-val/TIDAWeb/TIDAart/?jobdir=
+# art-output: *.txt
+# art-output: *.log
+# art-output: log.*
+# art-output: *.out
+# art-output: *.err
+# art-output: *.log.tar.gz
+# art-output: *.new
+# art-output: *.json
+# art-output: *.root
+# art-output: *.check*
+# art-output: HLT*
+# art-output: times*
+# art-output: cost-perCall
+# art-output: cost-perEvent
+# art-output: cost-perCall-chain
+# art-output: cost-perEvent-chain
+# art-output: *.dat 
+
+
+from TrigValTools.TrigValSteering import Test, CheckSteps
+from TrigInDetValidation.TrigInDetOldArtSteps import TrigInDetReco, TrigInDetAna, TrigInDetdictStep, TrigInDetCompStep, TrigInDetCpuCostStep
+
+import sys,getopt
+
+try:
+    opts, args = getopt.getopt(sys.argv[1:],"lxp",["local"])
+except getopt.GetoptError:
+    print("Usage:  ")
+    print("-l(--local)    run locally with input file from art eos grid-input")
+    print("-x             don't run athena or post post-processing, only plotting")
+    print("-p             run post-processing, even if -x is set")
+
+
+local=False
+exclude=False
+postproc=False
+for opt,arg in opts:
+    if opt in ("-l", "--local"):
+        local=True
+    if opt=="-x":
+        exclude=True
+    if opt=="-p":
+        postproc=True
+
+
+rdo2aod = TrigInDetReco()
+rdo2aod.slices = ['electron']
+rdo2aod.max_events = 16000 
+rdo2aod.threads = 8
+rdo2aod.concurrent_events = 8
+rdo2aod.perfmon = False
+rdo2aod.timeout = 18*3600
+if local:
+    rdo2aod.input = 'Zee_pu40'      # defined in TrigValTools/share/TrigValInputs.json  
+else:
+    rdo2aod.input = ''
+    rdo2aod.args += '--inputRDOFile=$ArtInFile '
+
+
+test = Test.Test()
+test.art_type = 'grid'
+if (not exclude):
+    test.exec_steps = [rdo2aod]
+    test.exec_steps.append(TrigInDetAna()) # Run analysis to produce TrkNtuple
+    test.check_steps = CheckSteps.default_check_steps(test)
+
+ 
+# Run Tidardict
+if ((not exclude) or postproc ):
+    rdict = TrigInDetdictStep()
+    rdict.args='TIDAdata-run3.dat -f data-hists.root -p 11 -b Test_bin.dat '
+    test.check_steps.append(rdict)
+    rdict2 = TrigInDetdictStep('TrigInDetDict2')
+    rdict2.args='TIDAdata-run3-offline.dat -r Offline  -f data-hists-offline.root -b Test_bin.dat '
+    test.check_steps.append(rdict2)
+
+ 
+# Now the comparitor steps
+comp=TrigInDetCompStep('Comp_L2ele','L2','electron')
+test.check_steps.append(comp)
+  
+comp2=TrigInDetCompStep('Comp_EFele','EF','electron')
+test.check_steps.append(comp2)
+
+comp3=TrigInDetCompStep('Comp_L2eleLowpt','L2','electron',lowpt=True)
+test.check_steps.append(comp3)
+
+comp4=TrigInDetCompStep('Comp_EFeleLowpt','EF','electron',lowpt=True)
+test.check_steps.append(comp4)
+
+comp5=TrigInDetCompStep('Comp_L2ele_off','L2','electron')
+comp5.type = 'offline'
+test.check_steps.append(comp5)
+  
+comp6=TrigInDetCompStep('Comp_EFele_off','EF','electron')
+comp6.type = 'offline'
+test.check_steps.append(comp6)
+
+comp7=TrigInDetCompStep('Comp_L2eleLowpt_off','L2','electron',lowpt=True)
+comp7.type = 'offline'
+test.check_steps.append(comp7)
+
+comp8=TrigInDetCompStep('Comp_EFeleLowpt_off','EF','electron',lowpt=True)
+comp8.type = 'offline'
+test.check_steps.append(comp8)
+
+# CPU cost steps
+cpucost=TrigInDetCpuCostStep('CpuCostStep1', ftf_times=False)
+test.check_steps.append(cpucost)
+
+cpucost2=TrigInDetCpuCostStep('CpuCostStep2')
+test.check_steps.append(cpucost2)
+
+import sys
+sys.exit(test.run())
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_zee_pu40_short.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_zee_pu40_short.py
index 067583cddad..a98d8cffc2f 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_zee_pu40_short.py
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_zee_pu40_short.py
@@ -27,99 +27,25 @@
 # art-output: *.dat 
 
 
-from TrigValTools.TrigValSteering import Test, CheckSteps
-from TrigInDetValidation.TrigInDetArtSteps import TrigInDetReco, TrigInDetAna, TrigInDetdictStep, TrigInDetCompStep, TrigInDetCpuCostStep
-
-import sys,getopt
-
-try:
-    opts, args = getopt.getopt(sys.argv[1:],"lxp",["local"])
-except getopt.GetoptError:
-    print("Usage:  ")
-    print("-l(--local)    run locally with input file from art eos grid-input")
-    print("-x             don't run athena or post post-processing, only plotting")
-    print("-p             run post-processing, even if -x is set")
-
-
-local=False
-exclude=False
-postproc=False
-for opt,arg in opts:
-    if opt in ("-l", "--local"):
-        local=True
-    if opt=="-x":
-        exclude=True
-    if opt=="-p":
-        postproc=True
-
-
-rdo2aod = TrigInDetReco()
-rdo2aod.slices = ['electron']
-rdo2aod.max_events = 8000 
-rdo2aod.threads = 8
-rdo2aod.concurrent_events = 8
-rdo2aod.perfmon = False
-rdo2aod.timeout = 18*3600
-if local:
-    rdo2aod.input = 'Zee_pu40'      # defined in TrigValTools/share/TrigValInputs.json  
-else:
-    rdo2aod.input = ''
-    rdo2aod.args += '--inputRDOFile=$ArtInFile '
-
-
-test = Test.Test()
-test.art_type = 'grid'
-if (not exclude):
-    test.exec_steps = [rdo2aod]
-    test.exec_steps.append(TrigInDetAna()) # Run analysis to produce TrkNtuple
-    test.check_steps = CheckSteps.default_check_steps(test)
-
- 
-# Run Tidardict
-if ((not exclude) or postproc ):
-    rdict = TrigInDetdictStep()
-    rdict.args='TIDAdata-run3.dat -f data-hists.root -p 11 -b Test_bin.dat '
-    test.check_steps.append(rdict)
-    rdict2 = TrigInDetdictStep('TrigInDetDict2')
-    rdict2.args='TIDAdata-run3-offline.dat -r Offline  -f data-hists-offline.root -b Test_bin.dat '
-    test.check_steps.append(rdict2)
-
- 
-# Now the comparitor steps
-comp=TrigInDetCompStep('Comp_L2ele','L2','electron')
-test.check_steps.append(comp)
-  
-comp2=TrigInDetCompStep('Comp_EFele','EF','electron')
-test.check_steps.append(comp2)
-
-comp3=TrigInDetCompStep('Comp_L2eleLowpt','L2','electron',lowpt=True)
-test.check_steps.append(comp3)
-
-comp4=TrigInDetCompStep('Comp_EFeleLowpt','EF','electron',lowpt=True)
-test.check_steps.append(comp4)
-
-comp5=TrigInDetCompStep('Comp_L2ele_off','L2','electron')
-comp5.type = 'offline'
-test.check_steps.append(comp5)
-  
-comp6=TrigInDetCompStep('Comp_EFele_off','EF','electron')
-comp6.type = 'offline'
-test.check_steps.append(comp6)
-
-comp7=TrigInDetCompStep('Comp_L2eleLowpt_off','L2','electron',lowpt=True)
-comp7.type = 'offline'
-test.check_steps.append(comp7)
-
-comp8=TrigInDetCompStep('Comp_EFeleLowpt_off','EF','electron',lowpt=True)
-comp8.type = 'offline'
-test.check_steps.append(comp8)
-
-# CPU cost steps
-cpucost=TrigInDetCpuCostStep('CpuCostStep1', ftf_times=False)
-test.check_steps.append(cpucost)
-
-cpucost2=TrigInDetCpuCostStep('CpuCostStep2')
-test.check_steps.append(cpucost2)
-
-import sys
-sys.exit(test.run())
+Slices  = ['electron']
+Events  = 8000
+Threads = 8 
+Slots   = 8
+Input   = 'Zee_pu40'    # defined in TrigValTools/share/TrigValInputs.json
+GridFiles=True
+
+Jobs = [ ( "Truth",       " TIDAdata-run3.dat                    -o data-hists.root -p 11" ),
+         ( "Offline",     " TIDAdata-run3-offline.dat -r Offline -o data-hists-offline.root" ) ]
+
+Comp = [ ( "L2ele",              "L2electron",      "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTL2-plots " ),
+         ( "L2ele-lowpt",        "L2electronLowpt", "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTL2-plots-lowpt " ),
+         ( "L2eleoffline",       "L2electron",      "data-hists-offline.root", " -c TIDAhisto-panel.dat  -d HLTL2-plots-offline " ),
+         ( "L2eleoffline-lowpt", "L2electronLowpt", "data-hists-offline.root", " -c TIDAhisto-panel.dat  -d HLTL2-plots-lowpt-offline " ),
+         ( "EFele",              "EFelectron",      "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTEF-plots " ),
+         ( "EFele-lowpt",        "EFelectronLowpt", "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTEF-plots-lowpt " ),
+         ( "EFeleoffline",       "EFelectron",      "data-hists-offline.root", " -c TIDAhisto-panel.dat  -d HLTEF-plots-offline " ),
+         ( "EFeleoffline-lowpt", "EFelectronLowpt", "data-hists-offline.root", " -c TIDAhisto-panel.dat  -d HLTEF-plots-lowpt-offline " ) ]
+
+
+from AthenaCommon.Include import include 
+include("TrigInDetValidation/TrigInDetValidation_Base.py")
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_zee_pu40_short_old.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_zee_pu40_short_old.py
new file mode 100755
index 00000000000..b7b997ecba6
--- /dev/null
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_zee_pu40_short_old.py
@@ -0,0 +1,125 @@
+#!/usr/bin/env python
+
+# art-description: art job for el_zee_pu40_short
+# art-type: grid
+# art-include: master/Athena
+# art-input: mc15_13TeV.361106.PowhegPythia8EvtGen_AZNLOCTEQ6L1_Zee.recon.RDO.e3601_s2665_s2183_r7191
+# art-input-nfiles: 8
+# art-athena-mt: 8
+# art-memory: 4096
+# art-html: https://idtrigger-val.web.cern.ch/idtrigger-val/TIDAWeb/TIDAart/?jobdir=
+# art-output: *.txt
+# art-output: *.log
+# art-output: log.*
+# art-output: *.out
+# art-output: *.err
+# art-output: *.log.tar.gz
+# art-output: *.new
+# art-output: *.json
+# art-output: *.root
+# art-output: *.check*
+# art-output: HLT*
+# art-output: times*
+# art-output: cost-perCall
+# art-output: cost-perEvent
+# art-output: cost-perCall-chain
+# art-output: cost-perEvent-chain
+# art-output: *.dat 
+
+
+from TrigValTools.TrigValSteering import Test, CheckSteps
+from TrigInDetValidation.TrigInDetOldArtSteps import TrigInDetReco, TrigInDetAna, TrigInDetdictStep, TrigInDetCompStep, TrigInDetCpuCostStep
+
+import sys,getopt
+
+try:
+    opts, args = getopt.getopt(sys.argv[1:],"lxp",["local"])
+except getopt.GetoptError:
+    print("Usage:  ")
+    print("-l(--local)    run locally with input file from art eos grid-input")
+    print("-x             don't run athena or post post-processing, only plotting")
+    print("-p             run post-processing, even if -x is set")
+
+
+local=False
+exclude=False
+postproc=False
+for opt,arg in opts:
+    if opt in ("-l", "--local"):
+        local=True
+    if opt=="-x":
+        exclude=True
+    if opt=="-p":
+        postproc=True
+
+
+rdo2aod = TrigInDetReco()
+rdo2aod.slices = ['electron']
+rdo2aod.max_events = 8000 
+rdo2aod.threads = 8
+rdo2aod.concurrent_events = 8
+rdo2aod.perfmon = False
+rdo2aod.timeout = 18*3600
+if local:
+    rdo2aod.input = 'Zee_pu40'      # defined in TrigValTools/share/TrigValInputs.json  
+else:
+    rdo2aod.input = ''
+    rdo2aod.args += '--inputRDOFile=$ArtInFile '
+
+
+test = Test.Test()
+test.art_type = 'grid'
+if (not exclude):
+    test.exec_steps = [rdo2aod]
+    test.exec_steps.append(TrigInDetAna()) # Run analysis to produce TrkNtuple
+    test.check_steps = CheckSteps.default_check_steps(test)
+
+ 
+# Run Tidardict
+if ((not exclude) or postproc ):
+    rdict = TrigInDetdictStep()
+    rdict.args='TIDAdata-run3.dat -f data-hists.root -p 11 -b Test_bin.dat '
+    test.check_steps.append(rdict)
+    rdict2 = TrigInDetdictStep('TrigInDetDict2')
+    rdict2.args='TIDAdata-run3-offline.dat -r Offline  -f data-hists-offline.root -b Test_bin.dat '
+    test.check_steps.append(rdict2)
+
+ 
+# Now the comparitor steps
+comp=TrigInDetCompStep('Comp_L2ele','L2','electron')
+test.check_steps.append(comp)
+  
+comp2=TrigInDetCompStep('Comp_EFele','EF','electron')
+test.check_steps.append(comp2)
+
+comp3=TrigInDetCompStep('Comp_L2eleLowpt','L2','electron',lowpt=True)
+test.check_steps.append(comp3)
+
+comp4=TrigInDetCompStep('Comp_EFeleLowpt','EF','electron',lowpt=True)
+test.check_steps.append(comp4)
+
+comp5=TrigInDetCompStep('Comp_L2ele_off','L2','electron')
+comp5.type = 'offline'
+test.check_steps.append(comp5)
+  
+comp6=TrigInDetCompStep('Comp_EFele_off','EF','electron')
+comp6.type = 'offline'
+test.check_steps.append(comp6)
+
+comp7=TrigInDetCompStep('Comp_L2eleLowpt_off','L2','electron',lowpt=True)
+comp7.type = 'offline'
+test.check_steps.append(comp7)
+
+comp8=TrigInDetCompStep('Comp_EFeleLowpt_off','EF','electron',lowpt=True)
+comp8.type = 'offline'
+test.check_steps.append(comp8)
+
+# CPU cost steps
+cpucost=TrigInDetCpuCostStep('CpuCostStep1', ftf_times=False)
+test.check_steps.append(cpucost)
+
+cpucost2=TrigInDetCpuCostStep('CpuCostStep2')
+test.check_steps.append(cpucost2)
+
+import sys
+sys.exit(test.run())
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_zee_pu40_st.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_zee_pu40_st.py
index a219260c528..829ea474af3 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_zee_pu40_st.py
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_zee_pu40_st.py
@@ -27,99 +27,25 @@
 # art-output: *.dat 
 
 
-from TrigValTools.TrigValSteering import Test, CheckSteps
-from TrigInDetValidation.TrigInDetArtSteps import TrigInDetReco, TrigInDetAna, TrigInDetdictStep, TrigInDetCompStep, TrigInDetCpuCostStep
-
-import sys,getopt
-
-try:
-    opts, args = getopt.getopt(sys.argv[1:],"lxp",["local"])
-except getopt.GetoptError:
-    print("Usage:  ")
-    print("-l(--local)    run locally with input file from art eos grid-input")
-    print("-x             don't run athena or post post-processing, only plotting")
-    print("-p             run post-processing, even if -x is set")
-
-
-local=False
-exclude=False
-postproc=False
-for opt,arg in opts:
-    if opt in ("-l", "--local"):
-        local=True
-    if opt=="-x":
-        exclude=True
-    if opt=="-p":
-        postproc=True
-
-
-rdo2aod = TrigInDetReco()
-rdo2aod.slices = ['electron']
-rdo2aod.max_events = 8000 
-rdo2aod.threads = 1 # TODO: change to 4
-rdo2aod.concurrent_events = 1 # TODO: change to 4
-rdo2aod.perfmon = False
-rdo2aod.timeout = 18*3600
-if local:
-    rdo2aod.input = 'Zee_pu40'      # defined in TrigValTools/share/TrigValInputs.json  
-else:
-    rdo2aod.input = ''
-    rdo2aod.args += '--inputRDOFile=$ArtInFile '
-
-
-test = Test.Test()
-test.art_type = 'grid'
-if (not exclude):
-    test.exec_steps = [rdo2aod]
-    test.exec_steps.append(TrigInDetAna()) # Run analysis to produce TrkNtuple
-    test.check_steps = CheckSteps.default_check_steps(test)
-
- 
-# Run Tidardict
-if ((not exclude) or postproc ):
-    rdict = TrigInDetdictStep()
-    rdict.args='TIDAdata-run3.dat -f data-hists.root -p 11 -b Test_bin.dat '
-    test.check_steps.append(rdict)
-    rdict2 = TrigInDetdictStep('TrigInDetDict2')
-    rdict2.args='TIDAdata-run3-offline.dat -r Offline  -f data-hists-offline.root -b Test_bin.dat '
-    test.check_steps.append(rdict2)
-
- 
-# Now the comparitor steps
-comp=TrigInDetCompStep('Comp_L2ele','L2','electron')
-test.check_steps.append(comp)
-  
-comp2=TrigInDetCompStep('Comp_EFele','EF','electron')
-test.check_steps.append(comp2)
-
-comp3=TrigInDetCompStep('Comp_L2eleLowpt','L2','electron',lowpt=True)
-test.check_steps.append(comp3)
-
-comp4=TrigInDetCompStep('Comp_EFeleLowpt','EF','electron',lowpt=True)
-test.check_steps.append(comp4)
-
-comp5=TrigInDetCompStep('Comp_L2ele_off','L2','electron')
-comp5.type = 'offline'
-test.check_steps.append(comp5)
-  
-comp6=TrigInDetCompStep('Comp_EFele_off','EF','electron')
-comp6.type = 'offline'
-test.check_steps.append(comp6)
-
-comp7=TrigInDetCompStep('Comp_L2eleLowpt_off','L2','electron',lowpt=True)
-comp7.type = 'offline'
-test.check_steps.append(comp7)
-
-comp8=TrigInDetCompStep('Comp_EFeleLowpt_off','EF','electron',lowpt=True)
-comp8.type = 'offline'
-test.check_steps.append(comp8)
-
-# CPU cost steps
-cpucost=TrigInDetCpuCostStep('CpuCostStep1', ftf_times=False)
-test.check_steps.append(cpucost)
-
-cpucost2=TrigInDetCpuCostStep('CpuCostStep2')
-test.check_steps.append(cpucost2)
-
-import sys
-sys.exit(test.run())
+Slices  = ['electron']
+Events  = 8000
+Threads = 1 
+Slots   = 1
+Input   = 'Zee_pu40'    # defined in TrigValTools/share/TrigValInputs.json
+GridFiles=True
+
+Jobs = [ ( "Truth",       " TIDAdata-run3.dat                    -o data-hists.root -p 11" ),
+         ( "Offline",     " TIDAdata-run3-offline.dat -r Offline -o data-hists-offline.root" ) ]
+
+Comp = [ ( "L2ele",              "L2electron",      "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTL2-plots " ),
+         ( "L2ele-lowpt",        "L2electronLowpt", "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTL2-plots-lowpt " ),
+         ( "L2eleoffline",       "L2electron",      "data-hists-offline.root", " -c TIDAhisto-panel.dat  -d HLTL2-plots-offline " ),
+         ( "L2eleoffline-lowpt", "L2electronLowpt", "data-hists-offline.root", " -c TIDAhisto-panel.dat  -d HLTL2-plots-lowpt-offline " ),
+         ( "EFele",              "EFelectron",      "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTEF-plots " ),
+         ( "EFele-lowpt",        "EFelectronLowpt", "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTEF-plots-lowpt " ),
+         ( "EFeleoffline",       "EFelectron",      "data-hists-offline.root", " -c TIDAhisto-panel.dat  -d HLTEF-plots-offline " ),
+         ( "EFeleoffline-lowpt", "EFelectronLowpt", "data-hists-offline.root", " -c TIDAhisto-panel.dat  -d HLTEF-plots-lowpt-offline " ) ]
+
+
+from AthenaCommon.Include import include 
+include("TrigInDetValidation/TrigInDetValidation_Base.py")
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_zee_pu40_st_old.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_zee_pu40_st_old.py
new file mode 100755
index 00000000000..23ec19ec16f
--- /dev/null
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_zee_pu40_st_old.py
@@ -0,0 +1,125 @@
+#!/usr/bin/env python
+
+# art-description: art job for el_zee_pu40_st
+# art-type: grid
+# art-include: master/Athena
+# art-input: mc15_13TeV.361106.PowhegPythia8EvtGen_AZNLOCTEQ6L1_Zee.recon.RDO.e3601_s2665_s2183_r7191
+# art-input-nfiles: 8
+# art-athena-mt: 4
+# art-memory: 4096
+# art-html: https://idtrigger-val.web.cern.ch/idtrigger-val/TIDAWeb/TIDAart/?jobdir=
+# art-output: *.txt
+# art-output: *.log
+# art-output: log.*
+# art-output: *.out
+# art-output: *.err
+# art-output: *.log.tar.gz
+# art-output: *.new
+# art-output: *.json
+# art-output: *.root
+# art-output: *.check*
+# art-output: HLT*
+# art-output: times*
+# art-output: cost-perCall
+# art-output: cost-perEvent
+# art-output: cost-perCall-chain
+# art-output: cost-perEvent-chain
+# art-output: *.dat 
+
+
+from TrigValTools.TrigValSteering import Test, CheckSteps
+from TrigInDetValidation.TrigInDetOldArtSteps import TrigInDetReco, TrigInDetAna, TrigInDetdictStep, TrigInDetCompStep, TrigInDetCpuCostStep
+
+import sys,getopt
+
+try:
+    opts, args = getopt.getopt(sys.argv[1:],"lxp",["local"])
+except getopt.GetoptError:
+    print("Usage:  ")
+    print("-l(--local)    run locally with input file from art eos grid-input")
+    print("-x             don't run athena or post post-processing, only plotting")
+    print("-p             run post-processing, even if -x is set")
+
+
+local=False
+exclude=False
+postproc=False
+for opt,arg in opts:
+    if opt in ("-l", "--local"):
+        local=True
+    if opt=="-x":
+        exclude=True
+    if opt=="-p":
+        postproc=True
+
+
+rdo2aod = TrigInDetReco()
+rdo2aod.slices = ['electron']
+rdo2aod.max_events = 8000 
+rdo2aod.threads = 1 # TODO: change to 4
+rdo2aod.concurrent_events = 1 # TODO: change to 4
+rdo2aod.perfmon = False
+rdo2aod.timeout = 18*3600
+if local:
+    rdo2aod.input = 'Zee_pu40'      # defined in TrigValTools/share/TrigValInputs.json  
+else:
+    rdo2aod.input = ''
+    rdo2aod.args += '--inputRDOFile=$ArtInFile '
+
+
+test = Test.Test()
+test.art_type = 'grid'
+if (not exclude):
+    test.exec_steps = [rdo2aod]
+    test.exec_steps.append(TrigInDetAna()) # Run analysis to produce TrkNtuple
+    test.check_steps = CheckSteps.default_check_steps(test)
+
+ 
+# Run Tidardict
+if ((not exclude) or postproc ):
+    rdict = TrigInDetdictStep()
+    rdict.args='TIDAdata-run3.dat -f data-hists.root -p 11 -b Test_bin.dat '
+    test.check_steps.append(rdict)
+    rdict2 = TrigInDetdictStep('TrigInDetDict2')
+    rdict2.args='TIDAdata-run3-offline.dat -r Offline  -f data-hists-offline.root -b Test_bin.dat '
+    test.check_steps.append(rdict2)
+
+ 
+# Now the comparitor steps
+comp=TrigInDetCompStep('Comp_L2ele','L2','electron')
+test.check_steps.append(comp)
+  
+comp2=TrigInDetCompStep('Comp_EFele','EF','electron')
+test.check_steps.append(comp2)
+
+comp3=TrigInDetCompStep('Comp_L2eleLowpt','L2','electron',lowpt=True)
+test.check_steps.append(comp3)
+
+comp4=TrigInDetCompStep('Comp_EFeleLowpt','EF','electron',lowpt=True)
+test.check_steps.append(comp4)
+
+comp5=TrigInDetCompStep('Comp_L2ele_off','L2','electron')
+comp5.type = 'offline'
+test.check_steps.append(comp5)
+  
+comp6=TrigInDetCompStep('Comp_EFele_off','EF','electron')
+comp6.type = 'offline'
+test.check_steps.append(comp6)
+
+comp7=TrigInDetCompStep('Comp_L2eleLowpt_off','L2','electron',lowpt=True)
+comp7.type = 'offline'
+test.check_steps.append(comp7)
+
+comp8=TrigInDetCompStep('Comp_EFeleLowpt_off','EF','electron',lowpt=True)
+comp8.type = 'offline'
+test.check_steps.append(comp8)
+
+# CPU cost steps
+cpucost=TrigInDetCpuCostStep('CpuCostStep1', ftf_times=False)
+test.check_steps.append(cpucost)
+
+cpucost2=TrigInDetCpuCostStep('CpuCostStep2')
+test.check_steps.append(cpucost2)
+
+import sys
+sys.exit(test.run())
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_fsjet_ml_pu40.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_fsjet_ml_pu40.py
index f2f3774b7bd..49fd0d57815 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_fsjet_ml_pu40.py
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_fsjet_ml_pu40.py
@@ -27,7 +27,6 @@
 
 
 Slices  = ['fsjet']
-RunEF   = False
 Events  = 2000 
 Threads = 1 
 Slots   = 1 # what about the mt: 4 art directive ? nfiles: 3 ?
@@ -35,7 +34,14 @@ Input   = 'ttbar'    # defined in TrigValTools/share/TrigValInputs.json
 
 postinclude_file = 'TIDAml_extensions.py'
 
-TrackReference = [ 'Truth', 'Offline' ]
+Jobs = [ ( "Truth",       " TIDAdata-run3.dat                        -o data-hists.root" ),
+         ( "Offline",     " TIDAdata-run3-offline.dat     -r Offline -o data-hists-offline.root" ),
+         ( "OfflineVtx",  " TIDAdata-run3-offline-vtx.dat -r Offline -o data-hists-offline-vtx.root" ) ]
+
+Comp = [ ( "FSjet",        "L2fsjet",     "data-hists.root",              " -c TIDAhisto-panel.dat      -d HLTL2-plots " ),
+         ( "FSjetoffline", "L2fsjet",     "data-hists-offline.root",      " -c TIDAhisto-panel.dat      -d HLTL2-plots-offline " ),
+         ( "FSvtx",        "L2fsjetvtx",  "data-hists-offline-vtx.root",  " -c TIDAhisto-panel-vtx.dat  -d HLTL2-plots-vtx     --ncols 3" ),
+         ( "FSvtxall",     "L2fsjetvtx",  "data-hists-offline.root",      " -c TIDAhisto-panel-vtx.dat  -d HLTL2-plots-vtxall  --ncols 3" ) ]
 
 
 from AthenaCommon.Include import include 
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_fsjet_ml_pu40_old.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_fsjet_ml_pu40_old.py
new file mode 100755
index 00000000000..c7d0df17463
--- /dev/null
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_fsjet_ml_pu40_old.py
@@ -0,0 +1,45 @@
+#!/usr/bin/env python
+
+# art-description: art job for fsjet_ml_pu40
+# art-type: grid
+# art-include: master/Athena
+# art-input-nfiles: 3
+# art-athena-mt: 4
+# art-memory: 4096
+# art-html: https://idtrigger-val.web.cern.ch/idtrigger-val/TIDAWeb/TIDAart/?jobdir=
+# art-output: *.txt
+# art-output: *.log
+# art-output: log.*
+# art-output: *.out
+# art-output: *.err
+# art-output: *.log.tar.gz
+# art-output: *.new
+# art-output: *.json
+# art-output: *.root
+# art-output: *.check*
+# art-output: HLT*
+# art-output: times*
+# art-output: cost-perCall
+# art-output: cost-perEvent
+# art-output: cost-perCall-chain
+# art-output: cost-perEvent-chain
+# art-output: *.dat 
+
+
+Slices  = ['fsjet']
+RunEF   = False
+Events  = 2000 
+Threads = 1 
+Slots   = 1 # what about the mt: 4 art directive ? nfiles: 3 ?
+Input   = 'ttbar'    # defined in TrigValTools/share/TrigValInputs.json  
+
+postinclude_file = 'TIDAml_extensions.py'
+
+TrackReference = [ 'Truth', 'Offline' ]
+
+
+from AthenaCommon.Include import include 
+include("TrigInDetValidation/TrigInDetValidation_OldBase.py")
+
+
+ 
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_fsjet_nopps_pu40.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_fsjet_nopps_pu40.py
index bed747938cc..239bfe93dbb 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_fsjet_nopps_pu40.py
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_fsjet_nopps_pu40.py
@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 
-# art-description: art job for fsjet_pu40_new
+# art-description: art job for fsjet_nopps_pu40
 # art-type: grid
 # art-include: master/Athena
 # art-input-nfiles: 3
@@ -30,16 +30,15 @@ os.system("echo 'ftf = findAlgorithm(topSequence, \"TrigFastTrackFinder__jet\")'
 os.system("echo 'ftf.TripletDoPPS=False' >> dopps.py")
 
 Slices  = ['fsjet']
-RunEF   = False
 Events  = 2000 
 Threads = 8 
 Slots   = 8
 postinclude_file = 'dopps.py'
 Input   = 'ttbar'    # defined in TrigValTools/share/TrigValInputs.json  
 
-Jobs = [ ( "Truth",       " TIDAdata-run3.dat              -o data-hists.root" ), 
-         ( "Offline",     " TIDAdata-run3-offline.dat      -o data-hists-offline.root" ),
-         ( "OfflineVtx",  " TIDAdata-run3-offline-vtx.dat  -o data-hists-offline-vtx.root" ) ]
+Jobs = [ ( "Truth",       " TIDAdata-run3.dat                        -o data-hists.root" ), 
+         ( "Offline",     " TIDAdata-run3-offline.dat     -r Offline -o data-hists-offline.root" ),
+         ( "OfflineVtx",  " TIDAdata-run3-offline-vtx.dat -r Offline -o data-hists-offline-vtx.root" ) ]
 
 
 Comp = [ ( "FSjet",        "L2fsjet",     "data-hists.root",              " -c TIDAhisto-panel.dat      -d HLTL2-plots " ),
@@ -49,7 +48,7 @@ Comp = [ ( "FSjet",        "L2fsjet",     "data-hists.root",              " -c T
 
 
 from AthenaCommon.Include import include 
-include("TrigInDetValidation/TrigInDetValidation_NewBase.py")
+include("TrigInDetValidation/TrigInDetValidation_Base.py")
 
 
  
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_fsjet_pu40.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_fsjet_pu40.py
index 7906c655c02..c350cca4608 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_fsjet_pu40.py
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_fsjet_pu40.py
@@ -27,13 +27,20 @@
 
 
 Slices  = ['fsjet']
-RunEF   = False
 Events  = 2000 
 Threads = 8 
 Slots   = 8
 Input   = 'ttbar'    # defined in TrigValTools/share/TrigValInputs.json  
 
-TrackReference = [ 'Truth', 'Offline' ]
+Jobs = [ ( "Truth",       " TIDAdata-run3.dat                        -o data-hists.root" ), 
+         ( "Offline",     " TIDAdata-run3-offline.dat     -r Offline -o data-hists-offline.root" ),
+         ( "OfflineVtx",  " TIDAdata-run3-offline-vtx.dat -r Offline -o data-hists-offline-vtx.root" ) ]
+
+
+Comp = [ ( "FSjet",        "L2fsjet",     "data-hists.root",              " -c TIDAhisto-panel.dat      -d HLTL2-plots " ),
+         ( "FSjetoffline", "L2fsjet",     "data-hists-offline.root",      " -c TIDAhisto-panel.dat      -d HLTL2-plots-offline " ),
+         ( "FSvtx",        "L2fsjetvtx",  "data-hists-offline-vtx.root",  " -c TIDAhisto-panel-vtx.dat  -d HLTL2-plots-vtx     --ncols 3" ),
+         ( "FSvtxall",     "L2fsjetvtx",  "data-hists-offline.root",      " -c TIDAhisto-panel-vtx.dat  -d HLTL2-plots-vtxall  --ncols 3" ) ]
 
 
 from AthenaCommon.Include import include 
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_fsjet_pu40_new.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_fsjet_pu40_new.py
deleted file mode 100755
index 0e0eb8d1d45..00000000000
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_fsjet_pu40_new.py
+++ /dev/null
@@ -1,51 +0,0 @@
-#!/usr/bin/env python
-
-# art-description: art job for fsjet_pu40_new
-# art-type: grid
-# art-include: master/Athena
-# art-input-nfiles: 3
-# art-athena-mt: 8
-# art-memory: 4096
-# art-html: https://idtrigger-val.web.cern.ch/idtrigger-val/TIDAWeb/TIDAart/?jobdir=
-# art-output: *.txt
-# art-output: *.log
-# art-output: log.*
-# art-output: *.out
-# art-output: *.err
-# art-output: *.log.tar.gz
-# art-output: *.new
-# art-output: *.json
-# art-output: *.root
-# art-output: *.check*
-# art-output: HLT*
-# art-output: times*
-# art-output: cost-perCall
-# art-output: cost-perEvent
-# art-output: cost-perCall-chain
-# art-output: cost-perEvent-chain
-# art-output: *.dat 
-
-
-Slices  = ['fsjet']
-RunEF   = False
-Events  = 2000 
-Threads = 8 
-Slots   = 8
-Input   = 'ttbar'    # defined in TrigValTools/share/TrigValInputs.json  
-
-Jobs = [ ( "Truth",       " TIDAdata-run3.dat              -o data-hists.root" ), 
-         ( "Offline",     " TIDAdata-run3-offline.dat      -o data-hists-offline.root" ),
-         ( "OfflineVtx",  " TIDAdata-run3-offline-vtx.dat  -o data-hists-offline-vtx.root" ) ]
-
-
-Comp = [ ( "FSjet",        "L2fsjet",     "data-hists.root",              " -c TIDAhisto-panel.dat      -d HLTL2-plots " ),
-         ( "FSjetoffline", "L2fsjet",     "data-hists-offline.root",      " -c TIDAhisto-panel.dat      -d HLTL2-plots-offline " ),
-         ( "FSvtx",        "L2fsjetvtx",  "data-hists-offline-vtx.root",  " -c TIDAhisto-panel-vtx.dat  -d HLTL2-plots-vtx     --ncols 3" ),
-         ( "FSvtxall",     "L2fsjetvtx",  "data-hists-offline.root",      " -c TIDAhisto-panel-vtx.dat  -d HLTL2-plots-vtxall  --ncols 3" ) ]
-
-
-from AthenaCommon.Include import include 
-include("TrigInDetValidation/TrigInDetValidation_NewBase.py")
-
-
- 
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_fsjet_pu40_old.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_fsjet_pu40_old.py
new file mode 100755
index 00000000000..706271f7e05
--- /dev/null
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_fsjet_pu40_old.py
@@ -0,0 +1,43 @@
+#!/usr/bin/env python
+
+# art-description: art job for fsjet_pu40
+# art-type: grid
+# art-include: master/Athena
+# art-input-nfiles: 3
+# art-athena-mt: 8
+# art-memory: 4096
+# art-html: https://idtrigger-val.web.cern.ch/idtrigger-val/TIDAWeb/TIDAart/?jobdir=
+# art-output: *.txt
+# art-output: *.log
+# art-output: log.*
+# art-output: *.out
+# art-output: *.err
+# art-output: *.log.tar.gz
+# art-output: *.new
+# art-output: *.json
+# art-output: *.root
+# art-output: *.check*
+# art-output: HLT*
+# art-output: times*
+# art-output: cost-perCall
+# art-output: cost-perEvent
+# art-output: cost-perCall-chain
+# art-output: cost-perEvent-chain
+# art-output: *.dat 
+
+
+Slices  = ['fsjet']
+RunEF   = False
+Events  = 2000 
+Threads = 8 
+Slots   = 8
+Input   = 'ttbar'    # defined in TrigValTools/share/TrigValInputs.json  
+
+TrackReference = [ 'Truth', 'Offline' ]
+
+
+from AthenaCommon.Include import include 
+include("TrigInDetValidation/TrigInDetValidation_OldBase.py")
+
+
+ 
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_fsjet_pu40_st.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_fsjet_pu40_st.py
index bded7eec2ff..9a0b6137f8c 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_fsjet_pu40_st.py
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_fsjet_pu40_st.py
@@ -27,13 +27,19 @@
 
 
 Slices  = ['fsjet']
-RunEF   = False
 Events  = 2000 
 Threads = 1 
 Slots   = 1 # what about the mt: 4 art directive ? nfiles: 3 ?
 Input   = 'ttbar'    # defined in TrigValTools/share/TrigValInputs.json  
 
-TrackReference = [ 'Truth', 'Offline' ]
+Jobs = [ ( "Truth",       " TIDAdata-run3.dat                        -o data-hists.root" ),
+         ( "Offline",     " TIDAdata-run3-offline.dat     -r Offline -o data-hists-offline.root" ),
+         ( "OfflineVtx",  " TIDAdata-run3-offline-vtx.dat -r Offline -o data-hists-offline-vtx.root" ) ]
+
+Comp = [ ( "FSjet",        "L2fsjet",     "data-hists.root",              " -c TIDAhisto-panel.dat      -d HLTL2-plots " ),
+         ( "FSjetoffline", "L2fsjet",     "data-hists-offline.root",      " -c TIDAhisto-panel.dat      -d HLTL2-plots-offline " ),
+         ( "FSvtx",        "L2fsjetvtx",  "data-hists-offline-vtx.root",  " -c TIDAhisto-panel-vtx.dat  -d HLTL2-plots-vtx     --ncols 3" ),
+         ( "FSvtxall",     "L2fsjetvtx",  "data-hists-offline.root",      " -c TIDAhisto-panel-vtx.dat  -d HLTL2-plots-vtxall  --ncols 3" ) ]
 
 
 from AthenaCommon.Include import include 
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_fsjet_pu40_st_old.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_fsjet_pu40_st_old.py
new file mode 100755
index 00000000000..eaac4d29a2b
--- /dev/null
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_fsjet_pu40_st_old.py
@@ -0,0 +1,43 @@
+#!/usr/bin/env python
+
+# art-description: art job for fsjet_pu40_st
+# art-type: grid
+# art-include: master/Athena
+# art-input-nfiles: 3
+# art-athena-mt: 4
+# art-memory: 4096
+# art-html: https://idtrigger-val.web.cern.ch/idtrigger-val/TIDAWeb/TIDAart/?jobdir=
+# art-output: *.txt
+# art-output: *.log
+# art-output: log.*
+# art-output: *.out
+# art-output: *.err
+# art-output: *.log.tar.gz
+# art-output: *.new
+# art-output: *.json
+# art-output: *.root
+# art-output: *.check*
+# art-output: HLT*
+# art-output: times*
+# art-output: cost-perCall
+# art-output: cost-perEvent
+# art-output: cost-perCall-chain
+# art-output: cost-perEvent-chain
+# art-output: *.dat 
+
+
+Slices  = ['fsjet']
+RunEF   = False
+Events  = 2000 
+Threads = 1 
+Slots   = 1 # what about the mt: 4 art directive ? nfiles: 3 ?
+Input   = 'ttbar'    # defined in TrigValTools/share/TrigValInputs.json  
+
+TrackReference = [ 'Truth', 'Offline' ]
+
+
+from AthenaCommon.Include import include 
+include("TrigInDetValidation/TrigInDetValidation_OldBase.py")
+
+
+ 
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_minbias.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_minbias.py
index 29c48f98f88..65289fc30f9 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_minbias.py
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_minbias.py
@@ -28,13 +28,16 @@
 
 
 Slices  = ['minbias']
-RunEF   = False
 Events  = 8000 
 Threads = 8 
 Slots   = 8
 Input   = 'minbias'    # defined in TrigValTools/share/TrigValInputs.json  
 
-TrackReference = [ 'Truth', 'Offline' ]
+Jobs = [ ( "Truth",       " TIDAdata-run3.dat                    -o data-hists.root" ),
+         ( "Offline",     " TIDAdata-run3-offline.dat -r Offline -o data-hists-offline.root" ) ]
+
+Comp = [ ( "L2minbias",        "L2minbias", "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTL2-plots " ),
+         ( "L2minbiasoffline", "L2minbias", "data-hists-offline.root", " -c TIDAhisto-panel.dat  -d HLTL2-plots-offline " ) ]
 
 
 from AthenaCommon.Include import include 
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_minbias_old.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_minbias_old.py
new file mode 100755
index 00000000000..ed5c049f98d
--- /dev/null
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_minbias_old.py
@@ -0,0 +1,44 @@
+#!/usr/bin/env python
+
+
+# art-description: art job for minbias
+# art-type: grid
+# art-include: master/Athena
+# art-html: https://idtrigger-val.web.cern.ch/idtrigger-val/TIDAWeb/TIDAart/?jobdir=
+# art-athena-nfiles: 4
+# art-athena-mt: 8
+# art-memory: 4096
+# art-output: *.txt
+# art-output: *.log
+# art-output: log.*
+# art-output: *.out
+# art-output: *.err
+# art-output: *.log.tar.gz
+# art-output: *.new
+# art-output: *.json
+# art-output: *.root
+# art-output: *.check*
+# art-output: HLT*
+# art-output: times*
+# art-output: cost-perCall
+# art-output: cost-perEvent
+# art-output: cost-perCall-chain
+# art-output: cost-perEvent-chain
+# art-output: *.dat 
+
+
+Slices  = ['minbias']
+RunEF   = False
+Events  = 8000 
+Threads = 8 
+Slots   = 8
+Input   = 'minbias'    # defined in TrigValTools/share/TrigValInputs.json  
+
+TrackReference = [ 'Truth', 'Offline' ]
+
+
+from AthenaCommon.Include import include 
+include("TrigInDetValidation/TrigInDetValidation_OldBase.py")
+
+
+ 
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_bphys.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_bphys.py
index c3fd1df819e..932606d97b4 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_bphys.py
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_bphys.py
@@ -25,94 +25,27 @@
 # art-output: *.dat 
 
 
-from TrigValTools.TrigValSteering import Test, CheckSteps
-from TrigInDetValidation.TrigInDetArtSteps import TrigInDetReco, TrigInDetAna, TrigInDetdictStep, TrigInDetCompStep, TrigInDetCpuCostStep
+Slices  = ['muon']
+Events  = 6000 
+Threads = 8 
+Slots   = 8
+Input   = 'Bphys_JpsiPhi'    # defined in TrigValTools/share/TrigValInputs.json
 
-import sys,getopt
+Jobs = [ ( "Truth",       " TIDAdata-run3.dat                    -o data-hists.root -p 13" ),
+         ( "Offline",     " TIDAdata-run3-offline.dat -r Offline -o data-hists-offline.root" ) ]
 
-try:
-    opts, args = getopt.getopt(sys.argv[1:],"lxp",["local"])
-except getopt.GetoptError:
-    print("Usage:  ")
-    print("-l(--local)    run locally with input file from art eos grid-input")
-    print("-x             don't run athena or post post-processing, only plotting")
-    print("-p             run post-processing, even if -x is set")
+Comp = [ ( "L2muon",              "L2muon",      "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTL2-plots " ),
+         ( "L2muon-lowpt",        "L2muonLowpt", "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTL2-plots-lowpt " ),
+         ( "L2muonoffline",       "L2muon",      "data-hists-offline.root", " -c TIDAhisto-panel.dat  -d HLTL2-plots-offline " ),
+         ( "L2muonoffline-lowpt", "L2muonLowpt", "data-hists-offline.root", " -c TIDAhisto-panel.dat  -d HLTL2-plots-lowpt-offline " ),
+         ( "EFmuon",              "EFmuon",      "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTEF-plots " ),
+         ( "EFmuon-lowpt",        "EFmuonLowpt", "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTEF-plots-lowpt " ),
+         ( "EFmuonoffline",       "EFmuon",      "data-hists-offline.root", " -c TIDAhisto-panel.dat  -d HLTEF-plots-offline " ),
+         ( "EFmuonoffline-lowpt", "EFmuonLowpt", "data-hists-offline.root", " -c TIDAhisto-panel.dat  -d HLTEF-plots-lowpt-offline " ) ]
 
 
-local=False
-exclude=False
-postproc=False
-for opt,arg in opts:
-    if opt in ("-l", "--local"):
-        local=True
-    if opt=="-x":
-        exclude=True
-    if opt=="-p":
-        postproc=True
+from AthenaCommon.Include import include 
+include("TrigInDetValidation/TrigInDetValidation_Base.py")
 
 
-rdo2aod = TrigInDetReco()
-rdo2aod.slices = ['muon']
-rdo2aod.max_events = 6000 
-rdo2aod.threads = 8
-rdo2aod.concurrent_events = 8
-rdo2aod.perfmon = False
-rdo2aod.timeout = 18*3600
-rdo2aod.input = 'Bphys_JpsiPhi'    # defined in TrigValTools/share/TrigValInputs.json  
-
-test = Test.Test()
-test.art_type = 'grid'
-if (not exclude):
-    test.exec_steps = [rdo2aod]
-    test.exec_steps.append(TrigInDetAna()) # Run analysis to produce TrkNtuple
-    test.check_steps = CheckSteps.default_check_steps(test)
-
  
-# Run Tidardict
-if ((not exclude) or postproc ):
-    rdict = TrigInDetdictStep()
-    rdict.args='TIDAdata-run3.dat -f data-hists.root -p 13 -b Test_bin.dat '
-    test.check_steps.append(rdict)
-    rdict2 = TrigInDetdictStep('TrigInDetDict2')
-    rdict2.args='TIDAdata-run3-offline.dat -r Offline  -f data-hists-offline.root -b Test_bin.dat '
-    test.check_steps.append(rdict2)
-
- 
-# Now the comparitor steps
-comp=TrigInDetCompStep('Comp_L2muon','L2','muon')
-test.check_steps.append(comp)
-  
-comp2=TrigInDetCompStep('Comp_EFmuon','EF','muon')
-test.check_steps.append(comp2)
-
-comp3=TrigInDetCompStep('Comp_L2muonLowpt','L2','muon',lowpt=True)
-test.check_steps.append(comp3)
-  
-comp4=TrigInDetCompStep('Comp_EFmuonLowpt','EF','muon',lowpt=True)
-test.check_steps.append(comp4)
-
-comp5=TrigInDetCompStep('Comp_L2muon_off','L2','muon')
-comp5.type = 'offline'
-test.check_steps.append(comp5)
-  
-comp6=TrigInDetCompStep('Comp_EFmuon_off','EF','muon')
-comp6.type = 'offline'
-test.check_steps.append(comp6)
-
-comp7=TrigInDetCompStep('Comp_L2muonLowpt_off','L2','muon',lowpt=True)
-comp7.type = 'offline'
-test.check_steps.append(comp7)
-  
-comp8=TrigInDetCompStep('Comp_EFmuonLowpt_off','EF','muon',lowpt=True)
-comp8.type = 'offline'
-test.check_steps.append(comp8)
-
-# CPU cost steps
-cpucost=TrigInDetCpuCostStep('CpuCostStep1', ftf_times=False)
-test.check_steps.append(cpucost)
-
-cpucost2=TrigInDetCpuCostStep('CpuCostStep2')
-test.check_steps.append(cpucost2)
-
-import sys
-sys.exit(test.run())
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_zmumu_pu40_mt-old.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_bphys_old.py
similarity index 74%
rename from Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_zmumu_pu40_mt-old.py
rename to Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_bphys_old.py
index 59d3c915703..81e88a51941 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_zmumu_pu40_mt-old.py
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_bphys_old.py
@@ -1,11 +1,9 @@
 #!/usr/bin/env python
 
-# art-description: art job for mu_Zmumu_pu40_mt-old
+# art-description: art job for mu_bphys
 # art-type: grid
 # art-include: master/Athena
-# art-input: mc15_13TeV.361107.PowhegPythia8EvtGen_AZNLOCTEQ6L1_Zmumu.recon.RDO.e3601_s2576_s2132_r7143
-# art-input-nfiles: 4
-# art-athena-mt: 4
+# art-athena-mt: 8
 # art-memory: 4096
 # art-html: https://idtrigger-val.web.cern.ch/idtrigger-val/TIDAWeb/TIDAart/?jobdir=
 # art-output: *.txt
@@ -28,7 +26,7 @@
 
 
 from TrigValTools.TrigValSteering import Test, CheckSteps
-from TrigInDetValidation.TrigInDetArtSteps import TrigInDetReco, TrigInDetAna, TrigInDetdictStep, TrigInDetCompStep, TrigInDetCpuCostStep
+from TrigInDetValidation.TrigInDetOldArtSteps import TrigInDetReco, TrigInDetAna, TrigInDetdictStep, TrigInDetCompStep, TrigInDetCpuCostStep
 
 import sys,getopt
 
@@ -55,17 +53,12 @@ for opt,arg in opts:
 
 rdo2aod = TrigInDetReco()
 rdo2aod.slices = ['muon']
-rdo2aod.max_events = 8000 
-rdo2aod.threads = 4
-rdo2aod.concurrent_events = 4
+rdo2aod.max_events = 6000 
+rdo2aod.threads = 8
+rdo2aod.concurrent_events = 8
 rdo2aod.perfmon = False
 rdo2aod.timeout = 18*3600
-if local:
-    rdo2aod.input = 'Zmumu_pu40'    # defined in TrigValTools/share/TrigValInputs.json  
-else:
-    rdo2aod.input = ''
-    rdo2aod.args += '--inputRDOFile=$ArtInFile '
-
+rdo2aod.input = 'Bphys_JpsiPhi'    # defined in TrigValTools/share/TrigValInputs.json  
 
 test = Test.Test()
 test.art_type = 'grid'
@@ -77,7 +70,7 @@ if (not exclude):
  
 # Run Tidardict
 if ((not exclude) or postproc ):
-    rdict = TrigInDetdictStep('TrigInDetDict')
+    rdict = TrigInDetdictStep()
     rdict.args='TIDAdata-run3.dat -f data-hists.root -p 13 -b Test_bin.dat '
     test.check_steps.append(rdict)
     rdict2 = TrigInDetdictStep('TrigInDetDict2')
@@ -92,18 +85,18 @@ test.check_steps.append(comp)
 comp2=TrigInDetCompStep('Comp_EFmuon','EF','muon')
 test.check_steps.append(comp2)
 
-comp3=TrigInDetCompStep('Comp_L2muon_off','L2','muon')
-comp3.type = 'offline'
+comp3=TrigInDetCompStep('Comp_L2muonLowpt','L2','muon',lowpt=True)
 test.check_steps.append(comp3)
-
-comp4=TrigInDetCompStep('Comp_EFmuon_off','EF','muon')
-comp4.type = 'offline'
+  
+comp4=TrigInDetCompStep('Comp_EFmuonLowpt','EF','muon',lowpt=True)
 test.check_steps.append(comp4)
 
-comp5=TrigInDetCompStep('Comp_L2muonLowpt','L2','muon',lowpt=True)
+comp5=TrigInDetCompStep('Comp_L2muon_off','L2','muon')
+comp5.type = 'offline'
 test.check_steps.append(comp5)
   
-comp6=TrigInDetCompStep('Comp_EFmuonLowpt','EF','muon',lowpt=True)
+comp6=TrigInDetCompStep('Comp_EFmuon_off','EF','muon')
+comp6.type = 'offline'
 test.check_steps.append(comp6)
 
 comp7=TrigInDetCompStep('Comp_L2muonLowpt_off','L2','muon',lowpt=True)
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_singlemu_larged0.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_singlemu_larged0.py
index 3fe507c6da7..79a90f3c272 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_singlemu_larged0.py
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_singlemu_larged0.py
@@ -1,9 +1,9 @@
 #!/usr/bin/env python
 
-# art-description: art job for mu_singlemu_larged0_pu
+# art-description: art job for mu_singlemu_larged0
 # art-type: grid
 # art-include: master/Athena
-# art-input: mc15_13TeV.107237.ParticleGenerator_mu_Pt4to100_vertxy20.recon.RDO.e3603_s2726_r7772
+# art-input: mc15_13TeV.107237.ParticleGenerator_mu_Pt4to100_vertxy20.recon.RDO.e3603_s2726_r7728
 # art-input-nfiles: 10
 # art-athena-mt: 8
 # art-memory: 4096
@@ -27,99 +27,28 @@
 # art-output: *.dat 
 
 
-from TrigValTools.TrigValSteering import Test, CheckSteps
-from TrigInDetValidation.TrigInDetArtSteps import TrigInDetReco, TrigInDetAna, TrigInDetdictStep, TrigInDetCompStep, TrigInDetCpuCostStep
+Slices  = ['muon']
+Events  = 20000 
+Threads = 8 
+Slots   = 8
+Input   = 'Single_mu_larged0'    # defined in TrigValTools/share/TrigValInputs.json
+GridFiles=True
 
-import sys,getopt
+Jobs = [ ( "Truth",       " TIDAdata-run3-larged0.dat                    -o data-hists.root -p 13",   "Test_bin_larged0.dat" ),
+         ( "Offline",     " TIDAdata-run3-offline-larged0.dat -r Offline -o data-hists-offline.root", "Test_bin_larged0.dat" ) ]
 
-try:
-    opts, args = getopt.getopt(sys.argv[1:],"lxp",["local"])
-except getopt.GetoptError:
-    print("Usage:  ")
-    print("-l(--local)    run locally with input file from art eos grid-input")
-    print("-x             don't run athena or post post-processing, only plotting")
-    print("-p             run post-processing, even if -x is set")
+Comp = [ ( "L2muon",              "L2muon",      "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTL2-plots " ),
+         ( "L2muon-lowpt",        "L2muonLowpt", "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTL2-plots-lowpt " ),
+         ( "L2muonoffline",       "L2muon",      "data-hists-offline.root", " -c TIDAhisto-panel.dat  -d HLTL2-plots-offline " ),
+         ( "L2muonoffline-lowpt", "L2muonLowpt", "data-hists-offline.root", " -c TIDAhisto-panel.dat  -d HLTL2-plots-lowpt-offline " ),
+         ( "EFmuon",              "EFmuon",      "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTEF-plots " ),
+         ( "EFmuon-lowpt",        "EFmuonLowpt", "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTEF-plots-lowpt " ),
+         ( "EFmuonoffline",       "EFmuon",      "data-hists-offline.root", " -c TIDAhisto-panel.dat  -d HLTEF-plots-offline " ),
+         ( "EFmuonoffline-lowpt", "EFmuonLowpt", "data-hists-offline.root", " -c TIDAhisto-panel.dat  -d HLTEF-plots-lowpt-offline " ) ]
 
 
-local=False
-exclude=False
-postproc=False
-for opt,arg in opts:
-    if opt in ("-l", "--local"):
-        local=True
-    if opt=="-x":
-        exclude=True
-    if opt=="-p":
-        postproc=True
+from AthenaCommon.Include import include 
+include("TrigInDetValidation/TrigInDetValidation_Base.py")
 
 
-rdo2aod = TrigInDetReco()
-rdo2aod.slices = ['muon']
-rdo2aod.max_events = 20000 
-rdo2aod.threads = 8
-rdo2aod.concurrent_events = 8
-rdo2aod.perfmon = False
-rdo2aod.timeout = 18*3600
-if local:
-    rdo2aod.input = 'Single_mu_larged0_pu'    # defined in TrigValTools/share/TrigValInputs.json  
-else:
-    rdo2aod.input = ''
-    rdo2aod.args += '--inputRDOFile=$ArtInFile '
-
-
-test = Test.Test()
-test.art_type = 'grid'
-if (not exclude):
-    test.exec_steps = [rdo2aod]
-    test.exec_steps.append(TrigInDetAna()) # Run analysis to produce TrkNtuple
-    test.check_steps = CheckSteps.default_check_steps(test)
-
  
-# Run Tidardict
-if ((not exclude) or postproc ):
-    rdict = TrigInDetdictStep()
-    rdict.args='TIDAdata-run3.dat -f data-hists.root -p 13 -b Test_bin.dat '
-    test.check_steps.append(rdict)
-    rdict2 = TrigInDetdictStep('TrigInDetDict2')
-    rdict2.args='TIDAdata-run3-offline.dat -r Offline  -f data-hists-offline.root -b Test_bin.dat '
-    test.check_steps.append(rdict2)
-
- 
-# Now the comparitor steps
-comp=TrigInDetCompStep('Comp_L2muon','L2','muon')
-test.check_steps.append(comp)
-  
-comp2=TrigInDetCompStep('Comp_EFmuon','EF','muon')
-test.check_steps.append(comp2)
-
-comp3=TrigInDetCompStep('Comp_L2muonLowpt','L2','muon',lowpt=True)
-test.check_steps.append(comp3)
-  
-comp4=TrigInDetCompStep('Comp_EFmuonLowpt','EF','muon',lowpt=True)
-test.check_steps.append(comp4)
-
-comp5=TrigInDetCompStep('Comp_L2muon_off','L2','muon')
-comp5.type = 'offline'
-test.check_steps.append(comp5)
-  
-comp6=TrigInDetCompStep('Comp_EFmuon_off','EF','muon')
-comp6.type = 'offline'
-test.check_steps.append(comp6)
-
-comp7=TrigInDetCompStep('Comp_L2muonLowpt_off','L2','muon',lowpt=True)
-comp7.type = 'offline'
-test.check_steps.append(comp7)
-  
-comp8=TrigInDetCompStep('Comp_EFmuonLowpt_off','EF','muon',lowpt=True)
-comp8.type = 'offline'
-test.check_steps.append(comp8)
-
-# CPU cost steps
-cpucost=TrigInDetCpuCostStep('CpuCostStep1', ftf_times=False)
-test.check_steps.append(cpucost)
-
-cpucost2=TrigInDetCpuCostStep('CpuCostStep2')
-test.check_steps.append(cpucost2)
-
-import sys
-sys.exit(test.run())
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_singlemu_larged0_old.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_singlemu_larged0_old.py
new file mode 100755
index 00000000000..ae312278201
--- /dev/null
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_singlemu_larged0_old.py
@@ -0,0 +1,125 @@
+#!/usr/bin/env python
+
+# art-description: art job for mu_singlemu_larged0_pu
+# art-type: grid
+# art-include: master/Athena
+# art-input: mc15_13TeV.107237.ParticleGenerator_mu_Pt4to100_vertxy20.recon.RDO.e3603_s2726_r7772
+# art-input-nfiles: 10
+# art-athena-mt: 8
+# art-memory: 4096
+# art-html: https://idtrigger-val.web.cern.ch/idtrigger-val/TIDAWeb/TIDAart/?jobdir=
+# art-output: *.txt
+# art-output: *.log
+# art-output: log.*
+# art-output: *.out
+# art-output: *.err
+# art-output: *.log.tar.gz
+# art-output: *.new
+# art-output: *.json
+# art-output: *.root
+# art-output: *.check*
+# art-output: HLT*
+# art-output: times*
+# art-output: cost-perCall
+# art-output: cost-perEvent
+# art-output: cost-perCall-chain
+# art-output: cost-perEvent-chain
+# art-output: *.dat 
+
+
+from TrigValTools.TrigValSteering import Test, CheckSteps
+from TrigInDetValidation.TrigInDetOldArtSteps import TrigInDetReco, TrigInDetAna, TrigInDetdictStep, TrigInDetCompStep, TrigInDetCpuCostStep
+
+import sys,getopt
+
+try:
+    opts, args = getopt.getopt(sys.argv[1:],"lxp",["local"])
+except getopt.GetoptError:
+    print("Usage:  ")
+    print("-l(--local)    run locally with input file from art eos grid-input")
+    print("-x             don't run athena or post post-processing, only plotting")
+    print("-p             run post-processing, even if -x is set")
+
+
+local=False
+exclude=False
+postproc=False
+for opt,arg in opts:
+    if opt in ("-l", "--local"):
+        local=True
+    if opt=="-x":
+        exclude=True
+    if opt=="-p":
+        postproc=True
+
+
+rdo2aod = TrigInDetReco()
+rdo2aod.slices = ['muon']
+rdo2aod.max_events = 20000 
+rdo2aod.threads = 8
+rdo2aod.concurrent_events = 8
+rdo2aod.perfmon = False
+rdo2aod.timeout = 18*3600
+if local:
+    rdo2aod.input = 'Single_mu_larged0_pu'    # defined in TrigValTools/share/TrigValInputs.json  
+else:
+    rdo2aod.input = ''
+    rdo2aod.args += '--inputRDOFile=$ArtInFile '
+
+
+test = Test.Test()
+test.art_type = 'grid'
+if (not exclude):
+    test.exec_steps = [rdo2aod]
+    test.exec_steps.append(TrigInDetAna()) # Run analysis to produce TrkNtuple
+    test.check_steps = CheckSteps.default_check_steps(test)
+
+ 
+# Run Tidardict
+if ((not exclude) or postproc ):
+    rdict = TrigInDetdictStep()
+    rdict.args='TIDAdata-run3-larged0.dat -f data-hists.root -p 13 -b Test_bin_larged0.dat '
+    test.check_steps.append(rdict)
+    rdict2 = TrigInDetdictStep('TrigInDetDict2')
+    rdict2.args='TIDAdata-run3-offline-larged0.dat -r Offline  -f data-hists-offline.root -b Test_bin_larged0.dat '
+    test.check_steps.append(rdict2)
+
+ 
+# Now the comparitor steps
+comp=TrigInDetCompStep('Comp_L2muon','L2','muon')
+test.check_steps.append(comp)
+  
+comp2=TrigInDetCompStep('Comp_EFmuon','EF','muon')
+test.check_steps.append(comp2)
+
+comp3=TrigInDetCompStep('Comp_L2muonLowpt','L2','muon',lowpt=True)
+test.check_steps.append(comp3)
+  
+comp4=TrigInDetCompStep('Comp_EFmuonLowpt','EF','muon',lowpt=True)
+test.check_steps.append(comp4)
+
+comp5=TrigInDetCompStep('Comp_L2muon_off','L2','muon')
+comp5.type = 'offline'
+test.check_steps.append(comp5)
+  
+comp6=TrigInDetCompStep('Comp_EFmuon_off','EF','muon')
+comp6.type = 'offline'
+test.check_steps.append(comp6)
+
+comp7=TrigInDetCompStep('Comp_L2muonLowpt_off','L2','muon',lowpt=True)
+comp7.type = 'offline'
+test.check_steps.append(comp7)
+  
+comp8=TrigInDetCompStep('Comp_EFmuonLowpt_off','EF','muon',lowpt=True)
+comp8.type = 'offline'
+test.check_steps.append(comp8)
+
+# CPU cost steps
+cpucost=TrigInDetCpuCostStep('CpuCostStep1', ftf_times=False)
+test.check_steps.append(cpucost)
+
+cpucost2=TrigInDetCpuCostStep('CpuCostStep2')
+test.check_steps.append(cpucost2)
+
+import sys
+sys.exit(test.run())
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_singlemu_larged0_pu.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_singlemu_larged0_pu.py
index 1f955a0f5bb..da177d05348 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_singlemu_larged0_pu.py
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_singlemu_larged0_pu.py
@@ -3,7 +3,7 @@
 # art-description: art job for mu_singlemu_larged0_pu
 # art-type: grid
 # art-include: master/Athena
-# art-input: mc15_13TeV.107237.ParticleGenerator_mu_Pt4to100_vertxy20.recon.RDO.e3603_s2726_r7728
+# art-input: mc15_13TeV.107237.ParticleGenerator_mu_Pt4to100_vertxy20.recon.RDO.e3603_s2726_r7772
 # art-input-nfiles: 10
 # art-athena-mt: 8
 # art-memory: 4096
@@ -27,99 +27,28 @@
 # art-output: *.dat 
 
 
-from TrigValTools.TrigValSteering import Test, CheckSteps
-from TrigInDetValidation.TrigInDetArtSteps import TrigInDetReco, TrigInDetAna, TrigInDetdictStep, TrigInDetCompStep, TrigInDetCpuCostStep
+Slices  = ['muon']
+Events  = 20000 
+Threads = 8 
+Slots   = 8
+Input   = 'Single_mu_larged0_pu'    # defined in TrigValTools/share/TrigValInputs.json
+GridFiles=True
 
-import sys,getopt
+Jobs = [ ( "Truth",       " TIDAdata-run3-larged0.dat                    -o data-hists.root -p 13",   "Test_bin_larged0.dat" ),
+         ( "Offline",     " TIDAdata-run3-offline-larged0.dat -r Offline -o data-hists-offline.root", "Test_bin_larged0.dat" ) ]
 
-try:
-    opts, args = getopt.getopt(sys.argv[1:],"lxp",["local"])
-except getopt.GetoptError:
-    print("Usage:  ")
-    print("-l(--local)    run locally with input file from art eos grid-input")
-    print("-x             don't run athena or post post-processing, only plotting")
-    print("-p             run post-processing, even if -x is set")
+Comp = [ ( "L2muon",              "L2muon",      "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTL2-plots " ),
+         ( "L2muon-lowpt",        "L2muonLowpt", "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTL2-plots-lowpt " ),
+         ( "L2muonoffline",       "L2muon",      "data-hists-offline.root", " -c TIDAhisto-panel.dat  -d HLTL2-plots-offline " ),
+         ( "L2muonoffline-lowpt", "L2muonLowpt", "data-hists-offline.root", " -c TIDAhisto-panel.dat  -d HLTL2-plots-lowpt-offline " ),
+         ( "EFmuon",              "EFmuon",      "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTEF-plots " ),
+         ( "EFmuon-lowpt",        "EFmuonLowpt", "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTEF-plots-lowpt " ),
+         ( "EFmuonoffline",       "EFmuon",      "data-hists-offline.root", " -c TIDAhisto-panel.dat  -d HLTEF-plots-offline " ),
+         ( "EFmuonoffline-lowpt", "EFmuonLowpt", "data-hists-offline.root", " -c TIDAhisto-panel.dat  -d HLTEF-plots-lowpt-offline " ) ]
 
 
-local=False
-exclude=False
-postproc=False
-for opt,arg in opts:
-    if opt in ("-l", "--local"):
-        local=True
-    if opt=="-x":
-        exclude=True
-    if opt=="-p":
-        postproc=True
+from AthenaCommon.Include import include 
+include("TrigInDetValidation/TrigInDetValidation_Base.py")
 
 
-rdo2aod = TrigInDetReco()
-rdo2aod.slices = ['muon']
-rdo2aod.max_events = 20000 
-rdo2aod.threads = 8
-rdo2aod.concurrent_events = 8
-rdo2aod.perfmon = False
-rdo2aod.timeout = 18*3600
-if local:
-    rdo2aod.input = 'Single_mu_larged0'    # defined in TrigValTools/share/TrigValInputs.json  
-else:
-    rdo2aod.input = ''
-    rdo2aod.args += '--inputRDOFile=$ArtInFile '
-
-
-test = Test.Test()
-test.art_type = 'grid'
-if (not exclude):
-    test.exec_steps = [rdo2aod]
-    test.exec_steps.append(TrigInDetAna()) # Run analysis to produce TrkNtuple
-    test.check_steps = CheckSteps.default_check_steps(test)
-
  
-# Run Tidardict
-if ((not exclude) or postproc ):
-    rdict = TrigInDetdictStep()
-    rdict.args='TIDAdata-run3.dat -f data-hists.root -p 13 -b Test_bin.dat '
-    test.check_steps.append(rdict)
-    rdict2 = TrigInDetdictStep('TrigInDetDict2')
-    rdict2.args='TIDAdata-run3-offline.dat -r Offline  -f data-hists-offline.root -b Test_bin.dat '
-    test.check_steps.append(rdict2)
-
- 
-# Now the comparitor steps
-comp=TrigInDetCompStep('Comp_L2muon','L2','muon')
-test.check_steps.append(comp)
-  
-comp2=TrigInDetCompStep('Comp_EFmuon','EF','muon')
-test.check_steps.append(comp2)
-
-comp3=TrigInDetCompStep('Comp_L2muonLowpt','L2','muon',lowpt=True)
-test.check_steps.append(comp3)
-  
-comp4=TrigInDetCompStep('Comp_EFmuonLowpt','EF','muon',lowpt=True)
-test.check_steps.append(comp4)
-
-comp5=TrigInDetCompStep('Comp_L2muon_off','L2','muon')
-comp5.type = 'offline'
-test.check_steps.append(comp5)
-  
-comp6=TrigInDetCompStep('Comp_EFmuon_off','EF','muon')
-comp6.type = 'offline'
-test.check_steps.append(comp6)
-
-comp7=TrigInDetCompStep('Comp_L2muonLowpt_off','L2','muon',lowpt=True)
-comp7.type = 'offline'
-test.check_steps.append(comp7)
-  
-comp8=TrigInDetCompStep('Comp_EFmuonLowpt_off','EF','muon',lowpt=True)
-comp8.type = 'offline'
-test.check_steps.append(comp8)
-
-# CPU cost steps
-cpucost=TrigInDetCpuCostStep('CpuCostStep1', ftf_times=False)
-test.check_steps.append(cpucost)
-
-cpucost2=TrigInDetCpuCostStep('CpuCostStep2')
-test.check_steps.append(cpucost2)
-
-import sys
-sys.exit(test.run())
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_singlemu_larged0_pu_old.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_singlemu_larged0_pu_old.py
new file mode 100755
index 00000000000..a3cc45d3f8f
--- /dev/null
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_singlemu_larged0_pu_old.py
@@ -0,0 +1,125 @@
+#!/usr/bin/env python
+
+# art-description: art job for mu_singlemu_larged0_pu
+# art-type: grid
+# art-include: master/Athena
+# art-input: mc15_13TeV.107237.ParticleGenerator_mu_Pt4to100_vertxy20.recon.RDO.e3603_s2726_r7728
+# art-input-nfiles: 10
+# art-athena-mt: 8
+# art-memory: 4096
+# art-html: https://idtrigger-val.web.cern.ch/idtrigger-val/TIDAWeb/TIDAart/?jobdir=
+# art-output: *.txt
+# art-output: *.log
+# art-output: log.*
+# art-output: *.out
+# art-output: *.err
+# art-output: *.log.tar.gz
+# art-output: *.new
+# art-output: *.json
+# art-output: *.root
+# art-output: *.check*
+# art-output: HLT*
+# art-output: times*
+# art-output: cost-perCall
+# art-output: cost-perEvent
+# art-output: cost-perCall-chain
+# art-output: cost-perEvent-chain
+# art-output: *.dat 
+
+
+from TrigValTools.TrigValSteering import Test, CheckSteps
+from TrigInDetValidation.TrigInDetOldArtSteps import TrigInDetReco, TrigInDetAna, TrigInDetdictStep, TrigInDetCompStep, TrigInDetCpuCostStep
+
+import sys,getopt
+
+try:
+    opts, args = getopt.getopt(sys.argv[1:],"lxp",["local"])
+except getopt.GetoptError:
+    print("Usage:  ")
+    print("-l(--local)    run locally with input file from art eos grid-input")
+    print("-x             don't run athena or post post-processing, only plotting")
+    print("-p             run post-processing, even if -x is set")
+
+
+local=False
+exclude=False
+postproc=False
+for opt,arg in opts:
+    if opt in ("-l", "--local"):
+        local=True
+    if opt=="-x":
+        exclude=True
+    if opt=="-p":
+        postproc=True
+
+
+rdo2aod = TrigInDetReco()
+rdo2aod.slices = ['muon']
+rdo2aod.max_events = 20000 
+rdo2aod.threads = 8
+rdo2aod.concurrent_events = 8
+rdo2aod.perfmon = False
+rdo2aod.timeout = 18*3600
+if local:
+    rdo2aod.input = 'Single_mu_larged0'    # defined in TrigValTools/share/TrigValInputs.json  
+else:
+    rdo2aod.input = ''
+    rdo2aod.args += '--inputRDOFile=$ArtInFile '
+
+
+test = Test.Test()
+test.art_type = 'grid'
+if (not exclude):
+    test.exec_steps = [rdo2aod]
+    test.exec_steps.append(TrigInDetAna()) # Run analysis to produce TrkNtuple
+    test.check_steps = CheckSteps.default_check_steps(test)
+
+ 
+# Run Tidardict
+if ((not exclude) or postproc ):
+    rdict = TrigInDetdictStep()
+    rdict.args='TIDAdata-run3-larged0.dat -f data-hists.root -p 13 -b Test_bin_larged0.dat '
+    test.check_steps.append(rdict)
+    rdict2 = TrigInDetdictStep('TrigInDetDict2')
+    rdict2.args='TIDAdata-run3-offline-larged0.dat -r Offline  -f data-hists-offline.root -b Test_bin_larged0.dat '
+    test.check_steps.append(rdict2)
+
+ 
+# Now the comparitor steps
+comp=TrigInDetCompStep('Comp_L2muon','L2','muon')
+test.check_steps.append(comp)
+  
+comp2=TrigInDetCompStep('Comp_EFmuon','EF','muon')
+test.check_steps.append(comp2)
+
+comp3=TrigInDetCompStep('Comp_L2muonLowpt','L2','muon',lowpt=True)
+test.check_steps.append(comp3)
+  
+comp4=TrigInDetCompStep('Comp_EFmuonLowpt','EF','muon',lowpt=True)
+test.check_steps.append(comp4)
+
+comp5=TrigInDetCompStep('Comp_L2muon_off','L2','muon')
+comp5.type = 'offline'
+test.check_steps.append(comp5)
+  
+comp6=TrigInDetCompStep('Comp_EFmuon_off','EF','muon')
+comp6.type = 'offline'
+test.check_steps.append(comp6)
+
+comp7=TrigInDetCompStep('Comp_L2muonLowpt_off','L2','muon',lowpt=True)
+comp7.type = 'offline'
+test.check_steps.append(comp7)
+  
+comp8=TrigInDetCompStep('Comp_EFmuonLowpt_off','EF','muon',lowpt=True)
+comp8.type = 'offline'
+test.check_steps.append(comp8)
+
+# CPU cost steps
+cpucost=TrigInDetCpuCostStep('CpuCostStep1', ftf_times=False)
+test.check_steps.append(cpucost)
+
+cpucost2=TrigInDetCpuCostStep('CpuCostStep2')
+test.check_steps.append(cpucost2)
+
+import sys
+sys.exit(test.run())
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_zmumu_pu40.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_zmumu_pu40.py
index 4e9c9c5a13d..a89bdac87da 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_zmumu_pu40.py
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_zmumu_pu40.py
@@ -28,16 +28,24 @@
 
 
 Slices  = ['muon']
-RunEF   = True
 Events  = 8000 
 Threads = 8 
 Slots   = 8
 Input   = 'Zmumu_pu40'    # defined in TrigValTools/share/TrigValInputs.json
 GridFiles=True
 
-Args = " -p 13 "
-TrackReference = [ 'Truth', 'Offline' ]
-Lowpt          = [ False, True ] 
+Jobs = [ ( "Truth",       " TIDAdata-run3.dat                    -o data-hists.root -p 13" ),
+         ( "Offline",     " TIDAdata-run3-offline.dat -r Offline -o data-hists-offline.root" ) ]
+
+Comp = [ ( "L2muon",              "L2muon",      "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTL2-plots " ),
+         ( "L2muon-lowpt",        "L2muonLowpt", "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTL2-plots-lowpt " ),
+         ( "L2muonoffline",       "L2muon",      "data-hists-offline.root", " -c TIDAhisto-panel.dat  -d HLTL2-plots-offline " ),
+         ( "L2muonoffline-lowpt", "L2muonLowpt", "data-hists-offline.root", " -c TIDAhisto-panel.dat  -d HLTL2-plots-lowpt-offline " ),
+         ( "EFmuon",              "EFmuon",      "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTEF-plots " ),
+         ( "EFmuon-lowpt",        "EFmuonLowpt", "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTEF-plots-lowpt " ),
+         ( "EFmuonoffline",       "EFmuon",      "data-hists-offline.root", " -c TIDAhisto-panel.dat  -d HLTEF-plots-offline " ),
+         ( "EFmuonoffline-lowpt", "EFmuonLowpt", "data-hists-offline.root", " -c TIDAhisto-panel.dat  -d HLTEF-plots-lowpt-offline " ) ]
+
 
 from AthenaCommon.Include import include 
 include("TrigInDetValidation/TrigInDetValidation_Base.py")
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_zmumu_pu40_build.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_zmumu_pu40_build.py
index 93fb82a789b..1467d3d2f4e 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_zmumu_pu40_build.py
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_zmumu_pu40_build.py
@@ -4,67 +4,22 @@
 # art-type: build
 # art-include: master/Athena
 
-import sys,getopt
 
-try:
-    opts, args = getopt.getopt(sys.argv[1:],"lxp",["local"])
-except getopt.GetoptError:
-    print("Usage:  ")
-    print ("-x             don't run athena or post post-processing, only plotting")
-    print ("-p             run post-processing, even if -x is set")
+Slices  = ['muon']
+Events  = 100 
+Threads = 1 
+Slots   = 1
+Input   = 'Zmumu_pu40'    # defined in TrigValTools/share/TrigValInputs.json
+Art_type= 'build'
 
+Jobs = [ ( "Truth",       " TIDAdata-run3.dat                    -o data-hists.root -p 13" ) ]
 
-exclude=False
-postproc=False
-for opt,arg in opts:
-    if opt=="-x":
-        exclude=True
-    if opt=="-p":
-        postproc=True
+Comp = [ ( "L2muon",              "L2muon",      "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTL2-plots " ),
+         ( "EFmuon",              "EFmuon",      "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTEF-plots " ) ]
 
-        
-from TrigValTools.TrigValSteering import Test, CheckSteps
-from TrigInDetValidation.TrigInDetArtSteps import TrigInDetReco, TrigInDetAna, TrigInDetdictStep, TrigInDetCompStep, TrigInDetCpuCostStep
 
-rdo2aod = TrigInDetReco()
-rdo2aod.slices = ['muon']
-rdo2aod.max_events = 100 # TODO: 2000 events
-rdo2aod.threads = 1 # TODO: change to 4
-rdo2aod.concurrent_events = 1 # TODO: change to 4
-rdo2aod.perfmon = False
-rdo2aod.input = 'Zmumu_pu40'   # defined in TrigValTools/share/TrigValInputs.json  
+from AthenaCommon.Include import include 
+include("TrigInDetValidation/TrigInDetValidation_Base.py")
 
 
-test = Test.Test()
-test.art_type = 'build'
-if (not exclude):
-    test.exec_steps = [rdo2aod]
-    test.exec_steps.append(TrigInDetAna()) # Run analysis to produce TrkNtuple
-    test.check_steps = CheckSteps.default_check_steps(test)
-
- 
-# Run Tidardict
-if ((not exclude) or postproc ):
-    rdict = TrigInDetdictStep()
-    rdict.args='TIDAdata-run3.dat -f data-hists.root -p 13 -b Test_bin.dat '
-    test.check_steps.append(rdict)
  
-
-# Now the comparitor steps
-comp=TrigInDetCompStep( 'Comp_L2muon', 'L2', 'muon' )
-comp.flag = 'L2muon'
-test.check_steps.append(comp)
-  
-comp2=TrigInDetCompStep( 'Comp_EFmuon', 'EF', 'muon' )
-comp2.flag = 'EFmuon'
-test.check_steps.append(comp2)
-
-# CPU cost steps
-cpucost=TrigInDetCpuCostStep('CpuCostStep1', ftf_times=False)
-test.check_steps.append(cpucost)
-
-cpucost2=TrigInDetCpuCostStep('CpuCostStep2')
-test.check_steps.append(cpucost2)
-
-import sys
-sys.exit(test.run())
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_zmumu_pu40_build_old.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_zmumu_pu40_build_old.py
new file mode 100755
index 00000000000..be5e11daf87
--- /dev/null
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_zmumu_pu40_build_old.py
@@ -0,0 +1,70 @@
+#!/usr/bin/env python
+
+# art-description: art job for mu_Zmumu_pu40_build
+# art-type: build
+# art-include: master/Athena
+
+import sys,getopt
+
+try:
+    opts, args = getopt.getopt(sys.argv[1:],"lxp",["local"])
+except getopt.GetoptError:
+    print("Usage:  ")
+    print ("-x             don't run athena or post post-processing, only plotting")
+    print ("-p             run post-processing, even if -x is set")
+
+
+exclude=False
+postproc=False
+for opt,arg in opts:
+    if opt=="-x":
+        exclude=True
+    if opt=="-p":
+        postproc=True
+
+        
+from TrigValTools.TrigValSteering import Test, CheckSteps
+from TrigInDetValidation.TrigInDetOldArtSteps import TrigInDetReco, TrigInDetAna, TrigInDetdictStep, TrigInDetCompStep, TrigInDetCpuCostStep
+
+rdo2aod = TrigInDetReco()
+rdo2aod.slices = ['muon']
+rdo2aod.max_events = 100 # TODO: 2000 events
+rdo2aod.threads = 1 # TODO: change to 4
+rdo2aod.concurrent_events = 1 # TODO: change to 4
+rdo2aod.perfmon = False
+rdo2aod.input = 'Zmumu_pu40'   # defined in TrigValTools/share/TrigValInputs.json  
+
+
+test = Test.Test()
+test.art_type = 'build'
+if (not exclude):
+    test.exec_steps = [rdo2aod]
+    test.exec_steps.append(TrigInDetAna()) # Run analysis to produce TrkNtuple
+    test.check_steps = CheckSteps.default_check_steps(test)
+
+ 
+# Run Tidardict
+if ((not exclude) or postproc ):
+    rdict = TrigInDetdictStep()
+    rdict.args='TIDAdata-run3.dat -f data-hists.root -p 13 -b Test_bin.dat '
+    test.check_steps.append(rdict)
+ 
+
+# Now the comparitor steps
+comp=TrigInDetCompStep( 'Comp_L2muon', 'L2', 'muon' )
+comp.flag = 'L2muon'
+test.check_steps.append(comp)
+  
+comp2=TrigInDetCompStep( 'Comp_EFmuon', 'EF', 'muon' )
+comp2.flag = 'EFmuon'
+test.check_steps.append(comp2)
+
+# CPU cost steps
+cpucost=TrigInDetCpuCostStep('CpuCostStep1', ftf_times=False)
+test.check_steps.append(cpucost)
+
+cpucost2=TrigInDetCpuCostStep('CpuCostStep2')
+test.check_steps.append(cpucost2)
+
+import sys
+sys.exit(test.run())
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_zmumu_pu40_old.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_zmumu_pu40_old.py
new file mode 100755
index 00000000000..39175be7de8
--- /dev/null
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_zmumu_pu40_old.py
@@ -0,0 +1,46 @@
+#!/usr/bin/env python
+
+# art-description: art job for mu_Zmumu_pu40
+# art-type: grid
+# art-include: master/Athena
+# art-input: mc15_13TeV.361107.PowhegPythia8EvtGen_AZNLOCTEQ6L1_Zmumu.recon.RDO.e3601_s2576_s2132_r7143
+# art-input-nfiles: 4
+# art-athena-mt: 8
+# art-memory: 4096
+# art-html: https://idtrigger-val.web.cern.ch/idtrigger-val/TIDAWeb/TIDAart/?jobdir=
+# art-output: *.txt
+# art-output: *.log
+# art-output: log.*
+# art-output: *.out
+# art-output: *.err
+# art-output: *.log.tar.gz
+# art-output: *.new
+# art-output: *.json
+# art-output: *.root
+# art-output: *.check*
+# art-output: HLT*
+# art-output: times*
+# art-output: cost-perCall
+# art-output: cost-perEvent
+# art-output: cost-perCall-chain
+# art-output: cost-perEvent-chain
+# art-output: *.dat 
+
+
+Slices  = ['muon']
+RunEF   = True
+Events  = 8000 
+Threads = 8 
+Slots   = 8
+Input   = 'Zmumu_pu40'    # defined in TrigValTools/share/TrigValInputs.json
+GridFiles=True
+
+Args = " -p 13 "
+TrackReference = [ 'Truth', 'Offline' ]
+Lowpt          = [ False, True ] 
+
+from AthenaCommon.Include import include 
+include("TrigInDetValidation/TrigInDetValidation_OldBase.py")
+
+
+ 
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_zmumu_pu40_short.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_zmumu_pu40_short.py
index 296bd53e6e4..6b61a0f3c1c 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_zmumu_pu40_short.py
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_zmumu_pu40_short.py
@@ -28,16 +28,24 @@
 
 
 Slices  = ['muon']
-RunEF   = True
 Events  = 2000 
 Threads = 8 
 Slots   = 8
 Input   = 'Zmumu_pu40'    # defined in TrigValTools/share/TrigValInputs.json
 GridFiles=True
 
-Args = " -p 13 "
-TrackReference = [ 'Truth', 'Offline' ]
-Lowpt          = [ False, True ] 
+Jobs = [ ( "Truth",       " TIDAdata-run3.dat                    -o data-hists.root -p 13" ),
+         ( "Offline",     " TIDAdata-run3-offline.dat -r Offline -o data-hists-offline.root" ) ]
+
+Comp = [ ( "L2muon",              "L2muon",      "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTL2-plots " ),
+         ( "L2muon-lowpt",        "L2muonLowpt", "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTL2-plots-lowpt " ),
+         ( "L2muonoffline",       "L2muon",      "data-hists-offline.root", " -c TIDAhisto-panel.dat  -d HLTL2-plots-offline " ),
+         ( "L2muonoffline-lowpt", "L2muonLowpt", "data-hists-offline.root", " -c TIDAhisto-panel.dat  -d HLTL2-plots-lowpt-offline " ),
+         ( "EFmuon",              "EFmuon",      "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTEF-plots " ),
+         ( "EFmuon-lowpt",        "EFmuonLowpt", "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTEF-plots-lowpt " ),
+         ( "EFmuonoffline",       "EFmuon",      "data-hists-offline.root", " -c TIDAhisto-panel.dat  -d HLTEF-plots-offline " ),
+         ( "EFmuonoffline-lowpt", "EFmuonLowpt", "data-hists-offline.root", " -c TIDAhisto-panel.dat  -d HLTEF-plots-lowpt-offline " ) ]
+
 
 from AthenaCommon.Include import include 
 include("TrigInDetValidation/TrigInDetValidation_Base.py")
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_zmumu_pu40_short_old.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_zmumu_pu40_short_old.py
new file mode 100755
index 00000000000..73924c0f5e9
--- /dev/null
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_zmumu_pu40_short_old.py
@@ -0,0 +1,46 @@
+#!/usr/bin/env python
+
+# art-description: art job for mu_Zmumu_pu40
+# art-type: grid
+# art-include: master/Athena
+# art-input: mc15_13TeV.361107.PowhegPythia8EvtGen_AZNLOCTEQ6L1_Zmumu.recon.RDO.e3601_s2576_s2132_r7143
+# art-input-nfiles: 4
+# art-athena-mt: 8
+# art-memory: 4096
+# art-html: https://idtrigger-val.web.cern.ch/idtrigger-val/TIDAWeb/TIDAart/?jobdir=
+# art-output: *.txt
+# art-output: *.log
+# art-output: log.*
+# art-output: *.out
+# art-output: *.err
+# art-output: *.log.tar.gz
+# art-output: *.new
+# art-output: *.json
+# art-output: *.root
+# art-output: *.check*
+# art-output: HLT*
+# art-output: times*
+# art-output: cost-perCall
+# art-output: cost-perEvent
+# art-output: cost-perCall-chain
+# art-output: cost-perEvent-chain
+# art-output: *.dat 
+
+
+Slices  = ['muon']
+RunEF   = True
+Events  = 2000 
+Threads = 8 
+Slots   = 8
+Input   = 'Zmumu_pu40'    # defined in TrigValTools/share/TrigValInputs.json
+GridFiles=True
+
+Args = " -p 13 "
+TrackReference = [ 'Truth', 'Offline' ]
+Lowpt          = [ False, True ] 
+
+from AthenaCommon.Include import include 
+include("TrigInDetValidation/TrigInDetValidation_OldBase.py")
+
+
+ 
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_zmumu_pu40_st.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_zmumu_pu40_st.py
index 6a5a726e71f..af19f978666 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_zmumu_pu40_st.py
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_zmumu_pu40_st.py
@@ -28,16 +28,24 @@
 
 
 Slices  = ['muon']
-RunEF   = True
 Events  = 2000 
 Threads = 1 
 Slots   = 1
 Input   = 'Zmumu_pu40'    # defined in TrigValTools/share/TrigValInputs.json
 GridFiles=True
 
-Args = " -p 13 "
-TrackReference = [ 'Truth', 'Offline' ]
-Lowpt          = [ False, True ] 
+Jobs = [ ( "Truth",       " TIDAdata-run3.dat                    -o data-hists.root -p 13" ),
+         ( "Offline",     " TIDAdata-run3-offline.dat -r Offline -o data-hists-offline.root" ) ]
+
+Comp = [ ( "L2muon",              "L2muon",      "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTL2-plots " ),
+         ( "L2muon-lowpt",        "L2muonLowpt", "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTL2-plots-lowpt " ),
+         ( "L2muonoffline",       "L2muon",      "data-hists-offline.root", " -c TIDAhisto-panel.dat  -d HLTL2-plots-offline " ),
+         ( "L2muonoffline-lowpt", "L2muonLowpt", "data-hists-offline.root", " -c TIDAhisto-panel.dat  -d HLTL2-plots-lowpt-offline " ),
+         ( "EFmuon",              "EFmuon",      "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTEF-plots " ),
+         ( "EFmuon-lowpt",        "EFmuonLowpt", "data-hists.root",         " -c TIDAhisto-panel.dat  -d HLTEF-plots-lowpt " ),
+         ( "EFmuonoffline",       "EFmuon",      "data-hists-offline.root", " -c TIDAhisto-panel.dat  -d HLTEF-plots-offline " ),
+         ( "EFmuonoffline-lowpt", "EFmuonLowpt", "data-hists-offline.root", " -c TIDAhisto-panel.dat  -d HLTEF-plots-lowpt-offline " ) ]
+
 
 from AthenaCommon.Include import include 
 include("TrigInDetValidation/TrigInDetValidation_Base.py")
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_zmumu_pu40_st_old.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_zmumu_pu40_st_old.py
new file mode 100755
index 00000000000..146fda5462f
--- /dev/null
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_zmumu_pu40_st_old.py
@@ -0,0 +1,46 @@
+#!/usr/bin/env python
+
+# art-description: art job for mu_Zmumu_pu40_st
+# art-type: grid
+# art-include: master/Athena
+# art-input: mc15_13TeV.361107.PowhegPythia8EvtGen_AZNLOCTEQ6L1_Zmumu.recon.RDO.e3601_s2576_s2132_r7143
+# art-input-nfiles: 4
+# art-athena-mt: 4
+# art-memory: 4096
+# art-html: https://idtrigger-val.web.cern.ch/idtrigger-val/TIDAWeb/TIDAart/?jobdir=
+# art-output: *.txt
+# art-output: *.log
+# art-output: log.*
+# art-output: *.out
+# art-output: *.err
+# art-output: *.log.tar.gz
+# art-output: *.new
+# art-output: *.json
+# art-output: *.root
+# art-output: *.check*
+# art-output: HLT*
+# art-output: times*
+# art-output: cost-perCall
+# art-output: cost-perEvent
+# art-output: cost-perCall-chain
+# art-output: cost-perEvent-chain
+# art-output: *.dat 
+
+
+Slices  = ['muon']
+RunEF   = True
+Events  = 2000 
+Threads = 1 
+Slots   = 1
+Input   = 'Zmumu_pu40'    # defined in TrigValTools/share/TrigValInputs.json
+GridFiles=True
+
+Args = " -p 13 "
+TrackReference = [ 'Truth', 'Offline' ]
+Lowpt          = [ False, True ] 
+
+from AthenaCommon.Include import include 
+include("TrigInDetValidation/TrigInDetValidation_OldBase.py")
+
+
+ 
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_tau_ztautau_pu46.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_tau_ztautau_pu46.py
index 8dbd12f05f0..d743d196d53 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_tau_ztautau_pu46.py
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_tau_ztautau_pu46.py
@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 
-# art-description: art job for mu_ztautau_pu46
+# art-description: art job for tau_ztautau_pu46
 # art-type: grid
 # art-include: master/Athena
 # art-athena-mt: 8
@@ -25,70 +25,21 @@
 # art-output: *.dat 
 
 
-from TrigValTools.TrigValSteering import Test, CheckSteps
-from TrigInDetValidation.TrigInDetArtSteps import TrigInDetReco, TrigInDetAna, TrigInDetdictStep, TrigInDetCompStep, TrigInDetCpuCostStep
+Slices  = ['tau']
+Events  = 6000
+Threads = 8 
+Slots   = 8
+Input   = 'Ztautau_pu46'    # defined in TrigValTools/share/TrigValInputs.json  
 
-import sys,getopt
+Jobs = [ ( "Offline",  " TIDAdata-run3-offline.dat -r Offline -o data-hists-offline.root" ),
+         ( "Truth",    " TIDAdata-run3.dat                    -o data-hists.root" ) ]
 
-try:
-    opts, args = getopt.getopt(sys.argv[1:],"lxp",["local"])
-except getopt.GetoptError:
-    print("Usage:  ")
-    print("-l(--local)    run locally with input file from art eos grid-input")
-    print("-x             don't run athena or post post-processing, only plotting")
-    print("-p             run post-processing, even if -x is set")
 
+Comp = [ ( "L2tau",        "L2tau",       "data-hists.root",          " -c TIDAhisto-panel.dat  -d HLTL2-plots " ),
+         ( "EFtau",        "EFtau",       "data-hists.root",          " -c TIDAhisto-panel.dat  -d HLTEF-plots " ),
+         ( "L2tauOff",     "L2tau",       "data-hists-offline.root",  " -c TIDAhisto-panel.dat  -d HLTL2-plots-offline " ),
+         ( "EFtauOff",     "EFtau",       "data-hists-offline.root",  " -c TIDAhisto-panel.dat  -d HLTEF-plots-offline " ) ]
+   
+from AthenaCommon.Include import include 
+include("TrigInDetValidation/TrigInDetValidation_Base.py")
 
-local=False
-exclude=False
-postproc=False
-for opt,arg in opts:
-    if opt in ("-l", "--local"):
-        local=True
-    if opt=="-x":
-        exclude=True
-    if opt=="-p":
-        postproc=True
-
-
-rdo2aod = TrigInDetReco()
-rdo2aod.slices = ['tau']
-rdo2aod.max_events = 6000 
-rdo2aod.threads = 8
-rdo2aod.concurrent_events = 8
-rdo2aod.perfmon = False
-rdo2aod.timeout = 18*3600
-rdo2aod.input = 'Ztautau_pu46'    # defined in TrigValTools/share/TrigValInputs.json  
-
-
-test = Test.Test()
-test.art_type = 'grid'
-if (not exclude):
-    test.exec_steps = [rdo2aod]
-    test.exec_steps.append(TrigInDetAna()) # Run analysis to produce TrkNtuple
-    test.check_steps = CheckSteps.default_check_steps(test)
-
- 
-# Run Tidardict
-if ((not exclude) or postproc ):
-    rdict = TrigInDetdictStep()
-    rdict.args='TIDAdata-run3.dat -f data-hists.root -b Test_bin.dat '
-    test.check_steps.append(rdict)
-
- 
-# Now the comparitor steps
-comp=TrigInDetCompStep('Comp_L2tau','L2','tau')
-test.check_steps.append(comp)
-  
-comp2=TrigInDetCompStep('Comp_EFtau','EF','tau')
-test.check_steps.append(comp2)
-
-# CPU cost steps
-cpucost=TrigInDetCpuCostStep('CpuCostStep1', ftf_times=False)
-test.check_steps.append(cpucost)
-
-cpucost2=TrigInDetCpuCostStep('CpuCostStep2')
-test.check_steps.append(cpucost2)
-
-import sys
-sys.exit(test.run())
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_tau_ztautau_pu46_new.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_tau_ztautau_pu46_new.py
deleted file mode 100755
index 8307c10bbef..00000000000
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_tau_ztautau_pu46_new.py
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/usr/bin/env python
-
-# art-description: art job for tau_ztautau_pu46_new
-# art-type: grid
-# art-include: master/Athena
-# art-athena-mt: 8
-# art-memory: 4096
-# art-html: https://idtrigger-val.web.cern.ch/idtrigger-val/TIDAWeb/TIDAart/?jobdir=
-# art-output: *.txt
-# art-output: *.log
-# art-output: log.*
-# art-output: *.out
-# art-output: *.err
-# art-output: *.log.tar.gz
-# art-output: *.new
-# art-output: *.json
-# art-output: *.root
-# art-output: *.check*
-# art-output: HLT*
-# art-output: times*
-# art-output: cost-perCall
-# art-output: cost-perEvent
-# art-output: cost-perCall-chain
-# art-output: cost-perEvent-chain
-# art-output: *.dat 
-
-
-Slices  = ['tau']
-Events  = 6000
-Threads = 8 
-Slots   = 8
-Input   = 'Ztautau_pu46'    # defined in TrigValTools/share/TrigValInputs.json  
-
-Jobs = [ ( "Offline",  " TIDAdata-run3-offline.dat -o data-hists-offline.root" ),
-         ( "Truth",    " TIDAdata-run3.dat         -o data-hists.root" ) ]
-
-
-Comp = [ ( "L2tau",        "L2tau",       "data-hists.root",          " -c TIDAhisto-panel.dat  -d HLTL2-plots " ),
-         ( "EFtau",        "EFtau",       "data-hists.root",          " -c TIDAhisto-panel.dat  -d HLTEF-plots " ),
-         ( "L2tauOff",     "L2tau",       "data-hists-offline.root",  " -c TIDAhisto-panel.dat  -d HLTL2-plots-offline " ),
-         ( "EFtauOff",     "EFtau",       "data-hists-offline.root",  " -c TIDAhisto-panel.dat  -d HLTEF-plots-offline " ) ]
-   
-from AthenaCommon.Include import include 
-include("TrigInDetValidation/TrigInDetValidation_NewBase.py")
-
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_tau_ztautau_pu46_old.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_tau_ztautau_pu46_old.py
new file mode 100755
index 00000000000..b96643db6ae
--- /dev/null
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_tau_ztautau_pu46_old.py
@@ -0,0 +1,94 @@
+#!/usr/bin/env python
+
+# art-description: art job for mu_ztautau_pu46
+# art-type: grid
+# art-include: master/Athena
+# art-athena-mt: 8
+# art-memory: 4096
+# art-html: https://idtrigger-val.web.cern.ch/idtrigger-val/TIDAWeb/TIDAart/?jobdir=
+# art-output: *.txt
+# art-output: *.log
+# art-output: log.*
+# art-output: *.out
+# art-output: *.err
+# art-output: *.log.tar.gz
+# art-output: *.new
+# art-output: *.json
+# art-output: *.root
+# art-output: *.check*
+# art-output: HLT*
+# art-output: times*
+# art-output: cost-perCall
+# art-output: cost-perEvent
+# art-output: cost-perCall-chain
+# art-output: cost-perEvent-chain
+# art-output: *.dat 
+
+
+from TrigValTools.TrigValSteering import Test, CheckSteps
+from TrigInDetValidation.TrigInDetOldArtSteps import TrigInDetReco, TrigInDetAna, TrigInDetdictStep, TrigInDetCompStep, TrigInDetCpuCostStep
+
+import sys,getopt
+
+try:
+    opts, args = getopt.getopt(sys.argv[1:],"lxp",["local"])
+except getopt.GetoptError:
+    print("Usage:  ")
+    print("-l(--local)    run locally with input file from art eos grid-input")
+    print("-x             don't run athena or post post-processing, only plotting")
+    print("-p             run post-processing, even if -x is set")
+
+
+local=False
+exclude=False
+postproc=False
+for opt,arg in opts:
+    if opt in ("-l", "--local"):
+        local=True
+    if opt=="-x":
+        exclude=True
+    if opt=="-p":
+        postproc=True
+
+
+rdo2aod = TrigInDetReco()
+rdo2aod.slices = ['tau']
+rdo2aod.max_events = 6000 
+rdo2aod.threads = 8
+rdo2aod.concurrent_events = 8
+rdo2aod.perfmon = False
+rdo2aod.timeout = 18*3600
+rdo2aod.input = 'Ztautau_pu46'    # defined in TrigValTools/share/TrigValInputs.json  
+
+
+test = Test.Test()
+test.art_type = 'grid'
+if (not exclude):
+    test.exec_steps = [rdo2aod]
+    test.exec_steps.append(TrigInDetAna()) # Run analysis to produce TrkNtuple
+    test.check_steps = CheckSteps.default_check_steps(test)
+
+ 
+# Run Tidardict
+if ((not exclude) or postproc ):
+    rdict = TrigInDetdictStep()
+    rdict.args='TIDAdata-run3.dat -f data-hists.root -b Test_bin.dat '
+    test.check_steps.append(rdict)
+
+ 
+# Now the comparitor steps
+comp=TrigInDetCompStep('Comp_L2tau','L2','tau')
+test.check_steps.append(comp)
+  
+comp2=TrigInDetCompStep('Comp_EFtau','EF','tau')
+test.check_steps.append(comp2)
+
+# CPU cost steps
+cpucost=TrigInDetCpuCostStep('CpuCostStep1', ftf_times=False)
+test.check_steps.append(cpucost)
+
+cpucost2=TrigInDetCpuCostStep('CpuCostStep2')
+test.check_steps.append(cpucost2)
+
+import sys
+sys.exit(test.run())
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_tau_ztautau_pu46_st.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_tau_ztautau_pu46_st.py
index c89cacfa0b7..27f1c21df5b 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_tau_ztautau_pu46_st.py
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_tau_ztautau_pu46_st.py
@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 
-# art-description: art job for mu_ztautau_pu46_st
+# art-description: art job for tau_ztautau_pu46_st
 # art-type: grid
 # art-include: master/Athena
 # art-athena-mt: 4
@@ -25,70 +25,21 @@
 # art-output: *.dat 
 
 
-from TrigValTools.TrigValSteering import Test, CheckSteps
-from TrigInDetValidation.TrigInDetArtSteps import TrigInDetReco, TrigInDetAna, TrigInDetdictStep, TrigInDetCompStep, TrigInDetCpuCostStep
+Slices  = ['tau']
+Events  = 6000
+Threads = 1 
+Slots   = 1
+Input   = 'Ztautau_pu46'    # defined in TrigValTools/share/TrigValInputs.json  
 
-import sys,getopt
+Jobs = [ ( "Offline",  " TIDAdata-run3-offline.dat -r Offline -o data-hists-offline.root" ),
+         ( "Truth",    " TIDAdata-run3.dat                    -o data-hists.root" ) ]
 
-try:
-    opts, args = getopt.getopt(sys.argv[1:],"lxp",["local"])
-except getopt.GetoptError:
-    print("Usage:  ")
-    print("-l(--local)    run locally with input file from art eos grid-input")
-    print("-x             don't run athena or post post-processing, only plotting")
-    print("-p             run post-processing, even if -x is set")
 
+Comp = [ ( "L2tau",        "L2tau",       "data-hists.root",          " -c TIDAhisto-panel.dat  -d HLTL2-plots " ),
+         ( "EFtau",        "EFtau",       "data-hists.root",          " -c TIDAhisto-panel.dat  -d HLTEF-plots " ),
+         ( "L2tauOff",     "L2tau",       "data-hists-offline.root",  " -c TIDAhisto-panel.dat  -d HLTL2-plots-offline " ),
+         ( "EFtauOff",     "EFtau",       "data-hists-offline.root",  " -c TIDAhisto-panel.dat  -d HLTEF-plots-offline " ) ]
+   
+from AthenaCommon.Include import include 
+include("TrigInDetValidation/TrigInDetValidation_Base.py")
 
-local=False
-exclude=False
-postproc=False
-for opt,arg in opts:
-    if opt in ("-l", "--local"):
-        local=True
-    if opt=="-x":
-        exclude=True
-    if opt=="-p":
-        postproc=True
-
-
-rdo2aod = TrigInDetReco()
-rdo2aod.slices = ['tau']
-rdo2aod.max_events = 6000 
-rdo2aod.threads = 1
-rdo2aod.concurrent_events = 1
-rdo2aod.perfmon = False
-rdo2aod.timeout = 18*3600
-rdo2aod.input = 'Ztautau_pu46'    # defined in TrigValTools/share/TrigValInputs.json  
-
-
-test = Test.Test()
-test.art_type = 'grid'
-if (not exclude):
-    test.exec_steps = [rdo2aod]
-    test.exec_steps.append(TrigInDetAna()) # Run analysis to produce TrkNtuple
-    test.check_steps = CheckSteps.default_check_steps(test)
-
- 
-# Run Tidardict
-if ((not exclude) or postproc ):
-    rdict = TrigInDetdictStep()
-    rdict.args='TIDAdata-run3.dat -f data-hists.root -b Test_bin.dat '
-    test.check_steps.append(rdict)
-
- 
-# Now the comparitor steps
-comp=TrigInDetCompStep('Comp_L2tau','L2','tau')
-test.check_steps.append(comp)
-  
-comp2=TrigInDetCompStep('Comp_EFtau','EF','tau')
-test.check_steps.append(comp2)
-
-# CPU cost steps
-cpucost=TrigInDetCpuCostStep('CpuCostStep1', ftf_times=False)
-test.check_steps.append(cpucost)
-
-cpucost2=TrigInDetCpuCostStep('CpuCostStep2')
-test.check_steps.append(cpucost2)
-
-import sys
-sys.exit(test.run())
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_tau_ztautau_pu46_st_old.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_tau_ztautau_pu46_st_old.py
new file mode 100755
index 00000000000..2eed16f4321
--- /dev/null
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_tau_ztautau_pu46_st_old.py
@@ -0,0 +1,94 @@
+#!/usr/bin/env python
+
+# art-description: art job for mu_ztautau_pu46_st
+# art-type: grid
+# art-include: master/Athena
+# art-athena-mt: 4
+# art-memory: 4096
+# art-html: https://idtrigger-val.web.cern.ch/idtrigger-val/TIDAWeb/TIDAart/?jobdir=
+# art-output: *.txt
+# art-output: *.log
+# art-output: log.*
+# art-output: *.out
+# art-output: *.err
+# art-output: *.log.tar.gz
+# art-output: *.new
+# art-output: *.json
+# art-output: *.root
+# art-output: *.check*
+# art-output: HLT*
+# art-output: times*
+# art-output: cost-perCall
+# art-output: cost-perEvent
+# art-output: cost-perCall-chain
+# art-output: cost-perEvent-chain
+# art-output: *.dat 
+
+
+from TrigValTools.TrigValSteering import Test, CheckSteps
+from TrigInDetValidation.TrigInDetOldArtSteps import TrigInDetReco, TrigInDetAna, TrigInDetdictStep, TrigInDetCompStep, TrigInDetCpuCostStep
+
+import sys,getopt
+
+try:
+    opts, args = getopt.getopt(sys.argv[1:],"lxp",["local"])
+except getopt.GetoptError:
+    print("Usage:  ")
+    print("-l(--local)    run locally with input file from art eos grid-input")
+    print("-x             don't run athena or post post-processing, only plotting")
+    print("-p             run post-processing, even if -x is set")
+
+
+local=False
+exclude=False
+postproc=False
+for opt,arg in opts:
+    if opt in ("-l", "--local"):
+        local=True
+    if opt=="-x":
+        exclude=True
+    if opt=="-p":
+        postproc=True
+
+
+rdo2aod = TrigInDetReco()
+rdo2aod.slices = ['tau']
+rdo2aod.max_events = 6000 
+rdo2aod.threads = 1
+rdo2aod.concurrent_events = 1
+rdo2aod.perfmon = False
+rdo2aod.timeout = 18*3600
+rdo2aod.input = 'Ztautau_pu46'    # defined in TrigValTools/share/TrigValInputs.json  
+
+
+test = Test.Test()
+test.art_type = 'grid'
+if (not exclude):
+    test.exec_steps = [rdo2aod]
+    test.exec_steps.append(TrigInDetAna()) # Run analysis to produce TrkNtuple
+    test.check_steps = CheckSteps.default_check_steps(test)
+
+ 
+# Run Tidardict
+if ((not exclude) or postproc ):
+    rdict = TrigInDetdictStep()
+    rdict.args='TIDAdata-run3.dat -f data-hists.root -b Test_bin.dat '
+    test.check_steps.append(rdict)
+
+ 
+# Now the comparitor steps
+comp=TrigInDetCompStep('Comp_L2tau','L2','tau')
+test.check_steps.append(comp)
+  
+comp2=TrigInDetCompStep('Comp_EFtau','EF','tau')
+test.check_steps.append(comp2)
+
+# CPU cost steps
+cpucost=TrigInDetCpuCostStep('CpuCostStep1', ftf_times=False)
+test.check_steps.append(cpucost)
+
+cpucost2=TrigInDetCpuCostStep('CpuCostStep2')
+test.check_steps.append(cpucost2)
+
+import sys
+sys.exit(test.run())
-- 
GitLab