diff --git a/benchmarks/track_fitting/options/track_reconstruction.py b/benchmarks/track_fitting/options/track_reconstruction.py
index b657a008f9e2cde7fea75385da4b4c287c862ac8..00ee10d8f8e6d603a2e637da0cff6c912ec7ed0c 100644
--- a/benchmarks/track_fitting/options/track_reconstruction.py
+++ b/benchmarks/track_fitting/options/track_reconstruction.py
@@ -3,7 +3,7 @@ from Gaudi.Configuration import *
 from Configurables import ApplicationMgr, EICDataSvc, PodioOutput, GeoSvc
 from GaudiKernel import SystemOfUnits as units
 
-detector_name = "topside"
+detector_name = "athena"
 if "JUGGLER_DETECTOR" in os.environ :
   detector_name = str(os.environ["JUGGLER_DETECTOR"])
 
@@ -124,16 +124,14 @@ trk_hit_col = TrackingHitsCollector("trk_hit_col",
             str(vtx_b_reco.outputHitCollection),
             str(vtx_ec_reco.outputHitCollection),
             str(gem_ec_reco.outputHitCollection) ],
-        trackingHits="trackingHits",
-        OutputLevel=DEBUG)
+        trackingHits="trackingHits")
 algorithms.append( trk_hit_col )
 
 # Hit Source linker 
 sourcelinker = TrackerSourceLinker("sourcelinker",
         inputHitCollection=trk_hit_col.trackingHits,
         outputSourceLinks="TrackSourceLinks",
-        outputMeasurements="TrackMeasurements",
-        OutputLevel=DEBUG)
+        outputMeasurements="TrackMeasurements")
 algorithms.append( sourcelinker )
 
 ## Track param init
