CMS 3D CMS Logo

CMSSW_4_4_3_patch1/src/TrackPropagation/RungeKutta/src/RKAdaptiveSolver.h

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