package hep.physics.event.generator;
import hep.physics.particle.Particle;
import hep.physics.particle.properties.ParticleType;
import hep.physics.vec.Hep3Vector;
import hep.physics.vec.HepLorentzVector;
import java.util.List;
import hep.physics.particle.BasicParticle;
import hep.physics.event.generator.diagnostic.*;
/**
* A factory used for creating events and particles.
* The user can override this class to provide custom implementations
* of event or particle.
* @author tonyj
*/
public class GeneratorFactory
{
/**
* Create a new event
* @param run The run number
* @param event The event number
* @return The created event.
*/
public MCEvent createEvent(int run, int event)
{
return new GeneratorEvent(run, event);
}
/**
* Create a new particle
* @param origin The particles creation point
* @param p The particles momentum and energy
* @param ptype The particles type
* @param status The particles status
* @param time The particles creation time
* @return The newly created particle
*/
public BasicParticle createParticle(Hep3Vector origin,HepLorentzVector p,ParticleType ptype,int status, double time)
{
return new BasicParticle(origin,p,ptype,status,time);
}
}