Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4ErrorPropagatorManager Class Reference

#include <G4ErrorPropagatorManager.hh>

Public Member Functions

 G4ErrorPropagatorManager ()
 
 ~G4ErrorPropagatorManager ()
 
void EventTermination ()
 
void RunTermination ()
 
void InitGeant4e ()
 
void InitTrackPropagation ()
 
G4bool InitFieldForBackwards ()
 
G4int Propagate (G4ErrorTrajState *currentTS, const G4ErrorTarget *target, G4ErrorMode mode=G4ErrorMode_PropForwards)
 
G4int PropagateOneStep (G4ErrorTrajState *currentTS, G4ErrorMode mode=G4ErrorMode_PropForwards)
 
G4bool CloseGeometry ()
 
void SetUserInitialization (G4VUserDetectorConstruction *userInit)
 
void SetUserInitialization (G4VPhysicalVolume *userInit)
 
void SetUserInitialization (G4VUserPhysicsList *userInit)
 
void SetUserAction (G4UserTrackingAction *userAction)
 
void SetUserAction (G4UserSteppingAction *userAction)
 
G4String PrintG4ErrorState ()
 
G4String PrintG4ErrorState (G4ErrorState state)
 
G4String PrintG4State ()
 
G4String PrintG4State (G4ApplicationState state)
 
G4ErrorRunManagerHelperGetErrorRunManagerHelper () const
 
void SetSteppingManagerVerboseLevel ()
 
G4ErrorPropagationNavigatorGetErrorPropagationNavigator () const
 
G4ErrorPropagatorGetPropagator () const
 

Static Public Member Functions

static G4ErrorPropagatorManagerGetErrorPropagatorManager ()
 

Detailed Description

Definition at line 63 of file G4ErrorPropagatorManager.hh.

Constructor & Destructor Documentation

◆ G4ErrorPropagatorManager()

G4ErrorPropagatorManager::G4ErrorPropagatorManager ( )

Definition at line 80 of file G4ErrorPropagatorManager.cc.

81{
82 //----- Initialize a few things
83 //o theG4ErrorPropagatorManager = this;
84
85 char* g4emverb = getenv("G4EVERBOSE");
86 if( !g4emverb ) {
88 } else {
90 }
91
92 thePropagator = 0;
93
94 theEquationOfMotion = 0;
95
96 StartG4ErrorRunManagerHelper();
97
99
100 theG4ErrorPropagationNavigator = 0;
101
102 StartNavigator(); //navigator has to be initialized at the beggining !?!?!
103
104
105}
@ G4ErrorState_PreInit
static void SetVerbose(G4int ver)
static G4ErrorPropagatorData * GetErrorPropagatorData()
void SetState(G4ErrorState sta)

Referenced by GetErrorPropagatorManager().

◆ ~G4ErrorPropagatorManager()

G4ErrorPropagatorManager::~G4ErrorPropagatorManager ( )

Definition at line 109 of file G4ErrorPropagatorManager.cc.

110{
111 delete theEquationOfMotion;
112 delete theG4ErrorPropagationNavigator;
113 delete thePropagator;
114 delete theG4ErrorRunManagerHelper;
115 delete theG4ErrorPropagatorManager;
116}

Member Function Documentation

◆ CloseGeometry()

G4bool G4ErrorPropagatorManager::CloseGeometry ( )

Definition at line 306 of file G4ErrorPropagatorManager.cc.

307{
309 geomManager->OpenGeometry();
310 if( G4StateManager::GetStateManager()->GetCurrentState() != G4State_GeomClosed) {
312 }
313
314 return TRUE;
315}
@ G4State_Quit
@ G4State_GeomClosed
void OpenGeometry(G4VPhysicalVolume *vol=0)
static G4GeometryManager * GetInstance()
static G4StateManager * GetStateManager()
G4bool SetNewState(G4ApplicationState requestedState)
#define TRUE
Definition: globals.hh:55

◆ EventTermination()

void G4ErrorPropagatorManager::EventTermination ( )

◆ GetErrorPropagationNavigator()

G4ErrorPropagationNavigator * G4ErrorPropagatorManager::GetErrorPropagationNavigator ( ) const
inline

Definition at line 133 of file G4ErrorPropagatorManager.hh.

134 { return theG4ErrorPropagationNavigator; }

◆ GetErrorPropagatorManager()

