34#define INCLXX_IN_GEANT4_MODE 1
45#ifdef INCLXX_IN_GEANT4_MODE
49#ifdef INCLXX_IN_GEANT4_MODE
56 namespace ParticleTable {
61 const NaturalIsotopicDistributions *theNaturalIsotopicDistributions = NULL;
63 const G4double theINCLNucleonMass = 938.2796;
64 const G4double theINCLPionMass = 138.0;
65 const G4double theINCLLambdaMass = 1115.683;
68 const G4double theINCLEtaMass = 547.862;
69 const G4double theINCLOmegaMass = 782.65;
70 const G4double theINCLEtaPrimeMass = 957.78;
71 const G4double theINCLPhotonMass = 0.0;
129 const G4double theChargedPiWidth = 2.6033e-08;
130 const G4double thePiZeroWidth = 8.52e-17;
131 const G4double theEtaWidth = 5.025e-19;
132 const G4double theOmegaWidth = 7.7528e-23;
133 const G4double theEtaPrimeWidth = 3.3243e-21;
134 const G4double theChargedKaonWidth = 1.238e-08;
135 const G4double theKShortWidth = 8.954e-11;
136 const G4double theKLongWidth = 5.116e-08;
137 const G4double theLambdaWidth = 2.632e-10;
138 const G4double theSigmaPlusWidth = 8.018e-11;
139 const G4double theSigmaZeroWidth = 7.4e-20;
140 const G4double theSigmaMinusWidth = 1.479e-10;
172 const G4int mediumNucleiTableSize = 30;
174 const G4double mediumDiffuseness[mediumNucleiTableSize] =
175 {0.0,0.0,0.0,0.0,0.0,1.78,1.77,1.77,1.69,1.71,
176 1.69,1.72,1.635,1.730,1.81,1.833,1.798,
177 1.93,0.567,0.571, 0.560,0.549,0.550,0.551,
178 0.580,0.575,0.569,0.537,0.0,0.0};
179 const G4double mediumRadius[mediumNucleiTableSize] =
180 {0.0,0.0,0.0,0.0,0.0,0.334,0.327,0.479,0.631,0.838,
181 0.811,0.84,1.403,1.335,1.25,1.544,1.498,1.57,
182 2.58,2.77, 2.775,2.78,2.88,2.98,3.22,3.03,2.84,
187 {-1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0},
188 {-1.0, -1.0, 2.10, 1.80, 1.70, 1.83, 2.60, 2.50, -1.0, -1.0, -1.0, -1.0, -1.0},
189 {-1.0, -1.0, -1.0, 1.80, 1.68, 1.70, 2.60, 2.50, 2.50, 2.50, 2.50, -1.0, -1.0},
190 {-1.0, -1.0, -1.0, -1.0, 1.70, 1.83, 2.56, 2.40, 2.50, 2.50, 2.50, 2.50, 2.50},
191 {-1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 2.60, 2.50, 2.50, 2.51, 2.50, 2.50, 2.50},
192 {-1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 2.50, 2.50, 2.50, 2.50, 2.45, 2.40, 2.50},
193 {-1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 2.50, 2.50, 2.50, 2.50, 2.47},
194 {-1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 2.50, 2.50, 2.50},
195 {-1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 2.50}
200 {-1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0},
201 {-1.0, -1.0, 77.0, 110., 153., 100., 100., 100., -1.0, -1.0, -1.0, -1.0, -1.0},
202 {-1.0, -1.0, -1.0, 110., 153., 100., 100., 100., 100., 100., 100., -1.0, -1.0},
203 {-1.0, -1.0, -1.0, -1.0, 153., 100., 100., 100., 100., 100., 100., 100., 100.},
204 {-1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 100., 100., 100., 100., 100., 100., 100.},
205 {-1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 100., 100., 100., 100., 100., 100., 100.},
206 {-1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 100., 100., 100., 100., 100.},
207 {-1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 100., 100., 100.},
208 {-1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 100.}
211 const G4int elementTableSize = 123;
214 const std::string elementTable[elementTableSize] = {
341 const std::string elementIUPACDigits =
"nubtqphsoe";
343#define INCL_DEFAULT_SEPARATION_ENERGY 6.83
356#undef INCL_DEFAULT_SEPARATION_ENERGY
366#ifdef INCLXX_IN_GEANT4_MODE
374 char iupacToInt(
char c) {
375 return (
char)(((
G4int)
'0')+elementIUPACDigits.find(c));
379 char intToIUPAC(
char n) {
return elementIUPACDigits.at(n); }
382 const NaturalIsotopicDistributions *getNaturalIsotopicDistributions() {
383 if(!theNaturalIsotopicDistributions)
384 theNaturalIsotopicDistributions =
new NaturalIsotopicDistributions;
385 return theNaturalIsotopicDistributions;
391 protonMass = theINCLNucleonMass;
392 neutronMass = theINCLNucleonMass;
393 piPlusMass = theINCLPionMass;
394 piMinusMass = theINCLPionMass;
395 piZeroMass = theINCLPionMass;
397 etaMass = theINCLEtaMass;
398 omegaMass = theINCLOmegaMass;
399 etaPrimeMass = theINCLEtaPrimeMass;
400 photonMass = theINCLPhotonMass;
402 SigmaPlusMass = theRealSigmaPlusMass;
403 SigmaMinusMass = theRealSigmaMinusMass;
404 SigmaZeroMass = theRealSigmaZeroMass;
405 LambdaMass = theINCLLambdaMass;
406 KPlusMass = theRealChargedKaonMass;
407 KZeroMass = theRealNeutralKaonMass;
408 KZeroBarMass = theRealNeutralKaonMass;
409 KShortMass = theRealNeutralKaonMass;
410 KLongMass = theRealNeutralKaonMass;
411 KMinusMass = theRealChargedKaonMass;
413 antiProtonMass = theRealAntiProtonMass;
414 XiZeroMass = theRealXiZeroMass;
415 XiMinusMass = theRealXiMinusMass;
416 antiNeutronMass = theRealAntiNeutronMass;
417 antiSigmaPlusMass = theRealAntiSigmaPlusMass;
418 antiSigmaMinusMass = theRealAntiSigmaMinusMass;
419 antiSigmaZeroMass = theRealAntiSigmaZeroMass;
420 antiLambdaMass = theRealAntiLambdaMass;
421 antiXiZeroMass = theRealAntiXiZeroMass;
422 antiXiMinusMass = theRealAntiXiMinusMass;
432#ifndef INCLXX_IN_GEANT4_MODE
433 std::string dataFilePath;
439#ifdef INCLXX_IN_GEANT4_MODE
471 minDeltaMass = theRealNeutronMass + theRealChargedPiMass + 0.5;
475 piPlusWidth = theChargedPiWidth;
476 piMinusWidth = theChargedPiWidth;
477 piZeroWidth = thePiZeroWidth;
478 etaWidth = theEtaWidth;
479 omegaWidth = theOmegaWidth;
480 etaPrimeWidth = theEtaPrimeWidth;
482 SigmaMinusWidth = theSigmaMinusWidth;
483 SigmaPlusWidth = theSigmaPlusWidth;
484 SigmaZeroWidth = theSigmaZeroWidth;
485 LambdaWidth = theLambdaWidth;
486 KPlusWidth = theChargedKaonWidth;
487 KMinusWidth = theChargedKaonWidth;
488 KShortWidth = theKShortWidth;
489 KLongWidth = theKLongWidth;
492#ifdef INCLXX_IN_GEANT4_MODE
515 if(aFermiMomentum>0.)
516 constantFermiMomentum = aFermiMomentum;
532 std::fill(rpCorrelationCoefficient, rpCorrelationCoefficient +
UnknownParticle, 1.);
576 }
else if(t ==
KPlus) {
578 }
else if(t ==
KZero) {
584 }
else if(t ==
KLong) {
588 }
else if(t ==
Eta) {
590 }
else if(t ==
Omega) {
617 INCL_ERROR(
"Requested isospin of an unknown particle!");
622 if(sp.theType==
Composite && sp.theS == 0)
625 return getName(sp.theA,sp.theZ,sp.theS);
633 if(sp.theType==
Composite && sp.theS == 0)
634 return getName(sp.theA,sp.theZ);
636 return getName(sp.theA,sp.theZ,sp.theS);
638 return getName(sp.theA,sp.theZ);
644 std::stringstream stream;
653 std::stringstream stream;
664 std::stringstream stream;
676 return std::string(
"proton");
678 return std::string(
"neutron");
680 return std::string(
"delta++");
682 return std::string(
"delta+");
684 return std::string(
"delta0");
686 return std::string(
"delta-");
688 return std::string(
"pi+");
690 return std::string(
"pi0");
692 return std::string(
"pi-");
694 return std::string(
"lambda");
696 return std::string(
"sigma+");
698 return std::string(
"sigma0");
700 return std::string(
"sigma-");
702 return std::string(
"antiproton");
704 return std::string(
"xi-");
706 return std::string(
"xi0");
708 return std::string(
"antineutron");
710 return std::string(
"antisigma+");
712 return std::string(
"antisigma0");
714 return std::string(
"antisigma-");
716 return std::string(
"antilambda");
718 return std::string(
"antixi-");
720 return std::string(
"antixi0");
722 return std::string(
"kaon+");
724 return std::string(
"kaon0");
726 return std::string(
"kaon0bar");
728 return std::string(
"kaon-");
730 return std::string(
"kaonshort");
732 return std::string(
"kaonlong");
734 return std::string(
"composite");
736 return std::string(
"eta");
738 return std::string(
"omega");
740 return std::string(
"etaprime");
742 return std::string(
"photon");
744 return std::string(
"anticomposite");
746 return std::string(
"unknown");
751 return std::string(
"p");
753 return std::string(
"n");
755 return std::string(
"d++");
757 return std::string(
"d+");
759 return std::string(
"d0");
761 return std::string(
"d-");
763 return std::string(
"pi+");
765 return std::string(
"pi0");
767 return std::string(
"pi-");
769 return std::string(
"l");
771 return std::string(
"s+");
773 return std::string(
"s0");
775 return std::string(
"s-");
777 return std::string(
"pb");
779 return std::string(
"x-");
781 return std::string(
"x0");
783 return std::string(
"nb");
785 return std::string(
"s+b");
787 return std::string(
"s0b");
789 return std::string(
"s-b");
791 return std::string(
"lb");
793 return std::string(
"x-b");
795 return std::string(
"x0b");
797 return std::string(
"k+");
799 return std::string(
"k0");
801 return std::string(
"k0b");
803 return std::string(
"k-");
805 return std::string(
"ks");
807 return std::string(
"kl");
809 return std::string(
"comp");
811 return std::string(
"eta");
813 return std::string(
"omega");
815 return std::string(
"etap");
817 return std::string(
"photon");
819 return std::string(
"anticomp");
821 return std::string(
"unknown");
836 return SigmaPlusMass;
838 return SigmaMinusMass;
840 return SigmaZeroMass;
844 return antiProtonMass;
850 return antiNeutronMass;
852 return antiSigmaPlusMass;
854 return antiSigmaMinusMass;
856 return antiSigmaZeroMass;
858 return antiLambdaMass;
860 return antiXiMinusMass;
862 return antiXiZeroMass;
863 }
else if(pt ==
KPlus) {
865 }
else if(pt ==
KZero) {
873 }
else if(pt ==
KLong) {
875 }
else if(pt ==
Eta) {
877 }
else if(pt ==
Omega) {
884 INCL_ERROR(
"getMass : Unknown particle type." <<
'\n');
892 return theRealProtonMass;
895 return theRealNeutronMass;
899 return theRealChargedPiMass;
902 return theRealPiZeroMass;
905 return theRealEtaMass;
908 return theRealOmegaMass;
911 return theRealEtaPrimeMass;
914 return theRealPhotonMass;
917 return theRealLambdaMass;
921 return theRealChargedKaonMass;
927 return theRealNeutralKaonMass;
930 return theRealSigmaPlusMass;
933 return theRealSigmaZeroMass;
936 return theRealSigmaMinusMass;
939 return theRealAntiProtonMass;
942 return theRealXiMinusMass;
945 return theRealXiZeroMass;
948 return theRealAntiNeutronMass;
951 return theRealAntiSigmaPlusMass;
954 return theRealAntiSigmaZeroMass;
957 return theRealAntiSigmaMinusMass;
960 return theRealAntiXiMinusMass;
963 return theRealAntiXiZeroMass;
966 return theRealAntiLambdaMass;
969 INCL_ERROR(
"Particle::getRealMass : Unknown particle type." <<
'\n');
986 else if(Z==0 &&
S==0)
987 return A*theRealNeutronMass;
989 return A*theRealProtonMass;
991 return (
A+
S)*theRealNeutronMass-
S*LambdaMass;
993#ifndef INCLXX_IN_GEANT4_MODE
994 return ::G4INCL::NuclearMassTable::getMass(
A,Z,
S);
996 if(
S<0)
return theG4IonTable->GetNucleusMass(Z,
A,std::abs(
S)) / MeV;
997 else return theG4IonTable->GetNucleusMass(Z,
A) / MeV;
1016 return Z*(protonMass - protonSeparationEnergy) + (
A+
S-Z)*(neutronMass - neutronSeparationEnergy) + std::abs(
S)*(LambdaMass - lambdaSeparationEnergy);
1018 return Z*(protonMass - protonSeparationEnergy) + (
A-Z)*(neutronMass - neutronSeparationEnergy);
1019 else if(
A==1 && Z==0 &&
S==0)
1021 else if(
A==1 && Z==1 &&
S==0)
1023 else if(
A==1 && Z==0 &&
S==-1)
1205 const G4double thisRMS = positionRMS[Z][
A];
1209 INCL_DEBUG(
"getNuclearRadius: Radius for nucleus A = " <<
A <<
" Z = " << Z <<
" is not available" <<
'\n'
1210 <<
"returning radius for C12");
1211 return positionRMS[6][12];
1213 }
else if(
A <= 19) {
1218 return 1.225*theDiffusenessParameter*
1219 std::sqrt((2.+5.*theRadiusParameter)/(2.+3.*theRadiusParameter));
1221 INCL_ERROR(
"getNuclearRadius: No radius for nucleus A = " <<
A <<
" Z = " << Z <<
'\n');
1235 G4double r0 = (1.128+0.439*std::pow(
A,-2./3.)) * std::pow(
A, 1.0/3.0);
1239 G4double r0 = (2.745e-4 *
A + 1.063) * std::pow(
A, 1.0/3.0);
1243 if(r0hfb>0.)r0 = r0hfb;
1250 if(Z<clusterTableZSize && Z>=0) {
1251 const G4double thisRMS = positionRMS[Z][
A];
1255 INCL_DEBUG(
"getRadiusParameter: Radius for nucleus A = " <<
A <<
" Z = " << Z <<
" is not available" <<
'\n'
1256 <<
"returning radius for C12");
1257 return positionRMS[6][12];
1260 INCL_DEBUG(
"getRadiusParameter: Radius for nucleus A = " <<
A <<
" Z = " << Z <<
" is not available" <<
'\n'
1261 <<
"returning radius for C12");
1262 return positionRMS[6][12];
1266 G4double r0 = (1.128+0.439*std::pow(
A,-2./3.)) * std::pow(
A, 1.0/3.0);
1272 if(r0hfb>0.)
return r0hfb;
1274 return mediumRadius[
A-1];
1277 INCL_ERROR(
"getRadiusParameter: No radius for nucleus A = " <<
A <<
" Z = " << Z <<
'\n');
1287 return 5.5 + 0.3 * (
G4double(
A) - 6.0)/12.0;
1291 INCL_ERROR(
"getMaximumNuclearRadius : No maximum radius for nucleus A = " <<
A <<
" Z = " << Z <<
'\n');
1318 if(ahfb>0.)
return ahfb;
1320 return mediumDiffuseness[
A-1];
1322 INCL_ERROR(
"getSurfaceDiffuseness: was called for A = " <<
A <<
" Z = " << Z <<
'\n');
1325 INCL_ERROR(
"getSurfaceDiffuseness: No diffuseness for nucleus A = " <<
A <<
" Z = " << Z <<
'\n');
1337 return theINCLProtonSeparationEnergy;
1339 return theINCLNeutronSeparationEnergy;
1341 return theINCLLambdaSeparationEnergy;
1343 return theINCLantiLambdaSeparationEnergy;
1345 return theINCLantiProtonSeparationEnergy;
1347 return theINCLantiNeutronSeparationEnergy;
1349 INCL_ERROR(
"ParticleTable::getSeparationEnergyINCL : Unknown particle type." <<
'\n');
1369 INCL_ERROR(
"ParticleTable::getSeparationEnergyReal : Unknown particle type." <<
'\n');
1408 INCL_WARN(
"getElementName called with Z<1" <<
'\n');
1409 return elementTable[0];
1410 }
else if(Z<elementTableSize)
1411 return elementTable[Z];
1417 std::stringstream elementStream;
1419 std::string elementName = elementStream.str();
1420 std::transform(elementName.begin(), elementName.end(), elementName.begin(), intToIUPAC);
1421 elementName[0] = (char)std::toupper(elementName.at(0));
1427 std::transform(pS.begin(), pS.end(), pS.begin(), ::tolower);
1428 pS[0] = (char)std::toupper(pS[0]);
1430 const std::string *iter = std::find(elementTable, elementTable+elementTableSize, pS);
1431 if(iter != elementTable+elementTableSize)
1432 return G4int(iter - elementTable);
1439 std::string elementName(sel);
1440 std::transform(elementName.begin(), elementName.end(), elementName.begin(), ::tolower);
1442 if(elementName.find_first_not_of(elementIUPACDigits)!=std::string::npos)
1444 std::transform(elementName.begin(), elementName.end(), elementName.begin(), iupacToInt);
1445 std::stringstream elementStream(elementName);
1452 return getNaturalIsotopicDistributions()->getIsotopicDistribution(Z);
1456 return getNaturalIsotopicDistributions()->drawRandomIsotope(Z);
1460 return constantFermiMomentum;
1474 static const G4double alphaParam = 259.416;
1475 static const G4double betaParam = 152.824;
1476 static const G4double gammaParam = 9.5157E-2;
1477 return alphaParam - betaParam*std::exp(-gammaParam*((
G4double)
A));
1482 return rpCorrelationCoefficient[t];
1502 else if (isosp == 0) {
1525 else if (isosp == -1) {
1528 else if (isosp == 1) {
1541 else if (isosp == 0) {
1574 else if (isosp == 0) {
1617 return piMinusWidth;
1618 }
else if(pt ==
PiZero) {
1620 }
else if(pt ==
Eta) {
1622 }
else if(pt ==
Omega) {
1625 return etaPrimeWidth;
1627 return SigmaPlusWidth;
1629 return SigmaZeroWidth;
1631 return SigmaMinusWidth;
1632 }
else if(pt ==
KPlus) {
1634 }
else if(pt ==
KMinus) {
1636 }
else if(pt ==
KShort) {
1638 }
else if(pt ==
KLong) {
1640 }
else if(pt ==
Lambda) {
1643 return XiMinusWidth;
1644 }
else if(pt ==
XiZero) {
1647 return antiSigmaPlusWidth;
1649 return antiSigmaZeroWidth;
1651 return antiSigmaMinusWidth;
1653 return antiLambdaWidth;
1655 return antiXiMinusWidth;
1657 return antiXiZeroWidth;
1659 INCL_ERROR(
"getWidth : Unknown particle type." <<
'\n');
G4double S(G4double temp)
Functions that encapsulate a mass table.
#define INCL_DEFAULT_SEPARATION_ENERGY
G4double getNeutronHalo() const
Get the neutron-halo size.
FermiMomentumType getFermiMomentumType() const
Get the Fermi-momentum type.
SeparationEnergyType getSeparationEnergyType() const
Get the separation-energy type.
G4double getRPCorrelationCoefficient(const ParticleType t) const
Get the r-p correlation coefficient.
std::string const & getINCLXXDataFilePath() const
Set the ABLAXX datafile path.
G4float getsrcPairDist() const
G4double getNeutronSkin() const
Get the neutron-skin thickness.
G4double getFermiMomentum() const
Get the Fermi momentum.
G4bool getsrcPairConfig() const
G4bool getUseRealMasses() const
Whether to use real masses.
Class that stores isotopic abundances for a given element.
G4double GetPDGMass() const
G4IonTable * GetIonTable() const
G4ParticleDefinition * FindParticle(G4int PDGEncoding)
static G4ParticleTable * GetParticleTable()
G4double getSurfaceDiffusenessHFB(const ParticleType t, const G4int A, const G4int Z)
G4double getRadiusParameterHFB(const ParticleType t, const G4int A, const G4int Z)
Get the radius and diffuseness parameters from HFB calculations.
T max(const T t1, const T t2)
brief Return the largest of the two arguments
const G4double sqrtFiveThirds
const G4double sqrtThreeFifths
G4int getMassNumber(const ParticleType t)
Get mass number from particle type.
G4ThreadLocal FermiMomentumFn getFermiMomentum
const G4double effectiveDeltaWidth
G4int parseElement(std::string pS)
Get the name of the element from the atomic number.
G4ThreadLocal G4double minDeltaMass2
G4double(* FermiMomentumFn)(const G4int, const G4int)
G4ThreadLocal NuclearMassFn getTableMass
Static pointer to the mass function for nuclei.
G4ThreadLocal SeparationEnergyFn getSeparationEnergy
Static pointer to the separation-energy function.
G4double getTableQValue(const G4int A1, const G4int Z1, const G4int S1, const G4int A2, const G4int Z2, const G4int S2)
Get Q-value (in MeV/c^2).
G4ThreadLocal ParticleMassFn getTableParticleMass
Static pointer to the mass function for particles.
G4double getantiProtonSeparationEnergy()
Getter for antiprotonSeparationEnergy.
void initialize(Config const *const theConfig=0)
Initialize the particle table.
const G4double effectiveDeltaMass
G4double getFermiMomentumMassDependent(const G4int A, const G4int)
Return the value Fermi momentum from a fit.
G4double getTableSpeciesMass(const ParticleSpecies &p)
G4double getLambdaSeparationEnergy()
Getter for lambdaSeparationEnergy.
G4int drawRandomNaturalIsotope(const G4int Z)
G4double getSeparationEnergyReal(const ParticleType t, const G4int A, const G4int Z)
Return the real separation energy.
G4double getNeutronSeparationEnergy()
Getter for neutronSeparationEnergy.
G4float getsrcPairDistance()
Get the distance between src nucleons.
G4ThreadLocal G4double minDeltaMass
const G4int clusterTableZSize
G4double getRadiusParameter(const ParticleType t, const G4int A, const G4int Z)
G4double getLargestNuclearRadius(const G4int A, const G4int Z)
ParticleType getKaonType(const G4int isosp)
Get the type of kaon.
G4double getNeutronHalo()
Get the size of the neutron halo.
G4double getRealMass(const G4INCL::ParticleType t)
Get particle mass (in MeV/c^2).
ParticleType getSigmaType(const G4int isosp)
Get the type of sigma.
G4double getINCLMass(const G4int A, const G4int Z, const G4int S)
Get INCL nuclear mass (in MeV/c^2).
G4double(* ParticleMassFn)(const ParticleType)
G4int getStrangenessNumber(const ParticleType t)
Get strangeness number from particle type.
G4double getMaximumNuclearRadius(const ParticleType t, const G4int A, const G4int Z)
void setLambdaSeparationEnergy(const G4double s)
Setter for lambdaSeparationEnergy.
G4double getRPCorrelationCoefficient(const ParticleType t)
Get the value of the r-p correlation coefficient.
G4int parseIUPACElement(std::string const &pS)
Parse a IUPAC element name.
G4double getSeparationEnergyINCL(const ParticleType t, const G4int, const G4int)
Return INCL's default separation energy.
void setNeutronSeparationEnergy(const G4double s)
Setter for protonSeparationEnergy.
G4double getantiLambdaSeparationEnergy()
Getter for antilambdaSeparationEnergy.
G4double getFermiMomentumConstant(const G4int, const G4int)
Return the constant value of the Fermi momentum.
G4double getantiNeutronSeparationEnergy()
Getter for antineutronSeparationEnergy.
std::string getName(const ParticleType t)
Get the native INCL name of the particle.
G4ThreadLocal G4double minDeltaMassRndm
G4double(* SeparationEnergyFn)(const ParticleType, const G4int, const G4int)
G4double getNeutronSkin()
Get the thickness of the neutron skin.
std::string getIUPACElementName(const G4int Z)
Get the name of an unnamed element from the IUPAC convention.
G4int getIsospin(const ParticleType t)
Get the isospin of a particle.
ParticleType getNucleonType(const G4int isosp)
Get the type of nucleon.
ParticleType getAntiXiType(const G4int isosp)
Get the type of antidelta.
G4double getSurfaceDiffuseness(const ParticleType t, const G4int A, const G4int Z)
void setantiLambdaSeparationEnergy(const G4double s)
Setter for antilambdaSeparationEnergy.
const G4int clusterTableASize
G4double getFermiMomentumConstantLight(const G4int A, const G4int Z)
Return the constant value of the Fermi momentum - special for light.
G4bool getsrcPairConfig()
Get the configuration of src-pair correlations.
void setProtonSeparationEnergy(const G4double s)
Setter for protonSeparationEnergy.
ParticleType getPionType(const G4int isosp)
Get the type of pion.
ParticleType getDeltaType(const G4int isosp)
Get the type of delta.
G4double(* NuclearMassFn)(const G4int, const G4int, const G4int)
G4int getChargeNumber(const ParticleType t)
Get charge number from particle type.
G4double getProtonSeparationEnergy()
Getter for protonSeparationEnergy.
IsotopicDistribution const & getNaturalIsotopicDistribution(const G4int Z)
ParticleType getAntiSigmaType(const G4int isosp)
Get the type of antisigma.
G4double getMomentumRMS(const G4int A, const G4int Z)
Return the RMS of the momentum distribution (light clusters).
ParticleType getAntiKaonType(const G4int isosp)
Get the type of antikaon.
G4double getSeparationEnergyRealForLight(const ParticleType t, const G4int A, const G4int Z)
Return the real separation energy only for light nuclei.
G4double getNuclearRadius(const ParticleType t, const G4int A, const G4int Z)
G4double getWidth(const ParticleType t)
Get particle width (in s).
std::string getShortName(const ParticleType t)
Get the short INCL name of the particle.
std::string getElementName(const G4int Z)
Get the name of the element from the atomic number.
ParticleType getXiType(const G4int isosp)
Get the type of xi.
const G4double Pf
Fermi momentum [MeV/c].
@ MassDependentFermiMomentum
@ ConstantLightFermiMomentum
@ RealForLightSeparationEnergy