diff --git a/Trigger/TrigAnalysis/TrigInDetAnalysisExample/TrigInDetAnalysisExample/T_AnalysisConfig_Tier0.h b/Trigger/TrigAnalysis/TrigInDetAnalysisExample/TrigInDetAnalysisExample/T_AnalysisConfig_Tier0.h
index 98d927f664e6097d2a9db064c3e3bbc559598446..5fbc5a9b28418e85ef58baf382e6a3125e27855f 100644
--- a/Trigger/TrigAnalysis/TrigInDetAnalysisExample/TrigInDetAnalysisExample/T_AnalysisConfig_Tier0.h
+++ b/Trigger/TrigAnalysis/TrigInDetAnalysisExample/TrigInDetAnalysisExample/T_AnalysisConfig_Tier0.h
@@ -87,8 +87,6 @@
 
 
 
-
-
 template<typename T>
 void HighestPTOnly( std::vector<T*>& tracks ) { 
 
@@ -171,7 +169,8 @@ public:
     m_runPurity(false),
     m_shifter(false),
     m_pTthreshold(0),
-    m_first(true)
+    m_first(true),
+    m_containTracks(false)
   {
     m_event = new TIDA::Event();
     m_chainNames.push_back(testChainName);
@@ -189,6 +188,8 @@ public:
 
     std::cout << "\tpost:  " << chain.post()          << std::endl; 
     std::cout << "\tpt:    " << chain.postvalue("pt") << std::endl;
+
+    std::cout << "\tcontainTracks: " << m_containTracks << std::endl; 
 #endif
     
     m_testType = testType;
@@ -202,6 +203,8 @@ public:
 
   void useBeamCondSvc( bool b ) { m_useBeamCondSvc = b; }
 
+  void containTracks( bool b ) { m_containTracks = b; }
+
 public:
 
   Analysis_Tier0* _analysis;
@@ -904,7 +907,7 @@ protected:
 
         m_selectorRef->clear();
 
-	if ( this->filterOnRoi() ) filterRef.setRoi( &chain.rois().at(iroi).roi() );
+	if ( this->filterOnRoi() ) { filterRef.setRoi( &chain.rois().at(iroi).roi() ); filterRef.containtracks( m_containTracks ); }
 	else                       filterRef.setRoi( 0 );
 
         test_tracks.clear();
@@ -1171,7 +1174,6 @@ protected:
 	  m_associator->match( ref_tracks, test_tracks );
 	 
 	  //	  std::cout << "SUTT: execute : N tracks " << ref_tracks.size() << " " << test_tracks.size() << std::endl; 
-
 	  
 	  _analysis->execute( ref_tracks, test_tracks, m_associator );
 	  
@@ -1494,6 +1496,8 @@ protected:
 
   bool   m_first;
   
+  bool   m_containTracks;
+
 };
 
 
diff --git a/Trigger/TrigAnalysis/TrigInDetAnalysisExample/TrigInDetAnalysisExample/TrigTestBase.h b/Trigger/TrigAnalysis/TrigInDetAnalysisExample/TrigInDetAnalysisExample/TrigTestBase.h
index 01b23647325aa6870c724c880ffd6b48335b8909..b0739f1fa7c0d05bb9648f701a6f05e81ea3a430 100644
--- a/Trigger/TrigAnalysis/TrigInDetAnalysisExample/TrigInDetAnalysisExample/TrigTestBase.h
+++ b/Trigger/TrigAnalysis/TrigInDetAnalysisExample/TrigInDetAnalysisExample/TrigTestBase.h
@@ -164,6 +164,9 @@ protected:
   /// additional string for the histogram directory
   std::string  m_sliceTag;
 
+  /// do we want basic, or rigorous roi track containment
+  bool         m_containTracks;
+
 };
 
 
diff --git a/Trigger/TrigAnalysis/TrigInDetAnalysisExample/TrigInDetAnalysisExample/TrigTestMonToolAC.h b/Trigger/TrigAnalysis/TrigInDetAnalysisExample/TrigInDetAnalysisExample/TrigTestMonToolAC.h
index 8588a1583828d2b29070441dabfba487966f9668..19a4b81992e944aa44b9461e8386fe4a2e99a69a 100644
--- a/Trigger/TrigAnalysis/TrigInDetAnalysisExample/TrigInDetAnalysisExample/TrigTestMonToolAC.h
+++ b/Trigger/TrigAnalysis/TrigInDetAnalysisExample/TrigInDetAnalysisExample/TrigTestMonToolAC.h
@@ -131,6 +131,7 @@ public:
 
   bool m_requireDecision;
   
+  bool m_containTracks;
 };
 
 
