Geant4-11
Public Types | Public Member Functions | Private Member Functions | Private Attributes
G4TrackingManager Class Reference

#include <G4TrackingManager.hh>

Public Types

using ProfilerConfig = G4Track::ProfilerConfig
 

Public Member Functions

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

Private Member Functions

void TrackBanner ()
 

Private Attributes

G4bool EventIsAborted = false
 
G4SteppingManagerfpSteppingManager = nullptr
 
G4TrackfpTrack = nullptr
 
G4VTrajectoryfpTrajectory = nullptr
 
G4UserTrackingActionfpUserTrackingAction = nullptr
 
G4TrackingMessengermessenger = nullptr
 
G4int StoreTrajectory = 0
 
G4int verboseLevel = 0
 

Detailed Description

Definition at line 59 of file G4TrackingManager.hh.

Member Typedef Documentation

◆ ProfilerConfig

Definition at line 63 of file G4TrackingManager.hh.

Constructor & Destructor Documentation

◆ G4TrackingManager()

G4TrackingManager::G4TrackingManager ( )

Definition at line 43 of file G4TrackingManager.cc.

References fpSteppingManager, and messenger.

◆ ~G4TrackingManager()

G4TrackingManager::~G4TrackingManager ( )

Definition at line 51 of file G4TrackingManager.cc.

53{
54 delete messenger;
55 delete fpSteppingManager;
57}
G4UserTrackingAction * fpUserTrackingAction

References fpSteppingManager, fpUserTrackingAction, and messenger.

Member Function Documentation

◆ EventAborted()

void G4TrackingManager::EventAborted ( )

Definition at line 187 of file G4TrackingManager.cc.

189{
191 EventIsAborted = true;
192}
@ fKillTrackAndSecondaries
void SetTrackStatus(const G4TrackStatus aTrackStatus)

References EventIsAborted, fKillTrackAndSecondaries, fpTrack, and G4Track::SetTrackStatus().

Referenced by G4EventManager::AbortCurrentEvent().

◆ GetSteppingManager()

G4SteppingManager * G4TrackingManager::GetSteppingManager ( ) const
inline

◆ GetStoreTrajectory()

G4int G4TrackingManager::GetStoreTrajectory ( ) const
inline

◆ GetTrack()

G4Track * G4TrackingManager::GetTrack ( ) const
inline

Definition at line 140 of file G4TrackingManager.hh.

141{
142 return fpTrack;
143}

References fpTrack.

◆ GetUserTrackingAction()

G4UserTrackingAction * G4TrackingManager::GetUserTrackingAction ( ) const
inline

Definition at line 160 of file G4TrackingManager.hh.

161{
162 return fpUserTrackingAction;
163}

References fpUserTrackingAction.

◆ GetVerboseLevel()

G4int G4TrackingManager::GetVerboseLevel ( ) const
inline

◆ GimmeSecondaries()

G4TrackVector * G4TrackingManager::GimmeSecondaries ( ) const
inline

Definition at line 170 of file G4TrackingManager.hh.

171{
173}
G4TrackVector * GetfSecondary()

References fpSteppingManager, and G4SteppingManager::GetfSecondary().

Referenced by G4EventManager::DoProcessing(), and ProcessOneTrack().

◆ GimmeTrajectory()

G4VTrajectory * G4TrackingManager::GimmeTrajectory ( ) const
inline

Definition at line 165 of file G4TrackingManager.hh.

166{
167 return fpTrajectory;
168}
G4VTrajectory * fpTrajectory

References fpTrajectory.

Referenced by G4EventManager::DoProcessing().

◆ ProcessOneTrack()

void G4TrackingManager::ProcessOneTrack ( G4Track apValueG4Track)

Definition at line 60 of file G4TrackingManager.cc.

