78 G4ChargeState particleChargeState,
80 G4double particleMass)
82 G4double particleMagneticCharge = particleChargeState.MagneticCharge();
83 G4double particleElectricCharge = particleChargeState.GetCharge();
86 fElCharge = eplus * particleElectricCharge * c_light;
88 fMagCharge = eplus * particleMagneticCharge * c_light;
94 fMassCof = particleMass * particleMass;
100 const G4double y[],
const G4double Field[], G4double dydx[])
const
106 G4double pSquared = y[3] * y[3] + y[4] * y[4] + y[5] * y[5];
108 G4double Energy = std::sqrt(pSquared +
fMassCof);
110 G4double pModuleInverse = 1.0 / std::sqrt(pSquared);
112 G4double inverse_velocity = Energy * pModuleInverse / c_light;
114 G4double cofEl =
fElCharge * pModuleInverse;
115 G4double cofMag =
fMagCharge * Energy * pModuleInverse;
117 dydx[0] = y[3] * pModuleInverse;
118 dydx[1] = y[4] * pModuleInverse;
119 dydx[2] = y[5] * pModuleInverse;
131 dydx[3] = cofMag * Field[0] + cofEl * (y[4] * Field[2] - y[5] * Field[1]);
132 dydx[4] = cofMag * Field[1] + cofEl * (y[5] * Field[0] - y[3] * Field[2]);
133 dydx[5] = cofMag * Field[2] + cofEl * (y[3] * Field[1] - y[4] * Field[0]);
149 dydx[7] = inverse_velocity;