MCPcopy Create free account
hub / github.com/Geant4/geant4 / MakeOneStep

Method MakeOneStep

source/error_propagation/src/G4ErrorPropagator.cc:372–463  ·  view source on GitHub ↗

-----------------------------------------------------------------------

Source from the content-addressed store, hash-verified

370
371//-----------------------------------------------------------------------
372G4int G4ErrorPropagator::MakeOneStep(G4ErrorFreeTrajState* currentTS_FREE)
373{
374 G4ErrorPropagatorData* g4edata =
375 G4ErrorPropagatorData::GetErrorPropagatorData();
376 G4int ierr = 0;
377
378 //---------- Track one step
379#ifdef G4EVERBOSE
380 if(verbose >= 2)
381 {
382 G4cout << G4endl << "@@@@@@@@@@@@@@@@@@@@@@@@@ NEW STEP " << G4endl;
383 }
384#endif
385
386 theG4Track->IncrementCurrentStepNumber();
387
388 fpSteppingManager->Stepping();
389
390 //---------- Check if Target has been reached (and then set G4ErrorState)
391
392 // G4ErrorPropagationNavigator limits the step if target is closer than
393 // boundary (but the winner process is always "Transportation": then
394 // error propagator will stop the track
395
396 if(theG4Track->GetStep()
397 ->GetPostStepPoint()
398 ->GetProcessDefinedStep()
399 ->GetProcessName() == "Transportation")
400 {
401 if(g4edata->GetState() ==
402 G4ErrorState(G4ErrorState_TargetCloserThanBoundary))
403 { // target or step length reached
404
405#ifdef G4EVERBOSE
406 if(verbose >= 5)
407 {
408 G4cout << " transportation determined by geant4e " << G4endl;
409 }
410#endif
411 g4edata->SetState(G4ErrorState_StoppedAtTarget);
412 }
413 else if(g4edata->GetTarget()->GetType() == G4ErrorTarget_GeomVolume)
414 {
415 G4ErrorGeomVolumeTarget* target =
416 (G4ErrorGeomVolumeTarget*) (g4edata->GetTarget());
417 if(static_cast<G4ErrorGeomVolumeTarget*>(target)->TargetReached(
418 theG4Track->GetStep()))
419 {
420 g4edata->SetState(G4ErrorState_StoppedAtTarget);
421 }
422 }
423 }
424 else if(theG4Track->GetStep()
425 ->GetPostStepPoint()
426 ->GetProcessDefinedStep()
427 ->GetProcessName() == "G4ErrorTrackLengthTarget")
428 {
429 g4edata->SetState(G4ErrorState_StoppedAtTarget);

Callers

nothing calls this directly

Calls 12

G4ErrorStateEnum · 0.85
G4ExceptionFunction · 0.85
SteppingMethod · 0.45
GetStepMethod · 0.45
GetStateMethod · 0.45
SetStateMethod · 0.45
GetTypeMethod · 0.45
GetTargetMethod · 0.45
TargetReachedMethod · 0.45
PropagateErrorMethod · 0.45
UpdateMethod · 0.45
GetStepLengthMethod · 0.45

Tested by

no test coverage detected