iceCube.uhe.analysis
Class I3ParticleFlux

java.lang.Object
  extended by iceCube.uhe.analysis.I3ParticleFlux

public class I3ParticleFlux
extends java.lang.Object

I3ParticleFlux calculates the detectable neutrino event intensity at the Earth Surface using propagation matrix filled in each of I3Particle. You use Criteria class in the analysis package to difine the event criteria for "detection" by the IceCube. Propagation matrix must be filled by I3ParticlePropMatrixFiller a priori. A primary neutrino bulk is assumed to be consist of nu_e, nu_mu, nu_tau = 1:1:1. I3ParticlePropMatrixFiller object fills the matrix under this assumption. See I3ParticlePropMatrixFiller.java in the analysis package for details. Written by S. Yoshida April 08 2007


Field Summary
protected  double cosZenithBinWidth
           
protected  double logEbinWidth
          bin widths for getInIceEffectiveArea()
protected  double mcArea
          Area where juliet particles are thrown in the MC simulation .
protected  double mcOmega
          Solid angle where juliet particles are thrown in the MC simulation
protected static double minLogNPEToFill
          The lowest level Requirement of NPEs.
protected static int minNDOMsToFill
          The lowest level Requirement of NDOMs.
protected  double observationTime
          Observation Time [sec]
 
Constructor Summary
I3ParticleFlux(java.io.InputStream in)
          Constructor
I3ParticleFlux(java.io.InputStream in, Criteria criteria, boolean isMCTruth)
          Constructor.
 
Method Summary
 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 getInIceEffectiveArea(double logEnergy, double cosZenith, int flavor, int doublet)
          Outputs the in-ice effective area(E-inice, cosZenith) determined by events passing the Criteria class.
 double getYield(double logNeutrinoEnergy)
          Calculate the Neutrino yeild [cm^2 sec sr] at the surface to give numberOfEvents you set in the argument.
 void readI3Particles(java.io.InputStream in)
          reading the I3Particle objects
 void setCriteria(Criteria criteria)
          Sets the criteria on making Histogram
 void setMCArea(double area)
          Set the MC area [cm^2]
 void setMCSolidAngle(double omega)
          Set the MC solid angle [sr]
 void setObservationTime(double time)
          Set the MC solid angle [sec]
 void switchToMCTruth()
          Switch to parameters concerned with MCtrue.
 void switchToReco()
          Switch to parameters concerned with Reco results.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

mcArea

protected double mcArea
Area where juliet particles are thrown in the MC simulation . Unit should be [cm^2].


mcOmega

protected double mcOmega
Solid angle where juliet particles are thrown in the MC simulation


observationTime

protected double observationTime
Observation Time [sec]


logEbinWidth

protected double logEbinWidth
bin widths for getInIceEffectiveArea()


cosZenithBinWidth

protected double cosZenithBinWidth

minNDOMsToFill

protected static int minNDOMsToFill
The lowest level Requirement of NDOMs. For saving memory. Only I3Particles to pass this condition will be stored in the container and subject to further analysis with higher level cuts defined by the Criteral class


minLogNPEToFill

protected static double minLogNPEToFill
The lowest level Requirement of NPEs. For saving memory. Only I3Particles to pass this condition will be stored in the container and subject to further analysis with higher level cuts defined by the Criteral class

Constructor Detail

I3ParticleFlux

public I3ParticleFlux(java.io.InputStream in)
               throws java.io.IOException
Constructor

Throws:
java.io.IOException

I3ParticleFlux

public I3ParticleFlux(java.io.InputStream in,
                      Criteria criteria,
                      boolean isMCTruth)
               throws java.io.IOException
Constructor. Register Criteia also before reading out I3Paericles. This proceduer allows to save memories by removing the propagation matrix sotored in I3Particles that did not pass the criteria.

Throws:
java.io.IOException
Method Detail

readI3Particles

public void readI3Particles(java.io.InputStream in)
                     throws java.io.IOException
reading the I3Particle objects

Throws:
java.io.IOException

setMCArea

public void setMCArea(double area)
Set the MC area [cm^2]


setMCSolidAngle

public void setMCSolidAngle(double omega)
Set the MC solid angle [sr]


setObservationTime

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


switchToMCTruth

public void switchToMCTruth()
Switch to parameters concerned with MCtrue.


switchToReco

public void switchToReco()
Switch to parameters concerned with Reco results.


setCriteria

public void setCriteria(Criteria criteria)
Sets the criteria on making Histogram


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 not involved in the calculation (averageOverDecade=false)
        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.


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.


getInIceEffectiveArea

public double getInIceEffectiveArea(double logEnergy,
                                    double cosZenith,
                                    int flavor,
                                    int doublet)
Outputs the in-ice effective area(E-inice, cosZenith) determined by events passing the Criteria class. Counting number of events (I3Particle) satisfying the criteria and calculate the passing rate. Mutiplication with the MC area gives the effective area [cm^2]

       double logEnergy   : log10(inice Energy [GeV])
       double cosZenith   : cos(Zenith angle at the IceCube Depth)
       int flavor         : flavor of the in-ice particle. Defined by Particle class
       int doublet        : doublet of the in-ice particle. Defined by Particle class

       
The logE binWidth is 10 times Particle.getDeltaLogEnergy() = 0.1 decade; The cosZenith bin is 0.1