68 fpTrackingManager = 0;
81 fSelectedAtRestDoItVector(
G4VITProcess::GetMaxProcessIndex(), 0),
82 fSelectedPostStepDoItVector(
G4VITProcess::GetMaxProcessIndex(), 0)
101 fSelectedAtRestDoItVector(
G4VITProcess::GetMaxProcessIndex(), 0),
102 fSelectedPostStepDoItVector(
G4VITProcess::GetMaxProcessIndex(), 0)
119 if (
this == &rhs)
return *
this;
121 fSelectedAtRestDoItVector.clear();
124 fSelectedPostStepDoItVector.clear();
129 fPreviousStepSize = -1.;
132 proposedSafety = -1.;
137 fTouchableHandle = 0;
150 std::map<const G4ParticleDefinition*, ProcessGeneralInfo*>::iterator it;
184 ->GetNavigatorForTracking());
231 if (
this == &rhs)
return *
this;
241 G4cout<<
"G4ITStepProcessor::CloneProcesses: is called"<<
G4endl;
248 theParticleIterator->
reset();
250 while ((*theParticleIterator)())
257 G4cerr <<
"ERROR - G4ITStepProcessor::GetProcessNumber()" << G4endl<<
" ProcessManager is NULL for particle = "
260 G4Exception(
"G4ITStepProcessor::GetProcessNumber()",
"ITStepProcessor0001",
276 for (
int i = 0; i < processVector->
size(); i++)
278 G4VProcess* base_process = (*processVector)[i];
293 G4cout<<
"G4ITStepProcessor::GetProcessNumber: is called track"<<
G4endl;
297 G4cerr <<
"ERROR - G4SteppingManager::GetProcessNumber()" << G4endl<<
" ProcessManager is NULL for particle = "
300 G4Exception(
"G4SteppingManager::GetProcessNumber()",
"ITStepProcessor0002",
305 std::map<const G4ParticleDefinition*, ProcessGeneralInfo*>::iterator it =
fProcessGeneralInfoMap.find(particle);
308 G4Exception(
"G4SteppingManager::SetupGeneralProcessInfo()",
"ITStepProcessor0003",
321 G4cout <<
"G4ITStepProcessor::GetProcessNumber: #ofAtRest="
330 G4cout <<
"G4ITStepProcessor::GetProcessNumber:#ofAlongStp="
339 G4cout <<
"G4ITStepProcessor::GetProcessNumber: #ofPostStep="
343 if (SizeOfSelectedDoItVector<fpProcessInfo->MAXofAtRestLoops ||
344 SizeOfSelectedDoItVector<fpProcessInfo->MAXofAlongStepLoops ||
345 SizeOfSelectedDoItVector<fpProcessInfo->MAXofPostStepLoops )
347 G4cerr <<
"ERROR - G4ITStepProcessor::GetProcessNumber()" << G4endl
349 <<
" ; is smaller then one of MAXofAtRestLoops= "
353 G4Exception(
"G4ITStepProcessor::GetProcessNumber()",
355 "The array size is smaller than the actual No of processes.");
363 exceptionDescription <<
"No DoIt process found ";
364 G4Exception(
"G4ITStepProcessor::DoStepping",
"ITStepProcessor0005",
377 exceptionDescription <<
"No transportation process found ";
378 G4Exception(
"G4ITStepProcessor::SetupGeneralProcessInfo",
"ITStepProcessor0006",
406 "No IT pointer was attached to the track you try to process.");
407 G4Exception(
"G4ITStepProcessor::SetTrack",
"ITStepProcessor0007",
422 std::map<const G4ParticleDefinition*, ProcessGeneralInfo*>::iterator it =
432 G4Exception(
"G4ITStepProcessor::GetProcessNumber",
"ITStepProcessor0008",
477 unsigned int NofInactiveProc=0;
502 if(lifeTime < shortestLifeTime )
504 shortestLifeTime = lifeTime;
517 G4cerr <<
"ERROR - G4ITStepProcessor::InvokeAtRestDoItProcs()" <<
G4endl
518 <<
" No AtRestDoIt process is active!" <<
G4endl;
551 SetNavigatorState(
fpNavigator->GetNavigatorState());
575 GetNavigatorState());
582 fTouchableHandle()));
646 G4cerr <<
"ERROR - G4ITStepProcessor::SetInitialStep()"
648 <<
" Primary particle starting at - "
650 <<
" - is outside of the world volume." <<
G4endl;
651 G4Exception(
"G4ITStepProcessor::SetInitialStep()",
"ITStepProcessor0011",
656 G4cout <<
"WARNING - G4ITStepProcessor::SetInitialStep()" <<
G4endl
657 <<
" Initial track position is outside world! - "
805 double proposedTimeStep =
DBL_MAX;
806 G4VProcess* processWithPostStepGivenByTimeStep(0);
819 ->fpPostStepGetPhysIntVector)[np];
847 G4Exception(
"G4ITStepProcessor::DefinePhysicalStepLength()",
849 "This feature is no more supported");
876 if (fPhysIntLength < fpState->fPhysicalStep)
909 ->fpAlongStepGetPhysIntVector)[kp];
919 if (fPhysIntLength < fpState->fPhysicalStep)
940 exceptionDescription <<
"No transportation process found ";
941 G4Exception(
"G4ITStepProcessor::DoDefinePhysicalStepLength",
943 exceptionDescription);
961 exceptionDescription <<
"No transportation process found ";
962 G4Exception(
"G4ITStepProcessor::DoDefinePhysicalStepLength",
964 exceptionDescription);
974 if (fPostStepAtTimeDoItProcTriggered < fpProcessInfo->MAXofPostStepLoops)
984 processWithPostStepGivenByTimeStep);
995 if (fPostStepDoItProcTriggered < fpProcessInfo->MAXofPostStepLoops)
1011 if (safetyProposedToAndByProcess < fpState->proposedSafety)
G4TrackVector * fpSecondary
void SetTrackStatus(const G4TrackStatus aTrackStatus)
G4ParticleDefinition * GetDefinition() const
Its role is the same as G4StepManager :
G4int GetParentID() const
size_t fAtRestDoItProcTriggered
G4ProcessVector * fpPostStepDoItVector
void SetVertexMomentumDirection(const G4ThreeVector &aValue)
G4ITTrackingManager * fpTrackingManager
void SetProcessDefinedStep(const G4VProcess *aValue)
std::ostringstream G4ExceptionDescription
CLHEP::Hep3Vector G4ThreeVector
static const size_t & GetMaxProcessIndex()
G4GPILSelection fGPILSelection
void DeleteSecondaryVector()
G4SelectedAtRestDoItVector fSelectedAtRestDoItVector
void SetNavigator(G4ITNavigator *value)
G4ProcessVector * fpAtRestGetPhysIntVector
const G4ThreeVector & GetPosition() const
G4double GetSurfaceTolerance() const
G4TrackStatus GetTrackStatus() const
std::map< const G4ParticleDefinition *, ProcessGeneralInfo * > fProcessGeneralInfoMap
void SetNextTouchableHandle(const G4TouchableHandle &apValue)
void SetTouchableHandle(const G4TouchableHandle &apValue)
G4int GetPDGEncoding() const
G4VITProcess * fpCurrentProcess
void SetPointerToVectorOfAuxiliaryPoints(std::vector< G4ThreeVector > *theNewVectorPointer)
const G4Step * GetStep() const
G4ProcessManager * GetProcessManager() const
virtual void StartTracking(G4Track *)
G4int fN2ndariesPostStepDoIt
const G4String & GetParticleName() const
G4ForceCondition fCondition
G4VProcess * SetProcessActivation(G4VProcess *aProcess, G4bool fActive)
G4VPhysicalVolume * GetNextVolume() const
size_t MAXofPostStepLoops
void DefinePhysicalStepLength(G4Track *)
G4double AtRestGPIL(const G4Track &track, G4ForceCondition *condition)
G4StepPoint * GetPreStepPoint() const
G4TouchableHandle fTouchableHandle
G4ProcessVector * fpAlongStepDoItVector
G4IT * GetIT(const G4Track *track)
G4ITStepProcessorState & operator=(const G4ITStepProcessorState &)
G4ProcessVector * GetAtRestProcessVector(G4ProcessVectorTypeIndex typ=typeGPIL) const
G4double GetKineticEnergy() const
static G4ITTransportationManager * GetTransportationManager()
G4TrackingInformation * fpTrackingInfo
G4GLOB_DLL std::ostream G4cout
void reset(G4bool ifSkipIon=true)
G4int GetCurrentStepNumber() const
G4TrackVector * NewSecondaryVector()
G4VPhysicalVolume * GetPhysicalVolume() const
void ActiveOnlyITProcess()
G4StepPoint * fpPreStepPoint
G4double AlongStepGPIL(const G4Track &track, G4double previousStepSize, G4double currentMinimumStep, G4double &proposedSafety, G4GPILSelection *selection)
G4ITTransportation * fpTransportation
G4ProcessVector * fpAlongStepGetPhysIntVector
virtual void ComputeStep(const G4Track &, const G4Step &, const double timeStep, double &spaceStep)
virtual G4int GetRegularStructureId() const =0
void ResetTotalEnergyDeposit()
size_t fPostStepDoItProcTriggered
void SetVertexKineticEnergy(const G4double aValue)
const G4TouchableHandle & GetNextTouchableHandle() const
G4VPhysicalVolume * fpCurrentVolume
G4ITNavigator * fpNavigator
G4ITStepProcessorState * fpState
G4StepPoint * fpPostStepPoint
G4double GetInteractionTimeLeft()
const G4TouchableHandle & GetTouchableHandle() const
G4int fN2ndariesAtRestDoIt
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
virtual void Initialize()
G4TrackingInformation * GetTrackingInfo()
G4double PostStepGPIL(const G4Track &track, G4double previousStepSize, G4ForceCondition *condition)
const G4ThreeVector & GetMomentumDirection() const
G4LogicalVolume * GetLogicalVolume() const
G4TrackVector * GetfSecondary()
static G4ParticleTable * GetParticleTable()
G4ITTransportation * fpTransportation
virtual G4VPhysicalVolume * GetVolume(G4int depth=0) const
void SetVertexPosition(const G4ThreeVector &aValue)
G4StepPoint * GetPostStepPoint() const
G4ITStepProcessor & operator=(const G4ITStepProcessor &other)
G4double fPreviousStepSize
void SetProcessState(G4::shared_ptr< G4ProcessState_Lock > aProcInfo)
G4VPhysicalVolume * GetVolume() const
G4ProcessVector * fpPostStepGetPhysIntVector
void DoDefinePhysicalStepLength()
ProcessGeneralInfo * fpProcessInfo
virtual ~G4ITStepProcessor()
G4ProcessVector * fpAtRestDoItVector
void InitializeStep(G4Track *aValue)
void SetupGeneralProcessInfo(G4ParticleDefinition *, G4ProcessManager *)
G4double fPreviousTimeStep
G4ProcessVector * GetAlongStepProcessVector(G4ProcessVectorTypeIndex typ=typeGPIL) const
G4bool ProposesTimeStep() const
G4int fN2ndariesAlongStepDoIt
G4VITProcess inherits from G4VProcess.
G4SelectedPostStepDoItVector fSelectedPostStepDoItVector
size_t GetProcessID() const
G4PTblDicIterator * GetIterator() const
virtual ~G4ITStepProcessorState()
void SetStep(const G4Step *aValue)
size_t fPostStepAtTimeDoItProcTriggered
#define theParticleIterator
G4double GetStepLength() const
static G4GeometryTolerance * GetInstance()
G4ProcessVector * GetProcessList() const
static const size_t SizeOfSelectedDoItVector
void ForceReInitialization()
G4GLOB_DLL std::ostream G4cerr
void SetLogicalVolumeAtVertex(const G4LogicalVolume *)
size_t MAXofAlongStepLoops
void CopyPostToPreStepPoint()
G4ProcessVector * GetPostStepProcessVector(G4ProcessVectorTypeIndex typ=typeGPIL) const