iceCube.uhe.interactions
Class PairCreation

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

public class PairCreation
extends java.lang.Object
implements Function

The Pair Creation involving UHE leptons propagating undergound rock and ice are calculated in this subclass. 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

Constructor Summary
PairCreation(Particle p, ParticlePoint s, int flavor)
          Constructor: Register the Particle and ParticlePoint classes
 
Method Summary
 double getAsymmetryTerm(double rho, double y, int ithSpecies)
          Calculate the term on the asymmetry factor of the pair creation.
 double getDSigmaDy(double y)
          Differential cross section dsigma/dy [cm^2] y = 1 - Erecoiling/Eincoming -- inelasticity parameter
 double getDSigmaDyDrho(double y, double rho)
          Differential cross section dsigma/dy/drho [cm^2] y = 1 - Erecoiling/Eincoming -- inelasticity parameter The assymetry factor is defined by rho = (E^+ - E^-)/(E^+ + E^-)
 double getDSigmaDyPlus(double yPlus)
          Differential cross section dsigma/dy [cm^2] yPlus = Epositron/Eincoming
 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)
           Override Method for interface .
 double getIncidentParticleEnergy()
           
 double getScreenFactor(int ithSpecies)
          Calculate the factor due to the screening effect on an atomic ellectron
 double getSigma()
          Total cross section [cm^2]
 double getYDSigmaDy(double lowerY, double upperY)
          Integral y*dSigma/dy over a given range to obtain the inelasticity distribution.
 double getYmax()
           
 double getYmaxCharge(int ithSpecies)
           
 double getYmin()
          Getting the range of allowed y for a given interaction
 double getYPlusDSigmaDyPlus(double lowerY, double upperY)
          Integral yPlus*dSigma/dyPlus over a given range to obtain the inelasticity distribution.
 double getYPlusMax()
           
 double getYPlusMin()
           
 double getZDSigmaDZ(double lowerZ, double upperZ)
          Integral z*dSigma/dz over a given range to obtain the inelasticity distribution.
 double integralDSigmaDy(double lowerY, double upperY)
          Integral dSigma/dy over a given range to obtain a partial cross section
 double integralDSigmaDyPlus(double lowerY, double upperY)
          Integral dSigma/dyPlus 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 isValidInelasticityPlus(double yPlus)
           
 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
 

Constructor Detail

PairCreation

public PairCreation(Particle p,
                    ParticlePoint s,
                    int flavor)
Constructor: Register the Particle and ParticlePoint classes

Method Detail

getDSigmaDyDrho

public double getDSigmaDyDrho(double y,
                              double rho)
Differential cross section dsigma/dy/drho [cm^2] y = 1 - Erecoiling/Eincoming -- inelasticity parameter The assymetry factor is defined by rho = (E^+ - E^-)/(E^+ + E^-)


getDSigmaDy

public double getDSigmaDy(double y)
Differential cross section dsigma/dy [cm^2] y = 1 - Erecoiling/Eincoming -- inelasticity parameter


getDSigmaDyPlus

public double getDSigmaDyPlus(double yPlus)
Differential cross section dsigma/dy [cm^2] yPlus = Epositron/Eincoming


integralDSigmaDyPlus

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


getYPlusDSigmaDyPlus

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


getFunction

public double getFunction(int functionIndex,
                          double[] parameters,
                          double x)
        Override Method for interface . 
        Interface the differntial cross sections given here
        to the utility routiner 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/drho (The assymetry term)
        functionIndex     6     dsigma/dy-drho x 2/(1+rho)
        functionIndex     7     dsigma/dyPlus
        functionIndex     8     dsigma/dyPlus x yPlus
        

Specified by:
getFunction in interface Function

getAsymmetryTerm

public double getAsymmetryTerm(double rho,
                               double y,
                               int ithSpecies)
Calculate the term on the asymmetry factor of the pair creation. The assymetry factor is defined by rho = (E^+ - E^-)/(E^+ + E^-)


getScreenFactor

public double getScreenFactor(int ithSpecies)
Calculate the factor due to the screening effect on an atomic ellectron


isValidInelasticity

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


isValidInelasticityPlus

public boolean isValidInelasticityPlus(double yPlus)

getYmin

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


getYmax

public double getYmax()

getYmaxCharge

public double getYmaxCharge(int ithSpecies)

getYPlusMin

public double getYPlusMin()

getYPlusMax

public double getYPlusMax()

isValidParticle

public boolean isValidParticle(Particle p)
Checking the particle kind involved with a given interaction. Only muon and tauon but not neutrinos and pions are allowed to be involved with the pair creation in the medium.


interactionName

public java.lang.String interactionName()
Show Name of the Interaction


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)

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