iceCube.uhe.interactions
Class NeutrinoBHevaporation

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

public class NeutrinoBHevaporation
extends java.lang.Object

The Neutrino nucleon interactions to produce micro black holes and its evapolation. Evapolation of generated black holes results in hadronic showers, muons, and taus. Calculation of the cross section is based on the table provided from Jonathan Feng and Francis Halzen. 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  double[] energy_table
          Energy[GeV] for the sigma_table
protected static double fractionOfMuonAndTau
          Fraction of muon + tau's multiplicity in the black hole decay products.
protected static double fractionOfShowers
          Fraction of particle multiplicity in the black hole decay products resulting in cascades.
protected static double ln10
           
protected  double[] logE_multiplicity1_table
          log10(Energy[GeV]) for multiplicity table model 1
protected  double[] logE_multiplicity2_table
          log10(Energy[GeV]) for multiplicity table model 2
protected  double[] logE_table
           
protected  int modelNumber
           
protected  double[] multiplicity_table_model1
          mutiplicity table in the BH model for model 1
protected  double[] multiplicity_table_model2
          mutiplicity table in the BH model for model 2
protected static double[][] sigma_table
          cross section [pB] table provided in the BH evaporation model
 
Constructor Summary
NeutrinoBHevaporation(Particle p, ParticlePoint s)
          Constructor: Register the Particle and ParticlePoint classes.
 
Method Summary
 double getDSigmaDy(double y)
          Differential cross section dsigma/dy [cm^2]
 double getDSigmaDz(double z)
          Differential cross section dsigma/dz [cm^2]
 double getEnergyCut()
           
 double getFunction(int functionIndex, double[] parameters, double x)
           Method for interface .
 double getIncidentParticleEnergy()
           
 double getMultiplicity()
          Multiplicity of the decay products from the black hole evaporation.
 double getMuonMultiplicity()
          Multiplicity of muons from the black hole evaporation.
 double getShowerMultiplicity()
          Multiplicity of shower particles from the black hole evaporation.
 double getSigma()
          Total cross section [cm^2]
 double getTauMultiplicity()
          Multiplicity of taus from the black hole evaporation.
 double getYDSigmaDy(double lowerY, double upperY)
          Integral y*dSigma/dy over a given range to obtain the inelasticity distribution.
 double getYmax()
          Getting the range of allowed y for a given interaction
 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 setModelNumber(int number)
          model number settings.
 void showIntegralErrorMessage(double lowerY, double upperY)
          Error message utility
protected  void switchToChargedLepton()
           
protected  void switchToShower()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

sigma_table

protected static double[][] sigma_table
cross section [pB] table provided in the BH evaporation model


energy_table

protected double[] energy_table
Energy[GeV] for the sigma_table


multiplicity_table_model1

protected double[] multiplicity_table_model1
mutiplicity table in the BH model for model 1


logE_multiplicity1_table

protected double[] logE_multiplicity1_table
log10(Energy[GeV]) for multiplicity table model 1


multiplicity_table_model2

protected double[] multiplicity_table_model2
mutiplicity table in the BH model for model 2


logE_multiplicity2_table

protected double[] logE_multiplicity2_table
log10(Energy[GeV]) for multiplicity table model 2


modelNumber

protected int modelNumber

logE_table

protected double[] logE_table

ln10

protected static final double ln10

fractionOfMuonAndTau

protected static double fractionOfMuonAndTau
Fraction of muon + tau's multiplicity in the black hole decay products. They are distributed accordng to the number of degrees of freedom (muon + tau = 4 against overall DOF 120).


fractionOfShowers

protected static double fractionOfShowers
Fraction of particle multiplicity in the black hole decay products resulting in cascades.

Constructor Detail

NeutrinoBHevaporation

public NeutrinoBHevaporation(Particle p,
                             ParticlePoint s)
                      throws java.io.IOException
Constructor: Register the Particle and ParticlePoint classes. It also reads the pre-calculated y/E * dsigma/dy from the data file.

Throws:
java.io.IOException
Method Detail

getMultiplicity

public double getMultiplicity()
Multiplicity of the decay products from the black hole evaporation. This number was weighted by the parton distribution implying it is the AVERAGE multiplicity. Obtained by the PRD paper.


getMuonMultiplicity

public double getMuonMultiplicity()
Multiplicity of muons from the black hole evaporation.


getTauMultiplicity

public double getTauMultiplicity()
Multiplicity of taus from the black hole evaporation.


getShowerMultiplicity

public double getShowerMultiplicity()
Multiplicity of shower particles from the black hole evaporation.


switchToShower

protected void switchToShower()

switchToChargedLepton

protected void switchToChargedLepton()

setModelNumber

public void setModelNumber(int number)
model number settings.
       number 0  : n=6 xmin = 1 M_D=1TeV
       number 1  : n=6 xmin = 3 M_D=1TeV
       number 2  : n=6 xmin = 1 M_D=2TeV
       number 3  : n=6 xmin = 3 M_D=2TeV
       


getDSigmaDz

public double getDSigmaDz(double z)
Differential cross section dsigma/dz [cm^2]
        z = Erecoiling/Eincoming = Emuon or Etau/Eneutrino
        
The z distribution is a flat distribution in this model. Multiplicity of the produced particles are renormalized - integral of the differential cross section is equal to total cross section x multiplicity. This difinition is introduced for consistent way in the numerical calculation in the Propagation package.


getDSigmaDy

public double getDSigmaDy(double y)
Differential cross section dsigma/dy [cm^2]
        y = 1-Erecoiling/Eincoming = Eshower/Eneutrino
        
The y distribution is a flat distribution in this model.


getSigma

public double getSigma()
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.


getYmax

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


getYmin

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


isValidParticle

public boolean isValidParticle(Particle p)
Checking the particle kind involved with a given interaction. Only neutrinos are allowed to be involved with this interaction 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()

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