G4ErrorPropagatorManager * G4ErrorPropagatorManager::GetErrorPropagatorManager ( )
static

Definition at line 69 of file G4ErrorPropagatorManager.cc.

70{
71 if( theG4ErrorPropagatorManager == NULL ) {
72 theG4ErrorPropagatorManager = new G4ErrorPropagatorManager;
73 }
74
75 return theG4ErrorPropagatorManager;
76}

◆ GetErrorRunManagerHelper()

G4ErrorRunManagerHelper * G4ErrorPropagatorManager::GetErrorRunManagerHelper ( ) const
inline

Definition at line 128 of file G4ErrorPropagatorManager.hh.

129 { return theG4ErrorRunManagerHelper; }

◆ GetPropagator()

G4ErrorPropagator * G4ErrorPropagatorManager::GetPropagator ( ) const
inline

Definition at line 136 of file G4ErrorPropagatorManager.hh.

137 { return thePropagator; }

◆ InitFieldForBackwards()

G4bool G4ErrorPropagatorManager::InitFieldForBackwards ( )

Definition at line 230 of file G4ErrorPropagatorManager.cc.

231{
232
233 if( G4ErrorPropagatorData::verbose() >= 4 ) G4cout << " G4ErrorPropagatorManager::InitFieldForBackwards() " << G4endl;
234 //----- Gets the current equation of motion
236 // G4cout << " fieldMgr " << fieldMgr << G4endl;
237 if( !fieldMgr ) return 0;
238
239 // G4Field* myfield = fieldMgr->GetDetectorField();
240 G4ChordFinder* cf = fieldMgr ->GetChordFinder();
241 if( !cf ) return 0;
243 if( !mid ) return 0;
244 G4MagIntegratorStepper* stepper = const_cast<G4MagIntegratorStepper*>(mid->GetStepper());
245 if( !stepper ) return 0;
246 G4EquationOfMotion* equation = stepper->GetEquationOfMotion();
247
248 //----- Replaces the equation by a G4ErrorMag_UsualEqRhs to handle backwards tracking
249 if ( !dynamic_cast<G4ErrorMag_UsualEqRhs*>(equation) ) {
250
251 G4MagneticField* myfield = (G4MagneticField*)fieldMgr->GetDetectorField();
252
253 // G4Mag_UsualEqRhs* fEquation_usual = dynamic_cast<G4Mag_UsualEqRhs*>(equation);
254 if( theEquationOfMotion == 0 ) theEquationOfMotion = new G4ErrorMag_UsualEqRhs(myfield);
255
256 //---- Pass the equation of motion to the G4MagIntegratorStepper
257 stepper->SetEquationOfMotion( theEquationOfMotion );
258
259 //--- change stepper for speed tests
260 G4MagIntegratorStepper* g4eStepper = new G4ClassicalRK4(theEquationOfMotion);
261 // G4MagIntegratorStepper* g4eStepper = new G4ExactHelixStepper(theEquationOfMotion);
262
263 //----
264 G4MagneticField* field = static_cast<G4MagneticField*>(const_cast<G4Field*>(fieldMgr->GetDetectorField()));
265 G4ChordFinder* pChordFinder = new G4ChordFinder(field, 1.0e-2*mm, g4eStepper);
266
267 fieldMgr->SetChordFinder(pChordFinder);
268
269 }
270
271 return 1;
272}
#define G4endl
Definition: G4ios.hh:52
G4DLLIMPORT std::ostream G4cout
G4MagInt_Driver * GetIntegrationDriver()
void SetChordFinder(G4ChordFinder *aChordFinder)
const G4Field * GetDetectorField() const
G4ChordFinder * GetChordFinder()
const G4MagIntegratorStepper * GetStepper() const
G4EquationOfMotion * GetEquationOfMotion()
void SetEquationOfMotion(G4EquationOfMotion *newEquation)
static G4TransportationManager * GetTransportationManager()
G4FieldManager * GetFieldManager() const

Referenced by InitGeant4e().

◆ InitGeant4e()

void G4ErrorPropagatorManager::InitGeant4e ( )

Definition at line 172 of file G4ErrorPropagatorManager.cc.

