コード例 #1
0
 def testExecutes(self):
     dirWS = illhelpers.create_poor_mans_d17_workspace()
     mtd.add('dirWS', dirWS)
     illhelpers.add_slit_configuration_D17(dirWS, 0.03, 0.02)
     illhelpers.refl_create_beam_position_ws('dirBeamPosWS', dirWS, 0., 128)
     dirWS = illhelpers.refl_preprocess('dirWS', dirWS, 'dirBeamPosWS')
     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)
     illhelpers.refl_create_beam_position_ws('reflBeamPosWS', reflWS, 1.5,
                                             128)
     reflWS = illhelpers.refl_preprocess('reflWS', reflWS, 'reflBeamPosWS')
     fgdWS = illhelpers.refl_sum_in_lambda('fgdWS', reflWS)
     args = {
         'InputWorkspace': fgdWS,
         'OutputWorkspace': 'inQ',
         'ReflectedBeamWorkspace': reflWS,
         'DirectBeamWorkspace': dirWS,
         'GroupingQFraction': 0.2,
         'rethrow': True,
         'child': True
     }
     alg = create_algorithm('ReflectometryILLConvertToQ', **args)
     assertRaisesNothing(self, alg.execute)
コード例 #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)
     dirBeamPosWS = illhelpers.refl_create_beam_position_ws('dirBeamPosWS', dirWS, 0., 128)
     dirWS = illhelpers.refl_preprocess('dirWS', dirWS, dirBeamPosWS)
     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)
     reflBeamPosWS = illhelpers.refl_create_beam_position_ws('reflBeamPosWS', reflWS, 1.2, 128)
     reflWS = illhelpers.refl_preprocess('refWS', reflWS, reflBeamPosWS)
     args = {
         'InputWorkspace': reflWS,
         'OutputWorkspace': 'foreground',
         'DirectForegroundWorkspace': dirForeground,
         'SummationType': 'SumInQ',
         'DirectBeamWorkspace': dirWS,
         'rethrow': True,
         'child': True
     }
     alg = create_algorithm('ReflectometryILLSumForeground', **args)
     assertRaisesNothing(self, alg.execute)
     self.assertTrue(alg.isExecuted())
コード例 #3
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)
     illhelpers.refl_create_beam_position_ws('dirBeamPosWS', dirWS, 0., 128)
     dirWS = illhelpers.refl_preprocess('dirWS', dirWS, 'dirBeamPosWS')
     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)
     illhelpers.refl_create_beam_position_ws('reflBeamPosWS', reflWS, 1.5, 128)
     reflWS = illhelpers.refl_preprocess('reflWS', reflWS, 'reflBeamPosWS')
     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))
コード例 #4
0
 def testReflectedBeamSumInQExecutes(self):
     dirWS = illhelpers.create_poor_mans_d17_workspace()
     illhelpers.add_chopper_configuration_D17(dirWS)
     dirBeamPosWS = illhelpers.refl_create_beam_position_ws('dirBeamPosWS', dirWS, 0., 128)
     dirWS = illhelpers.refl_preprocess('dirWS', dirWS, dirBeamPosWS)
     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)
     reflBeamPosWS = illhelpers.refl_create_beam_position_ws('reflBeamPosWS', reflWS, 1.2, 128)
     reflWS = illhelpers.refl_preprocess('refWS', reflWS, reflBeamPosWS)
     args = {
         'InputWorkspace': reflWS,
         'OutputWorkspace': 'foreground',
         'DirectForegroundWorkspace': dirForeground,
         'SummationType': 'SumInQ',
         'rethrow': True,
         'child': True
     }
     alg = create_algorithm('ReflectometryILLSumForeground', **args)
     assertRaisesNothing(self, alg.execute)
     self.assertTrue(alg.isExecuted())
