58 : theStepLength(0.), theInitialTrajState(0), theStepN(0), theG4Track(0)
62 if(verbose >= 5) {
G4cout <<
"G4ErrorPropagator " <<
this <<
G4endl; }
67 thePropIsInitialized =
false;
86 G4cerr <<
"ERROR - G4ErrorPropagator::Propagate()" <<
G4endl
87 <<
" Energy too low to be propagated: "
97 G4cout <<
" =====> starting GEANT4E tracking for "
108 G4cout <<
" G4ErrorPropagator::Propagate initialTS ";
118 if( theG4Track != 0 ) {
delete theG4Track; }
127 ierr = MakeSteps( currentTS_FREE );
142 *currentTS = *currentTS_FREE;
145 G4cerr <<
"ERROR - G4ErrorPropagator::Propagate()" <<
G4endl
146 <<
" Particle does not reach target: " << *currentTS
158 G4cout <<
" G4ErrorPropagator: propagation ended " <<
G4endl;
188 std::ostringstream message;
189 message <<
"Called before initialization is done for this track!";
190 G4Exception(
"G4ErrorPropagator::PropagateOneStep()",
192 "Please call G4ErrorPropagatorManager::InitGeant4e().");
203 G4cerr <<
"ERROR - G4ErrorPropagator::PropagateOneStep()" <<
G4endl
204 <<
" Energy too low to be propagated: "
212 G4cout <<
" =====> starting GEANT4E tracking for "
218 G4cout <<
" G4ErrorPropagator::Propagate initialTS ";
227 if( theG4Track != 0 ) {
delete theG4Track; }
252 if( verbose >= 5 ) {
G4cout <<
"InitG4Track " <<
G4endl; }
261 std::ostringstream message;
262 message <<
"Particle type not defined: " << partType;
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;
398 if( static_cast<G4ErrorGeomVolumeTarget*>( target )
399 ->TargetReached( theG4Track->
GetStep() ) )
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 std::ostringstream message;
465 message <<
"Wrong trajectory state: " << currentTS->
GetTSType();
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");
506 *(static_cast<G4ErrorFreeTrajState*>(currentTS_FREE)),
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 std::ostringstream message;
558 message <<
"Track extrapolated until end of World" <<
G4endl
559 <<
"without finding the defined target!";
560 G4Exception(
"G4ErrorPropagator::CheckIfLastStep()",
567 G4cerr <<
"ERROR - G4ErrorPropagator::CheckIfLastStep()" <<
G4endl
568 <<
" Track extrapolated until end of World" <<
G4endl
569 <<
" without finding the defined target " <<
G4endl;
577 std::ostringstream message;
578 message <<
"Track extrapolated until energy is exhausted" <<
G4endl
579 <<
"without finding the defined target!";
580 G4Exception(
"G4ErrorPropagator::CheckIfLastStep()",
587 G4cerr <<
"ERROR - G4ErrorPropagator::CheckIfLastStep()" <<
G4endl
588 <<
" Track extrapolated until energy is exhausted" <<
G4endl
589 <<
" without finding the defined target !" <<
G4endl;
598 G4cout <<
" return CheckIfLastStep " << lastG4eStep <<
G4endl;
611 if( fpUserTrackingAction != 0 )
614 ->PreUserTrackingAction((fpTrack) );
624 if( fpUserTrackingAction != 0 )
627 ->PostUserTrackingAction((fpTrack) );