A souped-up periodic table for the absorption spectroscopist

HEPHAESTUS is a collection of several simple graphical interfaces to the Xray::Absorption package and other tables of atomic data.

  In his workshop he has handmaidens he has forged out of gold
  who can move and who help him in his work. ...  With Athena,
  [Hephaestus is] important in the life of the city.  The two
  [are] the patrons of handicrafts, the arts which along with
  agriculture are the support of civilization.
                               Mythology, Edith Hamilton


HEPHAESTUS is a container for several utilities based on the periodic table of elements and on tables of absorption coefficients. These utilities are generally of interest to the X-ray absorption spectroscopist and are of particular value at the synchrotron.

The HEPHAESTUS window consists of two parts. On the left is a button box containing the buttons used to access the different utilities that HEPHAESTUS offers. On the right is the container displaying whichever utility is selected. To change utilities, simply click on one of the buttons in the button box.

The Units, Resource, and Xsection menus contains selection buttons. The Units menu sets the units used in the various utilities. The choices are energy in electron volts (eV) or wavelength in Å . This sets how units are displayed in the absorption data, formula, and ion chamber utilities. The anomalous scattering and chemical data utilities do not use this setting. The unit setting is also a handy calculator for eV to wavelength and back. Simply type a number into one of the appropriate entry boxes and switch units to do the calculation.

The Resource buttons determine which tables of absorption data will be used for calculations in the absorption data, formula, and ion chamber utilities. HEPHAESTUS is a front end to the Xray::Absorption perl module, which provides a uniform interface to absorption data from a wide variety of sources. Calculations using the various resources should only differ by a few percent, but it may be useful to know what those differences are.

The Xsection buttons tell HEPHAESTUS to make computations in the Absorption and Formula pages using the total, photoelectric, coherent, or incoherent cross-sections. This is fully supported when using the Elam, McMaster, and Shaltout resources. The Chantler resource combines the coherent and incoherent cross-sections into a single scattering cross-section, thus the scattering cross-section is used if either the coherent or incoherent buttons are selected in the Xsection menu. The other two do not include data about the coherent and incoherent cross-sections. The total cross-section is the sum of the photoelectric, coherent, and incoherent cross-sections. The ion chamber utility uses the full cross-section.

Periodic Table of Absorption Data

This utility displays edge and fluorescence line energies for the elements. Simply click on an element in the periodic table and the edge and line energies will be displayed. Some of the data resources have incomplete compilations of edge and/or line energies. For example, the Cromer-Liberman and Shaltout resources do not come with line energies. In those two cases, a minimal set of line energies are imported from the McMaster resource so that various certain can reasonably be made. The Elam resource (which is the default) contains a thorough list of edge and line energies.

The filter plot helps you to determine an appropriate material as a fluorescence filter. It assumes that you are measuring the K edge of any element below La and the L3 edge for all other elements. When you click on an element, HEPHAESTUS makes a good guess as to the best filter material. You can change the filter material by entering another element or by right-clicking on an element. If you enter a string that is not an element symbol, the box with the filter element will turn red when you attempt to make the filter plot. The fluorescence lines are plotted as Gaussians. The line widths are ad hoc and without physical meaning, although the positions of the Gaussian centroids and the heights of the peaks (one relative to the other) are taken from the Elam tables -- the sole point of this plot is to show the position of the line relative to the edges of the absorber and filter.

The rules for selecting the filter element are

  1. For element below Z=38, assume the K edge is being measured and use the Z-1 element.
  2. For element between Z=39 and 57, assume the K edge is being measured and use the Z-2 element.
  3. Use Br for a Rb absorber because Kr is a silly filter material.
  4. Use Rh for a Ru absorber because nobody wants a Tc filter!
  5. Use I for a Ba absorber because Xe is also a silly filter material.
  6. For elements above Z=57, assume the LIII edge is being measured. Use the first element whose K edge is more than 90 eV above the Lα1 line of the absorber.
  7. Use Rb for a U or Np absorber because Kr is still a silly filter material.

For elements below Z=24 (chromium), no filter choice is given. Filters for lower-Z elements are not used because no element exists with a K-edge between the line and absorption energies of the absorber.

The absorption length calculation on this utility -- a feature of earlier versions -- has been retired. All the functionality of that calculation is available on the formulas utility. Clicking an element on this page or on the Data utility inserts that element and its density onto the Formulas utility.


(Left) The periodic table of absorption data. (Right) Plot of the absorption edge of the filter element compared to the dominant lines of the absorbing element.

If you click on an absorption edge in the table of edge energies, the lines associated with that edge will be highlighted.

Absorption Lengths of Compounds

