SYNOPSIS

   use Xray::Absorption;
   Xray::Absorption -> load("cl");

See the documentation for Xray::Absorption for details.

DESCRIPTION

This module is inherited by the Xray::Absorption module and provides access to the data contained in the Cromer-Liberman tables of anomalous scattering factors and line and edge energies.

The data in this module and the Fortran code which it calls as a shared library, referred to as \*(L"The \s-1CL\s0 Tables\*(R", was published as

S. Brennan and P.L. Cowen, Rev. Sci. Instrum, vol 63, p.850 (1992)

More information about these data is available on the Web at

http://www.slac.ssrl.stanford.edu/absorb.html.

The values for the anomalous scattering factors are calculated by calls to the Ifeffit library by Matt Newville.

The values of edge and line energies are contained in a database file called cl.db which is generated at install time from the flat text files of the these data. The data is stored in a Storable archive using \*(L"network\*(R" ordering. This allows speedy disk and memory access along with network and platform portability.

The required \*(C`File::Spec\*(C', \*(C`Chemistry::Elements\*(C', \*(C`Storable\*(C' are available from \s-1CPAN\s0.

METHODS

The behaviour of the methods in this module is a bit different from other modules used by \*(C`Xray::Absorption\*(C'. This section describes methods which behave differently for this data resource. Example: $energy = Xray::Absorption -> get_energy($elem, $edge); This behaves similarly to the \*(C`get_energy\*(C' method of the other resources. When using the \s-1CL\s0 data resource, $edge can be any of K, L1-L3, M1-M5, N1-N7, O1-O7, or P1-P3. Line energies are not supplied with the \s-1CL\s0 data set. The line energies from the McMaster tables are used. Example: $xsec = Xray::Absorption -> cross_section($elem, $energy, $mode);

@xsec = Xray::Absorption -> cross_section($elem, \@energy, $mode); For this data resource, one call in list context is considerably faster than repeated calls in scalar context. It is well worth the trouble of organizing your code to make a single call in list context and store the results for later use. This behaves slightly differently from the similar method for the McMaster and Elam resources. The \s-1CL\s0 tables are actually tables of anomalous scattering factors and do not come with coherent and incoherent scattering cross-sections. The photo-electric cross-section is calculated from the imaginary part of the anomalous scattering by the formula mu = 2 * r_e * lambda * conv * f_2 where, \*(C`r_e\*(C' is the classical electron radius, lamdba is the photon wavelength, and conv is a units conversion factor. r_e = 2.817938 x 10^-15 m lambda = 2 pi hbar c / energy hbar*c = 1973.27053324 eV*Angstrom conv = Avagadro / atomic weight = 6.022045e7 / weight in cgs The $mode argument is different here than for the other resources. The options are \*(L"xsec\*(R", \*(L"f1\*(R", and \*(L"f2\*(R", telling this method to return the cross-section or the real or imaginary anomalous scattering factor, respectively. The values for f1 and f2 are computed by linear interpolation of a semi-log scale. Care is taken to avoid the discontinuities at the edges. Because the \s-1CL\s0 tables do not include the coherent and incoherent scattering terms, the value returned by \*(C`get_energy\*(C' is a bit smaller using the \s-1CL\s0 tables than using the others.

EDGE AND LINE ENERGIES

The \s-1CL\s0 data resource provides a fairly complete set of edge energies. Any edge tabulated on the Gwyn William's Table of Electron Binding Energies for the Elements (that's the one published by \s-1NSLS\s0 and on the door of just about every hutch at \s-1NSLS\s0) is in the \s-1CL\s0 data resource. The \s-1CL\s0 data comes with the same, limited set of fluorescence energies as McMaster.

BUGS AND THINGS TO DO

None that I know about...

AUTHOR

Bruce Ravel, [email protected] http://feff.phys.washington.edu/~ravel/software/Absorption