From d6f2c2cb18ac0d3d8ba6a38822d2471f23f98af1 Mon Sep 17 00:00:00 2001 From: Harriet Brown <harriet.brown@stfc.ac.uk> Date: Tue, 15 Oct 2019 11:49:29 +0100 Subject: [PATCH] fix FitIncidentSpectrum not correcting for different binning sizes --- .../plugins/algorithms/FitIncidentSpectrum.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/Framework/PythonInterface/plugins/algorithms/FitIncidentSpectrum.py b/Framework/PythonInterface/plugins/algorithms/FitIncidentSpectrum.py index 50732478d97..b54bb76c005 100644 --- a/Framework/PythonInterface/plugins/algorithms/FitIncidentSpectrum.py +++ b/Framework/PythonInterface/plugins/algorithms/FitIncidentSpectrum.py @@ -89,16 +89,17 @@ class FitIncidentSpectrum(PythonAlgorithm): y_fit = np.array(self._input_ws.readY(self._incident_index)) else: rebinned = Rebin( - self._input_ws, + InputWorkspace=self._input_ws, Params=self._binning_for_fit, - PreserveEvents=True, - StoreInADS=False) + PreserveEvents=True) x_fit = np.array(rebinned.readX(self._incident_index)) y_fit = np.array(rebinned.readY(self._incident_index)) + rebin_norm = x.size/x_fit.size x_bin_centers = 0.5*(x[:-1] + x[1:]) if len(x_fit) != len(y_fit): x_fit = 0.5*(x_fit[:-1] + x_fit[1:]) + if self._fit_spectrum_with == 'CubicSpline': # Fit using cubic spline fit, fit_prime = self.fit_cubic_spline(x_fit, y_fit, x_bin_centers, s=1e7) @@ -113,11 +114,12 @@ class FitIncidentSpectrum(PythonAlgorithm): elif self._fit_spectrum_with == 'GaussConvCubicSpline': # Fit using Gauss conv cubic spline fit, fit_prime = self.fit_cubic_spline_with_gauss_conv(x_fit, y_fit, x_bin_centers, sigma=0.5) + # Create output workspace unit = self._input_ws.getAxis(0).getUnit().unitID() output_workspace = CreateWorkspace( DataX=x, - DataY=np.append(fit, fit_prime), + DataY=np.append(fit, fit_prime)/rebin_norm, UnitX=unit, NSpec=2, Distribution=False, -- GitLab