iceCube.uhe.particles
Class I3Particle

java.lang.Object
  extended by iceCube.uhe.particles.Particle
      extended by iceCube.uhe.particles.I3Particle
All Implemented Interfaces:
java.io.Serializable

public class I3Particle
extends Particle
implements java.io.Serializable

This particle class inherited from Particle.java describes a digested IceCube event (both MC and real) in form of JULIeT particle. It has a geometry, flux weights (if MC), a propgation matix data, and digested data of the detector signals such as NPEs.

If you want to get/set valuables on MC truth, then run the methonds of this class object, p, as following.

   % p.switchToMCTruth();
   % J3UnitVector n = p.getDirectionInIceCubeCoordinate();
   
for the "reconstruction" results, then
   % p.switchToReco();
   % J3UnitVector n = p.getDirectionInIceCubeCoordinate();
   

This class can be serialized and, thus, can be stored in disk once you fill it with the data.

Written originaly for the IceCube EHE analysis by S.Yoshida 2006/12/26

See Also:
Serialized Form

Nested Class Summary
 class I3Particle.I3Data
          IceCube data class.
 
Field Summary
 
Fields inherited from class iceCube.uhe.particles.Particle
NumberOfDoublet, NumberOfFlavor, particleMasses
 
Constructor Summary
I3Particle(int flavor, int doublet)
          Constructor.
I3Particle(int flavor, int doublet, double energy)
          Constructor.
 
Method Summary
 void copyPropagationMatrixData(double[][] fNuToThis)
          Copy the given propagation matrix to the energy distribution matrix dN/dLogEin.
 double getAtmosphericMuonFlux(java.lang.String fluxName)
          Return the Atmospheric Muon flux dF/dLogE [/cm^2 sec sr] stored by String "fluxName".
 J3UnitVector getDirectionInEarthCenterCoordinate()
          Returns the unit vector of the axis direction in the Earth Center coordinate
 J3UnitVector getDirectionInIceCubeCoordinate()
          Returns the unit vector of the axis direction in the IceCube coordinate
 double getDistanceFromEarthSurfaceToIceCube()
          Get the distance from the Earth Surface that this particle has propagated before reching to the IceCube volume
 double getFirstGuessQuality()
          Returns the First Guess fit quality parameter such as the velocity
 double getGZKNeutrinoFlux(java.lang.String fluxName)
          Return the GZK neutrino flux dF/dLogE [/cm^2 sec sr] stored by String "fluxName".
 I3Particle.I3Data getIceCubeData()
          The method to access inner IceCube data class
 double getLogRecoEnergy()
          get the energy estimated by a reconstruction program
 double getMCPrimarySpectrumWeight()
          Return the MC primary spectrum weight
 J3Line getParticleAxis()
          Return the trajectory of the particle in form of J3Line
 J3Vector getR0InEarthCenterCoordinate()
          Returns the axis location (possibly, center of brightness) in the IceCube coordinate
 J3Vector getR0InIceCubeCoordinate()
          Returns the axis location (possibly, center of brightness) in the Earth Center coordinate
 double getRecoEnergy()
          get the energy estimated by a reconstruction program
 boolean isMCTruth()
          Tells if this object returns valuables on MC Truth.
 java.util.Iterator iteratorOfAtmosphericMuonFlux()
          Return iterator to the map of GZK neutrino fluxes.
 java.util.Iterator iteratorOfGZKNeutrinoFlux()
          Return iterator to the map of GZK neutrino fluxes.
 void putRecoEnergy(double energy)
          put the energy estimated by a reconstruction program
 void removeAtmosphericMuonFlux(java.lang.String fluxName)
          Remove the Atmospheric Muon flux data stored by String "fluxName"
 void removeGZKNeutrinoFlux(java.lang.String fluxName)
          Remove the GZK neutrino flux data stored by String "fluxName"
 void setAtmosphericMuonFlux(double flux, java.lang.String fluxName)
          Sets the Atmospheric Muon flux dF/dLogE [/cm^2 sec sr] for weight.
 void setDistanceFromEarthSurfaceToIceCube(double distance)
          Set the distance from the Earth Surface that this particle has propagated before reching to the IceCube volume
 void setFirstGuessQuality(double quality)
          put the First Guess fit quality parameter such as the velocity
 void setGZKNeutrinoFlux(double flux, java.lang.String fluxName)
          Sets the GZK neutrino flux dF/dLogE [/cm^2 sec sr] for weight.
 void setMCPrimarySpectrumWeight(double weight)
          Set the MC primary spectrum weight You have to switch to MCTruth (by calling switchToMCTruth()) to put this weight, due to the safety reasons.
 void setParticleAxisInEarthCenterCoordinate(J3Line axis)
          Sets the particle axis defined in the Earth Center coordinate
 void setParticleAxisInIceCubeCoordinate(J3Line axis)
          Sets the particle axis defined in the IceCube coordinate
 void switchToMCTruth()
          Switch to parameters concerned with MCtrue.
 void switchToReco()
          Switch to parameters concerned with Reco results.
 void transformParticleAxisToEarthCenterCoordinate()
          Transofrm the particle axis vector from the IceCube coordinate to the Earth Cencer coordinate
 void transformParticleAxisToIceCubeCoordinate()
          Transofrm the particle axis vector from the Earth Center coordinate to the IceCube coordinate
 
