61 if(aPosition.mag() >=
radius)
return 0.0;
67 G4double nucleusMass = Z*proton_mass_c2+(A-Z)*neutron_mass_c2+bindingEnergy;
68 G4double reducedMass = pionMinusMass*nucleusMass/(pionMinusMass+nucleusMass);
71 G4double nucleonMass = (proton_mass_c2+neutron_mass_c2)/2;
73 return 2.*
pi*hbarc*hbarc/reducedMass*(1+pionMinusMass/nucleonMass)*
theCoeff*density +
GetBarrier();
81 G4double coulombBarrier = (1.44/1.14) *
MeV * Z / (1.0 + std::pow(A,1./3.));
82 return -coulombBarrier;
virtual ~G4PionMinusField()
virtual G4int GetCharge()=0
CLHEP::Hep3Vector G4ThreeVector
virtual const G4VNuclearDensity * GetNuclearDensity() const =0
virtual G4int GetMassNumber()=0
virtual G4double GetField(const G4ThreeVector &aPosition)
G4PionMinusField(G4V3DNucleus *nucleus, G4double coeff=0.042 *CLHEP::fermi)
static const G4double A[nN]
G4double GetPDGMass() const
G4double GetDensity(const G4ThreeVector &aPosition) const
static G4double GetBindingEnergy(const G4int A, const G4int Z)
static G4PionMinus * PionMinus()
G4V3DNucleus * theNucleus
virtual G4double GetBarrier()
G4double bindingEnergy(G4int A, G4int Z)