ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
Home page
Related Pages
Modules
Namespaces
Classes
Files
External Links
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
G4StepPoint.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file G4StepPoint.hh
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
//
28
//
29
//---------------------------------------------------------------
30
//
31
// G4StepPoint.hh
32
//
33
// Class Description:
34
// This class represents information associated with the
35
// each end of a Step like the space/time data of the
36
// particle.
37
//
38
// Contact:
39
// Questions and comments to this code should be sent to
40
// Hisaya Kurashige
41
//
42
// ---------------------------------------------------------------
43
// Added fpMaterial 16 FEb. 2000 H.Kurahige
44
// Added fpMaterialCutsCouple 8 Oct. 2002 H.Kurahige
45
// Added fMagneticMoment Mar 2007 H.Kurashige
46
47
#ifndef G4StepPoint_h
48
#define G4StepPoint_h 1
49
50
#include <cmath>
// Include from 'system'
51
#include <
CLHEP/Units/PhysicalConstants.h
>
52
53
#include "
globals.hh
"
// Include from 'global'
54
#include "
G4Allocator.hh
"
// Include from 'global'
55
#include "
G4ThreeVector.hh
"
// Include from 'geometry'
56
#include "
G4VPhysicalVolume.hh
"
// Include from 'geometry'
57
class
G4VProcess
;
58
#include "
G4SteppingControl.hh
"
59
#include "
G4StepStatus.hh
"
// Include from 'track'
60
#include "
G4TouchableHandle.hh
"
// Include from 'geometry'
61
#include "
G4Material.hh
"
62
#include "
G4LogicalVolume.hh
"
63
64
class
G4MaterialCutsCouple
;
65
class
G4VSensitiveDetector
;
67
class
G4StepPoint
69
{
70
71
//--------
72
public
:
73
74
75
// Constructor/Destructor
76
G4StepPoint
();
77
78
~G4StepPoint
(){}
79
80
// Copy Counstructor and assignment operator
81
G4StepPoint
(
const
G4StepPoint
& );
82
G4StepPoint
&
operator=
(
const
G4StepPoint
&);
83
84
//--------
85
86
public
:
// with description
87
88
// Get/Set functions
89
const
G4ThreeVector
&
GetPosition
()
const
;
90
void
SetPosition
(
const
G4ThreeVector
& aValue);
91
void
AddPosition
(
const
G4ThreeVector
& aValue);
92
93
G4double
GetLocalTime
()
const
;
94
void
SetLocalTime
(
const
G4double
aValue);
95
void
AddLocalTime
(
const
G4double
aValue);
96
// Time since the track is created.
97
98
G4double
GetGlobalTime
()
const
;
99
void
SetGlobalTime
(
const
G4double
aValue);
100
void
AddGlobalTime
(
const
G4double
aValue);
101
// Time since the event in which the track belongs is created.
102
103
G4double
GetProperTime
()
const
;
104
void
SetProperTime
(
const
G4double
aValue);
105
void
AddProperTime
(
const
G4double
aValue);
106
// Proper time of the particle.
107
108
const
G4ThreeVector
&
GetMomentumDirection
()
const
;
109
void
SetMomentumDirection
(
const
G4ThreeVector
& aValue);
110
void
AddMomentumDirection
(
const
G4ThreeVector
& aValue);
111
// Direction of momentum (should be an unit vector)
112
113
G4ThreeVector
GetMomentum
()
const
;
114
// Total momentum of the track
115
116
117
G4double
GetTotalEnergy
()
const
;
118
// Total energy of the track
119
120
G4double
GetKineticEnergy
()
const
;
121
void
SetKineticEnergy
(
const
G4double
aValue);
122
void
AddKineticEnergy
(
const
G4double
aValue);
123
// Kinetic Energy of the track
124
125
G4double
GetVelocity
()
const
;
126
void
SetVelocity
(
G4double
v
);
127
//
128
129
G4double
GetBeta
()
const
;
130
// Velocity of the track in unit of c(light velocity)
131
132
G4double
GetGamma
()
const
;
133
// Gamma factor (1/sqrt[1-beta*beta]) of the track
134
135
G4VPhysicalVolume
*
GetPhysicalVolume
()
const
;
136
137
const
G4VTouchable
*
GetTouchable
()
const
;
138
const
G4TouchableHandle
&
GetTouchableHandle
()
const
;
139
void
SetTouchableHandle
(
const
G4TouchableHandle
& apValue);
140
141
G4Material
*
GetMaterial
()
const
;
142
void
SetMaterial
(
G4Material
*);
143
144
const
G4MaterialCutsCouple
*
GetMaterialCutsCouple
()
const
;
145
void
SetMaterialCutsCouple
(
const
G4MaterialCutsCouple
*);
146
147
G4VSensitiveDetector
*
GetSensitiveDetector
()
const
;
148
void
SetSensitiveDetector
(
G4VSensitiveDetector
*);
149
150
G4double
GetSafety
()
const
;
151
void
SetSafety
(
const
G4double
aValue);
152
153
const
G4ThreeVector
&
GetPolarization
()
const
;
154
void
SetPolarization
(
const
G4ThreeVector
& aValue);
155
void
AddPolarization
(
const
G4ThreeVector
& aValue);
156
157
G4StepStatus
GetStepStatus
()
const
;
158
void
SetStepStatus
(
const
G4StepStatus
aValue);
159
160
const
G4VProcess
*
GetProcessDefinedStep
()
const
;
161
// If the pointer is 0, this means the Step is defined
162
// by the user defined limit in the current volume.
163
void
SetProcessDefinedStep
(
const
G4VProcess
* aValue);
164
165
166
G4double
GetMass
()
const
;
167
void
SetMass
(
G4double
value
);
168
169
G4double
GetCharge
()
const
;
170
void
SetCharge
(
G4double
value
);
171
172
G4double
GetMagneticMoment
()
const
;
173
void
SetMagneticMoment
(
G4double
value
);
174
175
void
SetWeight
(
G4double
aValue);
176
G4double
GetWeight
()
const
;
177
178
//---------
179
private
:
180
//---------
181
182
// Member data
183
G4ThreeVector
fPosition
;
184
G4double
fGlobalTime
;
185
// Time since event is created
186
G4double
fLocalTime
;
187
// Time since track is created
188
G4double
fProperTime
;
189
// Time since track is created (in rest frame of particle)
190
G4ThreeVector
fMomentumDirection
;
191
G4double
fKineticEnergy
;
192
G4double
fVelocity
;
193
// Momentum,energy and velocity
194
G4TouchableHandle
fpTouchable
;
195
// Touchable Handle
196
G4Material
*
fpMaterial
;
197
// Material of the volmue
198
const
G4MaterialCutsCouple
*
fpMaterialCutsCouple
;
199
// MaterialCutsCouple of the volmue
200
G4VSensitiveDetector
*
fpSensitiveDetector
;
201
G4double
fSafety
;
202
G4ThreeVector
fPolarization
;
203
G4StepStatus
fStepStatus
;
204
// DoIt type which defined the current Step.
205
const
G4VProcess
*
fpProcessDefinedStep
;
206
// Process which defined the current Step.
207
G4double
fMass
;
208
// Dynamical mass of the particle
209
G4double
fCharge
;
210
// Dynamical Charge of the particle
211
G4double
fMagneticMoment
;
212
// Dynamical MagneticMoment of the particle
213
G4double
fWeight
;
214
// Track Weight
215
};
216
217
#include "G4StepPoint.icc"
218
219
#endif
geant4
tree
geant4-10.6-release
source
track
include
G4StepPoint.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:53
using
1.8.2 with
ECCE GitHub integration