Geant4 9.6.0
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 ()
 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, G4doublefermiEnergy
 
std::map< ParticleType, G4doublefermiMomentum
 
std::map< ParticleType, G4doubleseparationEnergy
 

Detailed Description

Definition at line 63 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 65 of file G4INCLINuclearPotential.hh.

65 :
66 theA(A),
67 theZ(Z),
68 pionPotential(pionPot)
69 {
70 if(pionPotential) {
71 const G4double ZOverA = ((G4double) theZ) / ((G4double) theA);
72 // As in INCL4.6, use the r0*A^(1/3) formula to estimate vc
73 const G4double r = 1.12*Math::pow13((G4double)theA);
74
75 const G4double xsi = 1. - 2.*ZOverA;
77 vPiPlus = vPionDefault + 71.*xsi - vc;
78 vPiZero = vPionDefault;
79 vPiMinus = vPionDefault - 71.*xsi + vc;
80 } else {
81 vPiPlus = 0.0;
82 vPiZero = 0.0;
83 vPiMinus = 0.0;
84 }
85 }
double G4double
Definition: G4Types.hh:64
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 87 of file G4INCLINuclearPotential.hh.

87{}

Member Function Documentation

◆ computePionPotentialEnergy()

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

Compute the potential energy for the given pion.

Definition at line 167 of file G4INCLINuclearPotential.hh.

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

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 99 of file G4INCLINuclearPotential.hh.

99 {
100 std::map<ParticleType, G4double>::const_iterator i = fermiEnergy.find(p->getType());
101// assert(i!=fermiEnergy.end());
102 return i->second;
103 }
std::map< ParticleType, G4double > fermiEnergy

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

◆ 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 110 of file G4INCLINuclearPotential.hh.

110 {
111 std::map<ParticleType, G4double>::const_iterator i = fermiEnergy.find(t);
112// assert(i!=fermiEnergy.end());
113 return i->second;
114 }

◆ 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 143 of file G4INCLINuclearPotential.hh.

143 {
144 if(p->isDelta()) {
145 const G4double Tf = getFermiEnergy(p), m = p->getMass();
146 return std::sqrt(Tf*(Tf+2.*m));
147 } else {
148 std::map<ParticleType, G4double>::const_iterator i = fermiMomentum.find(p->getType());
149// assert(i!=fermiMomentum.end());
150 return i->second;
151 }
152 }
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 159 of file G4INCLINuclearPotential.hh.

159 {
160// assert(t!=DeltaPlusPlus && t!=DeltaPlus && t!=DeltaZero && t!=DeltaMinus);
161 std::map<ParticleType, G4double>::const_iterator i = fermiMomentum.find(t);
162 return i->second;
163 }

◆ 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 121 of file G4INCLINuclearPotential.hh.

121 {
122 std::map<ParticleType, G4double>::const_iterator i = separationEnergy.find(p->getType());
123// assert(i!=separationEnergy.end());
124 return i->second;
125 }
std::map< ParticleType, G4double > separationEnergy

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

◆ 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 132 of file G4INCLINuclearPotential.hh.

132 {
133 std::map<ParticleType, G4double>::const_iterator i = separationEnergy.find(t);
134// assert(i!=separationEnergy.end());
135 return i->second;
136 }

◆ hasPionPotential()

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

Do we have a pion potential?

Definition at line 90 of file G4INCLINuclearPotential.hh.

90{ return pionPotential; }

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

Member Data Documentation

◆ fermiEnergy

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

Definition at line 200 of file G4INCLINuclearPotential.hh.

Referenced by getFermiEnergy().

◆ fermiMomentum

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

Definition at line 202 of file G4INCLINuclearPotential.hh.

Referenced by getFermiMomentum().

◆ separationEnergy

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

Definition at line 204 of file G4INCLINuclearPotential.hh.

Referenced by getSeparationEnergy().

◆ theA

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

The mass number of the nucleus.

Definition at line 191 of file G4INCLINuclearPotential.hh.

Referenced by INuclearPotential().

◆ theZ

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

The charge number of the nucleus.

Definition at line 193 of file G4INCLINuclearPotential.hh.

Referenced by INuclearPotential().


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