iceCube.uhe.event
Class Event

java.lang.Object
  extended by iceCube.uhe.event.Event

public class Event
extends java.lang.Object


   This class defines the behavior of an event running
   in the madium (rock/ice). This is the fundamenthal class
   for propagating particles with the Monte Carlo Method.

   Running particles by numerically solving the transport
   equations, use PropagationMatrix class in the iceCube.uhe.propagation
   package.

   The relevant interactions are registered in the List
   inside the constructor. 

   Modified for Glashow Resonance by M.Ono December 2 2007.
   


Constructor Summary
Event(MonteCarloBase[] mcBases, Particle p, ParticlePoint s)
          Constructor.
 
Method Summary
 void changeParticle(int newFlavor, int newDoublet)
          Change the particle to the different kind.
 double collideNow(RandomGenerator rand)
          The propagation particle now collides with Nuclear/Nucleon and change its energy via intertactions determined in GetPhysicalPathLength().
 double getCascadeEmgEnergy()
           
 double getCascadeHadronEnergy()
           
 double getCascadeTotalEnergy()
           
 int getFlavorByInteractionsInPlay()
          Get the produced particle's Flavor
 double getPhysicalPathLength(RandomGenerator rand)
          Calculate the stepsize determined by sampling the interaction points for all the interaction channels registred.
 double getStepDx()
          Get the step size for traceParticle()
 java.lang.String interactionsNameInPlay()
          Get the Interaction's name which has just interacted with your particle
 void registerMonteCarloBase(MonteCarloBase[] mcBases)
          Register the MonteCarloBase objects involved in the propagation
 void setStepDx(double dx)
          Set the step size for traceParticle()
 void traceParticle(double pathLength)
          Trace particle running by a given pathlength [g/cm^2]
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Event

public Event(MonteCarloBase[] mcBases,
             Particle p,
             ParticlePoint s)
Constructor. Allocating Lists to the MonteCarloBase, and register the Particle and ParticlePoint classes.

Method Detail

registerMonteCarloBase

public void registerMonteCarloBase(MonteCarloBase[] mcBases)
Register the MonteCarloBase objects involved in the propagation


getPhysicalPathLength

public double getPhysicalPathLength(RandomGenerator rand)
Calculate the stepsize determined by sampling the interaction points for all the interaction channels registred. The shortest path length is picked up and returned. The determined interaction is put in the class valuable "mcBaseInPlay".


interactionsNameInPlay

public java.lang.String interactionsNameInPlay()
Get the Interaction's name which has just interacted with your particle


getFlavorByInteractionsInPlay

public int getFlavorByInteractionsInPlay()
Get the produced particle's Flavor


collideNow

public double collideNow(RandomGenerator rand)
The propagation particle now collides with Nuclear/Nucleon and change its energy via intertactions determined in GetPhysicalPathLength(). The energy of produced particle (which may be equal to cascade energy depending on the interaction) is returned. if returned 0, it implies that the primary particle's kinetic energy becomes 0. The particle must stop at this moment.


getCascadeEmgEnergy

public double getCascadeEmgEnergy()

getCascadeHadronEnergy

public double getCascadeHadronEnergy()

getCascadeTotalEnergy

public double getCascadeTotalEnergy()

changeParticle

public void changeParticle(int newFlavor,
                           int newDoublet)
Change the particle to the different kind. This method must be called when decay such as tau to mu takes place.
        newFlavor   : flavor of a new particle.
        newDoublet  : doublet of a new particle.
        


setStepDx

public void setStepDx(double dx)
Set the step size for traceParticle()


getStepDx

public double getStepDx()
Get the step size for traceParticle()


traceParticle

public void traceParticle(double pathLength)
Trace particle running by a given pathlength [g/cm^2]