gov.nist.microanalysis.EPQLibrary
Class IonizationCrossSection

java.lang.Object
  extended by gov.nist.microanalysis.EPQLibrary.AlgorithmClass
      extended by gov.nist.microanalysis.EPQLibrary.IonizationCrossSection
All Implemented Interfaces:
java.lang.Comparable
Direct Known Subclasses:
IonizationCrossSection.Pouchou86ICX, IonizationCrossSection.Proza96ICX

public abstract class IonizationCrossSection
extends AlgorithmClass

An abstract class implementing various different algorithms to calculate the ionization cross section. Note that the implementations fall into two classes - those that calculate an absolute cross section and those that calculate a proportional cross section. The absolute cross sections are useful for standardless analysis and absolute instensity prediction (Monte Carlos) while the proportional cross sections are useful for standards-based analysis. The proportional cross sections are good for calculating the cross section at one overvoltage relative to another overvoltage.

An additional subtlety is the dependence on the shell within the family. Many algorithms provide the ionization cross- section for a family of lines. However for consistency we want to compute the ionization cross-section for each shell. The shell depenedence is encapsulated in the method shellDependence and is used to extend family-based expressions to consider individual shells.

Copyright: Pursuant to title 17 Section 105 of the United States Code this software is not subject to copyright protection and is in the public domain

Company: National Institute of Standards and Technology

Version:
1.0
Author:
Nicholas W. M. Ritchie

Nested Class Summary
static class IonizationCrossSection.Pouchou86ICX
          The proportional ionization cross section descibed in Pochou & Pichoir's IXCOM 11 (1986) article.
static class IonizationCrossSection.Proza96ICX
          The proportional ionization cross section detailed in Bastin, Dijkstra and Heijliger's PROZA96 algorithm (X-Ray Spec.
 
Field Summary
static IonizationCrossSection Casnati82
          Casnati82 - E Casnati, A Tartari & C Baraldi, J Phys B15 (1982) 155 as quoted by C Powell in Ultramicroscopy 28 (1989) 24-31 "(Casnati's equation) was found to fit cross-section data to typically better than +-10% over the range 1<=Uk<=20 and 6<=Z<=79." Note: This result is for K shell.
static IonizationCrossSection.Pouchou86ICX Pouchou86
          Pouchou86 - The proportional ionization cross section descibed in Pochou & Pichoir's IXCOM 11 (1986) article.
static IonizationCrossSection.Proza96ICX Proza96
          Proza96 - The proportional ionization cross section detailed in Bastin, Dijkstra and Heijliger's PROZA96 algorithm (X-Ray Spec.
 
Method Summary
 boolean absolute()
          absolute - Does this implementation of the IonizationCrossSection return an absolute cross section or simply a proportional one?
 double computeFamily(AtomicShell shell, double beamE)
           
abstract  double computeShell(AtomicShell shell, double beamE)
          Computes the ionization cross section for an energetic electron on the specified element/shell.
static double fromCmSqr(double x)
          Converts from cm^2 to m^2
 java.util.List getAllImplementations()
          getAllImplementations - returns a list of all implementations of IonizationCrossSection
protected  void initializeDefaultStrategy()
          initializeDefaultStrategy - Implement this method in derived classes to specify the contents (possibly null) of the default Strategy using the addDefaultAlgorithm(Class,AlgorithmClass) method.
 boolean proportional()
          proportional - Does this implementation of the IonizationCrossSection return an absolute cross section or simply a proportional one?
static double shellDependence(AtomicShell sh)
          shellDependence - In addition to the overvoltage dependence, the ionization cross section depends upon which shell is ionized.
static double shellDependence(int shell)
          shellDependence - In addition to the overvoltage dependence, the ionization cross section depends upon which shell is ionized.
static double toCmSqr(double x)
          Converts from m^2 to cm^2
 
Methods inherited from class gov.nist.microanalysis.EPQLibrary.AlgorithmClass
addDefaultAlgorithm, allAlgorithmNames, allAlgorithms, applyGlobalOverride, clearGlobalOverride, compareTo, documentStrategy, getActiveStrategy, getAlgorithm, getAlgorithmClass, getName, getReference, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

Casnati82

public static final IonizationCrossSection Casnati82
Casnati82 - E Casnati, A Tartari & C Baraldi, J Phys B15 (1982) 155 as quoted by C Powell in Ultramicroscopy 28 (1989) 24-31 "(Casnati's equation) was found to fit cross-section data to typically better than +-10% over the range 1<=Uk<=20 and 6<=Z<=79." Note: This result is for K shell. L & M are much less well characterized. C. Powell indicated in conversation that he believed that Casnati's expression was the best available for L & M also.


Pouchou86

public static final IonizationCrossSection.Pouchou86ICX Pouchou86
Pouchou86 - The proportional ionization cross section descibed in Pochou & Pichoir's IXCOM 11 (1986) article. An additional factor is inserted to account for the variation between different shells within the family.


Proza96

public static final IonizationCrossSection.Proza96ICX Proza96
Proza96 - The proportional ionization cross section detailed in Bastin, Dijkstra and Heijliger's PROZA96 algorithm (X-Ray Spec. 27, pp 3-10 (1998)) An additional factor is inserted to account for the variation between different shells within the family.

Method Detail

toCmSqr

public static double toCmSqr(double x)
Converts from m^2 to cm^2

Parameters:
x -
Returns:
double a cross-section in cm^2

fromCmSqr

public static double fromCmSqr(double x)
Converts from cm^2 to m^2

Parameters:
x -
Returns:
double a cross-section in m^2

shellDependence

public static double shellDependence(AtomicShell sh)
shellDependence - In addition to the overvoltage dependence, the ionization cross section depends upon which shell is ionized. The dependence is a proportional to the number of electrons in the shell.

Parameters:
sh - AtomicShell
Returns:
double

shellDependence

public static double shellDependence(int shell)
shellDependence - In addition to the overvoltage dependence, the ionization cross section depends upon which shell is ionized. The dependence is a proportional to the number of electrons in the shell.

Parameters:
shell - [AtomicShell.K, AtomicShell.LI, AtomicShell.LII, ..., AtomicShell.Last)
Returns:
double

initializeDefaultStrategy

protected void initializeDefaultStrategy()
Description copied from class: AlgorithmClass
initializeDefaultStrategy - Implement this method in derived classes to specify the contents (possibly null) of the default Strategy using the addDefaultAlgorithm(Class,AlgorithmClass) method.

Specified by:
initializeDefaultStrategy in class AlgorithmClass

proportional

public boolean proportional()
proportional - Does this implementation of the IonizationCrossSection return an absolute cross section or simply a proportional one?

Returns:
boolean

absolute

public boolean absolute()
absolute - Does this implementation of the IonizationCrossSection return an absolute cross section or simply a proportional one?

Returns:
boolean

getAllImplementations

public java.util.List getAllImplementations()
getAllImplementations - returns a list of all implementations of IonizationCrossSection

Specified by:
getAllImplementations in class AlgorithmClass
Returns:
List

computeShell

public abstract double computeShell(AtomicShell shell,
                                    double beamE)
Computes the ionization cross section for an energetic electron on the specified element/shell.

Parameters:
shell - AtomicShell - Specifies the element and shell (K, LI, ...)
beamE - double - The beam energy in Joules
Returns:
double - The ionization cross section (in m^2)

computeFamily

public double computeFamily(AtomicShell shell,
                            double beamE)