コード例 #1
0
 def testSumInQModeProducesDX(self):
     dirWS = illhelpers.create_poor_mans_d17_workspace()
     mtd.add('dirWS', dirWS)
     illhelpers.add_slit_configuration_D17(dirWS, 0.03, 0.02)
     illhelpers.add_chopper_configuration_D17(dirWS)
     dirWS = illhelpers.refl_add_line_position(dirWS, 128.0)
     dirWS = illhelpers.refl_add_two_theta(dirWS, 2.23)
     dirWS = illhelpers.refl_preprocess('dirWS', dirWS)
     dirFgdWS = illhelpers.refl_sum_foreground('dirFgdWS', 'SumInLambda', dirWS)
     reflWS = illhelpers.create_poor_mans_d17_workspace()
     illhelpers.add_chopper_configuration_D17(reflWS)
     illhelpers.add_slit_configuration_D17(reflWS, 0.03, 0.02)
     illhelpers.refl_rotate_detector(reflWS, 1.5)
     mtd.add('reflWS', reflWS)
     reflWS = illhelpers.refl_add_line_position(reflWS, 128.0)
     reflWS = illhelpers.refl_add_two_theta(reflWS, 6.7)
     reflWS = illhelpers.refl_preprocess('reflWS', reflWS)
     fgdWS = illhelpers.refl_sum_foreground('fgdWS', 'SumInQ', reflWS, dirFgdWS, dirWS)
     args = {
         'InputWorkspace': fgdWS,
         'OutputWorkspace': 'inQ',
         'DirectForegroundWorkspace': dirFgdWS,
         'GroupingQFraction': 0.2,
         'rethrow': True,
         'child': True
     }
     alg = create_algorithm('ReflectometryILLConvertToQ', **args)
     assertRaisesNothing(self, alg.execute)
     outWS = alg.getProperty('OutputWorkspace').value
     self.assertEqual(outWS.getNumberHistograms(), 1)
     self.assertTrue(outWS.hasDx(0))
コード例 #2
0
 def testReflectedBeamSumInQExecutes(self):
     dirWS = illhelpers.create_poor_mans_d17_workspace()
     illhelpers.add_chopper_configuration_D17(dirWS)
     illhelpers.add_slit_configuration_D17(dirWS, 0.02, 0.03)
     dirWS = illhelpers.refl_add_line_position(dirWS, 128.0)
     dirWS = illhelpers.refl_add_two_theta(dirWS, 5.5)
     dirWS = illhelpers.refl_preprocess('dirWS', dirWS)
     args = {
         'InputWorkspace': dirWS,
         'OutputWorkspace': 'dirForeground',
         'rethrow': True,
         'child': True
     }
     alg = create_algorithm('ReflectometryILLSumForeground', **args)
     assertRaisesNothing(self, alg.execute)
     self.assertTrue(alg.isExecuted())
     dirForeground = alg.getProperty('OutputWorkspace').value
     reflWS = illhelpers.create_poor_mans_d17_workspace()
     illhelpers.refl_rotate_detector(reflWS, 1.2)
     illhelpers.add_chopper_configuration_D17(reflWS)
     illhelpers.add_slit_configuration_D17(reflWS, 0.02, 0.03)
     reflWS = illhelpers.refl_add_two_theta(reflWS, 6.7)
     reflWS = illhelpers.refl_preprocess('refWS', reflWS)
     args = {
         'InputWorkspace': reflWS,
         'OutputWorkspace': 'foreground',
         'DirectForegroundWorkspace': dirForeground,
         'SummationType': 'SumInQ',
         'DirectLineWorkspace': dirWS,
         'rethrow': True,
         'child': True
     }
     alg = create_algorithm('ReflectometryILLSumForeground', **args)
     assertRaisesNothing(self, alg.execute)
     self.assertTrue(alg.isExecuted())
