54 G4cout <<
"G4SteppingManager::GetProcessNumber: is called track="
61 G4cerr <<
"ERROR - G4SteppingManager::GetProcessNumber()" <<
G4endl
62 <<
" ProcessManager is NULL for particle = "
65 G4Exception(
"G4SteppingManager::GetProcessNumber()",
"Tracking0011",
77 G4cout <<
"G4SteppingManager::GetProcessNumber: #ofAtRest="
88 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.");
166 G4Exception(
"G4SteppingManager::DefinePhysicalStepLength()",
168 "This feature no more supported");
171 (*fSelectedPostStepDoItVector)[np] =
Forced;
185 (*fSelectedPostStepDoItVector)[nrest] =
InActivated;
213 G4bool delegateToTransportation =
false;
223 safetyProposedToAndByProcess,
244 delegateToTransportation =
true;
252 delegateToTransportation =
false;
272 if(delegateToTransportation)
287 G4double lifeTime, shortestLifeTime;
292 unsigned int NofInactiveProc = 0;
307 (*fSelectedAtRestDoItVector)[ri] =
Forced;
312 if(lifeTime < shortestLifeTime )
314 shortestLifeTime = lifeTime;
326 G4Exception(
"G4SteppingManager::InvokeAtRestDoItProcs()",
"Tracking0013",
338 if(shortestLifeTime < 1.0e+100)
368 for(
G4int DSecLoop=0; DSecLoop< num2ndaries; ++DSecLoop)
393 ED <<
"A track without proper process manager is pushed\n"
394 <<
"into the track stack.\n"
395 <<
" Particle name : "
400 ED <<
"created by a primary particle generator.";
408 { ED <<
"creaded by unknown process."; }
410 G4Exception(
"G4SteppingManager::InvokeAtRestDoItProcs()",
421 delete tempSecondaryTrack;
483 for(
G4int DSecLoop=0; DSecLoop<num2ndaries; ++DSecLoop)
508 ED <<
"A track without proper process manager is pushed\n"
509 <<
"into the track stack.\n"
510 <<
" Particle name : "
515 ED <<
"created by a primary particle generator.";
523 { ED <<
"creaded by unknown process."; }
525 G4Exception(
"G4SteppingManager::InvokeAlongStepDoItProcs()",
536 delete tempSecondaryTrack;
640 for(
G4int DSecLoop=0; DSecLoop<num2ndaries; ++DSecLoop)
665 ED <<
"A track without proper process manager is pushed\n"
666 <<
"into the track stack.\n"
667 <<
" Particle name : "
672 ED <<
"created by a primary particle generator.";
680 { ED <<
"creaded by unknown process."; }
682 G4Exception(
"G4SteppingManager::InvokePSDIP()",
"Tracking10053",
693 delete tempSecondaryTrack;
714 G4bool tBelowCutEnergyAndSafety =
false;
717 if (tPtclIdx<0) {
return; }
722 if (tCoupleIdx<0) {
return; }
727 tBelowCutEnergyAndSafety =
true;
738 if( tBelowCutEnergyAndSafety )
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
std::ostringstream G4ExceptionDescription
G4GLOB_DLL std::ostream G4cerr
G4GLOB_DLL std::ostream G4cout
G4double GetCharge() const
static G4LossTableManager * Instance()
G4double GetRange(const G4ParticleDefinition *aParticle, G4double kineticEnergy, const G4MaterialCutsCouple *couple)
G4ProcessManager * GetProcessManager() const
G4int GetPDGEncoding() const
G4bool GetApplyCutsFlag() const
const G4String & GetParticleName() const
G4ProcessVector * GetAlongStepProcessVector(G4ProcessVectorTypeIndex typ=typeGPIL) const
G4ProcessVector * GetPostStepProcessVector(G4ProcessVectorTypeIndex typ=typeGPIL) const
G4ProcessVector * GetAtRestProcessVector(G4ProcessVectorTypeIndex typ=typeGPIL) const
std::size_t entries() const
const std::vector< G4double > * GetEnergyCutsVector(std::size_t pcIdx) const
static G4ProductionCutsTable * GetProductionCutsTable()
G4int GetCoupleIndex(const G4MaterialCutsCouple *aCouple) const
static G4int GetIndex(const G4String &name)
void SetSafety(const G4double aValue)
void SetStepStatus(const G4StepStatus aValue)
void SetProcessDefinedStep(const G4VProcess *aValue)
const G4MaterialCutsCouple * GetMaterialCutsCouple() const
void SetStepLength(G4double value)
void AddTotalEnergyDeposit(G4double value)
G4StepPoint * GetPostStepPoint() const
void InvokePostStepDoItProcs()
std::size_t MAXofAtRestLoops
std::size_t MAXofPostStepLoops
void DefinePhysicalStepLength()
void InvokeAlongStepDoItProcs()
std::size_t MAXofAlongStepLoops
G4ProcessVector * fAlongStepDoItVector
G4ProcessVector * fAtRestDoItVector
G4NoProcess const * fNoProcess
static const size_t SizeOfSelectedDoItVector
G4ProcessVector * fAlongStepGetPhysIntVector
G4StepPoint * fPreStepPoint
G4int fN2ndariesPostStepDoIt
void ApplyProductionCut(G4Track *)
G4TrackVector * fSecondary
G4ForceCondition fCondition
G4ProcessVector * fPostStepGetPhysIntVector
std::size_t fPostStepDoItProcTriggered
G4VSteppingVerbose * fVerbose
G4GPILSelection fGPILSelection
G4double fPreviousStepSize
G4double CalculateSafety()
G4SelectedPostStepDoItVector * fSelectedPostStepDoItVector
G4ProcessVector * fPostStepDoItVector
G4VParticleChange * fParticleChange
G4SelectedAtRestDoItVector * fSelectedAtRestDoItVector
std::size_t fAtRestDoItProcTriggered
G4VProcess * fCurrentProcess
G4int fN2ndariesAtRestDoIt
G4ProcessVector * fAtRestGetPhysIntVector
G4int fN2ndariesAlongStepDoIt
void InvokeAtRestDoItProcs()
G4TrackStatus GetTrackStatus() const
void SetTrackStatus(const G4TrackStatus aTrackStatus)
void SetStepLength(G4double value)
const G4VProcess * GetCreatorProcess() const
G4VPhysicalVolume * GetNextVolume() const
G4ParticleDefinition * GetDefinition() const
const G4DynamicParticle * GetDynamicParticle() const
G4double GetKineticEnergy() const
G4int GetParentID() const
void SetKineticEnergy(const G4double aValue)
G4bool IsGoodForTracking() const
void SetParentID(const G4int aValue)
void SetCreatorProcess(const G4VProcess *aValue)
virtual G4Step * UpdateStepForAlongStep(G4Step *Step)
virtual G4Step * UpdateStepForAtRest(G4Step *Step)
virtual G4Step * UpdateStepForPostStep(G4Step *Step)
G4int GetNumberOfSecondaries() const
G4Track * GetSecondary(G4int anIndex) const
G4TrackStatus GetTrackStatus() const
virtual G4VParticleChange * AtRestDoIt(const G4Track &track, const G4Step &stepData)=0
G4ProcessType GetProcessType() const
virtual G4VParticleChange * PostStepDoIt(const G4Track &track, const G4Step &stepData)=0
G4double PostStepGPIL(const G4Track &track, G4double previousStepSize, G4ForceCondition *condition)
G4double AtRestGPIL(const G4Track &track, G4ForceCondition *condition)
virtual G4VParticleChange * AlongStepDoIt(const G4Track &track, const G4Step &stepData)=0
G4double AlongStepGPIL(const G4Track &track, G4double previousStepSize, G4double currentMinimumStep, G4double &proposedSafety, G4GPILSelection *selection)
const G4String & GetProcessName() const
virtual void AlongStepDoItOneByOne()=0
virtual void DPSLPostStep()=0
virtual void DPSLAlongStep()=0
virtual void PostStepDoItOneByOne()=0
virtual void DPSLStarted()=0