diff --git a/benchmarks/zdc_lambda/analysis/lambda_plots.py b/benchmarks/zdc_lambda/analysis/lambda_plots.py
index f81de0b7c321c8b00f0fc86aae1e4c4affb80c4a..c81159510a70e992c7976758c28597d7516586a3 100644
--- a/benchmarks/zdc_lambda/analysis/lambda_plots.py
+++ b/benchmarks/zdc_lambda/analysis/lambda_plots.py
@@ -60,216 +60,218 @@ for p in momenta:
 
 if "ReconstructedFarForwardZDCLambdas.momentum.x" not in arrays_sim[momenta[0]].fields:
     print("ReconstructedFarForwardZDCLambdas collection is not available (needs EICrecon 1.23)")
-else:
-    theta_recon={}
-    E_recon={}
-    zvtx_recon={}
-    mass_recon={}
-    print(arrays_sim[p].fields)
-    for p in momenta:
-
-        px,py,pz,m=(arrays_sim[p][f"ReconstructedFarForwardZDCLambdas.{a}"] for a in "momentum.x momentum.y momentum.z mass".split())
-        theta_recon[p]=np.arctan2(np.hypot(px*np.cos(tilt)-pz*np.sin(tilt), py),pz*np.cos(tilt)+px*np.sin(tilt))
-        E_recon[p]=np.sqrt(px**2+py**2+pz**2+m**2)
-        zvtx_recon[p]=arrays_sim[p][f"ReconstructedFarForwardZDCLambdas.referencePoint.z"]*np.cos(tilt)+arrays_sim[p][f"ReconstructedFarForwardZDCLambdas.referencePoint.x"]*np.sin(tilt)
-        mass_recon[p]=m
-
-    #theta plots
-    fig,axs=plt.subplots(1,3, figsize=(24, 8))
-    plt.sca(axs[0])
-    plt.title(f"$E_{{\\Lambda}}=100-275$ GeV")
-    x=[]
-    y=[]
-    import awkward as ak
-    for p in momenta:
-        x+=list(ak.flatten(theta_truth[p]+0*theta_recon[p])*1000)
-        y+=list(ak.flatten(theta_recon[p]*1000))
-    plt.scatter(x,y)
-    plt.xlabel("$\\theta^{*\\rm truth}_{\\Lambda}$ [mrad]")
-    plt.ylabel("$\\theta^{*\\rm recon}_{\\Lambda}$ [mrad]")
-    plt.xlim(0,3.2)
-    plt.ylim(0,3.2)
-
-    plt.sca(axs[1])
-    plt.title(f"$E_{{\\Lambda}}=100-275$ GeV")
-    y,x,_=plt.hist(y-np.array(x), bins=50, range=(-1,1))
+    import sys
+    sys.exit(0)
+
+theta_recon={}
+E_recon={}
+zvtx_recon={}
+mass_recon={}
+print(arrays_sim[p].fields)
+for p in momenta:
+
+    px,py,pz,m=(arrays_sim[p][f"ReconstructedFarForwardZDCLambdas.{a}"] for a in "momentum.x momentum.y momentum.z mass".split())
+    theta_recon[p]=np.arctan2(np.hypot(px*np.cos(tilt)-pz*np.sin(tilt), py),pz*np.cos(tilt)+px*np.sin(tilt))
+    E_recon[p]=np.sqrt(px**2+py**2+pz**2+m**2)
+    zvtx_recon[p]=arrays_sim[p][f"ReconstructedFarForwardZDCLambdas.referencePoint.z"]*np.cos(tilt)+arrays_sim[p][f"ReconstructedFarForwardZDCLambdas.referencePoint.x"]*np.sin(tilt)
+    mass_recon[p]=m
+
+#theta plots
+fig,axs=plt.subplots(1,3, figsize=(24, 8))
+plt.sca(axs[0])
+plt.title(f"$E_{{\\Lambda}}=100-275$ GeV")
+x=[]
+y=[]
+import awkward as ak
+for p in momenta:
+    x+=list(ak.flatten(theta_truth[p]+0*theta_recon[p])*1000)
+    y+=list(ak.flatten(theta_recon[p]*1000))
+plt.scatter(x,y)
+plt.xlabel("$\\theta^{*\\rm truth}_{\\Lambda}$ [mrad]")
+plt.ylabel("$\\theta^{*\\rm recon}_{\\Lambda}$ [mrad]")
+plt.xlim(0,3.2)
+plt.ylim(0,3.2)
+
+plt.sca(axs[1])
+plt.title(f"$E_{{\\Lambda}}=100-275$ GeV")
+y,x,_=plt.hist(y-np.array(x), bins=50, range=(-1,1))
+bc=(x[1:]+x[:-1])/2
+
+from scipy.optimize import curve_fit
+slc=abs(bc)<0.3
+fnc=gauss
+p0=[100, 0, 0.05]
+coeff, var_matrix = curve_fit(fnc, bc[slc], y[slc], p0=p0,
+                                 sigma=np.sqrt(y[slc])+(y[slc]==0), maxfev=10000)
+x=np.linspace(-1, 1)
+plt.plot(x, gauss(x, *coeff), color='tab:orange')
+plt.xlabel("$\\theta^{*\\rm recon}_{\\Lambda}-\\theta^{*\\rm truth}_{\\Lambda}$ [mrad]")
+plt.ylabel("events")
+
+plt.sca(axs[2])
+sigmas=[]
+dsigmas=[]
+xvals=[]
+for p in momenta:
+    y,x=np.histogram(ak.flatten(theta_recon[p]-theta_truth[p])*1000, bins=100, range=(-1,1))
     bc=(x[1:]+x[:-1])/2
 
     from scipy.optimize import curve_fit
     slc=abs(bc)<0.3
     fnc=gauss
