iceCube.uhe.analysis
Class PropagationMatrixFlux

java.lang.Object
  extended by iceCube.uhe.analysis.PropagationMatrixFlux
Direct Known Subclasses:
BHevapPropagationMatrixFlux, QuickNCPropagationMatrixFlux, QuickPropagationMatrixFlux

public class PropagationMatrixFlux
extends java.lang.Object

It calculates the detectable neutrino event intensity at the Earth Surface as I3ParticleFlux does but the calculation is made by using directly the zenith angle binned propagation matrix and the numerically calculated effective area (I3EffectiveArea.java) without relying on I3Particle MC events. Written by S. Yoshida April 11 2007


Field Summary
protected  java.util.List inIceAreaList
          List to store inIceParticle's effective area
protected  java.util.List inIceDoubletList
          List to store inIceParticle's doublet
protected  java.util.List inIceFlavorList
          List to store inIceParticle's flavor
protected  PropagationMatrixFactory matrix
           
protected  Particle nuE
           
protected  Particle nuMu
           
protected  Particle nuTau
           
protected  double observationTime
          Observation Time [sec]
protected  boolean yieldTableExists
           
 
Constructor Summary
  PropagationMatrixFlux()
          Constructor.
protected PropagationMatrixFlux(boolean nomatrix)
          Constroctor for the subclass.
 
Method Summary
 void addInIceParticle(int flavor, int doublet)
          add flavor and doublet of inIce particle to consider.
 void calculateYield()
          Calculate the neutrino yield [cm^2 sec sr] in form of the table by reasing out the pre-stored propagation matrix data via the PropagationMatrixFactory.
 double getDFDLogE(double logNeutrinoEnergy, double numberOfEvents)
          Calculate the Neutrino flux at the surface to give numberOfEvents you set in the argument.
 double getDFDLogE(double logNeutrinoEnergy, double numberOfEvents, boolean averageOverDecade)
          Calculate the Neutrino flux at the surface to give numberOfEvents you set in the argument.
 double getDFDLogE(double logNeutrinoEnergy, double yield, double numberOfEvents)
          Calculate the Neutrino flux at the surface to give numberOfEvents, but the yield [cm^2 sec sr] given in the argument is added up to calculate the flux.
 double getYield(double logNeutrinoEnergy)
          Calculate the Neutrino yeild [cm^2 sec sr] at the surface to give numberOfEvents you set in the argument.
 void setObservationTime(double time)
          Set the MC solid angle [sec]
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

nuE

protected Particle nuE

nuMu

protected Particle nuMu

nuTau

protected Particle nuTau

matrix

protected PropagationMatrixFactory matrix

yieldTableExists

protected boolean yieldTableExists

observationTime

protected double observationTime
Observation Time [sec]


inIceFlavorList

protected java.util.List inIceFlavorList
List to store inIceParticle's flavor


inIceDoubletList

protected java.util.List inIceDoubletList
List to store inIceParticle's doublet


inIceAreaList

protected java.util.List inIceAreaList
List to store inIceParticle's effective area

Constructor Detail

PropagationMatrixFlux

public PropagationMatrixFlux()
Constructor. Generate nu-e, nu-mu, and nu-tau objects as primary neutrinos at the earth surface. PropagationMatrixFactory is also generated.


PropagationMatrixFlux

protected PropagationMatrixFlux(boolean nomatrix)
Constroctor for the subclass. Do not instance the PropagationMatrixFactory

Method Detail

addInIceParticle

public void addInIceParticle(int flavor,
                             int doublet)
                      throws java.io.IOException
add flavor and doublet of inIce particle to consider. It also generate EffAreaTable(flavor doublet) object for caulculating the effecrtive area in the yield calculation.

Throws:
java.io.IOException

setObservationTime

public void setObservationTime(double time)
Set the MC solid angle [sec]


calculateYield

public void calculateYield()
                    throws java.io.IOException
Calculate the neutrino yield [cm^2 sec sr] in form of the table by reasing out the pre-stored propagation matrix data via the PropagationMatrixFactory. A primary neutrino bulk is assumed to be consist of nu_e, nu_mu, nu_tau = 1:1:1.

Throws:
java.io.IOException

getYield

public double getYield(double logNeutrinoEnergy)
Calculate the Neutrino yeild [cm^2 sec sr] at the surface to give numberOfEvents you set in the argument. It uses the propagation matrix filled in I3Particle's.
        double logNeutrinoEnergy  : log10(Nu Energy at the earth surface [GeV])
        Return yield [cm^2 sec sr]
        
Note : Yield given here is all-nu_flavor-summed value.


getDFDLogE

public double getDFDLogE(double logNeutrinoEnergy,
                         double numberOfEvents,
                         boolean averageOverDecade)
Calculate the Neutrino flux at the surface to give numberOfEvents you set in the argument. It uses the propagation matrix filled in I3Particle's and the quasi-differential method based on dF/dLogE.
        double logNeutrinoEnergy  : log10(Nu Energy at the earth surface [GeV])
        double numberOfEvents     : number of events in the IceCube
        boolean averageOverDecade : true - average neutrino yield over decade of E
                                  : false - use the yield of logNeutrinoEnergy only
                                  : as the Auger/Rice people introduced.
        Return dN/dLogE [/cm^2 sec sr]
        


getDFDLogE

public double getDFDLogE(double logNeutrinoEnergy,
                         double numberOfEvents)
Calculate the Neutrino flux at the surface to give numberOfEvents you set in the argument. It uses the propagation matrix filled in I3Particle's and the quasi-differential method based on dF/dLogE. note:The energy decade average over a decade \int yield(logE) dLogE is involved in the calculation (averageOverDecade=true)
        double logNeutrinoEnergy  : log10(Nu Energy at the earth surface [GeV])
        double numberOfEvents     : number of events in the IceCube
        Return dN/dLogE [/cm^2 sec sr]
        


getDFDLogE

public double getDFDLogE(double logNeutrinoEnergy,
                         double yield,
                         double numberOfEvents)
Calculate the Neutrino flux at the surface to give numberOfEvents, but the yield [cm^2 sec sr] given in the argument is added up to calculate the flux. This method may be used when you combine the estimations from the numerically calculated effective area.