Geant4-11
Public Member Functions | Protected Member Functions | Protected Attributes | Private Attributes | Static Private Attributes
G4INCL::NuclearPotential::INuclearPotential Class Referenceabstract

#include <G4INCLINuclearPotential.hh>

Inheritance diagram for G4INCL::NuclearPotential::INuclearPotential:
G4INCL::NuclearPotential::NuclearPotentialConstant G4INCL::NuclearPotential::NuclearPotentialIsospin G4INCL::NuclearPotential::NuclearPotentialEnergyIsospin G4INCL::NuclearPotential::NuclearPotentialEnergyIsospinSmooth

Public Member Functions

virtual G4double computePotentialEnergy (const Particle *const p) const =0
 
G4double getFermiEnergy (const Particle *const p) const
 Return the Fermi energy for a particle. More...
 
G4double getFermiEnergy (const ParticleType t) const
 Return the Fermi energy for a particle type. More...
 
G4double getFermiMomentum (const Particle *const p) const
 Return the Fermi momentum for a particle. More...
 
G4double getFermiMomentum (const ParticleType t) const
 Return the Fermi momentum for a particle type. More...
 
G4double getSeparationEnergy (const Particle *const p) const
 Return the separation energy for a particle. More...
 
G4double getSeparationEnergy (const ParticleType t) const
 Return the separation energy for a particle type. More...
 
G4bool hasPionPotential () const
 Do we have a pion potential? More...
 
 INuclearPotential (const G4int A, const G4int Z, const G4bool pionPot)
 
virtual ~INuclearPotential ()
 

Protected Member Functions

G4double computeKaonPotentialEnergy (const Particle *const p) const
 Compute the potential energy for the given kaon. More...
 
G4double computePionPotentialEnergy (const Particle *const p) const
 Compute the potential energy for the given pion. More...
 
G4double computePionResonancePotentialEnergy (const Particle *const p) const
 Compute the potential energy for the given pion resonances (Eta, Omega and EtaPrime and Gamma also). More...
 

Protected Attributes

std::map< ParticleType, G4doublefermiEnergy
 
std::map< ParticleType, G4doublefermiMomentum
 
std::map< ParticleType, G4doubleseparationEnergy
 
const G4int theA
 The mass number of the nucleus. More...
 
const G4int theZ
 The charge number of the nucleus. More...
 

Private Attributes

const G4bool pionPotential
 
G4double vKMinus
 
G4double vKPlus
 
G4double vKZero
 
G4double vKZeroBar
 
G4double vPiMinus
 
G4double vPiPlus
 
G4double vPiZero
 

Static Private Attributes

static const G4double vKMinusDefault = 60.
 
static const G4double vKPlusDefault = -25.
 
static const G4double vPionDefault = 30.6
 

Detailed Description

Definition at line 61 of file G4INCLINuclearPotential.hh.

Constructor & Destructor Documentation

◆ INuclearPotential()

G4INCL::NuclearPotential::INuclearPotential::INuclearPotential ( const G4int  A,
const G4int  Z,
const G4bool  pionPot 
)
inline

Definition at line 63 of file G4INCLINuclearPotential.hh.

63 :
64 theA(A),
65 theZ(Z),
66 pionPotential(pionPot)
67 {
68 if(pionPotential) {
69 const G4double ZOverA = ((G4double) theZ) / ((G4double) theA);
70 // As in INCL4.6, use the r0*A^(1/3) formula to estimate vc
71 const G4double r = 1.12*Math::pow13((G4double)theA);
72
73 const G4double xsi = 1. - 2.*ZOverA;
75 vPiPlus = vPionDefault + 71.*xsi - vc;
77 vPiMinus = vPionDefault - 71.*xsi + vc;
79 vKZero = vKPlusDefault + 10.; // Hypothesis to be check
81 vKZeroBar = vKMinusDefault - 10.; // Hypothesis to be check
82 } else {
83 vPiPlus = 0.0;
84 vPiZero = 0.0;
85 vPiMinus = 0.0;
86 vKPlus = 0.0;
87 vKZero = 0.0;
88 vKMinus = 0.0;
89 vKZeroBar = 0.0;
90 }
91 }
double G4double
Definition: G4Types.hh:83
const G4int Z[17]
const G4double A[17]
const G4int theA
The mass number of the nucleus.
const G4int theZ
The charge number of the nucleus.
G4double pow13(G4double x)
const G4double eSquared
Coulomb conversion factor [MeV*fm].

