diff --git a/Control/CalypsoExample/Generation/python/faser_parser.py b/Control/CalypsoExample/Generation/python/faser_parser.py
index c98d348aea5ccc2e2b3c1459ef793bd41bb8c3e9..055dd7200201ce69823d798609cb991d85f4e794 100644
--- a/Control/CalypsoExample/Generation/python/faser_parser.py
+++ b/Control/CalypsoExample/Generation/python/faser_parser.py
@@ -40,7 +40,7 @@ def faser_pgparser():
                         help="Specify PDG ID of particle (note plus/minus different) or list (e.g.: --pid -13 13)")
     parser.add_argument("--mass", default=105.66, type=float,
                         help="Specify particle mass (in MeV)")
-    parser.add_argument("--radius", default=100., type=float,
+    parser.add_argument("--radius", default=100., type=float, nargs="*",
                         help="Specify radius (in mm)")
     parser.add_argument("--angle", default=0.005, type=float_or_none,
                         help="Specify angular width (in Rad)")
@@ -55,7 +55,7 @@ def faser_pgparser():
 
     parser.add_argument("--sampler", default="log",
                         help="Specify energy sampling (log, lin, const, hist, hist2D)")
-    parser.add_argument("--hist_name", default="log",
+    parser.add_argument("--hist_name", default="",
                         help="Specify energy sampling name for hist sampler file.root:hist")
     
     parser.add_argument("--minE", default=10., type=float,
diff --git a/Control/CalypsoExample/Generation/scripts/faser_particlegun.py b/Control/CalypsoExample/Generation/scripts/faser_particlegun.py
index d23e879d29feefe759d8dcb5a617cfea3bebb1c2..169badecf7cf2a392a95b098a858634c5a2523c6 100755
--- a/Control/CalypsoExample/Generation/scripts/faser_particlegun.py
+++ b/Control/CalypsoExample/Generation/scripts/faser_particlegun.py
@@ -112,6 +112,10 @@ if __name__ == '__main__':
 
     print(f"Using pid: {args.pid} => {pidarg}")
 
+    if isinstance(args.radius, list) and len(args.radius) == 1:
+        args.radius = args.radius[0]
+        
+
     # Create the simgun dictionary
     # Negative radius gives uniform sampling
     # Positive radius gives Gaussian sampling
diff --git a/Generators/FaserParticleGun/python/RadialPosSampler.py b/Generators/FaserParticleGun/python/RadialPosSampler.py
index 6fcd6829b29ea474d5c7380526d3c46bab9c6871..19b1db116991c082d0771699813df2fe94c0a1d9 100644
--- a/Generators/FaserParticleGun/python/RadialPosSampler.py
+++ b/Generators/FaserParticleGun/python/RadialPosSampler.py
@@ -35,12 +35,17 @@ class RadialPosSampler(Sampler):
     def r(self):
         "r position sampler"
 
-        fwhm = 2*self.radius
-        sig = fwhm/(2 * sqrt(2 * log(2)))
-
-        if self.radius < 0:
-            return sqrt(random.uniform(0, abs(self.radius**2)))
+        #fwhm = 2*self.radius
+        #sig = fwhm/(2 * sqrt(2 * log(2)))
+
+        if isinstance(self.radius, list) and len(self.radius) == 2:
+            # If a list of length 2, generate uniformally over an annulus from r[0] to r[1]
+            return sqrt(random.uniform(abs(self.radius[0]**2), abs(self.radius[1]**2)))
+        elif self.radius < 0:
+            # Generate uniformally up to |r| if r is < 0
+            return sqrt(random.uniform(0, abs(self.radius**2)))        
         else:
+            # Else generate as a Gaussian with widht r
             x = random.gauss(0, self.radius)
             y = random.gauss(0, self.radius)
             return sqrt(x**2 + y**2)