34#define INCLXX_IN_GEANT4_MODE 1
54 namespace NuclearPotential {
66 void NuclearPotentialIsospin::initialize() {
81 vProton = theProtonFermiEnergy + theProtonSeparationEnergy;
89 vNeutron = theNeutronFermiEnergy + theNeutronSeparationEnergy;
91 const G4double separationEnergyDeltaPlusPlus = 2.*theProtonSeparationEnergy - theNeutronSeparationEnergy;
95 const G4double separationEnergyDeltaMinus = 2.*theNeutronSeparationEnergy - theProtonSeparationEnergy;
100 vDeltaZero = vNeutron;
101 vDeltaPlusPlus = std::max(separationEnergyDeltaPlusPlus + tinyMargin, 2.*vDeltaPlus - vDeltaZero);
102 vDeltaMinus = std::max(separationEnergyDeltaMinus + tinyMargin, 2.*vDeltaZero - vDeltaPlus);
113 if (asy > 0.236) vLambda = 40.91;
114 else if (asy > 0.133) vLambda = 56.549 - 678.73*asy + 4905.35*asy*asy - 9789.1*asy*asy*asy;
136 separationEnergy[
KMinus] = 2.*theNeutronSeparationEnergy - theProtonSeparationEnergy-theLambdaSeparationEnergy;
160 INCL_DEBUG(
"Table of separation energies [MeV] for A=" <<
theA <<
", Z=" <<
theZ <<
":" <<
'\n'
186 INCL_DEBUG(
"Table of Fermi energies [MeV] for A=" <<
theA <<
", Z=" <<
theZ <<
":" <<
'\n'
199 INCL_DEBUG(
"Table of Fermi momenta [MeV/c] for A=" <<
theA <<
", Z=" <<
theZ <<
":" <<
'\n'
286 return vDeltaPlusPlus;
298 INCL_ERROR(
"No potential computed for particle of type Cluster.");
302 INCL_ERROR(
"Trying to compute potential energy for an unknown particle.");
307 INCL_ERROR(
"There is no potential for this type of particle.");
Isospin- and energy-independent nuclear potential.
Isospin-dependent nuclear potential.
G4double computePionPotentialEnergy(const Particle *const p) const
Compute the potential energy for the given pion.
std::map< ParticleType, G4double > fermiMomentum
const G4int theA
The mass number of the nucleus.
std::map< ParticleType, G4double > separationEnergy
G4double computePionResonancePotentialEnergy(const Particle *const p) const
Compute the potential energy for the given pion resonances (Eta, Omega and EtaPrime and Gamma also).
G4double computeKaonPotentialEnergy(const Particle *const p) const
Compute the potential energy for the given kaon.
std::map< ParticleType, G4double > fermiEnergy
const G4int theZ
The charge number of the nucleus.
NuclearPotentialIsospin(const G4int A, const G4int Z, const G4bool pionPotential)
virtual G4double computePotentialEnergy(const Particle *const p) const
virtual ~NuclearPotentialIsospin()
G4INCL::ParticleType getType() const
G4double pow13(G4double x)
G4ThreadLocal FermiMomentumFn getFermiMomentum
G4ThreadLocal SeparationEnergyFn getSeparationEnergy
Static pointer to the separation-energy function.
G4double getINCLMass(const G4int A, const G4int Z, const G4int S)
Get INCL nuclear mass (in MeV/c^2)