ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4INCLParticleTable.hh
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file 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 
68 
69  const G4double effectiveNucleonMass = 938.2796;
70  const G4double effectiveNucleonMass2 = 8.8036860777616e5;
71  const G4double effectiveDeltaMass = 1232.0;
73  const G4double effectivePionMass = 138.0;
74  const G4double effectiveLambdaMass = 1115.683;
75  const G4double effectiveSigmaMass = 1197.45; // max value
76  const G4double effectiveKaonMass = 497.614; // max value
77  const G4double effectiveAntiKaonMass = 497.614; // max value
78  const G4double effectiveEtaMass = 547.862;
79  const G4double effectiveOmegaMass = 782.65;
85 
87  void initialize(Config const * const theConfig = 0);
88 
91 
93  std::string getName(const ParticleType t);
94 
96  std::string getShortName(const ParticleType t);
97 
99  std::string getName(const ParticleSpecies &s);
100 
102  std::string getShortName(const ParticleSpecies &s);
103 
105  std::string getName(const G4int A, const G4int Z);
106 
108  std::string getShortName(const G4int A, const G4int Z);
109 
111  G4double getINCLMass(const G4int A, const G4int Z, const G4int S);
112 
115 
116 #ifndef INCLXX_IN_GEANT4_MODE
117 
118  G4double hasMassTable(const unsigned int A, const unsigned int Z);
119 
129  G4double getWeizsaeckerMass(const G4int A, const G4int Z);
130 #endif
131 
135  G4double getRealMass(const G4int A, const G4int Z, const G4int S = 0);
136 
143  G4double getTableQValue(const G4int A1, const G4int Z1, const G4int S1, const G4int A2, const G4int Z2, const G4int S2);
144 
151  G4double getTableQValue(const G4int A1, const G4int Z1, const G4int S1, const G4int A2, const G4int Z2, const G4int S2, const G4int A3, const G4int Z3, const G4int S3);
152 
154 
157 
160 
163 
164  G4double getNuclearRadius(const ParticleType t, const G4int A, const G4int Z);
166  G4double getRadiusParameter(const ParticleType t, const G4int A, const G4int Z);
168  G4double getSurfaceDiffuseness(const ParticleType t, const G4int A, const G4int Z);
169 
171  G4double getMomentumRMS(const G4int A, const G4int Z);
172 
174  G4double getSeparationEnergyINCL(const ParticleType t, const G4int /*A*/, const G4int /*Z*/);
175 
178 
181 
184 
187 
190 
193 
195  std::string getElementName(const G4int Z);
196 
198  std::string getIUPACElementName(const G4int Z);
199 
201  G4int parseElement(std::string pS);
202 
210  G4int parseIUPACElement(std::string const &pS);
211 
213 
215 
216  // Typedefs and pointers for transparent handling of mass functions
217  //typedef G4double (*NuclearMassFn)(const G4int, const G4int);
218  typedef G4double (*NuclearMassFn)(const G4int, const G4int, const G4int);
224 
225  // Typedefs and pointers for transparent handling of separation energies
226  typedef G4double (*SeparationEnergyFn)(const ParticleType, const G4int, const G4int);
229 
230  // Typedefs and pointers for transparent handling of Fermi momentum
231  typedef G4double (*FermiMomentumFn)(const G4int, const G4int);
233 
235  G4double getFermiMomentumConstant(const G4int /*A*/, const G4int /*Z*/);
236 
246 
259  G4double getFermiMomentumMassDependent(const G4int A, const G4int /*Z*/);
260 
267 
270 
273 
275  ParticleType getPionType(const G4int isosp);
276 
278  ParticleType getNucleonType(const G4int isosp);
279 
281  ParticleType getDeltaType(const G4int isosp);
282 
284  ParticleType getSigmaType(const G4int isosp);
285 
287  ParticleType getKaonType(const G4int isosp);
288 
290  ParticleType getAntiKaonType(const G4int isosp);
291 
294  }
295 }
296 
297 #endif
298