58 : theStepLength(0.), theInitialTrajState(0),
59 theFinalTrajState(0), theStepN(0), theG4Track(0)
63 if(verbose >= 5) {
G4cout <<
"G4ErrorPropagator " <<
this <<
G4endl; }
68 thePropIsInitialized =
false;
87 G4cerr <<
"ERROR - G4ErrorPropagator::Propagate()" <<
G4endl
88 <<
" Energy too low to be propagated: "
98 G4cout <<
" =====> starting GEANT4E tracking for "
109 G4cout <<
" G4ErrorPropagator::Propagate initialTS ";
119 if( theG4Track != 0 ) {
delete theG4Track; }
128 ierr = MakeSteps( currentTS_FREE );
143 *currentTS = *currentTS_FREE;
146 G4cerr <<
"ERROR - G4ErrorPropagator::Propagate()" <<
G4endl
147 <<
" Particle does not reach target: " << *currentTS
159 G4cout <<
" G4ErrorPropagator: propagation ended " <<
G4endl;
189 G4cout <<
"ERROR - G4ErrorPropagator::PropagateOneStep()" <<
G4endl
190 <<
" Called before initialization is done for this track."
192 <<
" Please call G4ErrorPropagatorManager::InitGeant4e()."
194 G4Exception(
"G4ErrorPropagator::PropagateOneStep()",
196 "Called before initialization is done for this track!");
207 G4cerr <<
"ERROR - G4ErrorPropagator::PropagateOneStep()" <<
G4endl
208 <<
" Energy too low to be propagated: "
216 G4cout <<
" =====> starting GEANT4E tracking for "
222 G4cout <<
" G4ErrorPropagator::Propagate initialTS ";
229 if( theStepN == 0 ) { theG4Track =
InitG4Track( *currentTS ); }
252 if( verbose >= 5 ) {
G4cout <<
"InitG4Track " <<
G4endl; }
261 G4cerr <<
"ERROR - G4ErrorPropagator::InitG4Track()" <<
G4endl
262 <<
" Particle type not defined " + partType <<
G4endl;
263 G4Exception(
"G4ErrorPropagator::InitG4Track()",
"InvalidSetup",
291 G4cout <<
" G4ErrorPropagator new track of energy: "
299 if( fpSteppingManager == 0 )
301 G4Exception(
"G4ErrorPropagator::InitG4Track()",
"InvalidSetup",
340 if( ierr != 0 ) {
break; }
365 <<
"@@@@@@@@@@@@@@@@@@@@@@@@@ NEW STEP " <<
G4endl;
389 G4cout <<
" transportation determined by geant4e " <<
G4endl;
416 G4cout <<
" propagating error " << *currentTS_FREE <<
G4endl;
429 currentTS_FREE->
Update( cTrack );
435 G4cerr <<
"ERROR - G4ErrorPropagator:MakeOneStep()" <<
G4endl
436 <<
" Error returned: " << ierr <<
G4endl
437 <<
" Geant4 tracking will be stopped !" <<
G4endl;
464 G4cerr <<
"ERROR - G4ErrorPropagator::InitFreeTrajState()" <<
G4endl
466 G4Exception(
"G4ErrorPropagator::InitFreeTrajState()",
"InvalidState",
469 return currentTS_FREE;
484 G4cout <<
" G4ErrorPropagator::Propagate: final state "
493 currentTS = currentTS_FREE;
499 G4Exception(
"G4ErrorPropagator:GetFinalTrajState()",
501 "Using a G4ErrorSurfaceTrajState with wrong target");
511 G4cout << currentTS <<
" returning tssd " << *currentTS <<
G4endl;
514 delete currentTS_FREE;
523 G4bool lastG4eStep =
false;
530 G4cout <<
" G4ErrorPropagator::CheckIfLastStep G4ErrorState= "
544 G4cout <<
" G4ErrorPropagator::CheckIfLastStep " << lastG4eStep
557 G4cerr <<
"ERROR - G4ErrorPropagator::CheckIfLastStep()" <<
G4endl
558 <<
" Track extrapolated until end of World" <<
G4endl
559 <<
" without finding the defined target " <<
G4endl;
560 G4Exception(
"G4ErrorPropagator::CheckIfLastStep()",
562 "Track extrapolated without finding the defined target.");
568 G4cerr <<
"ERROR - G4ErrorPropagator::CheckIfLastStep()" <<
G4endl
569 <<
" Track extrapolated until end of World" <<
G4endl
570 <<
" without finding the defined target " <<
G4endl;
578 G4cerr <<
"ERROR - G4ErrorPropagator::CheckIfLastStep()" <<
G4endl
579 <<
" Track extrapolated until energy is exhausted" <<
G4endl
580 <<
" without finding the defined target !" <<
G4endl;
581 G4Exception(
"G4ErrorPropagator::CheckIfLastStep()",
583 "Track extrapolated without finding the defined target.");
589 G4cerr <<
"ERROR - G4ErrorPropagator::CheckIfLastStep()" <<
G4endl
590 <<
" Track extrapolated until energy is exhausted" <<
G4endl
591 <<
" without finding the defined target !" <<
G4endl;
600 G4cout <<
" return CheckIfLastStep " << lastG4eStep <<
G4endl;
613 if( fpUserTrackingAction != 0 )
616 ->PreUserTrackingAction((fpTrack) );
626 if( fpUserTrackingAction != 0 )
629 ->PostUserTrackingAction((fpTrack) );
@ G4ErrorState_TargetCloserThanBoundary
@ G4ErrorState_StoppedAtTarget
@ G4ErrorTarget_GeomVolume
#define G4BestUnit(a, b)
#define G4_USE_G4BESTUNIT_FOR_VERBOSE 1
G4DLLIMPORT std::ostream G4cerr
G4DLLIMPORT std::ostream G4cout
void SetCharge(G4double charge)
void SetPolarization(G4double polX, G4double polY, G4double polZ)
virtual G4int Update(const G4Track *aTrack)
virtual G4int PropagateError(const G4Track *aTrack)
const G4ErrorTarget * GetTarget(G4bool mustExist=0) const
G4ErrorState GetState() const
static G4ErrorPropagatorData * GetErrorPropagatorData()
void SetMode(G4ErrorMode mode)
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=0)
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
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)