コード例 #1
0
 def test_vanadium_annulus(self):
     PolDiffILLReduction(Run='396917',
                         ProcessAs='Empty',
                         OutputWorkspace='container_ws')
     sampleProperties = {
         'SampleChemicalFormula': 'V',
         'SampleMass': 8.54,
         'FormulaUnitMass': 50.94,
         'SampleInnerRadius': 2,
         'SampleOuterRadius': 2.5,
         'Height': 2,
         'BeamWidth': 2.6,
         'BeamHeight': 2.6,
         'SampleDensity': 1,
         'ContainerChemicalFormula': 'Al',
         'ContainerDensity': 2.7,
         'ContainerInnerRadius': 0.1,
         'ContainerOuterRadius': 2.51,
         'EventsPerPoint': 1000
     }
     PolDiffILLReduction(Run='396993',
                         ProcessAs='Vanadium',
                         OutputWorkspace='vanadium_annulus',
                         EmptyContainerWorkspace='container_ws',
                         SampleAndEnvironmentProperties=sampleProperties,
                         SelfAttenuationMethod='MonteCarlo',
                         SampleGeometry='Annulus',
                         OutputTreatment='Individual')
     self._check_output(mtd['vanadium_annulus'], 1, 132, 6, 'Wavelength',
                        'Wavelength', 'Spectrum', 'Label')
     self._check_process_flag(mtd['vanadium_annulus'], 'Vanadium')
コード例 #2
0
 def test_transmission(self):
     PolDiffILLReduction(Run='396983', ProcessAs='EmptyBeam', OutputWorkspace='beam_ws')
     PolDiffILLReduction(Run='396991', ProcessAs='BeamWithCadmium', OutputWorkspace='cadmium_ws')
     PolDiffILLReduction(Run='396985', ProcessAs='Transmission', OutputWorkspace='quartz_transmission',
                         CadmiumTransmissionInputWorkspace='cadmium_ws_1', BeamInputWorkspace='beam_ws_1',)
     self._check_output(mtd['quartz_transmission'], 1, 1, 1, 'Wavelength', 'Wavelength', 'Spectrum', 'Label')
     self.assertAlmostEqual(mtd['quartz_transmission_1'].readY(0)[0], 0.692, delta=1e-3)
     self._check_process_flag(mtd['quartz_transmission'], 'Transmission')
コード例 #3
0
 def test_quartz(self):
     PolDiffILLReduction(Run='396983', ProcessAs='EmptyBeam', OutputWorkspace='beam_ws')
     PolDiffILLReduction(Run='396985', ProcessAs='Transmission', OutputWorkspace='quartz_transmission',
                         BeamInputWorkspace='beam_ws_1')
     PolDiffILLReduction(Run='396939', ProcessAs='Quartz', TransmissionInputWorkspace='quartz_transmission_1',
                         OutputTreatment='Average', OutputWorkspace='quartz')
     self._check_output(mtd['quartz'], 1, 132, 6, 'Wavelength', 'Wavelength', 'Spectrum', 'Label')
     self._check_process_flag(mtd['quartz'], 'Quartz')
コード例 #4
0
 def test_quartz_transmission_as_value(self):
     PolDiffILLReduction(Run='396917', ProcessAs='Empty', OutputWorkspace='container_ws')
     quartz_transmission = '0.95124'
     PolDiffILLReduction(Run='396939', ProcessAs='Quartz', OutputWorkspace='quartz',
                         Transmission=quartz_transmission, OutputTreatment='AveragePol',
                         EmptyContainerWorkspace='container_ws')
     self.assertTrue('quartz_transmission' in mtd)
     self.assertTrue(mtd['quartz_transmission'].readY(0)[0] == float(quartz_transmission))
     self._check_output(mtd['quartz'], 1, 132, 3, 'Wavelength', 'Wavelength', 'Spectrum', 'Label')
     self._check_process_flag(mtd['quartz'], 'Quartz')
