-
Gigg, Martyn Anthony authored
Refs #10870
Gigg, Martyn Anthony authoredRefs #10870
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
HRPDPowderDiffraction.py 4.88 KiB
import stresstesting
from mantid.simpleapi import *
''' Simply tests that our LoadRaw and LoadISISNexus algorithms produce the same workspace'''
class HRPDPowderDiffraction(stresstesting.MantidStressTest):
def requiredFiles(self):
return ["HRP39191.RAW", "hrpd_new_072_01_corr.cal", "HRP39187.RAW", 'HRPDPowderDiffraction.nxs']
def runTest(self):
#Load the Vanadium
LoadRaw(Filename="HRP39191.RAW",OutputWorkspace="Vanadium")
#mask out the vanadium peaks
MaskBins(InputWorkspace="Vanadium",OutputWorkspace="Vanadium",XMin="19970",XMax="20140")
MaskBins(InputWorkspace="Vanadium",OutputWorkspace="Vanadium",XMin="39970",XMax="40140")
MaskBins(InputWorkspace="Vanadium",OutputWorkspace="Vanadium",XMin="59970",XMax="60140")
MaskBins(InputWorkspace="Vanadium",OutputWorkspace="Vanadium",XMin="79970",XMax="80140")
MaskBins(InputWorkspace="Vanadium",OutputWorkspace="Vanadium",XMin="99970",XMax="100140")
#align vanadium detectors
AlignDetectors(InputWorkspace="Vanadium",OutputWorkspace="Vanadium",CalibrationFile="hrpd_new_072_01_corr.cal")
#normalise by current
NormaliseByCurrent(InputWorkspace="Vanadium",OutputWorkspace="Vanadium")
#correct for solid angle
SolidAngle(InputWorkspace="Vanadium",OutputWorkspace="Corr")
Divide(LHSWorkspace="Vanadium",RHSWorkspace="Corr",OutputWorkspace="Vanadium")
#Multiply the solid angle by the integrated vanadium flux between 1.4 and 3 Angstrom
ConvertUnits(InputWorkspace="Vanadium",OutputWorkspace="flux",Target="Wavelength")
Integration(InputWorkspace="flux",OutputWorkspace="flux",RangeLower="1.4",RangeUpper="3")
Multiply(LHSWorkspace="Corr",RHSWorkspace="flux",OutputWorkspace="Corr")
#adjust the correction down by a factor of 1000
CreateSingleValuedWorkspace(OutputWorkspace="Sc",DataValue="1000")
Divide(LHSWorkspace="Corr",RHSWorkspace="Sc",OutputWorkspace="Corr")
#Load the Vanadium - a second time
LoadRaw(Filename="HRP39191.RAW",OutputWorkspace="Vanadium")
#mask out the vanadium peaks
MaskBins(InputWorkspace="Vanadium",OutputWorkspace="Vanadium",XMin="19970",XMax="20140")
MaskBins(InputWorkspace="Vanadium",OutputWorkspace="Vanadium",XMin="39970",XMax="40140")
MaskBins(InputWorkspace="Vanadium",OutputWorkspace="Vanadium",XMin="59970",XMax="60140")
MaskBins(InputWorkspace="Vanadium",OutputWorkspace="Vanadium",XMin="79970",XMax="80140")
MaskBins(InputWorkspace="Vanadium",OutputWorkspace="Vanadium",XMin="99970",XMax="100140")
#align vanadium detectors
AlignDetectors(InputWorkspace="Vanadium",OutputWorkspace="Vanadium",CalibrationFile="hrpd_new_072_01_corr.cal")
#normalise by current
NormaliseByCurrent(InputWorkspace="Vanadium",OutputWorkspace="Vanadium")
#correct by accumulated correction - solid angle/(1000*flux(1.4 - 3 Angstrom))
Divide(LHSWorkspace="Vanadium",RHSWorkspace="Corr",OutputWorkspace="Vanadium")
#Load the vanadium empty
LoadRaw(Filename="HRP39187.RAW",OutputWorkspace="VEmpty")
#mask out the vanadium peaks
MaskBins(InputWorkspace="VEmpty",OutputWorkspace="VEmpty",XMin="19970",XMax="20140")
MaskBins(InputWorkspace="VEmpty",OutputWorkspace="VEmpty",XMin="39970",XMax="40140")
MaskBins(InputWorkspace="VEmpty",OutputWorkspace="VEmpty",XMin="59970",XMax="60140")
MaskBins(InputWorkspace="VEmpty",OutputWorkspace="VEmpty",XMin="79970",XMax="80140")
MaskBins(InputWorkspace="VEmpty",OutputWorkspace="VEmpty",XMin="99970",XMax="100140")
#align vanadium empty detectors
AlignDetectors(InputWorkspace="VEmpty",OutputWorkspace="VEmpty",CalibrationFile="hrpd_new_072_01_corr.cal")
#correct by accumulated correction - solid angle/(1000*flux(1.4 - 3 Angstrom))
Divide(LHSWorkspace="VEmpty",RHSWorkspace="Corr",OutputWorkspace="VEmpty")
#normalise by current
NormaliseByCurrent(InputWorkspace="VEmpty",OutputWorkspace="VEmpty")
#Subtract Vanadium empty from the Vanadium
Minus(LHSWorkspace="Vanadium",RHSWorkspace="VEmpty",OutputWorkspace="Vanadium")
#Convert to wavelength
ConvertUnits(InputWorkspace="Vanadium",OutputWorkspace="Vanadium",Target="Wavelength")
#Correct for cylinderAbsorption
CylinderAbsorption(InputWorkspace="Vanadium",OutputWorkspace="Transmission",CylinderSampleHeight="2",CylinderSampleRadius="0.4",AttenuationXSection="5.1",ScatteringXSection="5.08",SampleNumberDensity="0.072",NumberOfSlices="10",NumberOfAnnuli="10",NumberOfWavelengthPoints="100")
Divide(LHSWorkspace="Vanadium",RHSWorkspace="Transmission",OutputWorkspace="Vanadium")
#convert to dspacing and focuss
ConvertUnits(InputWorkspace="Vanadium",OutputWorkspace="Vanadium",Target="dSpacing")
DiffractionFocussing(InputWorkspace="Vanadium",OutputWorkspace="Vanadium",GroupingFileName="hrpd_new_072_01_corr.cal")
def validate(self):
# Fitting parameters not saved to ParameterMap
self.disableChecking.append("Instrument")
return 'Vanadium','HRPDPowderDiffraction.nxs'