コード例 #3
0
    def testReflectedBeamSumInLambdaDetectorMovingAndRotation(self):
        dirWS = illhelpers.create_poor_mans_d17_workspace()
        illhelpers.add_chopper_configuration_D17(dirWS)
        illhelpers.add_slit_configuration_D17(dirWS, 0.03, 0.02)
        dirWS = illhelpers.refl_add_two_theta(dirWS, 6.7)
        dirWS = illhelpers.refl_preprocess_lineposition('dirWS', dirWS, 50.9)
        self.assertEqual(dirWS.run().getProperty(common.SampleLogs.TWO_THETA).value, 6.7)
        self.assertEqual(dirWS.run().getProperty(common.SampleLogs.LINE_POSITION).value, 50.9)
        args = {
            'InputWorkspace': dirWS,
            'OutputWorkspace': 'dirForeground',
            'rethrow': True,
            'child': True
        }
        alg = create_algorithm('ReflectometryILLSumForeground', **args)
        assertRaisesNothing(self, alg.execute)
        self.assertTrue(alg.isExecuted())
        dirForeground = alg.getProperty('OutputWorkspace').value
        self.assertEqual(dirForeground.run().getProperty(common.SampleLogs.TWO_THETA).value, 6.7)
        self.assertEqual(dirForeground.run().getProperty(common.SampleLogs.LINE_POSITION).value, 50.9)
        self.assertEqual(dirForeground.spectrumInfo().size(), 1)
        self.assertAlmostEqual(dirForeground.spectrumInfo().l2(0), 3.101234371122588, delta=1.e-15)
        self.assertAlmostEqual(numpy.degrees(dirForeground.spectrumInfo().twoTheta(0)), 8.3914043569830, delta=1.e-13)

        reflWS = illhelpers.create_poor_mans_d17_workspace()
        illhelpers.refl_rotate_detector(reflWS, 1.2)
        illhelpers.add_chopper_configuration_D17(reflWS)
        illhelpers.add_slit_configuration_D17(reflWS, 0.03, 0.02)
        reflWS = illhelpers.refl_add_two_theta(reflWS, 40.2)
        reflWS = illhelpers.refl_preprocess_lineposition('refWS', reflWS, 120.4)
        self.assertEqual(reflWS.run().getProperty(common.SampleLogs.TWO_THETA).value, 40.2)
        self.assertEqual(reflWS.run().getProperty(common.SampleLogs.LINE_POSITION).value, 120.4)
        args = {
            'InputWorkspace': reflWS,
            'OutputWorkspace': 'foreground',
            'DirectForegroundWorkspace': dirForeground,
            'SummationType': 'SumInLambda',
            'DirectLineWorkspace': dirWS,
            'rethrow': True,
            'child': True
        }
        alg = create_algorithm('ReflectometryILLSumForeground', **args)
        assertRaisesNothing(self, alg.execute)
        out = alg.getProperty('OutputWorkspace').value
        self.assertEqual(out.run().getProperty(common.SampleLogs.TWO_THETA).value, 40.2)
        self.assertEqual(out.run().getProperty(common.SampleLogs.LINE_POSITION).value, 120.4)
        self.assertEqual(out.spectrumInfo().size(), 1)
        self.assertAlmostEqual(out.spectrumInfo().l2(0), 3.0992766423566, delta=1.e-13)
        self.assertAlmostEqual(numpy.degrees(out.spectrumInfo().twoTheta(0)), 40.3568485178340, delta=1.e-13)
        self.assertTrue(alg.isExecuted())
コード例 #4
0
 def testReflectedBeamSumInLambdaNoRotation(self):
     dirWS = illhelpers.create_poor_mans_d17_workspace()
     illhelpers.add_chopper_configuration_D17(dirWS)
     illhelpers.add_slit_configuration_D17(dirWS, 0.03, 0.02)
     dirWS = illhelpers.refl_add_two_theta(dirWS, 6.7)
     dirWS = illhelpers.refl_preprocess_lineposition('dirWS', dirWS, 51)
     self.assertEqual(
         dirWS.run().getProperty(common.SampleLogs.TWO_THETA).value, 6.7)
     self.assertEqual(
         dirWS.run().getProperty(common.SampleLogs.LINE_POSITION).value, 51)
     args = {
         'InputWorkspace': dirWS,
         'OutputWorkspace': 'dirForeground',
         'rethrow': True,
         'child': True
     }
     alg = create_algorithm('ReflectometryILLSumForeground', **args)
     assertRaisesNothing(self, alg.execute)
     self.assertTrue(alg.isExecuted())
     dirForeground = alg.getProperty('OutputWorkspace').value
     self.assertEqual(
         dirForeground.run().getProperty(common.SampleLogs.TWO_THETA).value,
         6.7)
     self.assertEqual(
         dirForeground.run().getProperty(
             common.SampleLogs.LINE_POSITION).value, 51)
     self.assertEqual(dirForeground.spectrumInfo().size(), 1)
     self.assertEqual(dirForeground.spectrumInfo().l2(0),
                      dirWS.spectrumInfo().l2(51))
     self.assertAlmostEquals(dirForeground.spectrumInfo().twoTheta(0) *
                             180. / numpy.pi,
                             8.389135285788196,
                             delta=1.e-15)
コード例 #5
0
 def testDirectBeamSummationExecutes(self):
     ws = illhelpers.create_poor_mans_d17_workspace()
     illhelpers.refl_rotate_detector(ws, 1.2)
     ws = illhelpers.refl_add_two_theta(ws, 5.5)
     ws = illhelpers.refl_preprocess('ws', ws)
     args = {
         'InputWorkspace': ws,
         'OutputWorkspace': 'foreground',
         'rethrow': True,
         'child': True
     }
     alg = create_algorithm('ReflectometryILLSumForeground', **args)
     assertRaisesNothing(self, alg.execute)
     self.assertTrue(alg.isExecuted())