References G4INCL::PhysicalConstants::eSquared, pionPotential, G4INCL::Math::pow13(), theA, theZ, vKMinus, vKMinusDefault, vKPlus, vKPlusDefault, vKZero, vKZeroBar, vPiMinus, vPionDefault, vPiPlus, and vPiZero.

◆ ~INuclearPotential()

virtual G4INCL::NuclearPotential::INuclearPotential::~INuclearPotential ( )
inlinevirtual

Definition at line 93 of file G4INCLINuclearPotential.hh.

93{}

Member Function Documentation

◆ computeKaonPotentialEnergy()

G4double G4INCL::NuclearPotential::INuclearPotential::computeKaonPotentialEnergy ( const Particle *const  p) const
inlineprotected

Compute the potential energy for the given kaon.

Definition at line 197 of file G4INCLINuclearPotential.hh.

197 {
198// assert(p->getType()==KPlus || p->getType()==KZero || p->getType()==KZeroBar || p->getType()==KMinus|| p->getType()==KShort|| p->getType()==KLong);
199 if(pionPotential && !p->isOutOfWell()) { // if pionPotental false -> kaonPotential false
200 switch( p->getType() ) {
201 case KPlus:
202 return vKPlus;
203 break;
204 case KZero:
205 return vKZero;
206 break;
207 case KZeroBar:
208 return vKZeroBar;
209 break;
210 case KShort:
211 case KLong:
212 return 0.0; // Should never be in the nucleus
213 break;
214 case KMinus:
215 return vKMinus;
216 break;
217 default:
218 return 0.0;
219 break;
220 }
221 }
222 else
223 return 0.0;
224 }

References G4INCL::Particle::getType(), G4INCL::Particle::isOutOfWell(), G4INCL::KLong, G4INCL::KMinus, G4INCL::KPlus, G4INCL::KShort, G4INCL::KZero, G4INCL::KZeroBar, pionPotential, vKMinus, vKPlus, vKZero, and vKZeroBar.

Referenced by G4INCL::NuclearPotential::NuclearPotentialConstant::computePotentialEnergy(), and G4INCL::NuclearPotential::NuclearPotentialIsospin::computePotentialEnergy().

◆ computePionPotentialEnergy()

G4double G4INCL::NuclearPotential::INuclearPotential::computePionPotentialEnergy ( const Particle *const  p) const
inlineprotected

Compute the potential energy for the given pion.

Definition at line 173 of file G4INCLINuclearPotential.hh.

173 {
174// assert(p->getType()==PiPlus || p->getType()==PiZero || p->getType()==PiMinus);
175 if(pionPotential && !p->isOutOfWell()) {
176 switch( p->getType() ) {
177 case PiPlus:
178 return vPiPlus;
179 break;
180 case PiZero:
181 return vPiZero;
182 break;
183 case PiMinus:
184 return vPiMinus;
185 break;
186 default: // Pion potential is defined and non-zero only for pions
187 return 0.0;
188 break;
189 }
190 }
191 else
192 return 0.0;
193 }

References G4INCL::Particle::getType(), G4INCL::Particle::isOutOfWell(), G4INCL::PiMinus, pionPotential, G4INCL::PiPlus, G4INCL::PiZero, vPiMinus, vPiPlus, and vPiZero.

Referenced by G4INCL::NuclearPotential::NuclearPotentialConstant::computePotentialEnergy(), and G4INCL::NuclearPotential::NuclearPotentialIsospin::computePotentialEnergy().

◆ computePionResonancePotentialEnergy()

G4double G4INCL::NuclearPotential::INuclearPotential::computePionResonancePotentialEnergy ( const Particle *const  p) const
inlineprotected

Compute the potential energy for the given pion resonances (Eta, Omega and EtaPrime and Gamma also).

Definition at line 228 of file G4INCLINuclearPotential.hh.

228 {
229// assert(p->getType()==Eta || p->getType()==Omega || p->getType()==EtaPrime || p->getType()==Photon);
230 if(pionPotential && !p->isOutOfWell()) {
231 switch( p->getType() ) {
232 case Eta:
233//jcd return vPiZero;
234//jcd return vPiZero*1.5;
235 return 0.0; // (JCD: seems to give better results)
236 break;
237 case Omega:
238 return 15.0; // S.Friedrich et al., Physics Letters B736(2014)26-32. (V. Metag in Hyperfine Interact (2015) 234:25-31 gives 29 MeV)
239 break;
240 case EtaPrime:
241 return 37.0; // V. Metag in Hyperfine Interact (2015) 234:25-31
242 break;
243 case Photon:
244 return 0.0;
245 break;
246 default:
247 return 0.0;
248 break;
249 }
250 }
251 else
252 return 0.0;
253 }

