iceCube.uhe.propagation
Class RunPropagationMatrix

java.lang.Object
  extended by iceCube.uhe.propagation.RunPropagationMatrix
Direct Known Subclasses:
RunPropagationMatrixBHevap

public class RunPropagationMatrix
extends java.lang.Object

        Run the Propagation matrix to calculate the energy distribution
        and the flux of particles after propagation in the Earth. 

        The Incoming Nadir angle, the switches to control
        the interaction and decay channels involved, and the file name
        to record the calculated matrix are read thorugh the arguments.

interactionsSwitch
bit8    bit7     bit6      bit5     bit4     bit3     bit2     bit1     bit0
GlaRes  LepWeak  PhotoNucl Bremss  KnockOn  PairCHeavy PairC  Neutral  Charged

decaySwitch
bit7-2   bit 1     bit0
Reserv.  TauDecay  MuDecay


Constructor Summary
RunPropagationMatrix()
          Constructor to do nothing - for subclass modules
RunPropagationMatrix(double nadirAngle, int intSwitch, int decaySwitch, int mediumNumber)
           Constructor.
RunPropagationMatrix(double nadirAngle, int intSwitch, int decaySwitch, int mediumNumber, double neutrinoFactor)
           
 
Method Summary
 void saveMatrix(java.io.DataOutputStream out)
          Save the calculated propagatin matrix
 void traceParticles()
           Same as traceParticles(double trajectoryLength) but the end point is decided to be where the particles emerged from the underground.
 void traceParticles(double trajectoryLength)
           Trace particles running over a finite distance from the current location l to the length of the trajectory.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RunPropagationMatrix

public RunPropagationMatrix(double nadirAngle,
                            int intSwitch,
                            int decaySwitch,
                            int mediumNumber)
                     throws java.io.IOException
        Constructor. Generate the relevant particles objects and 
        the propagation matrix object. The medium is assumed to be
        the standard rock.

        double nadirAngle:   Nadir angle [deg] of trajectory of the incoming particles.
        int inSwitch:        Interaction Switch to turn on/off the individual interaction
                             channel.
        int decaySwitch:     Decay Switch to turn on/off the individual decay channel.
        int mediumNumber:    Medium number 0 ice 1 rock
        

Throws:
java.io.IOException

RunPropagationMatrix

public RunPropagationMatrix()
Constructor to do nothing - for subclass modules


RunPropagationMatrix

public RunPropagationMatrix(double nadirAngle,
                            int intSwitch,
                            int decaySwitch,
                            int mediumNumber,
                            double neutrinoFactor)
                     throws java.io.IOException
Throws:
java.io.IOException
Method Detail

traceParticles

public void traceParticles(double trajectoryLength)
        Trace particles running over a finite distance 
        from the current location l to the length of the trajectory.
        This method is actually doing the following processes:

        (1) Calculate how many times the infinitesimal propagation
            (dX [g/cm^2]) has to be invoked for the entire full
            propagation of the particles from the start point to
            the end point.
        (2) Propagate particles 10 x dX[g/cm^2] by calling propagateDX( )
            in the PropagationMatrix object 10 times.
        (3) Propagate the particles involved over a 2^k 10dX [g/cm^2] 
            by calling propagateDXpowered( ) in the PropagationMatrix object 
            k times.
        (4) During (3), store the propagation matrix when particles reaches
            3 % of the total path in their journey. This stored matrix
            is used for the final propagation steps in (5) next.
        (5) Propagate the particles over 0.03 x total path by mulitplication
            of the progation matrix stored in (4). Finish the calculation
            when the particles reaches the final point.

        (6) Repeat (1)-(5) until the particles finishes their travel.
            By doing so, you can reasonably take into account
            the r-dependence of the local medium density which decides
            relative constributions of decay over interactions.
        


traceParticles

public void traceParticles()
       Same as traceParticles(double trajectoryLength)
       but the end point is decided to be where the particles
       emerged from the underground.
       


saveMatrix

public void saveMatrix(java.io.DataOutputStream out)
                throws java.io.IOException
Save the calculated propagatin matrix

Throws:
java.io.IOException