Geant4 11.2.2
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4INCL::NuclearPotential::INuclearPotential Class Referenceabstract

#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 () const
 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.
 
G4double computeKaonPotentialEnergy (const Particle *const p) const
 Compute the potential energy for the given kaon.
 
G4double computePionResonancePotentialEnergy (const Particle *const p) const
 Compute the potential energy for the given pion resonances (Eta, Omega and EtaPrime and Gamma also).
 

Protected Attributes

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

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;
76 vPiZero = vPionDefault;
77 vPiMinus = vPionDefault - 71.*xsi + vc;
78 vKPlus = vKPlusDefault;
79 vKZero = vKPlusDefault + 10.; // Hypothesis to be check
80 vKMinus = vKMinusDefault;
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 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].

◆ ~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 }

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 }

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 }

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

◆ computePotentialEnergy()

◆ 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 }

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 }

◆ 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.

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

◆ 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 }

◆ 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

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 }

◆ 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; }

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

Member Data Documentation

◆ fermiEnergy

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

Definition at line 269 of file G4INCLINuclearPotential.hh.

Referenced by getFermiEnergy(), and getFermiEnergy().

◆ fermiMomentum

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

Definition at line 271 of file G4INCLINuclearPotential.hh.

Referenced by getFermiMomentum(), and getFermiMomentum().

◆ separationEnergy

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

Definition at line 273 of file G4INCLINuclearPotential.hh.

Referenced by getSeparationEnergy(), and getSeparationEnergy().

◆ theA

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

The mass number of the nucleus.

Definition at line 257 of file G4INCLINuclearPotential.hh.

Referenced by INuclearPotential().

◆ theZ

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

The charge number of the nucleus.

Definition at line 259 of file G4INCLINuclearPotential.hh.

Referenced by INuclearPotential().


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