34#define INCLXX_IN_GEANT4_MODE 1
65 std::list<Intersection> theIntersections;
68 for(
ParticleIter p=projectiles.begin(), e=projectiles.end(); p!=e; ++p) {
72 (*p)->getPropagationVelocity(),
73 n->getUniverseRadius()));
75 theIntersections.push_back(intersection);
78 (*p)->setPosition(intersection.
position);
81 if(intersection.
time < theFirstEntryTime) {
82 theFirstEntryTime = intersection.
time;
83 theFirstID = (*p)->getID();
88 std::list<Intersection>::const_iterator intIter = theIntersections.begin();
89 for(
ParticleIter p=projectiles.begin(), e=projectiles.end(); p!=e; ++p, ++intIter) {
91 if((*intIter).exists) {
94 if((*p)->getID() == theFirstID) {
104 return theAvatarList;
Placeholder class for no Coulomb distortion.
Simple class for computing intersections between a straight line and a sphere.
ParticleList const & getParticles() const
ParticleEntryAvatar * bringToSurface(Particle *const p, Nucleus *const n) const
Position the particle on the surface of the nucleus.
ThreeVector getPropagationVelocity() const
Get the propagation velocity of the particle.
const G4INCL::ThreeVector & getPosition() const
virtual void setPosition(const G4INCL::ThreeVector &position)
Intersection getEarlierTrajectoryIntersection(const ThreeVector &x0, const ThreeVector &p, const G4double r)
Compute the first intersection of a straight particle trajectory with a sphere.
ParticleList::const_iterator ParticleIter
Intersection-point structure.