-    p0=[100, 0, 0.05]
-    coeff, var_matrix = curve_fit(fnc, bc[slc], y[slc], p0=p0,
-                                     sigma=np.sqrt(y[slc])+(y[slc]==0), maxfev=10000)
-    x=np.linspace(-1, 1)
-    plt.plot(x, gauss(x, *coeff), color='tab:orange')
-    plt.xlabel("$\\theta^{*\\rm recon}_{\\Lambda}-\\theta^{*\\rm truth}_{\\Lambda}$ [mrad]")
-    plt.ylabel("events")
-
-    plt.sca(axs[2])
-    sigmas=[]
-    dsigmas=[]
-    xvals=[]
-    for p in momenta:
-        y,x=np.histogram(ak.flatten(theta_recon[p]-theta_truth[p])*1000, bins=100, range=(-1,1))
-        bc=(x[1:]+x[:-1])/2
-
-        from scipy.optimize import curve_fit
-        slc=abs(bc)<0.3
-        fnc=gauss
-        p0=(100, 0, 0.06)
-        sigma=np.sqrt(y[slc])+(y[slc]==0)
-        try:
-            coeff, var_matrix = curve_fit(fnc, list(bc[slc]), list(y[slc]), p0=p0, sigma=list(sigma), maxfev=10000)
-            sigmas.append(coeff[2])
-            dsigmas.append(np.sqrt(var_matrix[2][2]))
-            xvals.append(p)
-        except:
-            print("fit failed")
-    plt.ylim(0, 0.3)
-
-    plt.errorbar(xvals, sigmas, dsigmas, ls='', marker='o', color='k')
-    x=np.linspace(100, 275, 100)
-    plt.plot(x, 3/np.sqrt(x), color='tab:orange')
-    plt.text(170, .23, "YR requirement:\n   3 mrad/$\\sqrt{E}$")
-    plt.xlabel("$E_{\\Lambda}$ [GeV]")
-    plt.ylabel("$\\sigma[\\theta^*_{\\Lambda}]$ [mrad]")
-    plt.tight_layout()
-    plt.savefig(outdir+"thetastar_recon.pdf")
-    #plt.show()
-
-    #vtx z
-    fig,axs=plt.subplots(1,3, figsize=(24, 8))
-    plt.sca(axs[0])
-    plt.title(f"$E_{{\\Lambda}}=100-275$ GeV")
-    x=[]
-    y=[]
-    for p in momenta:
-        x+=list(ak.flatten(arrays_sim[p]['MCParticles.vertex.z'][:,3]+0*zvtx_recon[p])/1000)
-        y+=list(ak.flatten(zvtx_recon[p])/1000)
-    plt.scatter(x,y)
-    #print(x,y)
-    plt.xlabel("$z^{\\rm truth}_{\\rm vtx}$ [m]")
-    plt.ylabel("$z^{\\rm recon}_{\\rm vtx}$  [m]")
-    plt.xlim(0,40)
-    plt.ylim(0,40)
-
-    plt.sca(axs[1])
-    plt.title(f"$E_{{\\Lambda}}=100-275$ GeV")
-    y,x,_=plt.hist(y-np.array(x), bins=50, range=(-10,10))
+    p0=(100, 0, 0.06)
+    sigma=np.sqrt(y[slc])+(y[slc]==0)
+    try:
+        coeff, var_matrix = curve_fit(fnc, list(bc[slc]), list(y[slc]), p0=p0, sigma=list(sigma), maxfev=10000)
+        sigmas.append(coeff[2])
+        dsigmas.append(np.sqrt(var_matrix[2][2]))
+        xvals.append(p)
+    except:
+        print("fit failed")
+plt.ylim(0, 0.3)
+
+plt.errorbar(xvals, sigmas, dsigmas, ls='', marker='o', color='k')
+x=np.linspace(100, 275, 100)
+plt.plot(x, 3/np.sqrt(x), color='tab:orange')
+plt.text(170, .23, "YR requirement:\n   3 mrad/$\\sqrt{E}$")
+plt.xlabel("$E_{\\Lambda}$ [GeV]")
+plt.ylabel("$\\sigma[\\theta^*_{\\Lambda}]$ [mrad]")
+plt.tight_layout()
+plt.savefig(outdir+"thetastar_recon.pdf")
+#plt.show()
+
+#vtx z
+fig,axs=plt.subplots(1,3, figsize=(24, 8))
+plt.sca(axs[0])
+plt.title(f"$E_{{\\Lambda}}=100-275$ GeV")
+x=[]
+y=[]
+for p in momenta:
+    x+=list(ak.flatten(arrays_sim[p]['MCParticles.vertex.z'][:,3]+0*zvtx_recon[p])/1000)
+    y+=list(ak.flatten(zvtx_recon[p])/1000)
+plt.scatter(x,y)
+#print(x,y)
+plt.xlabel("$z^{\\rm truth}_{\\rm vtx}$ [m]")
+plt.ylabel("$z^{\\rm recon}_{\\rm vtx}$  [m]")
+plt.xlim(0,40)
+plt.ylim(0,40)
+
+plt.sca(axs[1])
+plt.title(f"$E_{{\\Lambda}}=100-275$ GeV")
+y,x,_=plt.hist(y-np.array(x), bins=50, range=(-10,10))
+bc=(x[1:]+x[:-1])/2
+
+from scipy.optimize import curve_fit
+slc=abs(bc)<5
+fnc=gauss
+p0=[100, 0, 1]
+coeff, var_matrix = curve_fit(fnc, bc[slc], y[slc], p0=p0,
+                                 sigma=np.sqrt(y[slc])+(y[slc]==0), maxfev=10000)
+x=np.linspace(-5, 5)
+plt.plot(x, gauss(x, *coeff), color='tab:orange')
+print(coeff[2], np.sqrt(var_matrix[2][2]))
+plt.xlabel("$z^{*\\rm recon}_{\\rm vtx}-z^{*\\rm truth}_{\\rm vtx}$ [m]")
+plt.ylabel("events")
+
+plt.sca(axs[2])
+sigmas=[]
+dsigmas=[]
+xvals=[]
+for p in momenta:
+
+
+    a=ak.flatten((zvtx_recon[p]-arrays_sim[p]['MCParticles.vertex.z'][:,3])/1000)
+    y,x=np.histogram(a, bins=100, range=(-10,10))
     bc=(x[1:]+x[:-1])/2
 
     from scipy.optimize import curve_fit
     slc=abs(bc)<5
     fnc=gauss
