44 #ifndef G4NYSTROMRK4_HH
45 #define G4NYSTROMRK4_HH
78 inline void getField (
const G4double P[4]);
108 m_magdistance= length;
109 m_magdistance2 = length*length;
114 return m_magdistance;
121 inline void G4NystromRK4::getField (
const G4double P[4])
124 G4double dx = P[0]-m_fldPosition[0];
125 G4double dy = P[1]-m_fldPosition[1];
126 G4double dz = P[2]-m_fldPosition[2];
128 if((dx*dx+dy*dy+dz*dz) > m_magdistance2)
130 m_fldPosition[0] = P[0];
131 m_fldPosition[1] = P[1];
132 m_fldPosition[2] = P[2];
133 m_fldPosition[3] = P[3];
137 #endif // G4NYSTROMRK4
void SetDistanceForConstantField(G4double length)
G4int IntegratorOrder() const
virtual void ComputeRightHandSide(const G4double P[], G4double dPdS[])
G4NystromRK4(G4Mag_EqRhs *EquationMotion, G4double distanceConstField=0.0)
void GetFieldValue(const G4double Point[4], G4double Field[]) const
G4double GetDistanceForConstantField() const
G4double DistChord() const
void Stepper(const G4double P[], const G4double dPdS[], G4double step, G4double Po[], G4double Err[])