57 , theInitialTrajState(0)
72 thePropIsInitialized =
false;
91 std::ostringstream message;
92 message <<
"Energy too low to be propagated: "
94 G4Exception(
"G4ErrorPropagator::Propagate()",
"GEANT4e-Notification",
104 G4cout <<
" =====> starting GEANT4E tracking for "
115 G4cout <<
" G4ErrorPropagator::Propagate initialTS ";
137 ierr = MakeSteps(currentTS_FREE);
152 *currentTS = *currentTS_FREE;
155 std::ostringstream message;
156 message <<
"Particle does not reach target: " << *currentTS;
157 G4Exception(
"G4ErrorPropagator::Propagate()",
"GEANT4e-Notification",
169 G4cout <<
" G4ErrorPropagator: propagation ended " <<
G4endl;
198 std::ostringstream message;
199 message <<
"Called before initialization is done for this track!";
200 G4Exception(
"G4ErrorPropagator::PropagateOneStep()",
"InvalidCall",
202 "Please call G4ErrorPropagatorManager::InitGeant4e().");
213 std::ostringstream message;
214 message <<
"Energy too low to be propagated: "
216 G4Exception(
"G4ErrorPropagator::PropagateOneStep()",
"GEANT4e-Notification",
224 G4cout <<
" =====> starting GEANT4E tracking for "
230 G4cout <<
" G4ErrorPropagator::Propagate initialTS ";
278 std::ostringstream message;
279 message <<
"Particle type not defined: " << partType;
280 G4Exception(
"G4ErrorPropagator::InitG4Track()",
"InvalidSetup",
308 G4cout <<
" G4ErrorPropagator new track of energy: "
316 if(fpSteppingManager == 0)
318 G4Exception(
"G4ErrorPropagator::InitG4Track()",
"InvalidSetup",
408 G4cout <<
" transportation determined by geant4e " <<
G4endl;
437 G4cout <<
" propagating error " << *currentTS_FREE <<
G4endl;
450 currentTS_FREE->
Update(cTrack);
456 std::ostringstream message;
457 message <<
"Error returned: " << ierr;
458 G4Exception(
"G4ErrorPropagator::MakeOneStep()",
"GEANT4e-Notification",
459 JustWarning, message,
"Geant4 tracking will be stopped !");
485 std::ostringstream message;
486 message <<
"Wrong trajectory state: " << currentTS->
GetTSType();
487 G4Exception(
"G4ErrorPropagator::InitFreeTrajState()",
"InvalidState",
490 return currentTS_FREE;
504 G4cout <<
" G4ErrorPropagator::Propagate: final state "
513 currentTS = currentTS_FREE;
519 G4Exception(
"G4ErrorPropagator:GetFinalTrajState()",
"InvalidSetup",
521 "Using a G4ErrorSurfaceTrajState with wrong target");
531 G4cout << currentTS <<
" returning tssd " << *currentTS <<
G4endl;
534 delete currentTS_FREE;
541 G4bool lastG4eStep =
false;
548 G4cout <<
" G4ErrorPropagator::CheckIfLastStep G4ErrorState= "
562 G4cout <<
" G4ErrorPropagator::CheckIfLastStep " << lastG4eStep <<
" "
575 std::ostringstream message;
576 message <<
"Track extrapolated until end of World" <<
G4endl
577 <<
"without finding the defined target.";
578 G4Exception(
"G4ErrorPropagator::CheckIfLastStep()",
586 std::ostringstream message;
587 message <<
"Track extrapolated until energy is exhausted" <<
G4endl
588 <<
"without finding the defined target.";
589 G4Exception(
"G4ErrorPropagator::CheckIfLastStep()",
598 G4cout <<
" return CheckIfLastStep " << lastG4eStep <<
G4endl;
610 if(fpUserTrackingAction != 0)
613 ->PreUserTrackingAction((fpTrack));
622 if(fpUserTrackingAction != 0)
625 ->PostUserTrackingAction((fpTrack));
@ G4ErrorState_TargetCloserThanBoundary
@ G4ErrorState_StoppedAtTarget
@ G4ErrorTarget_GeomVolume
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
G4GLOB_DLL std::ostream G4cout
void SetPolarization(const G4ThreeVector &)
void SetCharge(G4double charge)
virtual G4int Update(const G4Track *aTrack)
virtual G4int PropagateError(const G4Track *aTrack)
G4ErrorState GetState() const
static G4ErrorPropagatorData * GetErrorPropagatorData()
void SetMode(G4ErrorMode mode)
const G4ErrorTarget * GetTarget(G4bool mustExist=false) const
void SetState(G4ErrorState sta)
void SetTarget(const G4ErrorTarget *target)
G4ErrorMode GetMode() const
G4Track * InitG4Track(G4ErrorTrajState &initialTS)
void InvokePostUserTrackingAction(G4Track *fpTrack)
void InvokePreUserTrackingAction(G4Track *fpTrack)
void GetFinalTrajState(G4ErrorTrajState *currentTS, G4ErrorFreeTrajState *currentTS_FREE, const G4ErrorTarget *target)
G4int PropagateOneStep(G4ErrorTrajState *currentTS)
G4bool CheckIfLastStep(G4Track *aTrack)
G4ErrorFreeTrajState * InitFreeTrajState(G4ErrorTrajState *currentTS)
G4int MakeOneStep(G4ErrorFreeTrajState *currentTS_FREE)
G4int Propagate(G4ErrorTrajState *currentTS, const G4ErrorTarget *target, G4ErrorMode mode=G4ErrorMode_PropForwards)
virtual G4Plane3D GetTangentPlane(const G4ThreeVector &point) const =0
virtual void Dump(const G4String &msg) const =0
G4ErrorTargetType GetType() const
void SetG4Track(G4Track *trk)
G4Vector3D GetMomentum() const
const G4String & GetParticleType() const
virtual G4eTSType GetTSType() const
G4Point3D GetPosition() const
G4UserTrackingAction * GetUserTrackingAction()
static G4EventManager * GetEventManager()
G4TrackingManager * GetTrackingManager() const
G4ProcessManager * GetProcessManager() const
G4double GetPDGCharge() const
G4ParticleDefinition * FindParticle(G4int PDGEncoding)
static G4ParticleTable * GetParticleTable()
void StartTracking(G4Track *aTrack=nullptr)
const G4ApplicationState & GetCurrentState() const
static G4StateManager * GetStateManager()
const G4VProcess * GetProcessDefinedStep() const
G4StepPoint * GetPostStepPoint() const
void SetInitialStep(G4Track *valueTrack)
G4TrackStatus GetTrackStatus() const
void SetStep(const G4Step *aValue)
G4VPhysicalVolume * GetNextVolume() const
G4ParticleDefinition * GetDefinition() const
G4double GetKineticEnergy() const
G4double GetStepLength() const
void IncrementCurrentStepNumber()
const G4Step * GetStep() const
void SetParentID(const G4int aValue)
G4SteppingManager * GetSteppingManager() const
const G4String & GetProcessName() const