Print

Print


Commit in trf++/include/trfdca on MAIN
PropParamRK.h+46added 1.1
RK propagator helper class

trf++/include/trfdca
PropParamRK.h added at 1.1
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
CVSspam 0.2.8