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;
62 G4double cofMag =
fMagCharge * Energy * 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