84 if(toBeCaned->empty())
88 std::vector<G4CollisionInitialState *>::iterator collIter, collIter2;
89 std::vector<G4KineticTrack *>::iterator trackIter;
92 for(collIter = theCollisionList->begin();
93 collIter != theCollisionList->end(); collIter++)
95 collision = *collIter;
97 G4bool getNextCollision =
false;
98 for(trackIter = toBeCaned->begin(); trackIter != toBeCaned->end(); ++trackIter)
100 if((collision->
GetTarget() == *trackIter) ||
103 toRemove.push_back(collision);
106 for(
size_t tcount=0; tcount<targets.size(); tcount++)
108 if(targets[tcount] == *trackIter)
110 toRemove.push_back(collision);
111 getNextCollision =
true;
115 if(getNextCollision)
break;
120 for(collIter = toRemove.begin(); collIter != toRemove.end(); ++collIter)
122 collision = *collIter;
123 collIter2 = std::find(theCollisionList->begin(),
124 theCollisionList->end(), collision);
125 theCollisionList->erase(collIter2);
144 std::vector<G4CollisionInitialState *>::iterator i;
145 for(i = theCollisionList->begin(); i != theCollisionList->end(); ++i)
147 if(nextTime > (*i)->GetCollisionTime())
149 nextTime = (*i)->GetCollisionTime();
153 #ifdef debug_G4CollisionManager
154 if(theNext == 0 && theCollisionList->size()!=0)
157 G4cerr <<
"G4CollisionManager::GetNextCollision - Fatal"<<
G4endl;
158 G4cerr <<
" number of collisions left "<<theCollisionList->size()<<
G4endl;
159 for(i = theCollisionList->begin(); i != theCollisionList->end(); ++i)
161 G4cerr <<
" Time to collision "<<(*i)->GetCollisionTime()<<
" "<<
G4endl;
162 G4cerr <<
" projectile "<<(*i)->GetPrimary()->Get4Momentum()<<
" "
163 <<(*i)->GetPrimary()->GetDefinition()->GetParticleName()<<
G4endl;
164 if ((*i)->GetTarget())
G4cerr <<
" target "<<(*i)->GetTarget()->Get4Momentum()<<
" "
165 <<(*i)->GetTarget()->GetDefinition()->GetParticleName()<<
G4endl;
167 G4cerr <<
"G4CollisionManager::GetNextCollision - End of message"<<
G4endl;
G4int GetPDGEncoding() const
const G4String & GetParticleName() const