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

#include <G4TrackingManager.hh>

Public Member Functions

 G4TrackingManager ()
 
 ~G4TrackingManager ()
 
G4TrackGetTrack () const
 
G4int GetStoreTrajectory () const
 
void SetStoreTrajectory (G4int value)
 
G4SteppingManagerGetSteppingManager () const
 
G4UserTrackingActionGetUserTrackingAction () const
 
G4VTrajectoryGimmeTrajectory () const
 
void SetTrajectory (G4VTrajectory *aTrajectory)
 
G4TrackVectorGimmeSecondaries () const
 
void SetUserAction (G4UserTrackingAction *apAction)
 
void SetUserAction (G4UserSteppingAction *apAction)
 
void SetVerboseLevel (G4int vLevel)
 
G4int GetVerboseLevel () const
 
void ProcessOneTrack (G4Track *apValueG4Track)
 
void EventAborted ()
 
void SetUserTrackInformation (G4VUserTrackInformation *aValue)
 

Detailed Description

Definition at line 69 of file G4TrackingManager.hh.

Constructor & Destructor Documentation

◆ G4TrackingManager()

G4TrackingManager::G4TrackingManager ( )

Definition at line 48 of file G4TrackingManager.cc.

50 : fpUserTrackingAction(0), fpTrajectory(0),
51 StoreTrajectory(0), verboseLevel(0), EventIsAborted(false)
52{
53 fpSteppingManager = new G4SteppingManager();
54 messenger = new G4TrackingMessenger(this);
55}

◆ ~G4TrackingManager()

G4TrackingManager::~G4TrackingManager ( )

Definition at line 58 of file G4TrackingManager.cc.

60{
61 delete messenger;
62 delete fpSteppingManager;
63 if (fpUserTrackingAction) delete fpUserTrackingAction;
64}

Member Function Documentation

◆ EventAborted()

void G4TrackingManager::EventAborted ( )

Definition at line 163 of file G4TrackingManager.cc.

165{
167 EventIsAborted = true;
168}
@ fKillTrackAndSecondaries
void SetTrackStatus(const G4TrackStatus aTrackStatus)

Referenced by G4EventManager::AbortCurrentEvent().

◆ GetSteppingManager()

G4SteppingManager * G4TrackingManager::GetSteppingManager ( ) const
inline

◆ GetStoreTrajectory()

G4int G4TrackingManager::GetStoreTrajectory ( ) const
inline

Definition at line 161 of file G4TrackingManager.hh.

161 {
162 return StoreTrajectory;
163 }

Referenced by G4TrackingMessenger::GetCurrentValue().

◆ GetTrack()

G4Track * G4TrackingManager::GetTrack ( ) const
inline

Definition at line 157 of file G4TrackingManager.hh.

157 {
158 return fpTrack;
159 }

◆ GetUserTrackingAction()

G4UserTrackingAction * G4TrackingManager::GetUserTrackingAction ( ) const
inline

Definition at line 173 of file G4TrackingManager.hh.

173 {
174 return fpUserTrackingAction;
175 }

◆ GetVerboseLevel()

G4int G4TrackingManager::GetVerboseLevel ( ) const
inline

Definition at line 205 of file G4TrackingManager.hh.

205 {
206 return verboseLevel;
207 }

Referenced by G4TrackingMessenger::GetCurrentValue(), and G4ErrorPropagatorManager::SetSteppingManagerVerboseLevel().

◆ GimmeSecondaries()

G4TrackVector * G4TrackingManager::GimmeSecondaries ( ) const
inline

Definition at line 181 of file G4TrackingManager.hh.

181 {
182 return fpSteppingManager->GetfSecondary();
183 }
G4TrackVector * GetfSecondary()

Referenced by ProcessOneTrack().

◆ GimmeTrajectory()

G4VTrajectory * G4TrackingManager::GimmeTrajectory ( ) const
inline

Definition at line 177 of file G4TrackingManager.hh.

177 {
178 return fpTrajectory ;
179 }

◆ ProcessOneTrack()

void G4TrackingManager::ProcessOneTrack ( G4Track apValueG4Track)

Definition at line 67 of file G4TrackingManager.cc.

