trf++/include/trfdca
diff -N PropParamRK.h
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ PropParamRK.h 8 Aug 2011 22:17:17 -0000 1.1
@@ -0,0 +1,46 @@
+// PropParamRK.h
+
+#ifndef PropParamRK_H
+#define PropParamRK_H
+
+// This is a helper class containing common functions that are used by
+// PropDCADCARK, PropCylDCARK, and PropDCACylRK.
+//
+// These functions do adaptive Runge-Kutta propagation in parametric
+// coordinates x, y, z, phid, tan(lambda) with path length as independent
+// variable.
+
+#include "static_la/array.h"
+
+class AbstractMagneticField;
+
+namespace trf {
+
+ class PropParamRK {
+
+ public:
+
+ // Typedefs
+
+ typedef static_la::array<double,35> TrackPar;
+
+ // static methods
+
+ static TrackPar motion(const TrackPar& par, double crv,
+ const AbstractMagneticField* bfield);
+ static double pardiff(const TrackPar& par1, const TrackPar& par2,
+ double derivscale);
+ static void rk4(TrackPar& par, double& s, double h, double crv,
+ const AbstractMagneticField* bfield, TrackPar& k1,
+ bool reuse);
+ static double rkv(TrackPar& par, double& s, double h, double crv,
+ const AbstractMagneticField* bfield, double precision,
+ double derivprec);
+ static void rka(TrackPar& par, double& s, double h, double crv,
+ const AbstractMagneticField* bfield, double precision,
+ double derivprec);
+ };
+
+} // end namespace trf
+
+#endif