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 ()
 
G4SteppingManager * GetSteppingManager () const
 
G4int GetStoreTrajectory () const
 
G4Track * GetTrack () const
 
G4UserTrackingAction * GetUserTrackingAction () const
 
G4int GetVerboseLevel () const
 
G4TrackVector * GimmeSecondaries () const
 
G4VTrajectory * GimmeTrajectory () 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
 
G4SteppingManager * fpSteppingManager = nullptr
 
G4Track * fpTrack = nullptr
 
G4VTrajectory * fpTrajectory = nullptr
 
G4UserTrackingAction * fpUserTrackingAction = nullptr
 
G4TrackingMessenger * messenger = 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: