15 #include <CLHEP/Units/PhysicalConstants.h> 16 #include <CLHEP/Units/SystemOfUnits.h> 32 G4double particleMagneticCharge = particleChargeState.MagneticCharge();
33 G4double particleElectricCharge = particleChargeState.GetCharge();
35 fElCharge = CLHEP::eplus * particleElectricCharge * CLHEP::c_light;
37 fMagCharge = CLHEP::eplus * particleMagneticCharge * CLHEP::c_light;
43 fMassCof = particleMass * particleMass;
53 G4double pSquared =
y[3] *
y[3] +
y[4] *
y[4] +
y[5] *
y[5];
57 G4double pModuleInverse = 1.0 /
std::sqrt(pSquared);
59 G4double inverse_velocity =
Energy * pModuleInverse / CLHEP::c_light;
61 G4double cofEl =
fElCharge * pModuleInverse;
64 dydx[0] =
y[3] * pModuleInverse;
65 dydx[1] =
y[4] * pModuleInverse;
66 dydx[2] =
y[5] * pModuleInverse;
78 dydx[3] = cofMag * Field[0] + cofEl * (
y[4] * Field[2] -
y[5] * Field[1]);
79 dydx[4] = cofMag * Field[1] + cofEl * (
y[5] * Field[0] -
y[3] * Field[2]);
80 dydx[5] = cofMag * Field[2] + cofEl * (
y[3] * Field[1] -
y[4] * Field[0]);
96 dydx[7] = inverse_velocity;
~MonopoleEquation() override
void EvaluateRhsGivenB(const G4double y[], const G4double Field[], G4double dydx[]) const override
MonopoleEquation(G4MagneticField *emField)
void SetChargeMomentumMass(G4ChargeState particleChargeState, G4double momentum, G4double mass) override