Xray::Absorption::McMaster(3) Perl interface to the McMaster tables


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

See the documentation for Xray::Absorption for details.


This module is inherited by the Xray::Absorption module and provides access to the data contained in the 1969 McMaster tables.

The data in this module, commonly referred to as ``The McMaster Tables'', was originally published as

  Compilation of X-Ray Cross Sections
  W.H. McMster, N. Kerr Del Grande, J.H. Mallett, J.H. Hubbell
  National Bureau of Standards
  UCRL-50174 Section II Revision 1
  Available from National Technical Information Services L-3
  United States Department of Commerce

This can be a bit difficult to find. IIT's Galvin library has kindly made a scan of it available: http://www.gl.iit.edu/govdocs/resources/xray.html

The data is contained in a database file called mcmaster.db which is generated at install time from a flat text database of the McMster data. The data originally comes from mucal.f, a Fortran subroutine originally written by Dr. Pathikrit Bandhyapodhyay.

The required Chemistry::Elements module is available from CPAN in the miscellaneous modules section.


The McMaster data resource only includes K and L 1-3 edges. For light elements, it provides only a single L edge energy --- that for the L1 edge. For heavier elements it provides a single M energy, the energy of the M1 edge. It only supplies four generic fluorescence line energies, Kalpha, Kbeta, Lalpha, and Lbeta. In each case the energy provided is the energy of the brightest line of that sort.


  • Make sure this handles fluorescence lines which are in other resources, but not in this resource in a sensible manner.
  • What happens if you call "line_toggle" when this is loaded? How about when elam was loaded but then you switch to this one?