コード例 #5
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)
     illhelpers.refl_create_beam_position_ws('dirBeamPosWS', dirWS, 0., 128)
     dirWS = illhelpers.refl_preprocess('dirWS', dirWS, 'dirBeamPosWS')
     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)
     illhelpers.refl_create_beam_position_ws('reflBeamPosWS', reflWS, 1.5,
                                             128)
     reflWS = illhelpers.refl_preprocess('reflWS', reflWS, 'reflBeamPosWS')
     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))
コード例 #6
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())
コード例 #7
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)
コード例 #8
0
 def testD17SlitWidthLogEntry(self):
     ws = illhelpers.create_poor_mans_d17_workspace()
     mtd.add('ws', ws)
     illhelpers.add_slit_configuration_D17(ws, 0.03, 0.02)
     run = ws.run()
     instrName = common.instrumentName(ws)
     slit2width = run.get(common.slitSizeLogEntry(instrName, 1))
     slit3width = run.get(common.slitSizeLogEntry(instrName, 2))
     common.slitSizes(ws)
     self.assertEquals(slit2width.value, run.getProperty(common.SampleLogs.SLIT2WIDTH).value)
     self.assertEquals(slit3width.value, run.getProperty(common.SampleLogs.SLIT3WIDTH).value)
     mtd.clear()
コード例 #9
0
 def testDirectBeamSummationExecutes(self):
     ws = illhelpers.create_poor_mans_d17_workspace()
     illhelpers.refl_rotate_detector(ws, 1.2)
     beamPosWS = illhelpers.refl_create_beam_position_ws('beamPosWS', ws, 1.2, 128)
     ws = illhelpers.refl_preprocess('ws', ws, beamPosWS)
     args = {
         'InputWorkspace': ws,
         'OutputWorkspace': 'foreground',
         'rethrow': True,
         'child': True
     }
     alg = create_algorithm('ReflectometryILLSumForeground', **args)
     assertRaisesNothing(self, alg.execute)
     self.assertTrue(alg.isExecuted())
コード例 #10
0
 def testDirectBeamSummationExecutes(self):
     ws = illhelpers.create_poor_mans_d17_workspace()
     illhelpers.refl_rotate_detector(ws, 1.2)
     beamPosWS = illhelpers.refl_create_beam_position_ws('beamPosWS', ws, 1.2, 128)
     ws = illhelpers.refl_preprocess('ws', ws, beamPosWS)
     args = {
         'InputWorkspace': ws,
         'OutputWorkspace': 'foreground',
         'rethrow': True,
         'child': True
     }
     alg = create_algorithm('ReflectometryILLSumForeground', **args)
     assertRaisesNothing(self, alg.execute)
     self.assertTrue(alg.isExecuted())
コード例 #11
0
 def testReflectedBeamSumInLambdaExecutes(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_line_position(dirWS, 128.0)
     dirWS = illhelpers.refl_add_two_theta(dirWS, 6.7)
     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.03, 0.02)
     reflWS = illhelpers.refl_add_line_position(reflWS, 128.0)
     reflWS = illhelpers.refl_add_two_theta(reflWS, 6.7)
     reflWS = illhelpers.refl_preprocess('refWS', reflWS)
     args = {
         'InputWorkspace': reflWS,
         'OutputWorkspace': 'foreground',
         'DirectForegroundWorkspace': dirForeground,
         'SummationType': 'SumInLambda',
         'DirectLineWorkspace': dirWS,
         'rethrow': True,
         'child': True
     }
     alg = create_algorithm('ReflectometryILLSumForeground', **args)
     assertRaisesNothing(self, alg.execute)
     self.assertTrue(alg.isExecuted())
