Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Protected Member Functions | Protected 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

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

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

Constructor & Destructor Documentation

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.

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;
74  const G4double vc = 1.25*PhysicalConstants::eSquared*theZ/r;
75  vPiPlus = vPionDefault + 71.*xsi - vc;
76  vPiZero = vPionDefault;
77  vPiMinus = vPionDefault - 71.*xsi + vc;
78  } else {
79  vPiPlus = 0.0;
80  vPiZero = 0.0;
81  vPiMinus = 0.0;
82  }
83  }
const G4double eSquared
Coulomb conversion factor [MeV*fm].
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)
virtual G4INCL::NuclearPotential::INuclearPotential::~INuclearPotential ( )
inlinevirtual

Definition at line 85 of file G4INCLINuclearPotential.hh.

85 {}

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 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().

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

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

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

97  {
98  std::map<ParticleType, G4double>::const_iterator i = fermiEnergy.find(p->getType());
99 // assert(i!=fermiEnergy.end());
100  return i->second;
101  }
std::map< ParticleType, G4double > fermiEnergy
const char * p
Definition: xmltok.h:285
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 108 of file G4INCLINuclearPotential.hh.

References fermiEnergy.

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

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

Referenced by G4INCL::PauliStandard::getBlockingProbability(), G4INCL::KinematicsUtils::getLocalEnergy(), G4INCL::Nucleus::getSurfaceRadius(), G4INCL::PauliGlobal::isBlocked(), and G4INCL::PauliStrict::isBlocked().

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

References fermiMomentum.

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

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

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

119  {
120  std::map<ParticleType, G4double>::const_iterator i = separationEnergy.find(p->getType());
121 // assert(i!=separationEnergy.end());
122  return i->second;
123  }
const char * p
Definition: xmltok.h:285
std::map< ParticleType, G4double > separationEnergy
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 130 of file G4INCLINuclearPotential.hh.

References separationEnergy.

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

Do we have a pion potential?

Definition at line 88 of file G4INCLINuclearPotential.hh.

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

88 { return pionPotential; }

Field Documentation

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

Definition at line 198 of file G4INCLINuclearPotential.hh.

Referenced by getFermiEnergy().

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

Definition at line 200 of file G4INCLINuclearPotential.hh.

Referenced by getFermiMomentum().

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

Definition at line 202 of file G4INCLINuclearPotential.hh.

Referenced by getSeparationEnergy().

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().


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