\(\renewcommand\AA{\unicode{x212B}}\)

ReflectometryILLPreprocess v1

../_images/ReflectometryILLPreprocess-v1_dlg.png

ReflectometryILLPreprocess dialog.

Summary

Loads, merges, normalizes and subtracts background from ILL reflectometry data.

Properties

Name Direction Type Default Description
Run Input list of str lists Mandatory A list of input run numbers/files. Allowed values: [‘nxs’]
OutputWorkspace Output MatrixWorkspace Mandatory The preprocessed output workspace (unit wavelength), single histogram.
Measurement Input string DirectBeam Whether to process as direct or reflected beam. Allowed values: [‘DirectBeam’, ‘ReflectedBeam’]
AngleOption Input string SampleAngle Allowed values: [‘SampleAngle’, ‘DetectorAngle’, ‘UserAngle’]
BraggAngle Input number -1 The bragg angle for reflected beam [Degree], used if angle option is UserAngle.
DirectBeamDetectorAngle Input number -1 The detector angle value [Degree] for the corresponding direct beam, used if angle option is DetectorAngle
DirectBeamForegroundCentre Input number -1 Fractional pixel index for the direct beam, used if angle option is DetectorAngle.
SubalgorithmLogging Input string Logging OFF Enable or disable child algorithm logging. Allowed values: [‘Logging OFF’, ‘Logging ON’]
Cleanup Input string Cleanup ON Enable or disable intermediate workspace cleanup. Allowed values: [‘Cleanup ON’, ‘Cleanup OFF’]
WaterWorkspace Input MatrixWorkspace   A (water) calibration workspace (unit TOF).
SlitNormalisation Input string Slit Normalisation AUTO Enable or disable slit normalisation. Allowed values: [‘Slit Normalisation AUTO’, ‘Slit Normalisation OFF’, ‘Slit Normalisation ON’]
FluxNormalisation Input string Normalise To Time Neutron flux normalisation method. Allowed values: [‘Normalise To Time’, ‘Normalise To Monitor’, ‘Normalisation OFF’]
ForegroundHalfWidth Input long list   Number of foreground pixels at lower and higher angles from the centre pixel.
FlatBackground Input string Background Average Flat background calculation method for background subtraction. Allowed values: [‘Background Average’, ‘Background Constant Fit’, ‘Background Linear Fit’, ‘Background OFF’]
LowAngleBkgOffset Input number 7 Distance of flat background region towards smaller detector angles from the foreground centre, in pixels.
LowAngleBkgWidth Input number 5 Width of flat background region towards smaller detector angles from the foreground centre, in pixels.
HighAngleBkgOffset Input number 7 Distance of flat background region towards larger detector angles from the foreground centre, in pixels.
HighAngleBkgWidth Input number 5 Width of flat background region towards larger detector angles from the foreground centre, in pixels.
FitStartWorkspaceIndex Input number 0 Start workspace index used for peak fitting.
FitEndWorkspaceIndex Input number 255 Last workspace index used for peak fitting.
FitRangeLower Input number -1 Minimum wavelength [Angstrom] used for peak fitting.
FitRangeUpper Input number -1 Maximum wavelength [Angstrom] used for peak fitting.

Description

This algorithm is the first step in the ILL reflectometry reduction workflow. It:

  1. loads data from disk by using LoadAndMerge (LoadILLReflectometry, MergeRuns)
  2. merges the numors
  3. performs the detector angle calibration
  4. normalizes to a (water) reference (optional)
  5. normalizes to slit sizes (optional)
  6. normalizes to experiment time or monitor counts (optional)
  7. subtracts time-independent background (optional)
  8. converts to wavelength

The algorithm can be thought as an ‘advanced loader’, and should be used to load both direct beam and reflected beam measurements.

The OutputWorkspace can be further fed to ReflectometryILLSumForeground.

The option Slit Normalisation AUTO will select the slit normalisation depending on the instrument: for D17 and FIGARO, the slit normalisation will be turned on and off, respectively.

