\(\renewcommand\AA{\unicode{x212B}}\)
HRPDSlabCanAbsorption v1¶
Summary¶
Calculates attenuation due to absorption and scattering in an HRPD ‘slab’ can.
See Also¶
Properties¶
Name |
Direction |
Type |
Default |
Description |
---|---|---|---|---|
InputWorkspace |
Input |
Mandatory |
||
OutputWorkspace |
Output |
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