diff --git a/benchmarks/track_fitting/scripts/gen_single_tracks.cxx b/benchmarks/track_fitting/scripts/gen_single_tracks.cxx
index 0e41a5058b952d5a46efaae041ff2b67f383055e..963810510115d37df8cff7e0f9c3e994a69858fc 100644
--- a/benchmarks/track_fitting/scripts/gen_single_tracks.cxx
+++ b/benchmarks/track_fitting/scripts/gen_single_tracks.cxx
@@ -19,8 +19,13 @@ using namespace HepMC3;
 void gen_single_tracks(int n_events = 100, 
                      const char* out_fname = "single_tracks.hepmc")
 {
-  double cos_theta_min = std::cos( 10.0*(M_PI/180.0));
-  double cos_theta_max = std::cos(170.0*(M_PI/180.0));
+  // Throw flat in cos(theta)
+  //double cos_theta_min = std::cos( 2.0*(M_PI/180.0));
+  //double cos_theta_max = std::cos(178.0*(M_PI/180.0));
+
+  // Throw flat in eta
+  double eta_min = -3.5;
+  double eta_max =  3.5;
 
   WriterAscii hepmc_output(out_fname);
   int events_parsed = 0;
@@ -41,13 +46,15 @@ void gen_single_tracks(int n_events = 100,
         FourVector(0.0, 0.0, 0.0, 0.938), 2212, 4);
 
     // Define momentum
-    Double_t p     = r1->Uniform(1.0, 10.0);
-    Double_t phi   = r1->Uniform(0.0, 2.0 * M_PI);
-    Double_t costh = r1->Uniform(cos_theta_min, cos_theta_max);
-    Double_t th    = std::acos(costh);
-    Double_t px    = p * std::cos(phi) * std::sin(th);
-    Double_t py    = p * std::sin(phi) * std::sin(th);
-    Double_t pz    = p * std::cos(th);
+    double p     = r1->Uniform(1.0, 10.0);
+    double phi   = r1->Uniform(0.0, 2.0 * M_PI);
+    double eta   = r1->Uniform(eta_min, eta_max);
+    double th    = 2.0*std::atan(std::exp(-eta));
+    //double costh = r1->Uniform(cos_theta_min, cos_theta_max);
+    //double th    = std::acos(costh);
+    double px    = p * std::cos(phi) * std::sin(th);
+    double py    = p * std::sin(phi) * std::sin(th);
+    double pz    = p * std::cos(th);
     // Generates random vectors, uniformly distributed over the surface of a
     // sphere of given radius, in this case momentum.
     // r1->Sphere(px, py, pz, p);
diff --git a/benchmarks/track_fitting/scripts/rec_single_tracks.cxx b/benchmarks/track_fitting/scripts/rec_single_tracks.cxx
index c9c4158f67946b28631fae6ca1ed28cb88ee2717..d7835c4ff21a2ad15161c0a55dd0d7c1cd4c112b 100644
--- a/benchmarks/track_fitting/scripts/rec_single_tracks.cxx
+++ b/benchmarks/track_fitting/scripts/rec_single_tracks.cxx
@@ -14,6 +14,9 @@ R__LOAD_LIBRARY(libDD4pod.so)
 #include "eicd/ClusterData.h"
 #include "eicd/TrackerHitCollection.h"
 
+#include "common_bench/util.h"
+namespace cb = common_bench;
+
 using ROOT::RDataFrame;
 using namespace ROOT::VecOps;
 
@@ -89,24 +92,20 @@ int rec_single_tracks(const char* fname = "topside/rec_single_tracks.root")
                  .Define("thrownP", fourvec, {"thrownParticles"})
                  .Define("p_thrown", momentum, {"thrownP"})
                  .Define("theta_thrown", theta, {"thrownP"})
+                 .Define("eta_thrown",cb::eta , {"thrownP"})
                  .Define("theta0", "theta_thrown[0]")
+                 .Define("eta0", "eta_thrown[0]")
                  .Define("nTracks", "outputTrackParameters.size()")
                  .Define("p_track", p_track, {"outputTrackParameters"})
-                 //.Define("p_track1", p_track, {"outputTrackParameters1"})
-                 //.Define("p_track2", p_track, {"outputTrackParameters2"})
                  .Define("delta_p0",delta_p, {"p_track", "p_thrown"})
-                 //.Define("delta_p1",delta_p, {"p_track1", "p_thrown"})
-                 //.Define("delta_p2",delta_p, {"p_track2", "p_thrown"})
                  .Define("delta_p_over_p0",delta_p_over_p, {"p_track", "p_thrown"})
-                 //.Define("delta_p_over_p1",delta_p_over_p, {"p_track1", "p_thrown"})
-                 //.Define("delta_p_over_p2",delta_p_over_p, {"p_track2", "p_thrown"})
-                 //.Define("N_VtxBarrelHits",[](std::vector<eic::TrackerHitData> hits) { return hits.size();},{"VertexBarrelRecHits"})
                  .Define("N_Hits",       [](std::vector<eic::TrackerHitData> hits) { return hits.size();}, {"trackingHits"})
                  .Define("N_BarrelHits", [](std::vector<eic::TrackerHitData> hits) { return hits.size();}, {"TrackerBarrelRecHits"})
                  .Define("N_EndcapHits", [](std::vector<eic::TrackerHitData> hits) { return hits.size();}, {"TrackerEndcapRecHits"})
                  ;
 
   auto h_nTracks_vs_theta = df0.Histo2D({"h_nTracks_vs_theta", "; #theta; N tracks ", 40,0,180,10, 0, 10}, "theta0","nTracks");
+  auto h_nTracks_vs_eta = df0.Histo2D({"h_nTracks_vs_eta", "; #eta; N tracks ", 50,-4,4,10, 0, 10}, "eta0","nTracks");
 
   auto h_nTracks = df0.Histo1D({"h_nTracks", "; N tracks ", 10, 0, 10}, "nTracks");
   auto h_pTracks = df0.Histo1D({"h_pTracks", "; GeV/c ", 100, 0, 10}, "p_track");
@@ -120,6 +119,10 @@ int rec_single_tracks(const char* fname = "topside/rec_single_tracks.root")
   auto hEndcap_N_vs_theta = df0.Histo1D({"hEndcap_N_vs_theta", "; #theta [deg.]",   40, 0, 180 }, "theta0", "N_EndcapHits");
   //auto hVtxBarrel_N_vs_theta = df0.Histo1D({"hVtxBarrel_N_vs_theta", "; #theta [deg.]", 20, 0, 180 }, "theta0", "N_VtxBarrelHits");
 
+  auto hNhits_vs_eta    = df0.Histo1D({"hNhits_vs_eta", "; #eta ",    50, -4, 4 }, "eta0", "N_Hits");
+  auto hBarrel_N_vs_eta = df0.Histo1D({"hBarrel_N_vs_eta", "; #eta ", 50, -4, 4 }, "eta0", "N_BarrelHits");
+  auto hEndcap_N_vs_eta = df0.Histo1D({"hEndcap_N_vs_eta", "; #eta ", 50, -4, 4 }, "eta0", "N_EndcapHits");
+
   auto hHits_Nhits  = df0.Histo1D({"hHits_Nhits", "; #theta [deg.]",       20, 0, 20 }, "N_Hits");
   auto hBarrel_Nhits  = df0.Histo1D({"hBarrel_Nhits", "; #theta [deg.]",   20, 0, 20 }, "N_BarrelHits");
   auto hEndcap_Nhits  = df0.Histo1D({"hEndcap_Nhits", "; #theta [deg.]",   20, 0, 20 }, "N_EndcapHits");
@@ -130,6 +133,9 @@ int rec_single_tracks(const char* fname = "topside/rec_single_tracks.root")
   auto hEndcap_Ntheta = df0.Histo1D({"hEndcap_Ntheta", "; #theta [deg.]",   40, 0, 180 }, "theta0");
   //auto hVtxBarrel_Ntheta = df0.Histo1D({"hVtxBarrel_Ntheta", "; #theta [deg.]", 20, 0, 180 }, "theta0");
 
+  auto hHits_Neta   = df0.Histo1D({"hHits_Neta", "; #eta [deg.]",   50, -4, 4 }, "eta0");
+  auto hBarrel_Neta = df0.Histo1D({"hBarrel_Neta", "; #eta [deg.]", 50, -4, 4 }, "eta0");
+  auto hEndcap_Neta = df0.Histo1D({"hEndcap_Neta", "; #eta [deg.]", 50, -4, 4 }, "eta0");
   // -----------------------------------------------
   auto c = new TCanvas();
 
@@ -197,6 +203,33 @@ int rec_single_tracks(const char* fname = "topside/rec_single_tracks.root")
   c->SaveAs("results/track_fitting/rec_single_tracks_n_hits_vs_theta.png");
   c->SaveAs("results/track_fitting/rec_single_tracks_n_hits_vs_theta.pdf");
 
+  // -----------------------------------------------
+  c  = new TCanvas();
+  hs = new THStack("n_hits","; #eta  ");
+
+  h1 = (TH1D*) hBarrel_N_vs_eta->Clone();
+  h2 = (TH1D*) hBarrel_Neta->Clone();
+  h1->SetLineColor(4);
+  h1->Divide(h2);
+  hs->Add(h1);
+
+  h1 = (TH1D*) hEndcap_N_vs_eta->Clone();
+  h2 = (TH1D*) hEndcap_Neta->Clone();
+  h1->Divide(h2);
+  h1->SetLineColor(2);
+  hs->Add(h1);
+
+  h1 = (TH1D*) hNhits_vs_eta->Clone();
+  h2 = (TH1D*) hHits_Neta->Clone();
+  h1->Divide(h2);
+  h1->SetLineColor(1);
+  hs->Add(h1);
+
+  hs->Draw("nostack, hist");
+  c->BuildLegend();
+  c->SaveAs("results/track_fitting/rec_single_tracks_n_hits_vs_eta.png");
+  c->SaveAs("results/track_fitting/rec_single_tracks_n_hits_vs_eta.pdf");
+
   // -----------------------------------------------
   c  = new TCanvas();
   hs = new THStack("theta","; #theta  ");