References G4INCL::Eta, G4INCL::EtaPrime, G4INCL::Particle::getType(), G4INCL::Particle::isOutOfWell(), G4INCL::Omega, G4INCL::Photon, and pionPotential.

Referenced by G4INCL::NuclearPotential::NuclearPotentialConstant::computePotentialEnergy(), and G4INCL::NuclearPotential::NuclearPotentialIsospin::computePotentialEnergy().

◆ computePotentialEnergy()

virtual G4double G4INCL::NuclearPotential::INuclearPotential::computePotentialEnergy ( const Particle *const  p) const
pure virtual

◆ getFermiEnergy() [1/2]

G4double G4INCL::NuclearPotential::INuclearPotential::getFermiEnergy ( const Particle *const  p) const
inline

Return the Fermi energy for a particle.

Parameters
ppointer to a Particle
Returns
Fermi energy for that particle type

Definition at line 105 of file G4INCLINuclearPotential.hh.

105 {
106 std::map<ParticleType, G4double>::const_iterator i = fermiEnergy.find(p->getType());
107// assert(i!=fermiEnergy.end());
108 return i->second;
109 }
std::map< ParticleType, G4double > fermiEnergy

References fermiEnergy, and G4INCL::Particle::getType().

Referenced by G4INCL::NuclearPotential::NuclearPotentialEnergyIsospin::computePotentialEnergy(), G4INCL::NuclearPotential::NuclearPotentialEnergyIsospinSmooth::computePotentialEnergy(), G4INCL::ParticleEntryChannel::fillFinalState(), G4INCL::SurfaceAvatar::getChannel(), getFermiMomentum(), and G4INCL::CDPP::processOneParticle().

◆ getFermiEnergy() [2/2]

G4double G4INCL::NuclearPotential::INuclearPotential::getFermiEnergy ( const ParticleType  t) const
inline

Return the Fermi energy for a particle type.

Parameters
tparticle type
Returns
Fermi energy for that particle type

Definition at line 116 of file G4INCLINuclearPotential.hh.

116 {
117 std::map<ParticleType, G4double>::const_iterator i = fermiEnergy.find(t);
118// assert(i!=fermiEnergy.end());
119 return i->second;
120 }

References fermiEnergy.

◆ getFermiMomentum() [1/2]

G4double G4INCL::NuclearPotential::INuclearPotential::getFermiMomentum ( const Particle *const  p) const
inline

Return the Fermi momentum for a particle.

Parameters
ppointer to a Particle
Returns
Fermi momentum for that particle type

Definition at line 149 of file G4INCLINuclearPotential.hh.

149 {
150 if(p->isDelta()) {
151 const G4double Tf = getFermiEnergy(p), mass = p->getMass();
152 return std::sqrt(Tf*(Tf+2.*mass));
153 } else {
154 std::map<ParticleType, G4double>::const_iterator i = fermiMomentum.find(p->getType());
155// assert(i!=fermiMomentum.end());
156 return i->second;
157 }
158 }
std::map< ParticleType, G4double > fermiMomentum
G4double getFermiEnergy(const Particle *const p) const
Return the Fermi energy for a particle.

References fermiMomentum, getFermiEnergy(), G4INCL::Particle::getMass(), G4INCL::Particle::getType(), and G4INCL::Particle::isDelta().

Referenced by G4INCL::PauliStandard::getBlockingProbability(), G4INCL::Nucleus::getSurfaceRadius(), G4INCL::ParticleSampler::sampleOneParticleWithFuzzyRPCorrelation(), and G4INCL::ParticleSampler::sampleOneParticleWithRPCorrelation().

◆ getFermiMomentum() [2/2]

G4double G4INCL::NuclearPotential::INuclearPotential::getFermiMomentum ( const ParticleType  t) const
inline

Return the Fermi momentum for a particle type.

Parameters
tparticle type
Returns
Fermi momentum for that particle type

Definition at line 165 of file G4INCLINuclearPotential.hh.

165 {
166// assert(t!=DeltaPlusPlus && t!=DeltaPlus && t!=DeltaZero && t!=DeltaMinus);
167 std::map<ParticleType, G4double>::const_iterator i = fermiMomentum.find(t);
168 return i->second;
169 }

References fermiMomentum.

◆ getSeparationEnergy() [1/2]

G4double G4INCL::NuclearPotential::INuclearPotential::getSeparationEnergy ( const Particle *const  p) const
inline

Return the separation energy for a particle.

Parameters
ppointer to a Particle
Returns
separation energy for that particle type

Definition at line 127 of file G4INCLINuclearPotential.hh.

