102 void addParticleEntryAvatar(
IAvatar *a);
105 void addParticleEntryAvatars(
IAvatarList const &al);
135 void addIncomingParticle(
Particle *
const p);
151 for(
ParticleIter iter=incoming.begin(), e=incoming.end(); iter!=e; ++iter) {
163 void particleHasBeenUpdated(
Particle *
const);
166 void removeScheduledAvatars();
184 void particleHasBeenEjected(
Particle *
const);
205 void particleHasBeenDestroyed(
Particle *
const);
211 void particleHasEntered(
Particle *
const particle);
234 for(
ParticleIter p=outgoing.begin(), e=outgoing.end(); p!=e; ++p) {
235 if((*p)->isProjectileSpectator()) {
237 spectators.push_back(*p);
242 for(
ParticleIter i=spectators.begin(); i!=spectators.end(); ++i) {
263 for(
ParticleIter i=inside.begin(), e=inside.end(); i!=e; ++i) {
264 if(!(*i)->isTargetSpectator())
294 void clearOutgoing();
305 void loadParticles(std::string
const &filename);
328 std::string printParticleConfiguration();
333 void writeParticles(std::string
const &filename);
338 std::string printAvatars();
340 G4bool containsCollisions()
const;
342#if defined(INCL_AVATAR_SEARCH_FullSort) || defined(INCL_AVATAR_SEARCH_MinElement)
384 void disconnectAvatarFromParticle(
IAvatar *
const a,
Particle *
const p);
393 void removeAvatar(
IAvatar *
const a);
399 std::multimap<Particle*, IAvatar*> particleAvatarConnections;
400 typedef std::multimap<Particle*, IAvatar*>::value_type PAPair;
401 typedef std::multimap<Particle*, IAvatar*>::iterator PAIter;
402 typedef std::pair<PAIter, PAIter> PAIterPair;
405 std::set<IAvatar*> avatarsToBeRemoved;
406 typedef std::set<IAvatar*>::const_iterator ASIter;