35#define INCLXX_IN_GEANT4_MODE 1
66 std::list<Intersection> theIntersections;
69 for(
ParticleIter p=projectiles.begin(); p!=projectiles.end(); ++p) {
73 (*p)->getPropagationVelocity(),
74 n->getUniverseRadius()));
76 theIntersections.push_back(intersection);
79 (*p)->setPosition(intersection.
position);
82 if(intersection.
time < theFirstEntryTime) {
83 theFirstEntryTime = intersection.
time;
84 theFirstID = (*p)->getID();
89 std::list<Intersection>::const_iterator intIter = theIntersections.begin();
90 for(
ParticleIter p=projectiles.begin(); p!=projectiles.end(); ++p, ++intIter) {
92 if((*intIter).exists) {
95 if((*p)->getID() == theFirstID) {
100 theAvatarList.push_back(
new ParticleEntryAvatar(intIter->time - theFirstEntryTime, n, *p));
105 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.
static Intersection getEarlierTrajectoryIntersection(const ThreeVector &x0, const ThreeVector &p, const G4double r)
Compute the first intersection of a straight particle trajectory with a sphere.
ThreeVector getPropagationVelocity() const
Get the propagation velocity of the particle.
const G4INCL::ThreeVector & getPosition() const
virtual void setPosition(const G4INCL::ThreeVector &position)
std::list< IAvatar * > IAvatarList
std::list< G4INCL::Particle * > ParticleList
std::list< G4INCL::Particle * >::const_iterator ParticleIter
Intersection-point structure.