コード例 #6
0
 def testReflectedBeamSumInLambdaDetectorMovingAndRotationD17(self):
     dirWS = illhelpers.create_poor_mans_d17_workspace()
     illhelpers.add_chopper_configuration_D17(dirWS)
     illhelpers.add_slit_configuration_D17(dirWS, 0.03, 0.02)
     dirWS = illhelpers.refl_add_two_theta(dirWS, 6.7)
     dirWS = illhelpers.refl_preprocess_lineposition('dirWS', dirWS, 50.5)
     args = {
         'InputWorkspace': dirWS,
         'OutputWorkspace': 'dirForeground',
         'rethrow': True,
         'child': True
     }
     alg = create_algorithm('ReflectometryILLSumForeground', **args)
     assertRaisesNothing(self, alg.execute)
     self.assertTrue(alg.isExecuted())
コード例 #7
0
 def testNotSummedDirectForegroundRaises(self):
     ws = illhelpers.create_poor_mans_d17_workspace()
     illhelpers.refl_rotate_detector(ws, 1.2)
     ws = illhelpers.refl_add_two_theta(ws, 5.5)
     ws = illhelpers.refl_preprocess('ws', ws)
     args = {
         'InputWorkspace': ws,
         'OutputWorkspace': 'foreground',
         'DirectForegroundWorkspace': ws,
         'rethrow': True,
         'child': True
     }
     alg = create_algorithm('ReflectometryILLSumForeground', **args)
     self.assertRaisesRegex(RuntimeError, 'Some invalid Properties found', alg.execute)
     self.assertTrue(alg.isExecuted)
コード例 #8
0
 def testExecutes(self):
     ws = illhelpers.create_poor_mans_d17_workspace()
     illhelpers.add_flipper_configuration_D17(ws, 1, 1)
     mtd.add('ws', ws)
     ws = illhelpers.refl_add_line_position(ws, 128.0)
     ws = illhelpers.refl_add_two_theta(ws, 6.6)
     ws = illhelpers.refl_preprocess('ws', ws)
     illhelpers.refl_sum_foreground('ws', 'SumInLambda', ws)
     args = {
         'InputWorkspaces': 'ws',
         'OutputWorkspace': 'corrected',
         'EfficiencyFile': 'ILL/D17/PolarizationFactors.txt',
         'rethrow': True,
         'child': True
     }
     alg = create_algorithm('ReflectometryILLPolarizationCor', **args)
     assertRaisesNothing(self, alg.execute)
     self.assertTrue(mtd.doesExist('corrected_++'))
コード例 #9
0
 def testExecutes(self):
     ws = illhelpers.create_poor_mans_d17_workspace()
     illhelpers.add_flipper_configuration_D17(ws, 1, 1)
     mtd.add('ws', ws)
     ws = illhelpers.refl_add_line_position(ws, 128.0)
     ws = illhelpers.refl_add_two_theta(ws, 6.6)
     ws = illhelpers.refl_preprocess('ws', ws)
     illhelpers.refl_sum_foreground('ws', 'SumInLambda', ws)
     args = {
         'InputWorkspaces': 'ws',
         'OutputWorkspace': 'corrected',
         'EfficiencyFile': 'ILL/D17/PolarizationFactors.txt',
         'rethrow': True,
         'child': True
     }
     alg = create_algorithm('ReflectometryILLPolarizationCor', **args)
     assertRaisesNothing(self, alg.execute)
     self.assertTrue(mtd.doesExist('corrected_++'))
コード例 #10
0
 def testWavelengthRangeDefault(self):
     ws = illhelpers.create_poor_mans_d17_workspace()
     illhelpers.refl_rotate_detector(ws, 1.2)
     ws = illhelpers.refl_add_two_theta(ws, 5.5)
     ws = illhelpers.refl_preprocess('ws', ws)
     args = {
         'InputWorkspace': ws,
         'OutputWorkspace': 'foreground',
         'rethrow': True,
         'child': True
     }
     alg = create_algorithm('ReflectometryILLSumForeground', **args)
     assertRaisesNothing(self, alg.execute)
     out = alg.getProperty('OutputWorkspace').value
     self.assertEqual(out.getNumberHistograms(), 1)
     Xs = out.readX(0)
     self.assertGreater(len(Xs), 1)
     self.assertGreater(Xs[0], 0.)
     self.assertLess(Xs[-1], 30.)
コード例 #11
0
 def testLinePositionFromSampleLogs(self):
     # We do not run the preprocess!
     ws = illhelpers.create_poor_mans_d17_workspace()
     illhelpers.refl_rotate_detector(ws, 1.2)
     ws.getAxis(0).setUnit('Wavelength')
     ws = illhelpers.refl_add_two_theta(ws, 5.5)
     ws = illhelpers.refl_add_line_position(ws, 120.6)
     ws.run().addProperty('reduction.foreground.first_workspace_index', int(140), True)
     ws.run().addProperty('reduction.foreground.centre_workspace_index', int(150), True)
     ws.run().addProperty('reduction.foreground.last_workspace_index', int(160), True)
     args = {
         'InputWorkspace': ws,
         'OutputWorkspace': 'foreground',
         'rethrow': True,
         'child': True
     }
     alg = create_algorithm('ReflectometryILLSumForeground', **args)
     assertRaisesNothing(self, alg.execute)
     self.assertTrue(alg.isExecuted())