44 #ifndef G4NYSTROMRK4_HH
45 #define G4NYSTROMRK4_HH
78 inline void getField (
const G4double P[4]);
104 m_magdistance= length;
105 m_magdistance2 = length*length;
110 return m_magdistance;
117 inline void G4NystromRK4::getField (
const G4double P[4])
120 G4double dx = P[0]-m_fldPosition[0];
121 G4double dy = P[1]-m_fldPosition[1];
122 G4double dz = P[2]-m_fldPosition[2];
124 if((dx*dx+dy*dy+dz*dz) > m_magdistance2)
126 m_fldPosition[0] = P[0];
127 m_fldPosition[1] = P[1];
128 m_fldPosition[2] = P[2];
129 m_fldPosition[3] = P[3];
133 #endif // G4NYSTROMRK4
void SetDistanceForConstantField(G4double length)
G4int IntegratorOrder() const
virtual void ComputeRightHandSide(const double P[], double 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[])