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

LoadILLDiffraction v1

Summary

Loads ILL diffraction nexus files.

See Also

LoadNexus

Properties

Name

Direction

Type

Default

Description

Filename

Input

string

Mandatory

File path of the data file to load. Allowed extensions: [‘.nxs’]

OutputWorkspace

Output

MatrixWorkspace

Mandatory

The output workspace.

TwoThetaOffset

Input

number

0

2 theta offset for D1B data, in degrees.

AlignTubes

Input

boolean

False

Apply vertical and horizontal alignment of tubes as defined in IPF

ConvertAxisAndTranspose

Input

boolean

False

Whether to convert the spectrum axis to 2theta and transpose (for 1D detector and no-scan configuration)

Description

This is the loader for the raw .nxs files produced by the powder and liquid diffractometers at ILL. Currently it supports the instruments D20, D1B, D2B, and D4.

The TwoThetaOffset parameter corresponding to the rotation of the detector is optional and only used for D1B. It is to be provided in degrees.

Loading D20

For D20 1-dimensional detector, it supports 3 resolution modes:

  • low is the physical configuration, i.e. 1536 pixels. This corresponds to the IDF D20_lr.

  • nominal is the default configuration, i.e. pixels split by 2 by DAQ, so in total 3072 pixels. This corresponds to IDF D20.

  • high is when each pixel is split by 3, resulting in 4608 pixels. This corresponds to IDF D20_hr.

Note, that all the IDFs contain only active pixels, and do not count the last 2 banks which are permanently inactive.

The 2theta value of the first pixel is read from the file, and the whole detector is rotated correspondingly.

Scans

The loader is able to load the following scan configurations:

  • no scan, used for D20, when a single file contains a single dataset, e.g. data acquired with static detector at a single temperature point. In this case x-axis is just a single point.

  • detector scan, used always for D2B, and for D20 calibration runs, when the detector moves during the run. In this configuration the output is a scanning workspace containing one spectrum for each pixel at each time index. The x-axis is again a single point.

  • other scan, e.g. omega scan for D20, which is another type of motor scan, but it is not the detector that moves, but the sample. In this case, the data in the raw file is organised just as for detector scan, but the output workspace is not a scanning workspace. It is a regular workspace with x-axis corresponding to the scanned variable, e.g. omega angle.

Logs

The loader creates time series logs for each of the scanned variable in the .nxs file. The scanned variable name is added under ScanVar log.

D2B alignment

For D2B, the loader applies tube alignment; first rotating them horizontally around the sample, then translating them vertically. This is done based on tube_centers and tube_angles parameters defined in the Instrument Parameter File.

D2B pixel numbering in tubes

For D2B it assumes that the counts written in the nexus file follow “U-shape” convention; that is, the first tube counts are written from bottom to top, the second one: from top to bottom, and so on. Note that in the IDF of D2B detector IDs grow ascending from bottom to top for all the tubes. The loader takes care that the correct counts are attributed to correct pixels.

Usage

Note

To run these usage examples please first download the usage data, and add these to your path. In Mantid this is done using Manage User Directories.

Example - LoadILLDiffraction - D20 no scan

ws = LoadILLDiffraction(Filename='ILL/D20/967100.nxs')

print('The output has {0} bins (no scan) and {1} spectra'.format(ws.blocksize(), ws.getNumberHistograms()))

Output:

The output has 1 bins (no scan) and 3073 spectra

Example - LoadILLDiffraction - D20 omega scan

ws = LoadILLDiffraction(Filename='ILL/D20/000017.nxs')

print('The output has {0} bins (scan) and {1} spectra'.format(ws.blocksize(), ws.getNumberHistograms()))

Output:

The output has 21 bins (scan) and 3073 spectra

Example - LoadILLDiffraction - D2B detector scan

ws = LoadILLDiffraction(Filename='ILL/D2B/508093.nxs')

print('The output has {0} bins (detector scan) and {1} spectra'.format(ws.blocksize(), ws.getNumberHistograms()))

Output:

The output has 1 bins (detector scan) and 409625 spectra

Example - LoadILLDiffraction - D1B

ws = LoadILLDiffraction(Filename='ILL/D1B/473432.nxs')

print('The output has {0} bin (detector scan) and {1} spectra'.format(ws.blocksize(), ws.getNumberHistograms()))

Output:

The output has 1 bin (detector scan) and 1281 spectra

Example - LoadILLDiffraction - D4

ws = LoadILLDiffraction(Filename='ILL/D4/387230.nxs')

print('The output has {0} bin and {1} spectra'.format(ws.blocksize(), ws.getNumberHistograms()))

Output:

The output has 1 bin and 577 spectra

Categories: AlgorithmIndex | DataHandling\Nexus | ILL\Diffraction

Source

C++ header: LoadILLDiffraction.h

C++ source: LoadILLDiffraction.cpp