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

HRPDSlabCanAbsorption v1

../_images/ImageNotFound.png

Enable screenshots using DOCS_SCREENSHOTS in CMake

Summary

Calculates attenuation due to absorption and scattering in an HRPD ‘slab’ can.

See Also

AbsorptionCorrection

Properties

Name

Direction

Type

Default

Description

InputWorkspace

Input

MatrixWorkspace

Mandatory

OutputWorkspace

Output

MatrixWorkspace

Mandatory

SampleAttenuationXSection

Input

number

Optional

The ABSORPTION cross-section for the sample material in barns if not set with SetSampleMaterial

SampleScatteringXSection

Input

number

Optional

The scattering cross-section (coherent + incoherent) for the sample material in barns if not set with SetSampleMaterial

SampleNumberDensity

Input

number

Optional

The number density of the sample in number of atoms per cubic angstrom if not set with SetSampleMaterial

Thickness

Input

number

0.2

The thickness of the sample in cm. Common values are 0.2, 0.5, 1.0, 1.5

NumberOfWavelengthPoints

Input

number

Optional

The number of wavelength points for which the numerical integral is calculated (default: all points)

ExpMethod

Input

string

Normal

Select the method to use to calculate exponentials, normal or a fast approximation (default: Normal). Allowed values: [‘Normal’, ‘FastApprox’]

ElementSize

Input

number

1

The size of one side of an integration element cube in mm

Description

This algorithm is a refinement of the FlatPlateAbsorption v1 algorithm for the specific case of an HRPD ‘slab can’ sample holder. It uses the aforementioned generic algorithm to calculate the correction due to the sample itself, using numerical integration. This is done using the standard height x width dimensions of an HRPD sample holder of 23 x 18 mm. Valid values of the thickness are 2,5,10 & 15 mm, although this is not currently enforced.

Further corrections are then carried out to account for the 0.125mm Vanadium windows at the front and rear of the sample, and for the aluminium of the holder itself (which is traversed by neutrons en route to the 90 degree bank). This is carried out using an analytical approximation for a flat plate, the correction factor being calculated as \(\rm{exp} \left( \frac{- \rho \left( \sigma_a \frac{ \lambda} {1.798} + \sigma_s \right) t}{\rm{cos} \, \theta} \right)\), where \(\lambda\) is the wavelength, \(\theta\) the angle between the detector and the normal to the plate and the other symbols are as given in the property list above. The assumption is that the neutron enters the plate along the normal.

Restrictions on the input workspace

The input workspace must have units of wavelength. The instrument associated with the workspace must be fully defined because detector, source & sample position are needed.

ChildAlgorithms used

The FlatPlateAbsorption v1 algorithm is used to calculate the correction due to the sample itself.

Usage

Example:

ws = CreateSampleWorkspace("Histogram",NumBanks=1,BankPixelWidth=1)
ws = ConvertUnits(ws,"Wavelength")
ws = Rebin(ws,Params=[1])
SetSampleMaterial(ws,ChemicalFormula="V")

wsOut = HRPDSlabCanAbsorption (ws,Thickness=0.2,ElementSize=2)

print('The created workspace has one entry for each spectra: {:d}'.format(wsOut.getNumberHistograms()))

Output:

The created workspace has one entry for each spectra: 1

Categories: AlgorithmIndex | CorrectionFunctions\AbsorptionCorrections

Source

C++ header: HRPDSlabCanAbsorption.h

C++ source: HRPDSlabCanAbsorption.cpp