diff --git a/benchmarks/track_finding/config.yml b/benchmarks/track_finding/config.yml
index a5c029010a2e7f8cf64b8070c4a5db07ad463e80..29be4a8be34fc7f530e81ab089fa0a3bf58c0a1e 100644
--- a/benchmarks/track_finding/config.yml
+++ b/benchmarks/track_finding/config.yml
@@ -1,5 +1,13 @@
+track_finding:compile:
+  extends: .compile_benchmark
+  stage: compile
+  script:
+    - compile_analyses.py --dir scripts track_finding
+
 track_finding:multiple_tracks:
   extends: .rec_benchmark
+  needs:
+    - ["track_finding:compile"]
   stage: run
   timeout: 24 hours
   script:
diff --git a/benchmarks/track_finding/multiple_tracks.sh b/benchmarks/track_finding/multiple_tracks.sh
index 67ef180e12ec6cf1528dd246fff5a3280db90e6b..914df3b10520be18edca90eed4de499409bd854f 100644
--- a/benchmarks/track_finding/multiple_tracks.sh
+++ b/benchmarks/track_finding/multiple_tracks.sh
@@ -55,7 +55,7 @@ echo "JUGGLER_N_EVENTS = ${JUGGLER_N_EVENTS}"
 echo "JUGGLER_DETECTOR = ${JUGGLER_DETECTOR}"
 
 ## generate the input events
-root -b -q "benchmarks/track_finding/scripts/gen_multiple_tracks.cxx(${JUGGLER_N_EVENTS}, \"${JUGGLER_FILE_NAME_TAG}.hepmc\")"
+root -b -q "benchmarks/track_finding/scripts/gen_multiple_tracks.cxx+(${JUGGLER_N_EVENTS}, \"${JUGGLER_FILE_NAME_TAG}.hepmc\")"
 if [[ "$?" -ne "0" ]] ; then
   echo "ERROR running script"
   exit 1
@@ -92,7 +92,7 @@ rootls -t ${JUGGLER_REC_FILE}
 
 mkdir -p results/track_finding
 
-root -b -q "benchmarks/track_finding/scripts/rec_multiple_tracks.cxx(\"${JUGGLER_REC_FILE}\")"
+root -b -q "benchmarks/track_finding/scripts/rec_multiple_tracks.cxx+(\"${JUGGLER_REC_FILE}\")"
 if [[ "$?" -ne "0" ]] ; then
   echo "ERROR running root script"
   exit 1
diff --git a/benchmarks/track_fitting/config.yml b/benchmarks/track_fitting/config.yml
index 2363c6a73ffe82ebee142bc8b105509914fb8bdb..30a6b75c8a23640c5cabbd66e7283d05f13d6de2 100644
--- a/benchmarks/track_fitting/config.yml
+++ b/benchmarks/track_fitting/config.yml
@@ -1,6 +1,14 @@
+track_fitting:compile:
+  extends: .compile_benchmark
+  stage: compile
+  script:
+    - compile_analyses.py --dir scripts track_fitting
+
 track_fitting:single_tracks:
   extends: .rec_benchmark
   stage: run
+  needs:
+    - ["track_fitting:compile"]
   script:
     - bash benchmarks/track_fitting/single_tracks.sh
       
diff --git a/benchmarks/track_fitting/single_tracks.sh b/benchmarks/track_fitting/single_tracks.sh
index e5f3313ab9851022035a2d198dc042428229bb2a..19d166fa1661b4fec48031036d1e8a98e9d19791 100644
--- a/benchmarks/track_fitting/single_tracks.sh
+++ b/benchmarks/track_fitting/single_tracks.sh
@@ -58,7 +58,7 @@ echo "JUGGLER_N_EVENTS = ${JUGGLER_N_EVENTS}"
 echo "JUGGLER_DETECTOR = ${JUGGLER_DETECTOR}"
 
 ## generate the input events
-root -b -q "benchmarks/track_fitting/scripts/gen_single_tracks.cxx(${JUGGLER_N_EVENTS}, \"${JUGGLER_FILE_NAME_TAG}.hepmc\")"
+root -b -q "benchmarks/track_fitting/scripts/gen_single_tracks.cxx+(${JUGGLER_N_EVENTS}, \"${JUGGLER_FILE_NAME_TAG}.hepmc\")"
 if [[ "$?" -ne "0" ]] ; then
   echo "ERROR running script"
   exit 1
@@ -96,7 +96,7 @@ rootls -t  ${JUGGLER_REC_FILE}
 
 mkdir -p results/track_fitting
 
-root -b -q "benchmarks/track_fitting/scripts/rec_single_tracks.cxx(\"${JUGGLER_REC_FILE}\")"
+root -b -q "benchmarks/track_fitting/scripts/rec_single_tracks.cxx+(\"${JUGGLER_REC_FILE}\")"
 if [[ "$?" -ne "0" ]] ; then
   echo "ERROR running root script"
   exit 1
diff --git a/benchmarks/tracking/config.yml b/benchmarks/tracking/config.yml
index da8e48ba479e4b3401f87cae2e29ca45c137d2a6..796a6f7e031d7779c7c6587bc61c94ae3d293cf7 100644
--- a/benchmarks/tracking/config.yml
+++ b/benchmarks/tracking/config.yml
@@ -7,36 +7,39 @@ tracking_compile:
 tracking_central_electrons:
   extends: .rec_benchmark
   stage: run
-  timeout: 24 hours
+  needs:
+    - ["tracking_compile"]
   script:
     - bash benchmarks/tracking/central_electrons.sh
-      #allow_failure: true
       
 multiple_tracks:
   extends: .rec_benchmark
   stage: run
-  timeout: 24 hours
+  needs:
+    - ["tracking_compile"]
   script:
     - bash benchmarks/tracking/multiple_tracks.sh
 
 tracking_central_pions:
   extends: .rec_benchmark
   stage: run
-  timeout: 24 hours
+  needs:
+    - ["tracking_compile"]
   script:
     - bash benchmarks/tracking/central_pions.sh
-      #allow_failure: true
 
 tracking_truth_init_electrons:
   extends: .rec_benchmark
   stage: run
-  timeout: 24 hours
+  needs:
+    - ["tracking_compile"]
   script:
     - python benchmarks/tracking/run_tracking_benchmarks.py --nametag=truth_electron --particle=electron --etamin=-4 --etamax=4 -n 150
 
 tracking_truth_init_pions:
   extends: .rec_benchmark
   stage: run
-  timeout: 24 hours
+  needs:
+    - ["tracking_compile"]
   script:
     - python benchmarks/tracking/run_tracking_benchmarks.py --nametag=truth_pion --particle=pion+ --etamin=-4 --etamax=4 -n 150