G4INCL::NuclearPotential::INuclearPotential Class Reference

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

00063                                                                               :
00064           theA(A),
00065           theZ(Z),
00066           pionPotential(pionPot)
00067         {
00068           if(pionPotential) {
00069             const G4double ZOverA = ((G4double) theZ) / ((G4double) theA);
00070             // As in INCL4.6, use the r0*A^(1/3) formula to estimate vc
00071             const G4double r = 1.12*Math::pow13((G4double)theA);
00072 
00073             const G4double xsi = 1. - 2.*ZOverA;
00074             const G4double vc = 1.25*PhysicalConstants::eSquared*theZ/r;
00075             vPiPlus = vPionDefault + 71.*xsi - vc;
00076             vPiZero = vPionDefault;
00077             vPiMinus = vPionDefault - 71.*xsi + vc;
00078           } else {
00079             vPiPlus = 0.0;
00080             vPiZero = 0.0;
00081             vPiMinus = 0.0;
00082           }
00083         }

virtual G4INCL::NuclearPotential::INuclearPotential::~INuclearPotential (  )  [inline, virtual]

Definition at line 85 of file G4INCLINuclearPotential.hh.

00085 {}


Member Function Documentation

G4double G4INCL::NuclearPotential::INuclearPotential::computePionPotentialEnergy ( const Particle *const   p  )  const [inline, protected]

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

00165                                                                             {
00166 // assert(p->getType()==PiPlus || p->getType()==PiZero || p->getType()==PiMinus);
00167           if(pionPotential && !p->isOutOfWell()) {
00168             switch( p->getType() ) {
00169               case PiPlus:
00170                 return vPiPlus;
00171                 break;
00172               case PiZero:
00173                 return vPiZero;
00174                 break;
00175               case PiMinus:
00176                 return vPiMinus;
00177                 break;
00178               default: // Pion potential is defined and non-zero only for pions
00179                 return 0.0;
00180                 break;
00181             }
00182           }
00183           else
00184             return 0.0;
00185         }

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

Implemented in G4INCL::NuclearPotential::NuclearPotentialConstant, G4INCL::NuclearPotential::NuclearPotentialEnergyIsospin, G4INCL::NuclearPotential::NuclearPotentialEnergyIsospinSmooth, and G4INCL::NuclearPotential::NuclearPotentialIsospin.

Referenced by G4INCL::PionNucleonChannel::getFinalState(), and G4INCL::Nucleus::updatePotentialEnergy().

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

Return the Fermi energy for a particle type.

Parameters:
t particle type
Returns:
Fermi energy for that particle type

Definition at line 108 of file G4INCLINuclearPotential.hh.

References fermiEnergy.

00108                                                                    {
00109           std::map<ParticleType, G4double>::const_iterator i = fermiEnergy.find(t);
00110 // assert(i!=fermiEnergy.end());
00111           return i->second;
00112         }

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

Return the Fermi energy for a particle.

Parameters:
p pointer 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::NuclearPotentialEnergyIsospinSmooth::computePotentialEnergy(), G4INCL::NuclearPotential::NuclearPotentialEnergyIsospin::computePotentialEnergy(), G4INCL::SurfaceAvatar::getChannel(), getFermiMomentum(), G4INCL::ParticleEntryChannel::getFinalState(), and G4INCL::CDPP::isBlocked().

00097                                                                        {
00098           std::map<ParticleType, G4double>::const_iterator i = fermiEnergy.find(p->getType());
00099 // assert(i!=fermiEnergy.end());
00100           return i->second;
00101         }

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

Return the Fermi momentum for a particle type.

Parameters:
t particle type
Returns:
Fermi momentum for that particle type

Definition at line 157 of file G4INCLINuclearPotential.hh.

References fermiMomentum.

00157                                                                      {
00158 // assert(t!=DeltaPlusPlus && t!=DeltaPlus && t!=DeltaZero && t!=DeltaMinus);
00159           std::map<ParticleType, G4double>::const_iterator i = fermiMomentum.find(t);
00160           return i->second;
00161         }

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

Return the Fermi momentum for a particle.

Parameters:
p pointer 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(), and G4INCL::Particle::isDelta().

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

00141                                                                          {
00142           if(p->isDelta()) {
00143             const G4double Tf = getFermiEnergy(p), m = p->getMass();
00144             return std::sqrt(Tf*(Tf+2.*m));
00145           } else {
00146             std::map<ParticleType, G4double>::const_iterator i = fermiMomentum.find(p->getType());
00147 // assert(i!=fermiMomentum.end());
00148             return i->second;
00149           }
00150         }

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

Return the separation energy for a particle type.

Parameters:
t particle type
Returns:
separation energy for that particle type

Definition at line 130 of file G4INCLINuclearPotential.hh.

References separationEnergy.

00130                                                                         {
00131           std::map<ParticleType, G4double>::const_iterator i = separationEnergy.find(t);
00132 // assert(i!=separationEnergy.end());
00133           return i->second;
00134         }

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

Return the separation energy for a particle.

Parameters:
p pointer 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::CDPP::isBlocked(), and G4INCL::Nucleus::Nucleus().

00119                                                                             {
00120           std::map<ParticleType, G4double>::const_iterator i = separationEnergy.find(p->getType());
00121 // assert(i!=separationEnergy.end());
00122           return i->second;
00123         }

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

Do we have a pion potential?

Definition at line 88 of file G4INCLINuclearPotential.hh.

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

00088 { 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:
Generated on Mon May 27 17:54:09 2013 for Geant4 by  doxygen 1.4.7