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++){
379 delete tempSecondaryTrack;
432 for(
G4int DSecLoop=0 ; DSecLoop< num2ndaries; DSecLoop++){
455 delete tempSecondaryTrack;
493 G4int Cond = (*fSelectedPostStepDoItVector)[MAXofPostStepLoops-np-1];
514 G4int Cond2 = (*fSelectedPostStepDoItVector)[MAXofPostStepLoops-np1-1];
550 for(
G4int DSecLoop=0 ; DSecLoop< num2ndaries; DSecLoop++){
573 delete tempSecondaryTrack;
594 G4bool tBelowCutEnergyAndSafety =
false;
597 if (tPtclIdx<0) {
return; }
606 tBelowCutEnergyAndSafety =
true;
617 if( tBelowCutEnergyAndSafety )
G4double CalculateSafety()
void SetTrackStatus(const G4TrackStatus aTrackStatus)
G4ParticleDefinition * GetDefinition() const
void SetStepLength(G4double value)
G4int GetNumberOfSecondaries() const
virtual G4Step * UpdateStepForAlongStep(G4Step *Step)
const std::vector< G4double > * GetEnergyCutsVector(size_t pcIdx) const
static G4LossTableManager * Instance()
G4Track * GetSecondary(G4int anIndex) const
static G4int GetIndex(const G4String &name)
G4ProcessVector * fPostStepGetPhysIntVector
void SetProcessDefinedStep(const G4VProcess *aValue)
virtual void PostStepDoItOneByOne()=0
const G4DynamicParticle * GetDynamicParticle() const
G4ProcessVector * fPostStepDoItVector
G4VSteppingVerbose * fVerbose
void InvokeAlongStepDoItProcs()
G4TrackStatus GetTrackStatus() const
G4int GetPDGEncoding() const
G4ProcessVector * fAlongStepGetPhysIntVector
G4SelectedPostStepDoItVector * fSelectedPostStepDoItVector
G4ParticleDefinition * GetGenericIon() const
G4ProcessManager * GetProcessManager() const
const G4MaterialCutsCouple * GetMaterialCutsCouple() const
void SetStepStatus(const G4StepStatus aValue)
const G4String & GetParticleName() const
G4bool IsGeneralIon() const
void SetCreatorProcess(const G4VProcess *aValue)
size_t MAXofAlongStepLoops
G4VPhysicalVolume * GetNextVolume() const
size_t fAtRestDoItProcTriggered
G4VProcess * fCurrentProcess
G4double AtRestGPIL(const G4Track &track, G4ForceCondition *condition)
G4double fPreviousStepSize
G4ProcessVector * GetAtRestProcessVector(G4ProcessVectorTypeIndex typ=typeGPIL) const
G4double GetKineticEnergy() const
void DefinePhysicalStepLength()
virtual void DPSLAlongStep()=0
G4GLOB_DLL std::ostream G4cout
virtual void DPSLPostStep()=0
size_t fPostStepDoItProcTriggered
void SetStepLength(G4double value)
G4int fN2ndariesPostStepDoIt
G4int GetCoupleIndex(const G4MaterialCutsCouple *aCouple) const
G4double GetCharge() const
void ApplyProductionCut(G4Track *)
G4int fN2ndariesAlongStepDoIt
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
static G4ProductionCutsTable * GetProductionCutsTable()
static G4ParticleTable * GetParticleTable()
G4ProcessVector * fAlongStepDoItVector
void InvokePostStepDoItProcs()
G4TrackVector * fSecondary
size_t MAXofPostStepLoops
virtual G4VParticleChange * AlongStepDoIt(const G4Track &track, const G4Step &stepData)=0
virtual void AlongStepDoItOneByOne()=0
void SetParentID(const G4int aValue)
G4StepPoint * GetPostStepPoint() const
void AddTotalEnergyDeposit(G4double value)
G4bool IsGoodForTracking() const
G4bool GetApplyCutsFlag() const
G4TrackStatus GetTrackStatus() const
G4ForceCondition fCondition
G4int fN2ndariesAtRestDoIt
G4GPILSelection fGPILSelection
void SetKineticEnergy(const G4double aValue)
virtual G4Step * UpdateStepForPostStep(G4Step *Step)
void SetSafety(const G4double aValue)
G4ProcessVector * GetAlongStepProcessVector(G4ProcessVectorTypeIndex typ=typeGPIL) const
virtual G4VParticleChange * PostStepDoIt(const G4Track &track, const G4Step &stepData)=0
G4ProcessVector * fAtRestGetPhysIntVector
G4VParticleChange * fParticleChange
G4double GetRange(const G4ParticleDefinition *aParticle, G4double kineticEnergy, const G4MaterialCutsCouple *couple)
virtual G4Step * UpdateStepForAtRest(G4Step *Step)
virtual void DPSLStarted()=0
G4SelectedAtRestDoItVector * fSelectedAtRestDoItVector
G4ProcessVector * fAtRestDoItVector
static const size_t SizeOfSelectedDoItVector
G4GLOB_DLL std::ostream G4cerr
void InvokeAtRestDoItProcs()
virtual G4VParticleChange * AtRestDoIt(const G4Track &track, const G4Step &stepData)=0
G4StepPoint * fPreStepPoint
G4ProcessVector * GetPostStepProcessVector(G4ProcessVectorTypeIndex typ=typeGPIL) const