$$\renewcommand\AA{\unicode{x212B}}$$

IndirectILLEnergyTransfer v1¶

Summary¶

Performs initial energy transfer reduction for ILL indirect geometry data, instrument IN16B.

Properties¶

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’]

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.

Input

boolean

False

Whether to discard the spectra of single detectors.

DeleteMonitorWorkspace

Input

boolean

True

Whether to delete the monitor spectrum.

Description¶

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.

BATS¶

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.

Usage¶

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


Source¶

Python: IndirectILLEnergyTransfer.py