Methods inherited from class iceCube.uhe.particles.Particle
generateLogEnergyMatrix, getDeltaLogEnergy, getDimensionOfLogEnergyMatrix, getDoublet, getEnergy, getFlavor, getLifeTime, getLogEnergy, getLogEnergyMatrix, getLogEnergyMinimum, getMass, isValidDoublet, isValidEnergy, isValidFlavor, particleName, putDeltaLogEnergy, putDimensionOfLogEnergyMatrix, putEnergy, putLogEnergy, putLogEnergyMatrix, putLogEnergyMatrix, putLogEnergyMinimum
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

I3Particle

public I3Particle(int flavor,
                  int doublet,
                  double energy)
Constructor.
           flabor ... flavor valuable
           doblet ... doublet valuable
           energy ... initial Energy [GeV]
           


I3Particle

public I3Particle(int flavor,
                  int doublet)
Constructor.
           flabor ... flavor valuable
           doblet ... doublet valuable
           

Method Detail

switchToMCTruth

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


switchToReco

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


isMCTruth

public boolean isMCTruth()
Tells if this object returns valuables on MC Truth. If not, it returns valuables resulted from reconstruction


putRecoEnergy

public void putRecoEnergy(double energy)
put the energy estimated by a reconstruction program


getRecoEnergy

public double getRecoEnergy()
get the energy estimated by a reconstruction program


getLogRecoEnergy

public double getLogRecoEnergy()
get the energy estimated by a reconstruction program


setFirstGuessQuality

public void setFirstGuessQuality(double quality)
put the First Guess fit quality parameter such as the velocity


setDistanceFromEarthSurfaceToIceCube

public void setDistanceFromEarthSurfaceToIceCube(double distance)
Set the distance from the Earth Surface that this particle has propagated before reching to the IceCube volume


getDistanceFromEarthSurfaceToIceCube

public double getDistanceFromEarthSurfaceToIceCube()
Get the distance from the Earth Surface that this particle has propagated before reching to the IceCube volume


getFirstGuessQuality

public double getFirstGuessQuality()
Returns the First Guess fit quality parameter such as the velocity


setParticleAxisInIceCubeCoordinate

public void setParticleAxisInIceCubeCoordinate(J3Line axis)
Sets the particle axis defined in the IceCube coordinate


setParticleAxisInEarthCenterCoordinate

public void setParticleAxisInEarthCenterCoordinate(J3Line axis)
Sets the particle axis defined in the Earth Center coordinate


getDirectionInIceCubeCoordinate

public J3UnitVector getDirectionInIceCubeCoordinate()
Returns the unit vector of the axis direction in the IceCube coordinate


getDirectionInEarthCenterCoordinate

public J3UnitVector getDirectionInEarthCenterCoordinate()
Returns the unit vector of the axis direction in the Earth Center coordinate


getR0InIceCubeCoordinate

public J3Vector getR0InIceCubeCoordinate()
Returns the axis location (possibly, center of brightness) in the Earth Center coordinate


getR0InEarthCenterCoordinate