This utility computes absorption lengths of compounds using the supplied photon energy along with the chemical formula and density. There is a list of common materials, their formulas, and their densities. Clicking on that list inserts those known data into the appropriate entry boxes. Clicking the “Compute” button will display some information about the materials in the Results box, including the absorption length. If you know the formula and density of your material, you can enter those then click the “Compute” button. Hitting the return key while focus is on any of the formula, density, or energy entry boxes is the same as clicking the “Compute” button.

The formulas can be written with quite a bit of flexibility. Parens and square brackets, as commonly used in chemistry notation, will be interpreted correctly. Subscripted numbers are simply entered in line next to the element symbol or parenthesized group that they modify.

Element symbols must be in capitalized form. That is, “Na” is acceptable, but “na”, “NA”, and “nA” are not. The formula parser uses proper capitalization to determine stoichiometry.

Chemical formulas can also be written using the notation of TeX or INSPEC. This is particularly handy for cutting and pasting from other programs. PbTiO3, PbTiO$_3$, and PbTiO/sub 3/ will be interpreted identically.

Absorption lengths of compounds.

To compute the attenuation A of the beam from the absorption length, use this formula:

A = exp( -1 * x / t )

where x is the sample thickness and t is the absorption length.

For dense materials, the mass required to make a sample that is 1 absorption length thick and 1 square centimeter wide is also reported. This mass is computed for incident photons of the specified energy. To determine the appropriate mass for your sample, multiply by the actual area of your sample and by the desired thickness in absorption lengths. This calculation is merely the product of the density and the absorption length.

User-supplied data

You can maintain a personal database of materials, their formulas, and densities. If you wish to define a new material or update the data for one of the built-in materials, just click the Add button. This will prompt you for the name of the material then insert that material into the list on the left as well as save it in a file for future use. Any material, including one of the built-ins, can be removed by clicking the Remove button.

Density and molarity

An alternate calculation is made by selecting “Molarity” from the density option menu. When molarity is chosen, the calculation will be made on the solute of a solution of the specified molarity. In that case, the mass of the formula unit of the sample will be computed and the specified molarity will be used to determine the density of the solute in the solution. When considering a solvated sample, don't forget that the solvent also absorbs photons.

Computing sample length for unit edge step

If any of the elements in the material has a K or L edge energy within 100 eV of the value supplied in the energy box, the sample length for unit edge step will be calculated. This is done by calculating the total absorption 50 volts above and 50 volts below the edge and subtracting the difference. This difference is converted into the sample length required to make a transmission edge step of 1.

This calculation will be suspect in the odd case where the material has two absorption edges within 50 volts.

When preparing a sample for a transmission measurement, both the absorption length and the unit edge step length should be considered.

Periodic Table of Chemical Data

This utility is quite simple. Click on an element and several interesting factoids will be reported. That's it.

Periodic table of chemical data

Absorption of Ion Chambers

This utility tells you how much of the beam you ion chambers will absorb at a chosen energy and when filled with a combination of two gases. The selection buttons allow you to choose from several standard detector lengths or a length that you provide. The sliders are used to adjust the fractions of two gasses in the chamber. Only the common gasses (He, N2, Ne, Ar, Kr, and Xe) are available. As you slide the sliders back and forth to change the mixing fractions, the percentage absorption is reported in the space below the sliders.

The third slider allows you to change the pressure in the ion chamber for the calculation. The pressure slider is measured in Torr. One atmosphere is 760 Torr.

Absorption of ion chambers

One shortcoming of this utility is that the percentage is not updated as you type the photon energy or the user supplied chamber length. After changing one of those values, hit the return key or tweak any slider to update the calculation.

The photon flux calculation will tell you the flux incident upon the detector using the formula for voltage measured at a given photon energy using a current-to-voltage amplifier (such as a Keithley 527 or 528)

         e * energy * flux * gain
    V = --------------------------

The ionization energy is about 32 volts for most gasses and the electron charge e is about 1.6E-19 Coulombs. The flux calculation uses the result for percent absorption, thus this result is the net flux upon the chamber and not the measured flux.

A rule of thumb that sometimes works for the I0 chamber is to choose gases such that about 10% of the incident photons are absorbed. That is enough for a good measurement while still leaving most of the photons to interact with the sample. For the transmission chamber, a good rule of thumb is to choose gases that absorb about 2/3 to 3/4 of the photons. This spreads the measurement out more or less evenly over the length of the capacitor plate and still allows some photons to reach the reference chamber. The 2/3 to 3/4 rule works well for the gases in the fluorescence chamber as well.

Emission Line Transitions

This displays a chart of the electronic transitions corresponding to the various fluorescence emission lines. There is no interactive component to this page. The chart follows Figure 1.1 in the Center for X-Ray Optics X-Ray Data Booklet.

Chart of emission line transitions

Edge and Line Finders

