54 for(
G4int DSecLoop=0 ;
81 delete tempSecondaryTrack;
97 if(track == 0) return ;
114 exceptionDescription <<
"No process info found for particle :"
116 G4Exception(
"G4ITStepProcessor::DoStepping",
"ITStepProcessor0012",
171 <<
" !!! Particle Name : "<<
fpTrack -> GetDefinition() -> GetParticleName() <<
G4endl
172 <<
"No G4ITStepProcessor::fpITrack found" <<
G4endl;
174 G4Exception(
"G4ITStepProcessor::DoStepping",
"ITStepProcessor0013",
469 double physicalStep(0.) ;
478 <<
"No G4ITStepProcessor::fpTrack found";
479 G4Exception(
"G4ITStepProcessor::FindTransportationStep",
"ITStepProcessor0013",
488 <<
"No G4ITStepProcessor::fITrack" ;
489 G4Exception(
"G4ITStepProcessor::FindTransportationStep",
"ITStepProcessor0014",
497 <<
"No G4ITStepProcessor::fITrack->GetTrack()" ;
498 G4Exception(
"G4ITStepProcessor::FindTransportationStep",
"ITStepProcessor0015",
529 for(
size_t np=0; np < _MAXofPostStepLoops; np++)
535 G4int Cond = selectedPostStepDoItVector[_MAXofPostStepLoops-np-1];
554 for(
size_t np1=np+1; np1 < _MAXofPostStepLoops; np1++)
556 G4int Cond2 = selectedPostStepDoItVector[_MAXofPostStepLoops-np1-1];
576 G4bool tBelowCutEnergyAndSafety =
false;
591 tBelowCutEnergyAndSafety =
true;
602 if( tBelowCutEnergyAndSafety )
G4TrackVector * fpSecondary
void SetTrackStatus(const G4TrackStatus aTrackStatus)
G4ParticleDefinition * GetDefinition() const
void SetStepLength(G4double value)
virtual G4VPhysicalVolume * ResetHierarchyAndLocate(const G4ThreeVector &point, const G4ThreeVector &direction, const G4TouchableHistory &h)
G4ProcessVector * fpPostStepDoItVector
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)
G4ITTrackingManager * fpTrackingManager
void SetProcessDefinedStep(const G4VProcess *aValue)
std::ostringstream G4ExceptionDescription
G4double GetStepLength() const
const G4DynamicParticle * GetDynamicParticle() const
class std::vector< int, std::allocator< int > > G4SelectedAtRestDoItVector
G4SelectedAtRestDoItVector fSelectedAtRestDoItVector
void InvokeAlongStepDoItProcs()
const G4ThreeVector & GetPosition() const
G4TrackStatus GetTrackStatus() const
G4VITProcess * fpCurrentProcess
G4ProcessManager * GetProcessManager() const
const G4MaterialCutsCouple * GetMaterialCutsCouple() const
void SetStepStatus(const G4StepStatus aValue)
G4int fN2ndariesPostStepDoIt
const G4String & GetParticleName() const
void SetCreatorProcess(const G4VProcess *aValue)
G4double CalculateSafety()
size_t MAXofPostStepLoops
G4ITNavigatorState_Lock * GetNavigatorState()
G4ProcessVector * fpAlongStepDoItVector
G4IT * GetIT(const G4Track *track)
G4ProcessVector * GetAtRestProcessVector(G4ProcessVectorTypeIndex typ=typeGPIL) const
G4double GetKineticEnergy() const
G4TrackingInformation * fpTrackingInfo
class std::vector< int, std::allocator< int > > G4SelectedPostStepDoItVector
G4StepPoint * fpPreStepPoint
G4ITTransportation * fpTransportation
const G4ThreeVector & GetPosition() const
virtual void ComputeStep(const G4Track &, const G4Step &, const double timeStep, double &spaceStep)
void ApplyProductionCut(G4Track *)
void SetStepLength(G4double value)
G4int GetCoupleIndex(const G4MaterialCutsCouple *aCouple) const
void FindTransportationStep()
G4double GetCharge() const
void DealWithSecondaries(G4int &)
G4ITNavigator * fpNavigator
G4ITStepProcessorState * fpState
G4StepPoint * fpPostStepPoint
void InvokeTransportationProc()
const G4TouchableHandle & GetTouchableHandle() const
G4int fN2ndariesAtRestDoIt
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
G4TrackingInformation * GetTrackingInfo()
static G4ProductionCutsTable * GetProductionCutsTable()
G4VParticleChange * fpParticleChange
const G4ThreeVector & GetMomentumDirection() const
void IncrementCurrentStepNumber()
void InvokeAtRestDoItProcs()
T max(const T t1, const T t2)
brief Return the largest of the two arguments
virtual G4VParticleChange * AlongStepDoIt(const G4Track &track, const G4Step &stepData)=0
G4ITTransportation * fpTransportation
void Stepping(G4Track *, const double &)
void SetParentID(const G4int aValue)
G4StepPoint * GetPostStepPoint() const
void AddTotalEnergyDeposit(G4double value)
void InvokePostStepDoItProcs()
void SetProcessState(G4::shared_ptr< G4ProcessState_Lock > aProcInfo)
void SetNavigatorState(G4ITNavigatorState_Lock *)
G4bool IsGoodForTracking() const
ProcessGeneralInfo * fpProcessInfo
G4bool GetApplyCutsFlag() const
G4ThreeVector endpointSafOrigin
G4ProcessVector * fpAtRestDoItVector
G4TrackStatus GetTrackStatus() const
void AddTrackLength(const G4double aValue)
void SetKineticEnergy(const G4double aValue)
virtual G4Step * UpdateStepForPostStep(G4Step *Step)
void SetSafety(const G4double aValue)
virtual G4VParticleChange * PostStepDoIt(const G4Track &track, const G4Step &stepData)=0
G4int fN2ndariesAlongStepDoIt
G4VITProcess inherits from G4VProcess.
G4SelectedPostStepDoItVector fSelectedPostStepDoItVector
size_t GetProcessID() const
G4double GetRange(const G4ParticleDefinition *aParticle, G4double kineticEnergy, const G4MaterialCutsCouple *couple)
virtual void AppendStep(G4Track *track, G4Step *step)
virtual G4Step * UpdateStepForAtRest(G4Step *Step)
size_t MAXofAlongStepLoops
virtual G4VParticleChange * AtRestDoIt(const G4Track &track, const G4Step &stepData)=0