\(\renewcommand\AA{\unicode{x212B}}\)
Table of Contents
Calculates absorption corrections for a cylindrical or annular sample using Paalman & Pings format.
Name | Direction | Type | Default | Description |
---|---|---|---|---|
SampleWorkspace | Input | MatrixWorkspace | Mandatory | Name for the input Sample workspace. |
SampleChemicalFormula | Input | string | Sample chemical formula | |
SampleCoherentXSection | Input | number | 0 | The coherent cross-section for the sample material in barns. To be used instead of Chemical Formula. |
SampleIncoherentXSection | Input | number | 0 | The incoherent cross-section for the sample material in barns. To be used instead of Chemical Formula. |
SampleAttenuationXSection | Input | number | 0 | The absorption cross-section for the sample material in barns. To be used instead of Chemical Formula. |
SampleDensityType | Input | string | Mass Density | Use of Mass density or Number density for the sample. Allowed values: [‘Mass Density’, ‘Number Density’] |
SampleNumberDensityUnit | Input | string | Atoms | Choose which units SampleDensity refers to. Allowed values: [Atoms, Formula Units]. Allowed values: [‘Atoms’, ‘Formula Units’] |
SampleDensity | Input | number | 0.1 | The value for the sample Mass density (g/cm^3) or Number density (1/Angstrom^3). |
SampleInnerRadius | Input | number | 0.05 | Sample inner radius |
SampleOuterRadius | Input | number | 0.1 | Sample outer radius |
CanWorkspace | Input | MatrixWorkspace | Name for the input Can workspace. | |
CanChemicalFormula | Input | string | Can chemical formula | |
CanCoherentXSection | Input | number | 0 | The coherent cross-section for the can material in barns. To be used instead of Chemical Formula. |
CanIncoherentXSection | Input | number | 0 | The incoherent cross-section for the can material in barns. To be used instead of Chemical Formula. |
CanAttenuationXSection | Input | number | 0 | The absorption cross-section for the can material in barns. To be used instead of Chemical Formula. |
CanDensityType | Input | string | Mass Density | Use of Mass density or Number density for the can. Allowed values: [‘Mass Density’, ‘Number Density’] |
CanNumberDensityUnit | Input | string | Atoms | Choose which units CanDensity refers to. Allowed values: [Atoms, Formula Units]. Allowed values: [‘Atoms’, ‘Formula Units’] |
CanDensity | Input | number | 0.1 | The value for the can Mass density (g/cm^3) or Number density (1/Angstrom^3). |
CanOuterRadius | Input | number | 0.15 | Can outer radius |
BeamHeight | Input | number | 3 | Beam height |
BeamWidth | Input | number | 2 | Beam width |
StepSize | Input | number | 0.002 | Step size |
Interpolate | Input | boolean | True | Interpolate the correction workspaces to match the sample workspace |
NumberWavelengths | Input | number | 10 | Number of wavelengths for calculation |
Emode | Input | string | Elastic | Energy transfer mode. Allowed values: [‘Elastic’, ‘Indirect’, ‘Direct’, ‘Efixed’] |
Efixed | Input | number | 0 | Analyser energy (mev). By default will be read from the instrument parameters. Specify manually to override. This is used in energy transfer modes other than Elastic. |
OutputWorkspace | Output | WorkspaceGroup | Mandatory | The output corrections workspace group |
Calculates absorption corrections for a cylindrical or annular sample giving output in the Paalman and Pings absorption factors: \(A_{s,s}\) (correction factor for scattering and absorption in sample), \(A_{s,sc}\) (scattering in sample and absorption in sample and container), \(A_{c,sc}\) (scattering in container and absorption in sample and container) and \(A_{c,c}\) (scattering and absorption in container). This uses the equations from Kendig Pings 1965 which account for partially illuminated samples.
The input workspace must have a fully defined instrument.
The algorithm operates in different energy transfer modes, where the incident (\(\lambda_1\)) and the final (\(\lambda_2\)) wavelengths are defined as follows:
where \(\lambda_{fixed}\) is computed from the Efixed value corresponding to the monochromator or the analyser, and \(\lambda_{step}\) iterates equidistantly over the wavelength points in the input workspace x-axis, controlled by NumberWavelengths property.
Therefore, in all the modes except Efixed, the input workspaces must have the x-axis unit of Wavelength. In all the modes except Elastic, Efixed value is needed. By default it will be attempted to be read from the instrument parameters, but can be overridden by the homonym property. In the Efixed mode the NumberWavelengths and Interpolate options will be ignored.
Example:
# Create a sample workspace
sample = CreateSampleWorkspace(NumBanks=1, BankPixelWidth=1,
XUnit='Wavelength',
XMin=6.8, XMax=7.9,
BinWidth=0.1)
# Copy and scale it to make a can workspace
can = CloneWorkspace(InputWorkspace=sample)
can = Scale(InputWorkspace=can, Factor=1.2)
# Calculate absorption corrections
corr = CylinderPaalmanPingsCorrection(SampleWorkspace=sample,
SampleChemicalFormula='H2-O',
SampleInnerRadius=0.05,
SampleOuterRadius=0.1,
CanWorkspace=can,
CanChemicalFormula='V',
CanOuterRadius=0.15,
BeamHeight=0.1,
BeamWidth=0.1,
StepSize=0.002,
Emode='Indirect',
Efixed=1.845)
print('Correction workspaces: {}'.format((', '.join(corr.getNames()))))
Output:
Correction workspaces: corr_ass, corr_assc, corr_acsc, corr_acc
Python: CylinderPaalmanPingsCorrection2.py (last modified: 2020-03-27)