diff --git a/benchmarks/synchrotron/analysis/synchrotron_tests.cxx b/benchmarks/synchrotron/analysis/synchrotron_raw.cxx
similarity index 89%
rename from benchmarks/synchrotron/analysis/synchrotron_tests.cxx
rename to benchmarks/synchrotron/analysis/synchrotron_raw.cxx
index 71c37671f2658ce2cb70555c3757ddc44335ac5e..3798cd86e4db39885aa8b3cb991cbc9b14065c6b 100644
--- a/benchmarks/synchrotron/analysis/synchrotron_tests.cxx
+++ b/benchmarks/synchrotron/analysis/synchrotron_raw.cxx
@@ -19,7 +19,7 @@ R__LOAD_LIBRARY(libDD4pod.so)
 
 #include "eicd/ReconstructedParticleCollection.h"
 
-void synchrotron_tests(const char* fname = "rec.root"){
+void synchrotron_raw(const char* fname = "rec_synchrotron.raw.root"){
 
   fmt::print(fmt::emphasis::bold | fg(fmt::color::forest_green), "Running synchrotron analysis...\n");
 
diff --git a/benchmarks/synchrotron/analysis/synchrotron_sim.cxx b/benchmarks/synchrotron/analysis/synchrotron_sim.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..10a4a98ff5626d1012645b2744c5f7c06d19276f
--- /dev/null
+++ b/benchmarks/synchrotron/analysis/synchrotron_sim.cxx
@@ -0,0 +1,41 @@
+#include <cmath>
+#include <iostream>
+#include <string>
+#include <vector>
+
+#include "ROOT/RDataFrame.hxx"
+#include "Math/Vector4D.h"
+#include "TCanvas.h"
+
+#include <nlohmann/json.hpp>
+using json = nlohmann::json;
+
+R__LOAD_LIBRARY(libfmt.so)
+#include "fmt/core.h"
+#include "fmt/color.h"
+
+R__LOAD_LIBRARY(libeicd.so)
+R__LOAD_LIBRARY(libDD4pod.so)
+
+#include "eicd/ReconstructedParticleCollection.h"
+
+void synchrotron_raw(const char* fname = "sim_synchrotron.root"){
+
+  fmt::print(fmt::emphasis::bold | fg(fmt::color::forest_green), "Running synchrotron analysis...\n");
+
+  // Run this in multi-threaded mode if desired
+  ROOT::EnableImplicitMT();
+  ROOT::RDataFrame df("events", fname);
+
+  // Define variables
+  auto df0 = df
+    .Define("n_VertexBarrelHits", "VertexBarrelHits.size()")
+    .Define("n_VertexEndcapHits", "VertexEndcapHits.size()")
+  ;
+
+  auto n_VertexBarrelHits = df0.Mean("n_VertexBarrelHits");
+  auto n_VertexEndcapHits = df0.Mean("n_VertexEncdapHits");
+
+  std::cout << "n_VertexBarrelHits = " << n_VertexBarrelHits << " / ev" << std::endl;
+  std::cout << "n_VertexEndcapHits = " << n_VertexEndcapHits << " / ev" << std::endl;
+}
diff --git a/benchmarks/synchrotron/synchrotron.sh b/benchmarks/synchrotron/synchrotron.sh
index e4c112d4373139c37878059469fba3f9196eaf04..e103ba350f9e2f7ccbeb0615bc5e3ddd26f547c0 100644
--- a/benchmarks/synchrotron/synchrotron.sh
+++ b/benchmarks/synchrotron/synchrotron.sh
@@ -146,7 +146,13 @@ if [[ -n "${DO_ANA}" || -n "${DO_ALL}" ]] ; then
   mkdir -p results/synchrotron
 
   # here you can add as many scripts as you want.
-  root -b -q "benchmarks/synchrotron/analysis/synchrotron_tests.cxx+(\"${JUGGLER_REC_FILE/.root/.raw.root}\")"
+  root -b -q "benchmarks/synchrotron/analysis/synchrotron_sim.cxx+(\"${JUGGLER_SIM_FILE}\")"
+  if [[ "$?" -ne "0" ]] ; then
+    echo "ERROR running root script"
+    exit 1
+  fi
+
+  root -b -q "benchmarks/synchrotron/analysis/synchrotron_raw.cxx+(\"${JUGGLER_REC_FILE/.root/.raw.root}\")"
   if [[ "$?" -ne "0" ]] ; then
     echo "ERROR running root script"
     exit 1