-    p0=[100, 0, 1]
-    coeff, var_matrix = curve_fit(fnc, bc[slc], y[slc], p0=p0,
-                                     sigma=np.sqrt(y[slc])+(y[slc]==0), maxfev=10000)
-    x=np.linspace(-5, 5)
-    plt.plot(x, gauss(x, *coeff), color='tab:orange')
-    print(coeff[2], np.sqrt(var_matrix[2][2]))
-    plt.xlabel("$z^{*\\rm recon}_{\\rm vtx}-z^{*\\rm truth}_{\\rm vtx}$ [m]")
-    plt.ylabel("events")
-
-    plt.sca(axs[2])
-    sigmas=[]
-    dsigmas=[]
-    xvals=[]
-    for p in momenta:
-
-
-        a=ak.flatten((zvtx_recon[p]-arrays_sim[p]['MCParticles.vertex.z'][:,3])/1000)
-        y,x=np.histogram(a, bins=100, range=(-10,10))
-        bc=(x[1:]+x[:-1])/2
-
-        from scipy.optimize import curve_fit
-        slc=abs(bc)<5
-        fnc=gauss
-        p0=(100, 0, 1)
-        #print(bc[slc],y[slc])
-        sigma=np.sqrt(y[slc])+(y[slc]==0)
-        try:
-            coeff, var_matrix = curve_fit(fnc, list(bc[slc]), list(y[slc]), p0=p0, sigma=list(sigma), maxfev=10000)
-            sigmas.append(coeff[2])
-            dsigmas.append(np.sqrt(var_matrix[2][2]))
-            xvals.append(p)
-        except:
-            print("fit failed")
-    plt.ylim(0, 2)
-
-    plt.errorbar(xvals, sigmas, dsigmas, ls='', marker='o', color='k')
-    x=np.linspace(100, 275, 100)
-
-    avg=np.sum(sigmas/np.array(dsigmas)**2)/np.sum(1/np.array(dsigmas)**2)
-    plt.axhline(avg, color='tab:orange')
-    plt.text(150, 1.25,f"$\\sigma\\approx${avg:.1f} m")
-
-    plt.xlabel("$E_{\\Lambda}$ [GeV]")
-    plt.ylabel("$\\sigma[z_{\\rm vtx}]$ [m]")
-    plt.tight_layout()
-    plt.savefig(outdir+"zvtx_recon.pdf")
-    #plt.show()
-
-    p=100
-    fig,axs=plt.subplots(1,2, figsize=(16, 8))
-    plt.sca(axs[0])
-    lambda_mass=1.115683
-    vals=[]
-    for p in momenta:
-        vals+=list(ak.flatten(mass_recon[p]))
-
-    y,x,_= plt.hist(vals, bins=100, range=(1.0, 1.25))
+    p0=(100, 0, 1)
+    #print(bc[slc],y[slc])
+    sigma=np.sqrt(y[slc])+(y[slc]==0)
+    try:
+        coeff, var_matrix = curve_fit(fnc, list(bc[slc]), list(y[slc]), p0=p0, sigma=list(sigma), maxfev=10000)
+        sigmas.append(coeff[2])
+        dsigmas.append(np.sqrt(var_matrix[2][2]))
+        xvals.append(p)
+    except:
+        print("fit failed")
+plt.ylim(0, 2)
+
+plt.errorbar(xvals, sigmas, dsigmas, ls='', marker='o', color='k')
+x=np.linspace(100, 275, 100)
+
+avg=np.sum(sigmas/np.array(dsigmas)**2)/np.sum(1/np.array(dsigmas)**2)
+plt.axhline(avg, color='tab:orange')
+plt.text(150, 1.25,f"$\\sigma\\approx${avg:.1f} m")
+
+plt.xlabel("$E_{\\Lambda}$ [GeV]")
+plt.ylabel("$\\sigma[z_{\\rm vtx}]$ [m]")
+plt.tight_layout()
+plt.savefig(outdir+"zvtx_recon.pdf")
+#plt.show()
+
+p=100
+fig,axs=plt.subplots(1,2, figsize=(16, 8))
+plt.sca(axs[0])
+lambda_mass=1.115683
+vals=[]
+for p in momenta:
+    vals+=list(ak.flatten(mass_recon[p]))
+
+y,x,_= plt.hist(vals, bins=100, range=(1.0, 1.25))
+bc=(x[1:]+x[:-1])/2
+plt.axvline(lambda_mass, ls='--', color='tab:green', lw=3)
+plt.text(lambda_mass+.01, np.max(y)*1.05, "PDG mass", color='tab:green')
+plt.xlabel("$m_{\\Lambda}^{\\rm recon}$ [GeV]")
+plt.ylim(0, np.max(y)*1.2)
+plt.xlim(1.0, 1.25)
+
+from scipy.optimize import curve_fit
+slc=abs(bc-lambda_mass)<0.05
+fnc=gauss
+p0=[100, lambda_mass, 0.04]
+coeff, var_matrix = curve_fit(fnc, bc[slc], y[slc], p0=p0,
+                                 sigma=np.sqrt(y[slc])+(y[slc]==0), maxfev=10000)
+x=np.linspace(0.8, 1.3, 200)
+plt.plot(x, gauss(x, *coeff), color='tab:orange')
+print(coeff[2], np.sqrt(var_matrix[2][2]))
+plt.xlabel("$m^{\\rm recon}_{\\Lambda}$ [GeV]")
+plt.ylabel("events")
+plt.title(f"$E_{{\\Lambda}}=100-275$ GeV")
+
+plt.sca(axs[1])
+xvals=[]
+sigmas=[]
+dsigmas=[]
+for p in momenta:
+    y,x= np.histogram(ak.flatten(mass_recon[p]), bins=100, range=(0.6,1.4))
     bc=(x[1:]+x[:-1])/2
-    plt.axvline(lambda_mass, ls='--', color='tab:green', lw=3)
-    plt.text(lambda_mass+.01, np.max(y)*1.05, "PDG mass", color='tab:green')
-    plt.xlabel("$m_{\\Lambda}^{\\rm recon}$ [GeV]")
-    plt.ylim(0, np.max(y)*1.2)
-    plt.xlim(1.0, 1.25)
 
     from scipy.optimize import curve_fit
     slc=abs(bc-lambda_mass)<0.05
     fnc=gauss
-    p0=[100, lambda_mass, 0.04]
-    coeff, var_matrix = curve_fit(fnc, bc[slc], y[slc], p0=p0,
-                                     sigma=np.sqrt(y[slc])+(y[slc]==0), maxfev=10000)
-    x=np.linspace(0.8, 1.3, 200)
-    plt.plot(x, gauss(x, *coeff), color='tab:orange')
-    print(coeff[2], np.sqrt(var_matrix[2][2]))
-    plt.xlabel("$m^{\\rm recon}_{\\Lambda}$ [GeV]")
-    plt.ylabel("events")
-    plt.title(f"$E_{{\\Lambda}}=100-275$ GeV")
-
-    plt.sca(axs[1])
-    xvals=[]
-    sigmas=[]
-    dsigmas=[]
-    for p in momenta:
-        y,x= np.histogram(ak.flatten(mass_recon[p]), bins=100, range=(0.6,1.4))
-        bc=(x[1:]+x[:-1])/2
-
-        from scipy.optimize import curve_fit
-        slc=abs(bc-lambda_mass)<0.05
-        fnc=gauss
-        p0=[100, lambda_mass, 0.05]
-        try:
-            coeff, var_matrix = curve_fit(fnc, list(bc[slc]), list(y[slc]), p0=p0,
-                                           sigma=list(np.sqrt(y[slc])+(y[slc]==0)), maxfev=10000)
-            x=np.linspace(0.8, 1.3, 200)
-            sigmas.append(coeff[2])
-            dsigmas.append(np.sqrt(var_matrix[2][2]))
-            xvals.append(p)
-        except:
-            print("fit failed")
-
-    plt.errorbar(xvals, sigmas, dsigmas, ls='', marker='o', color='k')
-    avg=np.sum(sigmas/np.array(dsigmas)**2)/np.sum(1/np.array(dsigmas)**2)
-    plt.axhline(avg, color='tab:orange')
-    plt.text(150, 0.01,f"$\\sigma\\approx${avg*1000:.0f} MeV")
-    plt.xlabel("$E_{\\Lambda}$ [GeV]")
-    plt.ylabel("$\\sigma[m_{\\Lambda}]$ [GeV]")
-    plt.ylim(0, 0.02)
-    plt.tight_layout()
-    plt.savefig(outdir+"lambda_mass_rec.pdf")
+    p0=[100, lambda_mass, 0.05]
+    try:
+        coeff, var_matrix = curve_fit(fnc, list(bc[slc]), list(y[slc]), p0=p0,
+                                       sigma=list(np.sqrt(y[slc])+(y[slc]==0)), maxfev=10000)
+        x=np.linspace(0.8, 1.3, 200)
+        sigmas.append(coeff[2])
+        dsigmas.append(np.sqrt(var_matrix[2][2]))
+        xvals.append(p)
+    except:
+        print("fit failed")
+
+plt.errorbar(xvals, sigmas, dsigmas, ls='', marker='o', color='k')
+avg=np.sum(sigmas/np.array(dsigmas)**2)/np.sum(1/np.array(dsigmas)**2)
+plt.axhline(avg, color='tab:orange')
+plt.text(150, 0.01,f"$\\sigma\\approx${avg*1000:.0f} MeV")
+plt.xlabel("$E_{\\Lambda}$ [GeV]")
+plt.ylabel("$\\sigma[m_{\\Lambda}]$ [GeV]")
+plt.ylim(0, 0.02)
+plt.tight_layout()
+plt.savefig(outdir+"lambda_mass_rec.pdf")
 
 
 #now for the CM stuff: