gov.nist.microanalysis.EPQLibrary
Class GasScatteringCrossSection

java.lang.Object
  extended by gov.nist.microanalysis.EPQLibrary.GasScatteringCrossSection
All Implemented Interfaces:
IRandomizedScatter

public class GasScatteringCrossSection
extends java.lang.Object
implements IRandomizedScatter

Scattering in a gas is qualitatively different from scattering in a solid. Typically the path length between scattering events is much larger in a gas. In a gas, small angular deviations can lead to large spatial deviations. In a solid, many random small angular deviations eventually average to zero while in a gas the number of small angular deviations is much fewer.

The treatment is based on electron scattering as detailed in R. F. Egerton's book "Electron Energy-Loss Spectroscopy in the Electron Microscope", Second Edition, Plenum Press, NY & London, 1996.


Constructor Summary
GasScatteringCrossSection(Element elm)
          Constructs a GasScatteringCrossSection object
 
Method Summary
 IRandomizedScatter getElasticModel()
          getElasticModel - Returns an instance of the model currrently being used to model elastic events.
 Element getElement()
          getElement - The element with which this cross section is associated.
 double randomScatteringAngle(double energy)
          randomScatteringAngle - Picks a random scattering angle based on the distribution of scattering angles.
 double ratioInelasticOverElastic()
          ratioInelasticOverElastic - Edgerton gives the ratio sigmi_i / sigma_e ~ 20/Z based on experiment (pg 145).
 void setElasticModel(IRandomizedScatter elastic)
          setElasticModel - Specify which elastic cross section model to use.
 double totalCrossSection(double energy)
          totalCrossSection - Computes the total cross section from the sum of elastic and inelastic contributions.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

GasScatteringCrossSection

public GasScatteringCrossSection(Element elm)
Constructs a GasScatteringCrossSection object

Method Detail

setElasticModel

public void setElasticModel(IRandomizedScatter elastic)
setElasticModel - Specify which elastic cross section model to use. Default is ScreenedRutherfordScatteringAngle.

Parameters:
elastic -

getElasticModel

public IRandomizedScatter getElasticModel()
getElasticModel - Returns an instance of the model currrently being used to model elastic events.

Returns:
IRandomizedScatter

ratioInelasticOverElastic

public double ratioInelasticOverElastic()
ratioInelasticOverElastic - Edgerton gives the ratio sigmi_i / sigma_e ~ 20/Z based on experiment (pg 145).

Returns:
double

getElement

public Element getElement()
getElement - The element with which this cross section is associated.

Specified by:
getElement in interface IRandomizedScatter
Returns:
Element (non-Javadoc)
See Also:
IRandomizedScatter.getElement()

totalCrossSection

public double totalCrossSection(double energy)
totalCrossSection - Computes the total cross section from the sum of elastic and inelastic contributions.

Specified by:
totalCrossSection in interface IRandomizedScatter
Parameters:
energy -
Returns:
(non-Javadoc)
See Also:
IRandomizedScatter.totalCrossSection(double)

randomScatteringAngle

public double randomScatteringAngle(double energy)
randomScatteringAngle - Picks a random scattering angle based on the distribution of scattering angles.

Specified by:
randomScatteringAngle in interface IRandomizedScatter
Parameters:
energy -
Returns:
(non-Javadoc)
See Also:
IRandomizedScatter.randomScatteringAngle(double)