NAME¶
Xray::Absorption::Elam - Perl interface to the Elam tables
SYNOPSIS¶
use Xray::Absorption;
Xray::Absorption -> load("elam");
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 1999 Elam tables of absorption cross-sections and
line and edge energies.
The data in this module, here referred to as "The Elam Tables", will
be published real soon. The compilation of data is the work of Tim Elam
(tim.elam@nrl.navy.mil).
The data is contained in a database file called
elam.db which is
generated at install time from a flat text database of the Elam data. The data
is stored in a Storable archive using "network" ordering. This
allows speedy disk and memory access along with network and platform
portability.
The required "Chemistry::Elements", "Math::Spline", and
"Math::Derivative" modules are available from CPAN.
LITERATURE REFERENCES¶
K-shell fluorescence yield below Z=11 from new fits in J. H. Hubbell et. al., J.
Chem. Phys. Ref. Data, Vol. 23, No. 2, 1994, pp. 339-364.
Fluorescence yields and Coster-Kronig transition rates for K and L shells
Krause, J. Phys. Chem. Ref. Data, Vol. 8, No. 2, 1979, pp. 307-327. values for
wK, wL2,and f23 are from Table 1. (values for light atoms in condensed matter)
(note that this produces a large step in f23 values at z=30, see discussion in
reference section 5.3 L2 Subshell and section 7 last paragraph)
Values of wL1 for Z=85-110 and f12 for Z=72-96 from Krause were modified as
suggested by W. Jitschin, "Progress in Measurements of L-Subshell
Fluorescence, Coster-Kronig, and Auger Values", AIP Conference
Proceedings 215, X-ray and Inner-Shell Processes, Knocxville, TN, 1990. T. A.
Carlson, M. O. Krause, and S. T. Manson, Eds. (American Institute of Physics,
1990).
Fluorescence yields and Coster-Kronig transition rates for M shells Eugene J.
McGuire, "Atomic M-Shell Coster-Kronig, Auger, and Radiative Rates, and
Fluorescence Yields for Ca-Th", Physical Review A, Vol. 5, No. 3, March
1972, pp. 1043-1047.
Fluorescence yields and Coster-Kronig transition rates for N shells Eugene J.
McGuire, "Atomic N-shell Coster-Kronig, Auger, and Radiative Rates and
Fluorescence Yields for 38 <= Z <= 103", Physical Review A 9, No.
5, May 1974, pp. 1840-1851. Values for Z=38 to 50 were adjusted according to
instructions on page 1845, at the end of Section IV.a., and the last sentence
of the conclusions.
Relative emission rates, fits to low-order polynomials, low-Z extrapolations by
hand and eye data from Salem, Panossian, and Krause, Atomic Data and Nuclear
Data Tables Vol. 14 No.2 August 1974, pp. 92-109. M shell data is from T. P.
Schreiber and A. M. Wims, X-ray Spectrometry Vol. 11, No. 2, 1982, pp. 42-45.
Small, arbitrary intensities assigned to Mgamma and Mzeta lines.
Cross sections are in cm2/gm vs energy in eV. Berger and Hubbell above 1 keV,
Plechaty et. al. below.
Reference: M. J. Berger and J. H. Hubbell, XCOM: Photon Cross Sections on a
Personal Computer, Publication NBSIR 87-3597, National Bureau of Standards,
Gaithersburg, MD, 1987. Machine-readable data from J. H. Hubbell, personal
communication, Nov. 9, 1998. The data were updated as of May 7, 1998 (XCOM
Version 2.1).
Reference: Plechaty, E. F., Cullen, D. E., and Howerton,R.J, "Tables and
Graphs of Photon Interaction Cross Sections from 0.1 keV to 100 MeV Derived
from the LLL Evaluated Nuclear Data Library," Report UCRL-50400, Vol. 6,
Rev. 3, NTIS DE82-004819, Lawrence Livermore National Laboratory, Livermore,
CA. (1981). Machine-readable data from D. B. Brown, Naval Research Laboratory.
METHODS¶
The behaviour of the "get_energy" method in this module is a bit
different from other modules used by "Xray::Absorption". This
section describes methods which behave differently for this data resource and
methods offered by this module which are not available for other resources.
- "get_energy"
- Example:
$energy = Xray::Absorption -> get_energy($elem, $edge)
This behaves similarly to the "get_energy" method of othe
resources, except there are some differences regarding the syntax of
specifying $edge. When using the Elam data resource, $edge can be any of
K, L1-L3, M1-M5, N1-N7, O1-O7, or P1-P3. To get a fluorescence line, you
may use any Siegbahn or IUPAC symbol to specify the line. See the pod in
"Xray::Absorption" for details about these symbols. You may also
specify a "generic" Siegbahn symbol, such as Kalpha. The energy
that is returned depends on the value of an internal variable which may be
set using the "line_toggle" method. If the toggle is set to
"brightest", the energy of the brightest line of the class is
returned. In the case of "Kalpha", the energy or the Kalpha1
line is returned. If the toggle is set to "weighted" then the
intestity weighted average energy of all lines of the class is returned.
"weighted" is the default.
- "line_toggle"
- Toggle the method of computing a generic fluorescence line between
"weighted" and "brightest". This determines the
response to a use of "get_energy" like this:
$energy = Xray::Absorption -> line_toggle("brightest");
$energy = Xray::Absorption -> get_energy("cu", "kalpha");
$energy = Xray::Absorption -> line_toggle("wieghted");
$energy = Xray::Absorption -> get_energy("cu", "kalpha");
When "weighted" is selected, this returns the intensity weighted
energy of the various Kalpha lines. When "brightest" is chosen,
this returns the energy of the Kalpha1 line because that is the brightest
Kalpha line. The default is "weighted". Case does not matter for
the argument, but spelling does. If the argument is not spelled correctly
then the calculation method is not toggled.
- "fluor_yield"
- Return the fluorescence yield for an atomic symbol and edge
$fyield = Xray::Absorption -> fluor_yield("cu", "k");
The value returned is the probability of an fluorescent x-ray being emitted
for an absorption event. Data comes from M. O. Krause, J. Phys. Chem. Ref.
Data 8, 307 (1979) Returns -1 for non-interpretable input
- "edge_jump"
- Return edge jump ratio for an atomic symbol and edge
$jump = Xray::Absorption -> edge_jump("cu", "k");
The value returned is the ratio of the above-edge absorption coefficient to
the below-edge coefficient
- "get_intesity"
- Example:
$intensity = Xray::Absorption -> get_intesity($elem, $symbol)
Get the relative amount of the line specified by $symbol for the element
$elem. $elem can be a two letter symbol, a full name, or a Z number.
$symbol may be either a Siegbahn or IUPAC symbol. The intesities are such
that all lines of a type (e.g. all Kalpha lines) have intesities which sum
to 1. If $elem or $symbol is not recognized, then this returns 0.
- "cross_section"
- Example:
$xsec = Xray::Absorption -> cross_section($elem, $energy, $mode);
@xsec = Xray::Absorption -> cross_section($elem, \@energy, $mode);
The $mode argument is different here than for the other resources. The
options are "xsec", "photo", "coherent" and
"incoherent", telling this method to return the full
cross-section or just the photoelectric, coherent, or incoherent portions.
The values for all cross-sections are computed using spline interpolation as
described in the paper by Elam, Ravel, and Siebert.
EDGE AND LINE ENERGIES¶
The Elam data resource provides a fairly complete set of edge and line energies.
Any edge tabulated on the Gwyn William's Table of Electron Binding Energies
for the Elements (that's the one published by NSLS and on the door of just
about every hutch at NSLS) is in the Elam data resource. Additionally, a large
but not exhaustive collection of line energies is tabulated. Every line in the
table in the
SYMBOLS FOR FLUORESCENCE LINES section of the
"Absorption.pm" pod is included in the Elam tables. A reasonable
value for the relative line intensity if also included in this table. See (the
elam reference) for a discussion of which lines were included in the tables
and how the intensities were calculated.
BUGS AND THINGS TO DO¶
- •
- The "weighted" option for "get_energy" is not quite
right in that it counts in lines from different edges. While that might be
appropriate, there is some question as to the relative weights of lines
from different edges. So a better solution would be to only use lines from
the edge directly below the chosen energy.
AUTHOR¶
Bruce Ravel, bruce@phys.washington.edu
http://feff.phys.washington.edu/~ravel/software/Absorption/