The workflow diagram below gives an overview of the algorithm for direct and reflected beam preprocessing respectively:

../_images/ReflectometryILLPreprocessDirect-v1_wkflw.png ../_images/ReflectometryILLPreprocessReflected-v1_wkflw.png

Measurement

This tag defines whether the runs need to be processed as direct or reflected beams. In both cases the fractional foreground centre is fitted. For direct beam, the detector is rotated such that the foreground centre corresponds exactly to zero scattering angle. For reflected beam there are three possibilities, depending on the AngleOption:

  1. UserAngle: the detector is rotated such that the foreground centre of the reflected beam corresponds exactly to 2*BraggAngle.
  2. SampleAngle: the detector is rotated such that the foreground centre if the reflected beam corresponds exactly to 2*SAN, where the SAN is read from the nexus file of the reflected beam run.
  3. DetectorAngle: the detector is rotated such that the foreground centre of the corresponding direct beam corresponds exactly to DAN_RB - DAN_DB, where the two detector angles are read from the direct and reflected beams correspondingly. In this case the DirectBeamDetectorAngle and DirectBeamForegroundCentre are required, which could be retrieved from the sample logs of the pre-processed direct beam runs.

Foreground and backgrounds

Foreground is a set of pixels intensities of which will be summed in ReflectometryILLSumForeground. However, foreground needs to be defined already in this algorithm as the information is needed for the background pixels. The foreground pixel information is stored in the sample logs of OutputWorkspace under the entries starting with foreground..

Background, on the other hand, is a set of pixels which are be used for average (default), fitted constant or linear background by CalculatePolynomialBackground.

The foreground pixels are defined by the foreground centre and ForegroundHalfWidth property. In normal use cases, the foreground center (workspace index) is taken from the fitting in LoadILLReflectometry. Fractional values are rounded to nearest integer.

ForegroundHalfWidth is a list of one or two values. If a single value is given, then this number of pixels on both sides of the centre pixel are included in the foreground. For example, ForegroundHalfWidth=[3] means three pixel on both sides are included, making the foreground seven pixels wide in total. ForegroundHalfWidth=[0] means that only the centre pixel is included. When two values are given, then the foreground is asymmetric around the centre. For instance, ForegroundHalfWidth[2,5] indicates that two pixel at lower \(\theta\) and five pixels at higher \(\theta\) are included in the foreground.

LowAngleBkgWidth and HighAngleBkgWidth define the number of the background fitting pixels at low and high \(\theta\). Either one or both widths can be defined. The distance between the background pixels and the foreground can in turn be given by LowAngleBkgOffset and HighAngleBkgOffset.

Usage

Example - Load direct and reflected beams with DAN calibration

settings = {
    'ForegroundHalfWidth':[5],
    'LowAngleBkgOffset': 10,
    'LowAngleBkgWidth': 20,
    'HighAngleBkgOffset': 10,
    'HighAngleBkgWidth': 50
}

direct = ReflectometryILLPreprocess(
    Run='ILL/D17/317369.nxs',
    **settings
)

db_fg_centre = direct.run().getLogData('reduction.line_position').value
db_dan = direct.run().getLogData('DAN.value').value

reflected = ReflectometryILLPreprocess(
    Run='ILL/D17/317370.nxs',
    Measurement='ReflectedBeam',
    AngleOption='DetectorAngle',
    DirectBeamForegroundCentre=db_fg_centre,
    DirectBeamDetectorAngle=db_dan,
    **settings
)

rb_fg_centre = reflected.run().getLogData('reduction.line_position').value
rb_dan = reflected.run().getLogData('DAN.value').value

print('Reflected line position: {}'.format(int(rb_fg_centre)))

Output:

Reflected line position: 201

Categories: AlgorithmIndex | ILL\Reflectometry | Workflow\Reflectometry

Source

Python: ReflectometryILLPreprocess.py (last modified: 2020-08-10)