CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
RK4PreciseSolver.h
Go to the documentation of this file.
1 #ifndef RK4PreciseSolver_H
2 #define RK4PreciseSolver_H
3 
5 #include "Utilities/UI/interface/SimpleConfigurable.h"
6 
7 template <typename T, int N>
8 class RK4PreciseSolver : public RKSolver<T,N> {
9 public:
10 
12  typedef typename Base::Scalar Scalar;
13  typedef typename Base::Vector Vector;
14 
15  virtual Vector operator()( Scalar startPar, const Vector& startState,
16  Scalar step, const RKDerivative<T,N>& deriv,
17  const RKDistance<T,N>& dist,
18  Scalar eps);
19 
20  std::pair< Vector, T>
21  stepWithAccuracy( Scalar startPar, const Vector& startState,
22  const RKDerivative<T,N>& deriv,
23  const RKDistance<T,N>& dist, Scalar step);
24 
25 protected:
26 
27  bool verbose() const {
28  static bool verb = SimpleConfigurable<bool>(false,"RKSolver:verbose").value();
29  return verb;
30  }
31 
32 };
33 
34 #include "TrackPropagation/RungeKutta/src/RK4PreciseSolver.icc"
35 
36 #endif
Base::Vector Vector
bool verbose() const
std::pair< Vector, T > stepWithAccuracy(Scalar startPar, const Vector &startState, const RKDerivative< T, N > &deriv, const RKDistance< T, N > &dist, Scalar step)
Base::Scalar Scalar
RKSolver< T, N > Base
ABC for Runge-Kutta solvers.
Definition: RKSolver.h:11
Base class for derivative calculation.
Definition: RKDerivative.h:9
virtual Vector operator()(Scalar startPar, const Vector &startState, Scalar step, const RKDerivative< T, N > &deriv, const RKDistance< T, N > &dist, Scalar eps)
T Scalar
Definition: RKSolver.h:14