ConvertUnitsUsingDetectorTable v1

../_images/ConvertUnitsUsingDetectorTable-v1_dlg.png

ConvertUnitsUsingDetectorTable dialog.

Summary

* Warning - This Routine is under development *

Performs a unit change on the X values of a workspace

Properties

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).

Description

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

Restrictions on the input workspace

  • Naturally, the X values must have a unit set, and that unit must be known to the Unit Factory.
  • Only histograms, not point data, can be handled at present.
  • The algorithm will also fail if the source-sample distance cannot be calculated (i.e. the instrument has not been properly defined).

Available units

The units currently available to this algorithm are listed here, along with equations specifying exactly how the conversions are done.

Usage

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