public J3Vector getR0InEarthCenterCoordinate()
Returns the axis location (possibly, center of brightness) in the IceCube coordinate


getParticleAxis

public J3Line getParticleAxis()
Return the trajectory of the particle in form of J3Line


transformParticleAxisToEarthCenterCoordinate

public void transformParticleAxisToEarthCenterCoordinate()
Transofrm the particle axis vector from the IceCube coordinate to the Earth Cencer coordinate


transformParticleAxisToIceCubeCoordinate

public void transformParticleAxisToIceCubeCoordinate()
Transofrm the particle axis vector from the Earth Center coordinate to the IceCube coordinate


setGZKNeutrinoFlux

public void setGZKNeutrinoFlux(double flux,
                               java.lang.String fluxName)
Sets the GZK neutrino flux dF/dLogE [/cm^2 sec sr] for weight. Calculated by PropagatingNeutrinoFlux class in the neutrinoModel package.
        flux    :   dF/dLogE [/cm^2 sec sr]
        fluxName:   model name like "YT m=4 Zmax=4"
        


setAtmosphericMuonFlux

public void setAtmosphericMuonFlux(double flux,
                                   java.lang.String fluxName)
Sets the Atmospheric Muon flux dF/dLogE [/cm^2 sec sr] for weight. Calculated by PropagatingAtmMuonFlux class in the muonModel package.
        flux    :   dF/dLogE [/cm^2 sec sr]
        fluxName:   model name like "Elbert bundle model"
        


getGZKNeutrinoFlux

public double getGZKNeutrinoFlux(java.lang.String fluxName)
Return the GZK neutrino flux dF/dLogE [/cm^2 sec sr] stored by String "fluxName". If it finds no data stored, return -1.0 with the warning message.


removeGZKNeutrinoFlux

public void removeGZKNeutrinoFlux(java.lang.String fluxName)
Remove the GZK neutrino flux data stored by String "fluxName"


getAtmosphericMuonFlux

public double getAtmosphericMuonFlux(java.lang.String fluxName)
Return the Atmospheric Muon flux dF/dLogE [/cm^2 sec sr] stored by String "fluxName". If it finds no data stored, return -1.0 with the warning message.


removeAtmosphericMuonFlux

public void removeAtmosphericMuonFlux(java.lang.String fluxName)
Remove the Atmospheric Muon flux data stored by String "fluxName"


iteratorOfGZKNeutrinoFlux

public java.util.Iterator iteratorOfGZKNeutrinoFlux()
Return iterator to the map of GZK neutrino fluxes. You can use this iterator to loop over all fluxes data stored by setGZKNeutrinoFLux(flux, fluxname).
       A example :
        Iterator gzkIterator = iceParticle.iteratorOfGZKNeutrinoFlux();
        while(gzkIterator.hasNext()){
            Map.Entry entry = (Map.Entry )(gzkIterator.next());
            Double flux = (Double )(entry.getValue());
            String name = (String )(entry.getKey());
        }
        


iteratorOfAtmosphericMuonFlux

public java.util.Iterator iteratorOfAtmosphericMuonFlux()
Return iterator to the map of GZK neutrino fluxes. You can use this iterator to loop over all fluxes data stored by setAtmosphericMuonFLux(flux, fluxname)


copyPropagationMatrixData

public void copyPropagationMatrixData(double[][] fNuToThis)
Copy the given propagation matrix to the energy distribution matrix dN/dLogEin. The propagation matrix calculated by PropagationMatrix.java in the propagation package is in form of something like FnuEToNuE(logEin,logEout). logEout here should be equal to THIS particle energy while logEin is that of parimary particle entering into the earth surface. This method automatically builds dN/dLogEin from the propagation matrix data and store it in the particle class's energy distribution matrix.
       double[][] fNuToThis  :   A Propagation Matrix
       


setMCPrimarySpectrumWeight

public void setMCPrimarySpectrumWeight(double weight)
Set the MC primary spectrum weight You have to switch to MCTruth (by calling switchToMCTruth()) to put this weight, due to the safety reasons.


getMCPrimarySpectrumWeight

public double getMCPrimarySpectrumWeight()
Return the MC primary spectrum weight


getIceCubeData

public I3Particle.I3Data getIceCubeData()
The method to access inner IceCube data class