CMS 3D CMS Logo

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