CMS 3D CMS Logo

RK4OneStep.cc
Go to the documentation of this file.
1 #include "RK4OneStep.h"
3 
4 #include <iostream>
5 
8  double step) const
9 {
10  double s0 = 0; // derivatives do't depend on absolute value of the integration variable
11  CartesianState k1 = step * deriv( s0, start);
12  CartesianState k2 = step * deriv( s0+step/2, start+k1/2);
13  CartesianState k3 = step * deriv( s0+step/2, start+k2/2);
14  CartesianState k4 = step * deriv( s0+step, start+k3);
15 /*
16  std::cout << "k1 = " << k1.position() << k1.momentum() << std::endl;
17  std::cout << "k2 = " << k2.position() << k2.momentum() << std::endl;
18  std::cout << "k3 = " << k3.position() << k3.momentum() << std::endl;
19  std::cout << "k4 = " << k4.position() << k4.momentum() << std::endl;
20 */
21  CartesianState result = start + k1/6 + k2/3 + k3/3 + k4/6;
22  return result;
23 }
Definition: start.py:1
CartesianState operator()(const CartesianState &start, const RKCartesianDerivative &deriv, double step) const
Definition: RK4OneStep.cc:7
step