Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/track/include/G4Step.hh

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Diff markup

Differences between /track/include/G4Step.hh (Version 11.3.0) and /track/include/G4Step.hh (Version ReleaseNotes)


** Warning: Cannot open xref database.

  1 //                                                  1 
  2 // *******************************************    
  3 // * License and Disclaimer                       
  4 // *                                              
  5 // * The  Geant4 software  is  copyright of th    
  6 // * the Geant4 Collaboration.  It is provided    
  7 // * conditions of the Geant4 Software License    
  8 // * LICENSE and available at  http://cern.ch/    
  9 // * include a list of copyright holders.         
 10 // *                                              
 11 // * Neither the authors of this software syst    
 12 // * institutes,nor the agencies providing fin    
 13 // * work  make  any representation or  warran    
 14 // * regarding  this  software system or assum    
 15 // * use.  Please see the license in the file     
 16 // * for the full disclaimer and the limitatio    
 17 // *                                              
 18 // * This  code  implementation is the result     
 19 // * technical work of the GEANT4 collaboratio    
 20 // * By using,  copying,  modifying or  distri    
 21 // * any work based  on the software)  you  ag    
 22 // * use  in  resulting  scientific  publicati    
 23 // * acceptance of all terms of the Geant4 Sof    
 24 // *******************************************    
 25 //                                                
 26 // G4Step                                         
 27 //                                                
 28 // Class description:                             
 29 //                                                
 30 // This class represents the Step of a particl    
 31 // It includes information of:                    
 32 //     1) List of Step points which compose th    
 33 //     2) static information of particle which    
 34 //     3) trackID and parent particle ID of th    
 35 //     4) termination condition of the Step.      
 36                                                   
 37 // Authors:                                       
 38 //   Katsuya Amako  (e-mail: Katsuya.Amako@kek    
 39 //   Takashi Sasaki (e-mail: Takashi.Sasaki@ke    
 40 // Revisions:                                     
 41 //   Hisaya Kurashige, 1998-2007                  
 42 // -------------------------------------------    
 43 #ifndef G4Step_hh                                 
 44 #define G4Step_hh 1                               
 45                                                   
 46 #include <cstdlib>               // Include fr    
 47 #include <cmath>                 // Include fr    
 48 #include "G4ios.hh"              // Include fr    
 49 #include <iomanip>               // Include fr    
 50 #include "globals.hh"            // Include fr    
 51 #include "G4ThreeVector.hh"      // Include fr    
 52 #include "G4VPhysicalVolume.hh"  // Include fr    
 53 #include "G4StepPoint.hh"        // Include fr    
 54 #include "G4StepStatus.hh"       // Include fr    
 55 #include "G4TrackVector.hh"      // Include fr    
 56                                                   
 57 class G4Polyline;                // Forward de    
 58 class G4Track;                   // Forward de    
 59                                                   
 60 class G4Step                                      
 61 {                                                 
 62   public:                                         
 63     G4Step();                                     
 64    ~G4Step();                                     
 65       // Constructor/Destructor                   
 66                                                   
 67     G4Step(const G4Step&);                        
 68     G4Step& operator=(const G4Step&);             
 69       // Copy Constructor and assignment opera    
 70                                                   
 71     inline G4Track* GetTrack() const;             
 72     inline void SetTrack(G4Track* value);         
 73       // Current track                            
 74                                                   
 75     inline G4StepPoint* GetPreStepPoint() cons    
 76     inline void SetPreStepPoint(G4StepPoint* v    
 77     inline G4StepPoint* ResetPreStepPoint(G4St    
 78       // Pre-Step points                          
 79       // If Set method is invoked, the previou    
 80       // If Reset method is invoked, the previ    
 81       // but its pointer is returned. Thus it'    
 82       // properly delete it.                      
 83                                                   
 84     inline G4StepPoint* GetPostStepPoint() con    
 85     inline void SetPostStepPoint(G4StepPoint*     
 86     inline G4StepPoint* ResetPostStepPoint(G4S    
 87       // Post-Step points                         
 88       // If Set method is invoked, the previou    
 89       // If Reset method is invoked, the previ    
 90       // but its pointer is returned. Thus it'    
 91       // properly delete it.                      
 92                                                   
 93     inline G4double GetStepLength() const;        
 94     inline void SetStepLength(G4double value);    
 95       // Before the end of the AlongStepDoIt l    
 96       // the initial value which is determined    
 97       // proposed by a physics process. After     
 98       // it will be set equal to 'StepLength'     
 99                                                   
100     inline G4double GetTotalEnergyDeposit() co    
101     inline void SetTotalEnergyDeposit(G4double    
102       // Total energy deposit                     
103                                                   
104     inline G4double GetNonIonizingEnergyDeposi    
105     inline void SetNonIonizingEnergyDeposit(G4    
106       // Total non-ionizing energy deposit        
107                                                   
108     inline G4SteppingControl GetControlFlag()     
109     inline void SetControlFlag(G4SteppingContr    
110       // Control flag for stepping                
111                                                   
112     inline void AddTotalEnergyDeposit(G4double    
113     inline void ResetTotalEnergyDeposit();        
114       // Manipulation of total energy deposit     
115                                                   
116     inline void AddNonIonizingEnergyDeposit(G4    
117     inline void ResetNonIonizingEnergyDeposit(    
118       // Manipulation of non-ionizing energy d    
119                                                   
120     inline G4bool IsFirstStepInVolume() const;    
121     inline G4bool IsLastStepInVolume() const;     
122                                                   
123     inline void SetFirstStepFlag();               
124     inline void ClearFirstStepFlag();             
125     inline void SetLastStepFlag();                
126     inline void ClearLastStepFlag();              
127       // Get/Set/Clear flag for initial/last s    
128       // NOTE: flags are not used                 
129                                                   
130     inline G4ThreeVector GetDeltaPosition() co    
131     inline G4double GetDeltaTime() const;         
132       // Difference of position, time, momentu    
133                                                   
134     inline G4ThreeVector GetDeltaMomentum() co    
135     inline G4double GetDeltaEnergy() const;       
136       // These methods provide difference betw    
137       // at a step, it is incorrect to use the    
138       // deposition in media during the step,     
139       // be produced. For energy deposition us    
140                                                   
141     inline void InitializeStep(G4Track* aValue    
142       // Initialize contents of G4Step            
143                                                   
144     inline void UpdateTrack();                    
145       // Update track by using G4Step informat    
146                                                   
147     inline void CopyPostToPreStepPoint();         
148       // Copy PostStepPoint to PreStepPoint       
149                                                   
150     inline void SetPointerToVectorOfAuxiliaryP    
151     inline std::vector<G4ThreeVector>* GetPoin    
152       // Auxiliary points modifiers               
153                                                   
154   // --- Secondary buckets ---                    
155                                                   
156     inline std::size_t GetNumberOfSecondariesI    
157       // Secondaries in the current step          
158                                                   
159     const std::vector<const G4Track*>* GetSeco    
160                                                   
161     inline const G4TrackVector* GetSecondary()    
162     inline G4TrackVector* GetfSecondary();        
163     inline G4TrackVector* NewSecondaryVector()    
164       // NOTE: Secondary bucket of the Step co    
165       //       all secondaries during tracking    
166       //       (i.e. NOT secondaries produced     
167       // all these methods give same object (i    
168       // but 2nd one will create bucket in add    
169                                                   
170     inline void DeleteSecondaryVector();          
171       // Just delete secondary bucket             
172       // NOTE: G4Track objects inside the buck    
173                                                   
174     inline void SetSecondary(G4TrackVector* va    
175       // Add secondary tracks to the bucket       
176                                                   
177   protected:                                      
178                                                   
179     G4double fTotalEnergyDeposit = 0.0;           
180       // Accumulated total energy deposit in t    
181                                                   
182     G4double fNonIonizingEnergyDeposit = 0.0;     
183      // Accumulated non-ionizing energy deposi    
184                                                   
185   private:                                        
186                                                   
187     G4StepPoint* fpPreStepPoint = nullptr;        
188     G4StepPoint* fpPostStepPoint = nullptr;       
189     G4double fStepLength = 0.0;                   
190       // Step length which may be updated at e    
191       // AlongStepDoIt and PostStepDoIt           
192                                                   
193     G4Track* fpTrack = nullptr;                   
194                                                   
195     G4SteppingControl fpSteppingControlFlag =     
196       // A flag to control SteppingManager beh    
197                                                   
198     G4bool fFirstStepInVolume = false;            
199     G4bool fLastStepInVolume = false;             
200       // Flags for initial/last step              
201                                                   
202     G4TrackVector* fSecondary = nullptr;          
203       // Secondary bucket implemented by using    
204                                                   
205     std::size_t nSecondaryByLastStep = 0;         
206       // number of secondaries which have been    
207                                                   
208     std::vector<const G4Track*>* secondaryInCu    
209                                                   
210     std::vector<G4ThreeVector>* fpVectorOfAuxi    
211 };                                                
212                                                   
213 #include "G4Step.icc"                             
214                                                   
215 #endif                                            
216