#include <G4Mag_SpinEqRhs.hh>
Definition at line 45 of file G4Mag_SpinEqRhs.hh.
◆ G4Mag_SpinEqRhs()
◆ ~G4Mag_SpinEqRhs()
G4Mag_SpinEqRhs::~G4Mag_SpinEqRhs |
( |
| ) |
|
|
overridedefault |
◆ EvaluateRhsGivenB()
Implements G4Mag_EqRhs.
Definition at line 78 of file G4Mag_SpinEqRhs.cc.
81{
83 G4double inv_momentum_magnitude = 1.0 / std::sqrt( momentum_mag_square );
85
86 dydx[0] = y[3] * inv_momentum_magnitude;
87 dydx[1] = y[4] * inv_momentum_magnitude;
88 dydx[2] = y[5] * inv_momentum_magnitude;
89
90 if (charge == 0.)
91 {
92 dydx[3] = 0.;
93 dydx[4] = 0.;
94 dydx[5] = 0.;
95 }
96 else
97 {
98 dydx[3] = cof*(y[4]*
B[2] - y[5]*
B[1]) ;
99 dydx[4] = cof*(y[5]*
B[0] - y[3]*
B[2]) ;
100 dydx[5] = cof*(y[3]*
B[1] - y[4]*
B[0]) ;
101 }
102
104 u *= inv_momentum_magnitude;
105
107
108 G4double udb = anomaly*beta*gamma/(1.+gamma) * (BField * u);
109 G4double ucb = (anomaly+1./gamma)/beta;
110
111
112 dydx[6] = dydx[7] = dydx[8] = 0.0;
113
115
117 if (charge == 0.)
118 {
119 pcharge = 1.;
120 }
121 else
122 {
123 pcharge = charge;
124 }
125
127 if (
Spin.mag2() != 0.)
128 {
129 dSpin = pcharge*omegac*(ucb*(
Spin.cross(BField))-udb*(
Spin.cross(u)));
130 }
131
132 dydx[9] = dSpin.x();
133 dydx[10] = dSpin.y();
134 dydx[11] = dSpin.z();
135
136 return;
137}
G4double B(G4double temperature)
◆ GetAnomaly()
G4double G4Mag_SpinEqRhs::GetAnomaly |
( |
| ) |
const |
|
inline |
◆ SetAnomaly()
void G4Mag_SpinEqRhs::SetAnomaly |
( |
G4double | a | ) |
|
|
inline |
◆ SetChargeMomentumMass()
Reimplemented from G4Mag_EqRhs.
Definition at line 45 of file G4Mag_SpinEqRhs.cc.
48{
50
52 mass = particleMass;
54 spin = particleCharge.
GetSpin();
55
56 omegac = (eplus/mass)*c_light;
57
58 G4double muB = 0.5*eplus*hbar_Planck/(mass/c_squared);
59
61 if ( spin != 0. )
62 {
63 g_BMT = (std::abs(magMoment)/muB)/spin;
64 }
65 else
66 {
67 g_BMT = 2.;
68 }
69
70 anomaly = (g_BMT - 2.)/2.;
71
73 beta = MomentumXc/E;
74 gamma = E/mass;
75}
G4double GetCharge() const
G4double GetMagneticDipoleMoment() const
void SetChargeMomentumMass(G4ChargeState particleCharge, G4double MomentumXc, G4double mass) override
The documentation for this class was generated from the following files: