Implements the Bote-Salvat Ionization Cross Section

These functions deliver the total cross section for electron impact ionization of K, L and M sub-shells of neutral atoms of the elements from hydrogen (Z=1) to einsteinium (Z=99). The model is a parameterization of numerical cross sections computed with the distorted-wave and the plane-wave first-Born approximations.


  • D. Bote and F. Salvat, Calculations of inner-shell ionization by electron impact with the distorted-wave and plane-wave Born approximations, Phys. Rev. A77, 042701 (2008).
  • D. Bote et al., Cross sections for ionization of K, L and M shells of atoms by impact of electrons and positrons with energies up to 1 GeV. Analytical formulas, Atomic Data and Nuclear Data Tables 95.6 (2009) 871-909.

Using BoteSalvatICX

The Jupyter notebook in docs/src provides examples.

The package was designed to minimize dependencies while providing a focused set of functionality.

BoteSalvatICX.edgeenergy Method
edgeenergy(::Type{BoteSalvat2009}, z::Integer, subshell::Int)

The default value for the edge energy as provided by Bote & Salvat (in eV).

  • z is the atomic number 1:99
  • subshell is 1->K, 2->L₁, 3->L₂, ..., 9->M₅
BoteSalvatICX.hasedge Method
hasedge(::Type{BoteSalvat2009}, z::Integer, subshell::Int)

Is data available for the the specified element and sub-shell?

  • z is the atomic number 1:99
  • subshell is 1->K, 2->L₁, 3->L₂, ..., 9->M₅
BoteSalvatICX.ionizationcrosssection Function
     edgeenergy::AbstractFloat = edgeenergy(BoteSalvat2009, z, subshell),

Computes the inner sub-shell ionization cross section for energetic electrons. Asserts if z or subshell is out of range. Use is hasedge(BoteSalvat2009, ...) to determine whether an element/sub-shell pair is available.

  • z : The atomic number z in the range 1:99
  • subshell : The atomic sub-shell being ionized 1->K, 2->L₁, 3->L₂, ..., 9->M₅
  • energy : The kinetic energy of the incident electron in eV
  • edgeenergy : The edge energy of the sub-shell in eV