コード例 #5
0
 def d7_reduction_test_sample_sum(self):
     PolDiffILLReduction(Run='397004,397005', ProcessAs='Sample', OutputWorkspace='sample_sum',
                         SampleAndEnvironmentProperties=self._sampleProperties,
                         ScatteringAngleBinSize=1.0,
                         OutputTreatment='Sum')
     self._check_output(mtd['sample_sum'], 132, 1, 1, 'Scattering Angle', 'Label', 'Height', 'Label')
     self._check_process_flag(mtd['sample_sum'], 'Sample')
コード例 #6
0
 def d7_reduction_test_vanadium_sum_flat_plate(self):
     PolDiffILLReduction(Run='396993,396994', ProcessAs='Vanadium', OutputWorkspace='vanadium_sum_num_flat_plate',
                         SelfAttenuationMethod='Numerical', SampleGeometry="FlatPlate",
                         SampleAndEnvironmentProperties=self._sampleProperties, OutputTreatment='Sum')
     self._check_output(mtd['vanadium_sum_num_flat_plate'], 1, 132, 1, 'Wavelength', 'Wavelength', 'Spectrum',
                        'Label')
     self._check_process_flag(mtd['vanadium_sum_num_flat_plate'], 'Vanadium')
コード例 #7
0
 def d7_reduction_test_vanadium_individual_annulus_monte_carlo(self):
     PolDiffILLReduction(Run='396993,396994', ProcessAs='Vanadium', OutputWorkspace='vanadium_ind_mc_annulus',
                         SelfAttenuationMethod='MonteCarlo', SampleGeometry="Annulus",
                         SampleAndEnvironmentProperties=self._sampleProperties,
                         OutputTreatment='Individual')
     self._check_output(mtd['vanadium_ind_mc_annulus'], 1, 132, 12, 'Wavelength', 'Wavelength', 'Spectrum', 'Label')
     self._check_process_flag(mtd['vanadium_ind_mc_annulus'], 'Vanadium')
コード例 #8
0
 def d7_reduction_test_vanadium_individual_transmission_attenuation(self):
     PolDiffILLReduction(Run='396993,396994', ProcessAs='Vanadium', OutputWorkspace='vanadium_ind_transmission_att',
                         SelfAttenuationMethod='Transmission', SampleGeometry="None", Transmission='0.95',
                         SampleAndEnvironmentProperties=self._sampleProperties, OutputTreatment='Individual')
     self._check_output(mtd['vanadium_ind_transmission_att'], 1, 132, 12, 'Wavelength', 'Wavelength', 'Spectrum',
                        'Label')
     self._check_process_flag(mtd['vanadium_ind_transmission_att'], 'Vanadium')
コード例 #9
0
 def test_sample(self):
     sampleProperties = {'FormulaUnits': 1, 'SampleMass': 2.93, 'FormulaUnitMass': 182.56}
     PolDiffILLReduction(Run='397004', ProcessAs='Sample', OutputWorkspace='sample',
                         SampleAndEnvironmentProperties=sampleProperties,
                         OutputTreatment='Individual')
     self._check_output(mtd['sample'], 1, 132, 6, 'Wavelength', 'Wavelength', 'Spectrum', 'Label')
     self._check_process_flag(mtd['sample'], 'Sample')
コード例 #10
0
 def d7_reduction_test_sample_individual_incoherent(self):
     PolDiffILLReduction(
         Run='397004,397005',
         ProcessAs='Sample',
         OutputWorkspace='sample_individual',
         SampleAndEnvironmentProperties=self._sampleProperties,
         OutputTreatment='Individual')
     self._check_output(mtd['sample_individual'], 1, 132, 6, 'Wavelength',
                        'Wavelength', 'Spectrum', 'Label')
     self._check_process_flag(mtd['sample_individual'], 'Sample')
     D7AbsoluteCrossSections(
         InputWorkspace='sample_individual',
         OutputWorkspace='sample_individual_incoherent',
         CrossSectionSeparationMethod='XYZ',
         NormalisationMethod='Incoherent',
         OutputTreatment='Merge',
         OutputUnits='TwoTheta',
         SampleAndEnvironmentProperties=self._sampleProperties)
     self._check_output(mtd['sample_individual_incoherent'],
                        263,
                        1,
                        6,
                        'Scattering Angle',
                        'Label',
                        'Height',
                        'Label',
                        post_processed=True)
