Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:31:43

0001 #ifndef RK4PreciseSolver_H
0002 #define RK4PreciseSolver_H
0003 
0004 #include "FWCore/Utilities/interface/Visibility.h"
0005 #include "RKSolver.h"
0006 #include "Utilities/UI/interface/SimpleConfigurable.h"
0007 
0008 template <typename T, int N>
0009 class dso_internal RK4PreciseSolver : public RKSolver<T,N> {
0010 public:
0011 
0012     typedef RKSolver<T,N>                       Base;
0013     typedef typename Base::Scalar               Scalar;
0014     typedef typename Base::Vector               Vector;
0015 
0016     virtual Vector operator()( Scalar startPar, const Vector& startState,
0017                    Scalar step, const RKDerivative<T,N>& deriv,
0018                    const RKDistance<T,N>& dist,
0019                    float eps);
0020 
0021     std::pair< Vector, T> 
0022     stepWithAccuracy( Scalar startPar, const Vector& startState,
0023               const RKDerivative<T,N>& deriv,
0024               const RKDistance<T,N>& dist, float step);
0025 
0026 protected:
0027 
0028     bool verbose() const {
0029     static bool verb = SimpleConfigurable<bool>(false,"RKSolver:verbose").value();
0030     return verb;
0031     }
0032 
0033 };
0034 
0035 #include "TrackPropagation/RungeKutta/src/RK4PreciseSolver.icc"
0036 
0037 #endif