Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/processes/hadronic/models/inclxx/utils/include/G4INCLParticleTable.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/models/inclxx/utils/include/G4INCLParticleTable.hh (Version 11.3.0) and /processes/hadronic/models/inclxx/utils/include/G4INCLParticleTable.hh (Version 9.0.p2)


  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 // INCL++ intra-nuclear cascade model             
 27 // Alain Boudard, CEA-Saclay, France              
 28 // Joseph Cugnon, University of Liege, Belgium    
 29 // Jean-Christophe David, CEA-Saclay, France      
 30 // Pekka Kaitaniemi, CEA-Saclay, France, and H    
 31 // Sylvie Leray, CEA-Saclay, France               
 32 // Davide Mancusi, CEA-Saclay, France             
 33 //                                                
 34 #define INCLXX_IN_GEANT4_MODE 1                   
 35                                                   
 36 #include "globals.hh"                             
 37                                                   
 38 #ifndef G4INCLParticleTable_hh                    
 39 #define G4INCLParticleTable_hh 1                  
 40                                                   
 41 #include <string>                                 
 42 #include <vector>                                 
 43 // #include <cassert>                             
 44                                                   
 45 #include "G4INCLParticleType.hh"                  
 46 #include "G4INCLParticleSpecies.hh"               
 47 #include "G4INCLLogger.hh"                        
 48 #include "G4INCLConfig.hh"                        
 49 #include "G4INCLHFB.hh"                           
 50                                                   
 51 #ifdef INCLXX_IN_GEANT4_MODE                      
 52 #include "G4IonTable.hh"                          
 53 #include "G4ParticleTable.hh"                     
 54 #endif                                            
 55 #include "G4INCLGlobals.hh"                       
 56 #include "G4INCLNaturalIsotopicDistributions.h    
 57                                                   
 58 namespace G4INCL {                                
 59                                                   
 60   namespace ParticleTable {                       
 61                                                   
 62     const G4int maxClusterMass = 12;              
 63     const G4int maxClusterCharge = 8;             
 64                                                   
 65     const G4int clusterTableZSize = maxCluster    
 66     const G4int clusterTableASize = maxCluster    
 67     const G4int clusterTableSSize = 4;            
 68                                                   
 69     const G4double effectiveNucleonMass = 938.    
 70     const G4double effectiveNucleonMass2 = 8.8    
 71     const G4double effectiveDeltaMass = 1232.0    
 72     const G4double effectiveDeltaWidth = 130.0    
 73     const G4double effectivePionMass = 138.0;     
 74     const G4double effectiveLambdaMass = 1115.    
 75     const G4double effectiveSigmaMass = 1197.4    
 76     const G4double effectiveXiMass = 1321.71;     
 77     const G4double effectiveKaonMass = 497.614    
 78     const G4double effectiveAntiKaonMass = 497    
 79     const G4double effectiveEtaMass = 547.862;    
 80     const G4double effectiveOmegaMass = 782.65    
 81     const G4double effectiveEtaPrimeMass = 957    
 82     const G4double effectivePhotonMass = 0.0;     
 83     extern G4ThreadLocal G4double minDeltaMass    
 84     extern G4ThreadLocal G4double minDeltaMass    
 85     extern G4ThreadLocal G4double minDeltaMass    
 86                                                   
 87     /// \brief Initialize the particle table      
 88     void initialize(Config const * const theCo    
 89                                                   
 90     /// \brief Get the isospin of a particle      
 91     G4int getIsospin(const ParticleType t);       
 92                                                   
 93     /// \brief Get the native INCL name of the    
 94     std::string getName(const ParticleType t);    
 95                                                   
 96     /// \brief Get the short INCL name of the     
 97     std::string getShortName(const ParticleTyp    
 98                                                   
 99     /// \brief Get the native INCL name of the    
100     std::string getName(const ParticleSpecies     
101                                                   
102     /// \brief Get the short INCL name of the     
103     std::string getShortName(const ParticleSpe    
104                                                   
105     /// \brief Get the native INCL name of the    
106     std::string getName(const G4int A, const G    
107                                                   
108     /// \brief Get the native INCL name of the    
109     std::string getName(const G4int A, const G    
110                                                   
111     /// \brief Get the short INCL name of the     
112     std::string getShortName(const G4int A, co    
113                                                   
114     /// \brief Get INCL nuclear mass (in MeV/c    
115     G4double getINCLMass(const G4int A, const     
116                                                   
117     /// \brief Get INCL particle mass (in MeV/    
118     G4double getINCLMass(const ParticleType t)    
119                                                   
120 #ifndef INCLXX_IN_GEANT4_MODE                     
121     /// \brief Do we have this particle mass?     
122     G4double hasMassTable(const unsigned int A    
123                                                   
124     /** \brief Weizsaecker mass formula           
125      *                                            
126      * Return the nuclear mass, as calculated     
127      * Adapted from the Geant4 source.            
128      *                                            
129      * \param A the mass number                   
130      * \param Z the charge number                 
131      * \return the nuclear mass [MeV/c^2]         
132      */                                           
133     G4double getWeizsaeckerMass(const G4int A,    
134 #endif                                            
135                                                   
136     ///\brief Get particle mass (in MeV/c^2)      
137     G4double getRealMass(const G4INCL::Particl    
138     ///\brief Get nuclear mass (in MeV/c^2)       
139     G4double getRealMass(const G4int A, const     
140                                                   
141     /**\brief Get Q-value (in MeV/c^2)            
142      *                                            
143      * Uses the getTableMass function to compu    
144      * following reaction:                        
145      * \f[ (A_1,Z_1) + (A_2, Z_2) --> (A_1+A_2    
146      */                                           
147     G4double getTableQValue(const G4int A1, co    
148                                                   
149     /**\brief Get Q-value (in MeV/c^2)            
150      *                                            
151      * Uses the getTableMass function to compu    
152      * following reaction:                        
153      * \f[ (A_1,Z_1) + (A_2, Z_2) --> (A_3,Z_3    
154      */                                           
155     G4double getTableQValue(const G4int A1, co    
156                                                   
157     G4double getTableSpeciesMass(const Particl    
158                                                   
159     /// \brief Get mass number from particle t    
160     G4int getMassNumber(const ParticleType t);    
161                                                   
162     /// \brief Get charge number from particle    
163     G4int getChargeNumber(const ParticleType t    
164                                                   
165     /// \brief Get strangeness number from par    
166     G4int getStrangenessNumber(const ParticleT    
167                                                   
168     G4double getNuclearRadius(const ParticleTy    
169     G4double getLargestNuclearRadius(const G4i    
170     G4double getRadiusParameter(const Particle    
171     G4double getMaximumNuclearRadius(const Par    
172     G4double getSurfaceDiffuseness(const Parti    
173                                                   
174     /// \brief Return the RMS of the momentum     
175     G4double getMomentumRMS(const G4int A, con    
176                                                   
177     /// \brief Return INCL's default separatio    
178     G4double getSeparationEnergyINCL(const Par    
179                                                   
180     /// \brief Return the real separation ener    
181     G4double getSeparationEnergyReal(const Par    
182                                                   
183     /// \brief Return the real separation ener    
184     G4double getSeparationEnergyRealForLight(c    
185                                                   
186     /// \brief Getter for protonSeparationEner    
187     G4double getProtonSeparationEnergy();         
188                                                   
189     /// \brief Getter for neutronSeparationEne    
190     G4double getNeutronSeparationEnergy();        
191                                                   
192     /// \brief Setter for protonSeparationEner    
193     void setProtonSeparationEnergy(const G4dou    
194                                                   
195     /// \brief Setter for protonSeparationEner    
196     void setNeutronSeparationEnergy(const G4do    
197                                                   
198     /// \brief Get the name of the element fro    
199     std::string getElementName(const G4int Z);    
200                                                   
201     /// \brief Get the name of an unnamed elem    
202     std::string getIUPACElementName(const G4in    
203                                                   
204     /// \brief Get the name of the element fro    
205     G4int parseElement(std::string pS);           
206                                                   
207     /** \brief Parse a IUPAC element name         
208      *                                            
209      * Note: this function is UGLY. Look at it    
210      *                                            
211      * \param pS a normalised string (lowercas    
212      * \return the charge number of the nuclid    
213      */                                           
214     G4int parseIUPACElement(std::string const     
215                                                   
216     IsotopicDistribution const &getNaturalIsot    
217                                                   
218     G4int drawRandomNaturalIsotope(const G4int    
219                                                   
220     // Typedefs and pointers for transparent h    
221     //typedef G4double (*NuclearMassFn)(const     
222     typedef G4double (*NuclearMassFn)(const G4    
223     typedef G4double (*ParticleMassFn)(const P    
224     /// \brief Static pointer to the mass func    
225     extern G4ThreadLocal NuclearMassFn getTabl    
226     /// \brief Static pointer to the mass func    
227     extern G4ThreadLocal ParticleMassFn getTab    
228                                                   
229     // Typedefs and pointers for transparent h    
230     typedef G4double (*SeparationEnergyFn)(con    
231     /// \brief Static pointer to the separatio    
232     extern G4ThreadLocal SeparationEnergyFn ge    
233                                                   
234     // Typedefs and pointers for transparent h    
235     typedef G4double (*FermiMomentumFn)(const     
236     extern G4ThreadLocal FermiMomentumFn getFe    
237                                                   
238     /// \brief Return the constant value of th    
239     G4double getFermiMomentumConstant(const G4    
240                                                   
241     /** \brief Return the constant value of th    
242      *                                            
243      * This function should always return Phys    
244      * nuclei, and values from the momentumRMS    
245      *                                            
246      * \param A mass number                       
247      * \param Z charge number                     
248      */                                           
249     G4double getFermiMomentumConstantLight(con    
250                                                   
251     /** \brief Return the value Fermi momentum    
252      *                                            
253      * This function returns a fitted Fermi mo    
254      * et al., Phys. Rev. Lett. 26 (1971) 445.    
255      * \f[                                        
256      * p_F(A)=\alpha-\beta\cdot e^{(-A\cdot\ga    
257      * \f]                                        
258      * with \f$\alpha=259.416\f$ MeV/\f$c\f$,     
259      * and \f$\gamma=9.5157\cdot10^{-2}\f$.       
260      *                                            
261      * \param A mass number                       
262      */                                           
263     G4double getFermiMomentumMassDependent(con    
264                                                   
265     /** \brief Get the value of the r-p correl    
266      *                                            
267      * \param t the type of the particle (Prot    
268      * \return the value of the r-p correlatio    
269      */                                           
270     G4double getRPCorrelationCoefficient(const    
271                                                   
272     /// \brief Get the thickness of the neutro    
273     G4double getNeutronSkin();                    
274                                                   
275     /// \brief Get the size of the neutron hal    
276     G4double getNeutronHalo();                    
277                                                   
278     /// \brief Get the type of pion               
279     ParticleType getPionType(const G4int isosp    
280                                                   
281     /// \brief Get the type of nucleon            
282     ParticleType getNucleonType(const G4int is    
283                                                   
284     /// \brief Get the type of delta              
285     ParticleType getDeltaType(const G4int isos    
286                                                   
287     /// \brief Get the type of sigma              
288     ParticleType getSigmaType(const G4int isos    
289                                                   
290     /// \brief Get the type of kaon               
291     ParticleType getKaonType(const G4int isosp    
292                                                   
293     /// \brief Get the type of antikaon           
294     ParticleType getAntiKaonType(const G4int i    
295                                                   
296     /// \brief Get the type of xi                 
297     ParticleType getXiType(const G4int isosp);    
298                                                   
299     /// \brief Get the type of antinucleon        
300     ParticleType getAntiNucleonType(const G4in    
301                                                   
302     /// \brief Get the type of antidelta          
303     ParticleType getAntiXiType(const G4int iso    
304                                                   
305     /// \brief Get the type of antisigma          
306     ParticleType getAntiSigmaType(const G4int     
307                                                   
308     /// \brief Get particle width (in s)          
309     G4double getWidth(const ParticleType t);      
310   }                                               
311 }                                                 
312                                                   
313 #endif                                            
314                                                   
315