Ejemplo n.º 1
0
    def test_that_general_time_masking_is_applied(self):
        data_info = self._build_data_info()
        mask_builder = get_mask_builder(data_info)

        # Expected_spectra
        bin_mask_general_start = [30000., 67000.]
        bin_mask_general_stop = [35000., 75000.]

        mask_builder.set_bin_mask_general_start(bin_mask_general_start)
        mask_builder.set_bin_mask_general_stop(bin_mask_general_stop)

        mask_info = mask_builder.build()

        test_director = TestDirector()
        test_director.set_states(data_state=data_info, mask_state=mask_info)
        state = test_director.construct()

        workspace = Load("SANS2D00028827")

        tof_spectra_10_original = workspace.getSpectrum(10).getTofs()
        tof_spectra_11_original = workspace.getSpectrum(11).getTofs()

        # Act
        workspace = mask_workspace(state=state,
                                   workspace=workspace,
                                   component_as_string="LAB")

        # Assert
        # Confirm that everything in the ranges 30000-35000  and 67000-75000 is removed from the event list
        tof_spectra_10_masked = workspace.getSpectrum(10).getTofs()
        tof_spectra_11_masked = workspace.getSpectrum(11).getTofs()
        # Spectrum 10
        # Three events should have been removed
        self.assertEqual(len(tof_spectra_10_masked),
                         len(tof_spectra_10_original) - 3)
        # One event should have been removed
        self.assertEqual(len(tof_spectra_11_masked),
                         len(tof_spectra_11_original) - 1)

        # Make sure that there are no elements
        for start, stop in zip(bin_mask_general_start, bin_mask_general_stop):
            self.assertFalse(
                any(elements_in_range(start, stop, tof_spectra_10_masked)))
            self.assertFalse(
                any(elements_in_range(start, stop, tof_spectra_11_masked)))
Ejemplo n.º 2
0
    def test_that_detector_specific_time_masking_is_applied(self):
        data_info = self._build_data_info()
        mask_builder = get_mask_builder(data_info)

        # Expected_spectra
        bin_mask_start = [27000., 58000.]
        bin_mask_stop = [45000., 61000.]

        mask_builder.set_LAB_bin_mask_start(bin_mask_start)
        mask_builder.set_LAB_bin_mask_stop(bin_mask_stop)

        mask_info = mask_builder.build()

        test_director = TestDirector()
        test_director.set_states(data_state=data_info, mask_state=mask_info)
        state = test_director.construct()

        workspace = Load("SANS2D00028827")

        # Is part of LAB
        tof_spectra_23813_original = workspace.getSpectrum(23813).getTofs()

        # Act
        workspace = mask_workspace(state=state,
                                   component_as_string='LAB',
                                   workspace=workspace)

        # Assert
        # Confirm that everything in the ranges 27000-45000  and 58000-61000 is removed from the event list
        tof_spectra_23813_masked = workspace.getSpectrum(23813).getTofs()

        # Spectrum 23813
        # Five events should have been removed
        self.assertEqual(len(tof_spectra_23813_masked),
                         len(tof_spectra_23813_original) - 5)

        # Make sure that there are no elements
        for start, stop in zip(bin_mask_start, bin_mask_stop):
            self.assertFalse(
                any(elements_in_range(start, stop, tof_spectra_23813_masked)))