コード例 #11
0
 def test_container(self):
     PolDiffILLReduction(Run='396917',
                         ProcessAs='Empty',
                         OutputWorkspace='container_ws')
     self._check_output(mtd['container_ws'], 1, 132, 6, 'Wavelength',
                        'Wavelength', 'Spectrum', 'Label')
     self._check_process_flag(mtd['container_ws'], 'Empty')
コード例 #12
0
 def d7_reduction_test_vanadium_individual_cylinder_numerical(self):
     PolDiffILLReduction(Run='396993,396994', ProcessAs='Vanadium', OutputWorkspace='vanadium_ind_num_cylinder',
                         SelfAttenuationMethod='Numerical', SampleGeometry="Cylinder",
                         SampleAndEnvironmentProperties=self._sampleProperties,
                         OutputTreatment='Individual')
     self._check_output(mtd['vanadium_ind_num_cylinder'], 1, 132, 12, 'Wavelength', 'Wavelength', 'Spectrum', 'Label')
     self._check_process_flag(mtd['vanadium_ind_num_cylinder'], 'Vanadium')
コード例 #13
0
    def test_sample_tof(self):
        # creates table workspace with mock elastic peak positions and widths:
        table_ws = CreateEmptyTableWorkspace()
        table_ws.addColumn("float", "PeakCentre")
        table_ws.addColumn("float", "Sigma")
        for row in range(132):
            table_ws.addRow([1645.2, 15.0])

        sampleProperties = {
            'SampleMass': 2.93,
            'FormulaUnitMass': 50.94,
            'EPWidth': 15
        }
        yig_calibration_file = "D7_YIG_calibration_TOF.xml"
        PolDiffILLReduction(Run='395639',
                            ProcessAs='Sample',
                            OutputWorkspace='sample_tof',
                            SampleAndEnvironmentProperties=sampleProperties,
                            SampleGeometry='None',
                            OutputTreatment='Individual',
                            InstrumentCalibration=yig_calibration_file,
                            ElasticChannelsWorkspace='table_ws',
                            MeasurementTechnique='TOF')
        self._check_output(mtd['sample_tof'], 339, 132, 2, 'Energy transfer',
                           'DeltaE', 'Spectrum', 'Label')
        self._check_process_flag(mtd['sample_tof'], 'Sample')
コード例 #14
0
 def d7_reduction_test_sample_individual_paramagnetic(self):
     PolDiffILLReduction(
         Run='397004,397005',
         ProcessAs='Sample',
         OutputWorkspace='sample_individual',
         SampleAndEnvironmentProperties=self._sampleProperties,
         OutputTreatment='Individual')
     self._check_output(mtd['sample_individual'], 1, 132, 6, 'Wavelength',
                        'Wavelength', 'Spectrum', 'Label')
     self._check_process_flag(mtd['sample_individual'], 'Sample')
     D7AbsoluteCrossSections(
         InputWorkspace='sample_individual',
         OutputWorkspace='sample_individual_paramagnetic',
         CrossSectionSeparationMethod='XYZ',
         NormalisationMethod='Paramagnetic',
         OutputTreatment='Individual',
         OutputUnits='Q',
         SampleAndEnvironmentProperties=self._sampleProperties)
     self._check_output(mtd['sample_individual_paramagnetic'],
                        132,
                        1,
                        6,
                        'q',
                        'MomentumTransfer',
                        'Wavelength',
                        'Wavelength',
                        post_processed=True,
                        normalised_individually=True)
コード例 #15
0
 def d7_reduction_test_vanadium_scatter(self):
     PolDiffILLReduction(Run='396993,396994', ProcessAs='Vanadium', OutputWorkspace='vanadium_scatter',
                         SampleAndEnvironmentProperties=self._sampleProperties,
                         OutputTreatment='IndividualXY')
     self._check_output(mtd['vanadium_full'], 264, 1, 1, 'Momentum transfer', 'Momentum transfer', 'Spectrum',
                        'Label')
     self._check_process_flag(mtd['vanadium_scatter'], 'Vanadium')