173{
174 if( G4ErrorPropagatorData::verbose() >= 1 ) G4cout << "InitGeant4e GEANT4e State= " << PrintG4ErrorState() << " GEANT4 State= " << PrintG4State() << G4endl;
176 //----- Initialize run
177 // if( G4StateManager::GetStateManager()->GetCurrentState() == G4State_PreInit) {
178
180 if ( currentState == G4State_PreInit || currentState == G4State_Idle) {
181 // G4eRunManager::GetRunManager()->Initialize();
182 theG4ErrorRunManagerHelper->InitializeGeometry();
183 theG4ErrorRunManagerHelper->InitializePhysics();
184 }
185
187
188 //- G4StateManager::GetStateManager()->SetNewState(G4State_Idle);
189
190 if( G4ErrorPropagatorData::verbose() >= 4 ) G4cout << " bef theG4ErrorPropagatorManager->RunInitialization() " << G4StateManager::GetStateManager()->GetCurrentState() << G4endl;
191 theG4ErrorRunManagerHelper->RunInitialization();
192 if( G4ErrorPropagatorData::verbose() >= 4 ) G4cout << " aft theG4ErrorPropagatorManager->RunInitialization() " << G4StateManager::GetStateManager()->GetCurrentState() << G4endl;
193
194 if( !thePropagator ) thePropagator = new G4ErrorPropagator(); // currently the only propagator possible
195
197 } else {
198 G4cerr << "G4ErrorPropagatorManager::InitGeant4e: Illegal application state - "
199 << "G4ErrorPropagatorManager::InitGeant4e() ignored." << G4endl;
200 G4cerr << " GEANT4e State= " << PrintG4ErrorState()
201 //<< " GEANT4 State= " << PrintG4State()
202 << G4endl;
203 }
204
205 //----- Set the tracking geometry for this propagation
206 //t SetTrackingGeometry();
207 //----- Set the physics list for this propagation
208 //t SetPhysicsList();
209 //----- Set the field propagation parameters for this propagation
210 //t SetFieldPropagationParameters();
212
213 if( G4ErrorPropagatorData::verbose() >= 2 ) G4cout << "End InitGeant4e GEANT4e State= " << PrintG4ErrorState() << " GEANT4 State= " << PrintG4State() << G4endl;
214
215
216}
G4ApplicationState
@ G4State_Idle
@ G4State_PreInit
G4DLLIMPORT std::ostream G4cerr
G4ApplicationState GetCurrentState() const

◆ InitTrackPropagation()

void G4ErrorPropagatorManager::InitTrackPropagation ( )

Definition at line 220 of file G4ErrorPropagatorManager.cc.

221{
222 thePropagator->SetStepN( 0 );
223
225
226}
@ G4ErrorState_Propagating
void SetStepN(const G4int sn)

Referenced by InitGeant4e(), and Propagate().

◆ PrintG4ErrorState() [1/2]

G4String G4ErrorPropagatorManager::PrintG4ErrorState ( )

Definition at line 377 of file G4ErrorPropagatorManager.cc.

378{
380}

Referenced by InitGeant4e(), and PrintG4ErrorState().

◆ PrintG4ErrorState() [2/2]

G4String G4ErrorPropagatorManager::PrintG4ErrorState ( G4ErrorState  state)

Definition at line 384 of file G4ErrorPropagatorManager.cc.

385{
386 G4String nam = "";
387 switch (state){
389 nam = "G4ErrorState_PreInit";
390 break;
391 case G4ErrorState_Init:
392 nam = "G4ErrorState_Init";
393 break;
395 nam = "G4ErrorState_Propagating";
396 break;
398 nam = "G4ErrorState_TargetCloserThanBoundary";
399 break;
401 nam = "G4ErrorState_StoppedAtTarget";
402 break;
403 }
404
405 return nam;
406}
@ G4ErrorState_TargetCloserThanBoundary
@ G4ErrorState_StoppedAtTarget

◆ PrintG4State() [1/2]

G4String G4ErrorPropagatorManager::PrintG4State ( )

Definition at line 410 of file G4ErrorPropagatorManager.cc.

411{
412 return PrintG4State(G4StateManager::GetStateManager()->GetCurrentState());
413}

Referenced by InitGeant4e(), and PrintG4State().

◆ PrintG4State() [2/2]

G4String G4ErrorPropagatorManager::PrintG4State ( G4ApplicationState  state)

Definition at line 417 of file G4ErrorPropagatorManager.cc.

