Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/processes/hadronic/util/include/G4Nucleus.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 /processes/hadronic/util/include/G4Nucleus.hh (Version 11.3.0) and /processes/hadronic/util/include/G4Nucleus.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 // original by H.P. Wellisch                      
 27 // modified by J.L. Chuma, TRIUMF, 19-Nov-1996    
 28 // last modified: 27-Mar-1997                     
 29 // Chr. Volcker, 10-Nov-1997: new methods and     
 30 // M.G. Pia, 2 Oct 1998: modified GetFermiMome    
 31 //                       the source of memory     
 32 // G.Folger, spring 2010:  add integer A/Z int    
 33 // A. Ribon, autumn 2021:  extended to hypernu    
 34                                                   
 35 #ifndef G4Nucleus_h                               
 36 #define G4Nucleus_h 1                             
 37 // Class Description                              
 38 // This class knows how to describe a nucleus;    
 39 // to be used in your physics implementation (    
 40 // Class Description - End                        
 41                                                   
 42                                                   
 43 #include "globals.hh"                             
 44 #include "G4ThreeVector.hh"                       
 45 #include "G4ParticleTypes.hh"                     
 46 #include "G4ReactionProduct.hh"                   
 47 #include "G4DynamicParticle.hh"                   
 48 #include "G4ReactionProductVector.hh"             
 49 #include "Randomize.hh"                           
 50                                                   
 51 class G4Nucleus                                   
 52 {                                                 
 53   public:                                         
 54                                                   
 55     G4Nucleus();                                  
 56     G4Nucleus(const G4double A, const G4double    
 57     G4Nucleus(const G4int A, const G4int Z, co    
 58     G4Nucleus(const G4Material* aMaterial);       
 59                                                   
 60     ~G4Nucleus();                                 
 61                                                   
 62     inline G4Nucleus( const G4Nucleus &right )    
 63     { *this = right; }                            
 64                                                   
 65     inline G4Nucleus& operator = (const G4Nucl    
 66     {                                             
 67       if (this != &right) {                       
 68         theA=right.theA;                          
 69         theZ=right.theZ;                          
 70         theL=right.theL;                          
 71         aEff=right.aEff;                          
 72         zEff=right.zEff;                          
 73         fIsotope = right.fIsotope;                
 74         pnBlackTrackEnergy=right.pnBlackTrackE    
 75         dtaBlackTrackEnergy=right.dtaBlackTrac    
 76         pnBlackTrackEnergyfromAnnihilation =      
 77                      right.pnBlackTrackEnergyf    
 78         dtaBlackTrackEnergyfromAnnihilation =     
 79                      right.dtaBlackTrackEnergy    
 80         theTemp = right.theTemp;                  
 81         excitationEnergy = right.excitationEne    
 82         momentum = right.momentum;                
 83         fermiMomentum = right.fermiMomentum;      
 84       }                                           
 85       return *this;                               
 86     }                                             
 87                                                   
 88     inline G4bool operator==( const G4Nucleus     
 89     { return ( this == (G4Nucleus *) &right );    
 90                                                   
 91     inline G4bool operator!=( const G4Nucleus     
 92     { return ( this != (G4Nucleus *) &right );    
 93                                                   
 94     void ChooseParameters( const G4Material *a    
 95                                                   
 96     void SetParameters( const G4double A, cons    
 97     void SetParameters( const G4int A, const G    
 98                                                   
 99     inline G4int GetA_asInt() const               
100     { return theA; }                              
101                                                   
102     inline G4int GetN_asInt() const               
103     { return theA-theZ-theL; }                    
104                                                   
105     inline G4int GetZ_asInt() const               
106     { return theZ; }                              
107                                                   
108     inline G4int GetL() const  // Number of La    
109     { return theL; }                              
110                                                   
111     inline const G4Isotope* GetIsotope()          
112     { return fIsotope; }                          
113                                                   
114     inline void SetIsotope(const G4Isotope* is    
115     {                                             
116       fIsotope = iso;                             
117       if(iso) {                                   
118   theZ = iso->GetZ();                             
119         theA = iso->GetN();                       
120   theL = 0;                                       
121         aEff = theA;                              
122         zEff = theZ;                              
123       }                                           
124     }                                             
125                                                   
126     G4DynamicParticle *ReturnTargetParticle()     
127                                                   
128     G4double AtomicMass( const G4double A, con    
129     G4double AtomicMass( const G4int A, const     
130                                                   
131     G4double GetThermalPz( const G4double mass    
132                                                   
133     G4ReactionProduct GetThermalNucleus(G4doub    
134                                                   
135     G4ReactionProduct GetBiasedThermalNucleus(    
136                                                   
137     void DoKinematicsOfThermalNucleus(const G4    
138                                       G4Reacti    
139                                                   
140     G4double Cinema( G4double kineticEnergy );    
141                                                   
142     G4double EvaporationEffects( G4double kine    
143                                                   
144     G4double AnnihilationEvaporationEffects(G4    
145                                                   
146     inline G4double GetPNBlackTrackEnergy() co    
147     { return pnBlackTrackEnergy; }                
148                                                   
149     inline G4double GetDTABlackTrackEnergy() c    
150     { return dtaBlackTrackEnergy; }               
151                                                   
152     inline G4double GetAnnihilationPNBlackTrac    
153     { return pnBlackTrackEnergyfromAnnihilatio    
154                                                   
155     inline G4double GetAnnihilationDTABlackTra    
156     { return dtaBlackTrackEnergyfromAnnihilati    
157                                                   
158 // ******************  methods introduced by C    
159    // return fermi momentum                       
160      G4ThreeVector GetFermiMomentum();            
161                                                   
162 /*                                                
163   // return particle to be absorbed.              
164      G4DynamicParticle* ReturnAbsorbingParticl    
165 */                                                
166                                                   
167   //  final nucleus fragmentation. Return List    
168   // which should be used for further tracking    
169      G4ReactionProductVector* Fragmentate();      
170                                                   
171                                                   
172   // excitation Energy...                         
173      void AddExcitationEnergy(G4double anEnerg    
174                                                   
175                                                   
176   // momentum of absorbed Particles ..            
177      void AddMomentum(const G4ThreeVector aMom    
178                                                   
179   // return excitation Energy                     
180      G4double GetEnergyDeposit() {return excit    
181                                                   
182                                                   
183                                                   
184 // ****************************** end ChV ****    
185                                                   
186                                                   
187  private:                                         
188                                                   
189     G4int    theA;                                
190     G4int    theZ;                                
191     G4int    theL;  // Number of Lambdas (in t    
192     G4double aEff;  // effective atomic weight    
193     G4double zEff;  // effective atomic number    
194                                                   
195     const G4Isotope* fIsotope;                    
196                                                   
197     G4double pnBlackTrackEnergy;  // the kinet    
198                                   // proton/ne    
199     G4double dtaBlackTrackEnergy; // the kinet    
200                                   // deuteron/    
201     G4double pnBlackTrackEnergyfromAnnihilatio    
202                      // kinetic energy availab    
203                      // track particles based     
204     G4double dtaBlackTrackEnergyfromAnnihilati    
205                      // kinetic energy availab    
206                      // black track particles     
207                                                   
208                                                   
209 // ************************** member variables    
210   // Excitation Energy leading to evaporation     
211      G4double  excitationEnergy;                  
212                                                   
213   // Momentum, accumulated by absorbing Partic    
214      G4ThreeVector momentum;                      
215                                                   
216   // Fermi Gas model: at present, we assume co    
217   // nuclei. The radius of a nucleon is taken     
218   // see for example S.Fl"ugge, Encyclopedia o    
219   // Structure of Atomic Nuclei (Berlin-Gottin    
220                                                   
221   // maximum momentum possible from fermi gas     
222      G4double fermiMomentum;                      
223      G4double theTemp; // temperature             
224 // ****************************** end ChV ****    
225                                                   
226  };                                               
227                                                   
228 #endif                                            
229                                                   
230