#include <G4INCLINuclearPotential.hh>
Inheritance diagram for G4INCL::NuclearPotential::INuclearPotential:
Public Member Functions | |
INuclearPotential (const G4int A, const G4int Z, const G4bool pionPot) | |
virtual | ~INuclearPotential () |
G4bool | hasPionPotential () |
Do we have a pion potential? | |
virtual G4double | computePotentialEnergy (const Particle *const p) const =0 |
G4double | getFermiEnergy (const Particle *const p) const |
Return the Fermi energy for a particle. | |
G4double | getFermiEnergy (const ParticleType t) const |
Return the Fermi energy for a particle type. | |
G4double | getSeparationEnergy (const Particle *const p) const |
Return the separation energy for a particle. | |
G4double | getSeparationEnergy (const ParticleType t) const |
Return the separation energy for a particle type. | |
G4double | getFermiMomentum (const Particle *const p) const |
Return the Fermi momentum for a particle. | |
G4double | getFermiMomentum (const ParticleType t) const |
Return the Fermi momentum for a particle type. | |
Protected Member Functions | |
G4double | computePionPotentialEnergy (const Particle *const p) const |
Compute the potential energy for the given pion. | |
Protected Attributes | |
const G4int | theA |
The mass number of the nucleus. | |
const G4int | theZ |
The charge number of the nucleus. | |
std::map< ParticleType, G4double > | fermiEnergy |
std::map< ParticleType, G4double > | fermiMomentum |
std::map< ParticleType, G4double > | separationEnergy |
Definition at line 61 of file G4INCLINuclearPotential.hh.
G4INCL::NuclearPotential::INuclearPotential::INuclearPotential | ( | const G4int | A, | |
const G4int | Z, | |||
const G4bool | pionPot | |||
) | [inline] |
Definition at line 63 of file G4INCLINuclearPotential.hh.
References G4INCL::PhysicalConstants::eSquared, G4INCL::Math::pow13(), theA, and theZ.
00063 : 00064 theA(A), 00065 theZ(Z), 00066 pionPotential(pionPot) 00067 { 00068 if(pionPotential) { 00069 const G4double ZOverA = ((G4double) theZ) / ((G4double) theA); 00070 // As in INCL4.6, use the r0*A^(1/3) formula to estimate vc 00071 const G4double r = 1.12*Math::pow13((G4double)theA); 00072 00073 const G4double xsi = 1. - 2.*ZOverA; 00074 const G4double vc = 1.25*PhysicalConstants::eSquared*theZ/r; 00075 vPiPlus = vPionDefault + 71.*xsi - vc; 00076 vPiZero = vPionDefault; 00077 vPiMinus = vPionDefault - 71.*xsi + vc; 00078 } else { 00079 vPiPlus = 0.0; 00080 vPiZero = 0.0; 00081 vPiMinus = 0.0; 00082 } 00083 }
virtual G4INCL::NuclearPotential::INuclearPotential::~INuclearPotential | ( | ) | [inline, virtual] |
G4double G4INCL::NuclearPotential::INuclearPotential::computePionPotentialEnergy | ( | const Particle *const | p | ) | const [inline, protected] |
Compute the potential energy for the given pion.
Definition at line 165 of file G4INCLINuclearPotential.hh.
References G4INCL::Particle::getType(), G4INCL::Particle::isOutOfWell(), G4INCL::PiMinus, G4INCL::PiPlus, and G4INCL::PiZero.
Referenced by G4INCL::NuclearPotential::NuclearPotentialIsospin::computePotentialEnergy(), and G4INCL::NuclearPotential::NuclearPotentialConstant::computePotentialEnergy().
00165 { 00166 // assert(p->getType()==PiPlus || p->getType()==PiZero || p->getType()==PiMinus); 00167 if(pionPotential && !p->isOutOfWell()) { 00168 switch( p->getType() ) { 00169 case PiPlus: 00170 return vPiPlus; 00171 break; 00172 case PiZero: 00173 return vPiZero; 00174 break; 00175 case PiMinus: 00176 return vPiMinus; 00177 break; 00178 default: // Pion potential is defined and non-zero only for pions 00179 return 0.0; 00180 break; 00181 } 00182 } 00183 else 00184 return 0.0; 00185 }
virtual G4double G4INCL::NuclearPotential::INuclearPotential::computePotentialEnergy | ( | const Particle *const | p | ) | const [pure virtual] |
Implemented in G4INCL::NuclearPotential::NuclearPotentialConstant, G4INCL::NuclearPotential::NuclearPotentialEnergyIsospin, G4INCL::NuclearPotential::NuclearPotentialEnergyIsospinSmooth, and G4INCL::NuclearPotential::NuclearPotentialIsospin.
Referenced by G4INCL::PionNucleonChannel::getFinalState(), and G4INCL::Nucleus::updatePotentialEnergy().
G4double G4INCL::NuclearPotential::INuclearPotential::getFermiEnergy | ( | const ParticleType | t | ) | const [inline] |
Return the Fermi energy for a particle type.
t | particle type |
Definition at line 108 of file G4INCLINuclearPotential.hh.
References fermiEnergy.
00108 { 00109 std::map<ParticleType, G4double>::const_iterator i = fermiEnergy.find(t); 00110 // assert(i!=fermiEnergy.end()); 00111 return i->second; 00112 }
G4double G4INCL::NuclearPotential::INuclearPotential::getFermiEnergy | ( | const Particle *const | p | ) | const [inline] |
Return the Fermi energy for a particle.
p | pointer to a Particle |
Definition at line 97 of file G4INCLINuclearPotential.hh.
References fermiEnergy, and G4INCL::Particle::getType().
Referenced by G4INCL::NuclearPotential::NuclearPotentialEnergyIsospinSmooth::computePotentialEnergy(), G4INCL::NuclearPotential::NuclearPotentialEnergyIsospin::computePotentialEnergy(), G4INCL::SurfaceAvatar::getChannel(), getFermiMomentum(), G4INCL::ParticleEntryChannel::getFinalState(), and G4INCL::CDPP::isBlocked().
00097 { 00098 std::map<ParticleType, G4double>::const_iterator i = fermiEnergy.find(p->getType()); 00099 // assert(i!=fermiEnergy.end()); 00100 return i->second; 00101 }
G4double G4INCL::NuclearPotential::INuclearPotential::getFermiMomentum | ( | const ParticleType | t | ) | const [inline] |
Return the Fermi momentum for a particle type.
t | particle type |
Definition at line 157 of file G4INCLINuclearPotential.hh.
References fermiMomentum.
00157 { 00158 // assert(t!=DeltaPlusPlus && t!=DeltaPlus && t!=DeltaZero && t!=DeltaMinus); 00159 std::map<ParticleType, G4double>::const_iterator i = fermiMomentum.find(t); 00160 return i->second; 00161 }
G4double G4INCL::NuclearPotential::INuclearPotential::getFermiMomentum | ( | const Particle *const | p | ) | const [inline] |
Return the Fermi momentum for a particle.
p | pointer to a Particle |
Definition at line 141 of file G4INCLINuclearPotential.hh.
References fermiMomentum, getFermiEnergy(), G4INCL::Particle::getMass(), G4INCL::Particle::getType(), and G4INCL::Particle::isDelta().
Referenced by G4INCL::PauliStandard::getBlockingProbability(), and G4INCL::Nucleus::getSurfaceRadius().
00141 { 00142 if(p->isDelta()) { 00143 const G4double Tf = getFermiEnergy(p), m = p->getMass(); 00144 return std::sqrt(Tf*(Tf+2.*m)); 00145 } else { 00146 std::map<ParticleType, G4double>::const_iterator i = fermiMomentum.find(p->getType()); 00147 // assert(i!=fermiMomentum.end()); 00148 return i->second; 00149 } 00150 }
G4double G4INCL::NuclearPotential::INuclearPotential::getSeparationEnergy | ( | const ParticleType | t | ) | const [inline] |
Return the separation energy for a particle type.
t | particle type |
Definition at line 130 of file G4INCLINuclearPotential.hh.
References separationEnergy.
00130 { 00131 std::map<ParticleType, G4double>::const_iterator i = separationEnergy.find(t); 00132 // assert(i!=separationEnergy.end()); 00133 return i->second; 00134 }
G4double G4INCL::NuclearPotential::INuclearPotential::getSeparationEnergy | ( | const Particle *const | p | ) | const [inline] |
Return the separation energy for a particle.
p | pointer to a Particle |
Definition at line 119 of file G4INCLINuclearPotential.hh.
References G4INCL::Particle::getType(), and separationEnergy.
Referenced by G4INCL::Nucleus::computeSeparationEnergyBalance(), G4INCL::CDPP::isBlocked(), and G4INCL::Nucleus::Nucleus().
00119 { 00120 std::map<ParticleType, G4double>::const_iterator i = separationEnergy.find(p->getType()); 00121 // assert(i!=separationEnergy.end()); 00122 return i->second; 00123 }
G4bool G4INCL::NuclearPotential::INuclearPotential::hasPionPotential | ( | ) | [inline] |
Do we have a pion potential?
Definition at line 88 of file G4INCLINuclearPotential.hh.
Referenced by G4INCL::Nucleus::decayInsideDeltas().
std::map<ParticleType,G4double> G4INCL::NuclearPotential::INuclearPotential::fermiEnergy [protected] |
std::map<ParticleType,G4double> G4INCL::NuclearPotential::INuclearPotential::fermiMomentum [protected] |
std::map<ParticleType,G4double> G4INCL::NuclearPotential::INuclearPotential::separationEnergy [protected] |
const G4int G4INCL::NuclearPotential::INuclearPotential::theA [protected] |
The mass number of the nucleus.
Definition at line 189 of file G4INCLINuclearPotential.hh.
Referenced by INuclearPotential().
const G4int G4INCL::NuclearPotential::INuclearPotential::theZ [protected] |
The charge number of the nucleus.
Definition at line 191 of file G4INCLINuclearPotential.hh.
Referenced by INuclearPotential().