ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
Home page
Related Pages
Modules
Namespaces
Classes
Files
External Links
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
G4ErrorPropagatorManager.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file G4ErrorPropagatorManager.hh
1
//
2
// ********************************************************************
3
// * License and Disclaimer *
4
// * *
5
// * The Geant4 software is copyright of the Copyright Holders of *
6
// * the Geant4 Collaboration. It is provided under the terms and *
7
// * conditions of the Geant4 Software License, included in the file *
8
// * LICENSE and available at http://cern.ch/geant4/license . These *
9
// * include a list of copyright holders. *
10
// * *
11
// * Neither the authors of this software system, nor their employing *
12
// * institutes,nor the agencies providing financial support for this *
13
// * work make any representation or warranty, express or implied, *
14
// * regarding this software system or assume any liability for its *
15
// * use. Please see the license in the file LICENSE and URL above *
16
// * for the full disclaimer and the limitation of liability. *
17
// * *
18
// * This code implementation is the result of the scientific and *
19
// * technical work of the GEANT4 collaboration. *
20
// * By using, copying, modifying or distributing the software (or *
21
// * any work based on the software) you agree to acknowledge its *
22
// * use in resulting scientific publications, and indicate your *
23
// * acceptance of all terms of the Geant4 Software license. *
24
// ********************************************************************
25
//
26
//
27
//
28
// Class Description:
29
//
30
// This is the class manager of the GEANT4e package.
31
// It is the main interface for the user to define the setup and
32
// start the propagation. Initializes GEANT4 for the propagation.
33
34
// History:
35
// - Created: Pedro Arce, February 2001
36
// --------------------------------------------------------------------
37
38
#ifndef G4ErrorPropagatorManager_hh
39
#define G4ErrorPropagatorManager_hh
40
41
#include "
globals.hh
"
42
#include "
G4ErrorPropagatorData.hh
"
43
#include "
G4ErrorPropagator.hh
"
44
#include "
G4ApplicationState.hh
"
45
46
class
G4ErrorPropagationNavigator
;
47
class
G4ErrorRunManagerHelper
;
48
class
G4ErrorTarget
;
49
class
G4ErrorTrajState
;
50
51
class
G4VUserDetectorConstruction
;
52
class
G4VPhysicalVolume
;
53
class
G4VUserPhysicsList
;
54
class
G4UserRunAction
;
55
class
G4UserEventAction
;
56
class
G4UserStackingAction
;
57
class
G4UserTrackingAction
;
58
class
G4UserSteppingAction
;
59
class
G4Mag_UsualEqRhs
;
60
class
G4Track
;
61
62
class
G4ErrorPropagatorManager
63
{
64
65
public
:
// with description
66
67
G4ErrorPropagatorManager
();
68
// Initialise data to 0. Starts the G4ErrorRunManagerHelper and
69
// G4ErrorPropagationNavigator.
70
71
~G4ErrorPropagatorManager
();
72
73
static
G4ErrorPropagatorManager
*
GetErrorPropagatorManager
();
74
// Get only instance of G4ErrorPropagatorManager. If it does not exists,
75
// creates it
76
77
void
EventTermination
();
78
// Set state to G4ErrorState_Init
79
80
void
RunTermination
();
81
// Set state to G4ErrorState_Init and invoke
82
// G4ErrorRunManagerHelper::RunTermination()
83
84
void
InitGeant4e
();
85
// Initializes Geant4 and Geant4e
86
87
void
InitTrackPropagation
();
88
// Set the propagator step number to 0 and the G4ErrorState to Propagating
89
90
G4bool
InitFieldForBackwards
();
91
// Creates the G4ErrorMag_UsualEqRhs, that will control backwards tracking
92
93
G4int
Propagate
(
G4ErrorTrajState
* currentTS,
const
G4ErrorTarget
*
target
,
G4ErrorMode
mode =
G4ErrorMode_PropForwards
);
94
// Inits track propagation, invokes G4ErrorPropagator::Propagate and
95
// terminates "event"
96
97
G4int
PropagateOneStep
(
G4ErrorTrajState
* currentTS,
98
G4ErrorMode
mode =
G4ErrorMode_PropForwards
);
99
// Invokes G4ErrorPropagator::PropagateOneStep
100
101
G4bool
CloseGeometry
();
102
// Close Geant4 geometry
103
104
void
SetUserInitialization
(
G4VUserDetectorConstruction
* userInit);
105
// Invokes G4ErrorRunManagerHelper to construct detector and set
106
// world volume
107
void
SetUserInitialization
(
G4VPhysicalVolume
* userInit);
108
// Invokes G4ErrorRunManagerHelper to set world volume
109
void
SetUserInitialization
(
G4VUserPhysicsList
* userInit);
110
// Invokes G4ErrorRunManagerHelper to initialize physics
111
112
void
SetUserAction
(
G4UserTrackingAction
* userAction);
113
// Invokes G4EventManager to set a G4UserTrackingAction
114
void
SetUserAction
(
G4UserSteppingAction
* userAction);
115
// Invokes G4EventManager to set a G4UserSteppingAction
116
117
G4String
PrintG4ErrorState
();
118
G4String
PrintG4ErrorState
(
G4ErrorState
state );
119
// Print Geant4e state
120
121
G4String
PrintG4State
();
122
G4String
PrintG4State
(
G4ApplicationState
state );
123
// Print Geant4 state
124
125
// Set and Get methods
126
127
G4ErrorRunManagerHelper
*
GetErrorRunManagerHelper
()
const
128
{
return
theG4ErrorRunManagerHelper
; }
129
130
void
SetSteppingManagerVerboseLevel
();
131
132
G4ErrorPropagationNavigator
*
GetErrorPropagationNavigator
()
const
133
{
return
theG4ErrorPropagationNavigator
; }
134
135
G4ErrorPropagator
*
GetPropagator
()
const
136
{
return
thePropagator
; }
137
138
private
:
139
140
void
StartG4ErrorRunManagerHelper
();
141
// Create a G4ErrorRunManagerHelper if it does not exist and set to it
142
// the G4ErrorPhysicsList
143
144
void
StartNavigator
();
145
// create a G4ErrorPropagationNavigator
146
147
private
:
148
149
static
G4ThreadLocal
G4ErrorPropagatorManager
*
theG4ErrorPropagatorManager
;
150
151
G4ErrorRunManagerHelper
*
theG4ErrorRunManagerHelper
;
152
153
G4ErrorPropagator
*
thePropagator
;
154
155
G4Mag_UsualEqRhs
*
theEquationOfMotion
;
156
157
G4ErrorPropagationNavigator
*
theG4ErrorPropagationNavigator
;
158
159
};
160
161
#endif
geant4
tree
geant4-10.6-release
source
error_propagation
include
G4ErrorPropagatorManager.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:13
using
1.8.2 with
ECCE GitHub integration