def test_non_scanning_case(self):
        input_ws = CreateSampleWorkspace(NumMonitors=0, NumBanks=6, BankPixelWidth=1, XMin=0, XMax=1, BinWidth=1)

        calibration_x = np.array([0, 0, 0, 0, 0, 0])
        calibration_y = np.array([1.0, 2.0, 3.0, 4.0, 5.0, 6.0])

        calibration_ws = CreateWorkspace(DataX=calibration_x, DataY=calibration_y, Nspec=calibration_y.size)

        calibrated_ws = ApplyDetectorScanEffCorr(input_ws, calibration_ws)
        for i in range(6):
            self.assertEquals(calibrated_ws.readY(i), input_ws.readY(i) * (i+1))
            self.assertEquals(calibrated_ws.readE(i), input_ws.readE(i) * (i+1))
 def createPhononWS(self, T, en, e_units):
     fn = 'name=Gaussian, PeakCentre='+str(en)+', Height=1, Sigma=0.5;'
     fn +='name=Gaussian, PeakCentre=-'+str(en)+', Height='+str(np.exp(-en*11.6/T))+', Sigma=0.5;'
     ws = CreateSampleWorkspace(binWidth = 0.1, XMin = -25, XMax = 25, XUnit = e_units, Function = 'User Defined', UserDefinedFunction=fn)
     LoadInstrument(ws, InstrumentName='MARI', RewriteSpectraMap = True)
     with self.assertRaises(RuntimeError):
         ws_DOS = ComputeIncoherentDOS(ws)
     ws = SofQW3(ws, [0, 0.05, 8], 'Direct', 25)
     qq = np.arange(0, 8, 0.05)+0.025
     for i in range(ws.getNumberHistograms()):
         ws.setY(i, ws.readY(i)*qq[i]**2)
         ws.setE(i, ws.readE(i)*qq[i]**2)
     return ws
 def createPhononWS(self, T, en, e_units):
     fn = 'name=Gaussian, PeakCentre='+str(en)+', Height=1, Sigma=0.5;'
     fn +='name=Gaussian, PeakCentre=-'+str(en)+', Height='+str(np.exp(-en*11.6/T))+', Sigma=0.5;'
     ws = CreateSampleWorkspace(binWidth = 0.1, XMin = -25, XMax = 25, XUnit = e_units, Function = 'User Defined', UserDefinedFunction=fn)
     LoadInstrument(ws, InstrumentName='MARI', RewriteSpectraMap = True)
     with self.assertRaises(RuntimeError):
         ws_DOS = ComputeIncoherentDOS(ws)
     ws = SofQW3(ws, [0, 0.05, 8], 'Direct', 25)
     qq = np.arange(0, 8, 0.05)+0.025
     for i in range(ws.getNumberHistograms()):
         ws.setY(i, ws.readY(i)*qq[i]**2)
         ws.setE(i, ws.readE(i)*qq[i]**2)
     return ws
    def test_simple_scanning_case(self):
        input_ws = CreateSampleWorkspace(NumMonitors=0, NumBanks=6, BankPixelWidth=1, XMin=0, XMax=1, BinWidth=1, NumScanPoints=2)

        calibration_x = np.array([0, 0, 0, 0, 0, 0])
        calibration_y = np.array([1.0, 2.0, 3.0, 4.0, 5.0, 6.0])

        # Note the monitors are in the wrong place doing the test workspace creation like this - but it does not affect the test.
        calibration_ws = CreateWorkspace(DataX=calibration_x, DataY=calibration_y, Nspec=calibration_y.size)

        expected = np.repeat(calibration_y, 2)
        calibrated_ws = ApplyDetectorScanEffCorr(input_ws, calibration_ws)
        for i in range(12):
            self.assertEquals(calibrated_ws.readY(i), input_ws.readY(i) * expected[i])
            self.assertEquals(calibrated_ws.readE(i), input_ws.readE(i) * expected[i])
Exemple #5
0
    def test_non_scanning_case(self):
        input_ws = CreateSampleWorkspace(NumMonitors=1,
                                         NumBanks=6,
                                         BankPixelWidth=1,
                                         XMin=0,
                                         XMax=1,
                                         BinWidth=1)

        calibration_x = np.array([0, 0, 0, 0, 0, 0])
        calibration_y = np.array([1.0, 2.0, 3.0, 4.0, 5.0, 6.0])

        # Note the monitors are in the wrong place doing the test workspace creation like this - but it does not affect the test.
        calibration_ws = CreateWorkspace(DataX=calibration_x,
                                         DataY=calibration_y,
                                         Nspec=calibration_y.size)

        calibrated_ws = ApplyDetectorScanEffCorr(input_ws, calibration_ws)
        for i in range(1, 7):
            self.assertEquals(calibrated_ws.readY(i), input_ws.readY(i) * i)
            self.assertEquals(calibrated_ws.readE(i), input_ws.readE(i) * i)
    def test_non_scanning_case(self):
        input_ws = CreateSampleWorkspace(NumMonitors=0,
                                         NumBanks=6,
                                         BankPixelWidth=1,
                                         XMin=0,
                                         XMax=1,
                                         BinWidth=1)

        calibration_x = np.array([0, 0, 0, 0, 0, 0])
        calibration_y = np.array([1.0, 2.0, 3.0, 4.0, 5.0, 6.0])

        calibration_ws = CreateWorkspace(DataX=calibration_x,
                                         DataY=calibration_y,
                                         Nspec=calibration_y.size)

        calibrated_ws = ApplyDetectorScanEffCorr(input_ws, calibration_ws)
        for i in range(6):
            self.assertEquals(calibrated_ws.readY(i),
                              input_ws.readY(i) * (i + 1))
            self.assertEquals(calibrated_ws.readE(i),
                              input_ws.readE(i) * (i + 1))