/BoteSalvatICX.jl

Implements the Bote-Salvat ionization cross section model for electrons

Primary LanguageJuliaThe UnlicenseUnlicense

BoteSalvatICX.jl

Documentation Build Status

Implements the Bote-Salvat ionization cross section model described in

  • 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).
  • Bote, David, 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.

This is a very lean implementation that only handles electrons.

Elements are identified by atomic number, z.

Sub-shells are identified by integer indices where 1->K, 2->L₁, 3->L₂, ...,9->M₅ (IUPAC notation) or 1->1S½, 2->2S½, 3->2P½, 4->2P³/₂,... (atomic notation).

ionizationcrosssection(z::Int, subshell::Int, energy::AbstractFloat, edgeenergy::AbstractFloat=edgeenergy(z, subshell))
  • Computes the cross-section in square centimeters for z=1:99, subshell=1:<=9, energy = 0 to 1 GeV in eV
  • If edgeenergy is nothing, the B-S recommended value is used, otherwise the user may provide an edge energy in eV
  • Returns 0.0 if energy<edgeenergy
  • Throws an assertion if data isn't available for the specified element and sub-shell.
hasedge(z::Integer, subshell::Int)
  • True if data is available to compute the cross section for the specified sub-shell
edgeenergy(z::Integer, subshell::Int)
  • The ionization energy for the specified element and sub-shell.

If the plotting module Gadfly is loaded, the function

plotICX(z::Integer)

will produce a log-log plot of the cross sections for all available sub-shells from threshold to 1 GeV.