Beispiel #1
0
    def test_fit_single_spectrum_tof_including_background(self):
        flags = self._create_test_flags(background=True)
        runs = "15039-15045"

        fit_results = fit_tof(runs, flags)
        self.assertTrue(isinstance(fit_results, tuple))
        self.assertEqual(4, len(fit_results))

        fitted_wsg = fit_results[0]
        self.assertTrue(isinstance(fitted_wsg, WorkspaceGroup))
        self.assertEqual(2, len(fitted_wsg))

        fitted_ws = fitted_wsg[0]
        self.assertTrue(isinstance(fitted_ws, MatrixWorkspace))
        self.assertEqual(8, fitted_ws.getNumberHistograms())
        # self.assertAlmostEqual(50.0, fitted_ws.readX(0)[0])
        # self.assertAlmostEqual(562.0, fitted_ws.readX(0)[-1])

        # self.assertAlmostEqual(0.000928695463881635, fitted_ws.readY(0)[0])
        # self.assertAlmostEqual(0.00722948549525415, fitted_ws.readY(0)[-1])
        # self.assertAlmostEqual(-0.00756178413274695, fitted_ws.readY(1)[0])
        # self.assertAlmostEqual(0.00355843687365601, fitted_ws.readY(1)[-1])

        fitted_params = fit_results[1]
        self.assertTrue(isinstance(fitted_params, MatrixWorkspace))
        self.assertEqual(14, fitted_params.getNumberHistograms())

        chisq_values = fit_results[2]
        self.assertTrue(isinstance(chisq_values, list))
        self.assertEqual(1, len(chisq_values))

        exit_iteration = fit_results[3]
        self.assertTrue(isinstance(exit_iteration, int))
Beispiel #2
0
    def test_fit_single_spectrum_tof_and_no_background(self):
        flags = self._create_test_flags(background=False)
        runs = "15039-15045"

        fit_results = fit_tof(runs, flags)
        self.assertTrue(isinstance(fit_results, tuple))
        self.assertEqual(4, len(fit_results))

        fitted_wsg = fit_results[0]
        self.assertTrue(isinstance(fitted_wsg, WorkspaceGroup))
        self.assertEqual(2, len(fitted_wsg))

        fitted_ws = fitted_wsg[0]
        self.assertTrue(isinstance(fitted_ws, MatrixWorkspace))
        self.assertEqual(7, fitted_ws.getNumberHistograms())
        # self.assertAlmostEqual(50.0, fitted_ws.readX(0)[0])
        # self.assertAlmostEqual(562.0, fitted_ws.readX(0)[-1])

        # self.assertAlmostEqual(0.000928695463881635, fitted_ws.readY(0)[0])
        # self.assertAlmostEqual(0.00722948549525415, fitted_ws.readY(0)[-1])
        # self.assertAlmostEqual(1.45746507977816e-05, fitted_ws.readY(1)[0])
        # self.assertAlmostEqual(7.33791942084561e-05, fitted_ws.readY(1)[-1])

        fitted_params = fit_results[1]
        self.assertTrue(isinstance(fitted_params, MatrixWorkspace))
        self.assertEqual(10, fitted_params.getNumberHistograms())

        chisq_values = fit_results[2]
        self.assertTrue(isinstance(chisq_values, list))
        self.assertEqual(1, len(chisq_values))

        exit_iteration = fit_results[3]
        self.assertTrue(isinstance(exit_iteration, int))
Beispiel #3
0
    def test_fit_bank_by_bank_for_forward_spectra_tof_and_no_background(self):
        flags = self._create_test_flags(background=False)
        flags['fit_mode'] = 'bank'
        flags['spectra'] = 'forward'
        runs = "15039-15045"

        fit_results = fit_tof(runs, flags)
        self.assertTrue(isinstance(fit_results, tuple))
        self.assertEquals(4, len(fit_results))

        fitted_banks = fit_results[0]
        self.assertTrue(isinstance(fitted_banks, list))
        self.assertEqual(8, len(fitted_banks))

        bank1 = fitted_banks[0]
        self.assertTrue(isinstance(bank1, WorkspaceGroup))

        bank1_data = bank1[0]
        self.assertTrue(isinstance(bank1_data, MatrixWorkspace))

        # self.assertAlmostEqual(50.0, bank1_data.readX(0)[0])
        # self.assertAlmostEqual(562.0, bank1_data.readX(0)[-1])

        # self.assertAlmostEqual(0.000107272755986595, bank1_data.readY(1)[0])
        # self.assertAlmostEqual(0.000585633970072128, bank1_data.readY(1)[-1])

        bank8 = fitted_banks[-1]
        self.assertTrue(isinstance(bank8, WorkspaceGroup))

        bank8_data = bank8[0]
        self.assertTrue(isinstance(bank8_data, MatrixWorkspace))

        # self.assertAlmostEqual(50.0, bank8_data.readX(0)[0])
        # self.assertAlmostEqual(562.0, bank8_data.readX(0)[-1])

        # self.assertAlmostEqual(0.000596850729120898, bank8_data.readY(1)[0])
        # self.assertAlmostEqual(0.000529343513813141, bank8_data.readY(1)[-1])

        chisq_values = fit_results[2]
        self.assertTrue(isinstance(chisq_values, list))
        self.assertEqual(8, len(chisq_values))

        exit_iteration = fit_results[3]
        self.assertTrue(isinstance(exit_iteration, int))