62{
63 // Receiving a G4Track from the EventManager, this funciton has the
64 // responsibility to trace the track till it stops
65
66 fpTrack = apValueG4Track;
67 EventIsAborted = false;
68
69 // Clear secondary particle vector
70 //
71 for(std:: size_t itr=0; itr<GimmeSecondaries()->size(); ++itr)
72 {
73 delete (*GimmeSecondaries())[itr];
74 }
75 GimmeSecondaries()->clear();
76
78
79 // Give SteppingManger the pointer to the track which will be tracked
80 //
82
83 // Pre tracking user intervention process
84
85 fpTrajectory = nullptr;
86 if( fpUserTrackingAction != nullptr )
87 {
89 }
90
91 // we need this to scope the G4Track::ProfilerConfig b/t
92 // the PreUserTrackingAction and PostUserTrackingAction
93 {
94#if defined(GEANT4_USE_TIMEMORY)
95 ProfilerConfig profiler{ fpTrack };
96#endif
97
98#ifdef G4_STORE_TRAJECTORY
99 // Construct a trajectory if it is requested
100 //
101 if(StoreTrajectory && (fpTrajectory == nullptr))
102 {
103 // default trajectory concrete class object
104 switch(StoreTrajectory)
105 {
106 default:
107 case 1:
109 break;
110 case 2:
112 break;
113 case 3:
115 break;
116 case 4:
118 break;
119 }
120 }
121#endif
122
123 // Give SteppingManger the maxmimum number of processes
125
126 // Give track the pointer to the Step
128
129 // Inform beginning of tracking to physics processes
131
132 // Track the particle Step-by-Step while it is alive
133 //
134 while((fpTrack->GetTrackStatus() == fAlive) ||
136 {
139#ifdef G4_STORE_TRAJECTORY
141 {
143 }
144#endif
146 {
148 }
149 }
150 // Inform end of tracking to physics processes
152 }
153
154 // Post tracking user intervention process.
155 if( fpUserTrackingAction != nullptr )
156 {
158 }
159
160 // Destruct the trajectory if it was created
161#ifdef G4VERBOSE
163 {
165 }
166#endif
167 if( (!StoreTrajectory) && (fpTrajectory != nullptr) )
168 {
169 delete fpTrajectory;
170 fpTrajectory = nullptr;
171 }
172}
@ fAlive
@ fStopButAlive
G4ProcessManager * GetProcessManager() const
void StartTracking(G4Track *aTrack=nullptr)
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
G4Track::ProfilerConfig ProfilerConfig
virtual void PostUserTrackingAction(const G4Track *)
virtual void PreUserTrackingAction(const G4Track *)
static G4int GetSilent()
virtual void ShowTrajectory(std::ostream &os=G4cout) const
virtual void AppendStep(const G4Step *aStep)=0

References G4VTrajectory::AppendStep(), G4ProcessManager::EndTracking(), EventIsAborted, fAlive, fKillTrackAndSecondaries, fpSteppingManager, fpTrack, fpTrajectory, fpUserTrackingAction, fStopButAlive, G4Track::GetDefinition(), G4ParticleDefinition::GetProcessManager(), G4SteppingManager::GetProcessNumber(), G4VSteppingVerbose::GetSilent(), G4SteppingManager::GetStep(), G4Track::GetTrackStatus(), GimmeSecondaries(), G4Track::IncrementCurrentStepNumber(), G4UserTrackingAction::PostUserTrackingAction(), G4UserTrackingAction::PreUserTrackingAction(), G4SteppingManager::SetInitialStep(), G4Track::SetStep(), G4Track::SetTrackStatus(), G4VTrajectory::ShowTrajectory(), G4ProcessManager::StartTracking(), G4SteppingManager::Stepping(), StoreTrajectory, TrackBanner(), and verboseLevel.

Referenced by G4EventManager::DoProcessing().

◆ SetStoreTrajectory()

void G4TrackingManager::SetStoreTrajectory ( G4int  value)
inline

Definition at line 150 of file G4TrackingManager.hh.

151{
152 StoreTrajectory = value;
153}

References StoreTrajectory.

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

◆ SetTrajectory()

void G4TrackingManager::SetTrajectory ( G4VTrajectory aTrajectory)

Definition at line 175 of file G4TrackingManager.cc.

177{
178#ifndef G4_STORE_TRAJECTORY
179 G4Exception("G4TrackingManager::SetTrajectory()",
180 "Tracking0015", FatalException,
181 "Invoked without G4_STORE_TRAJECTORY option set!");
182#endif
183 fpTrajectory = aTrajectory;
184}
@ FatalException
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
Definition: G4Exception.cc:35

References FatalException, fpTrajectory, and G4Exception().

Referenced by G4RTTrackingAction::PreUserTrackingAction().

◆ SetUserAction() [1/2]

void G4TrackingManager::SetUserAction ( G4UserSteppingAction apAction)
inline

Definition at line 184 of file G4TrackingManager.hh.

185{
187 if(apAction != nullptr)
188 {
190 }
191}
void SetUserAction(G4UserSteppingAction *apAction)
virtual void SetSteppingManagerPointer(G4SteppingManager *pValue)

References fpSteppingManager, G4UserSteppingAction::SetSteppingManagerPointer(), and G4SteppingManager::SetUserAction().

◆ SetUserAction() [2/2]

void G4TrackingManager::SetUserAction ( G4UserTrackingAction apAction)
inline

Definition at line 175 of file G4TrackingManager.hh.

176{
177 fpUserTrackingAction = apAction;
178 if(apAction != nullptr)
179 {
180 apAction->SetTrackingManagerPointer(this);
181 }
182}
virtual void SetTrackingManagerPointer(G4TrackingManager *pValue)

References fpUserTrackingAction, and G4UserTrackingAction::SetTrackingManagerPointer().

Referenced by G4EventManager::SetUserAction().

◆ SetUserTrackInformation()

void G4TrackingManager::SetUserTrackInformation ( G4VUserTrackInformation aValue)
inline

Definition at line 205 of file G4TrackingManager.hh.

206{
207 if(fpTrack != nullptr) fpTrack->SetUserInformation(aValue);
208}
void SetUserInformation(G4VUserTrackInformation *aValue) const

References fpTrack, and G4Track::SetUserInformation().

Referenced by export_G4TrackingManager().

◆ SetVerboseLevel()

void G4TrackingManager::SetVerboseLevel ( G4int  vLevel)
inline

Definition at line 193 of file G4TrackingManager.hh.

194{
195 verboseLevel = vLevel;
197}
void SetVerboseLevel(G4int vLevel)

References fpSteppingManager, SetVerboseLevel(), and verboseLevel.

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

◆ TrackBanner()

void G4TrackingManager::TrackBanner ( )
private

Definition at line 195 of file G4TrackingManager.cc.

197{
198 G4cout << G4endl;
199 G4cout << "*******************************************************"
200 << "**************************************************"
201 << G4endl;
202 G4cout << "* G4Track Information: "
203 << " Particle = " << fpTrack->GetDefinition()->GetParticleName()
204 << ","
205 << " Track ID = " << fpTrack->GetTrackID()
206 << ","
207 << " Parent ID = " << fpTrack->GetParentID()
208 << G4endl;
209 G4cout << "*******************************************************"
210 << "**************************************************"
211 << G4endl;
212 G4cout << G4endl;
213}
#define G4endl
Definition: G4ios.hh:57
G4GLOB_DLL std::ostream G4cout
const G4String & GetParticleName() const
G4int GetTrackID() const
G4int GetParentID() const

References fpTrack, G4cout, G4endl, G4Track::GetDefinition(), G4Track::GetParentID(), G4ParticleDefinition::GetParticleName(), and G4Track::GetTrackID().

Referenced by ProcessOneTrack().

Field Documentation

◆ EventIsAborted

G4bool G4TrackingManager::EventIsAborted = false
private

Definition at line 131 of file G4TrackingManager.hh.

Referenced by EventAborted(), and ProcessOneTrack().

◆ fpSteppingManager

G4SteppingManager* G4TrackingManager::fpSteppingManager = nullptr
private

◆ fpTrack

G4Track* G4TrackingManager::fpTrack = nullptr
private

◆ fpTrajectory

G4VTrajectory* G4TrackingManager::fpTrajectory = nullptr
private

Definition at line 127 of file G4TrackingManager.hh.

Referenced by GimmeTrajectory(), ProcessOneTrack(), and SetTrajectory().

◆ fpUserTrackingAction

G4UserTrackingAction* G4TrackingManager::fpUserTrackingAction = nullptr
private

◆ messenger

G4TrackingMessenger* G4TrackingManager::messenger = nullptr
private

Definition at line 130 of file G4TrackingManager.hh.

Referenced by G4TrackingManager(), and ~G4TrackingManager().

◆ StoreTrajectory

G4int G4TrackingManager::StoreTrajectory = 0
private

Definition at line 128 of file G4TrackingManager.hh.

Referenced by GetStoreTrajectory(), ProcessOneTrack(), and SetStoreTrajectory().

◆ verboseLevel

G4int G4TrackingManager::verboseLevel = 0
private

Definition at line 129 of file G4TrackingManager.hh.

Referenced by GetVerboseLevel(), ProcessOneTrack(), and SetVerboseLevel().


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