absco - absorption corrections for X-ray and neutron diffraction
#include <absco.h>
void absco_slab ( double *A_S_SC, double *A_C_SC, double *A_C_C, double two_theta, double mu_f_over_i, double backscattered, double orientation, double effthick_sample, double effthick_cell );
void absco_tube ( double *A_S_SC, double *A_C_SC, double *A_C_C, double two_theta, double mu_f_over_i, double backscattered, double effthick_sample, double effthick_inner_cyl, double effthick_outer_cyl, double illumination, int meshsize );
Definition of absorption factors.
In a scattering experiment, self absorption leads to a reduction of measured count rates:
M_S = A_S_S I_S
where
I_S = scattering from sample S in absence of self-absorption
("ideal scattering"),
M_S = scattering from sample S in presence of self-absorption
("measured scattering"),
A_S_S = self-absorption factor.
More generally, we write
A_X_Y = absorption factor for scattering in X, absorption in Y,
where Y must be a superset of X.
Usually, a sample S is contained in a cell C, and scattering by the empty cell is measured separately:
M_C = A_C_C I_C M_SC = A_C_SC I_C + A_S_SC I_S
In consequence, the ideal scattering of the sample can be calculated from M_SC and M_C:
I_S = (1/A_S_SC) M_SC - (A_C_SC/A_S_SC/A_C_C) M_C.
The routines described here compute A_S_SC, A_C_SC and A_C_C for different sample geometries.
Effective thickness.
Transmissions are given by T=exp(-mu d) where
mu = attenuation coefficient d = path length
At the approximation level chosen here, the factors mu and d enter only through the product mu*d=-ln(T), which shall be called the effective thickness t.
In inelastic scattering processes, attenuation coefficients can change. Here, all effective thicknesses are assumed to be based on the attenuation coefficient mu_i of the incoming beam. To adjust for the attenuation mu_f of the outgoing beam, a parameter mu_f_over_i=mu_f/mu_i is required.
Calculation of absorption factors.
An absorption factor A_X,Y is calculated as <exp(-t_i(r)-t_f(r))> where
<..> = average over scattering locations r in Y t_i(r) = effective thickness for incoming particles t_f(r) = effective thickness for outgoing particles
Effective thicknesses refer to paths between r and the surface of X where the particle enters or leaves.
Output pointers.
Absorption factor for scattering in S, absorption in S an C.
Absorption factor for scattering in C, absorption in S an C. If it is a null pointer, all cell-related computations are skipped.
Absorption factor for scattering in C, absorption in C. Must be a null pointer iff A_C_SC is a null pointer.
Generic input arguments.
The scattering angle.
Ratio of attenuation coefficients for scattered vs incoming particles, mu_f/mu_i. Usually 1, except for deeply inelastic scattering.
The probability that a neutron, backscattered from the analyzer, traverses the sample a second time. Usually 1 for exact backscattering, 0 for all other instruments.
Input arguments for slab geometry.
Slab orientation, in degrees. It's the angle between the transmitted beam and the slab plane. Typically, it varies between 45 deg (scattering mostly in reflection) and 135 deg (scattering mostly in transmission).
Effective thickness of the sample, for a perpendicular beam.
Effective thickness of the cell, for a perpendicular beam.
Function arguments for cylinder geometry.
Effective thickness of one sample layer, for a perpendicular beam. This is ln(-T)/2 where T is the transmission of a collimated beam.
Effective thickness of one layer of the inner cylinder, for a perpendicular beam.
Effective thickness of one layer of the outer cylinder, for a perpendicular beam.
Illuminated fraction (beam width / cylinder width).
Number of mesh points per quarter circle, for numeric integration. A value of 50 should be sufficient for all practical purposes.
On error, a message is written to stderr, and the program exits with errno
Main web site: http://joachimwuttke.de/absco
Download location: http://joachimwuttke.de/src
Development snapshot: http://iffwww.iff.kfa-juelich.de/~wuttke/jwu4n.git
H L Ritter, R L Harris, and R E Wood: On the X‐Ray Absorption Correction for Encased Diffracters in the Debye‐Scherrer Technique. J Appl Phys 22, 169-176 (1951).
H H Paalman and C J Pings: Numerical Evaluation of X-Ray Absorption Factor for Cylindrical Samples and Annular Sample Cells. J Appl Phys 33, 8, 2635-2639 (1962).
J Wuttke: Self-absorption coefficient for tubular samples. Physica B 292, 194-195 (2000).
The code still needs independent verification.
Joachim Wuttke <j.wuttke@fz-juelich.de>
Copyright (C) 2011 Joachim Wuttke.
Software: GNU General Public License (GPL).
This documentation: Creative Commons Attribution Share Alike.