diff --git a/Testing/Data/SystemTest/HB3A_data.nxs.md5 b/Testing/Data/SystemTest/HB3A_data.nxs.md5 new file mode 100644 index 0000000000000000000000000000000000000000..d3279946092339cdf048f3068f8ee771fe869166 --- /dev/null +++ b/Testing/Data/SystemTest/HB3A_data.nxs.md5 @@ -0,0 +1 @@ +f524fad52590c9f68172293d05d01d52 diff --git a/Testing/SystemTests/tests/analysis/ConvertWANDSCDtoQTest.py b/Testing/SystemTests/tests/analysis/ConvertWANDSCDtoQTest.py index e0887250cacdbf4d1b0dc5bc9f2c393d87d8bb8f..de4dcde402de26e147a85cd393533b203fe8cac7 100644 --- a/Testing/SystemTests/tests/analysis/ConvertWANDSCDtoQTest.py +++ b/Testing/SystemTests/tests/analysis/ConvertWANDSCDtoQTest.py @@ -63,3 +63,53 @@ class ConvertWANDSCDtoQTest(systemtesting.MantidSystemTest): return False return True + + +class ConvertWANDSCDtoQ_HB3A_Test(systemtesting.MantidSystemTest): + def requiredMemoryMB(self): + return 8000 + + def runTest(self): + LoadMD('HB3A_data.nxs', OutputWorkspace='ConvertWANDSCDtoQ_HB3ATest_data') + + SetGoniometer('ConvertWANDSCDtoQ_HB3ATest_data', + Axis0='omega,0,1,0,-1', + Axis1='chi,0,0,1,-1', + Axis2='phi,0,1,0,-1') + + ConvertWANDSCDtoQ(InputWorkspace='ConvertWANDSCDtoQ_HB3ATest_data', + Wavelength=1.008, + BinningDim0='-5.0125,5.0125,401', + BinningDim1='-2.0125,3.0125,201', + BinningDim2='-0.0125,5.0125,201', + KeepTemporaryWorkspaces=True, + OutputWorkspace='ConvertWANDSCDtoQTest_Q') + + ConvertWANDSCDtoQTest_peaks=FindPeaksMD(InputWorkspace='ConvertWANDSCDtoQTest_Q_data', + PeakDistanceThreshold=0.25, + DensityThresholdFactor=20000, + CalculateGoniometerForCW=True, + Wavelength=1.008, + FlipX=True, + InnerGoniometer=False) + + IndexPeaks(ConvertWANDSCDtoQTest_peaks) + + self.assertEqual(ConvertWANDSCDtoQTest_peaks.getNumberPeaks(), 1) + + peak = ConvertWANDSCDtoQTest_peaks.getPeak(0) + self.assertDelta(peak.getWavelength(), 1.008, 1e-7) + np.testing.assert_allclose(peak.getQSampleFrame(), [-0.425693,1.6994,2.30206], rtol=1e-5) + np.testing.assert_array_equal(peak.getHKL(), [0, 0, 6]) + + ConvertWANDSCDtoQTest_HKL = ConvertWANDSCDtoQ(InputWorkspace='ConvertWANDSCDtoQ_HB3ATest_data', + Wavelength=1.008, + Frame='HKL', + BinningDim0='-1.01,1.01,101', + BinningDim1='-1.01,1.01,101', + BinningDim2='4.99,7.01,101', + KeepTemporaryWorkspaces=True) + + signal = ConvertWANDSCDtoQTest_HKL.getSignalArray() + # peak should be roughly the center of the volume + np.testing.assert_array_equal(np.unravel_index(np.nanargmax(signal), signal.shape), (50, 51, 53)) diff --git a/docs/source/algorithms/ConvertWANDSCDtoQ-v1.rst b/docs/source/algorithms/ConvertWANDSCDtoQ-v1.rst index 8dcd25ac2f9f1647699ced7b764a688d088448b2..54a1f067ae4a74a8c0a2db2dffcce9d08d4aa883 100644 --- a/docs/source/algorithms/ConvertWANDSCDtoQ-v1.rst +++ b/docs/source/algorithms/ConvertWANDSCDtoQ-v1.rst @@ -15,6 +15,8 @@ output Q sample space, then the UB can be found and used to then convert to HKL. The default binning ranges are good for converting to Q sample with the default wavelength. +This algorithm will also work for data from DEMAND (HB3A). + The normalization is calculated in the same way as :ref:`algm-MDNormSCD` but with the solid angle and flux coming from the NormalisationWorkspace, normally vanadium. A brief introduction to diff --git a/docs/source/release/v4.3.0/diffraction.rst b/docs/source/release/v4.3.0/diffraction.rst index 8b8b664de40e4880bfd094ed05a5834f1f7f4014..1f526ddf16a2893f72b790fb4179ac8e7eafa403 100644 --- a/docs/source/release/v4.3.0/diffraction.rst +++ b/docs/source/release/v4.3.0/diffraction.rst @@ -18,7 +18,9 @@ Engineering Diffraction Single Crystal Diffraction -------------------------- +- Support added for DEMAND (HB3A) to the algorithms :ref:`ConvertWANDSCDtoQ <algm-ConvertWANDSCDtoQ-v1>` and :ref:`FindPeaksMD <algm-FindPeaksMD-v1>` in order to handle additional goniometers. + Imaging ------- -:ref:`Release 4.3.0 <v4.3.0>` \ No newline at end of file +:ref:`Release 4.3.0 <v4.3.0>`