418{
419 G4String nam = "";
420 switch ( state ){
421 case G4State_PreInit:
422 nam = "G4State_PreInit";
423 break;
424 case G4State_Init:
425 nam = "G4State_Init";
426 break;
427 case G4State_Idle:
428 nam = "G4State_Idle";
429 break;
431 nam = "G4State_GeomClosed";
432 break;
434 nam = "G4State_EventProc";
435 break;
436 case G4State_Quit:
437 nam = "G4State_Quit";
438 break;
439 case G4State_Abort:
440 nam = "G4State_Abort";
441 break;
442 }
443
444 return nam;
445
446}
@ G4State_EventProc
@ G4State_Init
@ G4State_Abort

◆ Propagate()

G4int G4ErrorPropagatorManager::Propagate ( G4ErrorTrajState currentTS,
const G4ErrorTarget target,
G4ErrorMode  mode = G4ErrorMode_PropForwards 
)

Definition at line 276 of file G4ErrorPropagatorManager.cc.

277{
279 if( !thePropagator ) thePropagator = new G4ErrorPropagator(); // currently the only propagator possible
280
283
284 G4int ierr = thePropagator->Propagate( currentTS, target, mode );
285
287
288 return ierr;
289}
int G4int
Definition: G4Types.hh:66
void SetMode(G4ErrorMode mode)
G4int Propagate(G4ErrorTrajState *currentTS, const G4ErrorTarget *target, G4ErrorMode mode=G4ErrorMode_PropForwards)

◆ PropagateOneStep()

G4int G4ErrorPropagatorManager::PropagateOneStep ( G4ErrorTrajState currentTS,
G4ErrorMode  mode = G4ErrorMode_PropForwards 
)

Definition at line 293 of file G4ErrorPropagatorManager.cc.

294{
296
297 if( !thePropagator ) thePropagator = new G4ErrorPropagator(); // currently the only propagator possible
298
300
301 return thePropagator->PropagateOneStep( currentTS );
302}
G4int PropagateOneStep(G4ErrorTrajState *currentTS)

◆ RunTermination()

void G4ErrorPropagatorManager::RunTermination ( )

Definition at line 369 of file G4ErrorPropagatorManager.cc.

◆ SetSteppingManagerVerboseLevel()

void G4ErrorPropagatorManager::SetSteppingManagerVerboseLevel ( )

Definition at line 354 of file G4ErrorPropagatorManager.cc.

355{
357 trkmgr->GetSteppingManager()->SetVerboseLevel( trkmgr->GetVerboseLevel() );
358}
static G4EventManager * GetEventManager()
G4TrackingManager * GetTrackingManager() const
void SetVerboseLevel(G4int vLevel)
G4int GetVerboseLevel() const
G4SteppingManager * GetSteppingManager() const

Referenced by Propagate(), and PropagateOneStep().

◆ SetUserAction() [1/2]

void G4ErrorPropagatorManager::SetUserAction ( G4UserSteppingAction userAction)

Definition at line 347 of file G4ErrorPropagatorManager.cc.

348{
350}
void SetUserAction(G4UserEventAction *userAction)

◆ SetUserAction() [2/2]

void G4ErrorPropagatorManager::SetUserAction ( G4UserTrackingAction userAction)

Definition at line 340 of file G4ErrorPropagatorManager.cc.

341{
343}

◆ SetUserInitialization() [1/3]

void G4ErrorPropagatorManager::SetUserInitialization ( G4VPhysicalVolume userInit)

Definition at line 326 of file G4ErrorPropagatorManager.cc.

327{
328 theG4ErrorRunManagerHelper->SetUserInitialization( userInit);
329}
void SetUserInitialization(G4VUserDetectorConstruction *userInit)

◆ SetUserInitialization() [2/3]

void G4ErrorPropagatorManager::SetUserInitialization ( G4VUserDetectorConstruction userInit)

Definition at line 319 of file G4ErrorPropagatorManager.cc.

320{
321 theG4ErrorRunManagerHelper->SetUserInitialization( userInit);
322}

◆ SetUserInitialization() [3/3]

void G4ErrorPropagatorManager::SetUserInitialization ( G4VUserPhysicsList userInit)

Definition at line 333 of file G4ErrorPropagatorManager.cc.

334{
335 theG4ErrorRunManagerHelper->SetUserInitialization( userInit);
336}

The documentation for this class was generated from the following files: