$$\renewcommand\AA{\unicode{x212B}}$$

CylinderPaalmanPingsCorrection v2¶

Summary¶

Calculates absorption corrections for a cylindrical or annular sample using Paalman & Pings format.

Properties¶

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).

Input

number

0.05

Input

number

0.1

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).

Input

number

0.15

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

Description¶

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.

Restrictions on the input workspace¶

The input workspace must have a fully defined instrument.

Energy transfer modes¶

The algorithm operates in different energy transfer modes, where the incident ($$\lambda_1$$) and the final ($$\lambda_2$$) wavelengths are defined as follows:

• Elastic : $$\lambda_1 = \lambda_2 = \lambda_{step}$$

• Direct : $$\lambda_1 = \lambda_{fixed}, \lambda_2 = \lambda_{step}$$

• Indirect : $$\lambda_1 = \lambda_{step}, \lambda_2 = \lambda_{fixed}$$

• Efixed : $$\lambda_1 = \lambda_2 = \lambda_{fixed}$$,

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.

Usage¶

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',
CanWorkspace=can,
CanChemicalFormula='V',
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


References¶

1. Kendig, A. P., and C. J. Pings. X‐Ray Absorption Factors for Cylindrical Samples in Annular Sample Cells Exposed to Incident Beams of Limited Width. Journal of Applied Physics 36.5 (1965): 1692-1698 doi: 10.1063/1.1703111