4 #include <utl/PhysicalConstants.h>
12 SenecaShowerFileParticleIterator::SenecaShowerFileParticleIterator(
SenecaFileParser*
const senecaParser) :
77 if (fCurrentSenecaParticle == NULL)
80 const int particleID = SenecaToDPAParticle(fCurrentSenecaParticle->ID);
86 Particle(particleID, Particle::eShower,
87 Point(fCurrentSenecaParticle->X *
m,
88 fCurrentSenecaParticle->Y *
m,
92 fCurrentSenecaParticle->Py *
GeV,
93 -fCurrentSenecaParticle->Pz *
GeV,
95 TimeInterval(fCurrentSenecaParticle->T / .299 *
ns), fCurrentSenecaParticle->Weight);
97 return &fCurrentParticle;
104 switch (senecaParticleID) {
SenecaParticleRecord * GetParticleRecord()
Describes a particle for Simulation.
unsigned int GetPosition()
unsigned int fCurrentPosition
virtual ~SenecaShowerFileParticleIterator()
int SenecaToDPAParticle(int senecaParticleID)
boost::shared_ptr< const CoordinateTransformer > CoordinateSystemPtr
Shared pointer for coordinate systems.
Status
Return code for seek operation.
Status GotoPosition(unsigned int thePosition)
virtual void Rewind()
Rewind the particle list in the shower file to the beginning.
A TimeInterval is used to represent time elapsed between two events.
SenecaFileParser * fSenecaFile
Status SetSenecaFileParser(SenecaFileParser *const senecaParser)
unsigned int fOriginalPosition
virtual utl::Particle * GetOneParticle(const utl::CoordinateSystemPtr &groundCS)
Member function to fetch the next particle.
SenecaShowerFileParticleIterator()
SenecaParticleRecord * fCurrentSenecaParticle