diff --git a/benchmarks/barrel_ecal/config.yml b/benchmarks/barrel_ecal/config.yml
index 81e692930c7e0ecb955398a45f412c02f713464b..66c1606fbf881227d8ed132b5608c11a3e711918 100644
--- a/benchmarks/barrel_ecal/config.yml
+++ b/benchmarks/barrel_ecal/config.yml
@@ -31,7 +31,7 @@ collect_results:barrel_ecal:
   extends: .det_benchmark
   stage: collect
   needs: 
-    - ["bench:emcal_barrel_pions","sim:emcal_barrel_electrons"]
+    - ["bench:emcal_barrel_pions","bench:emcal_barrel_electrons"]
   script:
     - ls -lrht
 
diff --git a/benchmarks/barrel_ecal/scripts/emcal_barrel_electrons_analysis.cxx b/benchmarks/barrel_ecal/scripts/emcal_barrel_electrons_analysis.cxx
index 6327820d9a9d71d1846fe4d91404d4d78e6df6e8..6b52660ae1d9ac0d952fe1eccc2cf07812098fbf 100644
--- a/benchmarks/barrel_ecal/scripts/emcal_barrel_electrons_analysis.cxx
+++ b/benchmarks/barrel_ecal/scripts/emcal_barrel_electrons_analysis.cxx
@@ -37,9 +37,9 @@ void emcal_barrel_electrons_analysis(const char* input_fname = "sim_output/sim_e
 
   // Thrown Energy [GeV]
   auto Ethr = [](std::vector<dd4pod::Geant4ParticleData> const& input) {
-    std::vector<double> result;
-    result.push_back(TMath::Sqrt(input[2].psx*input[2].psx + input[2].psy*input[2].psy + input[2].psz*input[2].psz + input[2].mass*input[2].mass));
-  return result;
+    auto p = input[2];
+    auto energy = TMath::Sqrt(p.psx * p.psx + p.psy * p.psy + p.psz * p.psz + p.mass * p.mass);
+    return energy;
   };
 
   // Number of hits
@@ -47,23 +47,15 @@ void emcal_barrel_electrons_analysis(const char* input_fname = "sim_output/sim_e
 
   // Energy deposition [GeV]
   auto Esim = [](const std::vector<dd4pod::CalorimeterHitData>& evt) {
-    std::vector<double> result;
     auto total_edep = 0.0;
     for (const auto& i: evt)
       total_edep += i.energyDeposit;
-    result.push_back(total_edep);
-    return result;
+    return total_edep;
   };
 
   // Sampling fraction = Esampling / Ethrown
-  auto fsam = [](const std::vector<double>& sampled,
-                 const std::vector<double>& thrown) {
-    std::vector<double> result;
-    for (const auto& E1 : thrown) {
-      for (const auto& E2 : sampled)
-        result.push_back(E2 / E1);
-    }
-    return result;
+  auto fsam = [](const double sampled, const double thrown) {
+    return sampled / thrown;
   };
 
   // Define variables