33 #define INCLXX_IN_GEANT4_MODE 1
53 namespace NuclearPotential {
79 vProton = theProtonFermiEnergy + theProtonSeparationEnergy;
87 vNeutron = theNeutronFermiEnergy + theNeutronSeparationEnergy;
89 const G4double separationEnergyDeltaPlusPlus = 2.*theProtonSeparationEnergy - theNeutronSeparationEnergy;
93 const G4double separationEnergyDeltaMinus = 2.*theNeutronSeparationEnergy - theProtonSeparationEnergy;
111 INCL_DEBUG(
"Table of separation energies [MeV] for A=" << theA <<
", Z=" <<
theZ <<
":" << std::endl
112 <<
" proton: " << separationEnergy[
Proton] << std::endl
113 <<
" neutron: " << separationEnergy[
Neutron] << std::endl
114 <<
" delta++: " << separationEnergy[
DeltaPlusPlus] << std::endl
115 <<
" delta+: " << separationEnergy[
DeltaPlus] << std::endl
116 <<
" delta0: " << separationEnergy[
DeltaZero] << std::endl
117 <<
" delta-: " << separationEnergy[
DeltaMinus] << std::endl
118 <<
" pi+: " << separationEnergy[
PiPlus] << std::endl
119 <<
" pi0: " << separationEnergy[
PiZero] << std::endl
120 <<
" pi-: " << separationEnergy[
PiMinus] << std::endl
123 INCL_DEBUG(
"Table of Fermi energies [MeV] for A=" << theA <<
", Z=" <<
theZ <<
":" << std::endl
132 INCL_DEBUG(
"Table of Fermi momenta [MeV/c] for A=" << theA <<
", Z=" <<
theZ <<
":" << std::endl
168 INCL_ERROR(
"No potential computed for particle of type Cluster.");
172 INCL_ERROR(
"Trying to compute potential energy for an unknown particle.");
177 INCL_ERROR(
"There is no potential for this type of particle.");
virtual G4double computePotentialEnergy(const Particle *const p) const
std::map< ParticleType, G4double > fermiEnergy
virtual ~NuclearPotentialIsospin()
const G4int theA
The mass number of the nucleus.
Isospin-dependent nuclear potential.
static const G4double A[nN]
Isospin- and energy-independent nuclear potential.
G4ThreadLocal SeparationEnergyFn getSeparationEnergy
Static pointer to the separation-energy function.
G4double getINCLMass(const G4int A, const G4int Z)
Get INCL nuclear mass (in MeV/c^2)
T max(const T t1, const T t2)
brief Return the largest of the two arguments
G4INCL::ParticleType getType() const
Get the particle type.
NuclearPotentialIsospin(const G4int A, const G4int Z, const G4bool pionPotential)
std::map< ParticleType, G4double > separationEnergy
const G4int theZ
The charge number of the nucleus.
G4double computePionPotentialEnergy(const Particle *const p) const
Compute the potential energy for the given pion.
std::map< ParticleType, G4double > fermiMomentum
G4double pow13(G4double x)
G4ThreadLocal FermiMomentumFn getFermiMomentum