コード例 #16
0
 def test_vanadium(self):
     sampleProperties = {'FormulaUnits': 1, 'SampleMass': 8.54, 'FormulaUnitMass': 50.94}
     PolDiffILLReduction(Run='396993', ProcessAs='Vanadium', OutputWorkspace='vanadium',
                         SampleAndEnvironmentProperties=sampleProperties,
                         OutputTreatment='Individual')
     self._check_output(mtd['vanadium'], 1, 132, 6, 'Wavelength', 'Wavelength', 'Spectrum', 'Label')
     self._check_process_flag(mtd['vanadium'], 'Vanadium')
コード例 #17
0
 def test_absorber(self):
     PolDiffILLReduction(Run='396928',
                         ProcessAs='Cadmium',
                         OutputWorkspace='absorber_ws')
     self._check_output(mtd['absorber_ws'], 1, 132, 6, 'Wavelength',
                        'Wavelength', 'Spectrum', 'Label')
     self._check_process_flag(mtd['absorber_ws'], 'Cadmium')
コード例 #18
0
 def d7_reduction_test_vanadium_sum_user(self):
     CloneWorkspace(InputWorkspace='numerical_attenuation_ws', OutputWorkspace='numerical_attenuation_ws_clone')
     PolDiffILLReduction(Run='396993,396994', ProcessAs='Vanadium', OutputWorkspace='vanadium_sum_user',
                         SelfAttenuationMethod='User', SampleGeometry="Custom",
                         SampleSelfAttenuationFactors='numerical_attenuation_ws_clone',
                         SampleAndEnvironmentProperties=self._sampleProperties, OutputTreatment='Sum')
     self._check_output(mtd['vanadium_sum_user'], 1, 132, 1, 'Wavelength', 'Wavelength', 'Spectrum', 'Label')
     self._check_process_flag(mtd['vanadium_sum_user'], 'Vanadium')
コード例 #19
0
 def test_beam(self):
     PolDiffILLReduction(Run='396983',
                         ProcessAs='EmptyBeam',
                         OutputWorkspace='beam_ws')
     self._check_output(mtd['beam_ws'], 1, 1, 1, 'Wavelength', 'Wavelength',
                        'Spectrum', 'Label')
     self._check_process_flag(mtd['beam_ws'], 'EmptyBeam')
     self.assertAlmostEqual(mtd['beam_ws_1'].readY(0)[0], 5.566, delta=1e-3)
コード例 #20
0
 def d7_reduction_test_sample_tof_gauss_bckg_subtraction(self):
     yig_calibration_file = "D7_YIG_calibration_TOF.xml"
     # uses TOF vanadium sample as the source of background
     PolDiffILLReduction(Run='396016', ProcessAs='Empty', OutputWorkspace='container_ws')
     PolDiffILLReduction(Run='395639', ProcessAs='Sample', OutputWorkspace='sample_tof_data_bckg',
                         SampleAndEnvironmentProperties=self._sampleProperties,
                         SampleGeometry='None',
                         OutputTreatment='Individual',
                         Transmission='0.95',
                         EmptyContainerWorkspace='container_ws',
                         InstrumentCalibration=yig_calibration_file,
                         MeasurementTechnique='TOF',
                         ConvertToEnergy=False,
                         SubtractTOFBackgroundMethod='Gaussian'
                         )
     self._check_output(mtd['sample_tof_data_bckg'], 512, 132, 2, 'Time-of-flight', 'TOF', 'Spectrum', 'Label')
     self._check_process_flag(mtd['sample_tof_data_bckg'], 'Sample')
コード例 #21
0
 def test_absorber_transmission(self):
     PolDiffILLReduction(Run='396991',
                         ProcessAs='BeamWithCadmium',
                         OutputWorkspace='cadmium_ws')
     self._check_output(mtd['cadmium_ws'], 1, 1, 1, 'Wavelength',
                        'Wavelength', 'Spectrum', 'Label')
     self._check_process_flag(mtd['cadmium_ws'], 'BeamWithCadmium')
     self.assertAlmostEqual(mtd['cadmium_ws_1'].readY(0)[0],
                            0.06,
                            delta=1e-3)
