Table of Contents
* Warning - This Routine is under development *
Performs a unit change on the X values of a workspace
Name | Direction | Type | Default | Description |
---|---|---|---|---|
InputWorkspace | Input | MatrixWorkspace | Mandatory | An input workspace. |
OutputWorkspace | Output | MatrixWorkspace | Mandatory | An output workspace. |
Target | Input | string | Mandatory | The name of the units to convert to (must be one of those registered in the Unit Factory). Allowed values: [‘Degrees’, ‘DeltaE’, ‘DeltaE_inWavenumber’, ‘dSpacing’, ‘Empty’, ‘Energy’, ‘Energy_inWavenumber’, ‘Label’, ‘Momentum’, ‘MomentumTransfer’, ‘QSquared’, ‘SpinEchoLength’, ‘SpinEchoTime’, ‘Time’, ‘TOF’, ‘Wavelength’] |
DetectorParameters | Input | TableWorkspace | Name of a TableWorkspace containing the detector parameters to use instead of the IDF. | |
AlignBins | Input | boolean | False | If true (default is false), rebins after conversion to ensure that all spectra in the output workspace have identical bin boundaries. This option is not recommended (see http://www.mantidproject.org/ConvertUnits). |
This algorithm functions in the same basic way as ConvertUnits v1 but instead of reading the geometric parameters from the instrument, it uses values that are specified in a TableWorkspace
The units currently available to this algorithm are listed here, along with equations specifying exactly how the conversions are done.
Example - Convert to wavelength using parameters from a table
# Create a host workspace
ws = CreateSampleWorkspace("Histogram",NumBanks=1,BankPixelWidth=1)
# Create a TableWorkspace to hold the detector parameters
detpars = CreateEmptyTableWorkspace()
detpars.addColumn("int", "spectra")
detpars.addColumn("double", "l1")
detpars.addColumn("double", "l2")
detpars.addColumn("double", "twotheta")
detpars.addColumn("double", "efixed")
detpars.addColumn("int", "emode")
# Add the parameters
detpars.addRow([1, 10.0, 5.0, 90.0, 0.0, 0])
wsOut = ConvertUnitsUsingDetectorTable(ws,Target="Wavelength",DetectorParameters=detpars)
print "Input", ws.readX(0)[ws.blocksize()-1]
print "Output", wsOut.readX(0)[wsOut.blocksize()-1]
Output:
Input 19800.0
Output 5.22196485301
Categories: Algorithms | Utility | Development