40 :userStackingAction(0),verboseLevel(0),numberOfAdditionalWaitingStacks(0)
43 #ifdef G4_USESMARTSTACK
61 G4cout <<
"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" <<
G4endl;
63 G4cout <<
"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" <<
G4endl;
80 const{
return false; }
98 ED <<
"A track without proper process manager is pushed into the track stack.\n"
101 { ED <<
"created by a primary particle generator."; }
108 { ED <<
"creaded by unknown process."; }
110 G4Exception(
"G4StackManager::PushOneTrack",
"Event10051",
120 if(classification==
fKill)
125 G4cout <<
" ---> G4Track " << newTrack <<
" (trackID "
131 delete newTrajectory;
136 switch (classification)
148 G4int i = classification - 10;
151 ED <<
"invalid classification " << classification <<
G4endl;
152 G4Exception(
"G4StackManager::PushOneTrack",
"Event0051",
170 G4cout <<
"### pop requested out of "
179 <<
" waiting tracks are re-classified to" <<
G4endl;
195 <<
" waiting tracks." <<
G4endl;
207 G4cout <<
"Selected G4StackedTrack : " << &selectedStackedTrack
208 <<
" with G4Track " << selectedStackedTrack.
GetTrack()
215 return selectedTrack;
232 switch (classification)
248 G4int i = classification - 10;
251 ED <<
"invalid classification " << classification <<
G4endl;
252 G4Exception(
"G4StackManager::ReClassify",
"Event0052",
268 G4int n_passedFromPrevious = 0;
276 <<
" postponed tracked are now shifted to the stack." <<
G4endl;
296 if(classification==
fKill)
303 aTrack->
SetTrackID(-(++n_passedFromPrevious));
304 switch (classification)
316 G4int i = classification - 10;
319 ED <<
"invalid classification " << classification <<
G4endl;
320 G4Exception(
"G4StackManager::PrepareNewEvent",
"Event0053",
331 return n_passedFromPrevious;
356 if(origin==destination)
return;
357 if(origin==
fKill)
return;
376 if(destination==
fKill)
398 int i = destination - 10;
417 if(origin==destination)
return;
418 if(origin==
fKill)
return;
438 if(destination==
fKill)
440 if( originStack && originStack->
GetNTrack() ) {
466 int i = destination - 10;
470 if(originStack && originStack->
GetNTrack()) {
472 if(targetStack) { targetStack->
PushToStack(aStackedTrack); }
477 if(targetStack) { targetStack->
PushToStack(aStackedTrack); }
552 return classification;
G4int numberOfAdditionalWaitingStacks
void SetStackManager(G4StackManager *value)
std::ostringstream G4ExceptionDescription
G4Track * PopNextTrack(G4VTrajectory **newTrajectory)
void ClearPostponeStack()
std::vector< G4TrackStack * > additionalWaitingStacks
void SetTrackID(const G4int aValue)
void SetUserStackingAction(G4UserStackingAction *value)
G4ClassificationOfNewTrack
void ClearWaitingStack(int i=0)
const G4String & GetParticleName() const
G4TrackStack * waitingStack
void PushToStack(const G4StackedTrack &aStackedTrack)
G4int GetNWaitingTrack(int i=0) const
G4int operator==(const G4StackManager &right) const
void SetNumberOfAdditionalWaitingStacks(G4int iAdd)
const G4ParticleDefinition * GetParticleDefinition() const
G4int GetParticleDefinitionID() const
G4int GetMaxNTrack() const
const XML_Char int const XML_Char * value
G4int GetNPostponedTrack() const
virtual G4ClassificationOfNewTrack ClassifyNewTrack(const G4Track *aTrack)
G4ClassificationOfNewTrack DefaultClassification(G4Track *aTrack)
G4StackingMessenger * theMessenger
G4TrackStack * urgentStack
const G4String & GetProcessName() const
G4StackedTrack PopFromStack()
G4TrackStack * postponeStack
void TransferOneStackedTrack(G4ClassificationOfNewTrack origin, G4ClassificationOfNewTrack destination)
void SetVerboseLevel(G4int const value)
G4int GetNUrgentTrack() const
G4UserStackingAction * userStackingAction
G4int GetNTotalTrack() const
virtual void PrepareNewEvent()
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
G4int operator!=(const G4StackManager &right) const
void TransferTo(G4TrackStack *aStack)
G4int PushOneTrack(G4Track *newTrack, G4VTrajectory *newTrajectory=0)
void SetParentID(const G4int aValue)
const G4VProcess * GetCreatorProcess() const
G4GLOB_DLL std::ostream G4cout
void TransferStackedTracks(G4ClassificationOfNewTrack origin, G4ClassificationOfNewTrack destination)
G4TrackStatus GetTrackStatus() const
G4VTrajectory * GetTrajectory() const
G4Track * GetTrack() const
G4int GetParentID() const