\(\renewcommand\AA{\unicode{x212B}}\)
CuboidGaugeVolumeAbsorption v1¶
Summary¶
Calculates binbybin correction factors for attenuation due to absorption and (single) scattering within a cuboid shaped ‘gauge volume’ of a generic sample. The sample shape can be defined by, e.g., the CreateSampleShape algorithm.
See Also¶
Properties¶
Name 
Direction 
Type 
Default 
Description 

InputWorkspace 
Input 
Mandatory 
The X values for the input workspace must be in units of wavelength 

OutputWorkspace 
Output 
Mandatory 
Output workspace name 

ScatterFrom 
Input 
string 
Sample 
The component to calculate the absorption for (default: Sample). Allowed values: [‘Sample’, ‘Container’, ‘Environment’] 
AttenuationXSection 
Input 
number 
Optional 
The ABSORPTION crosssection, at 1.8 Angstroms, for the sample material in barns. Column 8 of a table generated from http://www.ncnr.nist.gov/resources/nlengths/. 
ScatteringXSection 
Input 
number 
Optional 
The (coherent + incoherent) scattering crosssection for the sample material in barns. Column 7 of a table generated from http://www.ncnr.nist.gov/resources/nlengths/. 
SampleNumberDensity 
Input 
number 
Optional 
The number density of the sample in number of atoms per cubic angstrom if not set with SetSampleMaterial 
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’] 
EMode 
Input 
string 
Elastic 
The energy mode (default: elastic). Allowed values: [‘Elastic’, ‘Direct’, ‘Indirect’] 
EFixed 
Input 
number 
0 
The value of the initial or final energy, as appropriate, in meV. Will be taken from the instrument definition file, if available. 
SampleHeight 
Input 
number 
Mandatory 
The height of the plate in cm 
SampleWidth 
Input 
number 
Mandatory 
The width of the plate in cm 
SampleThickness 
Input 
number 
Mandatory 
The thickness of the plate in cm 
ElementSize 
Input 
number 
1 
The size of one side of an integration element cube in mm 
Description¶
This algorithm uses a numerical integration method to calculate attenuation factors resulting from absorption and single scattering within a cuboid region of a sample with the dimensions and material properties given.
The gauge volume generated will be an axisaligned cuboid centred on the sample (centre) position. The sample must fully enclose this cuboid. If this does not meet your needs you can instead use the general AbsorptionCorrection v1 algorithm in conjunction with DefineGaugeVolume v1.
Factors are calculated for each spectrum (i.e. detector position) and wavelength point, as defined by the input workspace. The sample is divided up into cuboids having sides of as close to the size given in the ElementSize property as the sample dimensions will allow. Thus the calculation speed depends linearly on the total number of bins in the workspace and goes as \(\rm{ElementSize}^{3}\).
Path lengths through the sample are then calculated for the centrepoint of each element and a numerical integration is carried out using these path lengths over the volume elements.
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. A sample shape must have been defined using, e.g., CreateSampleShape v1 and the gauge volume must be fully within the sample.
Usage¶
Example: A simple spherical sample with a cuboid gauge volume
#setup the sample shape
sphere = '''<sphere id="samplesphere">
<centre x="0" y="0" z="0"/>
<radius val=".2" />
</sphere>'''
ws = CreateSampleWorkspace("Histogram",NumBanks=1,BankPixelWidth=1)
ws = ConvertUnits(ws,"Wavelength")
ws = Rebin(ws,Params=[1])
CreateSampleShape(ws,sphere)
SetSampleMaterial(ws,ChemicalFormula="V")
#restrict the number of wavelength points to speed up the example
wsOut = CuboidGaugeVolumeAbsorption(ws, NumberOfWavelengthPoints=5, ElementSize=3,
SampleHeight=1,SampleWidth=2,SampleThickness=3)
print("The created workspace has one entry for each spectra: {}".format(wsOut.getNumberHistograms()))
Output:
The created workspace has one entry for each spectra: 1
Categories: AlgorithmIndex  CorrectionFunctions\AbsorptionCorrections
Source¶
C++ header: CuboidGaugeVolumeAbsorption.h
C++ source: CuboidGaugeVolumeAbsorption.cpp