diff --git a/benchmarks/far_forward/scripts/gen_far_forward_protons.cxx b/benchmarks/far_forward/scripts/gen_far_forward_protons.cxx
index 1b363ca1e5e656967196307dd5586ba5bf0d78a8..fe83661b103aefb30cbe56ccebf2404fd09b475a 100644
--- a/benchmarks/far_forward/scripts/gen_far_forward_protons.cxx
+++ b/benchmarks/far_forward/scripts/gen_far_forward_protons.cxx
@@ -17,8 +17,12 @@ using namespace HepMC3;
 void gen_far_forward_protons(int n_events = 100, 
                      const char* out_fname = "far_forward_protons.hepmc")
 {
-  double cos_theta_min = std::cos(0.3*(M_PI/180.0));
-  double cos_theta_max = std::cos(2.0*(M_PI/180.0));
+
+  double minMomentum = 270.0; //GeV
+  double maxMomentum = 275.0; //GeV
+  
+  double cos_theta_min = std::cos(0.0*(M_PI/180.0)); //we need MRAD for the units - syntax is degrees*Pi/180
+  double cos_theta_max = std::cos(1.15*(M_PI/180.0)); //FF region is 0.0 to 20.0 mrad
 
   WriterAscii hepmc_output(out_fname);
   int events_parsed = 0;
@@ -39,7 +43,7 @@ void gen_far_forward_protons(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 p     = r1->Uniform(minMomentum, maxMomentum);
     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);