diff --git a/Trigger/TrigAnalysis/TrigInDetAnalysisExample/src/Analysis_Tier0.cxx b/Trigger/TrigAnalysis/TrigInDetAnalysisExample/src/Analysis_Tier0.cxx
index 7c85024c41cbecbbc5d81003b90c47b0cb81bcb1..c024e3faabb045646d967b4bf034dba40e11ca87 100644
--- a/Trigger/TrigAnalysis/TrigInDetAnalysisExample/src/Analysis_Tier0.cxx
+++ b/Trigger/TrigAnalysis/TrigInDetAnalysisExample/src/Analysis_Tier0.cxx
@@ -454,7 +454,7 @@ void Analysis_Tier0::execute(const std::vector<TIDA::Track*>& referenceTracks,
     h_chain->Fill(2.5);
 
 
-    if(test){
+    if (test) {
 
       h_chain->Fill(3.5);
 
diff --git a/Trigger/TrigAnalysis/TrigInDetAnalysisExample/src/TrigTestBase.cxx b/Trigger/TrigAnalysis/TrigInDetAnalysisExample/src/TrigTestBase.cxx
index 912cf0dfd9d34a30505ec5a0a786af4f474238ff..ddb76ff028d8a8f80a03c508b3888ec63d6465d6 100644
--- a/Trigger/TrigAnalysis/TrigInDetAnalysisExample/src/TrigTestBase.cxx
+++ b/Trigger/TrigAnalysis/TrigInDetAnalysisExample/src/TrigTestBase.cxx
@@ -37,7 +37,8 @@ TrigTestBase::TrigTestBase(const std::string & type, const std::string & name, c
      m_runPurity(false),
      m_shifter(false),
      m_shifterChains(1),
-     m_sliceTag("")
+     m_sliceTag(""),
+     m_containTracks(false)
 {
   msg(MSG::INFO) << "TrigTestBase::TrigTestBase() compiled: " << __DATE__ << " " << __TIME__ << endmsg;
 
@@ -68,6 +69,8 @@ TrigTestBase::TrigTestBase(const std::string & type, const std::string & name, c
   declareProperty( "sctHolesOffline",   m_sctHolesOffline   =  20 ); // essentially no limit
   declareProperty( "siHolesOffline",    m_siHolesOffline    =  2 );  // npix holes + nsi holes <= 2 ( not degrees of freedom ! )   
 
+  declareProperty( "ContainTracks",     m_containTracks     = false );  // use only basic track containment
+
   declareProperty( "trtHitsOffline",    m_trtHitsOffline    = -2 );
   declareProperty( "strawHitsOffline",  m_strawHitsOffline  = -2 );
 
@@ -357,7 +360,7 @@ StatusCode TrigTestBase::book(bool newEventsBlock, bool newLumiBlock, bool newRu
 
 	dynamic_cast<AnalysisConfig_Tier0*>(m_sequences.back())->setRunPurity(m_runPurity);
 	dynamic_cast<AnalysisConfig_Tier0*>(m_sequences.back())->setShifter(m_shifter);
-
+	dynamic_cast<AnalysisConfig_Tier0*>(m_sequences.back())->containTracks(m_containTracks);
 
 	std::string highestPT_str = "";
 	std::string vtxindex_str  = "";
diff --git a/Trigger/TrigAnalysis/TrigInDetAnalysisExample/src/TrigTestMonToolAC.cxx b/Trigger/TrigAnalysis/TrigInDetAnalysisExample/src/TrigTestMonToolAC.cxx
index f0d700ec26bfe9015c580583d4e30ceffe64c706..3c8cf6dd17c24d1f720657f49de56b5795d4cb69 100644
--- a/Trigger/TrigAnalysis/TrigInDetAnalysisExample/src/TrigTestMonToolAC.cxx
+++ b/Trigger/TrigAnalysis/TrigInDetAnalysisExample/src/TrigTestMonToolAC.cxx
@@ -35,7 +35,8 @@ TrigTestMonToolAC::TrigTestMonToolAC(const std::string & type, const std::string
      m_firstRun(true),
      m_keepAllEvents(false),
      m_fileopen(false),
-     m_requireDecision(false)
+     m_requireDecision(false),
+     m_containTracks(false)
 {
   msg(MSG::WARNING) << "TrigTestMonToolAC::TrigTestMonToolAC() compiled: " << __DATE__ << " " << __TIME__ << endmsg;
 
@@ -70,7 +71,8 @@ TrigTestMonToolAC::TrigTestMonToolAC(const std::string & type, const std::string
   declareProperty( "matchR",   m_matchR   = 0.1 );
   declareProperty( "matchPhi", m_matchPhi = 0.1 );
 
-  //  declareProperty( "chainNames",        m_chainNames );
+  declareProperty( "ContainTracks", m_containTracks = false );
+
   declareProperty( "ntupleChainNames",  m_ntupleChainNames );
   declareProperty( "releaseMetaData",   m_releaseMetaData );
 
@@ -271,8 +273,15 @@ StatusCode TrigTestMonToolAC::book(bool newEventsBlock, bool newLumiBlock, bool
 							dR_matcher,
 							new Analysis_Tier0(m_chainNames.at(i), 1000., 2.5, 1.5, 1.5 ) ) );
 	
+	/// add the meta data
+	
 	m_sequences.back()->releaseData(m_releaseMetaData);	
 	
+	/// should the tracks be completely contained ? 
+
+	dynamic_cast<AnalysisConfig_Tier0*>(m_sequences.back())->containTracks( m_containTracks );	
+
+
       }
       
     }
diff --git a/Trigger/TrigAnalysis/TrigInDetAnalysisUser/scripts/TIDArun-art.sh b/Trigger/TrigAnalysis/TrigInDetAnalysisUser/scripts/TIDArun-art.sh
index 58413ab71706da5e096fbdefee0ea280b8df4b46..ae1e9c870cd22c31d35f2c55e9d6f0f39eabf243 100755
--- a/Trigger/TrigAnalysis/TrigInDetAnalysisUser/scripts/TIDArun-art.sh
+++ b/Trigger/TrigAnalysis/TrigInDetAnalysisUser/scripts/TIDArun-art.sh
@@ -15,7 +15,7 @@ BASEREFDIR=$BASEDIR/TrigInDetValidationReference
 
 if [ -e TrkNtuple-0000.root ]; then 
 
-    RELEASE=$(TIDAreader.exe -ro TrkNtuple-0000.root | grep release | awk '{print $2}' | head -1)
+    RELEASE=$(TIDAreader -ro TrkNtuple-0000.root | grep release | awk '{print $2}' | head -1)
 
     REFDIR=$BASEREFDIR/share
 
@@ -70,10 +70,10 @@ if [ -e TrkNtuple-0000.root ]; then
     if [ "x$EXPERT" == "x" ]; then 
         get_files -data TIDAhistos-vtx.dat
         echo -e "\nrunning comparitor " $(date) "\n"
-        TIDAcomparitor.exe $* $NOREF
+        TIDAcomparitor $* $NOREF
     else
         echo -e "\nrunning cpucost " $(date) "\n"
-        TIDAcpucost.exe $* $NOREF
+        TIDAcpucost $* $NOREF
     fi
 
     echo "finished postprocessing"
diff --git a/Trigger/TrigAnalysis/TrigInDetAnalysisUser/share/TIDAdata_chains.dat b/Trigger/TrigAnalysis/TrigInDetAnalysisUser/share/TIDAdata_chains.dat
index 98dfecdc92cfd044a91059fa0b5ac53fbd4972f0..8e42be954c687113e93f7bdc454090b19278d04d 100644
--- a/Trigger/TrigAnalysis/TrigInDetAnalysisUser/share/TIDAdata_chains.dat
+++ b/Trigger/TrigAnalysis/TrigInDetAnalysisUser/share/TIDAdata_chains.dat
@@ -4,9 +4,6 @@ testChains = {
     //  "Electrons",
     //  "Truth",
 
-    "Truth",
-
-    
     // "L2_e22vh_medium_IDTrkNoCut:TrigL2SiTrackFinder_eGamma:0",
     // "L2_e22vh_medium_IDTrkNoCut:TrigL2SiTrackFinder_eGamma:1",
     // "L2_e22vh_medium_IDTrkNoCut:TrigL2SiTrackFinder_eGamma:2",
diff --git a/Trigger/TrigAnalysis/TrigInDetAnalysisUtils/TrigInDetAnalysisUtils/Filters.h b/Trigger/TrigAnalysis/TrigInDetAnalysisUtils/TrigInDetAnalysisUtils/Filters.h
index e1b354a98b7cbca02058d91acff42e29041e97ed..eceaf142d1cbd6a197160d0a5cac2ef07fd639c1 100644
--- a/Trigger/TrigAnalysis/TrigInDetAnalysisUtils/TrigInDetAnalysisUtils/Filters.h
+++ b/Trigger/TrigAnalysis/TrigInDetAnalysisUtils/TrigInDetAnalysisUtils/Filters.h
@@ -230,7 +230,7 @@ public:
   Filter_Combined( TrackFilter* f1, TrackFilter* f2) : 
     mf1(f1), mf2(f2), m_roi(0), 
     m_debugPrintout(false), 
-    mcontain(true)
+    m_contain(false)
   { } 
 
   void setRoi( TIDARoiDescriptor* r ) { m_roi = r; } 
@@ -239,7 +239,7 @@ public:
   /// set / unset the flag to determine whether tracks 
   /// should be fully contained in the RoI or not 
 
-  void containtracks( bool b=true ) { mcontain=b; }
+  void containtracks( bool b=true ) { m_contain=b; }
 
 
   bool contains( const TIDA::Track* t, const TIDARoiDescriptor* r ) const { 
@@ -269,7 +269,7 @@ public:
       ///     within an Roi but failthis condition
       bool contained_eta = ( t->eta()<r->etaPlus() && t->eta()>r->etaMinus() );
       
-      if ( mcontain ) { 
+      if ( m_contain ) { 
 
 	///  includes calculation of approximate z position of the 
 	///  track at radius r and test if track within that z position at radius r 
@@ -380,7 +380,7 @@ private:
 
   bool  m_debugPrintout;
 
-  bool   mcontain;
+  bool   m_contain;
 
 };
 
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_all_ttbar_pu40.sh b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_all_ttbar_pu40.sh
index 66c21b29c778bcf579a8ae00d0620959db7d25b9..8e6ccff91a367c7c45cd91e17ee6c2deaa51cdc0 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_all_ttbar_pu40.sh
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_all_ttbar_pu40.sh
@@ -1,7 +1,6 @@
 #!/bin/bash
 # art-description: art job for all_ttbar_pu40
 # art-type: grid
-# art-output: pid
 # art-output: HLTEF-plots-electron
 # art-output: HLTL2-plots-electron
 # art-output: HLTEF-plots-electron-lowpt
@@ -33,6 +32,49 @@
 RED='\033[0;31m'
 NC='\033[0m'
 
+
+function usage { 
+    [ $# -gt 1 ] && echo $2
+
+    echo "Usage: $(basename $0) [args]"
+    echo 
+    echo "-d, --directory  DIRECTORY \t run from the specified directory"
+    echo "-l, --local                \t run locally rather than on the grid"
+    echo "-x, --exclude              \t don't run athena or the post processing, only the plotting stages"
+    echo "-p, --post                 \t force running of post processingthe post processing, even if -x is set"
+    echo "-f, --force                \t disable protection against rerunning where you shouldn't be"
+    echo "-h, --help                 \t this help"
+    [ $# -gt 0 ] && exit $1
+    exit 0
+}
+
+args=$(getopt -ql "searchpath:" -o "d:lxph" -- "$@")
+
+# eval set -- "$args"
+
+RUNATHENA=1
+RUNPOST=-1
+DIRECTORY=
+LOCAL=0
+FORCE=0
+
+while [ $# -ge 1 ]; do
+    case "$1" in
+        --) shift ; break ;;
+        -d | --directory )  if [ $# -lt 2 ]; then usage; fi ; DIRECTORY="$2" ; shift ;;
+        -x | --exclude )    RUNATHENA=0 ; [ $RUNPOST -eq -1 ] && RUNPOST=0;;
+        -p | --post )       RUNPOST=1 ;;
+        -f | --force )      FORCE=1 ;;
+        -l | --local )      LOCAL=1 ;;
+        -h | --help )       usage ;;
+     esac
+    shift
+done
+
+
+[ $RUNPOST -eq 0 ] || RUNPOST=1
+
+
 # generate a time stamp
 
 function timestamp { printf "${RED}Timestamp: $1 $(date)${NC}\n"  ; }
@@ -161,6 +203,7 @@ function saveoutput {
 
 
 
+ls -l
 
 
 
@@ -168,7 +211,7 @@ export RTTJOBNAME=TrigInDetValidation_all_ttbar_pu40
 
 jobList=
 
-if [ $# -gt 0 -a "x$1" == "x--local" ]; then
+if [ $LOCAL -eq 1 ]; then
       echo "running locally"
       # get number of files 
       NFILES=$(grep "^#[[:space:]]*art-input-nfiles:" $0 | sed 's|.*art-input-nfiles:[[:space:]]*||g')
@@ -179,9 +222,12 @@ else
       fileList="['${ArtInFile//,/', '}']"
       _jobList="'../${ArtInFile//,/' '../}'"
       echo "List of files = $fileList"
-      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; done
+      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; echo "ART running over $git"  ; done
 fi
 
+
+if [ $RUNATHENA -eq 1 ]; then 
+
 get_files -jo             TrigInDetValidation/TrigInDetValidation_RTT_topOptions_AllSlices.py
 
 
@@ -196,7 +242,7 @@ for git in $jobList ; do
 
     ARGS="$git;EventMax=1000;doIDNewTracking=True;rec.doFloatingPointException.set_Value_and_Lock(False)"
  
-    echo "ARGS: $ARGS"
+#   echo "ARGS: $ARGS"
 
     waitonproc
     
@@ -274,6 +320,9 @@ hadd expert-monitoring.root athena-*/expert-monitoring.root &> hadd.log
   
 for git in output-dataset/*.root ; do ln -s $git TrkNtuple-0000.root ; break ; done  
 
+fi
+
+
 ls -lt
 
 
@@ -291,6 +340,8 @@ for DATFILE in *.dat ; do
     fi
 done
 
+if [ $RUNATHENA -eq 1 -o $RUNPOST -eq 1 ]; then
+
 
 TIDArdict TIDAdata11-rtt.dat -r Offline -f data-all.root -b Test_bin.dat  2>&1 | tee TIDArdict_1.log
 echo "art-result: $? TIDArdict_1"
@@ -301,6 +352,9 @@ timestamp "TIDArdict"
 
 
 
+fi
+
+
 TIDArun-art.sh data-all.root data-all_ttbar_pu40-reference.root HLT_e24_medium_idperf_InDetTrigTrackingxAODCnv_Electron_FTF HLT_e24_medium_idperf_InDetTrigTrackingxAODCnv_Electron_IDTrig -d HLTEF-plots-electron  2>&1 | tee TIDArun_2.log
 echo "art-result: $? TIDArun_2"
 
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_all_ttbar_pu80.sh b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_all_ttbar_pu80.sh
index d49bb5af7f0f8a94cda380abba232db61f398fa2..8c3039ea081a11c01cec235d76be58f75ca2a363 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_all_ttbar_pu80.sh
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_all_ttbar_pu80.sh
@@ -1,7 +1,6 @@
 #!/bin/bash
 # art-description: art job for all_ttbar_pu80
 # art-type: grid
-# art-output: pid
 # art-output: HLTEF-plots-electron
 # art-output: HLTL2-plots-electron
 # art-output: HLTEF-plots-electron-lowpt
@@ -33,6 +32,49 @@
 RED='\033[0;31m'
 NC='\033[0m'
 
+
+function usage { 
+    [ $# -gt 1 ] && echo $2
+
+    echo "Usage: $(basename $0) [args]"
+    echo 
+    echo "-d, --directory  DIRECTORY \t run from the specified directory"
+    echo "-l, --local                \t run locally rather than on the grid"
+    echo "-x, --exclude              \t don't run athena or the post processing, only the plotting stages"
+    echo "-p, --post                 \t force running of post processingthe post processing, even if -x is set"
+    echo "-f, --force                \t disable protection against rerunning where you shouldn't be"
+    echo "-h, --help                 \t this help"
+    [ $# -gt 0 ] && exit $1
+    exit 0
+}
+
+args=$(getopt -ql "searchpath:" -o "d:lxph" -- "$@")
+
+# eval set -- "$args"
+
+RUNATHENA=1
+RUNPOST=-1
+DIRECTORY=
+LOCAL=0
+FORCE=0
+
+while [ $# -ge 1 ]; do
+    case "$1" in
+        --) shift ; break ;;
+        -d | --directory )  if [ $# -lt 2 ]; then usage; fi ; DIRECTORY="$2" ; shift ;;
+        -x | --exclude )    RUNATHENA=0 ; [ $RUNPOST -eq -1 ] && RUNPOST=0;;
+        -p | --post )       RUNPOST=1 ;;
+        -f | --force )      FORCE=1 ;;
+        -l | --local )      LOCAL=1 ;;
+        -h | --help )       usage ;;
+     esac
+    shift
+done
+
+
+[ $RUNPOST -eq 0 ] || RUNPOST=1
+
+
 # generate a time stamp
 
 function timestamp { printf "${RED}Timestamp: $1 $(date)${NC}\n"  ; }
@@ -161,6 +203,7 @@ function saveoutput {
 
 
 
+ls -l
 
 
 
@@ -168,7 +211,7 @@ export RTTJOBNAME=TrigInDetValidation_all_ttbar_pu80
 
 jobList=
 
-if [ $# -gt 0 -a "x$1" == "x--local" ]; then
+if [ $LOCAL -eq 1 ]; then
       echo "running locally"
       # get number of files 
       NFILES=$(grep "^#[[:space:]]*art-input-nfiles:" $0 | sed 's|.*art-input-nfiles:[[:space:]]*||g')
@@ -179,9 +222,12 @@ else
       fileList="['${ArtInFile//,/', '}']"
       _jobList="'../${ArtInFile//,/' '../}'"
       echo "List of files = $fileList"
-      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; done
+      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; echo "ART running over $git"  ; done
 fi
 
+
+if [ $RUNATHENA -eq 1 ]; then 
+
 get_files -jo             TrigInDetValidation/TrigInDetValidation_RTT_topOptions_AllSlices.py
 
 
@@ -196,7 +242,7 @@ for git in $jobList ; do
 
     ARGS="$git;EventMax=1000;doIDNewTracking=True;rec.doFloatingPointException.set_Value_and_Lock(False)"
  
-    echo "ARGS: $ARGS"
+#   echo "ARGS: $ARGS"
 
     waitonproc
     
@@ -274,6 +320,9 @@ hadd expert-monitoring.root athena-*/expert-monitoring.root &> hadd.log
   
 for git in output-dataset/*.root ; do ln -s $git TrkNtuple-0000.root ; break ; done  
 
+fi
+
+
 ls -lt
 
 
@@ -291,6 +340,8 @@ for DATFILE in *.dat ; do
     fi
 done
 
+if [ $RUNATHENA -eq 1 -o $RUNPOST -eq 1 ]; then
+
 
 TIDArdict TIDAdata11-rtt.dat -r Offline -f data-all.root -b Test_bin.dat  2>&1 | tee TIDArdict_1.log
 echo "art-result: $? TIDArdict_1"
@@ -301,6 +352,9 @@ timestamp "TIDArdict"
 
 
 
+fi
+
+
 TIDArun-art.sh data-all.root data-all_ttbar_pu80-reference.root HLT_e24_medium_idperf_InDetTrigTrackingxAODCnv_Electron_FTF HLT_e24_medium_idperf_InDetTrigTrackingxAODCnv_Electron_IDTrig -d HLTEF-plots-electron  2>&1 | tee TIDArun_2.log
 echo "art-result: $? TIDArun_2"
 
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_beamspot_ttbar_pu40.sh b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_beamspot_ttbar_pu40.sh
index 2bb4ba74d382e75d572114f77c240711cf075abf..d8e15e60aa1d49e059465bfdcc4b1a150d6fac26 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_beamspot_ttbar_pu40.sh
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_beamspot_ttbar_pu40.sh
@@ -1,7 +1,6 @@
 #!/bin/bash
 # art-description: art job for beamspot_ttbar_pu40
 # art-type: grid
-# art-output: pid
 # art-output: HLTL2-test-plots
 # art-output: times
 # art-output: times-FTF
@@ -24,6 +23,49 @@
 RED='\033[0;31m'
 NC='\033[0m'
 
+
+function usage { 
+    [ $# -gt 1 ] && echo $2
+
+    echo "Usage: $(basename $0) [args]"
+    echo 
+    echo "-d, --directory  DIRECTORY \t run from the specified directory"
+    echo "-l, --local                \t run locally rather than on the grid"
+    echo "-x, --exclude              \t don't run athena or the post processing, only the plotting stages"
+    echo "-p, --post                 \t force running of post processingthe post processing, even if -x is set"
+    echo "-f, --force                \t disable protection against rerunning where you shouldn't be"
+    echo "-h, --help                 \t this help"
+    [ $# -gt 0 ] && exit $1
+    exit 0
+}
+
+args=$(getopt -ql "searchpath:" -o "d:lxph" -- "$@")
+
+# eval set -- "$args"
+
+RUNATHENA=1
+RUNPOST=-1
+DIRECTORY=
+LOCAL=0
+FORCE=0
+
+while [ $# -ge 1 ]; do
+    case "$1" in
+        --) shift ; break ;;
+        -d | --directory )  if [ $# -lt 2 ]; then usage; fi ; DIRECTORY="$2" ; shift ;;
+        -x | --exclude )    RUNATHENA=0 ; [ $RUNPOST -eq -1 ] && RUNPOST=0;;
+        -p | --post )       RUNPOST=1 ;;
+        -f | --force )      FORCE=1 ;;
+        -l | --local )      LOCAL=1 ;;
+        -h | --help )       usage ;;
+     esac
+    shift
+done
+
+
+[ $RUNPOST -eq 0 ] || RUNPOST=1
+
+
 # generate a time stamp
 
 function timestamp { printf "${RED}Timestamp: $1 $(date)${NC}\n"  ; }
@@ -152,6 +194,7 @@ function saveoutput {
 
 
 
+ls -l
 
 
 
@@ -159,7 +202,7 @@ export RTTJOBNAME=TrigInDetValidation_beamspot_ttbar_pu40
 
 jobList=
 
-if [ $# -gt 0 -a "x$1" == "x--local" ]; then
+if [ $LOCAL -eq 1 ]; then
       echo "running locally"
       # get number of files 
       NFILES=$(grep "^#[[:space:]]*art-input-nfiles:" $0 | sed 's|.*art-input-nfiles:[[:space:]]*||g')
@@ -170,9 +213,12 @@ else
       fileList="['${ArtInFile//,/', '}']"
       _jobList="'../${ArtInFile//,/' '../}'"
       echo "List of files = $fileList"
-      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; done
+      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; echo "ART running over $git"  ; done
 fi
 
+
+if [ $RUNATHENA -eq 1 ]; then 
+
 get_files -jo             TrigInDetValidation/TrigInDetValidation_RTT_topOptions_BeamspotSlice.py
 
 
@@ -187,7 +233,7 @@ for git in $jobList ; do
 
     ARGS="$git;EventMax=1000;rec.doFloatingPointException.set_Value_and_Lock(False)"
  
-    echo "ARGS: $ARGS"
+#   echo "ARGS: $ARGS"
 
     waitonproc
     
@@ -265,6 +311,9 @@ hadd expert-monitoring.root athena-*/expert-monitoring.root &> hadd.log
   
 for git in output-dataset/*.root ; do ln -s $git TrkNtuple-0000.root ; break ; done  
 
+fi
+
+
 ls -lt
 
 
@@ -282,6 +331,8 @@ for DATFILE in *.dat ; do
     fi
 done
 
+if [ $RUNATHENA -eq 1 -o $RUNPOST -eq 1 ]; then
+
 
 TIDArdict TIDAdata11-rtt.dat -f data-all.root -b Test_bin.dat  2>&1 | tee TIDArdict_1.log
 echo "art-result: $? TIDArdict_1"
@@ -292,6 +343,9 @@ timestamp "TIDArdict"
 
 
 
+fi
+
+
 TIDArun-art.sh data-all.root data-beamspot_ttbar_pu40-reference.root HLT_beamspot_allTE_trkfast_InDetTrigTrackingxAODCnv_BeamSpot_FTF -d HLTL2-test-plots  2>&1 | tee TIDArun_2.log
 echo "art-result: $? TIDArun_2"
 
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_beamspot_ttbar_pu40_zfinder.sh b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_beamspot_ttbar_pu40_zfinder.sh
index de884f9d7e29d262bfcdf266b1eb2b344c2b8326..4fc9483b7955e47d4af6481ac58f9529bbbc46d3 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_beamspot_ttbar_pu40_zfinder.sh
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_beamspot_ttbar_pu40_zfinder.sh
@@ -1,7 +1,6 @@
 #!/bin/bash
 # art-description: art job for beamspot_ttbar_pu40_zfinder
 # art-type: grid
-# art-output: pid
 # art-output: HLTL2-test-plots
 # art-output: times
 # art-output: times-FTF
@@ -24,6 +23,49 @@
 RED='\033[0;31m'
 NC='\033[0m'
 
+
+function usage { 
+    [ $# -gt 1 ] && echo $2
+
+    echo "Usage: $(basename $0) [args]"
+    echo 
+    echo "-d, --directory  DIRECTORY \t run from the specified directory"
+    echo "-l, --local                \t run locally rather than on the grid"
+    echo "-x, --exclude              \t don't run athena or the post processing, only the plotting stages"
+    echo "-p, --post                 \t force running of post processingthe post processing, even if -x is set"
+    echo "-f, --force                \t disable protection against rerunning where you shouldn't be"
+    echo "-h, --help                 \t this help"
+    [ $# -gt 0 ] && exit $1
+    exit 0
+}
+
+args=$(getopt -ql "searchpath:" -o "d:lxph" -- "$@")
+
+# eval set -- "$args"
+
+RUNATHENA=1
+RUNPOST=-1
+DIRECTORY=
+LOCAL=0
+FORCE=0
+
+while [ $# -ge 1 ]; do
+    case "$1" in
+        --) shift ; break ;;
+        -d | --directory )  if [ $# -lt 2 ]; then usage; fi ; DIRECTORY="$2" ; shift ;;
+        -x | --exclude )    RUNATHENA=0 ; [ $RUNPOST -eq -1 ] && RUNPOST=0;;
+        -p | --post )       RUNPOST=1 ;;
+        -f | --force )      FORCE=1 ;;
+        -l | --local )      LOCAL=1 ;;
+        -h | --help )       usage ;;
+     esac
+    shift
+done
+
+
+[ $RUNPOST -eq 0 ] || RUNPOST=1
+
+
 # generate a time stamp
 
 function timestamp { printf "${RED}Timestamp: $1 $(date)${NC}\n"  ; }
@@ -152,6 +194,7 @@ function saveoutput {
 
 
 
+ls -l
 
 
 
@@ -159,7 +202,7 @@ export RTTJOBNAME=TrigInDetValidation_beamspot_ttbar_pu40_zfinder
 
 jobList=
 
-if [ $# -gt 0 -a "x$1" == "x--local" ]; then
+if [ $LOCAL -eq 1 ]; then
       echo "running locally"
       # get number of files 
       NFILES=$(grep "^#[[:space:]]*art-input-nfiles:" $0 | sed 's|.*art-input-nfiles:[[:space:]]*||g')
@@ -170,9 +213,12 @@ else
       fileList="['${ArtInFile//,/', '}']"
       _jobList="'../${ArtInFile//,/' '../}'"
       echo "List of files = $fileList"
-      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; done
+      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; echo "ART running over $git"  ; done
 fi
 
+
+if [ $RUNATHENA -eq 1 ]; then 
+
 get_files -jo             TrigInDetValidation/TrigInDetValidation_RTT_topOptions_BeamspotSlice.py
 
 
@@ -187,7 +233,7 @@ for git in $jobList ; do
 
     ARGS="$git;EventMax=1000;fastZFinder=True;rec.doFloatingPointException.set_Value_and_Lock(False)"
  
-    echo "ARGS: $ARGS"
+#   echo "ARGS: $ARGS"
 
     waitonproc
     
@@ -265,6 +311,9 @@ hadd expert-monitoring.root athena-*/expert-monitoring.root &> hadd.log
   
 for git in output-dataset/*.root ; do ln -s $git TrkNtuple-0000.root ; break ; done  
 
+fi
+
+
 ls -lt
 
 
@@ -282,6 +331,8 @@ for DATFILE in *.dat ; do
     fi
 done
 
+if [ $RUNATHENA -eq 1 -o $RUNPOST -eq 1 ]; then
+
 
 TIDArdict TIDAdata11-rtt.dat -f data-all.root -b Test_bin.dat  2>&1 | tee TIDArdict_1.log
 echo "art-result: $? TIDArdict_1"
@@ -292,6 +343,9 @@ timestamp "TIDArdict"
 
 
 
+fi
+
+
 TIDArun-art.sh data-all.root data-beamspot_ttbar_pu40_zfinder-reference.root HLT_beamspot_allTE_trkfast_InDetTrigTrackingxAODCnv_BeamSpot_FTF -d HLTL2-test-plots  2>&1 | tee TIDArun_2.log
 echo "art-result: $? TIDArun_2"
 
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_beamspot_ttbar_pu80_zfinder.sh b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_beamspot_ttbar_pu80_zfinder.sh
index 9208af0efc82dee3b7082b82dd4e9512bb1dec02..cad5c2467075feb0c1cabb26b9e1eb6b4e449e66 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_beamspot_ttbar_pu80_zfinder.sh
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_beamspot_ttbar_pu80_zfinder.sh
@@ -1,7 +1,6 @@
 #!/bin/bash
 # art-description: art job for beamspot_ttbar_pu80_zfinder
 # art-type: grid
-# art-output: pid
 # art-output: HLTL2-test-plots
 # art-output: times
 # art-output: times-FTF
@@ -24,6 +23,49 @@
 RED='\033[0;31m'
 NC='\033[0m'
 
+
+function usage { 
+    [ $# -gt 1 ] && echo $2
+
+    echo "Usage: $(basename $0) [args]"
+    echo 
+    echo "-d, --directory  DIRECTORY \t run from the specified directory"
+    echo "-l, --local                \t run locally rather than on the grid"
+    echo "-x, --exclude              \t don't run athena or the post processing, only the plotting stages"
+    echo "-p, --post                 \t force running of post processingthe post processing, even if -x is set"
+    echo "-f, --force                \t disable protection against rerunning where you shouldn't be"
+    echo "-h, --help                 \t this help"
+    [ $# -gt 0 ] && exit $1
+    exit 0
+}
+
+args=$(getopt -ql "searchpath:" -o "d:lxph" -- "$@")
+
+# eval set -- "$args"
+
+RUNATHENA=1
+RUNPOST=-1
+DIRECTORY=
+LOCAL=0
+FORCE=0
+
+while [ $# -ge 1 ]; do
+    case "$1" in
+        --) shift ; break ;;
+        -d | --directory )  if [ $# -lt 2 ]; then usage; fi ; DIRECTORY="$2" ; shift ;;
+        -x | --exclude )    RUNATHENA=0 ; [ $RUNPOST -eq -1 ] && RUNPOST=0;;
+        -p | --post )       RUNPOST=1 ;;
+        -f | --force )      FORCE=1 ;;
+        -l | --local )      LOCAL=1 ;;
+        -h | --help )       usage ;;
+     esac
+    shift
+done
+
+
+[ $RUNPOST -eq 0 ] || RUNPOST=1
+
+
 # generate a time stamp
 
 function timestamp { printf "${RED}Timestamp: $1 $(date)${NC}\n"  ; }
@@ -152,6 +194,7 @@ function saveoutput {
 
 
 
+ls -l
 
 
 
@@ -159,7 +202,7 @@ export RTTJOBNAME=TrigInDetValidation_beamspot_ttbar_pu80_zfinder
 
 jobList=
 
-if [ $# -gt 0 -a "x$1" == "x--local" ]; then
+if [ $LOCAL -eq 1 ]; then
       echo "running locally"
       # get number of files 
       NFILES=$(grep "^#[[:space:]]*art-input-nfiles:" $0 | sed 's|.*art-input-nfiles:[[:space:]]*||g')
@@ -170,9 +213,12 @@ else
       fileList="['${ArtInFile//,/', '}']"
       _jobList="'../${ArtInFile//,/' '../}'"
       echo "List of files = $fileList"
-      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; done
+      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; echo "ART running over $git"  ; done
 fi
 
+
+if [ $RUNATHENA -eq 1 ]; then 
+
 get_files -jo             TrigInDetValidation/TrigInDetValidation_RTT_topOptions_BeamspotSlice.py
 
 
@@ -187,7 +233,7 @@ for git in $jobList ; do
 
     ARGS="$git;EventMax=1000;fastZFinder=True;rec.doFloatingPointException.set_Value_and_Lock(False)"
  
-    echo "ARGS: $ARGS"
+#   echo "ARGS: $ARGS"
 
     waitonproc
     
@@ -265,6 +311,9 @@ hadd expert-monitoring.root athena-*/expert-monitoring.root &> hadd.log
   
 for git in output-dataset/*.root ; do ln -s $git TrkNtuple-0000.root ; break ; done  
 
+fi
+
+
 ls -lt
 
 
@@ -282,6 +331,8 @@ for DATFILE in *.dat ; do
     fi
 done
 
+if [ $RUNATHENA -eq 1 -o $RUNPOST -eq 1 ]; then
+
 
 TIDArdict TIDAdata11-rtt.dat -f data-all.root -b Test_bin.dat  2>&1 | tee TIDArdict_1.log
 echo "art-result: $? TIDArdict_1"
@@ -292,6 +343,9 @@ timestamp "TIDArdict"
 
 
 
+fi
+
+
 TIDArun-art.sh data-all.root data-beamspot_ttbar_pu80_zfinder-reference.root HLT_beamspot_allTE_trkfast_InDetTrigTrackingxAODCnv_BeamSpot_FTF -d HLTL2-test-plots  2>&1 | tee TIDArun_2.log
 echo "art-result: $? TIDArun_2"
 
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_bjet_ibl_pu40.sh b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_bjet_ibl_pu40.sh
index 62e94363f5e15252b17c0d7ba247f9cce193dd49..54b64387fd93a829822f3936b0f67cc414eb807a 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_bjet_ibl_pu40.sh
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_bjet_ibl_pu40.sh
@@ -1,7 +1,6 @@
 #!/bin/bash
 # art-description: art job for bjet_IBL_pu40
 # art-type: grid
-# art-output: pid
 # art-output: HLTEF-plots
 # art-output: HLTL2-plots
 # art-output: HLTEF-plots-comp
@@ -27,6 +26,49 @@
 RED='\033[0;31m'
 NC='\033[0m'
 
+
+function usage { 
+    [ $# -gt 1 ] && echo $2
+
+    echo "Usage: $(basename $0) [args]"
+    echo 
+    echo "-d, --directory  DIRECTORY \t run from the specified directory"
+    echo "-l, --local                \t run locally rather than on the grid"
+    echo "-x, --exclude              \t don't run athena or the post processing, only the plotting stages"
+    echo "-p, --post                 \t force running of post processingthe post processing, even if -x is set"
+    echo "-f, --force                \t disable protection against rerunning where you shouldn't be"
+    echo "-h, --help                 \t this help"
+    [ $# -gt 0 ] && exit $1
+    exit 0
+}
+
+args=$(getopt -ql "searchpath:" -o "d:lxph" -- "$@")
+
+# eval set -- "$args"
+
+RUNATHENA=1
+RUNPOST=-1
+DIRECTORY=
+LOCAL=0
+FORCE=0
+
+while [ $# -ge 1 ]; do
+    case "$1" in
+        --) shift ; break ;;
+        -d | --directory )  if [ $# -lt 2 ]; then usage; fi ; DIRECTORY="$2" ; shift ;;
+        -x | --exclude )    RUNATHENA=0 ; [ $RUNPOST -eq -1 ] && RUNPOST=0;;
+        -p | --post )       RUNPOST=1 ;;
+        -f | --force )      FORCE=1 ;;
+        -l | --local )      LOCAL=1 ;;
+        -h | --help )       usage ;;
+     esac
+    shift
+done
+
+
+[ $RUNPOST -eq 0 ] || RUNPOST=1
+
+
 # generate a time stamp
 
 function timestamp { printf "${RED}Timestamp: $1 $(date)${NC}\n"  ; }
@@ -155,6 +197,7 @@ function saveoutput {
 
 
 
+ls -l
 
 
 
@@ -162,7 +205,7 @@ export RTTJOBNAME=TrigInDetValidation_bjet_IBL_pu40
 
 jobList=
 
-if [ $# -gt 0 -a "x$1" == "x--local" ]; then
+if [ $LOCAL -eq 1 ]; then
       echo "running locally"
       # get number of files 
       NFILES=$(grep "^#[[:space:]]*art-input-nfiles:" $0 | sed 's|.*art-input-nfiles:[[:space:]]*||g')
@@ -173,9 +216,12 @@ else
       fileList="['${ArtInFile//,/', '}']"
       _jobList="'../${ArtInFile//,/' '../}'"
       echo "List of files = $fileList"
-      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; done
+      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; echo "ART running over $git"  ; done
 fi
 
+
+if [ $RUNATHENA -eq 1 ]; then 
+
 get_files -jo             TrigInDetValidation/TrigInDetValidation_RTT_topOptions_BjetSlice.py
 
 
@@ -190,7 +236,7 @@ for git in $jobList ; do
 
     ARGS="$git;EventMax=1000;doBperf=True;globalTag='OFLCOND-RUN12-SDR-17'"
  
-    echo "ARGS: $ARGS"
+#   echo "ARGS: $ARGS"
 
     waitonproc
     
@@ -268,6 +314,9 @@ hadd expert-monitoring.root athena-*/expert-monitoring.root &> hadd.log
   
 for git in output-dataset/*.root ; do ln -s $git TrkNtuple-0000.root ; break ; done  
 
+fi
+
+
 ls -lt
 
 
@@ -285,6 +334,8 @@ for DATFILE in *.dat ; do
     fi
 done
 
+if [ $RUNATHENA -eq 1 -o $RUNPOST -eq 1 ]; then
+
 
 TIDArdict TIDAdata11-rtt.dat -f data-bjet-pileup-merging.root -b Test_bin.dat  2>&1 | tee TIDArdict_1.log
 echo "art-result: $? TIDArdict_1"
@@ -295,6 +346,9 @@ timestamp "TIDArdict"
 
 
 
+fi
+
+
 TIDArun-art.sh data-bjet-pileup-merging.root data-bjet_IBL_pu40-reference.root HLT_j55_boffperf_InDetTrigTrackingxAODCnv_Bjet_IDTrig HLT_j55_boffperf_split_InDetTrigTrackingxAODCnv_Bjet_IDTrig_forID HLT_j55_boffperf_split_InDetTrigTrackingxAODCnv_Bjet_FTF_forID -d HLTEF-plots  2>&1 | tee TIDArun_2.log
 echo "art-result: $? TIDArun_2"
 
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_bjet_ibl_pu40_2016config.sh b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_bjet_ibl_pu40_2016config.sh
index 3f3e17832b9b2c3ec93118442f2bb465b2379fdb..a83a6ce923342d5c09e3b113be03ed34f02afd47 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_bjet_ibl_pu40_2016config.sh
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_bjet_ibl_pu40_2016config.sh
@@ -1,7 +1,6 @@
 #!/bin/bash
 # art-description: art job for bjet_IBL_pu40_2016config
 # art-type: grid
-# art-output: pid
 # art-output: HLTEF-plots
 # art-output: HLTL2-plots
 # art-output: times
@@ -25,6 +24,49 @@
 RED='\033[0;31m'
 NC='\033[0m'
 
+
+function usage { 
+    [ $# -gt 1 ] && echo $2
+
+    echo "Usage: $(basename $0) [args]"
+    echo 
+    echo "-d, --directory  DIRECTORY \t run from the specified directory"
+    echo "-l, --local                \t run locally rather than on the grid"
+    echo "-x, --exclude              \t don't run athena or the post processing, only the plotting stages"
+    echo "-p, --post                 \t force running of post processingthe post processing, even if -x is set"
+    echo "-f, --force                \t disable protection against rerunning where you shouldn't be"
+    echo "-h, --help                 \t this help"
+    [ $# -gt 0 ] && exit $1
+    exit 0
+}
+
+args=$(getopt -ql "searchpath:" -o "d:lxph" -- "$@")
+
+# eval set -- "$args"
+
+RUNATHENA=1
+RUNPOST=-1
+DIRECTORY=
+LOCAL=0
+FORCE=0
+
+while [ $# -ge 1 ]; do
+    case "$1" in
+        --) shift ; break ;;
+        -d | --directory )  if [ $# -lt 2 ]; then usage; fi ; DIRECTORY="$2" ; shift ;;
+        -x | --exclude )    RUNATHENA=0 ; [ $RUNPOST -eq -1 ] && RUNPOST=0;;
+        -p | --post )       RUNPOST=1 ;;
+        -f | --force )      FORCE=1 ;;
+        -l | --local )      LOCAL=1 ;;
+        -h | --help )       usage ;;
+     esac
+    shift
+done
+
+
+[ $RUNPOST -eq 0 ] || RUNPOST=1
+
+
 # generate a time stamp
 
 function timestamp { printf "${RED}Timestamp: $1 $(date)${NC}\n"  ; }
@@ -153,6 +195,7 @@ function saveoutput {
 
 
 
+ls -l
 
 
 
@@ -160,7 +203,7 @@ export RTTJOBNAME=TrigInDetValidation_bjet_IBL_pu40_2016config
 
 jobList=
 
-if [ $# -gt 0 -a "x$1" == "x--local" ]; then
+if [ $LOCAL -eq 1 ]; then
       echo "running locally"
       # get number of files 
       NFILES=$(grep "^#[[:space:]]*art-input-nfiles:" $0 | sed 's|.*art-input-nfiles:[[:space:]]*||g')
@@ -171,9 +214,12 @@ else
       fileList="['${ArtInFile//,/', '}']"
       _jobList="'../${ArtInFile//,/' '../}'"
       echo "List of files = $fileList"
-      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; done
+      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; echo "ART running over $git"  ; done
 fi
 
+
+if [ $RUNATHENA -eq 1 ]; then 
+
 get_files -jo             TrigInDetValidation/TrigInDetValidation_RTT_topOptions_BjetSlice.py
 
 
@@ -188,7 +234,7 @@ for git in $jobList ; do
 
     ARGS="$git;EventMax=1000;minVtxTrackpT=1000;bjetEtaHalfWidth=0.2;bjetPhiHalfWidth=0.2;splitZHalfWidth=20;globalTag='OFLCOND-RUN12-SDR-17'"
  
-    echo "ARGS: $ARGS"
+#   echo "ARGS: $ARGS"
 
     waitonproc
     
@@ -266,6 +312,9 @@ hadd expert-monitoring.root athena-*/expert-monitoring.root &> hadd.log
   
 for git in output-dataset/*.root ; do ln -s $git TrkNtuple-0000.root ; break ; done  
 
+fi
+
+
 ls -lt
 
 
@@ -283,6 +332,8 @@ for DATFILE in *.dat ; do
     fi
 done
 
+if [ $RUNATHENA -eq 1 -o $RUNPOST -eq 1 ]; then
+
 
 TIDArdict TIDAdata11-rtt.dat -f data-bjet-pileup-merging.root -b Test_bin.dat  2>&1 | tee TIDArdict_1.log
 echo "art-result: $? TIDArdict_1"
@@ -293,6 +344,9 @@ timestamp "TIDArdict"
 
 
 
+fi
+
+
 TIDArun-art.sh data-bjet-pileup-merging.root data-bjet_IBL_pu40_2016config-reference.root HLT_j55_boffperf_InDetTrigTrackingxAODCnv_Bjet_IDTrig HLT_j55_boffperf_split_InDetTrigTrackingxAODCnv_Bjet_IDTrig_forID HLT_j55_boffperf_split_InDetTrigTrackingxAODCnv_Bjet_FTF_forID -d HLTEF-plots  2>&1 | tee TIDArun_2.log
 echo "art-result: $? TIDArun_2"
 
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_bjet_ibl_pu40_offline.sh b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_bjet_ibl_pu40_offline.sh
index b76abb72b31c3c2e262bd4d07ff2d9851a893c20..2933eabc341a0076a5e4f83ae2d08e12c35f75bc 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_bjet_ibl_pu40_offline.sh
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_bjet_ibl_pu40_offline.sh
@@ -1,7 +1,6 @@
 #!/bin/bash
 # art-description: art job for bjet_IBL_pu40_offline
 # art-type: grid
-# art-output: pid
 # art-output: HLTEF-plots
 # art-output: HLTL2-plots
 # art-output: HLTL2-vtx
@@ -26,6 +25,49 @@
 RED='\033[0;31m'
 NC='\033[0m'
 
+
+function usage { 
+    [ $# -gt 1 ] && echo $2
+
+    echo "Usage: $(basename $0) [args]"
+    echo 
+    echo "-d, --directory  DIRECTORY \t run from the specified directory"
+    echo "-l, --local                \t run locally rather than on the grid"
+    echo "-x, --exclude              \t don't run athena or the post processing, only the plotting stages"
+    echo "-p, --post                 \t force running of post processingthe post processing, even if -x is set"
+    echo "-f, --force                \t disable protection against rerunning where you shouldn't be"
+    echo "-h, --help                 \t this help"
+    [ $# -gt 0 ] && exit $1
+    exit 0
+}
+
+args=$(getopt -ql "searchpath:" -o "d:lxph" -- "$@")
+
+# eval set -- "$args"
+
+RUNATHENA=1
+RUNPOST=-1
+DIRECTORY=
+LOCAL=0
+FORCE=0
+
+while [ $# -ge 1 ]; do
+    case "$1" in
+        --) shift ; break ;;
+        -d | --directory )  if [ $# -lt 2 ]; then usage; fi ; DIRECTORY="$2" ; shift ;;
+        -x | --exclude )    RUNATHENA=0 ; [ $RUNPOST -eq -1 ] && RUNPOST=0;;
+        -p | --post )       RUNPOST=1 ;;
+        -f | --force )      FORCE=1 ;;
+        -l | --local )      LOCAL=1 ;;
+        -h | --help )       usage ;;
+     esac
+    shift
+done
+
+
+[ $RUNPOST -eq 0 ] || RUNPOST=1
+
+
 # generate a time stamp
 
 function timestamp { printf "${RED}Timestamp: $1 $(date)${NC}\n"  ; }
@@ -154,6 +196,7 @@ function saveoutput {
 
 
 
+ls -l
 
 
 
@@ -161,7 +204,7 @@ export RTTJOBNAME=TrigInDetValidation_bjet_IBL_pu40_offline
 
 jobList=
 
-if [ $# -gt 0 -a "x$1" == "x--local" ]; then
+if [ $LOCAL -eq 1 ]; then
       echo "running locally"
       # get number of files 
       NFILES=$(grep "^#[[:space:]]*art-input-nfiles:" $0 | sed 's|.*art-input-nfiles:[[:space:]]*||g')
@@ -172,9 +215,12 @@ else
       fileList="['${ArtInFile//,/', '}']"
       _jobList="'../${ArtInFile//,/' '../}'"
       echo "List of files = $fileList"
-      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; done
+      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; echo "ART running over $git"  ; done
 fi
 
+
+if [ $RUNATHENA -eq 1 ]; then 
+
 get_files -jo             TrigInDetValidation/TrigInDetValidation_RTT_topOptions_BjetSlice.py
 
 
@@ -189,7 +235,7 @@ for git in $jobList ; do
 
     ARGS="$git;EventMax=1000;doIDNewTracking=True;globalTag='OFLCOND-RUN12-SDR-17'"
  
-    echo "ARGS: $ARGS"
+#   echo "ARGS: $ARGS"
 
     waitonproc
     
@@ -267,6 +313,9 @@ hadd expert-monitoring.root athena-*/expert-monitoring.root &> hadd.log
   
 for git in output-dataset/*.root ; do ln -s $git TrkNtuple-0000.root ; break ; done  
 
+fi
+
+
 ls -lt
 
 
@@ -284,6 +333,8 @@ for DATFILE in *.dat ; do
     fi
 done
 
+if [ $RUNATHENA -eq 1 -o $RUNPOST -eq 1 ]; then
+
 
 TIDArdict TIDAdata11-rtt-offline.dat -f data-bjet-pileup.root -b Test_bin.dat  2>&1 | tee TIDArdict_1.log
 echo "art-result: $? TIDArdict_1"
@@ -294,6 +345,9 @@ timestamp "TIDArdict"
 
 
 
+fi
+
+
 TIDArun-art.sh data-bjet-pileup.root data-bjet_IBL_pu40_offline-reference.root HLT_j55_boffperf_InDetTrigTrackingxAODCnv_Bjet_IDTrig HLT_j55_boffperf_split_InDetTrigTrackingxAODCnv_Bjet_IDTrig_forID HLT_j55_boffperf_split_InDetTrigTrackingxAODCnv_Bjet_FTF_forID -d HLTEF-plots  2>&1 | tee TIDArun_2.log
 echo "art-result: $? TIDArun_2"
 
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_bjet_ibl_pu40_offline_2016config.sh b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_bjet_ibl_pu40_offline_2016config.sh
index 0a58c18970422c29bb50d4af309172ed7a457bb9..17e8d505fbcbf5051b59879c5125453ac2cc7d00 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_bjet_ibl_pu40_offline_2016config.sh
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_bjet_ibl_pu40_offline_2016config.sh
@@ -1,7 +1,6 @@
 #!/bin/bash
 # art-description: art job for bjet_IBL_pu40_offline_2016config
 # art-type: grid
-# art-output: pid
 # art-output: HLTEF-plots
 # art-output: HLTL2-plots
 # art-output: times
@@ -25,6 +24,49 @@
 RED='\033[0;31m'
 NC='\033[0m'
 
+
+function usage { 
+    [ $# -gt 1 ] && echo $2
+
+    echo "Usage: $(basename $0) [args]"
+    echo 
+    echo "-d, --directory  DIRECTORY \t run from the specified directory"
+    echo "-l, --local                \t run locally rather than on the grid"
+    echo "-x, --exclude              \t don't run athena or the post processing, only the plotting stages"
+    echo "-p, --post                 \t force running of post processingthe post processing, even if -x is set"
+    echo "-f, --force                \t disable protection against rerunning where you shouldn't be"
+    echo "-h, --help                 \t this help"
+    [ $# -gt 0 ] && exit $1
+    exit 0
+}
+
+args=$(getopt -ql "searchpath:" -o "d:lxph" -- "$@")
+
+# eval set -- "$args"
+
+RUNATHENA=1
+RUNPOST=-1
+DIRECTORY=
+LOCAL=0
+FORCE=0
+
+while [ $# -ge 1 ]; do
+    case "$1" in
+        --) shift ; break ;;
+        -d | --directory )  if [ $# -lt 2 ]; then usage; fi ; DIRECTORY="$2" ; shift ;;
+        -x | --exclude )    RUNATHENA=0 ; [ $RUNPOST -eq -1 ] && RUNPOST=0;;
+        -p | --post )       RUNPOST=1 ;;
+        -f | --force )      FORCE=1 ;;
+        -l | --local )      LOCAL=1 ;;
+        -h | --help )       usage ;;
+     esac
+    shift
+done
+
+
+[ $RUNPOST -eq 0 ] || RUNPOST=1
+
+
 # generate a time stamp
 
 function timestamp { printf "${RED}Timestamp: $1 $(date)${NC}\n"  ; }
@@ -153,6 +195,7 @@ function saveoutput {
 
 
 
+ls -l
 
 
 
@@ -160,7 +203,7 @@ export RTTJOBNAME=TrigInDetValidation_bjet_IBL_pu40_offline_2016config
 
 jobList=
 
-if [ $# -gt 0 -a "x$1" == "x--local" ]; then
+if [ $LOCAL -eq 1 ]; then
       echo "running locally"
       # get number of files 
       NFILES=$(grep "^#[[:space:]]*art-input-nfiles:" $0 | sed 's|.*art-input-nfiles:[[:space:]]*||g')
@@ -171,9 +214,12 @@ else
       fileList="['${ArtInFile//,/', '}']"
       _jobList="'../${ArtInFile//,/' '../}'"
       echo "List of files = $fileList"
-      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; done
+      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; echo "ART running over $git"  ; done
 fi
 
+
+if [ $RUNATHENA -eq 1 ]; then 
+
 get_files -jo             TrigInDetValidation/TrigInDetValidation_RTT_topOptions_BjetSlice.py
 
 
@@ -188,7 +234,7 @@ for git in $jobList ; do
 
     ARGS="$git;EventMax=1000;doIDNewTracking=True;minVtxTrackpT=1000;bjetEtaHalfWidth=0.2;bjetPhiHalfWidth=0.2;splitZHalfWidth=20;globalTag='OFLCOND-RUN12-SDR-17'"
  
-    echo "ARGS: $ARGS"
+#   echo "ARGS: $ARGS"
 
     waitonproc
     
@@ -266,6 +312,9 @@ hadd expert-monitoring.root athena-*/expert-monitoring.root &> hadd.log
   
 for git in output-dataset/*.root ; do ln -s $git TrkNtuple-0000.root ; break ; done  
 
+fi
+
+
 ls -lt
 
 
@@ -283,6 +332,8 @@ for DATFILE in *.dat ; do
     fi
 done
 
+if [ $RUNATHENA -eq 1 -o $RUNPOST -eq 1 ]; then
+
 
 TIDArdict TIDAdata11-rtt-offline.dat -f data-bjet-pileup-merging.root -b Test_bin.dat  2>&1 | tee TIDArdict_1.log
 echo "art-result: $? TIDArdict_1"
@@ -293,6 +344,9 @@ timestamp "TIDArdict"
 
 
 
+fi
+
+
 TIDArun-art.sh data-bjet-pileup-merging.root data-bjet_IBL_pu40_offline_2016config-reference.root HLT_j55_boffperf_InDetTrigTrackingxAODCnv_Bjet_IDTrig HLT_j55_boffperf_split_InDetTrigTrackingxAODCnv_Bjet_IDTrig_forID HLT_j55_boffperf_split_InDetTrigTrackingxAODCnv_Bjet_FTF_forID -d HLTEF-plots  2>&1 | tee TIDArun_2.log
 echo "art-result: $? TIDArun_2"
 
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_bjet_ibl_pu80.sh b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_bjet_ibl_pu80.sh
index 99134ec7b4a97416bc5d0c481d15f7f9846d42bd..10bf0dd9ea7ac839df67398380fd36dbc7ccfc94 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_bjet_ibl_pu80.sh
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_bjet_ibl_pu80.sh
@@ -1,7 +1,6 @@
 #!/bin/bash
 # art-description: art job for bjet_IBL_pu80
 # art-type: grid
-# art-output: pid
 # art-output: HLTEF-plots
 # art-output: HLTL2-plots
 # art-output: times
@@ -25,6 +24,49 @@
 RED='\033[0;31m'
 NC='\033[0m'
 
+
+function usage { 
+    [ $# -gt 1 ] && echo $2
+
+    echo "Usage: $(basename $0) [args]"
+    echo 
+    echo "-d, --directory  DIRECTORY \t run from the specified directory"
+    echo "-l, --local                \t run locally rather than on the grid"
+    echo "-x, --exclude              \t don't run athena or the post processing, only the plotting stages"
+    echo "-p, --post                 \t force running of post processingthe post processing, even if -x is set"
+    echo "-f, --force                \t disable protection against rerunning where you shouldn't be"
+    echo "-h, --help                 \t this help"
+    [ $# -gt 0 ] && exit $1
+    exit 0
+}
+
+args=$(getopt -ql "searchpath:" -o "d:lxph" -- "$@")
+
+# eval set -- "$args"
+
+RUNATHENA=1
+RUNPOST=-1
+DIRECTORY=
+LOCAL=0
+FORCE=0
+
+while [ $# -ge 1 ]; do
+    case "$1" in
+        --) shift ; break ;;
+        -d | --directory )  if [ $# -lt 2 ]; then usage; fi ; DIRECTORY="$2" ; shift ;;
+        -x | --exclude )    RUNATHENA=0 ; [ $RUNPOST -eq -1 ] && RUNPOST=0;;
+        -p | --post )       RUNPOST=1 ;;
+        -f | --force )      FORCE=1 ;;
+        -l | --local )      LOCAL=1 ;;
+        -h | --help )       usage ;;
+     esac
+    shift
+done
+
+
+[ $RUNPOST -eq 0 ] || RUNPOST=1
+
+
 # generate a time stamp
 
 function timestamp { printf "${RED}Timestamp: $1 $(date)${NC}\n"  ; }
@@ -153,6 +195,7 @@ function saveoutput {
 
 
 
+ls -l
 
 
 
@@ -160,7 +203,7 @@ export RTTJOBNAME=TrigInDetValidation_bjet_IBL_pu80
 
 jobList=
 
-if [ $# -gt 0 -a "x$1" == "x--local" ]; then
+if [ $LOCAL -eq 1 ]; then
       echo "running locally"
       # get number of files 
       NFILES=$(grep "^#[[:space:]]*art-input-nfiles:" $0 | sed 's|.*art-input-nfiles:[[:space:]]*||g')
@@ -171,9 +214,12 @@ else
       fileList="['${ArtInFile//,/', '}']"
       _jobList="'../${ArtInFile//,/' '../}'"
       echo "List of files = $fileList"
-      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; done
+      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; echo "ART running over $git"  ; done
 fi
 
+
+if [ $RUNATHENA -eq 1 ]; then 
+
 get_files -jo             TrigInDetValidation/TrigInDetValidation_RTT_topOptions_BjetSlice.py
 
 
@@ -188,7 +234,7 @@ for git in $jobList ; do
 
     ARGS="$git;EventMax=1000;globalTag='OFLCOND-RUN12-SDR-17'"
  
-    echo "ARGS: $ARGS"
+#   echo "ARGS: $ARGS"
 
     waitonproc
     
@@ -266,6 +312,9 @@ hadd expert-monitoring.root athena-*/expert-monitoring.root &> hadd.log
   
 for git in output-dataset/*.root ; do ln -s $git TrkNtuple-0000.root ; break ; done  
 
+fi
+
+
 ls -lt
 
 
@@ -283,6 +332,8 @@ for DATFILE in *.dat ; do
     fi
 done
 
+if [ $RUNATHENA -eq 1 -o $RUNPOST -eq 1 ]; then
+
 
 TIDArdict TIDAdata11-rtt.dat -f data-bjet-pileup-merging.root -b Test_bin.dat  2>&1 | tee TIDArdict_1.log
 echo "art-result: $? TIDArdict_1"
@@ -293,6 +344,9 @@ timestamp "TIDArdict"
 
 
 
+fi
+
+
 TIDArun-art.sh data-bjet-pileup-merging.root data-bjet_IBL_pu80-reference.root HLT_j55_boffperf_InDetTrigTrackingxAODCnv_Bjet_IDTrig HLT_j55_boffperf_split_InDetTrigTrackingxAODCnv_Bjet_IDTrig_forID HLT_j55_boffperf_split_InDetTrigTrackingxAODCnv_Bjet_FTF_forID -d HLTEF-plots  2>&1 | tee TIDArun_2.log
 echo "art-result: $? TIDArun_2"
 
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_el_jpsiee_pu40.sh b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_el_jpsiee_pu40.sh
index 96cabe95373d0d54c909c2049fd4640dd19a3822..cf90351176b8b6e13e970aef521cdd7b7634b0c7 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_el_jpsiee_pu40.sh
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_el_jpsiee_pu40.sh
@@ -1,7 +1,6 @@
 #!/bin/bash
 # art-description: art job for el_Jpsiee_pu40
 # art-type: grid
-# art-output: pid
 # art-output: HLTEF-plots
 # art-output: HLTL2-plots
 # art-output: times
@@ -25,6 +24,49 @@
 RED='\033[0;31m'
 NC='\033[0m'
 
+
+function usage { 
+    [ $# -gt 1 ] && echo $2
+
+    echo "Usage: $(basename $0) [args]"
+    echo 
+    echo "-d, --directory  DIRECTORY \t run from the specified directory"
+    echo "-l, --local                \t run locally rather than on the grid"
+    echo "-x, --exclude              \t don't run athena or the post processing, only the plotting stages"
+    echo "-p, --post                 \t force running of post processingthe post processing, even if -x is set"
+    echo "-f, --force                \t disable protection against rerunning where you shouldn't be"
+    echo "-h, --help                 \t this help"
+    [ $# -gt 0 ] && exit $1
+    exit 0
+}
+
+args=$(getopt -ql "searchpath:" -o "d:lxph" -- "$@")
+
+# eval set -- "$args"
+
+RUNATHENA=1
+RUNPOST=-1
+DIRECTORY=
+LOCAL=0
+FORCE=0
+
+while [ $# -ge 1 ]; do
+    case "$1" in
+        --) shift ; break ;;
+        -d | --directory )  if [ $# -lt 2 ]; then usage; fi ; DIRECTORY="$2" ; shift ;;
+        -x | --exclude )    RUNATHENA=0 ; [ $RUNPOST -eq -1 ] && RUNPOST=0;;
+        -p | --post )       RUNPOST=1 ;;
+        -f | --force )      FORCE=1 ;;
+        -l | --local )      LOCAL=1 ;;
+        -h | --help )       usage ;;
+     esac
+    shift
+done
+
+
+[ $RUNPOST -eq 0 ] || RUNPOST=1
+
+
 # generate a time stamp
 
 function timestamp { printf "${RED}Timestamp: $1 $(date)${NC}\n"  ; }
@@ -153,6 +195,7 @@ function saveoutput {
 
 
 
+ls -l
 
 
 
@@ -160,7 +203,7 @@ export RTTJOBNAME=TrigInDetValidation_el_Jpsiee_pu40
 
 jobList=
 
-if [ $# -gt 0 -a "x$1" == "x--local" ]; then
+if [ $LOCAL -eq 1 ]; then
       echo "running locally"
       # get number of files 
       NFILES=$(grep "^#[[:space:]]*art-input-nfiles:" $0 | sed 's|.*art-input-nfiles:[[:space:]]*||g')
@@ -171,9 +214,12 @@ else
       fileList="['${ArtInFile//,/', '}']"
       _jobList="'../${ArtInFile//,/' '../}'"
       echo "List of files = $fileList"
-      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; done
+      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; echo "ART running over $git"  ; done
 fi
 
+
+if [ $RUNATHENA -eq 1 ]; then 
+
 get_files -jo            TrigInDetValidation/TrigInDetValidation_RTT_topOptions_ElectronSlice.py
 
 
@@ -188,7 +234,7 @@ for git in $jobList ; do
 
     ARGS="$git;EventMax=500"
  
-    echo "ARGS: $ARGS"
+#   echo "ARGS: $ARGS"
 
     waitonproc
     
@@ -266,6 +312,9 @@ hadd expert-monitoring.root athena-*/expert-monitoring.root &> hadd.log
   
 for git in output-dataset/*.root ; do ln -s $git TrkNtuple-0000.root ; break ; done  
 
+fi
+
+
 ls -lt
 
 
@@ -283,6 +332,8 @@ for DATFILE in *.dat ; do
     fi
 done
 
+if [ $RUNATHENA -eq 1 -o $RUNPOST -eq 1 ]; then
+
 
 TIDArdict TIDAdata11-rtt.dat -f data-electron-merge.root -p 11 -b Test_bin.dat  2>&1 | tee TIDArdict_1.log
 echo "art-result: $? TIDArdict_1"
@@ -293,6 +344,9 @@ timestamp "TIDArdict"
 
 
 
+fi
+
+
 TIDArun-art.sh data-electron-merge.root data-el_Jpsiee_pu40-reference.root HLT_e5_loose_idperf_InDetTrigTrackingxAODCnv_Electron_FTF HLT_e5_loose_idperf_InDetTrigTrackingxAODCnv_Electron_IDTrig -d HLTEF-plots  2>&1 | tee TIDArun_2.log
 echo "art-result: $? TIDArun_2"
 
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_el_single_e_7-80_ibl.sh b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_el_single_e_7-80_ibl.sh
index 434234dc5dcfe049a6807b1c9c9e49d98b453e5e..d36972714f0e99493e972f831014784fa327f2ad 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_el_single_e_7-80_ibl.sh
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_el_single_e_7-80_ibl.sh
@@ -1,7 +1,6 @@
 #!/bin/bash
 # art-description: art job for el_single_e_7-80_IBL
 # art-type: grid
-# art-output: pid
 # art-output: HLTEF-plots
 # art-output: HLTEF-plots-lowpt
 # art-output: HLTL2-plots
@@ -27,6 +26,49 @@
 RED='\033[0;31m'
 NC='\033[0m'
 
+
+function usage { 
+    [ $# -gt 1 ] && echo $2
+
+    echo "Usage: $(basename $0) [args]"
+    echo 
+    echo "-d, --directory  DIRECTORY \t run from the specified directory"
+    echo "-l, --local                \t run locally rather than on the grid"
+    echo "-x, --exclude              \t don't run athena or the post processing, only the plotting stages"
+    echo "-p, --post                 \t force running of post processingthe post processing, even if -x is set"
+    echo "-f, --force                \t disable protection against rerunning where you shouldn't be"
+    echo "-h, --help                 \t this help"
+    [ $# -gt 0 ] && exit $1
+    exit 0
+}
+
+args=$(getopt -ql "searchpath:" -o "d:lxph" -- "$@")
+
+# eval set -- "$args"
+
+RUNATHENA=1
+RUNPOST=-1
+DIRECTORY=
+LOCAL=0
+FORCE=0
+
+while [ $# -ge 1 ]; do
+    case "$1" in
+        --) shift ; break ;;
+        -d | --directory )  if [ $# -lt 2 ]; then usage; fi ; DIRECTORY="$2" ; shift ;;
+        -x | --exclude )    RUNATHENA=0 ; [ $RUNPOST -eq -1 ] && RUNPOST=0;;
+        -p | --post )       RUNPOST=1 ;;
+        -f | --force )      FORCE=1 ;;
+        -l | --local )      LOCAL=1 ;;
+        -h | --help )       usage ;;
+     esac
+    shift
+done
+
+
+[ $RUNPOST -eq 0 ] || RUNPOST=1
+
+
 # generate a time stamp
 
 function timestamp { printf "${RED}Timestamp: $1 $(date)${NC}\n"  ; }
@@ -155,6 +197,7 @@ function saveoutput {
 
 
 
+ls -l
 
 
 
@@ -162,7 +205,7 @@ export RTTJOBNAME=TrigInDetValidation_el_single_e_7-80_IBL
 
 jobList=
 
-if [ $# -gt 0 -a "x$1" == "x--local" ]; then
+if [ $LOCAL -eq 1 ]; then
       echo "running locally"
       # get number of files 
       NFILES=$(grep "^#[[:space:]]*art-input-nfiles:" $0 | sed 's|.*art-input-nfiles:[[:space:]]*||g')
@@ -173,9 +216,12 @@ else
       fileList="['${ArtInFile//,/', '}']"
       _jobList="'../${ArtInFile//,/' '../}'"
       echo "List of files = $fileList"
-      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; done
+      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; echo "ART running over $git"  ; done
 fi
 
+
+if [ $RUNATHENA -eq 1 ]; then 
+
 get_files -jo             TrigInDetValidation/TrigInDetValidation_RTT_topOptions_ElectronSlice.py
 
 
@@ -190,7 +236,7 @@ for git in $jobList ; do
 
     ARGS="$git;EventMax=2000"
  
-    echo "ARGS: $ARGS"
+#   echo "ARGS: $ARGS"
 
     waitonproc
     
@@ -268,6 +314,9 @@ hadd expert-monitoring.root athena-*/expert-monitoring.root &> hadd.log
   
 for git in output-dataset/*.root ; do ln -s $git TrkNtuple-0000.root ; break ; done  
 
+fi
+
+
 ls -lt
 
 
@@ -285,6 +334,8 @@ for DATFILE in *.dat ; do
     fi
 done
 
+if [ $RUNATHENA -eq 1 -o $RUNPOST -eq 1 ]; then
+
 
 TIDArdict TIDAdata11-rtt.dat -f data-electron-IBL.root -p 11 -b Test_bin.dat  2>&1 | tee TIDArdict_1.log
 echo "art-result: $? TIDArdict_1"
@@ -295,6 +346,9 @@ timestamp "TIDArdict"
 
 
 
+fi
+
+
 TIDArun-art.sh data-electron-IBL.root data-el_single_e_7-80_IBL-reference.root HLT_e24_medium_idperf_InDetTrigTrackingxAODCnv_Electron_FTF HLT_e24_medium_idperf_InDetTrigTrackingxAODCnv_Electron_IDTrig -d HLTEF-plots  2>&1 | tee TIDArun_2.log
 echo "art-result: $? TIDArun_2"
 
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_el_single_e_7-80_ibl_pu40.sh b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_el_single_e_7-80_ibl_pu40.sh
index d835f88ead8cefb71310e4bb757ea2510f4e8981..5add2cdbe8a822f5896cccb64fa36c743082191b 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_el_single_e_7-80_ibl_pu40.sh
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_el_single_e_7-80_ibl_pu40.sh
@@ -1,7 +1,6 @@
 #!/bin/bash
 # art-description: art job for el_single_e_7-80_IBL_pu40
 # art-type: grid
-# art-output: pid
 # art-output: HLTEF-plots
 # art-output: HLTEF-plots-lowpt
 # art-output: HLTL2-plots
@@ -27,6 +26,49 @@
 RED='\033[0;31m'
 NC='\033[0m'
 
+
+function usage { 
+    [ $# -gt 1 ] && echo $2
+
+    echo "Usage: $(basename $0) [args]"
+    echo 
+    echo "-d, --directory  DIRECTORY \t run from the specified directory"
+    echo "-l, --local                \t run locally rather than on the grid"
+    echo "-x, --exclude              \t don't run athena or the post processing, only the plotting stages"
+    echo "-p, --post                 \t force running of post processingthe post processing, even if -x is set"
+    echo "-f, --force                \t disable protection against rerunning where you shouldn't be"
+    echo "-h, --help                 \t this help"
+    [ $# -gt 0 ] && exit $1
+    exit 0
+}
+
+args=$(getopt -ql "searchpath:" -o "d:lxph" -- "$@")
+
+# eval set -- "$args"
+
+RUNATHENA=1
+RUNPOST=-1
+DIRECTORY=
+LOCAL=0
+FORCE=0
+
+while [ $# -ge 1 ]; do
+    case "$1" in
+        --) shift ; break ;;
+        -d | --directory )  if [ $# -lt 2 ]; then usage; fi ; DIRECTORY="$2" ; shift ;;
+        -x | --exclude )    RUNATHENA=0 ; [ $RUNPOST -eq -1 ] && RUNPOST=0;;
+        -p | --post )       RUNPOST=1 ;;
+        -f | --force )      FORCE=1 ;;
+        -l | --local )      LOCAL=1 ;;
+        -h | --help )       usage ;;
+     esac
+    shift
+done
+
+
+[ $RUNPOST -eq 0 ] || RUNPOST=1
+
+
 # generate a time stamp
 
 function timestamp { printf "${RED}Timestamp: $1 $(date)${NC}\n"  ; }
@@ -155,6 +197,7 @@ function saveoutput {
 
 
 
+ls -l
 
 
 
@@ -162,7 +205,7 @@ export RTTJOBNAME=TrigInDetValidation_el_single_e_7-80_IBL_pu40
 
 jobList=
 
-if [ $# -gt 0 -a "x$1" == "x--local" ]; then
+if [ $LOCAL -eq 1 ]; then
       echo "running locally"
       # get number of files 
       NFILES=$(grep "^#[[:space:]]*art-input-nfiles:" $0 | sed 's|.*art-input-nfiles:[[:space:]]*||g')
@@ -173,9 +216,12 @@ else
       fileList="['${ArtInFile//,/', '}']"
       _jobList="'../${ArtInFile//,/' '../}'"
       echo "List of files = $fileList"
-      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; done
+      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; echo "ART running over $git"  ; done
 fi
 
+
+if [ $RUNATHENA -eq 1 ]; then 
+
 get_files -jo             TrigInDetValidation/TrigInDetValidation_RTT_topOptions_ElectronSlice.py
 
 
@@ -190,7 +236,7 @@ for git in $jobList ; do
 
     ARGS="$git;EventMax=2000"
  
-    echo "ARGS: $ARGS"
+#   echo "ARGS: $ARGS"
 
     waitonproc
     
@@ -268,6 +314,9 @@ hadd expert-monitoring.root athena-*/expert-monitoring.root &> hadd.log
   
 for git in output-dataset/*.root ; do ln -s $git TrkNtuple-0000.root ; break ; done  
 
+fi
+
+
 ls -lt
 
 
@@ -285,6 +334,8 @@ for DATFILE in *.dat ; do
     fi
 done
 
+if [ $RUNATHENA -eq 1 -o $RUNPOST -eq 1 ]; then
+
 
 TIDArdict TIDAdata11-rtt.dat -f data-electron-IBL.root -p 11 -b Test_bin.dat  2>&1 | tee TIDArdict_1.log
 echo "art-result: $? TIDArdict_1"
@@ -295,6 +346,9 @@ timestamp "TIDArdict"
 
 
 
+fi
+
+
 TIDArun-art.sh data-electron-IBL.root data-el_single_e_7-80_IBL_pu40-reference.root HLT_e24_medium_idperf_InDetTrigTrackingxAODCnv_Electron_FTF HLT_e24_medium_idperf_InDetTrigTrackingxAODCnv_Electron_IDTrig -d HLTEF-plots  2>&1 | tee TIDArun_2.log
 echo "art-result: $? TIDArun_2"
 
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_el_single_e_7-80_larged0.sh b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_el_single_e_7-80_larged0.sh
index 5c57a87adaaaf4f554fb874541e124777e9d77fa..ca62ee7cb697897f7bacff79e0439a8e80a63c88 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_el_single_e_7-80_larged0.sh
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_el_single_e_7-80_larged0.sh
@@ -1,7 +1,6 @@
 #!/bin/bash
 # art-description: art job for el_single_e_7-80_larged0
 # art-type: grid
-# art-output: pid
 # art-output: HLTEF-plots
 # art-output: HLTEF-plots-lowpt
 # art-output: HLTL2-plots
@@ -27,6 +26,49 @@
 RED='\033[0;31m'
 NC='\033[0m'
 
+
+function usage { 
+    [ $# -gt 1 ] && echo $2
+
+    echo "Usage: $(basename $0) [args]"
+    echo 
+    echo "-d, --directory  DIRECTORY \t run from the specified directory"
+    echo "-l, --local                \t run locally rather than on the grid"
+    echo "-x, --exclude              \t don't run athena or the post processing, only the plotting stages"
+    echo "-p, --post                 \t force running of post processingthe post processing, even if -x is set"
+    echo "-f, --force                \t disable protection against rerunning where you shouldn't be"
+    echo "-h, --help                 \t this help"
+    [ $# -gt 0 ] && exit $1
+    exit 0
+}
+
+args=$(getopt -ql "searchpath:" -o "d:lxph" -- "$@")
+
+# eval set -- "$args"
+
+RUNATHENA=1
+RUNPOST=-1
+DIRECTORY=
+LOCAL=0
+FORCE=0
+
+while [ $# -ge 1 ]; do
+    case "$1" in
+        --) shift ; break ;;
+        -d | --directory )  if [ $# -lt 2 ]; then usage; fi ; DIRECTORY="$2" ; shift ;;
+        -x | --exclude )    RUNATHENA=0 ; [ $RUNPOST -eq -1 ] && RUNPOST=0;;
+        -p | --post )       RUNPOST=1 ;;
+        -f | --force )      FORCE=1 ;;
+        -l | --local )      LOCAL=1 ;;
+        -h | --help )       usage ;;
+     esac
+    shift
+done
+
+
+[ $RUNPOST -eq 0 ] || RUNPOST=1
+
+
 # generate a time stamp
 
 function timestamp { printf "${RED}Timestamp: $1 $(date)${NC}\n"  ; }
@@ -155,6 +197,7 @@ function saveoutput {
 
 
 
+ls -l
 
 
 
@@ -162,7 +205,7 @@ export RTTJOBNAME=TrigInDetValidation_el_single_e_7-80_larged0
 
 jobList=
 
-if [ $# -gt 0 -a "x$1" == "x--local" ]; then
+if [ $LOCAL -eq 1 ]; then
       echo "running locally"
       # get number of files 
       NFILES=$(grep "^#[[:space:]]*art-input-nfiles:" $0 | sed 's|.*art-input-nfiles:[[:space:]]*||g')
@@ -173,9 +216,12 @@ else
       fileList="['${ArtInFile//,/', '}']"
       _jobList="'../${ArtInFile//,/' '../}'"
       echo "List of files = $fileList"
-      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; done
+      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; echo "ART running over $git"  ; done
 fi
 
+
+if [ $RUNATHENA -eq 1 ]; then 
+
 get_files -jo             TrigInDetValidation/TrigInDetValidation_RTT_topOptions_ElectronSlice.py
 
 
@@ -190,7 +236,7 @@ for git in $jobList ; do
 
     ARGS="$git;EventMax=2000"
  
-    echo "ARGS: $ARGS"
+#   echo "ARGS: $ARGS"
 
     waitonproc
     
@@ -268,6 +314,9 @@ hadd expert-monitoring.root athena-*/expert-monitoring.root &> hadd.log
   
 for git in output-dataset/*.root ; do ln -s $git TrkNtuple-0000.root ; break ; done  
 
+fi
+
+
 ls -lt
 
 
@@ -285,6 +334,8 @@ for DATFILE in *.dat ; do
     fi
 done
 
+if [ $RUNATHENA -eq 1 -o $RUNPOST -eq 1 ]; then
+
 
 TIDArdict TIDAdata11-rtt-larged0-el.dat -f data-electron-IBL.root -p 11 -b Test_bin_larged0.dat  2>&1 | tee TIDArdict_1.log
 echo "art-result: $? TIDArdict_1"
@@ -295,6 +346,9 @@ timestamp "TIDArdict"
 
 
 
+fi
+
+
 TIDArun-art.sh data-electron-IBL.root data-el_single_e_7-80_larged0-reference.root HLT_e24_medium_idperf_InDetTrigTrackingxAODCnv_Electron_FTF HLT_e24_medium_idperf_InDetTrigTrackingxAODCnv_Electron_IDTrig -d HLTEF-plots  2>&1 | tee TIDArun_2.log
 echo "art-result: $? TIDArun_2"
 
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_el_single_e_7-80_larged0_pu.sh b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_el_single_e_7-80_larged0_pu.sh
index 4074b62a8774dfa716fe5d3ae59b60f1f0faa300..856ca09b78718e9dfdc53a0f4806c2e1838006e5 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_el_single_e_7-80_larged0_pu.sh
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_el_single_e_7-80_larged0_pu.sh
@@ -1,7 +1,6 @@
 #!/bin/bash
 # art-description: art job for el_single_e_7-80_larged0_PU
 # art-type: grid
-# art-output: pid
 # art-output: HLTEF-plots
 # art-output: HLTEF-plots-lowpt
 # art-output: HLTL2-plots
@@ -27,6 +26,49 @@
 RED='\033[0;31m'
 NC='\033[0m'
 
+
+function usage { 
+    [ $# -gt 1 ] && echo $2
+
+    echo "Usage: $(basename $0) [args]"
+    echo 
+    echo "-d, --directory  DIRECTORY \t run from the specified directory"
+    echo "-l, --local                \t run locally rather than on the grid"
+    echo "-x, --exclude              \t don't run athena or the post processing, only the plotting stages"
+    echo "-p, --post                 \t force running of post processingthe post processing, even if -x is set"
+    echo "-f, --force                \t disable protection against rerunning where you shouldn't be"
+    echo "-h, --help                 \t this help"
+    [ $# -gt 0 ] && exit $1
+    exit 0
+}
+
+args=$(getopt -ql "searchpath:" -o "d:lxph" -- "$@")
+
+# eval set -- "$args"
+
+RUNATHENA=1
+RUNPOST=-1
+DIRECTORY=
+LOCAL=0
+FORCE=0
+
+while [ $# -ge 1 ]; do
+    case "$1" in
+        --) shift ; break ;;
+        -d | --directory )  if [ $# -lt 2 ]; then usage; fi ; DIRECTORY="$2" ; shift ;;
+        -x | --exclude )    RUNATHENA=0 ; [ $RUNPOST -eq -1 ] && RUNPOST=0;;
+        -p | --post )       RUNPOST=1 ;;
+        -f | --force )      FORCE=1 ;;
+        -l | --local )      LOCAL=1 ;;
+        -h | --help )       usage ;;
+     esac
+    shift
+done
+
+
+[ $RUNPOST -eq 0 ] || RUNPOST=1
+
+
 # generate a time stamp
 
 function timestamp { printf "${RED}Timestamp: $1 $(date)${NC}\n"  ; }
@@ -155,6 +197,7 @@ function saveoutput {
 
 
 
+ls -l
 
 
 
@@ -162,7 +205,7 @@ export RTTJOBNAME=TrigInDetValidation_el_single_e_7-80_larged0_PU
 
 jobList=
 
-if [ $# -gt 0 -a "x$1" == "x--local" ]; then
+if [ $LOCAL -eq 1 ]; then
       echo "running locally"
       # get number of files 
       NFILES=$(grep "^#[[:space:]]*art-input-nfiles:" $0 | sed 's|.*art-input-nfiles:[[:space:]]*||g')
@@ -173,9 +216,12 @@ else
       fileList="['${ArtInFile//,/', '}']"
       _jobList="'../${ArtInFile//,/' '../}'"
       echo "List of files = $fileList"
-      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; done
+      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; echo "ART running over $git"  ; done
 fi
 
+
+if [ $RUNATHENA -eq 1 ]; then 
+
 get_files -jo             TrigInDetValidation/TrigInDetValidation_RTT_topOptions_ElectronSlice.py
 
 
@@ -190,7 +236,7 @@ for git in $jobList ; do
 
     ARGS="$git;EventMax=2000"
  
-    echo "ARGS: $ARGS"
+#   echo "ARGS: $ARGS"
 
     waitonproc
     
@@ -268,6 +314,9 @@ hadd expert-monitoring.root athena-*/expert-monitoring.root &> hadd.log
   
 for git in output-dataset/*.root ; do ln -s $git TrkNtuple-0000.root ; break ; done  
 
+fi
+
+
 ls -lt
 
 
@@ -285,6 +334,8 @@ for DATFILE in *.dat ; do
     fi
 done
 
+if [ $RUNATHENA -eq 1 -o $RUNPOST -eq 1 ]; then
+
 
 TIDArdict TIDAdata11-rtt-larged0-el.dat -f data-electron-IBL.root -p 11 -b Test_bin_larged0.dat  2>&1 | tee TIDArdict_1.log
 echo "art-result: $? TIDArdict_1"
@@ -295,6 +346,9 @@ timestamp "TIDArdict"
 
 
 
+fi
+
+
 TIDArun-art.sh data-electron-IBL.root data-el_single_e_7-80_larged0_PU-reference.root HLT_e24_medium_idperf_InDetTrigTrackingxAODCnv_Electron_FTF HLT_e24_medium_idperf_InDetTrigTrackingxAODCnv_Electron_IDTrig -d HLTEF-plots  2>&1 | tee TIDArun_2.log
 echo "art-result: $? TIDArun_2"
 
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_el_ttbar_pu40.sh b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_el_ttbar_pu40.sh
index bb5fda00058917494b8e2d62889895b543d057ae..ea3b12cd0d60cb3058ab9c9aea5b40a52775182b 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_el_ttbar_pu40.sh
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_el_ttbar_pu40.sh
@@ -1,7 +1,6 @@
 #!/bin/bash
 # art-description: art job for el_ttbar_pu40
 # art-type: grid
-# art-output: pid
 # art-output: HLTEF-plots
 # art-output: HLTL2-plots
 # art-output: HLTEF-plots-lowpt
@@ -27,6 +26,49 @@
 RED='\033[0;31m'
 NC='\033[0m'
 
+
+function usage { 
+    [ $# -gt 1 ] && echo $2
+
+    echo "Usage: $(basename $0) [args]"
+    echo 
+    echo "-d, --directory  DIRECTORY \t run from the specified directory"
+    echo "-l, --local                \t run locally rather than on the grid"
+    echo "-x, --exclude              \t don't run athena or the post processing, only the plotting stages"
+    echo "-p, --post                 \t force running of post processingthe post processing, even if -x is set"
+    echo "-f, --force                \t disable protection against rerunning where you shouldn't be"
+    echo "-h, --help                 \t this help"
+    [ $# -gt 0 ] && exit $1
+    exit 0
+}
+
+args=$(getopt -ql "searchpath:" -o "d:lxph" -- "$@")
+
+# eval set -- "$args"
+
+RUNATHENA=1
+RUNPOST=-1
+DIRECTORY=
+LOCAL=0
+FORCE=0
+
+while [ $# -ge 1 ]; do
+    case "$1" in
+        --) shift ; break ;;
+        -d | --directory )  if [ $# -lt 2 ]; then usage; fi ; DIRECTORY="$2" ; shift ;;
+        -x | --exclude )    RUNATHENA=0 ; [ $RUNPOST -eq -1 ] && RUNPOST=0;;
+        -p | --post )       RUNPOST=1 ;;
+        -f | --force )      FORCE=1 ;;
+        -l | --local )      LOCAL=1 ;;
+        -h | --help )       usage ;;
+     esac
+    shift
+done
+
+
+[ $RUNPOST -eq 0 ] || RUNPOST=1
+
+
 # generate a time stamp
 
 function timestamp { printf "${RED}Timestamp: $1 $(date)${NC}\n"  ; }
@@ -155,6 +197,7 @@ function saveoutput {
 
 
 
+ls -l
 
 
 
@@ -162,7 +205,7 @@ export RTTJOBNAME=TrigInDetValidation_el_ttbar_pu40
 
 jobList=
 
-if [ $# -gt 0 -a "x$1" == "x--local" ]; then
+if [ $LOCAL -eq 1 ]; then
       echo "running locally"
       # get number of files 
       NFILES=$(grep "^#[[:space:]]*art-input-nfiles:" $0 | sed 's|.*art-input-nfiles:[[:space:]]*||g')
@@ -173,9 +216,12 @@ else
       fileList="['${ArtInFile//,/', '}']"
       _jobList="'../${ArtInFile//,/' '../}'"
       echo "List of files = $fileList"
-      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; done
+      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; echo "ART running over $git"  ; done
 fi
 
+
+if [ $RUNATHENA -eq 1 ]; then 
+
 get_files -jo            TrigInDetValidation/TrigInDetValidation_RTT_topOptions_ElectronSlice.py
 
 
@@ -190,7 +236,7 @@ for git in $jobList ; do
 
     ARGS="$git;EventMax=1000"
  
-    echo "ARGS: $ARGS"
+#   echo "ARGS: $ARGS"
 
     waitonproc
     
@@ -268,6 +314,9 @@ hadd expert-monitoring.root athena-*/expert-monitoring.root &> hadd.log
   
 for git in output-dataset/*.root ; do ln -s $git TrkNtuple-0000.root ; break ; done  
 
+fi
+
+
 ls -lt
 
 
@@ -285,6 +334,8 @@ for DATFILE in *.dat ; do
     fi
 done
 
+if [ $RUNATHENA -eq 1 -o $RUNPOST -eq 1 ]; then
+
 
 TIDArdict TIDAdata11-rtt.dat -f data-electron-merge.root -p 11 -b Test_bin.dat  2>&1 | tee TIDArdict_1.log
 echo "art-result: $? TIDArdict_1"
@@ -295,6 +346,9 @@ timestamp "TIDArdict"
 
 
 
+fi
+
+
 TIDArun-art.sh data-electron-merge.root data-el_ttbar_pu40-reference.root HLT_e24_medium_idperf_InDetTrigTrackingxAODCnv_Electron_FTF HLT_e24_medium_idperf_InDetTrigTrackingxAODCnv_Electron_IDTrig -d HLTEF-plots  2>&1 | tee TIDArun_2.log
 echo "art-result: $? TIDArun_2"
 
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_el_ttbar_pu80.sh b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_el_ttbar_pu80.sh
index 7d5f6bca8023383fc4ac3893f854d6c0f6ac95d4..94e948f5a26478e6894b81ae392af21c2a0a6794 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_el_ttbar_pu80.sh
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_el_ttbar_pu80.sh
@@ -1,7 +1,6 @@
 #!/bin/bash
 # art-description: art job for el_ttbar_pu80
 # art-type: grid
-# art-output: pid
 # art-output: HLTEF-plots
 # art-output: HLTL2-plots
 # art-output: HLTEF-plots-lowpt
@@ -27,6 +26,49 @@
 RED='\033[0;31m'
 NC='\033[0m'
 
+
+function usage { 
+    [ $# -gt 1 ] && echo $2
+
+    echo "Usage: $(basename $0) [args]"
+    echo 
+    echo "-d, --directory  DIRECTORY \t run from the specified directory"
+    echo "-l, --local                \t run locally rather than on the grid"
+    echo "-x, --exclude              \t don't run athena or the post processing, only the plotting stages"
+    echo "-p, --post                 \t force running of post processingthe post processing, even if -x is set"
+    echo "-f, --force                \t disable protection against rerunning where you shouldn't be"
+    echo "-h, --help                 \t this help"
+    [ $# -gt 0 ] && exit $1
+    exit 0
+}
+
+args=$(getopt -ql "searchpath:" -o "d:lxph" -- "$@")
+
+# eval set -- "$args"
+
+RUNATHENA=1
+RUNPOST=-1
+DIRECTORY=
+LOCAL=0
+FORCE=0
+
+while [ $# -ge 1 ]; do
+    case "$1" in
+        --) shift ; break ;;
+        -d | --directory )  if [ $# -lt 2 ]; then usage; fi ; DIRECTORY="$2" ; shift ;;
+        -x | --exclude )    RUNATHENA=0 ; [ $RUNPOST -eq -1 ] && RUNPOST=0;;
+        -p | --post )       RUNPOST=1 ;;
+        -f | --force )      FORCE=1 ;;
+        -l | --local )      LOCAL=1 ;;
+        -h | --help )       usage ;;
+     esac
+    shift
+done
+
+
+[ $RUNPOST -eq 0 ] || RUNPOST=1
+
+
 # generate a time stamp
 
 function timestamp { printf "${RED}Timestamp: $1 $(date)${NC}\n"  ; }
@@ -155,6 +197,7 @@ function saveoutput {
 
 
 
+ls -l
 
 
 
@@ -162,7 +205,7 @@ export RTTJOBNAME=TrigInDetValidation_el_ttbar_pu80
 
 jobList=
 
-if [ $# -gt 0 -a "x$1" == "x--local" ]; then
+if [ $LOCAL -eq 1 ]; then
       echo "running locally"
       # get number of files 
       NFILES=$(grep "^#[[:space:]]*art-input-nfiles:" $0 | sed 's|.*art-input-nfiles:[[:space:]]*||g')
@@ -173,9 +216,12 @@ else
       fileList="['${ArtInFile//,/', '}']"
       _jobList="'../${ArtInFile//,/' '../}'"
       echo "List of files = $fileList"
-      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; done
+      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; echo "ART running over $git"  ; done
 fi
 
+
+if [ $RUNATHENA -eq 1 ]; then 
+
 get_files -jo            TrigInDetValidation/TrigInDetValidation_RTT_topOptions_ElectronSlice.py
 
 
@@ -190,7 +236,7 @@ for git in $jobList ; do
 
     ARGS="$git;EventMax=1000"
  
-    echo "ARGS: $ARGS"
+#   echo "ARGS: $ARGS"
 
     waitonproc
     
@@ -268,6 +314,9 @@ hadd expert-monitoring.root athena-*/expert-monitoring.root &> hadd.log
   
 for git in output-dataset/*.root ; do ln -s $git TrkNtuple-0000.root ; break ; done  
 
+fi
+
+
 ls -lt
 
 
@@ -285,6 +334,8 @@ for DATFILE in *.dat ; do
     fi
 done
 
+if [ $RUNATHENA -eq 1 -o $RUNPOST -eq 1 ]; then
+
 
 TIDArdict TIDAdata11-rtt.dat -f data-electron-merge.root -p 11 -b Test_bin.dat  2>&1 | tee TIDArdict_1.log
 echo "art-result: $? TIDArdict_1"
@@ -295,6 +346,9 @@ timestamp "TIDArdict"
 
 
 
+fi
+
+
 TIDArun-art.sh data-electron-merge.root data-el_ttbar_pu80-reference.root HLT_e24_medium_idperf_InDetTrigTrackingxAODCnv_Electron_FTF HLT_e24_medium_idperf_InDetTrigTrackingxAODCnv_Electron_IDTrig -d HLTEF-plots  2>&1 | tee TIDArun_2.log
 echo "art-result: $? TIDArun_2"
 
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_el_zee_ibl_pu40.sh b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_el_zee_ibl_pu40.sh
index 73b8b5b6ea686bc48eeb014210eea123fba80df0..fdb537747ac62db39eefb41ac38cc0a2847f2618 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_el_zee_ibl_pu40.sh
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_el_zee_ibl_pu40.sh
@@ -1,7 +1,6 @@
 #!/bin/bash
 # art-description: art job for el_Zee_IBL_pu40
 # art-type: grid
-# art-output: pid
 # art-output: HLTEF-plots
 # art-output: HLTL2-plots
 # art-output: HLTEF-plots-lowpt
@@ -27,6 +26,49 @@
 RED='\033[0;31m'
 NC='\033[0m'
 
+
+function usage { 
+    [ $# -gt 1 ] && echo $2
+
+    echo "Usage: $(basename $0) [args]"
+    echo 
+    echo "-d, --directory  DIRECTORY \t run from the specified directory"
+    echo "-l, --local                \t run locally rather than on the grid"
+    echo "-x, --exclude              \t don't run athena or the post processing, only the plotting stages"
+    echo "-p, --post                 \t force running of post processingthe post processing, even if -x is set"
+    echo "-f, --force                \t disable protection against rerunning where you shouldn't be"
+    echo "-h, --help                 \t this help"
+    [ $# -gt 0 ] && exit $1
+    exit 0
+}
+
+args=$(getopt -ql "searchpath:" -o "d:lxph" -- "$@")
+
+# eval set -- "$args"
+
+RUNATHENA=1
+RUNPOST=-1
+DIRECTORY=
+LOCAL=0
+FORCE=0
+
+while [ $# -ge 1 ]; do
+    case "$1" in
+        --) shift ; break ;;
+        -d | --directory )  if [ $# -lt 2 ]; then usage; fi ; DIRECTORY="$2" ; shift ;;
+        -x | --exclude )    RUNATHENA=0 ; [ $RUNPOST -eq -1 ] && RUNPOST=0;;
+        -p | --post )       RUNPOST=1 ;;
+        -f | --force )      FORCE=1 ;;
+        -l | --local )      LOCAL=1 ;;
+        -h | --help )       usage ;;
+     esac
+    shift
+done
+
+
+[ $RUNPOST -eq 0 ] || RUNPOST=1
+
+
 # generate a time stamp
 
 function timestamp { printf "${RED}Timestamp: $1 $(date)${NC}\n"  ; }
@@ -155,6 +197,7 @@ function saveoutput {
 
 
 
+ls -l
 
 
 
@@ -162,7 +205,7 @@ export RTTJOBNAME=TrigInDetValidation_el_Zee_IBL_pu40
 
 jobList=
 
-if [ $# -gt 0 -a "x$1" == "x--local" ]; then
+if [ $LOCAL -eq 1 ]; then
       echo "running locally"
       # get number of files 
       NFILES=$(grep "^#[[:space:]]*art-input-nfiles:" $0 | sed 's|.*art-input-nfiles:[[:space:]]*||g')
@@ -173,9 +216,12 @@ else
       fileList="['${ArtInFile//,/', '}']"
       _jobList="'../${ArtInFile//,/' '../}'"
       echo "List of files = $fileList"
-      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; done
+      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; echo "ART running over $git"  ; done
 fi
 
+
+if [ $RUNATHENA -eq 1 ]; then 
+
 get_files -jo            TrigInDetValidation/TrigInDetValidation_RTT_topOptions_ElectronSlice.py
 
 
@@ -190,7 +236,7 @@ for git in $jobList ; do
 
     ARGS="$git;EventMax=2000"
  
-    echo "ARGS: $ARGS"
+#   echo "ARGS: $ARGS"
 
     waitonproc
     
@@ -268,6 +314,9 @@ hadd expert-monitoring.root athena-*/expert-monitoring.root &> hadd.log
   
 for git in output-dataset/*.root ; do ln -s $git TrkNtuple-0000.root ; break ; done  
 
+fi
+
+
 ls -lt
 
 
@@ -285,6 +334,8 @@ for DATFILE in *.dat ; do
     fi
 done
 
+if [ $RUNATHENA -eq 1 -o $RUNPOST -eq 1 ]; then
+
 
 TIDArdict TIDAdata11-rtt.dat -f data-electron-merge.root -p 11 -b Test_bin.dat  2>&1 | tee TIDArdict_1.log
 echo "art-result: $? TIDArdict_1"
@@ -295,6 +346,9 @@ timestamp "TIDArdict"
 
 
 
+fi
+
+
 TIDArun-art.sh data-electron-merge.root data-el_Zee_IBL_pu40-reference.root HLT_e24_medium_idperf_InDetTrigTrackingxAODCnv_Electron_FTF HLT_e24_medium_idperf_InDetTrigTrackingxAODCnv_Electron_IDTrig -d HLTEF-plots  2>&1 | tee TIDArun_2.log
 echo "art-result: $? TIDArun_2"
 
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_el_zee_ibl_pu40_offline.sh b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_el_zee_ibl_pu40_offline.sh
index 308a3d0fb14097fb49093c629591b774cef38bf1..c4950df8e40cdda077d79b9bea4b7dfe1b2475da 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_el_zee_ibl_pu40_offline.sh
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_el_zee_ibl_pu40_offline.sh
@@ -1,7 +1,6 @@
 #!/bin/bash
 # art-description: art job for el_Zee_IBL_pu40_offline
 # art-type: grid
-# art-output: pid
 # art-output: HLTEF-plots
 # art-output: HLTL2-plots
 # art-output: HLTEF-plots-lowpt
@@ -27,6 +26,49 @@
 RED='\033[0;31m'
 NC='\033[0m'
 
+
+function usage { 
+    [ $# -gt 1 ] && echo $2
+
+    echo "Usage: $(basename $0) [args]"
+    echo 
+    echo "-d, --directory  DIRECTORY \t run from the specified directory"
+    echo "-l, --local                \t run locally rather than on the grid"
+    echo "-x, --exclude              \t don't run athena or the post processing, only the plotting stages"
+    echo "-p, --post                 \t force running of post processingthe post processing, even if -x is set"
+    echo "-f, --force                \t disable protection against rerunning where you shouldn't be"
+    echo "-h, --help                 \t this help"
+    [ $# -gt 0 ] && exit $1
+    exit 0
+}
+
+args=$(getopt -ql "searchpath:" -o "d:lxph" -- "$@")
+
+# eval set -- "$args"
+
+RUNATHENA=1
+RUNPOST=-1
+DIRECTORY=
+LOCAL=0
+FORCE=0
+
+while [ $# -ge 1 ]; do
+    case "$1" in
+        --) shift ; break ;;
+        -d | --directory )  if [ $# -lt 2 ]; then usage; fi ; DIRECTORY="$2" ; shift ;;
+        -x | --exclude )    RUNATHENA=0 ; [ $RUNPOST -eq -1 ] && RUNPOST=0;;
+        -p | --post )       RUNPOST=1 ;;
+        -f | --force )      FORCE=1 ;;
+        -l | --local )      LOCAL=1 ;;
+        -h | --help )       usage ;;
+     esac
+    shift
+done
+
+
+[ $RUNPOST -eq 0 ] || RUNPOST=1
+
+
 # generate a time stamp
 
 function timestamp { printf "${RED}Timestamp: $1 $(date)${NC}\n"  ; }
@@ -155,6 +197,7 @@ function saveoutput {
 
 
 
+ls -l
 
 
 
@@ -162,7 +205,7 @@ export RTTJOBNAME=TrigInDetValidation_el_Zee_IBL_pu40_offline
 
 jobList=
 
-if [ $# -gt 0 -a "x$1" == "x--local" ]; then
+if [ $LOCAL -eq 1 ]; then
       echo "running locally"
       # get number of files 
       NFILES=$(grep "^#[[:space:]]*art-input-nfiles:" $0 | sed 's|.*art-input-nfiles:[[:space:]]*||g')
@@ -173,9 +216,12 @@ else
       fileList="['${ArtInFile//,/', '}']"
       _jobList="'../${ArtInFile//,/' '../}'"
       echo "List of files = $fileList"
-      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; done
+      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; echo "ART running over $git"  ; done
 fi
 
+
+if [ $RUNATHENA -eq 1 ]; then 
+
 get_files -jo            TrigInDetValidation/TrigInDetValidation_RTT_topOptions_ElectronSlice.py
 
 
@@ -190,7 +236,7 @@ for git in $jobList ; do
 
     ARGS="$git;EventMax=2000;doIDNewTracking=True;PdgId=11"
  
-    echo "ARGS: $ARGS"
+#   echo "ARGS: $ARGS"
 
     waitonproc
     
@@ -268,6 +314,9 @@ hadd expert-monitoring.root athena-*/expert-monitoring.root &> hadd.log
   
 for git in output-dataset/*.root ; do ln -s $git TrkNtuple-0000.root ; break ; done  
 
+fi
+
+
 ls -lt
 
 
@@ -285,6 +334,8 @@ for DATFILE in *.dat ; do
     fi
 done
 
+if [ $RUNATHENA -eq 1 -o $RUNPOST -eq 1 ]; then
+
 
 TIDArdict TIDAdata11-rtt-offline.dat -f data-electron-merge.root -b Test_bin.dat  2>&1 | tee TIDArdict_1.log
 echo "art-result: $? TIDArdict_1"
@@ -295,6 +346,9 @@ timestamp "TIDArdict"
 
 
 
+fi
+
+
 TIDArun-art.sh data-electron-merge.root data-el_Zee_IBL_pu40_offline-reference.root HLT_e24_medium_idperf_InDetTrigTrackingxAODCnv_Electron_FTF HLT_e24_medium_idperf_InDetTrigTrackingxAODCnv_Electron_IDTrig -d HLTEF-plots  2>&1 | tee TIDArun_2.log
 echo "art-result: $? TIDArun_2"
 
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_el_zee_ibl_pu40_offline_rzmatcher.sh b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_el_zee_ibl_pu40_offline_rzmatcher.sh
index 0615015d154e01036e627deba1a9a8c6e7aedcf0..aca9132a16183f1433a3750836309f355fbc7c19 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_el_zee_ibl_pu40_offline_rzmatcher.sh
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_el_zee_ibl_pu40_offline_rzmatcher.sh
@@ -1,7 +1,6 @@
 #!/bin/bash
 # art-description: art job for el_Zee_IBL_pu40_offline_rzMatcher
 # art-type: grid
-# art-output: pid
 # art-output: HLTEF-plots
 # art-output: HLTL2-plots
 # art-output: HLTEF-plots-lowpt
@@ -27,6 +26,49 @@
 RED='\033[0;31m'
 NC='\033[0m'
 
+
+function usage { 
+    [ $# -gt 1 ] && echo $2
+
+    echo "Usage: $(basename $0) [args]"
+    echo 
+    echo "-d, --directory  DIRECTORY \t run from the specified directory"
+    echo "-l, --local                \t run locally rather than on the grid"
+    echo "-x, --exclude              \t don't run athena or the post processing, only the plotting stages"
+    echo "-p, --post                 \t force running of post processingthe post processing, even if -x is set"
+    echo "-f, --force                \t disable protection against rerunning where you shouldn't be"
+    echo "-h, --help                 \t this help"
+    [ $# -gt 0 ] && exit $1
+    exit 0
+}
+
+args=$(getopt -ql "searchpath:" -o "d:lxph" -- "$@")
+
+# eval set -- "$args"
+
+RUNATHENA=1
+RUNPOST=-1
+DIRECTORY=
+LOCAL=0
+FORCE=0
+
+while [ $# -ge 1 ]; do
+    case "$1" in
+        --) shift ; break ;;
+        -d | --directory )  if [ $# -lt 2 ]; then usage; fi ; DIRECTORY="$2" ; shift ;;
+        -x | --exclude )    RUNATHENA=0 ; [ $RUNPOST -eq -1 ] && RUNPOST=0;;
+        -p | --post )       RUNPOST=1 ;;
+        -f | --force )      FORCE=1 ;;
+        -l | --local )      LOCAL=1 ;;
+        -h | --help )       usage ;;
+     esac
+    shift
+done
+
+
+[ $RUNPOST -eq 0 ] || RUNPOST=1
+
+
 # generate a time stamp
 
 function timestamp { printf "${RED}Timestamp: $1 $(date)${NC}\n"  ; }
@@ -155,6 +197,7 @@ function saveoutput {
 
 
 
+ls -l
 
 
 
@@ -162,7 +205,7 @@ export RTTJOBNAME=TrigInDetValidation_el_Zee_IBL_pu40_offline_rzMatcher
 
 jobList=
 
-if [ $# -gt 0 -a "x$1" == "x--local" ]; then
+if [ $LOCAL -eq 1 ]; then
       echo "running locally"
       # get number of files 
       NFILES=$(grep "^#[[:space:]]*art-input-nfiles:" $0 | sed 's|.*art-input-nfiles:[[:space:]]*||g')
@@ -173,9 +216,12 @@ else
       fileList="['${ArtInFile//,/', '}']"
       _jobList="'../${ArtInFile//,/' '../}'"
       echo "List of files = $fileList"
-      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; done
+      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; echo "ART running over $git"  ; done
 fi
 
+
+if [ $RUNATHENA -eq 1 ]; then 
+
 get_files -jo            TrigInDetValidation/TrigInDetValidation_RTT_topOptions_ElectronSlice.py
 
 
@@ -190,7 +236,7 @@ for git in $jobList ; do
 
     ARGS="$git;EventMax=2000;doIDNewTracking=True;PdgId=11"
  
-    echo "ARGS: $ARGS"
+#   echo "ARGS: $ARGS"
 
     waitonproc
     
@@ -268,6 +314,9 @@ hadd expert-monitoring.root athena-*/expert-monitoring.root &> hadd.log
   
 for git in output-dataset/*.root ; do ln -s $git TrkNtuple-0000.root ; break ; done  
 
+fi
+
+
 ls -lt
 
 
@@ -285,6 +334,8 @@ for DATFILE in *.dat ; do
     fi
 done
 
+if [ $RUNATHENA -eq 1 -o $RUNPOST -eq 1 ]; then
+
 
 TIDArdict TIDAdata11-rtt-offline-rzMatcher.dat -f data-electron-merge.root -b Test_bin.dat  2>&1 | tee TIDArdict_1.log
 echo "art-result: $? TIDArdict_1"
@@ -295,6 +346,9 @@ timestamp "TIDArdict"
 
 
 
+fi
+
+
 TIDArun-art.sh data-electron-merge.root data-el_Zee_IBL_pu40_offline_rzMatcher-reference.root HLT_e24_medium_idperf_InDetTrigTrackingxAODCnv_Electron_FTF HLT_e24_medium_idperf_InDetTrigTrackingxAODCnv_Electron_IDTrig -d HLTEF-plots  2>&1 | tee TIDArun_2.log
 echo "art-result: $? TIDArun_2"
 
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_el_zee_ibl_pu40_rzmatcher.sh b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_el_zee_ibl_pu40_rzmatcher.sh
index 1a88879ccaae7e0fd0759485a567650d060b4e82..fb323072b83fefdd34eff87ae636a30c50cddd1c 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_el_zee_ibl_pu40_rzmatcher.sh
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_el_zee_ibl_pu40_rzmatcher.sh
@@ -1,7 +1,6 @@
 #!/bin/bash
 # art-description: art job for el_Zee_IBL_pu40_rzMatcher
 # art-type: grid
-# art-output: pid
 # art-output: HLTEF-plots
 # art-output: HLTL2-plots
 # art-output: HLTEF-plots-lowpt
@@ -27,6 +26,49 @@
 RED='\033[0;31m'
 NC='\033[0m'
 
+
+function usage { 
+    [ $# -gt 1 ] && echo $2
+
+    echo "Usage: $(basename $0) [args]"
+    echo 
+    echo "-d, --directory  DIRECTORY \t run from the specified directory"
+    echo "-l, --local                \t run locally rather than on the grid"
+    echo "-x, --exclude              \t don't run athena or the post processing, only the plotting stages"
+    echo "-p, --post                 \t force running of post processingthe post processing, even if -x is set"
+    echo "-f, --force                \t disable protection against rerunning where you shouldn't be"
+    echo "-h, --help                 \t this help"
+    [ $# -gt 0 ] && exit $1
+    exit 0
+}
+
+args=$(getopt -ql "searchpath:" -o "d:lxph" -- "$@")
+
+# eval set -- "$args"
+
+RUNATHENA=1
+RUNPOST=-1
+DIRECTORY=
+LOCAL=0
+FORCE=0
+
+while [ $# -ge 1 ]; do
+    case "$1" in
+        --) shift ; break ;;
+        -d | --directory )  if [ $# -lt 2 ]; then usage; fi ; DIRECTORY="$2" ; shift ;;
+        -x | --exclude )    RUNATHENA=0 ; [ $RUNPOST -eq -1 ] && RUNPOST=0;;
+        -p | --post )       RUNPOST=1 ;;
+        -f | --force )      FORCE=1 ;;
+        -l | --local )      LOCAL=1 ;;
+        -h | --help )       usage ;;
+     esac
+    shift
+done
+
+
+[ $RUNPOST -eq 0 ] || RUNPOST=1
+
+
 # generate a time stamp
 
 function timestamp { printf "${RED}Timestamp: $1 $(date)${NC}\n"  ; }
@@ -155,6 +197,7 @@ function saveoutput {
 
 
 
+ls -l
 
 
 
@@ -162,7 +205,7 @@ export RTTJOBNAME=TrigInDetValidation_el_Zee_IBL_pu40_rzMatcher
 
 jobList=
 
-if [ $# -gt 0 -a "x$1" == "x--local" ]; then
+if [ $LOCAL -eq 1 ]; then
       echo "running locally"
       # get number of files 
       NFILES=$(grep "^#[[:space:]]*art-input-nfiles:" $0 | sed 's|.*art-input-nfiles:[[:space:]]*||g')
@@ -173,9 +216,12 @@ else
       fileList="['${ArtInFile//,/', '}']"
       _jobList="'../${ArtInFile//,/' '../}'"
       echo "List of files = $fileList"
-      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; done
+      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; echo "ART running over $git"  ; done
 fi
 
+
+if [ $RUNATHENA -eq 1 ]; then 
+
 get_files -jo            TrigInDetValidation/TrigInDetValidation_RTT_topOptions_ElectronSlice.py
 
 
@@ -190,7 +236,7 @@ for git in $jobList ; do
 
     ARGS="$git;EventMax=2000;PdgId=11"
  
-    echo "ARGS: $ARGS"
+#   echo "ARGS: $ARGS"
 
     waitonproc
     
@@ -268,6 +314,9 @@ hadd expert-monitoring.root athena-*/expert-monitoring.root &> hadd.log
   
 for git in output-dataset/*.root ; do ln -s $git TrkNtuple-0000.root ; break ; done  
 
+fi
+
+
 ls -lt
 
 
@@ -285,6 +334,8 @@ for DATFILE in *.dat ; do
     fi
 done
 
+if [ $RUNATHENA -eq 1 -o $RUNPOST -eq 1 ]; then
+
 
 TIDArdict TIDAdata11-rtt-rzMatcher.dat -f data-electron-merge.root -b Test_bin.dat  2>&1 | tee TIDArdict_1.log
 echo "art-result: $? TIDArdict_1"
@@ -295,6 +346,9 @@ timestamp "TIDArdict"
 
 
 
+fi
+
+
 TIDArun-art.sh data-electron-merge.root data-el_Zee_IBL_pu40_rzMatcher-reference.root HLT_e24_medium_idperf_InDetTrigTrackingxAODCnv_Electron_FTF HLT_e24_medium_idperf_InDetTrigTrackingxAODCnv_Electron_IDTrig -d HLTEF-plots  2>&1 | tee TIDArun_2.log
 echo "art-result: $? TIDArun_2"
 
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_ftk_beamspot_ttbar.sh b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_ftk_beamspot_ttbar.sh
index 875f2c4e45df9a022e526a51df61e25add4e6813..9cbf823ed69bd4ae7a8ee16d24450265f2775321 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_ftk_beamspot_ttbar.sh
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_ftk_beamspot_ttbar.sh
@@ -1,7 +1,6 @@
 #!/bin/bash
 # art-description: art job for FTK_beamspot_ttbar
 # art-type: grid
-# art-output: pid
 # art-output: HLTL2-plots
 # art-output: times
 # art-output: times-FTF
@@ -24,6 +23,49 @@
 RED='\033[0;31m'
 NC='\033[0m'
 
+
+function usage { 
+    [ $# -gt 1 ] && echo $2
+
+    echo "Usage: $(basename $0) [args]"
+    echo 
+    echo "-d, --directory  DIRECTORY \t run from the specified directory"
+    echo "-l, --local                \t run locally rather than on the grid"
+    echo "-x, --exclude              \t don't run athena or the post processing, only the plotting stages"
+    echo "-p, --post                 \t force running of post processingthe post processing, even if -x is set"
+    echo "-f, --force                \t disable protection against rerunning where you shouldn't be"
+    echo "-h, --help                 \t this help"
+    [ $# -gt 0 ] && exit $1
+    exit 0
+}
+
+args=$(getopt -ql "searchpath:" -o "d:lxph" -- "$@")
+
+# eval set -- "$args"
+
+RUNATHENA=1
+RUNPOST=-1
+DIRECTORY=
+LOCAL=0
+FORCE=0
+
+while [ $# -ge 1 ]; do
+    case "$1" in
+        --) shift ; break ;;
+        -d | --directory )  if [ $# -lt 2 ]; then usage; fi ; DIRECTORY="$2" ; shift ;;
+        -x | --exclude )    RUNATHENA=0 ; [ $RUNPOST -eq -1 ] && RUNPOST=0;;
+        -p | --post )       RUNPOST=1 ;;
+        -f | --force )      FORCE=1 ;;
+        -l | --local )      LOCAL=1 ;;
+        -h | --help )       usage ;;
+     esac
+    shift
+done
+
+
+[ $RUNPOST -eq 0 ] || RUNPOST=1
+
+
 # generate a time stamp
 
 function timestamp { printf "${RED}Timestamp: $1 $(date)${NC}\n"  ; }
@@ -152,6 +194,7 @@ function saveoutput {
 
 
 
+ls -l
 
 
 
@@ -159,7 +202,7 @@ export RTTJOBNAME=TrigInDetValidation_FTK_beamspot_ttbar
 
 jobList=
 
-if [ $# -gt 0 -a "x$1" == "x--local" ]; then
+if [ $LOCAL -eq 1 ]; then
       echo "running locally"
       # get number of files 
       NFILES=$(grep "^#[[:space:]]*art-input-nfiles:" $0 | sed 's|.*art-input-nfiles:[[:space:]]*||g')
@@ -170,9 +213,12 @@ else
       fileList="['${ArtInFile//,/', '}']"
       _jobList="'../${ArtInFile//,/' '../}'"
       echo "List of files = $fileList"
-      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; done
+      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; echo "ART running over $git"  ; done
 fi
 
+
+if [ $RUNATHENA -eq 1 ]; then 
+
 get_files -jo             TrigInDetValidation/TrigInDetValidation_RTT_topOptions_BeamspotSlice.py
 
 
@@ -187,7 +233,7 @@ for git in $jobList ; do
 
     ARGS="$git;EventMax=500;doFTK=True;rec.doFloatingPointException.set_Value_and_Lock(False)"
  
-    echo "ARGS: $ARGS"
+#   echo "ARGS: $ARGS"
 
     waitonproc
     
@@ -265,6 +311,9 @@ hadd expert-monitoring.root athena-*/expert-monitoring.root &> hadd.log
   
 for git in output-dataset/*.root ; do ln -s $git TrkNtuple-0000.root ; break ; done  
 
+fi
+
+
 ls -lt
 
 
@@ -282,6 +331,8 @@ for DATFILE in *.dat ; do
     fi
 done
 
+if [ $RUNATHENA -eq 1 -o $RUNPOST -eq 1 ]; then
+
 
 TIDArdict TIDAdata11-rtt.dat -f data-beamspot-FTK.root -b Test_bin.dat  2>&1 | tee TIDArdict_1.log
 echo "art-result: $? TIDArdict_1"
@@ -292,6 +343,9 @@ timestamp "TIDArdict"
 
 
 
+fi
+
+
 TIDArun-art.sh data-beamspot-FTK.root data-FTK_beamspot_ttbar-reference.root HLT_beamspot_allTE_trkfast_InDetTrigTrackingxAODCnv_BeamSpot_FTF HLT_beamspot_idperf_FTK_InDetTrigTrackingxAODCnv_BeamSpot_FTKMon HLT_beamspot_allTE_FTKRefit_InDetTrigTrackingxAODCnv_BeamSpot_FTKRefit -d HLTL2-plots  2>&1 | tee TIDArun_2.log
 echo "art-result: $? TIDArun_2"
 
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_ftk_bjet_ttbar.sh b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_ftk_bjet_ttbar.sh
index be437490035182fa892567224d4f2e2955cd5a58..b3299702fcdd1f82f63d06aa19efc27fd91bf904 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_ftk_bjet_ttbar.sh
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_ftk_bjet_ttbar.sh
@@ -1,7 +1,6 @@
 #!/bin/bash
 # art-description: art job for FTK_bjet_ttbar
 # art-type: grid
-# art-output: pid
 # art-output: HLTL2-plots
 # art-output: HLTEF-plots
 # art-output: times
@@ -25,6 +24,49 @@
 RED='\033[0;31m'
 NC='\033[0m'
 
+
+function usage { 
+    [ $# -gt 1 ] && echo $2
+
+    echo "Usage: $(basename $0) [args]"
+    echo 
+    echo "-d, --directory  DIRECTORY \t run from the specified directory"
+    echo "-l, --local                \t run locally rather than on the grid"
+    echo "-x, --exclude              \t don't run athena or the post processing, only the plotting stages"
+    echo "-p, --post                 \t force running of post processingthe post processing, even if -x is set"
+    echo "-f, --force                \t disable protection against rerunning where you shouldn't be"
+    echo "-h, --help                 \t this help"
+    [ $# -gt 0 ] && exit $1
+    exit 0
+}
+
+args=$(getopt -ql "searchpath:" -o "d:lxph" -- "$@")
+
+# eval set -- "$args"
+
+RUNATHENA=1
+RUNPOST=-1
+DIRECTORY=
+LOCAL=0
+FORCE=0
+
+while [ $# -ge 1 ]; do
+    case "$1" in
+        --) shift ; break ;;
+        -d | --directory )  if [ $# -lt 2 ]; then usage; fi ; DIRECTORY="$2" ; shift ;;
+        -x | --exclude )    RUNATHENA=0 ; [ $RUNPOST -eq -1 ] && RUNPOST=0;;
+        -p | --post )       RUNPOST=1 ;;
+        -f | --force )      FORCE=1 ;;
+        -l | --local )      LOCAL=1 ;;
+        -h | --help )       usage ;;
+     esac
+    shift
+done
+
+
+[ $RUNPOST -eq 0 ] || RUNPOST=1
+
+
 # generate a time stamp
 
 function timestamp { printf "${RED}Timestamp: $1 $(date)${NC}\n"  ; }
@@ -153,6 +195,7 @@ function saveoutput {
 
 
 
+ls -l
 
 
 
@@ -160,7 +203,7 @@ export RTTJOBNAME=TrigInDetValidation_FTK_bjet_ttbar
 
 jobList=
 
-if [ $# -gt 0 -a "x$1" == "x--local" ]; then
+if [ $LOCAL -eq 1 ]; then
       echo "running locally"
       # get number of files 
       NFILES=$(grep "^#[[:space:]]*art-input-nfiles:" $0 | sed 's|.*art-input-nfiles:[[:space:]]*||g')
@@ -171,9 +214,12 @@ else
       fileList="['${ArtInFile//,/', '}']"
       _jobList="'../${ArtInFile//,/' '../}'"
       echo "List of files = $fileList"
-      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; done
+      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; echo "ART running over $git"  ; done
 fi
 
+
+if [ $RUNATHENA -eq 1 ]; then 
+
 get_files -jo             TrigInDetValidation/TrigInDetValidation_RTT_topOptions_BjetSlice.py
 
 
@@ -188,7 +234,7 @@ for git in $jobList ; do
 
     ARGS="$git;EventMax=500;doFTK=True"
  
-    echo "ARGS: $ARGS"
+#   echo "ARGS: $ARGS"
 
     waitonproc
     
@@ -266,6 +312,9 @@ hadd expert-monitoring.root athena-*/expert-monitoring.root &> hadd.log
   
 for git in output-dataset/*.root ; do ln -s $git TrkNtuple-0000.root ; break ; done  
 
+fi
+
+
 ls -lt
 
 
@@ -283,6 +332,8 @@ for DATFILE in *.dat ; do
     fi
 done
 
+if [ $RUNATHENA -eq 1 -o $RUNPOST -eq 1 ]; then
+
 
 TIDArdict TIDAdata11-rtt.dat -f data-bjet-FTK.root -b Test_bin.dat  2>&1 | tee TIDArdict_1.log
 echo "art-result: $? TIDArdict_1"
@@ -293,6 +344,9 @@ timestamp "TIDArdict"
 
 
 
+fi
+
+
 TIDArun-art.sh data-bjet-FTK.root data-FTK_bjet_ttbar-reference.root HLT_j55_boffperf_split_InDetTrigTrackingxAODCnv_Bjet_FTF_forID HLT_j55_boffperf_split_FTKVtx_InDetTrigTrackingxAODCnv_Bjet_FTF HLT_j55_boffperf_split_FTK_InDetTrigTrackingxAODCnv_Bjet_FTK_SplitJet HLT_j55_boffperf_split_FTKRefit_InDetTrigTrackingxAODCnv_Bjet_FTKRefit_SplitJet -d HLTL2-plots  2>&1 | tee TIDArun_2.log
 echo "art-result: $? TIDArun_2"
 
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_ftk_bjet_ttbar_offline.sh b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_ftk_bjet_ttbar_offline.sh
index 3259f0bfd2357b9f629db3d2e9a36bf0f70168fe..2060b354b38ba42108dbe83ee7744ce18b13e070 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_ftk_bjet_ttbar_offline.sh
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_ftk_bjet_ttbar_offline.sh
@@ -1,7 +1,6 @@
 #!/bin/bash
 # art-description: art job for FTK_bjet_ttbar_offline
 # art-type: grid
-# art-output: pid
 # art-output: HLTL2-plots
 # art-output: HLTEF-plots
 # art-output: times
@@ -25,6 +24,49 @@
 RED='\033[0;31m'
 NC='\033[0m'
 
+
+function usage { 
+    [ $# -gt 1 ] && echo $2
+
+    echo "Usage: $(basename $0) [args]"
+    echo 
+    echo "-d, --directory  DIRECTORY \t run from the specified directory"
+    echo "-l, --local                \t run locally rather than on the grid"
+    echo "-x, --exclude              \t don't run athena or the post processing, only the plotting stages"
+    echo "-p, --post                 \t force running of post processingthe post processing, even if -x is set"
+    echo "-f, --force                \t disable protection against rerunning where you shouldn't be"
+    echo "-h, --help                 \t this help"
+    [ $# -gt 0 ] && exit $1
+    exit 0
+}
+
+args=$(getopt -ql "searchpath:" -o "d:lxph" -- "$@")
+
+# eval set -- "$args"
+
+RUNATHENA=1
+RUNPOST=-1
+DIRECTORY=
+LOCAL=0
+FORCE=0
+
+while [ $# -ge 1 ]; do
+    case "$1" in
+        --) shift ; break ;;
+        -d | --directory )  if [ $# -lt 2 ]; then usage; fi ; DIRECTORY="$2" ; shift ;;
+        -x | --exclude )    RUNATHENA=0 ; [ $RUNPOST -eq -1 ] && RUNPOST=0;;
+        -p | --post )       RUNPOST=1 ;;
+        -f | --force )      FORCE=1 ;;
+        -l | --local )      LOCAL=1 ;;
+        -h | --help )       usage ;;
+     esac
+    shift
+done
+
+
+[ $RUNPOST -eq 0 ] || RUNPOST=1
+
+
 # generate a time stamp
 
 function timestamp { printf "${RED}Timestamp: $1 $(date)${NC}\n"  ; }
@@ -153,6 +195,7 @@ function saveoutput {
 
 
 
+ls -l
 
 
 
@@ -160,7 +203,7 @@ export RTTJOBNAME=TrigInDetValidation_FTK_bjet_ttbar_offline
 
 jobList=
 
-if [ $# -gt 0 -a "x$1" == "x--local" ]; then
+if [ $LOCAL -eq 1 ]; then
       echo "running locally"
       # get number of files 
       NFILES=$(grep "^#[[:space:]]*art-input-nfiles:" $0 | sed 's|.*art-input-nfiles:[[:space:]]*||g')
@@ -171,9 +214,12 @@ else
       fileList="['${ArtInFile//,/', '}']"
       _jobList="'../${ArtInFile//,/' '../}'"
       echo "List of files = $fileList"
-      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; done
+      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; echo "ART running over $git"  ; done
 fi
 
+
+if [ $RUNATHENA -eq 1 ]; then 
+
 get_files -jo             TrigInDetValidation/TrigInDetValidation_RTT_topOptions_BjetSlice.py
 
 
@@ -188,7 +234,7 @@ for git in $jobList ; do
 
     ARGS="$git;EventMax=500;doIDNewTracking=True;doFTK=True"
  
-    echo "ARGS: $ARGS"
+#   echo "ARGS: $ARGS"
 
     waitonproc
     
@@ -266,6 +312,9 @@ hadd expert-monitoring.root athena-*/expert-monitoring.root &> hadd.log
   
 for git in output-dataset/*.root ; do ln -s $git TrkNtuple-0000.root ; break ; done  
 
+fi
+
+
 ls -lt
 
 
@@ -283,6 +332,8 @@ for DATFILE in *.dat ; do
     fi
 done
 
+if [ $RUNATHENA -eq 1 -o $RUNPOST -eq 1 ]; then
+
 
 TIDArdict TIDAdata11-rtt-offline.dat -f data-bjet-FTK.root -b Test_bin.dat  2>&1 | tee TIDArdict_1.log
 echo "art-result: $? TIDArdict_1"
@@ -293,6 +344,9 @@ timestamp "TIDArdict"
 
 
 
+fi
+
+
 TIDArun-art.sh data-bjet-FTK.root data-FTK_bjet_ttbar_offline-reference.root HLT_j55_boffperf_split_InDetTrigTrackingxAODCnv_Bjet_FTF_forID HLT_j55_boffperf_split_FTKVtx_InDetTrigTrackingxAODCnv_Bjet_FTF HLT_j55_boffperf_split_FTK_InDetTrigTrackingxAODCnv_Bjet_FTK_SplitJet HLT_j55_boffperf_split_FTKRefit_InDetTrigTrackingxAODCnv_Bjet_FTKRefit_SplitJet -d HLTL2-plots  2>&1 | tee TIDArun_2.log
 echo "art-result: $? TIDArun_2"
 
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_ftk_mu_ttbar.sh b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_ftk_mu_ttbar.sh
index bb71f32d2f1b8659655549a6b03ea084ec22d5d4..cfd2af440396bc5055a0a493fb261b8bf0d59c66 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_ftk_mu_ttbar.sh
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_ftk_mu_ttbar.sh
@@ -1,7 +1,6 @@
 #!/bin/bash
 # art-description: art job for FTK_mu_ttbar
 # art-type: grid
-# art-output: pid
 # art-output: HLTL2-plots
 # art-output: HLTEF-plots
 # art-output: HLTL2-plots-lowpt
@@ -27,6 +26,49 @@
 RED='\033[0;31m'
 NC='\033[0m'
 
+
+function usage { 
+    [ $# -gt 1 ] && echo $2
+
+    echo "Usage: $(basename $0) [args]"
+    echo 
+    echo "-d, --directory  DIRECTORY \t run from the specified directory"
+    echo "-l, --local                \t run locally rather than on the grid"
+    echo "-x, --exclude              \t don't run athena or the post processing, only the plotting stages"
+    echo "-p, --post                 \t force running of post processingthe post processing, even if -x is set"
+    echo "-f, --force                \t disable protection against rerunning where you shouldn't be"
+    echo "-h, --help                 \t this help"
+    [ $# -gt 0 ] && exit $1
+    exit 0
+}
+
+args=$(getopt -ql "searchpath:" -o "d:lxph" -- "$@")
+
+# eval set -- "$args"
+
+RUNATHENA=1
+RUNPOST=-1
+DIRECTORY=
+LOCAL=0
+FORCE=0
+
+while [ $# -ge 1 ]; do
+    case "$1" in
+        --) shift ; break ;;
+        -d | --directory )  if [ $# -lt 2 ]; then usage; fi ; DIRECTORY="$2" ; shift ;;
+        -x | --exclude )    RUNATHENA=0 ; [ $RUNPOST -eq -1 ] && RUNPOST=0;;
+        -p | --post )       RUNPOST=1 ;;
+        -f | --force )      FORCE=1 ;;
+        -l | --local )      LOCAL=1 ;;
+        -h | --help )       usage ;;
+     esac
+    shift
+done
+
+
+[ $RUNPOST -eq 0 ] || RUNPOST=1
+
+
 # generate a time stamp
 
 function timestamp { printf "${RED}Timestamp: $1 $(date)${NC}\n"  ; }
@@ -155,6 +197,7 @@ function saveoutput {
 
 
 
+ls -l
 
 
 
@@ -162,7 +205,7 @@ export RTTJOBNAME=TrigInDetValidation_FTK_mu_ttbar
 
 jobList=
 
-if [ $# -gt 0 -a "x$1" == "x--local" ]; then
+if [ $LOCAL -eq 1 ]; then
       echo "running locally"
       # get number of files 
       NFILES=$(grep "^#[[:space:]]*art-input-nfiles:" $0 | sed 's|.*art-input-nfiles:[[:space:]]*||g')
@@ -173,9 +216,12 @@ else
       fileList="['${ArtInFile//,/', '}']"
       _jobList="'../${ArtInFile//,/' '../}'"
       echo "List of files = $fileList"
-      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; done
+      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; echo "ART running over $git"  ; done
 fi
 
+
+if [ $RUNATHENA -eq 1 ]; then 
+
 get_files -jo             TrigInDetValidation/TrigInDetValidation_RTT_topOptions_MuonSlice.py
 
 
@@ -190,7 +236,7 @@ for git in $jobList ; do
 
     ARGS="$git;EventMax=500;doFTK=True"
  
-    echo "ARGS: $ARGS"
+#   echo "ARGS: $ARGS"
 
     waitonproc
     
@@ -268,6 +314,9 @@ hadd expert-monitoring.root athena-*/expert-monitoring.root &> hadd.log
   
 for git in output-dataset/*.root ; do ln -s $git TrkNtuple-0000.root ; break ; done  
 
+fi
+
+
 ls -lt
 
 
@@ -285,6 +334,8 @@ for DATFILE in *.dat ; do
     fi
 done
 
+if [ $RUNATHENA -eq 1 -o $RUNPOST -eq 1 ]; then
+
 
 TIDArdict TIDAdata11-rtt.dat -f data-muon-FTK.root -p 13 -b Test_bin.dat  2>&1 | tee TIDArdict_1.log
 echo "art-result: $? TIDArdict_1"
@@ -295,6 +346,9 @@ timestamp "TIDArdict"
 
 
 
+fi
+
+
 TIDArun-art.sh data-muon-FTK.root data-FTK_mu_ttbar-reference.root HLT_mu24_idperf_InDetTrigTrackingxAODCnv_Muon_FTF HLT_mu24_FTK_idperf_InDetTrigTrackingxAODCnv_Muon_FTK HLT_mu24_FTKRefit_idperf_InDetTrigTrackingxAODCnv_Muon_FTKRefit -d HLTL2-plots  2>&1 | tee TIDArun_2.log
 echo "art-result: $? TIDArun_2"
 
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_ftk_mu_ttbar_offline.sh b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_ftk_mu_ttbar_offline.sh
index 9ca63a2d5f465712511fefce1f833c0e939567ee..c34a834b800342c1efdfa0b868a75687ededd39f 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_ftk_mu_ttbar_offline.sh
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_ftk_mu_ttbar_offline.sh
@@ -1,7 +1,6 @@
 #!/bin/bash
 # art-description: art job for FTK_mu_ttbar_offline
 # art-type: grid
-# art-output: pid
 # art-output: HLTL2-plots
 # art-output: HLTEF-plots
 # art-output: HLTL2-plots-lowpt
@@ -27,6 +26,49 @@
 RED='\033[0;31m'
 NC='\033[0m'
 
+
+function usage { 
+    [ $# -gt 1 ] && echo $2
+
+    echo "Usage: $(basename $0) [args]"
+    echo 
+    echo "-d, --directory  DIRECTORY \t run from the specified directory"
+    echo "-l, --local                \t run locally rather than on the grid"
+    echo "-x, --exclude              \t don't run athena or the post processing, only the plotting stages"
+    echo "-p, --post                 \t force running of post processingthe post processing, even if -x is set"
+    echo "-f, --force                \t disable protection against rerunning where you shouldn't be"
+    echo "-h, --help                 \t this help"
+    [ $# -gt 0 ] && exit $1
+    exit 0
+}
+
+args=$(getopt -ql "searchpath:" -o "d:lxph" -- "$@")
+
+# eval set -- "$args"
+
+RUNATHENA=1
+RUNPOST=-1
+DIRECTORY=
+LOCAL=0
+FORCE=0
+
+while [ $# -ge 1 ]; do
+    case "$1" in
+        --) shift ; break ;;
+        -d | --directory )  if [ $# -lt 2 ]; then usage; fi ; DIRECTORY="$2" ; shift ;;
+        -x | --exclude )    RUNATHENA=0 ; [ $RUNPOST -eq -1 ] && RUNPOST=0;;
+        -p | --post )       RUNPOST=1 ;;
+        -f | --force )      FORCE=1 ;;
+        -l | --local )      LOCAL=1 ;;
+        -h | --help )       usage ;;
+     esac
+    shift
+done
+
+
+[ $RUNPOST -eq 0 ] || RUNPOST=1
+
+
 # generate a time stamp
 
 function timestamp { printf "${RED}Timestamp: $1 $(date)${NC}\n"  ; }
@@ -155,6 +197,7 @@ function saveoutput {
 
 
 
+ls -l
 
 
 
@@ -162,7 +205,7 @@ export RTTJOBNAME=TrigInDetValidation_FTK_mu_ttbar_offline
 
 jobList=
 
-if [ $# -gt 0 -a "x$1" == "x--local" ]; then
+if [ $LOCAL -eq 1 ]; then
       echo "running locally"
       # get number of files 
       NFILES=$(grep "^#[[:space:]]*art-input-nfiles:" $0 | sed 's|.*art-input-nfiles:[[:space:]]*||g')
@@ -173,9 +216,12 @@ else
       fileList="['${ArtInFile//,/', '}']"
       _jobList="'../${ArtInFile//,/' '../}'"
       echo "List of files = $fileList"
-      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; done
+      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; echo "ART running over $git"  ; done
 fi
 
+
+if [ $RUNATHENA -eq 1 ]; then 
+
 get_files -jo             TrigInDetValidation/TrigInDetValidation_RTT_topOptions_MuonSlice.py
 
 
@@ -190,7 +236,7 @@ for git in $jobList ; do
 
     ARGS="$git;EventMax=500;doIDNewTracking=True;doFTK=True"
  
-    echo "ARGS: $ARGS"
+#   echo "ARGS: $ARGS"
 
     waitonproc
     
@@ -268,6 +314,9 @@ hadd expert-monitoring.root athena-*/expert-monitoring.root &> hadd.log
   
 for git in output-dataset/*.root ; do ln -s $git TrkNtuple-0000.root ; break ; done  
 
+fi
+
+
 ls -lt
 
 
@@ -285,6 +334,8 @@ for DATFILE in *.dat ; do
     fi
 done
 
+if [ $RUNATHENA -eq 1 -o $RUNPOST -eq 1 ]; then
+
 
 TIDArdict TIDAdata11-rtt-offline.dat -f data-muon-FTK.root -p 13 -b Test_bin.dat  2>&1 | tee TIDArdict_1.log
 echo "art-result: $? TIDArdict_1"
@@ -295,6 +346,9 @@ timestamp "TIDArdict"
 
 
 
+fi
+
+
 TIDArun-art.sh data-muon-FTK.root data-FTK_mu_ttbar_offline-reference.root HLT_mu24_idperf_InDetTrigTrackingxAODCnv_Muon_FTF HLT_mu24_FTK_idperf_InDetTrigTrackingxAODCnv_Muon_FTK HLT_mu24_FTKRefit_idperf_InDetTrigTrackingxAODCnv_Muon_FTKRefit -d HLTL2-plots  2>&1 | tee TIDArun_2.log
 echo "art-result: $? TIDArun_2"
 
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_ftk_tau_tautau.sh b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_ftk_tau_tautau.sh
index 2c9f7803c2551a17e0d7c87b5068c4243807a504..6e36bc3b40d251a9c44d00668e460db6448595eb 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_ftk_tau_tautau.sh
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_ftk_tau_tautau.sh
@@ -1,7 +1,6 @@
 #!/bin/bash
 # art-description: art job for FTK_tau_tautau
 # art-type: grid
-# art-output: pid
 # art-output: HLTL2-plots
 # art-output: HLTEF-plots
 # art-output: times
@@ -25,6 +24,49 @@
 RED='\033[0;31m'
 NC='\033[0m'
 
+
+function usage { 
+    [ $# -gt 1 ] && echo $2
+
+    echo "Usage: $(basename $0) [args]"
+    echo 
+    echo "-d, --directory  DIRECTORY \t run from the specified directory"
+    echo "-l, --local                \t run locally rather than on the grid"
+    echo "-x, --exclude              \t don't run athena or the post processing, only the plotting stages"
+    echo "-p, --post                 \t force running of post processingthe post processing, even if -x is set"
+    echo "-f, --force                \t disable protection against rerunning where you shouldn't be"
+    echo "-h, --help                 \t this help"
+    [ $# -gt 0 ] && exit $1
+    exit 0
+}
+
+args=$(getopt -ql "searchpath:" -o "d:lxph" -- "$@")
+
+# eval set -- "$args"
+
+RUNATHENA=1
+RUNPOST=-1
+DIRECTORY=
+LOCAL=0
+FORCE=0
+
+while [ $# -ge 1 ]; do
+    case "$1" in
+        --) shift ; break ;;
+        -d | --directory )  if [ $# -lt 2 ]; then usage; fi ; DIRECTORY="$2" ; shift ;;
+        -x | --exclude )    RUNATHENA=0 ; [ $RUNPOST -eq -1 ] && RUNPOST=0;;
+        -p | --post )       RUNPOST=1 ;;
+        -f | --force )      FORCE=1 ;;
+        -l | --local )      LOCAL=1 ;;
+        -h | --help )       usage ;;
+     esac
+    shift
+done
+
+
+[ $RUNPOST -eq 0 ] || RUNPOST=1
+
+
 # generate a time stamp
 
 function timestamp { printf "${RED}Timestamp: $1 $(date)${NC}\n"  ; }
@@ -153,6 +195,7 @@ function saveoutput {
 
 
 
+ls -l
 
 
 
@@ -160,7 +203,7 @@ export RTTJOBNAME=TrigInDetValidation_FTK_tau_tautau
 
 jobList=
 
-if [ $# -gt 0 -a "x$1" == "x--local" ]; then
+if [ $LOCAL -eq 1 ]; then
       echo "running locally"
       # get number of files 
       NFILES=$(grep "^#[[:space:]]*art-input-nfiles:" $0 | sed 's|.*art-input-nfiles:[[:space:]]*||g')
@@ -171,9 +214,12 @@ else
       fileList="['${ArtInFile//,/', '}']"
       _jobList="'../${ArtInFile//,/' '../}'"
       echo "List of files = $fileList"
-      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; done
+      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; echo "ART running over $git"  ; done
 fi
 
+
+if [ $RUNATHENA -eq 1 ]; then 
+
 get_files -jo             TrigInDetValidation/TrigInDetValidation_RTT_topOptions_TauSlice.py
 
 
@@ -188,7 +234,7 @@ for git in $jobList ; do
 
     ARGS="$git;EventMax=2000;doFTK=True"
  
-    echo "ARGS: $ARGS"
+#   echo "ARGS: $ARGS"
 
     waitonproc
     
@@ -266,6 +312,9 @@ hadd expert-monitoring.root athena-*/expert-monitoring.root &> hadd.log
   
 for git in output-dataset/*.root ; do ln -s $git TrkNtuple-0000.root ; break ; done  
 
+fi
+
+
 ls -lt
 
 
@@ -283,6 +332,8 @@ for DATFILE in *.dat ; do
     fi
 done
 
+if [ $RUNATHENA -eq 1 -o $RUNPOST -eq 1 ]; then
+
 
 TIDArdict TIDAdata11-rtt.dat -f data-tau-FTK.root -b Test_bin.dat  2>&1 | tee TIDArdict_1.log
 echo "art-result: $? TIDArdict_1"
@@ -293,6 +344,9 @@ timestamp "TIDArdict"
 
 
 
+fi
+
+
 TIDArun-art.sh data-tau-FTK.root data-FTK_tau_tautau-reference.root HLT_tau25_idperf_track_InDetTrigTrackingxAODCnv_Tau_FTF HLT_tau25_idperf_FTK:InDetTrigTrackingxAODCnv_Tau_FTK HLT_tau25_idperf_FTKRefit:InDetTrigTrackingxAODCnv_Tau_FTKRefit -d HLTL2-plots  2>&1 | tee TIDArun_2.log
 echo "art-result: $? TIDArun_2"
 
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_minbias.sh b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_minbias.sh
index d9d3dbad75f55cf9e085c9fc23c4f838e1106bdd..4c8c0dd2bb20ee091cd61bc569a74539d41ace73 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_minbias.sh
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_minbias.sh
@@ -1,7 +1,6 @@
 #!/bin/bash
 # art-description: art job for minBias
 # art-type: grid
-# art-output: pid
 # art-output: HLTEF-plots
 # art-output: times
 # art-output: times-FTF
@@ -24,6 +23,49 @@
 RED='\033[0;31m'
 NC='\033[0m'
 
+
+function usage { 
+    [ $# -gt 1 ] && echo $2
+
+    echo "Usage: $(basename $0) [args]"
+    echo 
+    echo "-d, --directory  DIRECTORY \t run from the specified directory"
+    echo "-l, --local                \t run locally rather than on the grid"
+    echo "-x, --exclude              \t don't run athena or the post processing, only the plotting stages"
+    echo "-p, --post                 \t force running of post processingthe post processing, even if -x is set"
+    echo "-f, --force                \t disable protection against rerunning where you shouldn't be"
+    echo "-h, --help                 \t this help"
+    [ $# -gt 0 ] && exit $1
+    exit 0
+}
+
+args=$(getopt -ql "searchpath:" -o "d:lxph" -- "$@")
+
+# eval set -- "$args"
+
+RUNATHENA=1
+RUNPOST=-1
+DIRECTORY=
+LOCAL=0
+FORCE=0
+
+while [ $# -ge 1 ]; do
+    case "$1" in
+        --) shift ; break ;;
+        -d | --directory )  if [ $# -lt 2 ]; then usage; fi ; DIRECTORY="$2" ; shift ;;
+        -x | --exclude )    RUNATHENA=0 ; [ $RUNPOST -eq -1 ] && RUNPOST=0;;
+        -p | --post )       RUNPOST=1 ;;
+        -f | --force )      FORCE=1 ;;
+        -l | --local )      LOCAL=1 ;;
+        -h | --help )       usage ;;
+     esac
+    shift
+done
+
+
+[ $RUNPOST -eq 0 ] || RUNPOST=1
+
+
 # generate a time stamp
 
 function timestamp { printf "${RED}Timestamp: $1 $(date)${NC}\n"  ; }
@@ -152,6 +194,7 @@ function saveoutput {
 
 
 
+ls -l
 
 
 
@@ -159,7 +202,7 @@ export RTTJOBNAME=TrigInDetValidation_minBias
 
 jobList=
 
-if [ $# -gt 0 -a "x$1" == "x--local" ]; then
+if [ $LOCAL -eq 1 ]; then
       echo "running locally"
       # get number of files 
       NFILES=$(grep "^#[[:space:]]*art-input-nfiles:" $0 | sed 's|.*art-input-nfiles:[[:space:]]*||g')
@@ -170,9 +213,12 @@ else
       fileList="['${ArtInFile//,/', '}']"
       _jobList="'../${ArtInFile//,/' '../}'"
       echo "List of files = $fileList"
-      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; done
+      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; echo "ART running over $git"  ; done
 fi
 
+
+if [ $RUNATHENA -eq 1 ]; then 
+
 get_files -jo             TrigInDetValidation/TrigInDetValidation_RTT_topOptions_MonitorSlice.py
 
 
@@ -187,7 +233,7 @@ for git in $jobList ; do
 
     ARGS="$git;EventMax=2000;"
  
-    echo "ARGS: $ARGS"
+#   echo "ARGS: $ARGS"
 
     waitonproc
     
@@ -265,6 +311,9 @@ hadd expert-monitoring.root athena-*/expert-monitoring.root &> hadd.log
   
 for git in output-dataset/*.root ; do ln -s $git TrkNtuple-0000.root ; break ; done  
 
+fi
+
+
 ls -lt
 
 
@@ -282,6 +331,8 @@ for DATFILE in *.dat ; do
     fi
 done
 
+if [ $RUNATHENA -eq 1 -o $RUNPOST -eq 1 ]; then
+
 
 TIDArdict TIDAdata11-rtt.dat -f data-monitor.root -b Test_bin.dat  2>&1 | tee TIDArdict_1.log
 echo "art-result: $? TIDArdict_1"
@@ -292,6 +343,9 @@ timestamp "TIDArdict"
 
 
 
+fi
+
+
 TIDArun-art.sh data-monitor.root data-minBias-reference.root HLT_mb_idperf_L1RD1_FILLED_InDetTrigTrackingxAODCnv_minBias_EFID -d HLTEF-plots  2>&1 | tee TIDArun_2.log
 echo "art-result: $? TIDArun_2"
 
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_minbias_offline.sh b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_minbias_offline.sh
index e0de8bccf8ca5450b9c309d42a16c9810a39eade..73faaba405c4aec3b758c7504b9879b21b02b880 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_minbias_offline.sh
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_minbias_offline.sh
@@ -1,7 +1,6 @@
 #!/bin/bash
 # art-description: art job for minBias_offline
 # art-type: grid
-# art-output: pid
 # art-output: HLTEF-plots
 # art-output: times
 # art-output: times-FTF
@@ -24,6 +23,49 @@
 RED='\033[0;31m'
 NC='\033[0m'
 
+
+function usage { 
+    [ $# -gt 1 ] && echo $2
+
+    echo "Usage: $(basename $0) [args]"
+    echo 
+    echo "-d, --directory  DIRECTORY \t run from the specified directory"
+    echo "-l, --local                \t run locally rather than on the grid"
+    echo "-x, --exclude              \t don't run athena or the post processing, only the plotting stages"
+    echo "-p, --post                 \t force running of post processingthe post processing, even if -x is set"
+    echo "-f, --force                \t disable protection against rerunning where you shouldn't be"
+    echo "-h, --help                 \t this help"
+    [ $# -gt 0 ] && exit $1
+    exit 0
+}
+
+args=$(getopt -ql "searchpath:" -o "d:lxph" -- "$@")
+
+# eval set -- "$args"
+
+RUNATHENA=1
+RUNPOST=-1
+DIRECTORY=
+LOCAL=0
+FORCE=0
+
+while [ $# -ge 1 ]; do
+    case "$1" in
+        --) shift ; break ;;
+        -d | --directory )  if [ $# -lt 2 ]; then usage; fi ; DIRECTORY="$2" ; shift ;;
+        -x | --exclude )    RUNATHENA=0 ; [ $RUNPOST -eq -1 ] && RUNPOST=0;;
+        -p | --post )       RUNPOST=1 ;;
+        -f | --force )      FORCE=1 ;;
+        -l | --local )      LOCAL=1 ;;
+        -h | --help )       usage ;;
+     esac
+    shift
+done
+
+
+[ $RUNPOST -eq 0 ] || RUNPOST=1
+
+
 # generate a time stamp
 
 function timestamp { printf "${RED}Timestamp: $1 $(date)${NC}\n"  ; }
@@ -152,6 +194,7 @@ function saveoutput {
 
 
 
+ls -l
 
 
 
@@ -159,7 +202,7 @@ export RTTJOBNAME=TrigInDetValidation_minBias_offline
 
 jobList=
 
-if [ $# -gt 0 -a "x$1" == "x--local" ]; then
+if [ $LOCAL -eq 1 ]; then
       echo "running locally"
       # get number of files 
       NFILES=$(grep "^#[[:space:]]*art-input-nfiles:" $0 | sed 's|.*art-input-nfiles:[[:space:]]*||g')
@@ -170,9 +213,12 @@ else
       fileList="['${ArtInFile//,/', '}']"
       _jobList="'../${ArtInFile//,/' '../}'"
       echo "List of files = $fileList"
-      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; done
+      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; echo "ART running over $git"  ; done
 fi
 
+
+if [ $RUNATHENA -eq 1 ]; then 
+
 get_files -jo             TrigInDetValidation/TrigInDetValidation_RTT_topOptions_MonitorSlice.py
 
 
@@ -187,7 +233,7 @@ for git in $jobList ; do
 
     ARGS="$git;EventMax=2000;doIDNewTracking=True"
  
-    echo "ARGS: $ARGS"
+#   echo "ARGS: $ARGS"
 
     waitonproc
     
@@ -265,6 +311,9 @@ hadd expert-monitoring.root athena-*/expert-monitoring.root &> hadd.log
   
 for git in output-dataset/*.root ; do ln -s $git TrkNtuple-0000.root ; break ; done  
 
+fi
+
+
 ls -lt
 
 
@@ -282,6 +331,8 @@ for DATFILE in *.dat ; do
     fi
 done
 
+if [ $RUNATHENA -eq 1 -o $RUNPOST -eq 1 ]; then
+
 
 TIDArdict TIDAdata11-rtt-offline.dat -f data-minBias.root -b Test_bin.dat  2>&1 | tee TIDArdict_1.log
 echo "art-result: $? TIDArdict_1"
@@ -292,6 +343,9 @@ timestamp "TIDArdict"
 
 
 
+fi
+
+
 TIDArun-art.sh data-minBias.root data-minBias_offline-reference.root HLT_mb_idperf_L1RD1_FILLED_InDetTrigTrackingxAODCnv_minBias_EFID -d HLTEF-plots  2>&1 | tee TIDArun_2.log
 echo "art-result: $? TIDArun_2"
 
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_mu_bphys_ibl.sh b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_mu_bphys_ibl.sh
index bca1971de6add29c37c729dc4a067dfecda44e6d..fafe0d74b17882935c85e32b373cd41a68e5972e 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_mu_bphys_ibl.sh
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_mu_bphys_ibl.sh
@@ -1,7 +1,6 @@
 #!/bin/bash
 # art-description: art job for mu_bphys_IBL
 # art-type: grid
-# art-output: pid
 # art-output: HLTL2-plots
 # art-output: HLTEF-plots
 # art-output: times
@@ -25,6 +24,49 @@
 RED='\033[0;31m'
 NC='\033[0m'
 
+
+function usage { 
+    [ $# -gt 1 ] && echo $2
+
+    echo "Usage: $(basename $0) [args]"
+    echo 
+    echo "-d, --directory  DIRECTORY \t run from the specified directory"
+    echo "-l, --local                \t run locally rather than on the grid"
+    echo "-x, --exclude              \t don't run athena or the post processing, only the plotting stages"
+    echo "-p, --post                 \t force running of post processingthe post processing, even if -x is set"
+    echo "-f, --force                \t disable protection against rerunning where you shouldn't be"
+    echo "-h, --help                 \t this help"
+    [ $# -gt 0 ] && exit $1
+    exit 0
+}
+
+args=$(getopt -ql "searchpath:" -o "d:lxph" -- "$@")
+
+# eval set -- "$args"
+
+RUNATHENA=1
+RUNPOST=-1
+DIRECTORY=
+LOCAL=0
+FORCE=0
+
+while [ $# -ge 1 ]; do
+    case "$1" in
+        --) shift ; break ;;
+        -d | --directory )  if [ $# -lt 2 ]; then usage; fi ; DIRECTORY="$2" ; shift ;;
+        -x | --exclude )    RUNATHENA=0 ; [ $RUNPOST -eq -1 ] && RUNPOST=0;;
+        -p | --post )       RUNPOST=1 ;;
+        -f | --force )      FORCE=1 ;;
+        -l | --local )      LOCAL=1 ;;
+        -h | --help )       usage ;;
+     esac
+    shift
+done
+
+
+[ $RUNPOST -eq 0 ] || RUNPOST=1
+
+
 # generate a time stamp
 
 function timestamp { printf "${RED}Timestamp: $1 $(date)${NC}\n"  ; }
@@ -153,6 +195,7 @@ function saveoutput {
 
 
 
+ls -l
 
 
 
@@ -160,7 +203,7 @@ export RTTJOBNAME=TrigInDetValidation_mu_bphys_IBL
 
 jobList=
 
-if [ $# -gt 0 -a "x$1" == "x--local" ]; then
+if [ $LOCAL -eq 1 ]; then
       echo "running locally"
       # get number of files 
       NFILES=$(grep "^#[[:space:]]*art-input-nfiles:" $0 | sed 's|.*art-input-nfiles:[[:space:]]*||g')
@@ -171,9 +214,12 @@ else
       fileList="['${ArtInFile//,/', '}']"
       _jobList="'../${ArtInFile//,/' '../}'"
       echo "List of files = $fileList"
-      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; done
+      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; echo "ART running over $git"  ; done
 fi
 
+
+if [ $RUNATHENA -eq 1 ]; then 
+
 get_files -jo             TrigInDetValidation/TrigInDetValidation_RTT_topOptions_MuonSlice.py
 
 
@@ -188,7 +234,7 @@ for git in $jobList ; do
 
     ARGS="$git;EventMax=2000"
  
-    echo "ARGS: $ARGS"
+#   echo "ARGS: $ARGS"
 
     waitonproc
     
@@ -266,6 +312,9 @@ hadd expert-monitoring.root athena-*/expert-monitoring.root &> hadd.log
   
 for git in output-dataset/*.root ; do ln -s $git TrkNtuple-0000.root ; break ; done  
 
+fi
+
+
 ls -lt
 
 
@@ -283,6 +332,8 @@ for DATFILE in *.dat ; do
     fi
 done
 
+if [ $RUNATHENA -eq 1 -o $RUNPOST -eq 1 ]; then
+
 
 TIDArdict TIDAdata11-rtt.dat -f data-muon-bphys-merge.root -p 13 -b Test_bin.dat  2>&1 | tee TIDArdict_1.log
 echo "art-result: $? TIDArdict_1"
@@ -293,6 +344,9 @@ timestamp "TIDArdict"
 
 
 
+fi
+
+
 TIDArun-art.sh data-muon-bphys-merge.root data-mu_bphys_IBL-reference.root HLT_mu6_idperf_InDetTrigTrackingxAODCnv_Muon_FTF -d HLTL2-plots  2>&1 | tee TIDArun_2.log
 echo "art-result: $? TIDArun_2"
 
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_mu_single_mu_larged0.sh b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_mu_single_mu_larged0.sh
index c8386c2452898186a7a87cf99d4e424ef99305bb..569c18e758ba6b4a0e1f27e44c2f9b0633593dd2 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_mu_single_mu_larged0.sh
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_mu_single_mu_larged0.sh
@@ -1,7 +1,6 @@
 #!/bin/bash
 # art-description: art job for mu_single_mu_larged0
 # art-type: grid
-# art-output: pid
 # art-output: HLTEF-plots
 # art-output: HLTL2-plots
 # art-output: times
@@ -25,6 +24,49 @@
 RED='\033[0;31m'
 NC='\033[0m'
 
+
+function usage { 
+    [ $# -gt 1 ] && echo $2
+
+    echo "Usage: $(basename $0) [args]"
+    echo 
+    echo "-d, --directory  DIRECTORY \t run from the specified directory"
+    echo "-l, --local                \t run locally rather than on the grid"
+    echo "-x, --exclude              \t don't run athena or the post processing, only the plotting stages"
+    echo "-p, --post                 \t force running of post processingthe post processing, even if -x is set"
+    echo "-f, --force                \t disable protection against rerunning where you shouldn't be"
+    echo "-h, --help                 \t this help"
+    [ $# -gt 0 ] && exit $1
+    exit 0
+}
+
+args=$(getopt -ql "searchpath:" -o "d:lxph" -- "$@")
+
+# eval set -- "$args"
+
+RUNATHENA=1
+RUNPOST=-1
+DIRECTORY=
+LOCAL=0
+FORCE=0
+
+while [ $# -ge 1 ]; do
+    case "$1" in
+        --) shift ; break ;;
+        -d | --directory )  if [ $# -lt 2 ]; then usage; fi ; DIRECTORY="$2" ; shift ;;
+        -x | --exclude )    RUNATHENA=0 ; [ $RUNPOST -eq -1 ] && RUNPOST=0;;
+        -p | --post )       RUNPOST=1 ;;
+        -f | --force )      FORCE=1 ;;
+        -l | --local )      LOCAL=1 ;;
+        -h | --help )       usage ;;
+     esac
+    shift
+done
+
+
+[ $RUNPOST -eq 0 ] || RUNPOST=1
+
+
 # generate a time stamp
 
 function timestamp { printf "${RED}Timestamp: $1 $(date)${NC}\n"  ; }
@@ -153,6 +195,7 @@ function saveoutput {
 
 
 
+ls -l
 
 
 
@@ -160,7 +203,7 @@ export RTTJOBNAME=TrigInDetValidation_mu_single_mu_larged0
 
 jobList=
 
-if [ $# -gt 0 -a "x$1" == "x--local" ]; then
+if [ $LOCAL -eq 1 ]; then
       echo "running locally"
       # get number of files 
       NFILES=$(grep "^#[[:space:]]*art-input-nfiles:" $0 | sed 's|.*art-input-nfiles:[[:space:]]*||g')
@@ -171,9 +214,12 @@ else
       fileList="['${ArtInFile//,/', '}']"
       _jobList="'../${ArtInFile//,/' '../}'"
       echo "List of files = $fileList"
-      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; done
+      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; echo "ART running over $git"  ; done
 fi
 
+
+if [ $RUNATHENA -eq 1 ]; then 
+
 get_files -jo             TrigInDetValidation/TrigInDetValidation_RTT_topOptions_MuonSlice.py
 
 
@@ -188,7 +234,7 @@ for git in $jobList ; do
 
     ARGS="$git;EventMax=2000"
  
-    echo "ARGS: $ARGS"
+#   echo "ARGS: $ARGS"
 
     waitonproc
     
@@ -266,6 +312,9 @@ hadd expert-monitoring.root athena-*/expert-monitoring.root &> hadd.log
   
 for git in output-dataset/*.root ; do ln -s $git TrkNtuple-0000.root ; break ; done  
 
+fi
+
+
 ls -lt
 
 
@@ -283,6 +332,8 @@ for DATFILE in *.dat ; do
     fi
 done
 
+if [ $RUNATHENA -eq 1 -o $RUNPOST -eq 1 ]; then
+
 
 TIDArdict TIDAdata11-rtt-larged0.dat -f data-muon.root -p 13 -b Test_bin_larged0.dat  2>&1 | tee TIDArdict_1.log
 echo "art-result: $? TIDArdict_1"
@@ -293,6 +344,9 @@ timestamp "TIDArdict"
 
 
 
+fi
+
+
 TIDArun-art.sh data-muon.root data-mu_single_mu_larged0-reference.root HLT_mu6_idperf_InDetTrigTrackingxAODCnv_Muon_FTF HLT_mu6_idperf_InDetTrigTrackingxAODCnv_Muon_IDTrig -d HLTEF-plots  2>&1 | tee TIDArun_2.log
 echo "art-result: $? TIDArun_2"
 
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_mu_single_mu_larged0_pu.sh b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_mu_single_mu_larged0_pu.sh
index 5439b8742ac415fa0375b7811e64d24cd56ad053..efd605936a19efc154de45678257e0272141c895 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_mu_single_mu_larged0_pu.sh
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_mu_single_mu_larged0_pu.sh
@@ -1,7 +1,6 @@
 #!/bin/bash
 # art-description: art job for mu_single_mu_larged0_PU
 # art-type: grid
-# art-output: pid
 # art-output: HLTEF-plots
 # art-output: HLTL2-plots
 # art-output: times
@@ -25,6 +24,49 @@
 RED='\033[0;31m'
 NC='\033[0m'
 
+
+function usage { 
+    [ $# -gt 1 ] && echo $2
+
+    echo "Usage: $(basename $0) [args]"
+    echo 
+    echo "-d, --directory  DIRECTORY \t run from the specified directory"
+    echo "-l, --local                \t run locally rather than on the grid"
+    echo "-x, --exclude              \t don't run athena or the post processing, only the plotting stages"
+    echo "-p, --post                 \t force running of post processingthe post processing, even if -x is set"
+    echo "-f, --force                \t disable protection against rerunning where you shouldn't be"
+    echo "-h, --help                 \t this help"
+    [ $# -gt 0 ] && exit $1
+    exit 0
+}
+
+args=$(getopt -ql "searchpath:" -o "d:lxph" -- "$@")
+
+# eval set -- "$args"
+
+RUNATHENA=1
+RUNPOST=-1
+DIRECTORY=
+LOCAL=0
+FORCE=0
+
+while [ $# -ge 1 ]; do
+    case "$1" in
+        --) shift ; break ;;
+        -d | --directory )  if [ $# -lt 2 ]; then usage; fi ; DIRECTORY="$2" ; shift ;;
+        -x | --exclude )    RUNATHENA=0 ; [ $RUNPOST -eq -1 ] && RUNPOST=0;;
+        -p | --post )       RUNPOST=1 ;;
+        -f | --force )      FORCE=1 ;;
+        -l | --local )      LOCAL=1 ;;
+        -h | --help )       usage ;;
+     esac
+    shift
+done
+
+
+[ $RUNPOST -eq 0 ] || RUNPOST=1
+
+
 # generate a time stamp
 
 function timestamp { printf "${RED}Timestamp: $1 $(date)${NC}\n"  ; }
@@ -153,6 +195,7 @@ function saveoutput {
 
 
 
+ls -l
 
 
 
@@ -160,7 +203,7 @@ export RTTJOBNAME=TrigInDetValidation_mu_single_mu_larged0_PU
 
 jobList=
 
-if [ $# -gt 0 -a "x$1" == "x--local" ]; then
+if [ $LOCAL -eq 1 ]; then
       echo "running locally"
       # get number of files 
       NFILES=$(grep "^#[[:space:]]*art-input-nfiles:" $0 | sed 's|.*art-input-nfiles:[[:space:]]*||g')
@@ -171,9 +214,12 @@ else
       fileList="['${ArtInFile//,/', '}']"
       _jobList="'../${ArtInFile//,/' '../}'"
       echo "List of files = $fileList"
-      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; done
+      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; echo "ART running over $git"  ; done
 fi
 
+
+if [ $RUNATHENA -eq 1 ]; then 
+
 get_files -jo             TrigInDetValidation/TrigInDetValidation_RTT_topOptions_MuonSlice.py
 
 
@@ -188,7 +234,7 @@ for git in $jobList ; do
 
     ARGS="$git;EventMax=2000"
  
-    echo "ARGS: $ARGS"
+#   echo "ARGS: $ARGS"
 
     waitonproc
     
@@ -266,6 +312,9 @@ hadd expert-monitoring.root athena-*/expert-monitoring.root &> hadd.log
   
 for git in output-dataset/*.root ; do ln -s $git TrkNtuple-0000.root ; break ; done  
 
+fi
+
+
 ls -lt
 
 
@@ -283,6 +332,8 @@ for DATFILE in *.dat ; do
     fi
 done
 
+if [ $RUNATHENA -eq 1 -o $RUNPOST -eq 1 ]; then
+
 
 TIDArdict TIDAdata11-rtt-larged0.dat -f data-muon.root -p 13 -b Test_bin_larged0.dat  2>&1 | tee TIDArdict_1.log
 echo "art-result: $? TIDArdict_1"
@@ -293,6 +344,9 @@ timestamp "TIDArdict"
 
 
 
+fi
+
+
 TIDArun-art.sh data-muon.root data-mu_single_mu_larged0_PU-reference.root HLT_mu6_idperf_InDetTrigTrackingxAODCnv_Muon_FTF HLT_mu6_idperf_InDetTrigTrackingxAODCnv_Muon_IDTrig -d HLTEF-plots  2>&1 | tee TIDArun_2.log
 echo "art-result: $? TIDArun_2"
 
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_mu_zmumu_ibl_pu40.sh b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_mu_zmumu_ibl_pu40.sh
index 0c7573e442264ef4c135f2f18068029f0dc0896f..a2544cfef206933781fbc817a6ab604eda45d280 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_mu_zmumu_ibl_pu40.sh
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_mu_zmumu_ibl_pu40.sh
@@ -1,7 +1,6 @@
 #!/bin/bash
 # art-description: art job for mu_Zmumu_IBL_pu40
 # art-type: grid
-# art-output: pid
 # art-output: HLTL2-plots
 # art-output: HLTEF-plots
 # art-output: times
@@ -25,6 +24,49 @@
 RED='\033[0;31m'
 NC='\033[0m'
 
+
+function usage { 
+    [ $# -gt 1 ] && echo $2
+
+    echo "Usage: $(basename $0) [args]"
+    echo 
+    echo "-d, --directory  DIRECTORY \t run from the specified directory"
+    echo "-l, --local                \t run locally rather than on the grid"
+    echo "-x, --exclude              \t don't run athena or the post processing, only the plotting stages"
+    echo "-p, --post                 \t force running of post processingthe post processing, even if -x is set"
+    echo "-f, --force                \t disable protection against rerunning where you shouldn't be"
+    echo "-h, --help                 \t this help"
+    [ $# -gt 0 ] && exit $1
+    exit 0
+}
+
+args=$(getopt -ql "searchpath:" -o "d:lxph" -- "$@")
+
+# eval set -- "$args"
+
+RUNATHENA=1
+RUNPOST=-1
+DIRECTORY=
+LOCAL=0
+FORCE=0
+
+while [ $# -ge 1 ]; do
+    case "$1" in
+        --) shift ; break ;;
+        -d | --directory )  if [ $# -lt 2 ]; then usage; fi ; DIRECTORY="$2" ; shift ;;
+        -x | --exclude )    RUNATHENA=0 ; [ $RUNPOST -eq -1 ] && RUNPOST=0;;
+        -p | --post )       RUNPOST=1 ;;
+        -f | --force )      FORCE=1 ;;
+        -l | --local )      LOCAL=1 ;;
+        -h | --help )       usage ;;
+     esac
+    shift
+done
+
+
+[ $RUNPOST -eq 0 ] || RUNPOST=1
+
+
 # generate a time stamp
 
 function timestamp { printf "${RED}Timestamp: $1 $(date)${NC}\n"  ; }
@@ -153,6 +195,7 @@ function saveoutput {
 
 
 
+ls -l
 
 
 
@@ -160,7 +203,7 @@ export RTTJOBNAME=TrigInDetValidation_mu_Zmumu_IBL_pu40
 
 jobList=
 
-if [ $# -gt 0 -a "x$1" == "x--local" ]; then
+if [ $LOCAL -eq 1 ]; then
       echo "running locally"
       # get number of files 
       NFILES=$(grep "^#[[:space:]]*art-input-nfiles:" $0 | sed 's|.*art-input-nfiles:[[:space:]]*||g')
@@ -171,9 +214,12 @@ else
       fileList="['${ArtInFile//,/', '}']"
       _jobList="'../${ArtInFile//,/' '../}'"
       echo "List of files = $fileList"
-      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; done
+      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; echo "ART running over $git"  ; done
 fi
 
+
+if [ $RUNATHENA -eq 1 ]; then 
+
 get_files -jo             TrigInDetValidation/TrigInDetValidation_RTT_topOptions_MuonSlice.py
 
 
@@ -188,7 +234,7 @@ for git in $jobList ; do
 
     ARGS="$git;EventMax=2000"
  
-    echo "ARGS: $ARGS"
+#   echo "ARGS: $ARGS"
 
     waitonproc
     
@@ -266,6 +312,9 @@ hadd expert-monitoring.root athena-*/expert-monitoring.root &> hadd.log
   
 for git in output-dataset/*.root ; do ln -s $git TrkNtuple-0000.root ; break ; done  
 
+fi
+
+
 ls -lt
 
 
@@ -283,6 +332,8 @@ for DATFILE in *.dat ; do
     fi
 done
 
+if [ $RUNATHENA -eq 1 -o $RUNPOST -eq 1 ]; then
+
 
 TIDArdict TIDAdata11-rtt.dat -f data-muon-pileup-merge.root -p 13 -b Test_bin.dat  2>&1 | tee TIDArdict_1.log
 echo "art-result: $? TIDArdict_1"
@@ -293,6 +344,9 @@ timestamp "TIDArdict"
 
 
 
+fi
+
+
 TIDArun-art.sh data-muon-pileup-merge.root data-mu_Zmumu_IBL_pu40-reference.root HLT_mu24_idperf_InDetTrigTrackingxAODCnv_Muon_FTF -d HLTL2-plots  2>&1 | tee TIDArun_2.log
 echo "art-result: $? TIDArun_2"
 
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_mu_zmumu_ibl_pu40_offline.sh b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_mu_zmumu_ibl_pu40_offline.sh
index fba4281e8c734b1a9c777748a0661901daef066d..c7d204658a875991c8972f8c30039323e8e19bc8 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_mu_zmumu_ibl_pu40_offline.sh
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_mu_zmumu_ibl_pu40_offline.sh
@@ -1,7 +1,6 @@
 #!/bin/bash
 # art-description: art job for mu_Zmumu_IBL_pu40_offline
 # art-type: grid
-# art-output: pid
 # art-output: HLTL2-plots
 # art-output: HLTEF-plots
 # art-output: times
@@ -25,6 +24,49 @@
 RED='\033[0;31m'
 NC='\033[0m'
 
+
+function usage { 
+    [ $# -gt 1 ] && echo $2
+
+    echo "Usage: $(basename $0) [args]"
+    echo 
+    echo "-d, --directory  DIRECTORY \t run from the specified directory"
+    echo "-l, --local                \t run locally rather than on the grid"
+    echo "-x, --exclude              \t don't run athena or the post processing, only the plotting stages"
+    echo "-p, --post                 \t force running of post processingthe post processing, even if -x is set"
+    echo "-f, --force                \t disable protection against rerunning where you shouldn't be"
+    echo "-h, --help                 \t this help"
+    [ $# -gt 0 ] && exit $1
+    exit 0
+}
+
+args=$(getopt -ql "searchpath:" -o "d:lxph" -- "$@")
+
+# eval set -- "$args"
+
+RUNATHENA=1
+RUNPOST=-1
+DIRECTORY=
+LOCAL=0
+FORCE=0
+
+while [ $# -ge 1 ]; do
+    case "$1" in
+        --) shift ; break ;;
+        -d | --directory )  if [ $# -lt 2 ]; then usage; fi ; DIRECTORY="$2" ; shift ;;
+        -x | --exclude )    RUNATHENA=0 ; [ $RUNPOST -eq -1 ] && RUNPOST=0;;
+        -p | --post )       RUNPOST=1 ;;
+        -f | --force )      FORCE=1 ;;
+        -l | --local )      LOCAL=1 ;;
+        -h | --help )       usage ;;
+     esac
+    shift
+done
+
+
+[ $RUNPOST -eq 0 ] || RUNPOST=1
+
+
 # generate a time stamp
 
 function timestamp { printf "${RED}Timestamp: $1 $(date)${NC}\n"  ; }
@@ -153,6 +195,7 @@ function saveoutput {
 
 
 
+ls -l
 
 
 
@@ -160,7 +203,7 @@ export RTTJOBNAME=TrigInDetValidation_mu_Zmumu_IBL_pu40_offline
 
 jobList=
 
-if [ $# -gt 0 -a "x$1" == "x--local" ]; then
+if [ $LOCAL -eq 1 ]; then
       echo "running locally"
       # get number of files 
       NFILES=$(grep "^#[[:space:]]*art-input-nfiles:" $0 | sed 's|.*art-input-nfiles:[[:space:]]*||g')
@@ -171,9 +214,12 @@ else
       fileList="['${ArtInFile//,/', '}']"
       _jobList="'../${ArtInFile//,/' '../}'"
       echo "List of files = $fileList"
-      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; done
+      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; echo "ART running over $git"  ; done
 fi
 
+
+if [ $RUNATHENA -eq 1 ]; then 
+
 get_files -jo             TrigInDetValidation/TrigInDetValidation_RTT_topOptions_MuonSlice.py
 
 
@@ -188,7 +234,7 @@ for git in $jobList ; do
 
     ARGS="$git;EventMax=2000;doIDNewTracking=True;PdgId=13"
  
-    echo "ARGS: $ARGS"
+#   echo "ARGS: $ARGS"
 
     waitonproc
     
@@ -266,6 +312,9 @@ hadd expert-monitoring.root athena-*/expert-monitoring.root &> hadd.log
   
 for git in output-dataset/*.root ; do ln -s $git TrkNtuple-0000.root ; break ; done  
 
+fi
+
+
 ls -lt
 
 
@@ -283,6 +332,8 @@ for DATFILE in *.dat ; do
     fi
 done
 
+if [ $RUNATHENA -eq 1 -o $RUNPOST -eq 1 ]; then
+
 
 TIDArdict TIDAdata11-rtt-offline.dat -f data-muon-pileup-merge.root -b Test_bin.dat  2>&1 | tee TIDArdict_1.log
 echo "art-result: $? TIDArdict_1"
@@ -293,6 +344,9 @@ timestamp "TIDArdict"
 
 
 
+fi
+
+
 TIDArun-art.sh data-muon-pileup-merge.root data-mu_Zmumu_IBL_pu40_offline-reference.root HLT_mu24_idperf_InDetTrigTrackingxAODCnv_Muon_FTF -d HLTL2-plots  2>&1 | tee TIDArun_2.log
 echo "art-result: $? TIDArun_2"
 
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_mu_zmumu_ibl_pu40_offline_rzmatcher.sh b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_mu_zmumu_ibl_pu40_offline_rzmatcher.sh
index 985ab6d5761401b8f39d245a4a2508767d4de1be..53505c5bd696aa338f31efb87b930054519d98c9 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_mu_zmumu_ibl_pu40_offline_rzmatcher.sh
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_mu_zmumu_ibl_pu40_offline_rzmatcher.sh
@@ -1,7 +1,6 @@
 #!/bin/bash
 # art-description: art job for mu_Zmumu_IBL_pu40_offline_rzMatcher
 # art-type: grid
-# art-output: pid
 # art-output: HLTL2-plots
 # art-output: HLTEF-plots
 # art-output: times
@@ -25,6 +24,49 @@
 RED='\033[0;31m'
 NC='\033[0m'
 
+
+function usage { 
+    [ $# -gt 1 ] && echo $2
+
+    echo "Usage: $(basename $0) [args]"
+    echo 
+    echo "-d, --directory  DIRECTORY \t run from the specified directory"
+    echo "-l, --local                \t run locally rather than on the grid"
+    echo "-x, --exclude              \t don't run athena or the post processing, only the plotting stages"
+    echo "-p, --post                 \t force running of post processingthe post processing, even if -x is set"
+    echo "-f, --force                \t disable protection against rerunning where you shouldn't be"
+    echo "-h, --help                 \t this help"
+    [ $# -gt 0 ] && exit $1
+    exit 0
+}
+
+args=$(getopt -ql "searchpath:" -o "d:lxph" -- "$@")
+
+# eval set -- "$args"
+
+RUNATHENA=1
+RUNPOST=-1
+DIRECTORY=
+LOCAL=0
+FORCE=0
+
+while [ $# -ge 1 ]; do
+    case "$1" in
+        --) shift ; break ;;
+        -d | --directory )  if [ $# -lt 2 ]; then usage; fi ; DIRECTORY="$2" ; shift ;;
+        -x | --exclude )    RUNATHENA=0 ; [ $RUNPOST -eq -1 ] && RUNPOST=0;;
+        -p | --post )       RUNPOST=1 ;;
+        -f | --force )      FORCE=1 ;;
+        -l | --local )      LOCAL=1 ;;
+        -h | --help )       usage ;;
+     esac
+    shift
+done
+
+
+[ $RUNPOST -eq 0 ] || RUNPOST=1
+
+
 # generate a time stamp
 
 function timestamp { printf "${RED}Timestamp: $1 $(date)${NC}\n"  ; }
@@ -153,6 +195,7 @@ function saveoutput {
 
 
 
+ls -l
 
 
 
@@ -160,7 +203,7 @@ export RTTJOBNAME=TrigInDetValidation_mu_Zmumu_IBL_pu40_offline_rzMatcher
 
 jobList=
 
-if [ $# -gt 0 -a "x$1" == "x--local" ]; then
+if [ $LOCAL -eq 1 ]; then
       echo "running locally"
       # get number of files 
       NFILES=$(grep "^#[[:space:]]*art-input-nfiles:" $0 | sed 's|.*art-input-nfiles:[[:space:]]*||g')
@@ -171,9 +214,12 @@ else
       fileList="['${ArtInFile//,/', '}']"
       _jobList="'../${ArtInFile//,/' '../}'"
       echo "List of files = $fileList"
-      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; done
+      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; echo "ART running over $git"  ; done
 fi
 
+
+if [ $RUNATHENA -eq 1 ]; then 
+
 get_files -jo             TrigInDetValidation/TrigInDetValidation_RTT_topOptions_MuonSlice.py
 
 
@@ -188,7 +234,7 @@ for git in $jobList ; do
 
     ARGS="$git;EventMax=2000;doIDNewTracking=True;PdgId=13"
  
-    echo "ARGS: $ARGS"
+#   echo "ARGS: $ARGS"
 
     waitonproc
     
@@ -266,6 +312,9 @@ hadd expert-monitoring.root athena-*/expert-monitoring.root &> hadd.log
   
 for git in output-dataset/*.root ; do ln -s $git TrkNtuple-0000.root ; break ; done  
 
+fi
+
+
 ls -lt
 
 
@@ -283,6 +332,8 @@ for DATFILE in *.dat ; do
     fi
 done
 
+if [ $RUNATHENA -eq 1 -o $RUNPOST -eq 1 ]; then
+
 
 TIDArdict TIDAdata11-rtt-offline-rzMatcher.dat -f data-muon-pileup-merge.root -b Test_bin.dat  2>&1 | tee TIDArdict_1.log
 echo "art-result: $? TIDArdict_1"
@@ -293,6 +344,9 @@ timestamp "TIDArdict"
 
 
 
+fi
+
+
 TIDArun-art.sh data-muon-pileup-merge.root data-mu_Zmumu_IBL_pu40_offline_rzMatcher-reference.root HLT_mu24_idperf_InDetTrigTrackingxAODCnv_Muon_FTF -d HLTL2-plots  2>&1 | tee TIDArun_2.log
 echo "art-result: $? TIDArun_2"
 
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_mu_zmumu_ibl_pu40_rzmatcher.sh b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_mu_zmumu_ibl_pu40_rzmatcher.sh
index c049fe18834c051817aeabe82ea87ea69d4518c0..9d00cc0474770b7bda4d048f7b02e9a878b04b6d 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_mu_zmumu_ibl_pu40_rzmatcher.sh
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_mu_zmumu_ibl_pu40_rzmatcher.sh
@@ -1,7 +1,6 @@
 #!/bin/bash
 # art-description: art job for mu_Zmumu_IBL_pu40_rzMatcher
 # art-type: grid
-# art-output: pid
 # art-output: HLTL2-plots
 # art-output: HLTEF-plots
 # art-output: times
@@ -25,6 +24,49 @@
 RED='\033[0;31m'
 NC='\033[0m'
 
+
+function usage { 
+    [ $# -gt 1 ] && echo $2
+
+    echo "Usage: $(basename $0) [args]"
+    echo 
+    echo "-d, --directory  DIRECTORY \t run from the specified directory"
+    echo "-l, --local                \t run locally rather than on the grid"
+    echo "-x, --exclude              \t don't run athena or the post processing, only the plotting stages"
+    echo "-p, --post                 \t force running of post processingthe post processing, even if -x is set"
+    echo "-f, --force                \t disable protection against rerunning where you shouldn't be"
+    echo "-h, --help                 \t this help"
+    [ $# -gt 0 ] && exit $1
+    exit 0
+}
+
+args=$(getopt -ql "searchpath:" -o "d:lxph" -- "$@")
+
+# eval set -- "$args"
+
+RUNATHENA=1
+RUNPOST=-1
+DIRECTORY=
+LOCAL=0
+FORCE=0
+
+while [ $# -ge 1 ]; do
+    case "$1" in
+        --) shift ; break ;;
+        -d | --directory )  if [ $# -lt 2 ]; then usage; fi ; DIRECTORY="$2" ; shift ;;
+        -x | --exclude )    RUNATHENA=0 ; [ $RUNPOST -eq -1 ] && RUNPOST=0;;
+        -p | --post )       RUNPOST=1 ;;
+        -f | --force )      FORCE=1 ;;
+        -l | --local )      LOCAL=1 ;;
+        -h | --help )       usage ;;
+     esac
+    shift
+done
+
+
+[ $RUNPOST -eq 0 ] || RUNPOST=1
+
+
 # generate a time stamp
 
 function timestamp { printf "${RED}Timestamp: $1 $(date)${NC}\n"  ; }
@@ -153,6 +195,7 @@ function saveoutput {
 
 
 
+ls -l
 
 
 
@@ -160,7 +203,7 @@ export RTTJOBNAME=TrigInDetValidation_mu_Zmumu_IBL_pu40_rzMatcher
 
 jobList=
 
-if [ $# -gt 0 -a "x$1" == "x--local" ]; then
+if [ $LOCAL -eq 1 ]; then
       echo "running locally"
       # get number of files 
       NFILES=$(grep "^#[[:space:]]*art-input-nfiles:" $0 | sed 's|.*art-input-nfiles:[[:space:]]*||g')
@@ -171,9 +214,12 @@ else
       fileList="['${ArtInFile//,/', '}']"
       _jobList="'../${ArtInFile//,/' '../}'"
       echo "List of files = $fileList"
-      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; done
+      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; echo "ART running over $git"  ; done
 fi
 
+
+if [ $RUNATHENA -eq 1 ]; then 
+
 get_files -jo             TrigInDetValidation/TrigInDetValidation_RTT_topOptions_MuonSlice.py
 
 
@@ -188,7 +234,7 @@ for git in $jobList ; do
 
     ARGS="$git;EventMax=2000;PdgId=13"
  
-    echo "ARGS: $ARGS"
+#   echo "ARGS: $ARGS"
 
     waitonproc
     
@@ -266,6 +312,9 @@ hadd expert-monitoring.root athena-*/expert-monitoring.root &> hadd.log
   
 for git in output-dataset/*.root ; do ln -s $git TrkNtuple-0000.root ; break ; done  
 
+fi
+
+
 ls -lt
 
 
@@ -283,6 +332,8 @@ for DATFILE in *.dat ; do
     fi
 done
 
+if [ $RUNATHENA -eq 1 -o $RUNPOST -eq 1 ]; then
+
 
 TIDArdict TIDAdata11-rtt-rzMatcher.dat -f data-muon-pileup-merge.root -b Test_bin.dat  2>&1 | tee TIDArdict_1.log
 echo "art-result: $? TIDArdict_1"
@@ -293,6 +344,9 @@ timestamp "TIDArdict"
 
 
 
+fi
+
+
 TIDArun-art.sh data-muon-pileup-merge.root data-mu_Zmumu_IBL_pu40_rzMatcher-reference.root HLT_mu24_idperf_InDetTrigTrackingxAODCnv_Muon_FTF -d HLTL2-plots  2>&1 | tee TIDArun_2.log
 echo "art-result: $? TIDArun_2"
 
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_tau_ibl_pu46.sh b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_tau_ibl_pu46.sh
index 6f0d45ae98d35c293f8418ab99014fa276f1eea7..6fb5f2214a02075b0645ec607ef607a8d8198c5a 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_tau_ibl_pu46.sh
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_tau_ibl_pu46.sh
@@ -1,7 +1,6 @@
 #!/bin/bash
 # art-description: art job for tau_IBL_pu46
 # art-type: grid
-# art-output: pid
 # art-output: HLTEF-plots
 # art-output: HLTL2-plots
 # art-output: times
@@ -25,6 +24,49 @@
 RED='\033[0;31m'
 NC='\033[0m'
 
+
+function usage { 
+    [ $# -gt 1 ] && echo $2
+
+    echo "Usage: $(basename $0) [args]"
+    echo 
+    echo "-d, --directory  DIRECTORY \t run from the specified directory"
+    echo "-l, --local                \t run locally rather than on the grid"
+    echo "-x, --exclude              \t don't run athena or the post processing, only the plotting stages"
+    echo "-p, --post                 \t force running of post processingthe post processing, even if -x is set"
+    echo "-f, --force                \t disable protection against rerunning where you shouldn't be"
+    echo "-h, --help                 \t this help"
+    [ $# -gt 0 ] && exit $1
+    exit 0
+}
+
+args=$(getopt -ql "searchpath:" -o "d:lxph" -- "$@")
+
+# eval set -- "$args"
+
+RUNATHENA=1
+RUNPOST=-1
+DIRECTORY=
+LOCAL=0
+FORCE=0
+
+while [ $# -ge 1 ]; do
+    case "$1" in
+        --) shift ; break ;;
+        -d | --directory )  if [ $# -lt 2 ]; then usage; fi ; DIRECTORY="$2" ; shift ;;
+        -x | --exclude )    RUNATHENA=0 ; [ $RUNPOST -eq -1 ] && RUNPOST=0;;
+        -p | --post )       RUNPOST=1 ;;
+        -f | --force )      FORCE=1 ;;
+        -l | --local )      LOCAL=1 ;;
+        -h | --help )       usage ;;
+     esac
+    shift
+done
+
+
+[ $RUNPOST -eq 0 ] || RUNPOST=1
+
+
 # generate a time stamp
 
 function timestamp { printf "${RED}Timestamp: $1 $(date)${NC}\n"  ; }
@@ -153,6 +195,7 @@ function saveoutput {
 
 
 
+ls -l
 
 
 
@@ -160,7 +203,7 @@ export RTTJOBNAME=TrigInDetValidation_tau_IBL_pu46
 
 jobList=
 
-if [ $# -gt 0 -a "x$1" == "x--local" ]; then
+if [ $LOCAL -eq 1 ]; then
       echo "running locally"
       # get number of files 
       NFILES=$(grep "^#[[:space:]]*art-input-nfiles:" $0 | sed 's|.*art-input-nfiles:[[:space:]]*||g')
@@ -171,9 +214,12 @@ else
       fileList="['${ArtInFile//,/', '}']"
       _jobList="'../${ArtInFile//,/' '../}'"
       echo "List of files = $fileList"
-      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; done
+      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; echo "ART running over $git"  ; done
 fi
 
+
+if [ $RUNATHENA -eq 1 ]; then 
+
 get_files -jo            TrigInDetValidation/TrigInDetValidation_RTT_topOptions_TauSlice.py
 
 
@@ -188,7 +234,7 @@ for git in $jobList ; do
 
     ARGS="$git;EventMax=2000"
  
-    echo "ARGS: $ARGS"
+#   echo "ARGS: $ARGS"
 
     waitonproc
     
@@ -266,6 +312,9 @@ hadd expert-monitoring.root athena-*/expert-monitoring.root &> hadd.log
   
 for git in output-dataset/*.root ; do ln -s $git TrkNtuple-0000.root ; break ; done  
 
+fi
+
+
 ls -lt
 
 
@@ -283,6 +332,8 @@ for DATFILE in *.dat ; do
     fi
 done
 
+if [ $RUNATHENA -eq 1 -o $RUNPOST -eq 1 ]; then
+
 
 TIDArdict TIDAdata11-rtt.dat -f data-tau-IBL.root -b Test_bin.dat  2>&1 | tee TIDArdict_1.log
 echo "art-result: $? TIDArdict_1"
@@ -293,6 +344,9 @@ timestamp "TIDArdict"
 
 
 
+fi
+
+
 TIDArun-art.sh data-tau-IBL.root data-tau_IBL_pu46-reference.root HLT_tau25_idperf_track_InDetTrigTrackingxAODCnv_Tau_FTF HLT_tau25_idperf_track_InDetTrigTrackingxAODCnv_Tau_IDTrig HLT_tau25_idperf_tracktwo_InDetTrigTrackingxAODCnv_TauIso_FTF_forID3 HLT_tau25_idperf_tracktwo_InDetTrigTrackingxAODCnv_Tau_IDTrig_forID3 -d HLTEF-plots  2>&1 | tee TIDArun_2.log
 echo "art-result: $? TIDArun_2"
 
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_tau_ibl_pu46_offline.sh b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_tau_ibl_pu46_offline.sh
index 4c38843986a5bacde626b61833b2dffdb8b9c084..d7cf8ad880fee5c0adbdfde65d17323fe4a2a29f 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_tau_ibl_pu46_offline.sh
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigindetvalidation_tau_ibl_pu46_offline.sh
@@ -1,7 +1,6 @@
 #!/bin/bash
 # art-description: art job for tau_IBL_pu46_offline
 # art-type: grid
-# art-output: pid
 # art-output: HLTEF-plots
 # art-output: HLTL2-plots
 # art-output: times
@@ -25,6 +24,49 @@
 RED='\033[0;31m'
 NC='\033[0m'
 
+
+function usage { 
+    [ $# -gt 1 ] && echo $2
+
+    echo "Usage: $(basename $0) [args]"
+    echo 
+    echo "-d, --directory  DIRECTORY \t run from the specified directory"
+    echo "-l, --local                \t run locally rather than on the grid"
+    echo "-x, --exclude              \t don't run athena or the post processing, only the plotting stages"
+    echo "-p, --post                 \t force running of post processingthe post processing, even if -x is set"
+    echo "-f, --force                \t disable protection against rerunning where you shouldn't be"
+    echo "-h, --help                 \t this help"
+    [ $# -gt 0 ] && exit $1
+    exit 0
+}
+
+args=$(getopt -ql "searchpath:" -o "d:lxph" -- "$@")
+
+# eval set -- "$args"
+
+RUNATHENA=1
+RUNPOST=-1
+DIRECTORY=
+LOCAL=0
+FORCE=0
+
+while [ $# -ge 1 ]; do
+    case "$1" in
+        --) shift ; break ;;
+        -d | --directory )  if [ $# -lt 2 ]; then usage; fi ; DIRECTORY="$2" ; shift ;;
+        -x | --exclude )    RUNATHENA=0 ; [ $RUNPOST -eq -1 ] && RUNPOST=0;;
+        -p | --post )       RUNPOST=1 ;;
+        -f | --force )      FORCE=1 ;;
+        -l | --local )      LOCAL=1 ;;
+        -h | --help )       usage ;;
+     esac
+    shift
+done
+
+
+[ $RUNPOST -eq 0 ] || RUNPOST=1
+
+
 # generate a time stamp
 
 function timestamp { printf "${RED}Timestamp: $1 $(date)${NC}\n"  ; }
@@ -153,6 +195,7 @@ function saveoutput {
 
 
 
+ls -l
 
 
 
@@ -160,7 +203,7 @@ export RTTJOBNAME=TrigInDetValidation_tau_IBL_pu46_offline
 
 jobList=
 
-if [ $# -gt 0 -a "x$1" == "x--local" ]; then
+if [ $LOCAL -eq 1 ]; then
       echo "running locally"
       # get number of files 
       NFILES=$(grep "^#[[:space:]]*art-input-nfiles:" $0 | sed 's|.*art-input-nfiles:[[:space:]]*||g')
@@ -171,9 +214,12 @@ else
       fileList="['${ArtInFile//,/', '}']"
       _jobList="'../${ArtInFile//,/' '../}'"
       echo "List of files = $fileList"
-      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; done
+      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; echo "ART running over $git"  ; done
 fi
 
+
+if [ $RUNATHENA -eq 1 ]; then 
+
 get_files -jo            TrigInDetValidation/TrigInDetValidation_RTT_topOptions_TauSlice.py
 
 
@@ -188,7 +234,7 @@ for git in $jobList ; do
 
     ARGS="$git;EventMax=2000;doIDNewTracking=True;PdgId=15"
  
-    echo "ARGS: $ARGS"
+#   echo "ARGS: $ARGS"
 
     waitonproc
     
@@ -266,6 +312,9 @@ hadd expert-monitoring.root athena-*/expert-monitoring.root &> hadd.log
   
 for git in output-dataset/*.root ; do ln -s $git TrkNtuple-0000.root ; break ; done  
 
+fi
+
+
 ls -lt
 
 
@@ -283,6 +332,8 @@ for DATFILE in *.dat ; do
     fi
 done
 
+if [ $RUNATHENA -eq 1 -o $RUNPOST -eq 1 ]; then
+
 
 TIDArdict TIDAdata11-rtt-offline.dat -f data-tau-IBL.root -b Test_bin.dat  2>&1 | tee TIDArdict_1.log
 echo "art-result: $? TIDArdict_1"
@@ -293,6 +344,9 @@ timestamp "TIDArdict"
 
 
 
+fi
+
+
 TIDArun-art.sh data-tau-IBL.root data-tau_IBL_pu46_offline-reference.root HLT_tau25_idperf_track_InDetTrigTrackingxAODCnv_Tau_FTF HLT_tau25_idperf_track_InDetTrigTrackingxAODCnv_Tau_IDTrig HLT_tau25_idperf_tracktwo_InDetTrigTrackingxAODCnv_TauIso_FTF_forID3 HLT_tau25_idperf_tracktwo_InDetTrigTrackingxAODCnv_Tau_IDTrig_forID3 -d HLTEF-plots  2>&1 | tee TIDArun_2.log
 echo "art-result: $? TIDArun_2"
 
diff --git a/Trigger/TrigValidation/TrigInDetValidation/utils/mkart-template b/Trigger/TrigValidation/TrigInDetValidation/utils/mkart-template
index 36aaf98dee7597220cd1e3bdf11944604c152e50..5c2aec0e24d62f4bc4eeaef859edfe170d120762 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/utils/mkart-template
+++ b/Trigger/TrigValidation/TrigInDetValidation/utils/mkart-template
@@ -225,14 +225,17 @@ for xmlfile in $FILES; do
 
 		  command="$(echo $command | sed 's|^ *||g')"
  
+		  TIDARDICT=0
+
 		  if ( echo $command | grep -q TIDArdict ); then 
+		      TIDARDICT=1
                       echo ""         >> $outfile
 		      echo "for DATFILE in *.dat ; do"                      >> $outfile 
-		      echo "    if ( grep -q DataFile \$DATFILE ); then"   >> $outfile
-		      echo "         mv  \$DATFILE  \$DATFILE.bak" 	     >> $outfile      
+		      echo "    if ( grep -q DataFile \$DATFILE ); then"    >> $outfile
+		      echo "         mv  \$DATFILE  \$DATFILE.bak" 	    >> $outfile      
 		      echo "         grep -v \"\\(DataSets\\|DataFiles\\)\"  \$DATFILE.bak > \$DATFILE" >> $outfile	    
 		      echo "         echo \"DataSets = { \\\"./output-dataset/\\\" };\"   >> \$DATFILE" >> $outfile	      
-		      echo "    fi" >> $outfile	    
+		      echo "    fi"   >> $outfile	    
 	              echo "done"     >> $outfile
 	              echo ""         >> $outfile
 
@@ -242,6 +245,9 @@ for xmlfile in $FILES; do
 		  command=$(echo $command | sed 's|\.exe | |g')
 
 		  ( echo "$command" | grep -q trig_cost.root ) && command=$(echo "$command" | sed 's|-f trig_cost.root|--files output-cost/*trig_cost.root|g')
+		  
+
+		  [ $TIDARDICT -eq 1 ] && echo -e "if [ \$RUNATHENA -eq 1 -o \$RUNPOST -eq 1 ]; then\n" >> $outfile
 
 #	          echo    "CMD0: $command"
 #                 echo    "$command"               >> $outfile
@@ -251,6 +257,8 @@ for xmlfile in $FILES; do
        	     
 		  timestamp $command >> $outfile
 
+		  [ $TIDARDICT -eq 1 ] && echo -e "\nfi\n" >> $outfile
+
 		  ((COUNTER++))
 	       fi	  
               
@@ -338,13 +346,13 @@ for xmlfile in $FILES; do
 
 #     grep cpu $outfile 
 
-      for TOUTDIR in $(cat $outfile | grep -v cpu ); do 
-	[ $USENEXTFILE -eq 1 ] &&  echo "# art-output: $TOUTDIR" >> $outfile.extra && USENEXTFILE=0 &&  continue 
+      for TOUTDIR in $(cat $outfile | grep TIDA | grep -v cpu ); do
+	[ $USENEXTFILE -eq 1 ] &&  echo "# art-output: $TOUTDIR" >> $outfile.extra && USENEXTFILE=0 && continue 
 	[ "x$TOUTDIR" == "x-d" -o "x$TOUTDIR" == "x-o" ] && USENEXTFILE=1 
       done
 
-      for TOUTDIR in $(cat $outfile | grep cpu ); do 
-	[ $USENEXTFILE -eq 1 ] &&  echo "# art-output: $TOUTDIR" >> $outfile.extra && USENEXTFILE=0 &&  continue 
+      for TOUTDIR in $(cat $outfile | grep TIDA | grep cpu ); do 
+ 	[ $USENEXTFILE -eq 1 ] &&  echo "# art-output: $TOUTDIR" >> $outfile.extra && USENEXTFILE=0 && continue 
 	[ "x$TOUTDIR" == "x-o" ] && USENEXTFILE=1  
       done
     
diff --git a/Trigger/TrigValidation/TrigInDetValidation/utils/mkreference b/Trigger/TrigValidation/TrigInDetValidation/utils/mkreference
new file mode 100755
index 0000000000000000000000000000000000000000..b27921ccdcbdacfa37f55e7a99fbd9f23b7d4c3f
--- /dev/null
+++ b/Trigger/TrigValidation/TrigInDetValidation/utils/mkreference
@@ -0,0 +1,52 @@
+#!/bin/bash
+
+
+# analysis comparitor chains ...
+
+# echo -e "$1\n\n"
+
+# grep TIDArun-art.sh $1 | grep -v "^#" | grep -v timestamp | grep -v expert 
+
+TMP=$(mktemp -u /tmp/.chains-XXX.log)
+
+echo -e "\n"
+
+JOB=$(grep RTTJOBNAME= $1 | sed 's|.*=[[:space:]]*TrigInDetValidation_||g' )
+
+echo "JOB $JOB"
+
+ROOTFILE=$(grep TIDArun-art.sh $1 | grep -v timestamp | grep -v "^#" | grep -v expert | head -1 | awk '{print $2}' )
+
+REFFILE=$(grep TIDArun-art.sh $1 | grep -v timestamp | grep -v "^#" | grep -v expert | head -1 | awk '{print $3}' )
+
+RAWCHAINS=$(grep TIDArun-art.sh $1 | grep -v timestamp | grep -v "^#" | grep -v expert | sed 's|.*root[[:space:]]||g' | sed 's| -.*||g' )
+
+for CHAIN in $RAWCHAINS; do echo "$CHAIN" >> $TMP ; done
+
+
+CHAINS=$( cat $TMP | sort -u )
+
+# for CHAIN in $CHAINS; do echo "- $CHAIN -" ; done
+
+
+echo "REF: $REFFILE" 
+echo "     data-$JOB-reference.root"
+
+
+
+
+cp $ROOTFILE data-$JOB-reference-tmp.root
+
+TIDAcomparitor $ROOTFILE data-$JOB-reference-tmp.root $CHAINS -d Reduced --deleteref 
+# >& comparitor.log
+
+ls -l data-$JOB-reference*.root
+
+# expert histograms run TIDAcpucost not TIDAcomparitor
+
+# EXPERT=$(grep TIDArun-art.sh $1 | grep -v timestamp | grep auto | sed 's|.*root[[:space:]]||g' | sed 's| -.*||g'
+# EXFILE=$(grep TIDArun-art.sh $1 | grep -v timestamp | grep auto | sed 's|.*root[[:space:]]||g' | awk '{print $2}')
+
+
+
+
diff --git a/Trigger/TrigValidation/TrigInDetValidation/utils/template.sh b/Trigger/TrigValidation/TrigInDetValidation/utils/template.sh
index cf3f517c3e721ac87b4d5b0735c65a9e25028a8c..0092395b16a933ef64c0d9d11b6d13c35deaa0eb 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/utils/template.sh
+++ b/Trigger/TrigValidation/TrigInDetValidation/utils/template.sh
@@ -2,6 +2,49 @@
 RED='\033[0;31m'
 NC='\033[0m'
 
+
+function usage { 
+    [ $# -gt 1 ] && echo $2
+
+    echo "Usage: $(basename $0) [args]"
+    echo 
+    echo "-d, --directory  DIRECTORY \t run from the specified directory"
+    echo "-l, --local                \t run locally rather than on the grid"
+    echo "-x, --exclude              \t don't run athena or the post processing, only the plotting stages"
+    echo "-p, --post                 \t force running of post processingthe post processing, even if -x is set"
+    echo "-f, --force                \t disable protection against rerunning where you shouldn't be"
+    echo "-h, --help                 \t this help"
+    [ $# -gt 0 ] && exit $1
+    exit 0
+}
+
+args=$(getopt -ql "searchpath:" -o "d:lxph" -- "$@")
+
+# eval set -- "$args"
+
+RUNATHENA=1
+RUNPOST=-1
+DIRECTORY=
+LOCAL=0
+FORCE=0
+
+while [ $# -ge 1 ]; do
+    case "$1" in
+        --) shift ; break ;;
+        -d | --directory )  if [ $# -lt 2 ]; then usage; fi ; DIRECTORY="$2" ; shift ;;
+        -x | --exclude )    RUNATHENA=0 ; [ $RUNPOST -eq -1 ] && RUNPOST=0;;
+        -p | --post )       RUNPOST=1 ;;
+        -f | --force )      FORCE=1 ;;
+        -l | --local )      LOCAL=1 ;;
+        -h | --help )       usage ;;
+     esac
+    shift
+done
+
+
+[ $RUNPOST -eq 0 ] || RUNPOST=1
+
+
 # generate a time stamp
 
 function timestamp { printf "${RED}Timestamp: $1 $(date)${NC}\n"  ; }
@@ -130,6 +173,7 @@ function saveoutput {
 
 
 
+ls -l
 
 
 
@@ -137,7 +181,7 @@ export RTTJOBNAME=@REPLACERTTJOBNAME
 
 jobList=
 
-if [ $# -gt 0 -a "x$1" == "x--local" ]; then
+if [ $LOCAL -eq 1 ]; then
       echo "running locally"
       # get number of files 
       NFILES=$(grep "^#[[:space:]]*art-input-nfiles:" $0 | sed 's|.*art-input-nfiles:[[:space:]]*||g')
@@ -148,9 +192,12 @@ else
       fileList="['${ArtInFile//,/', '}']"
       _jobList="'../${ArtInFile//,/' '../}'"
       echo "List of files = $fileList"
-      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; done
+      for git in $_jobList ; do jobList="$jobList ARTConfig=[$git]" ; echo "ART running over $git"  ; done
 fi
 
+
+if [ $RUNATHENA -eq 1 ]; then 
+
 get_files -jo @REPLACEJOBOPTIONS
 
 
@@ -165,7 +212,7 @@ for git in $jobList ; do
 
     ARGS="$git;@REPLACECOMMAND"
  
-    echo "ARGS: $ARGS"
+#   echo "ARGS: $ARGS"
 
     waitonproc
     
@@ -243,6 +290,9 @@ hadd expert-monitoring.root athena-*/expert-monitoring.root &> hadd.log
   
 for git in output-dataset/*.root ; do ln -s $git TrkNtuple-0000.root ; break ; done  
 
+fi
+
+
 ls -lt