コード例 #22
0
 def d7_reduction_test_vanadium_average_2theta(self):
     PolDiffILLReduction(
         Run='396993,396994',
         ProcessAs='Vanadium',
         OutputWorkspace='vanadium_average',
         SampleAndEnvironmentProperties=self._sampleProperties,
         OutputTreatment='AverageTwoTheta')
     self._check_output(mtd['vanadium_average'], 1, 132, 6, 'Wavelength',
                        'Wavelength', 'Spectrum', 'Label')
     self._check_process_flag(mtd['vanadium_average'], 'Vanadium')
コード例 #23
0
    def d7_reduction_test_sample_full_reduction(self):
        PolDiffILLReduction(Run='396983', ProcessAs='EmptyBeam', OutputWorkspace='beam_ws')
        PolDiffILLReduction(Run='396985', ProcessAs='Transmission', OutputWorkspace='quartz_transmission',
                            EmptyBeamWorkspace='beam_ws')
        PolDiffILLReduction(Run='396917,396918', ProcessAs='Empty', OutputWorkspace='container_ws')
        PolDiffILLReduction(Run='396928,396929', ProcessAs='Cadmium', OutputWorkspace='absorber_ws')
        PolDiffILLReduction(Run='396991', ProcessAs='BeamWithCadmium', OutputWorkspace='cadmium_ws')
        PolDiffILLReduction(Run='396939,397000', ProcessAs='Quartz', OutputWorkspace='pol_corrections',
                            Transmission='quartz_transmission',
                            CadmiumTransmissionWorkspace='cadmium_ws', OutputTreatment='AveragePol')
        PolDiffILLReduction(Run='396990', ProcessAs='Transmission', OutputWorkspace='vanadium_transmission',
                            CadmiumTransmissionWorkspace='cadmium_ws',
                            EmptyBeamWorkspace='beam_ws')
        PolDiffILLReduction(Run='396993,396994', ProcessAs='Vanadium', OutputWorkspace='vanadium_full',
                            CadmiumWorkspace='absorber_ws',
                            EmptyContainerWorkspace='container_ws',
                            Transmission='vanadium_transmission',
                            QuartzWorkspace='pol_corrections',
                            SampleAndEnvironmentProperties=self._sampleProperties,
                            OutputTreatment='Sum')
        PolDiffILLReduction(Run='396986,396987', ProcessAs='Transmission', OutputWorkspace='sample_transmission',
                            CadmiumTransmissionWorkspace='cadmium_ws',
                            EmptyBeamWorkspace='beam_ws')
        PolDiffILLReduction(Run='397004,397005', ProcessAs='Sample', OutputWorkspace='sample_full',
                            CadmiumWorkspace='absorber_ws',
                            EmptyContainerWorkspace='container_ws',
                            Transmission='vanadium_transmission',
                            QuartzWorkspace='pol_corrections',
                            SampleAndEnvironmentProperties=self._sampleProperties,
                            OutputTreatment='Individual')
        self._check_output(mtd['sample_full'], 1, 132, 12, 'Wavelength', 'Wavelength', 'Spectrum', 'Label')
        self._check_process_flag(mtd['sample_full'], 'Sample')

        D7AbsoluteCrossSections(InputWorkspace='sample_full', OutputWorkspace='sample_full_normalised',
                                CrossSectionSeparationMethod='XYZ',
                                VanadiumInputWorkspace='vanadium_full',
                                NormalisationMethod='Vanadium',
                                OutputTreatment='Merge',
                                OutputUnits='Q',
                                SampleAndEnvironmentProperties=self._sampleProperties,
                                AbsoluteUnitsNormalisation=True)
        self._check_output(mtd['sample_full_normalised'], 263, 1, 6, 'q', 'MomentumTransfer', 'Height', 'Label')
コード例 #24
0
 def test_vanadium_tof(self):
     sampleProperties = {'SampleMass': 8.54, 'FormulaUnitMass': 50.94, 'EPWidth': 15}
     yig_calibration_file = "D7_YIG_calibration_TOF.xml"
     PolDiffILLReduction(Run='396016', ProcessAs='Vanadium', OutputWorkspace='vanadium_tof',
                         SampleAndEnvironmentProperties=sampleProperties,
                         SampleGeometry='None',
                         OutputTreatment='Sum',
                         InstrumentCalibration=yig_calibration_file,
                         MeasurementTechnique='TOF')
     self.assertTrue('vanadium_tof' in mtd)
     self.assertTrue('vanadium_tof_elastic' in mtd)
     self._check_output(mtd['vanadium_tof'], 1, 132, 1, 'Energy transfer', 'DeltaE', 'Spectrum', 'Label')
     self._check_process_flag(mtd['vanadium_tof'], 'Vanadium')
