00001 #ifndef RKSolver_H 00002 #define RKSolver_H 00003 00004 #include "TrackPropagation/RungeKutta/interface/RKSmallVector.h" 00005 #include "TrackPropagation/RungeKutta/interface/RKDerivative.h" 00006 #include "TrackPropagation/RungeKutta/interface/RKDistance.h" 00007 00009 00010 template <typename T, int N> 00011 class RKSolver { 00012 public: 00013 00014 typedef T Scalar; 00015 typedef RKSmallVector<T,N> Vector; 00016 00017 virtual ~RKSolver() {} 00018 00025 virtual Vector operator()( Scalar startPar, const Vector& startState, 00026 Scalar step, const RKDerivative<T,N>& deriv, 00027 const RKDistance<T,N>& dist, 00028 Scalar eps) = 0; 00029 00030 00031 }; 00032 00033 #endif