From 03516939cf7a34fe49890f819bd04ff8ae85a4a0 Mon Sep 17 00:00:00 2001
From: Sebouh Paul <sebouh.paul@gmail.com>
Date: Fri, 23 Aug 2024 16:43:23 -0400
Subject: [PATCH] Update lambda_plots.py (#23)

prevent crashing when one of the fits fails
---
 benchmarks/lambda/analysis/lambda_plots.py | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/benchmarks/lambda/analysis/lambda_plots.py b/benchmarks/lambda/analysis/lambda_plots.py
index 0a6079a2..dffccb1c 100644
--- a/benchmarks/lambda/analysis/lambda_plots.py
+++ b/benchmarks/lambda/analysis/lambda_plots.py
@@ -202,6 +202,7 @@ plt.ylabel("events")
 plt.sca(axs[2])
 sigmas=[]
 dsigmas=[]
+xvals=[]
 for p in momenta:
     
     accept=(nclusters[p]==3) &(pi0_converged[p])
@@ -214,14 +215,16 @@ for p in momenta:
     p0=(100, 0, 0.06)
     #print(bc[slc],y[slc])
     sigma=np.sqrt(y[slc])+(y[slc]==0)
-    coeff, var_matrix = curve_fit(fnc, list(bc[slc]), list(y[slc]), p0=p0,sigma=list(sigma))
-                                     
-    x=np.linspace(-1, 1)
-    sigmas.append(coeff[2])
-    dsigmas.append(np.sqrt(var_matrix[2][2]))
+    try:
+        coeff, var_matrix = curve_fit(fnc, list(bc[slc]), list(y[slc]), p0=p0,sigma=list(sigma))
+        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(momenta, sigmas, dsigmas, ls='', marker='o', color='k')
+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}$")
-- 
GitLab