69{
70
71 // Receiving a G4Track from the EventManager, this funciton has the
72 // responsibility to trace the track till it stops.
73 fpTrack = apValueG4Track;
74 EventIsAborted = false;
75
76 // Clear 2ndary particle vector
77 // GimmeSecondaries()->clearAndDestroy();
78 // std::vector<G4Track*>::iterator itr;
79 size_t itr;
80 // for(itr=GimmeSecondaries()->begin();itr=GimmeSecondaries()->end();itr++){
81 for(itr=0;itr<GimmeSecondaries()->size();itr++){
82 delete (*GimmeSecondaries())[itr];
83 }
84 GimmeSecondaries()->clear();
85
86 if(verboseLevel>0 && (G4VSteppingVerbose::GetSilent()!=1) ) TrackBanner();
87
88 // Give SteppingManger the pointer to the track which will be tracked
89 fpSteppingManager->SetInitialStep(fpTrack);
90
91 // Pre tracking user intervention process.
92 fpTrajectory = 0;
93 if( fpUserTrackingAction != 0 ) {
94 fpUserTrackingAction->PreUserTrackingAction(fpTrack);
95 }
96#ifdef G4_STORE_TRAJECTORY
97 // Construct a trajectory if it is requested
98 if(StoreTrajectory&&(!fpTrajectory)) {
99 // default trajectory concrete class object
100 switch (StoreTrajectory) {
101 default:
102 case 1: fpTrajectory = new G4Trajectory(fpTrack); break;
103 case 2: fpTrajectory = new G4SmoothTrajectory(fpTrack); break;
104 case 3: fpTrajectory = new G4RichTrajectory(fpTrack); break;
105 }
106 }
107#endif
108
109 // Give SteppingManger the maxmimum number of processes
110 fpSteppingManager->GetProcessNumber();
111
112 // Give track the pointer to the Step
113 fpTrack->SetStep(fpSteppingManager->GetStep());
114
115 // Inform beginning of tracking to physics processes
116 fpTrack->GetDefinition()->GetProcessManager()->StartTracking(fpTrack);
117
118 // Track the particle Step-by-Step while it is alive
119 // G4StepStatus stepStatus;
120
121 while( (fpTrack->GetTrackStatus() == fAlive) ||
122 (fpTrack->GetTrackStatus() == fStopButAlive) ){
123
125 fpSteppingManager->Stepping();
126#ifdef G4_STORE_TRAJECTORY
127 if(StoreTrajectory) fpTrajectory->
128 AppendStep(fpSteppingManager->GetStep());
129#endif
130 if(EventIsAborted) {
132 }
133 }
134 // Inform end of tracking to physics processes
136
137 // Post tracking user intervention process.
138 if( fpUserTrackingAction != 0 ) {
139 fpUserTrackingAction->PostUserTrackingAction(fpTrack);
140 }
141
142 // Destruct the trajectory if it was created
143#ifdef G4VERBOSE
144 if(StoreTrajectory&&verboseLevel>10) fpTrajectory->ShowTrajectory();
145#endif
146 if( (!StoreTrajectory)&&fpTrajectory ) {
147 delete fpTrajectory;
148 fpTrajectory = 0;
149 }
150}
@ fAlive
@ fStopButAlive
G4ProcessManager * GetProcessManager() const
void StartTracking(G4Track *aTrack=0)
G4StepStatus Stepping()
void SetInitialStep(G4Track *valueTrack)
G4Step * GetStep() const
G4TrackStatus GetTrackStatus() const
void SetStep(const G4Step *aValue)
G4ParticleDefinition * GetDefinition() const
void IncrementCurrentStepNumber()
G4TrackVector * GimmeSecondaries() const
virtual void PostUserTrackingAction(const G4Track *)
virtual void PreUserTrackingAction(const G4Track *)
static G4int GetSilent()
virtual void ShowTrajectory(std::ostream &os=G4cout) const

◆ SetStoreTrajectory()

void G4TrackingManager::SetStoreTrajectory ( G4int  value)
inline

Definition at line 165 of file G4TrackingManager.hh.

165 {
166 StoreTrajectory = value;
167 }

Referenced by G4TrackingMessenger::SetNewValue().

◆ SetTrajectory()

void G4TrackingManager::SetTrajectory ( G4VTrajectory aTrajectory)

Definition at line 152 of file G4TrackingManager.cc.

153{
154#ifndef G4_STORE_TRAJECTORY
155 G4Exception("G4TrackingManager::SetTrajectory()",
156 "Tracking0015", FatalException,
157 "Invoked without G4_STORE_TRAJECTORY option set!");
158#endif
159 fpTrajectory = aTrajectory;
160}
@ FatalException
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41

◆ SetUserAction() [1/2]

void G4TrackingManager::SetUserAction ( G4UserSteppingAction apAction)
inline

Definition at line 192 of file G4TrackingManager.hh.

192 {
193 fpSteppingManager->SetUserAction(apAction);
194 if(apAction != 0){
195 apAction->SetSteppingManagerPointer(fpSteppingManager);
196 }
197 }
void SetUserAction(G4UserSteppingAction *apAction)
void SetSteppingManagerPointer(G4SteppingManager *pValue)

◆ SetUserAction() [2/2]

void G4TrackingManager::SetUserAction ( G4UserTrackingAction apAction)
inline

Definition at line 185 of file G4TrackingManager.hh.

185 {
186 fpUserTrackingAction = apAction;
187 if(apAction != 0){
188 apAction->SetTrackingManagerPointer(this);
189 }
190 }
void SetTrackingManagerPointer(G4TrackingManager *pValue)

Referenced by G4EventManager::SetUserAction().

◆ SetUserTrackInformation()

void G4TrackingManager::SetUserTrackInformation ( G4VUserTrackInformation aValue)
inline

Definition at line 209 of file G4TrackingManager.hh.

209 {
210 if(fpTrack) fpTrack->SetUserInformation(aValue);
211 }
void SetUserInformation(G4VUserTrackInformation *aValue)

◆ SetVerboseLevel()

void G4TrackingManager::SetVerboseLevel ( G4int  vLevel)
inline

Definition at line 199 of file G4TrackingManager.hh.

199 {
200 verboseLevel = vLevel;
201 fpSteppingManager -> SetVerboseLevel( vLevel );
202 }
void SetVerboseLevel(G4int vLevel)

Referenced by G4TrackingMessenger::SetNewValue(), and SetVerboseLevel().


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