00001 #ifndef RK4PreciseStep_H 00002 #define RK4PreciseStep_H 00003 00004 #include "FWCore/Utilities/interface/Visibility.h" 00005 #include "CartesianState.h" 00006 #include <utility> 00007 00008 class RKCartesianDerivative; 00009 00010 class dso_internal RK4PreciseStep { 00011 public: 00012 00013 CartesianState 00014 operator()( const CartesianState& start, const RKCartesianDerivative& deriv, 00015 double step, double eps) const; 00016 00017 double distance( const CartesianState& a, const CartesianState& b) const; 00018 00019 std::pair<CartesianState, double> 00020 stepWithAccuracy( const CartesianState& start, const RKCartesianDerivative& deriv, double step) const; 00021 00022 private: 00023 00024 bool verbose() const; 00025 00026 }; 00027 00028 #endif