コード例 #12
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)
コード例 #13
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())
コード例 #14
0
 def testNotSummedDirectForegroundRaises(self):
     ws = illhelpers.create_poor_mans_d17_workspace()
     illhelpers.refl_rotate_detector(ws, 1.2)
     beamPosWS = illhelpers.refl_create_beam_position_ws('beamPosWS', ws, 1.2, 128)
     ws = illhelpers.refl_preprocess('ws', ws, beamPosWS)
     args = {
         'InputWorkspace': ws,
         'OutputWorkspace': 'foreground',
         'DirectForegroundWorkspace': ws,
         'rethrow': True,
         'child': True
     }
     alg = create_algorithm('ReflectometryILLSumForeground', **args)
     self.assertRaisesRegexp(RuntimeError, 'Some invalid Properties found', alg.execute)
     self.assertTrue(alg.isExecuted)
コード例 #15
0
 def testExecutes(self):
     ws = illhelpers.create_poor_mans_d17_workspace()
     illhelpers.add_flipper_configuration_D17(ws, 1, 1)
     mtd.add('ws', ws)
     illhelpers.refl_create_beam_position_ws('beamPosWS', ws, 0., 128)
     ws = illhelpers.refl_preprocess('ws', ws, 'beamPosWS')
     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_++'))
コード例 #16
0
 def testNoDirectForegroundAndSumInQRaises(self):
     ws = illhelpers.create_poor_mans_d17_workspace()
     illhelpers.refl_rotate_detector(ws, 1.2)
     beamPosWS = illhelpers.refl_create_beam_position_ws(
         'beamPosWS', ws, 1.2, 128)
     ws = illhelpers.refl_preprocess('ws', ws, beamPosWS)
     args = {
         'InputWorkspace': ws,
         'OutputWorkspace': 'foreground',
         'SummationType': 'SumInQ',
         'rethrow': True,
         'child': True
     }
     alg = create_algorithm('ReflectometryILLSumForeground', **args)
     self.assertRaisesRegexp(RuntimeError, 'Some invalid Properties found',
                             alg.execute)
     self.assertTrue(alg.isExecuted)
コード例 #17
0
 def testExecutes(self):
     ws = illhelpers.create_poor_mans_d17_workspace()
     illhelpers.add_flipper_configuration_D17(ws, 1, 1)
     mtd.add('ws', ws)
     illhelpers.refl_create_beam_position_ws('beamPosWS', ws, 0., 128)
     ws = illhelpers.refl_preprocess('ws', ws, 'beamPosWS')
     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_++'))
コード例 #18
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())
コード例 #19
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.)
コード例 #20
0
 def testWavelengthRangeDefault(self):
     ws = illhelpers.create_poor_mans_d17_workspace()
     illhelpers.refl_rotate_detector(ws, 1.2)
     beamPosWS = illhelpers.refl_create_beam_position_ws('beamPosWS', ws, 1.2, 128)
     ws = illhelpers.refl_preprocess('ws', ws, beamPosWS)
     args = {
         'InputWorkspace': ws,
         'OutputWorkspace': 'foreground',
         'rethrow': True,
         'child': True
     }
     alg = create_algorithm('ReflectometryILLSumForeground', **args)
     assertRaisesNothing(self, alg.execute)
     out = alg.getProperty('OutputWorkspace').value
     self.assertEquals(out.getNumberHistograms(), 1)
     Xs = out.readX(0)
     self.assertGreater(len(Xs), 1)
     self.assertGreater(Xs[0], 0.)
     self.assertLess(Xs[-1], 30.)
