CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_2_7_hltpatch2/src/TrackPropagation/RungeKutta/src/RK4PreciseSolver.h

Go to the documentation of this file.
00001 #ifndef RK4PreciseSolver_H
00002 #define RK4PreciseSolver_H
00003 
00004 #include "FWCore/Utilities/interface/Visibility.h"
00005 #include "RKSolver.h"
00006 #include "Utilities/UI/interface/SimpleConfigurable.h"
00007 
00008 template <typename T, int N>
00009 class dso_internal RK4PreciseSolver : public RKSolver<T,N> {
00010 public:
00011 
00012     typedef RKSolver<T,N>                       Base;
00013     typedef typename Base::Scalar               Scalar;
00014     typedef typename Base::Vector               Vector;
00015 
00016     virtual Vector operator()( Scalar startPar, const Vector& startState,
00017                                Scalar step, const RKDerivative<T,N>& deriv,
00018                                const RKDistance<T,N>& dist,
00019                                Scalar eps);
00020 
00021     std::pair< Vector, T> 
00022     stepWithAccuracy( Scalar startPar, const Vector& startState,
00023                       const RKDerivative<T,N>& deriv,
00024                       const RKDistance<T,N>& dist, Scalar step);
00025 
00026 protected:
00027 
00028     bool verbose() const {
00029         static bool verb = SimpleConfigurable<bool>(false,"RKSolver:verbose").value();
00030         return verb;
00031     }
00032 
00033 };
00034 
00035 #include "TrackPropagation/RungeKutta/src/RK4PreciseSolver.icc"
00036 
00037 #endif