iceCube.uhe.interactions
Class GlashowResonanceLeptonic

java.lang.Object
  extended by iceCube.uhe.interactions.GlashowResonanceLeptonic
All Implemented Interfaces:
java.io.Serializable, Function
Direct Known Subclasses:
GlashowResonanceHadronic

public class GlashowResonanceLeptonic
extends java.lang.Object
implements Function

The Glashow Resonance reaction with W into the leptonic decay

   \bar{nu_e} + e^{-1} -> \bar{nu_l} + l ^{-1}
   
The approximation that
      1. Masses of the produced leptons are negligible
      2. Energy of incoming anti electron neutrino is by far higher
         than the electron mass.
   
has been introduced to calculate the differential cross section The inelasiticity parameter y is here difined as
     y = 1 - E_{l^{-1}}/E_{\bar{\nu_e}}
   
Written by S. Yoshida November 20 2007

See Also:
Serialized Form

Field Summary
protected  double chargePerNucleon
           
static double G_F
          Fermi Coupling Constant [GeV ^{-2}]
static double gammaW
          decay width of W [GeV]
static double hbar_c
          conversion constant in the natural unit [cm GeV]
protected  boolean isPerNucleon
           
static double massE
          mass of Electron [GeV]
static double massW
          mass of W [GeV]
 
Constructor Summary
GlashowResonanceLeptonic(ParticlePoint s, int flavor)
          Constructor: Register the ParticlePoint classes and the prodocued flavor - 0 for e, 1 for mu, 2 for tau
 
Method Summary
protected  double areaFactorByWeakCoupling(double invariant_s)
          the area given by the Weak coupling constant
 void calculateCrossSectionAsPerElectron()
          Calculate the differential cross section as the one per electron.
 void calculateCrossSectionAsPerNucleon()
          Calculate the differential cross section as the one per nucleon.
 double getDSigmaDy(double y)
          return dSigma/dy [cm^2] where y = 1 - - E_{l^{-1}}/E_{\bar{\nu_e}}
 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()
           
 double getSigma()
          return 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 getYmin()
          Getting the range of allowed y for a given interaction
 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 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
protected  double wResonance(double invariant_s)
          W resonance function (dimension less) described by the Lorentzian
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface numRecipes.Function
getFunction
 

Field Detail

isPerNucleon

protected boolean isPerNucleon

chargePerNucleon

protected double chargePerNucleon

G_F

public static final double G_F
Fermi Coupling Constant [GeV ^{-2}]

See Also:
Constant Field Values

hbar_c

public static final double hbar_c
conversion constant in the natural unit [cm GeV]

See Also:
Constant Field Values

massW

public static final double massW
mass of W [GeV]

See Also:
Constant Field Values

gammaW

public static final double gammaW
decay width of W [GeV]

See Also:
Constant Field Values

massE

public static final double massE
mass of Electron [GeV]

Constructor Detail

GlashowResonanceLeptonic

public GlashowResonanceLeptonic(ParticlePoint s,
                                int flavor)
Constructor: Register the ParticlePoint classes and the prodocued flavor - 0 for e, 1 for mu, 2 for tau

Method Detail

isValidParticle

public boolean isValidParticle(Particle p)
Checking the particle kind involved with a given interaction. Only electron neutrino is allowed to be involved with the Glashow resonance in the medium. This is the overriden method from Interactions.java


calculateCrossSectionAsPerNucleon

public void calculateCrossSectionAsPerNucleon()
Calculate the differential cross section as the one per nucleon. for instance in the case of ice, the number of electrons per nuclei is approximately (1 x 8 + 2 x1) - corresponding to H_2 0 !! -- is multiplied to the cross section.


calculateCrossSectionAsPerElectron

public void calculateCrossSectionAsPerElectron()
Calculate the differential cross section as the one per electron. This is simple - because the Glashow resonance is subject to electron.


getDSigmaDy

public double getDSigmaDy(double y)
return dSigma/dy [cm^2] where y = 1 - - E_{l^{-1}}/E_{\bar{\nu_e}}


getSigma

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


isValidInelasticity

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


getYmin

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


getYmax

public double getYmax()

areaFactorByWeakCoupling

protected double areaFactorByWeakCoupling(double invariant_s)
the area given by the Weak coupling constant
        A = G_F^2 s / pi    s: Lorentz invariant energy squared
        


wResonance

protected double wResonance(double invariant_s)
W resonance function (dimension less) described by the Lorentzian


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()

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


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 
        

Specified by:
getFunction in interface Function

showIntegralErrorMessage

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