コード例 #21
0
 def testCleanupOFF(self):
     # test if intermediate workspaces exist:
     # normalise_to_slits, normalise_to_monitor, '_normalised_to_time_','transposed_flat_background'
     outWSName = 'outWS'
     ws = illhelpers.create_poor_mans_d17_workspace()
     ws = illhelpers.refl_add_line_position(ws, 3.0)
     self.assertEquals(ws.run().getProperty(common.SampleLogs.LINE_POSITION).value, 3.0)
     # Add a peak to the workspace.
     for i in range(33, 100):
         ys = ws.dataY(i)
         ys += 10.0
     args = {
         'InputWorkspace': ws,
         'OutputWorkspace': outWSName,
         'TwoTheta': 0.6,
         'Cleanup': 'Cleanup OFF',
         'WaterWorkspace': ws,
         'ForegroundHalfWidth': [1, 2],
         'FluxNormalisation': 'Normalisation OFF',
         'rethrow': True,
         'child': True
     }
     alg = create_algorithm('ReflectometryILLPreprocess', **args)
     assertRaisesNothing(self, alg.execute)
     wsInADS = mtd.getObjectNames()
     self.assertEquals(len(wsInADS), 13)
     self.assertEquals(wsInADS, [
         'outWS_cloned_for_flat_bkg_',
         'outWS_detectors_',
         'outWS_detectors_moved_',
         'outWS_flat_background_',
         'outWS_flat_background_subtracted_',
         'outWS_in_wavelength_',
         'outWS_monitors_',
         'outWS_peak_',
         'outWS_transposed_clone_',
         'outWS_transposed_flat_background_',
         'outWS_water_calibrated_',
         'outWS_water_detectors_',
         'outWS_water_rebinned_']
                       )
     mtd.clear()
コード例 #22
0
 def testWavelengthRange(self):
     ws = illhelpers.create_poor_mans_d17_workspace()
     illhelpers.refl_rotate_detector(ws, 1.2)
     beamPosWS = illhelpers.refl_create_beam_position_ws('beamPosWS', ws, 1.2, 128)
     ws = illhelpers.refl_preprocess('ws', ws, beamPosWS)
     xMin = 2.3
     xMax = 4.2
     args = {
         'InputWorkspace': ws,
         'OutputWorkspace': 'foreground',
         'WavelengthRange': [xMin, xMax],
         'rethrow': True,
         'child': True
     }
     alg = create_algorithm('ReflectometryILLSumForeground', **args)
     assertRaisesNothing(self, alg.execute)
     ws = alg.getProperty('OutputWorkspace').value
     self.assertEquals(ws.getNumberHistograms(), 1)
     Xs = ws.readX(0)
     self.assertGreater(len(Xs), 1)
     self.assertGreater(Xs[0], xMin)
     self.assertLess(Xs[-1], xMax)
コード例 #23
0
 def testCleanupOFF(self):
     # test if intermediate workspaces exist:
     # normalise_to_slits, normalise_to_monitor, '_normalised_to_time_','transposed_flat_background'
     outWSName = 'outWS'
     ws = illhelpers.create_poor_mans_d17_workspace()
     ws = illhelpers.refl_add_line_position(ws, 3.0)
     self.assertEqual(
         ws.run().getProperty(common.SampleLogs.LINE_POSITION).value, 3.0)
     # Add a peak to the workspace.
     for i in range(33, 100):
         ys = ws.dataY(i)
         ys += 10.0
     args = {
         'InputWorkspace': ws,
         'OutputWorkspace': outWSName,
         'TwoTheta': 0.6,
         'Cleanup': 'Cleanup OFF',
         'WaterWorkspace': ws,
         'ForegroundHalfWidth': [1, 2],
         'FluxNormalisation': 'Normalisation OFF',
         'rethrow': True,
         'child': True
     }
     alg = create_algorithm('ReflectometryILLPreprocess', **args)
     assertRaisesNothing(self, alg.execute)
     wsInADS = mtd.getObjectNames()
     self.assertEqual(len(wsInADS), 13)
     self.assertEqual(wsInADS, [
         'outWS_cloned_for_flat_bkg_', 'outWS_detectors_',
         'outWS_detectors_moved_', 'outWS_flat_background_',
         'outWS_flat_background_subtracted_', 'outWS_in_wavelength_',
         'outWS_monitors_', 'outWS_peak_', 'outWS_transposed_clone_',
         'outWS_transposed_flat_background_', 'outWS_water_calibrated_',
         'outWS_water_detectors_', 'outWS_water_rebinned_'
     ])
     mtd.clear()