diff --git a/Model.py b/Model.py
index a6b703fc358b81e0f52548d5590f4002fe3c6fc5..ef43e9c226b622511178c70d9d88c424d7cf4fa9 100644
--- a/Model.py
+++ b/Model.py
@@ -133,6 +133,27 @@ def PH_max(t_gate, tau):
 def Alpha(tau_R, tau_Ap, t_gate, p_Ap):
     return (p_Ap/(tau_Ap + tau_R))*(tau_Ap - np.exp(-t_gate/tau_Ap)*(tau_Ap + tau_R*(1 - np.exp(-t_gate/tau_R))))
 
+
+########################################################################################################
+## dAlpha(tau_R, tau_Ap, t_gate, p_Ap)
+########################################################################################################
+##
+## Returns error on total afterpulse probability, α, occuring between 0 and t_gate.
+##
+########################################################################################################
+
+
+@njit
+def dAlpha(tau_R, tau_Ap, t_gate, p_Ap, dtau_Ap, dp_Ap):
+    dalphadtauAp = p_Ap*((t_gate*(-tau_Ap - tau_R*(1 - np.exp(-t_gate/tau_R)))*np.exp(-t_gate/tau_Ap))/tau_Ap**2 + 1 - np.exp(-t_gate/tau_Ap))/(tau_Ap+tau_R) - p_Ap*(tau_Ap - (tau_Ap + tau_R*(1 - exp(-t_gate/tau_R)))*np.exp(-t_gate/tau_Ap))/(tau_Ap + tau_R)**2
+    
+    dalphadpAp = (tau_Ap - (tau_Ap + tau_R*(1 - np.exp(-t_gate/tau_R)))*np.exp(-t_gate/tau_Ap))/(tau_Ap + tau_R)
+    
+    dalpha =  np.sqrt((dalphadtauAp**2)*(dtau_Ap**2) + (dalphadpAp**2)*(dp_Ap**2))
+    
+    return dalpha
+
+
 ########################################################################################################
 ## DiracDelta(length, idx_0, dx)
 ########################################################################################################
diff --git a/PeakOTron.py b/PeakOTron.py
index 3678387b5be682da5b10cb190fae679cb795aa91..2d520c068333d52fa47edfd7db5264af37bea28a 100644
--- a/PeakOTron.py
+++ b/PeakOTron.py
@@ -2,7 +2,7 @@ from Bootstrapping import BootstrapKDE, Bootstrap
 from HelperFunctions import GP_gain, GP_lbda, GP_muGP, GetStats
 from HelperFunctions import LatexFormat, Linear, SelectRangeNumba
 from LossFunctions import *
-from Model import DRM
+from Model import DRM, Alpha, dAlpha
 from iminuit import Minuit
 from scipy.signal import find_peaks, peak_widths
 from scipy.integrate import cumtrapz, quad
@@ -16,6 +16,7 @@ import matplotlib.pyplot as plt
 import matplotlib.gridspec as gridspec
 from matplotlib.ticker import MaxNLocator, ScalarFormatter
 from itertools import chain
+from copy import deepcopy
 import warnings 
 warnings.filterwarnings('ignore')
 
@@ -232,12 +233,23 @@ class PeakOTron:
     ##
     ########################################################################################################
     
-    def GetFitResults(self):
+    def GetFitResults(self, return_alpha=False):
         
         if(self._m_DRM is None):
             raise Exception ("Fit has not yet been performed. Please first perform a fit.")
         else:
-            return self._fit_values, self._fit_errors
+            if(return_alpha):
+                temp_values = deepcopy(self._fit_values)
+                temp_errors = deepcopy(self._fit_errors)
+                
+                temp_values["alpha"] = Alpha(self._fit_values["tau_R"], self._fit_values["tau_Ap"], self._fit_values["t_gate"], self._fit_values["pAp"])
+                temp_errors["alpha"] = dAlpha(self._fit_values["tau_R"], self._fit_values["tau_Ap"], self._fit_values["t_gate"], self._fit_values["pAp"], self._fit_errors["tau_Ap"], self._fit_errors["p_Ap"])
+                
+                return temp_values, temp_errors
+                
+            else:
+                return self._fit_values, self._fit_errors
+        
         
         
     ########################################################################################################