127 {
128 std::map<ParticleType, G4double>::const_iterator i = separationEnergy.find(p->getType());
129// assert(i!=separationEnergy.end());
130 return i->second;
131 }
std::map< ParticleType, G4double > separationEnergy

References G4INCL::Particle::getType(), and separationEnergy.

Referenced by G4INCL::Nucleus::computeSeparationEnergyBalance(), G4INCL::Nucleus::Nucleus(), and G4INCL::CDPP::processOneParticle().

◆ getSeparationEnergy() [2/2]

G4double G4INCL::NuclearPotential::INuclearPotential::getSeparationEnergy ( const ParticleType  t) const
inline

Return the separation energy for a particle type.

Parameters
tparticle type
Returns
separation energy for that particle type

Definition at line 138 of file G4INCLINuclearPotential.hh.

138 {
139 std::map<ParticleType, G4double>::const_iterator i = separationEnergy.find(t);
140// assert(i!=separationEnergy.end());
141 return i->second;
142 }

References separationEnergy.

◆ hasPionPotential()

G4bool G4INCL::NuclearPotential::INuclearPotential::hasPionPotential ( ) const
inline

Do we have a pion potential?

Definition at line 96 of file G4INCLINuclearPotential.hh.

96{ return pionPotential; }

References pionPotential.

Referenced by G4INCL::Nucleus::decayInsideDeltas().

Field Documentation

◆ fermiEnergy

std::map<ParticleType,G4double> G4INCL::NuclearPotential::INuclearPotential::fermiEnergy
protected

◆ fermiMomentum

std::map<ParticleType,G4double> G4INCL::NuclearPotential::INuclearPotential::fermiMomentum
protected

◆ pionPotential

const G4bool G4INCL::NuclearPotential::INuclearPotential::pionPotential
private

◆ separationEnergy

std::map<ParticleType,G4double> G4INCL::NuclearPotential::INuclearPotential::separationEnergy
protected

◆ theA

const G4int G4INCL::NuclearPotential::INuclearPotential::theA
protected

◆ theZ

const G4int G4INCL::NuclearPotential::INuclearPotential::theZ
protected

◆ vKMinus

G4double G4INCL::NuclearPotential::INuclearPotential::vKMinus
private

Definition at line 264 of file G4INCLINuclearPotential.hh.

Referenced by computeKaonPotentialEnergy(), and INuclearPotential().

◆ vKMinusDefault

const G4double G4INCL::NuclearPotential::INuclearPotential::vKMinusDefault = 60.
staticprivate

Definition at line 266 of file G4INCLINuclearPotential.hh.

Referenced by INuclearPotential().

◆ vKPlus

G4double G4INCL::NuclearPotential::INuclearPotential::vKPlus
private

Definition at line 264 of file G4INCLINuclearPotential.hh.

Referenced by computeKaonPotentialEnergy(), and INuclearPotential().

◆ vKPlusDefault

const G4double G4INCL::NuclearPotential::INuclearPotential::vKPlusDefault = -25.
staticprivate

Definition at line 265 of file G4INCLINuclearPotential.hh.

Referenced by INuclearPotential().

◆ vKZero

G4double G4INCL::NuclearPotential::INuclearPotential::vKZero
private

Definition at line 264 of file G4INCLINuclearPotential.hh.

Referenced by computeKaonPotentialEnergy(), and INuclearPotential().

◆ vKZeroBar

G4double G4INCL::NuclearPotential::INuclearPotential::vKZeroBar
private

Definition at line 264 of file G4INCLINuclearPotential.hh.

Referenced by computeKaonPotentialEnergy(), and INuclearPotential().

◆ vPiMinus

G4double G4INCL::NuclearPotential::INuclearPotential::vPiMinus
private

Definition at line 262 of file G4INCLINuclearPotential.hh.

Referenced by computePionPotentialEnergy(), and INuclearPotential().

◆ vPionDefault

const G4double G4INCL::NuclearPotential::INuclearPotential::vPionDefault = 30.6
staticprivate

Definition at line 263 of file G4INCLINuclearPotential.hh.

Referenced by INuclearPotential().

◆ vPiPlus

G4double G4INCL::NuclearPotential::INuclearPotential::vPiPlus
private

Definition at line 262 of file G4INCLINuclearPotential.hh.

Referenced by computePionPotentialEnergy(), and INuclearPotential().

◆ vPiZero

G4double G4INCL::NuclearPotential::INuclearPotential::vPiZero
private

Definition at line 262 of file G4INCLINuclearPotential.hh.

Referenced by computePionPotentialEnergy(), and INuclearPotential().


The documentation for this class was generated from the following files: