Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
G4TrackingInformation.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// $Id: G4TrackingInformation.hh 64057 2012-10-30 15:04:49Z gcosmo $
27//
28// Author: Mathieu Karamitros (kara (AT) cenbg . in2p3 . fr)
29//
30// WARNING : This class is released as a prototype.
31// It might strongly evolve or even disapear in the next releases.
32//
33// History:
34// -----------
35// 10 Oct 2011 M.Karamitros created
36//
37// -------------------------------------------------------------------
38
39#ifndef G4TRACKINGINFORMATION_HH
40#define G4TRACKINGINFORMATION_HH
41
42#include "globals.hh"
43#include <vector>
44#include "G4StepStatus.hh"
45#include "G4ThreeVector.hh"
46#include "G4TouchableHandle.hh"
47
49
50typedef std::vector<G4int>
52typedef std::vector<G4int>
54typedef std::vector<G4int>
56typedef std::vector<G4int>
58
59class G4Trajectory_Lock;
60class G4Track;
63class G4SaveNavigatorState_Lock;
65
68protected :
69 inline virtual ~G4ITStepProcessorState_Lock(){;}
70};
71
72
73/** The class G4TrackingInformation (hold by G4IT)
74 * emcompasses processes informations computed
75 * at the PS/AS/AtRest/InteractionLength stage,
76 * and also, the selection of processes for the
77 * given step.
78 */
80{
81public:
84
85 //________________________________________________
86 /** If the track is the one having the minimum step time,
87 * then it "leads" the step. It will interact will all the
88 * other tracks will be transported.
89 */
90 inline bool IsLeadingStep(){return fStepLeader;}
91 inline void SetLeadingStep(bool value ){fStepLeader = value;}
92
93 //________________________________________________
94 /** Every process should store the information
95 * computed at the InteractionLegth stage in the track.
96 */
97
99
101 size_t index);
102
105
106 inline G4Trajectory_Lock* GetTrajectory_Lock()
107 {
108 return fpTrajectory_Lock ;
109 }
110
111 inline void SetTrajectory_Lock(G4Trajectory_Lock* trajLock)
112 {
113 fpTrajectory_Lock = trajLock;
114 }
115
117 inline const G4ThreeVector& GetPreStepPosition() const;
118 inline G4double GetPreStepLocalTime() const;
119 inline G4double GetPreStepGlobalTime() const;
120
123
124 //-------------
125protected:
126 //-------------
127 friend class G4ITStepProcessor;
128 //_______________________________________________________
130 //_______________________________________________________
131 G4Trajectory_Lock* fpTrajectory_Lock;
132
133 //_______________________________________________________
137
138 //_______________________________________________________
140// G4SaveNavigatorState_Lock* fNavigatorState;
141
142 //_______________________________________________________
143 /** Holds the information related to processes
144 * Indexed on GetPhysIntVector
145 * (cf. G4ITStepProcessor header)
146 */
147 std::vector<G4ProcessState_Lock*> fProcessState;
148
149 //_______________________________________________________
151
152 //_______________________________________________________
153 /** Copy constructor
154 * \param other Object to copy from
155 */
157
158 /** Assignment operator
159 * \param other Object to assign from
160 * \return A reference to this
161 */
163};
164
166{
167 fpStepProcessorState = state;
168}
169
171{
173}
174
176 size_t index)
177{
178 fProcessState[index] = state;
179}
180
181
183{
185}
186
188{
190}
191
193{
195}
196
197
199{
200 fNavigatorState = state;
201}
202
204{
205 return fNavigatorState;
206}
207
208
209#endif // G4TRACKINGINFORMATION_HH
std::vector< G4int > G4SelectedPostStepAtTimeDoItVector
std::vector< G4int > G4SelectedAlongStepDoItVector
std::vector< G4int > G4SelectedAtRestDoItVector
std::vector< G4int > G4SelectedPostStepDoItVector
double G4double
Definition: G4Types.hh:64
bool G4bool
Definition: G4Types.hh:67
void SetTrajectory_Lock(G4Trajectory_Lock *trajLock)
G4ProcessState_Lock * GetProcessState(size_t index)
G4ITStepProcessorState_Lock * fpStepProcessorState
void SetStepProcessorState(G4ITStepProcessorState_Lock *)
G4ITNavigatorState_Lock * fNavigatorState
G4double GetPreStepLocalTime() const
G4double GetPreStepGlobalTime() const
void SetNavigatorState(G4ITNavigatorState_Lock *)
void RecordProcessState(G4ProcessState_Lock *, size_t index)
G4ITStepProcessorState_Lock * GetStepProcessorState()
G4Trajectory_Lock * fpTrajectory_Lock
void RecordCurrentPositionNTime(G4Track *)
G4TrackingInformation & operator=(const G4TrackingInformation &other)
std::vector< G4ProcessState_Lock * > fProcessState
void SetLeadingStep(bool value)
G4ITNavigatorState_Lock * GetNavigatorState() const
G4Trajectory_Lock * GetTrajectory_Lock()
const G4ThreeVector & GetPreStepPosition() const