#include <G4KM_OpticalEqRhs.hh>
Inheritance diagram for G4KM_OpticalEqRhs:
Public Member Functions | |
G4KM_OpticalEqRhs (G4KM_DummyField *field, G4V3DNucleus *nucleus) | |
~G4KM_OpticalEqRhs () | |
virtual void | EvaluateRhsGivenB (const G4double y[], const G4double B[3], G4double dydx[]) const |
virtual void | SetChargeMomentumMass (G4double particleCharge, G4double MomentumXc, G4double MassXc2) |
void | SetFactor (G4double mass, G4double opticalParameter) |
Definition at line 49 of file G4KM_OpticalEqRhs.hh.
G4KM_OpticalEqRhs::G4KM_OpticalEqRhs | ( | G4KM_DummyField * | field, | |
G4V3DNucleus * | nucleus | |||
) |
Definition at line 45 of file G4KM_OpticalEqRhs.cc.
00046 : 00047 G4Mag_EqRhs(field), theNucleus(nucleus) 00048 { 00049 theFactor = 0; 00050 theMass = 0; 00051 }
G4KM_OpticalEqRhs::~G4KM_OpticalEqRhs | ( | ) | [inline] |
virtual void G4KM_OpticalEqRhs::EvaluateRhsGivenB | ( | const G4double | y[], | |
const G4double | B[3], | |||
G4double | dydx[] | |||
) | const [virtual] |
Implements G4Mag_EqRhs.
Definition at line 54 of file G4KM_OpticalEqRhs.cc.
References G4InuclSpecialFunctions::bindingEnergy(), G4lrint(), G4NucleiProperties::GetBindingEnergy(), G4V3DNucleus::GetCharge(), G4V3DNucleus::GetMassNumber(), and G4INCL::Math::pi.
Referenced by G4RKPropagation::Init().
00055 { 00056 G4double A = theNucleus->GetMassNumber(); 00057 G4double Z = theNucleus->GetCharge(); 00058 G4double bindingEnergy = G4NucleiProperties::GetBindingEnergy(G4lrint(A), G4lrint(Z)); 00059 G4double nucleusMass = Z*proton_mass_c2+(A-Z)*neutron_mass_c2+bindingEnergy; 00060 G4double reducedMass = mass*nucleusMass/(mass+nucleusMass); 00061 00062 G4double nucleonMass = (proton_mass_c2+neutron_mass_c2)/2; 00063 00064 // _factor in (MeV*fermi)*fermi/MeV = fermi*fermi -- need to have A as density normalized to 1 00065 theFactor = 2*pi*hbarc*hbarc*(1+mass/nucleonMass)* opticalParameter/reducedMass * A; 00066 00067 theMass = mass; 00068 }