Geant4  v4-10.4-release
 모두 클래스 네임스페이스들 파일들 함수 변수 타입정의 열거형 타입 열거형 멤버 Friends 매크로 그룹들 페이지들
G4INCLParticleTable.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 // 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 Helsinki Institute of Physics, Finland
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"
57 
58 namespace G4INCL {
59 
60  namespace ParticleTable {
61 
62  const G4int maxClusterMass = 12;
64 
67 
68  const G4double effectiveNucleonMass = 938.2796;
69  const G4double effectiveNucleonMass2 = 8.8036860777616e5;
70  const G4double effectiveDeltaMass = 1232.0;
72  const G4double effectivePionMass = 138.0;
73  const G4double effectiveLambdaMass = 1115.683;
74  const G4double effectiveSigmaMass = 1197.45; // max value
75  const G4double effectiveKaonMass = 497.614; // max value
76  const G4double effectiveAntiKaonMass = 497.614; // max value
77  const G4double effectiveEtaMass = 547.862;
78  const G4double effectiveOmegaMass = 782.65;
84 
86  void initialize(Config const * const theConfig = 0);
87 
89  G4int getIsospin(const ParticleType t);
90 
92  std::string getName(const ParticleType t);
93 
95  std::string getShortName(const ParticleType t);
96 
98  std::string getName(const ParticleSpecies &s);
99 
101  std::string getShortName(const ParticleSpecies &s);
102 
104  std::string getName(const G4int A, const G4int Z);
105 
107  std::string getShortName(const G4int A, const G4int Z);
108 
110  G4double getINCLMass(const G4int A, const G4int Z);
111 
114 
115 #ifndef INCLXX_IN_GEANT4_MODE
116  G4double hasMassTable(const unsigned int A, const unsigned int Z);
118 
128  G4double getWeizsaeckerMass(const G4int A, const G4int Z);
129 #endif
130 
134  G4double getRealMass(const G4int A, const G4int Z);
135 
142  G4double getTableQValue(const G4int A1, const G4int Z1, const G4int A2, const G4int Z2);
143 
150  G4double getTableQValue(const G4int A1, const G4int Z1, const G4int A2, const G4int Z2, const G4int A3, const G4int Z3);
151 
153 
156 
159 
162 
163  G4double getNuclearRadius(const ParticleType t, const G4int A, const G4int Z);
165  G4double getRadiusParameter(const ParticleType t, const G4int A, const G4int Z);
166  G4double getMaximumNuclearRadius(const ParticleType t, const G4int A, const G4int Z);
167  G4double getSurfaceDiffuseness(const ParticleType t, const G4int A, const G4int Z);
168 
170  G4double getMomentumRMS(const G4int A, const G4int Z);
171 
173  G4double getSeparationEnergyINCL(const ParticleType t, const G4int /*A*/, const G4int /*Z*/);
174 
176  G4double getSeparationEnergyReal(const ParticleType t, const G4int A, const G4int Z);
177 
180 
183 
186 
189 
192 
194  std::string getElementName(const G4int Z);
195 
197  std::string getIUPACElementName(const G4int Z);
198 
200  G4int parseElement(std::string pS);
201 
209  G4int parseIUPACElement(std::string const &pS);
210 
212 
214 
215  // Typedefs and pointers for transparent handling of mass functions
216  typedef G4double (*NuclearMassFn)(const G4int, const G4int);
222 
223  // Typedefs and pointers for transparent handling of separation energies
224  typedef G4double (*SeparationEnergyFn)(const ParticleType, const G4int, const G4int);
227 
228  // Typedefs and pointers for transparent handling of Fermi momentum
229  typedef G4double (*FermiMomentumFn)(const G4int, const G4int);
231 
233  G4double getFermiMomentumConstant(const G4int /*A*/, const G4int /*Z*/);
234 
244 
257  G4double getFermiMomentumMassDependent(const G4int A, const G4int /*Z*/);
258 
265 
268 
271 
273  ParticleType getPionType(const G4int isosp);
274 
276  ParticleType getNucleonType(const G4int isosp);
277 
279  ParticleType getDeltaType(const G4int isosp);
280 
282  ParticleType getSigmaType(const G4int isosp);
283 
285  ParticleType getKaonType(const G4int isosp);
286 
288  ParticleType getAntiKaonType(const G4int isosp);
289 
291  G4double getWidth(const ParticleType t);
292  }
293 }
294 
295 #endif
296 
G4double getSeparationEnergyReal(const ParticleType t, const G4int A, const G4int Z)
Return the real separation energy.
G4double getLargestNuclearRadius(const G4int A, const G4int Z)
const G4double effectiveDeltaMass
IsotopicDistribution const & getNaturalIsotopicDistribution(const G4int Z)
G4int parseIUPACElement(std::string const &pS)
Parse a IUPAC element name.
void setProtonSeparationEnergy(const G4double s)
Setter for protonSeparationEnergy.
G4double getWidth(const ParticleType t)
Get particle width (in s)
G4double getRadiusParameter(const ParticleType t, const G4int A, const G4int Z)
const G4double effectivePhotonMass
void setNeutronSeparationEnergy(const G4double s)
Setter for protonSeparationEnergy.
std::string getElementName(const G4int Z)
Get the name of the element from the atomic number.
ParticleType getNucleonType(const G4int isosp)
Get the type of nucleon.
G4double getMomentumRMS(const G4int A, const G4int Z)
Return the RMS of the momentum distribution (light clusters)
G4ThreadLocal FermiMomentumFn getFermiMomentum
const G4double effectiveNucleonMass
const G4double effectiveLambdaMass
G4double getFermiMomentumConstantLight(const G4int A, const G4int Z)
Return the constant value of the Fermi momentum - special for light.
ParticleType getAntiKaonType(const G4int isosp)
Get the type of antikaon.
const G4double effectiveEtaMass
G4double(* FermiMomentumFn)(const G4int, const G4int)
const char * p
Definition: xmltok.h:285
G4int getChargeNumber(const ParticleType t)
Get charge number from particle type.
std::string getIUPACElementName(const G4int Z)
Get the name of an unnamed element from the IUPAC convention.
G4double getNeutronHalo()
Get the size of the neutron halo.
const G4double effectiveOmegaMass
G4int drawRandomNaturalIsotope(const G4int Z)
G4double getRPCorrelationCoefficient(const ParticleType t)
Get the value of the r-p correlation coefficient.
#define G4ThreadLocal
Definition: tls.hh:69
G4int getStrangenessNumber(const ParticleType t)
Get strangeness number from particle type.
ParticleType getDeltaType(const G4int isosp)
Get the type of delta.
const G4double effectiveSigmaMass
G4double getRealMass(const G4INCL::ParticleType t)
Get particle mass (in MeV/c^2)
Float_t Z
G4int getMassNumber(const ParticleType t)
Get mass number from particle type.
const G4double effectiveNucleonMass2
const XML_Char * s
Definition: expat.h:262
G4double getMaximumNuclearRadius(const ParticleType t, const G4int A, const G4int Z)
double G4double
Definition: G4Types.hh:76
Class that stores isotopic abundances for a given element.
G4double(* SeparationEnergyFn)(const ParticleType, const G4int, const G4int)
G4double getNeutronSkin()
Get the thickness of the neutron skin.
const G4double effectiveAntiKaonMass
G4ThreadLocal NuclearMassFn getTableMass
Static pointer to the mass function for nuclei.
G4double(* NuclearMassFn)(const G4int, const G4int)
G4double getSurfaceDiffuseness(const ParticleType t, const G4int A, const G4int Z)
G4double getINCLMass(const G4int A, const G4int Z)
Get INCL nuclear mass (in MeV/c^2)
G4double getTableSpeciesMass(const ParticleSpecies &p)
G4double getNeutronSeparationEnergy()
Getter for neutronSeparationEnergy.
double A(double temperature)
ParticleType getKaonType(const G4int isosp)
Get the type of kaon.
G4double(* ParticleMassFn)(const ParticleType)
G4double getSeparationEnergyINCL(const ParticleType t, const G4int, const G4int)
Return INCL&#39;s default separation energy.
std::string getName(const ParticleType t)
Get the native INCL name of the particle.
Double_t Z2
Double_t Z1
const G4double effectiveDeltaWidth
int G4int
Definition: G4Types.hh:78
G4double getTableQValue(const G4int A1, const G4int Z1, const G4int A2, const G4int Z2)
Get Q-value (in MeV/c^2)
std::string getShortName(const ParticleType t)
Get the short INCL name of the particle.
const G4double effectiveEtaPrimeMass
G4int getIsospin(const ParticleType t)
Get the isospin of a particle.
G4double getFermiMomentumConstant(const G4int, const G4int)
Return the constant value of the Fermi momentum.
ParticleType getSigmaType(const G4int isosp)
Get the type of sigma.
G4ThreadLocal G4double minDeltaMass2
const G4double effectiveKaonMass
G4ThreadLocal SeparationEnergyFn getSeparationEnergy
Static pointer to the separation-energy function.
G4double getFermiMomentumMassDependent(const G4int A, const G4int)
Return the value Fermi momentum from a fit.
Classes that stores isotopic abundances.
G4double getSeparationEnergyRealForLight(const ParticleType t, const G4int A, const G4int Z)
Return the real separation energy only for light nuclei.
G4ThreadLocal ParticleMassFn getTableParticleMass
Static pointer to the mass function for particles.
G4int parseElement(std::string pS)
Get the name of the element from the atomic number.
void initialize(Config const *const theConfig=0)
Initialize the particle table.
G4double getProtonSeparationEnergy()
Getter for protonSeparationEnergy.
ParticleType getPionType(const G4int isosp)
Get the type of pion.
G4double getNuclearRadius(const ParticleType t, const G4int A, const G4int Z)
G4ThreadLocal G4double minDeltaMassRndm
const G4double effectivePionMass
G4ThreadLocal G4double minDeltaMass