\(\renewcommand\AA{\unicode{x212B}}\)
Table of Contents
Performs initial energy transfer reduction for ILL indirect geometry data, instrument IN16B.
Name | Direction | Type | Default | Description |
---|---|---|---|---|
Run | Input | list of str lists | Mandatory | File path of run (s). Allowed values: [‘nxs’] |
MapFile | Input | string | Filename of the detector grouping map file to use. By default all the pixels will be summed per each tube. Use .map or .xml file (see GroupDetectors documentation) only if different range is needed for each tube. Allowed values: [‘map’, ‘xml’] | |
ManualPSDIntegrationRange | Input | long list | 1,128 | Integration range of vertical pixels in each PSD tube. By default all the pixels will be summed per each tube. Use this option if the same range (other than default) is needed for all the tubes. |
Analyser | Input | string | silicon | Analyser crystal. Allowed values: [‘silicon’] |
Reflection | Input | string | 111 | Analyser reflection. Allowed values: [‘111’, ‘311’] |
CropDeadMonitorChannels | Input | boolean | False | Whether or not to exclude the first and last few channels with 0 monitor count in the energy transfer formula. |
OutputWorkspace | Output | WorkspaceGroup | Mandatory | Group name for the reduced workspace(s). |
SpectrumAxis | Input | string | SpectrumNumber | The spectrum axis conversion target. Allowed values: [‘SpectrumNumber’, ‘2Theta’, ‘Q’, ‘Q2’] |
NormaliseTo | Input | string | Monitor | Choose to normalise to monitor. Allowed values: [‘Monitor’, ‘None’] |
MonitorCutoff | Input | number | 0.5 | Choose the cutoff fraction wrt the maximum of the monitor counts. |
InputElasticChannelWorkspace | Input | Workspace | The name of the input elastic channel workspace. | |
OutputElasticChannelWorkspace | Output | Workspace | The name of the output elastic channel workspace. | |
ElasticPeakFitting | Input | string | FitAllPixelGroups | Choose the method for calibrating TOF axes. Allowed values: [‘FitAllPixelGroups’, ‘FitEquatorialOnly’] |
GroupPixelsBy | Input | number | 4 | Choose how to group the pixels for elastic peak fitting; must be a power of 2. |
SampleCoordinates | Input | dbl list | 0,0,0 | The sample coordinates X, Y, Z. |
PulseChopper | Input | string | Auto | Define the pulse chopper. Allowed values: [‘Auto’, ‘12’, ‘34’] |
GroupDetectors | Input | boolean | True | Group the pixels using the range, tube-by-tube (default) or in a custom way; it is not recommended to group the detectors at this stage, in order to get absorption corrections right, however the default value is True for backwards compatibility. |
DiscardSingleDetectors | Input | boolean | False | Whether to discard the spectra of single detectors. |
DeleteMonitorWorkspace | Input | boolean | True | Whether to delete the monitor spectrum. |
This is a part of multi-algorithm reduction workflow for IN16B indirect geometry instrument at ILL.
It handles the first steps of the reduction chain, such as grouping of the detectors, normalizing to monitor dependent on the reduction type.
It performs transformation of the axes; x-axis from channel number to energy transfer, and optionally y-axis to scattering angle or elastic momentum transfer.
It handles automatically all four types of data (QENS, EFWS, IFWS, BATS) recorded with or without mirror sense.
Note, that following the standard, the Unit
for energy transfer (DeltaE
) will be milli-electron-volts (mev
).
This algorithm is intended to handle only single file at a time, although if multiple files are given, they will be automatically summed at raw level, i.e. while loading.
In this case MergeRuns
algorithm will be invoked, which will forbid the merges across different types of data
(e.g. different mirror senses, doppler energy or velocity profiles).
Note, that this algorithm is compatible with the data recorded from 03.2014 onwards
(i.e. where Doppler’s mirror_sense
, maximum_delta_energy
and velocity_profile
entries are defined in .nxs
files).
It returns a WorkspaceGroup, containing one (no mirror sense) or two workspaces (with mirror sense) for left and right wings respectively.
This algorithm is not intended to be used directly by the end users. Instead it is used as a child algorithm by IndirectILLReductionQENS
and IndirectILLReductionFWS for QENS and FWS type of reductions correspondingly.
This algorithm support also the Backscattering And Time-of-flight Spectrometer (BATS) mode of IN16B.
In this mode it will fit the elastic peak positions for each group of pixels, with grouping defined as a user input.
Elastic peak will be searched in the middle half of the TOF window.
Then each group of pixels will be calibrated to center the elastic peak at 0 energy transfer.
However in the output there will be no grouping of pixels by default.
The actual energy transfer range will be derived from the monitor window, taking the user defined cutoff value into account.
The frame offset of the monitor will be deduced automatically.
ElasticChannelWorkspace can be optionally output, which can be used as input for the measurements with inelastic offset, where there is no elastic peak in the recorded frame.
Values for single detectors will be computed similarly but separately, and they can be ignored if needed, using the DiscardSingleDetectors
flag.
Example - IndirectILLEnergyTransfer : QENS data without mirror sense
ws = IndirectILLEnergyTransfer(Run='ILL/IN16B/090661.nxs')
print("Reduced workspace has {:d} wing".format(ws.getNumberOfEntries()))
print("which has {:d} spectra".format(ws.getItem(0).getNumberHistograms()))
print("and {:d} bins".format(ws.getItem(0).blocksize()))
Output:
Reduced workspace has 1 wing
which has 18 spectra
and 1024 bins
Example - IndirectILLEnergyTransfer : QENS data with mirror sense
ws = IndirectILLEnergyTransfer(Run='ILL/IN16B/136553:136555.nxs', CropDeadMonitorChannels=True)
print("Reduced workspace has {:d} wings".format(ws.getNumberOfEntries()))
print("which have {:d} spectra".format(ws.getItem(0).getNumberHistograms()))
print("and {:d} bins".format(ws.getItem(0).blocksize()))
Output:
Reduced workspace has 2 wings
which have 18 spectra
and 1017 bins
Example - IndirectILLEnergyTransfer : BATS data
ws = IndirectILLEnergyTransfer(Run='ILL/IN16B/215962.nxs', PulseChopper='34', GroupDetectors=False)
print("The output workspace has {:d} spectra".format(ws.getItem(0).getNumberHistograms()))
print("and {:d} bins".format(ws.getItem(0).blocksize()))
Output:
The output workspace has 2050 spectra
and 1121 bins
Categories: AlgorithmIndex | Workflow\MIDAS | Workflow\Inelastic | Inelastic\Indirect | Inelastic\Reduction | ILL\Indirect
Python: IndirectILLEnergyTransfer.py (last modified: 2021-08-18)