Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4TrackingManager.hh
Go to the documentation of this file.
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// $Id$
28//
29//---------------------------------------------------------------
30//
31// G4TrackingManager.hh
32//
33// class description:
34// This is an interface class among the event, the track
35// and the tracking category. It handles necessary
36// message passings between the upper hierarchical object, which
37// is the event manager (G4EventManager), and lower hierarchical
38// objects in the tracking category. It receives one track in an
39// event from the event manager and takes care to finish tracking it.
40// Geant4 kernel use only.
41//
42// Contact:
43// Questions and comments to this code should be sent to
44// Katsuya Amako (e-mail: [email protected])
45// Takashi Sasaki (e-mail: [email protected])
46//
47//---------------------------------------------------------------
48
50
51#ifndef G4TrackingManager_h
52#define G4TrackingManager_h 1
53
54#include "globals.hh" // Include from 'global'
55/////#include "G4Hit.hh" // Include from 'Hit/dig'
56#include "G4SteppingManager.hh" // Include from 'tracking'
57#include "G4Track.hh" // Include from 'tracking'
59#include "G4TrackVector.hh" // Include from 'tracking'
60#include "G4TrackStatus.hh" // Include from 'tracking'
61#include "G4StepStatus.hh" // Include from 'tracking'
62#include "G4UserTrackingAction.hh" // Include from 'tracking'
63#include "G4UserSteppingAction.hh" // Include from 'tracking'
64#include "G4VTrajectory.hh" // Include from 'tracking'
65
67
68////////////////////////
70////////////////////////
71{
72
73//--------
74public: // without description
75//--------
76
77// Constructor/Destructor
78
80 // TrackingManger should be dynamic persistent, therefore you
81 // need to invoke new() when you call this constructor.
82 // "G4SteppingManger' and "G4UserTrackingAction" will be
83 // constructed in this constructor. "This" pointer will be
84 // passed to "G4UserTrackingAction".
85
87
88// Get/Set functions
89
90 G4Track* GetTrack() const;
91
93 void SetStoreTrajectory(G4int value);
94
96
98
100 void SetTrajectory(G4VTrajectory* aTrajectory);
101
103
104 // void SetNavigator(G4Navigator* apValue);
105
106 void SetUserAction(G4UserTrackingAction* apAction);
107 void SetUserAction(G4UserSteppingAction* apAction);
108
109 void SetVerboseLevel(G4int vLevel);
110 G4int GetVerboseLevel() const;
111
112
113// Other member functions
114
115 void ProcessOneTrack(G4Track* apValueG4Track);
116 // Invoking this function, a G4Track given by the argument
117 // will be tracked.
118
119 void EventAborted();
120 // Invoking this function, the current tracking will be
121 // aborted immediately. The tracking will return the
122 // G4TrackStatus in 'fUserKillTrackAndSecondaries'.
123 // By this the EventManager deletes the current track and all
124 // its accoicated csecondaries.
125
127 // This method can be invoked from the user's G4UserTrackingAction
128 // implementation to set his/her own G4VUserTrackInformation concrete
129 // class object to a G4Track object.
130
131//---------
132 private:
133//---------
134
135// Member data
136
137 G4Track* fpTrack;
138 G4SteppingManager* fpSteppingManager;
139 G4UserTrackingAction* fpUserTrackingAction;
140 G4VTrajectory* fpTrajectory;
141 G4int StoreTrajectory;
142 G4int verboseLevel;
143 G4TrackingMessenger* messenger;
144 G4bool EventIsAborted;
145// verbose
146 void TrackBanner();
147
148};
149
150
151//*******************************************************************
152//
153// Inline function
154//
155//*******************************************************************
156
158 return fpTrack;
159 }
160
162 return StoreTrajectory;
163 }
164
166 StoreTrajectory = value;
167 }
168
170 return fpSteppingManager;
171 }
172
174 return fpUserTrackingAction;
175 }
176
178 return fpTrajectory ;
179 }
180
182 return fpSteppingManager->GetfSecondary();
183 }
184
186 fpUserTrackingAction = apAction;
187 if(apAction != 0){
188 apAction->SetTrackingManagerPointer(this);
189 }
190 }
191
193 fpSteppingManager->SetUserAction(apAction);
194 if(apAction != 0){
195 apAction->SetSteppingManagerPointer(fpSteppingManager);
196 }
197 }
198
200 verboseLevel = vLevel;
201 fpSteppingManager -> SetVerboseLevel( vLevel );
202 }
203
204
206 return verboseLevel;
207 }
208
210 if(fpTrack) fpTrack->SetUserInformation(aValue);
211 }
212
213#endif
std::vector< G4Track * > G4TrackVector
int G4int
Definition: G4Types.hh:66
bool G4bool
Definition: G4Types.hh:67
G4TrackVector * GetfSecondary()
void SetUserAction(G4UserSteppingAction *apAction)
void SetUserInformation(G4VUserTrackInformation *aValue)
void SetUserAction(G4UserTrackingAction *apAction)
G4int GetVerboseLevel() const
G4TrackVector * GimmeSecondaries() const
void SetUserTrackInformation(G4VUserTrackInformation *aValue)
void SetVerboseLevel(G4int vLevel)
G4SteppingManager * GetSteppingManager() const
G4UserTrackingAction * GetUserTrackingAction() const
void SetStoreTrajectory(G4int value)
void ProcessOneTrack(G4Track *apValueG4Track)
G4Track * GetTrack() const
void SetTrajectory(G4VTrajectory *aTrajectory)
G4int GetStoreTrajectory() const
G4VTrajectory * GimmeTrajectory() const
void SetSteppingManagerPointer(G4SteppingManager *pValue)
void SetTrackingManagerPointer(G4TrackingManager *pValue)