Beispiel #4
0
    def test_fit_spectra_by_spectra_for_forward_spectra_tof_and_no_background(self):
        flags = self._create_test_flags(background=False)
        flags['fit_mode'] = 'spectra'
        flags['spectra'] = '143-144'
        runs = "15039-15045"

        fit_results = fit_tof(runs, flags)
        self.assertTrue(isinstance(fit_results, tuple))
        self.assertEquals(4, len(fit_results))

        fitted_spec = fit_results[0]
        self.assertTrue(isinstance(fitted_spec, list))
        self.assertEqual(2, len(fitted_spec))

        spec143 = fitted_spec[0]
        self.assertTrue(isinstance(spec143, WorkspaceGroup))

        spec143_data = spec143[0]
        self.assertTrue(isinstance(spec143_data, MatrixWorkspace))

        # self.assertAlmostEqual(50.0, spec143_data.readX(0)[0])
        # self.assertAlmostEqual(562.0, spec143_data.readX(0)[-1])

        # self.assertAlmostEqual(2.37897941103748e-06, spec143_data.readY(1)[0])
        # self.assertAlmostEqual(3.58226563303213e-05, spec143_data.readY(1)[-1])

        spec144 = fitted_spec[-1]
        self.assertTrue(isinstance(spec144, WorkspaceGroup))

        spec144_data = spec144[0]
        self.assertTrue(isinstance(spec144_data, MatrixWorkspace))

        # self.assertAlmostEqual(50.0, spec144_data.readX(0)[0])
        # self.assertAlmostEqual(562.0, spec144_data.readX(0)[-1])

        # self.assertAlmostEqual(5.57952304659615e-06, spec144_data.readY(1)[0])
        # self.assertAlmostEqual(6.00056973529846e-05, spec144_data.readY(1)[-1])

        chisq_values = fit_results[2]
        self.assertTrue(isinstance(chisq_values, list))
        self.assertEqual(2, len(chisq_values))

        exit_iteration = fit_results[3]
        self.assertTrue(isinstance(exit_iteration, int))
flags['gamma_correct'] = True
flags['fixed_gamma_scaling'] = None

flags['ms_flags'] = dict()
flags['ms_flags']['SampleWidth'] = 10.0
flags['ms_flags']['SampleHeight'] = 10.0
flags['ms_flags']['SampleDepth'] = 0.5
flags['ms_flags']['SampleDensity'] = 241

# Optional parameters (default values are given)
# flags['ms_flags']['Seed'] = 123456789
# flags['ms_flags']['NumScatters'] = 3
# flags['ms_flags']['NumRuns'] = 10
# flags['ms_flags']['NumEvents'] = 50000
# flags['ms_flags']['SmoothNeighbours'] = 3
# flags['ms_flags']['BeamRadius'] = 2.5

## Advanced flags

flags['ip_file'] = 'IP0004_10.par'
flags['diff_mode'] = 'single'

flags['max_fit_iterations'] = 5000
flags['fit_minimizer'] = 'Levenberg-Marquardt,AbsError=1e-08,RelError=1e-08'

flags['iterations'] = 1
flags['convergence'] = None

## Run fit
fit_tof(runs, flags, flags['iterations'], flags['convergence'])
Beispiel #6
0
flags['gamma_correct'] = True
flags['fixed_gamma_scaling'] = None

flags['ms_flags'] = dict()
flags['ms_flags']['SampleWidth'] = 10.0
flags['ms_flags']['SampleHeight'] = 10.0
flags['ms_flags']['SampleDepth'] = 0.5
flags['ms_flags']['SampleDensity'] = 241

# Optional parameters (default values are given)
# flags['ms_flags']['Seed'] = 123456789
# flags['ms_flags']['NumScatters'] = 3
# flags['ms_flags']['NumRuns'] = 10
# flags['ms_flags']['NumEvents'] = 50000
# flags['ms_flags']['SmoothNeighbours'] = 3
# flags['ms_flags']['BeamRadius'] = 2.5

## Advanced flags

flags['ip_file'] = 'IP0004_10.par'
flags['diff_mode'] = 'single'

flags['max_fit_iterations'] = 5000
flags['fit_minimizer'] = 'Levenberg-Marquardt,AbsError=1e-08,RelError=1e-08'

flags['iterations'] = 1
flags['convergence'] = None

## Run fit
fit_tof(runs, flags, flags['iterations'], flags['convergence'])