These utility displays a list of absorption edges or fluorescence lines in order of increasing energy. Clicking the button centers the view of the list box around the edge just below the specified energy. This tool is useful in any situation where you need to know what edge or line is in the vicinity of the specified energy.

It may be useful to know what edge energy is at an integer multiple of the specified energy. For instance, you may be suspicious that a harmonic of the monochromator is exciting an edge in your sample. Suppose you are seeing a feature at about 6000 eV in your spectrum while using a Si(111) monochromator. You might then suspect that the third harmonic at 18000 eV (the Zr K edge is at 17998 eV) is the culprit. To check, enter 6000 in the entry box and click the third harmonic button on the edge finder page.

The information in the edge finder list is the element symbol, the edge symbol, and edge energy. The information in the line finder list is the element symbol, the full Siegbahn line symbol, the IUPAC line designation, a measure of the line intensity, and the line energy. The intensity values are such that all lines of a type (e.g. all K- α lines) have intensities which sum to 1. Thus these numbers are -- for several reasons -- a very crude measure of how different lines which are nearby in energy might relate in a real measurement.

Hitting the return key while the focus is on the energy entry box in either page is the same as clicking the “Find it” button.

These utilities use line and edge energies from the Elam data resource regardless of which resource you have chosen to use in other utilities.


(Left) The edge finder (Right) The line finder

Complex Scattering Factors for the Elements

This utility plots the complex corrections to the scattering factors for the elements. i.e. the energy dependent f'(E) and f"(E) terms. These functions are tabulated from the Cromer-Liberman calculations for the isolated, neutral atom. Solid state effects are ignored.

To make a plot, click and element. There are selection buttons for plotting one or both parts of the complex scattering function. There are also selection buttons for setting whether the next plot will be a new plot of if it will add to the previous plot.

You can set the energy range of the plot along with the spacing of the grid in energy that is used to interpolate from the tabulated values. Finally, you have the option of convoluting the scattering functions by a Lorentzian of a specified width or, by clicking the checkbutton, using the natural line width of the element. Any negative value for the line width will be set to the natural line width.

The most recently displayed complex scattering function can be saved to a file by clicking the button at the bottom of the screen. Only the most recent element and only those parts that were displayed in the most recent plot is saved. The energy range and grid size of the most recent display is used in the output file. To change the element, energy axis, or the parts of the function for a saved file, it is necessary to redisplay the function using the desired parameters.


(Left) Complex scattering factors for the elements (Right) Plotting the complex scattering factors of Ti and Ba

Initialization file

The initialization file is C:Program Files\Ifeffit\horae\hephaestus\hephaestus.ini on Windows and ~/.horae/hephaestus.ini on unix or Mac.

You can edit this file to change the startup values of several of the parameters used in HEPHAESTUS, including the utility shown at startup and the initial values of the data resource, units, and cross section.

The most important use of the initialization file is to enable or disable the use of IFEFFIT in HEPHAESTUS. Set the  ♦General —› ifeffit  parameter to 1 or 0 enable or disable the use of IFEFFIT. Disabling IFEFFIT removes the f'(E)/ f"(E) utility from the button bar, disables the Cromer-Liberman entry in the Resources menu, and disables the filter plotting feature on the absorption page.

So why would you want to do that? Well, importing IFEFFIT into HEPHAESTUS increases its memory use dramatically. This may be undesirable on a beamline's data collection computer. The IFEFFIT-less HEPHAESTUS is quite a bit more slender.

Keyboard shortcuts

    Shortcut        effect
    Control-1       display the absorption data utility
    Control-2       display the formulas utility
    Control-3       display the chemical data utility
    Control-4       display the ion chamber utility
    Control-5       display the emission line transitions chart
    Control-6       display the edge finder utility
    Control-7       display the line finder utility
    Control-8       display the anomalous scattering utility
    Control-0       display the document
    Control-q       quit
    Alt-F           post the File menu
    Alt-U           post the Units menu
    Alt-R           post the Resources menu
    Alt-X           post the Cross Sections menu
    Alt-H           post the Help menu

Bugs and Missing Features

Every calculation at high energy is inaccurate in HEPHAESTUS. Xray::Absorption does not correctly handle the mass-energy absorption coefficients at high energy, although the ion chamber utility does attempt a (very) crude correction.

More types of information can be added to the chemical data utility. If there is something you would like to see, you should send the data in an easily readable format (i.e. plain text -- spreadsheet or word processor files should not be considered “easily readable”). Merely suggesting new data types is unlikely to have any effect. Supplying the data is highly likely to have an effect.

My wish list includes a utility for calculating mirror critical angles and other tools for reflectivity, including auger/fluorescence branching ratios in one of the periodic table utilities, and providing the Berger/Hubble XCOM tables as one of the data resources.


The absorption data resources all have literature references.