Geant4  10.03.p01
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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? More...
 
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 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...
 
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...
 

Protected Member Functions

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

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

Detailed Description

Definition at line 62 of file G4INCLINuclearPotential.hh.

Constructor & Destructor Documentation

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

Definition at line 64 of file G4INCLINuclearPotential.hh.

64  :
65  theA(A),
66  theZ(Z),
67  pionPotential(pionPot)
68  {
69  if(pionPotential) {
70  const G4double ZOverA = ((G4double) theZ) / ((G4double) theA);
71  // As in INCL4.6, use the r0*A^(1/3) formula to estimate vc
72  const G4double r = 1.12*Math::pow13((G4double)theA);
73 
74  const G4double xsi = 1. - 2.*ZOverA;
75  const G4double vc = 1.25*PhysicalConstants::eSquared*theZ/r;
76  vPiPlus = vPionDefault + 71.*xsi - vc;
77  vPiZero = vPionDefault;
78  vPiMinus = vPionDefault - 71.*xsi + vc;
79  } else {
80  vPiPlus = 0.0;
81  vPiZero = 0.0;
82  vPiMinus = 0.0;
83  }
84  }
const G4double eSquared
Coulomb conversion factor [MeV*fm].
double A(double temperature)
const G4int theA
The mass number of the nucleus.
const G4int theZ
The charge number of the nucleus.
double G4double
Definition: G4Types.hh:76
G4double pow13(G4double x)

Here is the call graph for this function:

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

Definition at line 86 of file G4INCLINuclearPotential.hh.

86 {}

Member Function Documentation

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

Compute the potential energy for the given pion.

Definition at line 166 of file G4INCLINuclearPotential.hh.

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

Here is the call graph for this function:

Here is the caller graph for this function:

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

190  {
191 // assert(p->getType()==Eta || p->getType()==Omega || p->getType()==EtaPrime || p->getType()==Photon);
192  if(pionPotential && !p->isOutOfWell()) {
193  switch( p->getType() ) {
194  case Eta:
195 //jcd return vPiZero;
196 //jcd return vPiZero*1.5;
197  return 0.0; // (JCD: seems to give better results)
198  break;
199  case Omega:
200  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)
201  break;
202  case EtaPrime:
203  return 37.0; // V. Metag in Hyperfine Interact (2015) 234:25-31
204  break;
205  case Photon:
206  return 0.0;
207  break;
208  default:
209  return 0.0;
210  break;
211  }
212  }
213  else
214  return 0.0;
215  }
const char * p
Definition: xmltok.h:285

Here is the call graph for this function:

Here is the caller graph for this function:

virtual G4double G4INCL::NuclearPotential::INuclearPotential::computePotentialEnergy ( const Particle *const  p) const
pure virtual
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 98 of file G4INCLINuclearPotential.hh.

98  {
99  std::map<ParticleType, G4double>::const_iterator i = fermiEnergy.find(p->getType());
100 // assert(i!=fermiEnergy.end());
101  return i->second;
102  }
std::map< ParticleType, G4double > fermiEnergy
const char * p
Definition: xmltok.h:285

Here is the call graph for this function:

Here is the caller graph for this function:

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

109  {
110  std::map<ParticleType, G4double>::const_iterator i = fermiEnergy.find(t);
111 // assert(i!=fermiEnergy.end());
112  return i->second;
113  }
std::map< ParticleType, G4double > fermiEnergy
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 142 of file G4INCLINuclearPotential.hh.

142  {
143  if(p->isDelta()) {
144  const G4double Tf = getFermiEnergy(p), m = p->getMass();
145  return std::sqrt(Tf*(Tf+2.*m));
146  } else {
147  std::map<ParticleType, G4double>::const_iterator i = fermiMomentum.find(p->getType());
148 // assert(i!=fermiMomentum.end());
149  return i->second;
150  }
151  }
const char * p
Definition: xmltok.h:285
G4double getFermiEnergy(const Particle *const p) const
Return the Fermi energy for a particle.
static constexpr double m
Definition: G4SIunits.hh:129
double G4double
Definition: G4Types.hh:76
std::map< ParticleType, G4double > fermiMomentum

Here is the call graph for this function:

Here is the caller graph for this function:

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

158  {
159 // assert(t!=DeltaPlusPlus && t!=DeltaPlus && t!=DeltaZero && t!=DeltaMinus);
160  std::map<ParticleType, G4double>::const_iterator i = fermiMomentum.find(t);
161  return i->second;
162  }
std::map< ParticleType, G4double > fermiMomentum
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 120 of file G4INCLINuclearPotential.hh.

120  {
121  std::map<ParticleType, G4double>::const_iterator i = separationEnergy.find(p->getType());
122 // assert(i!=separationEnergy.end());
123  return i->second;
124  }
const char * p
Definition: xmltok.h:285
std::map< ParticleType, G4double > separationEnergy

Here is the call graph for this function:

Here is the caller graph for this function:

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

131  {
132  std::map<ParticleType, G4double>::const_iterator i = separationEnergy.find(t);
133 // assert(i!=separationEnergy.end());
134  return i->second;
135  }
std::map< ParticleType, G4double > separationEnergy
G4bool G4INCL::NuclearPotential::INuclearPotential::hasPionPotential ( ) const
inline

Do we have a pion potential?

Definition at line 89 of file G4INCLINuclearPotential.hh.

89 { return pionPotential; }

Here is the caller graph for this function:

Member Data Documentation

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

Definition at line 228 of file G4INCLINuclearPotential.hh.

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

Definition at line 230 of file G4INCLINuclearPotential.hh.

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

Definition at line 232 of file G4INCLINuclearPotential.hh.

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

The mass number of the nucleus.

Definition at line 219 of file G4INCLINuclearPotential.hh.

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

The charge number of the nucleus.

Definition at line 221 of file G4INCLINuclearPotential.hh.


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