60 G4cout<<
"G4SteppingManager::GetProcessNumber: is called track="
67 G4cerr <<
"ERROR - G4SteppingManager::GetProcessNumber()" << G4endl
68 <<
" ProcessManager is NULL for particle = "
71 G4Exception(
"G4SteppingManager::GetProcessNumber()",
"Tracking0011",
81 G4cout <<
"G4SteppingManager::GetProcessNumber: #ofAtRest="
90 G4cout <<
"G4SteppingManager::GetProcessNumber:#ofAlongStp="
99 G4cout <<
"G4SteppingManager::GetProcessNumber: #ofPostStep="
107 G4cerr <<
"ERROR - G4SteppingManager::GetProcessNumber()" << G4endl
109 <<
" ; is smaller then one of MAXofAtRestLoops= "
113 G4Exception(
"G4SteppingManager::GetProcessNumber()",
115 "The array size is smaller than the actual No of processes.");
190 G4Exception(
"G4SteppingManager::DefinePhysicalStepLength()",
"Tracking1001",
FatalException,
"This feature no more supported");
194 (*fSelectedPostStepDoItVector)[np] =
Forced;
208 (*fSelectedPostStepDoItVector)[nrest] =
InActivated;
245 safetyProposedToAndByProcess,
263 if(kp == MAXofAlongStepLoops-1)
288 G4double lifeTime, shortestLifeTime;
293 unsigned int NofInactiveProc=0;
308 (*fSelectedAtRestDoItVector)[ri] =
Forced;
312 if(lifeTime < shortestLifeTime ){
313 shortestLifeTime = lifeTime;
323 if(NofInactiveProc==MAXofAtRestLoops){
324 G4Exception(
"G4SteppingManager::InvokeAtRestDoItProcs()",
"Tracking0013",
356 for(
G4int DSecLoop=0 ; DSecLoop< num2ndaries; DSecLoop++){
375 ED <<
"A track without proper process manager is pushed into the track stack.\n"
378 { ED <<
"created by a primary particle generator."; }
385 { ED <<
"creaded by unknown process."; }
387 G4Exception(
"G4SteppingManager::InvokeAtRestDoItProcs()",
"Tracking10051",
395 delete tempSecondaryTrack;
448 for(
G4int DSecLoop=0 ; DSecLoop< num2ndaries; DSecLoop++){
467 ED <<
"A track without proper process manager is pushed into the track stack.\n"
470 { ED <<
"created by a primary particle generator."; }
477 { ED <<
"creaded by unknown process."; }
479 G4Exception(
"G4SteppingManager::InvokeAlongStepDoItProcs()",
"Tracking10051",
487 delete tempSecondaryTrack;
525 G4int Cond = (*fSelectedPostStepDoItVector)[MAXofPostStepLoops-np-1];
546 G4int Cond2 = (*fSelectedPostStepDoItVector)[MAXofPostStepLoops-np1-1];
582 for(
G4int DSecLoop=0 ; DSecLoop< num2ndaries; DSecLoop++){
601 ED <<
"A track without proper process manager is pushed into the track stack.\n"
604 { ED <<
"created by a primary particle generator."; }
611 { ED <<
"creaded by unknown process."; }
613 G4Exception(
"G4SteppingManager::InvokePSDIP()",
"Tracking10053",
621 delete tempSecondaryTrack;
642 G4bool tBelowCutEnergyAndSafety =
false;
645 if (tPtclIdx<0) {
return; }
654 tBelowCutEnergyAndSafety =
true;
665 if( tBelowCutEnergyAndSafety )
G4double GetKineticEnergy() const
G4ProcessVector * fAtRestGetPhysIntVector
G4int GetCoupleIndex(const G4MaterialCutsCouple *aCouple) const
G4int GetNumberOfSecondaries() const
virtual void DPSLStarted()=0
void SetStepLength(G4double value)
std::ostringstream G4ExceptionDescription
G4SelectedPostStepDoItVector * fSelectedPostStepDoItVector
size_t MAXofPostStepLoops
virtual void DPSLPostStep()=0
G4ProcessVector * fPostStepDoItVector
G4double AtRestGPIL(const G4Track &track, G4ForceCondition *condition)
static const size_t SizeOfSelectedDoItVector
G4TrackVector * fSecondary
const G4String & GetParticleName() const
static G4int GetIndex(const G4String &name)
virtual void AlongStepDoItOneByOne()=0
void SetCreatorProcess(const G4VProcess *aValue)
G4VPhysicalVolume * GetNextVolume() const
G4VParticleChange * fParticleChange
G4ParticleDefinition * GetDefinition() const
G4ProcessVector * GetAlongStepProcessVector(G4ProcessVectorTypeIndex typ=typeGPIL) const
virtual G4Step * UpdateStepForAtRest(G4Step *Step)
const std::vector< G4double > * GetEnergyCutsVector(size_t pcIdx) const
G4double CalculateSafety()
size_t fAtRestDoItProcTriggered
G4GPILSelection fGPILSelection
void SetProcessDefinedStep(const G4VProcess *aValue)
G4bool IsGoodForTracking() const
void SetStepLength(G4double value)
size_t MAXofAlongStepLoops
G4ProcessVector * fAtRestDoItVector
G4double GetCharge() const
G4StepPoint * fPreStepPoint
virtual void PostStepDoItOneByOne()=0
G4ProcessVector * fPostStepGetPhysIntVector
const G4String & GetProcessName() const
G4VSteppingVerbose * fVerbose
void SetKineticEnergy(const G4double aValue)
virtual G4VParticleChange * AtRestDoIt(const G4Track &track, const G4Step &stepData)=0
G4StepPoint * GetPostStepPoint() const
G4double GetRange(const G4ParticleDefinition *aParticle, G4double kineticEnergy, const G4MaterialCutsCouple *couple)
const G4MaterialCutsCouple * GetMaterialCutsCouple() const
G4int fN2ndariesAlongStepDoIt
G4GLOB_DLL std::ostream G4cerr
void AddTotalEnergyDeposit(G4double value)
void DefinePhysicalStepLength()
G4ProcessVector * GetPostStepProcessVector(G4ProcessVectorTypeIndex typ=typeGPIL) const
G4ProcessVector * fAlongStepDoItVector
virtual G4VParticleChange * AlongStepDoIt(const G4Track &track, const G4Step &stepData)=0
static G4ProductionCutsTable * GetProductionCutsTable()
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
G4ProcessVector * fAlongStepGetPhysIntVector
G4ProcessVector * GetAtRestProcessVector(G4ProcessVectorTypeIndex typ=typeGPIL) const
G4ProcessManager * GetProcessManager() const
void SetParentID(const G4int aValue)
const G4VProcess * GetCreatorProcess() const
G4ForceCondition fCondition
void ApplyProductionCut(G4Track *)
G4TrackStatus GetTrackStatus() const
void SetSafety(const G4double aValue)
G4int GetPDGEncoding() const
G4GLOB_DLL std::ostream G4cout
G4Track * GetSecondary(G4int anIndex) const
void InvokeAtRestDoItProcs()
G4int fN2ndariesAtRestDoIt
void InvokeAlongStepDoItProcs()
virtual void DPSLAlongStep()=0
static G4LossTableManager * Instance()
virtual G4Step * UpdateStepForAlongStep(G4Step *Step)
G4bool GetApplyCutsFlag() const
G4VProcess * fCurrentProcess
void SetTrackStatus(const G4TrackStatus aTrackStatus)
virtual G4Step * UpdateStepForPostStep(G4Step *Step)
G4TrackStatus GetTrackStatus() const
void InvokePostStepDoItProcs()
G4SelectedAtRestDoItVector * fSelectedAtRestDoItVector
size_t fPostStepDoItProcTriggered
G4int fN2ndariesPostStepDoIt
virtual G4VParticleChange * PostStepDoIt(const G4Track &track, const G4Step &stepData)=0
const G4DynamicParticle * GetDynamicParticle() const
void SetStepStatus(const G4StepStatus aValue)
G4int GetParentID() const
G4double fPreviousStepSize