コード例 #25
0
 def d7_reduction_test_vanadium_full_reduction(self):
     PolDiffILLReduction(Run='396983',
                         ProcessAs='EmptyBeam',
                         OutputWorkspace='beam_ws')
     PolDiffILLReduction(Run='396985',
                         ProcessAs='Transmission',
                         OutputWorkspace='quartz_transmission',
                         EmptyBeamWorkspace='beam_ws')
     PolDiffILLReduction(Run='396917,396918',
                         ProcessAs='Empty',
                         OutputWorkspace='container_ws')
     PolDiffILLReduction(Run='396928,396929',
                         ProcessAs='Cadmium',
                         OutputWorkspace='absorber_ws')
     PolDiffILLReduction(Run='396991',
                         ProcessAs='BeamWithCadmium',
                         OutputWorkspace='cadmium_ws')
     PolDiffILLReduction(Run='396939,397000',
                         ProcessAs='Quartz',
                         OutputWorkspace='pol_corrections',
                         Transmission='quartz_transmission',
                         CadmiumTransmissionWorkspace='cadmium_ws',
                         OutputTreatment='AveragePol')
     PolDiffILLReduction(Run='396990',
                         ProcessAs='Transmission',
                         OutputWorkspace='vanadium_transmission',
                         CadmiumTransmissionWorkspace='cadmium_ws',
                         EmptyBeamWorkspace='beam_ws')
     PolDiffILLReduction(
         Run='396993,396994',
         ProcessAs='Vanadium',
         OutputWorkspace='vanadium_full',
         CadmiumWorkspace='absorber_ws',
         EmptyContainerWorkspace='container_ws',
         Transmission='vanadium_transmission',
         QuartzWorkspace='pol_corrections',
         SampleAndEnvironmentProperties=self._sampleProperties,
         OutputTreatment='Sum')
     self._check_output(mtd['vanadium_full'], 1, 132, 6, 'Wavelength',
                        'Wavelength', 'Spectrum', 'Label')
     self._check_process_flag(mtd['vanadium_full'], 'Vanadium')
コード例 #26
0
    def d7_reduction_test_sample_crop_tof_axis(self):
        # creates table workspace with mock elastic peak positions and widths:
        table_ws = CreateEmptyTableWorkspace()
        table_ws.addColumn("float", "PeakCentre")
        table_ws.addColumn("float", "Sigma")
        for row in range(132):
            table_ws.addRow([1645.2, 15.0])

        sampleProperties = {'SampleMass': 2.93, 'FormulaUnitMass': 50.94}
        yig_calibration_file = "D7_YIG_calibration_TOF.xml"
        PolDiffILLReduction(Run='395639', ProcessAs='Sample', OutputWorkspace='sample_tof',
                            SampleAndEnvironmentProperties=sampleProperties,
                            SampleGeometry='None',
                            OutputTreatment='Individual',
                            InstrumentCalibration=yig_calibration_file,
                            ElasticChannelsWorkspace=table_ws,
                            MeasurementTechnique='TOF',
                            ConvertToEnergy=False,
                            MaxTOFChannel=500
                            )
        self._check_output(mtd['sample_tof'], 500, 132, 2, 'Time-of-flight', 'TOF', 'Spectrum', 'Label')
        self._check_process_flag(mtd['sample_tof'], 'Sample')
コード例 #27
0
 def d7_reduction_test_vanadium_individual(self):
     PolDiffILLReduction(Run='396993,396994', ProcessAs='Vanadium', OutputWorkspace='vanadium_individual',
                         SampleAndEnvironmentProperties=self._sampleProperties,
                         OutputTreatment='Individual')
     self._check_output(mtd['vanadium_individual'], 1, 132, 12, 'Wavelength', 'Wavelength', 'Spectrum', 'Label')
     self._check_process_flag(mtd['vanadium_individual'], 'Vanadium')