iceCube.uhe.interactions
Class Ionization

java.lang.Object
  extended by iceCube.uhe.interactions.Ionization
All Implemented Interfaces:
java.io.Serializable, Function

public class Ionization
extends java.lang.Object

The Ionization loss formula for JULIeT application. This code introduces some tweaks to handle the coinuous processes like the ionization as the Interactions class has been originaly designed for stochastic interaction process which dominates anyway in ultra-high energy region. The class variables Particle, and Point are necessary for the methods described here because the cross section depends on the particle propaty and the medium like Z and A(atomic number).

See Also:
Serialized Form

Field Summary
protected static double[] a_screen
           
protected static double[] c_screen
          The coefficinets in the screening effects
protected static double[] IonizedPotential
          Ion potential table
protected static double Kion
          The dimension constatnt in the dE/dX.
protected static double log10_screen
           
protected static double[] m_screen
           
protected static double[] x0_screen
           
protected static double[] x1_screen
           
 
Constructor Summary
Ionization(Particle p, ParticlePoint s)
          Constructor.
 
Method Summary
 double getDEDX()
          dE/dX - A modified Bethe-Bloch formula [GeV/g/cm^2]
 double getDNDyDX(double y)
          the ionization y distribution
 double getDSigmaDy(double y)
          Differential Cross section.
 double getDSigmaDz(double z)
           Differential cross section dsigma/dz [cm^2] z = Erecoiling/Eincoming -- inelasticity parameter
 double getEnergyCut()
           
 double getFunction(int functionIndex, double[] parameters, double x)
           Method for interface .
 double getIncidentParticleEnergy()
           
protected  double getScreenFactor()
           
 double getSigma()
          Total cross section [cm^2]
 double getYcut()
           
 double getYDSigmaDy(double lowerY, double upperY)
          Integral y*dSigma/dy over a given range to obtain the inelasticity distribution.
 double getYmax()
           
 double getYmin()
          Getting the range of allowed y for a given interaction
 double getYupper()
           
 double getZDSigmaDZ(double lowerZ, double upperZ)
          Integral z*dSigma/dz over a given range to obtain the inelasticity distribution.
 double inelasticCorrection(double y)
          inelasticity correction
 double integralDSigmaDy(double lowerY, double upperY)
          Integral dSigma/dy over a given range to obtain a partial cross section
 double integralDSigmaDz(double lowerZ, double upperZ)
          Integral dSigma/dz over a given range to obtain a partial cross section
 java.lang.String interactionName()
          Show Name of the Interaction.
 boolean isValidInelasticity(double y)
          Checking the range of the given inelasticity y that is determined in an individual interaction channel.
 boolean isValidParticle(Particle p)
          Checking the particle kind involved with a given interaction.
 void setEnergyCut(double cutEnergy)
          Energy Cut Parameter in integration to obtain the total cross section.
 void setIncidentParticleEnergy(double energy)
           Set The incident particle energy [GeV].
 void setIncidentParticleEnergy(int iLogE)
           
 void showIntegralErrorMessage(double lowerY, double upperY)
          Error message utility
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

IonizedPotential

protected static final double[] IonizedPotential
Ion potential table


c_screen

protected static final double[] c_screen
The coefficinets in the screening effects


a_screen

protected static final double[] a_screen

m_screen

protected static final double[] m_screen

log10_screen

protected static final double log10_screen

x0_screen

protected static final double[] x0_screen

x1_screen

protected static final double[] x1_screen

Kion

protected static final double Kion
The dimension constatnt in the dE/dX.

See Also:
Constant Field Values
Constructor Detail

Ionization

public Ionization(Particle p,
                  ParticlePoint s)
Constructor. Setting the coefficients depending on the propagation medium.

Method Detail

setIncidentParticleEnergy

public void setIncidentParticleEnergy(double energy)
        Set The incident particle energy [GeV].
        The default value has been given by the constructor
        Interactions( ) with p.getEnergy( ) where p is 
        the Particle class. You might want to set, however,
        a different value such as 
        logE = logEnergyMinimum + deltaLogE*ilogE
        where ilogE is i'th index of the logEnergyMatrix
        in the Particle class p. This method provides you
        with a way to put the incident particle energy.
        


setIncidentParticleEnergy

public void setIncidentParticleEnergy(int iLogE)

getYcut

public double getYcut()

getYmin

public double getYmin()
Getting the range of allowed y for a given interaction


getYmax

public double getYmax()

getYupper

public double getYupper()

getDEDX

public double getDEDX()
dE/dX - A modified Bethe-Bloch formula [GeV/g/cm^2]


getDNDyDX

public double getDNDyDX(double y)
the ionization y distribution


inelasticCorrection

public double inelasticCorrection(double y)
inelasticity correction


getFunction

public double getFunction(int functionIndex,
                          double[] parameters,
                          double x)
        Method for interface . 
        Interface the differntial cross sections given here
        to the utility methods such as the Romberg
        Integration code that is desinged for a genereal
        function in form of Func(x).

        functionIndex     1     dsigma/dy
        functionIndex     2     dsigma/dz  z = y-1
        functionIndex     3     y x dsigma/dy 
        functionIndex     4     z x dsigma/dz 
        functionIndex     5    dN/dYdX(y=exp x) * coorection(y=exp x) y 
        

Specified by:
getFunction in interface Function

getScreenFactor

protected double getScreenFactor()

getDSigmaDy

public double getDSigmaDy(double y)
Differential Cross section. This is not a true cross section but defined to give dE/dX, because the ionization is continuous process.


isValidInelasticity

public boolean isValidInelasticity(double y)
Checking the range of the given inelasticity y that is determined in an individual interaction channel.


isValidParticle

public boolean isValidParticle(Particle p)
Checking the particle kind involved with a given interaction. Only charged particles but not neutrinos are allowed to be involved with the ionization in the medium.


interactionName

public java.lang.String interactionName()
Show Name of the Interaction. Returns the Sting where the interation name is written.


getIncidentParticleEnergy

public double getIncidentParticleEnergy()

getDSigmaDz

public double getDSigmaDz(double z)
        Differential cross section dsigma/dz [cm^2]
        z = Erecoiling/Eincoming -- inelasticity parameter
        


setEnergyCut

public void setEnergyCut(double cutEnergy)
Energy Cut Parameter in integration to obtain the total cross section.


getEnergyCut

public double getEnergyCut()

getSigma

public double getSigma()
Total cross section [cm^2]


integralDSigmaDy

public double integralDSigmaDy(double lowerY,
                               double upperY)
Integral dSigma/dy over a given range to obtain a partial cross section


integralDSigmaDz

public double integralDSigmaDz(double lowerZ,
                               double upperZ)
Integral dSigma/dz over a given range to obtain a partial cross section


getYDSigmaDy

public double getYDSigmaDy(double lowerY,
                           double upperY)
Integral y*dSigma/dy over a given range to obtain the inelasticity distribution. The energy transfer probability would also require this value.


getZDSigmaDZ

public double getZDSigmaDZ(double lowerZ,
                           double upperZ)
Integral z*dSigma/dz over a given range to obtain the inelasticity distribution. The energy transfer probability would also require this value. z = 1-y


showIntegralErrorMessage

public void showIntegralErrorMessage(double lowerY,
                                     double upperY)
Error message utility