G4INCL::NuclearPotential::NuclearPotentialEnergyIsospinSmooth Class Reference

#include <G4INCLNuclearPotentialEnergyIsospinSmooth.hh>

Inheritance diagram for G4INCL::NuclearPotential::NuclearPotentialEnergyIsospinSmooth:

G4INCL::NuclearPotential::NuclearPotentialIsospin G4INCL::NuclearPotential::INuclearPotential

Public Member Functions

 NuclearPotentialEnergyIsospinSmooth (const G4int A, const G4int Z, const G4bool pionPotential)
virtual ~NuclearPotentialEnergyIsospinSmooth ()
virtual G4double computePotentialEnergy (const Particle *const p) const

Detailed Description

Definition at line 56 of file G4INCLNuclearPotentialEnergyIsospinSmooth.hh.


Constructor & Destructor Documentation

G4INCL::NuclearPotential::NuclearPotentialEnergyIsospinSmooth::NuclearPotentialEnergyIsospinSmooth ( const G4int  A,
const G4int  Z,
const G4bool  pionPotential 
)

Definition at line 59 of file G4INCLNuclearPotentialEnergyIsospinSmooth.cc.

00060       : NuclearPotentialIsospin(A,Z,aPionPotential)
00061     {}

G4INCL::NuclearPotential::NuclearPotentialEnergyIsospinSmooth::~NuclearPotentialEnergyIsospinSmooth (  )  [virtual]

Definition at line 64 of file G4INCLNuclearPotentialEnergyIsospinSmooth.cc.

00064 {}


Member Function Documentation

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

Reimplemented from G4INCL::NuclearPotential::NuclearPotentialIsospin.

Definition at line 66 of file G4INCLNuclearPotentialEnergyIsospinSmooth.cc.

References G4INCL::NuclearPotential::NuclearPotentialIsospin::computePotentialEnergy(), G4INCL::NuclearPotential::INuclearPotential::getFermiEnergy(), G4INCL::Particle::getKineticEnergy(), and G4INCL::Particle::isNucleon().

00066                                                                                                        {
00067 
00068       const G4double v0 = NuclearPotentialIsospin::computePotentialEnergy(particle);
00069 
00070       if(particle->isNucleon()) {
00071         const G4double t = particle->getKineticEnergy();
00072         const G4double tf = getFermiEnergy(particle);
00073         // Constant potential for T<Tf
00074         if(t < tf)
00075           return v0;
00076 
00077         // Linear function for Tf<T<T0, exponential function for T>T0
00078         const G4double t0 = tf + v0*(1.-alpha)/alpha - deltaE; // deltaE before the linear potential vanishes
00079         G4double v;
00080         if(t<t0) {
00081           v = v0 - alpha*(t-tf)/(1.-alpha);
00082         } else {
00083           const G4double v_at_t0 = v0 - alpha*(t0-tf)/(1.-alpha);
00084           const G4double kappa = alpha / (v_at_t0 * (1.-alpha));
00085           v = v_at_t0 * std::exp(kappa * (t0-t));
00086         }
00087         return (v>0.0) ? v : 0.0;
00088       } else
00089         return v0;
00090     }


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