ECCE @ EIC Software
 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'
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 
69 {
70 
71 //--------
72  public:
73 
74 
75 // Constructor/Destructor
76  G4StepPoint();
77 
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 
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 
146 
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;
174 
175  void SetWeight(G4double aValue);
176  G4double GetWeight() const;
177 
178 //---------
179  private:
180 //---------
181 
182 // Member data
185  // Time since event is created
187  // Time since track is created
189  // Time since track is created (in rest frame of particle)
193  // Momentum,energy and velocity
195  // Touchable Handle
197  // Material of the volmue
199  // MaterialCutsCouple of the volmue
204  // DoIt type which defined the current Step.
206  // Process which defined the current Step.
208  // Dynamical mass of the particle
210  // Dynamical Charge of the particle
212  // Dynamical MagneticMoment of the particle
214  // Track Weight
215 };
216 
217 #include "G4StepPoint.icc"
218 
219 #endif