Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/track/include/G4ParticleChange.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/G4ParticleChange.hh (Version 11.3.0) and /track/include/G4ParticleChange.hh (Version 11.0.p3,)


** 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 // G4ParticleChange                               
 27 //                                                
 28 // Class description:                             
 29 //                                                
 30 // Concrete class for ParticleChange containin    
 31 // invocation of a physics process.               
 32 // This includes final states of parent partic    
 33 // etc) and secondary particles generated by t    
 34 // The tracking assumes that all the values of    
 35 // are in global reference system, therefore a    
 36 // transformations must have been already comp    
 37 // data-members of this class.                    
 38 //                                                
 39 // IMPORTANT NOTE: Despite the name, what this    
 40 // through its methods, are the "FINAL" values    
 41 // Momentum, etc.                                 
 42                                                   
 43 // Author: Hisaya Kurashige, 23 March 1998        
 44 // -------------------------------------------    
 45 #ifndef G4ParticleChange_hh                       
 46 #define G4ParticleChange_hh 1                     
 47                                                   
 48 #include "globals.hh"                             
 49 #include "G4ios.hh"                               
 50 #include "G4ThreeVector.hh"                       
 51 #include "G4VParticleChange.hh"                   
 52                                                   
 53 class G4DynamicParticle;                          
 54                                                   
 55 class G4ParticleChange : public G4VParticleCha    
 56 {                                                 
 57   public:                                         
 58                                                   
 59     G4ParticleChange();                           
 60       // Default constructor                      
 61                                                   
 62     ~G4ParticleChange() override = default;       
 63       // Destructor                               
 64                                                   
 65     G4ParticleChange(const G4ParticleChange& r    
 66     G4ParticleChange& operator=(const G4Partic    
 67                                                   
 68   // --- the following methods are for updatin    
 69   // Return the pointer to G4Step after updati    
 70   // by using final state of the track given b    
 71                                                   
 72     G4Step* UpdateStepForAlongStep(G4Step* Ste    
 73       // A physics process gives the final sta    
 74       // relative to the initial state at the     
 75       // i.e., based on information of G4Track    
 76       // the PreStepPoint).                       
 77       // In this method, the differences (delt    
 78       // are calculated, and are accumulated i    
 79       // Take note that the return type of Get    
 80       // pointer to G4ParticleMomentum. Also i    
 81       // momentum vector                          
 82                                                   
 83     G4Step* UpdateStepForAtRest(G4Step* Step)     
 84     G4Step* UpdateStepForPostStep(G4Step* Step    
 85       // A physics process gives the final sta    
 86       // based on information of G4Track (or e    
 87                                                   
 88     void Initialize(const G4Track&) override;     
 89       // Initialize all propoerties by using G    
 90                                                   
 91   // --- methods to keep information of the fi    
 92   //                                              
 93   //  The ProposeXXX methods store (and return    
 94   //  the "FINAL" values of the Position, Mome    
 95                                                   
 96     inline const G4ThreeVector* GetMomentumDir    
 97     inline void ProposeMomentumDirection(G4dou    
 98     inline void ProposeMomentumDirection(const    
 99       // Get/Propose the MomentumDirection vec    
100       // direction                                
101                                                   
102     inline const G4ThreeVector* GetPolarizatio    
103     inline void ProposePolarization(G4double P    
104     inline void ProposePolarization(const G4Th    
105       // Get/Propose the final Polarization ve    
106                                                   
107     inline G4double GetEnergy() const;            
108     inline void ProposeEnergy(G4double finalEn    
109       // Get/Propose the final kinetic energy     
110                                                   
111     inline G4double GetVelocity() const;          
112     inline void ProposeVelocity(G4double final    
113       // Get/Propose the final velocity of the    
114                                                   
115     inline G4double GetProperTime() const;        
116     inline void ProposeProperTime(G4double fin    
117       // Get/Propose the final ProperTime         
118                                                   
119     inline const G4ThreeVector* GetPosition()     
120     inline void ProposePosition(G4double x, G4    
121     inline void ProposePosition(const G4ThreeV    
122       // Get/Propose the final position of the    
123                                                   
124     inline void ProposeGlobalTime(G4double t);    
125     inline void ProposeLocalTime(G4double t);     
126       // Get/Propose the final global/local Ti    
127       // NOTE: DO NOT INVOKE both methods in a    
128       //       Each method affects both local     
129                                                   
130     inline G4double GetGlobalTime(G4double tim    
131     inline G4double GetLocalTime(G4double time    
132       // Convert the time delay to the glocbal    
133       // Can get the final global/local time w    
134                                                   
135     inline G4double GetMass() const;              
136     inline void ProposeMass(G4double finalMass    
137       // Get/Propose the final dynamical mass     
138                                                   
139     inline G4double GetCharge() const;            
140     inline void ProposeCharge(G4double finalCh    
141       // Get/Propose the final dynamical charg    
142                                                   
143     inline G4double GetMagneticMoment() const;    
144     inline void ProposeMagneticMoment(G4double    
145       // Get/Propose the final MagneticMoment     
146                                                   
147     inline G4ThreeVector                          
148     GetGlobalPosition(const G4ThreeVector& dis    
149       // Convert the position displacement to     
150                                                   
151     inline G4ThreeVector CalcMomentum(G4double    
152                                       G4double    
153       // Calculate momentum by using Energy, M    
154                                                   
155   // --- methods for adding secondaries ---       
156                                                   
157     void AddSecondary(G4Track* aSecondary);       
158       // Add a secondary particle to theListOf    
159                                                   
160     void AddSecondary(G4DynamicParticle* aSeco    
161                       G4bool IsGoodForTracking    
162       // Add a secondary particle to theListOf    
163       // Position and time are same as thePosi    
164                                                   
165     void AddSecondary(G4DynamicParticle* aSeco    
166                       G4bool IsGoodForTracking    
167       // Add a secondary particle to theListOf    
168       // Global time are same as theTimeChange    
169                                                   
170     void AddSecondary(G4DynamicParticle* aSeco    
171                       G4bool IsGoodForTracking    
172       // Add a secondary particle to theListOf    
173       // Position and are same as thePositionC    
174                                                   
175   // --- Dump and debug methods ---               
176                                                   
177     void DumpInfo() const override;               
178                                                   
179   protected:                                      
180                                                   
181     G4Step* UpdateStepInfo(G4Step* Step);         
182       // Update the G4Step specific attributes    
183       // (i.e. SteppingControl, LocalEnergyDep    
184                                                   
185     G4ThreeVector theMomentumDirectionChange;     
186       // It is the vector containing the final    
187       // after the invoked process. The applic    
188       // of the momentum direction of the part    
189       // The responsibility to apply the chang    
190       // which invoked the process                
191                                                   
192     G4ThreeVector thePolarizationChange;          
193       // The changed (final) polarization of a    
194                                                   
195     G4double theEnergyChange = 0.0;               
196       // The final kinetic energy of the curre    
197                                                   
198     G4double theVelocityChange = 0.0;             
199     G4bool isVelocityChanged = false;             
200       // The final velocity of the current tra    
201                                                   
202     G4ThreeVector thePositionChange;              
203       // The changed (final) position of a giv    
204                                                   
205     G4double theGlobalTime0 = 0.0;                
206       // The global time at Initial               
207     G4double theLocalTime0 = 0.0;                 
208       // The local time at Initial                
209                                                   
210     G4double theTimeChange = 0.0;                 
211       // The change of local time of a given p    
212                                                   
213     G4double theProperTimeChange = 0.0;           
214       // The changed (final) proper time of a     
215                                                   
216     G4double theMassChange = 0.0;                 
217       // The Changed (final) mass of a given t    
218                                                   
219     G4double theChargeChange = 0.0;               
220      // The Changed (final) charge of a given     
221                                                   
222     G4double theMagneticMomentChange = 0.0;       
223      // The Changed (final) MagneticMoment of     
224 };                                                
225                                                   
226 #include "G4ParticleChange.icc"                   
227                                                   
228 #endif                                            
229