Main Page
Namespaces
Classes
Package Documentation
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
TrackPropagation
RungeKutta
src
RK4OneStep.cc
Go to the documentation of this file.
1
#include "
RK4OneStep.h
"
2
#include "
RKCartesianDerivative.h
"
3
4
#include <iostream>
5
6
CartesianState
RK4OneStep::operator()
(
const
CartesianState
&
start
,
7
const
RKCartesianDerivative
& deriv,
8
double
step
)
const
{
9
double
s0 = 0;
// derivatives do't depend on absolute value of the integration variable
10
CartesianState
k1 = step * deriv(s0, start);
11
CartesianState
k2
= step * deriv(s0 + step / 2, start + k1 / 2);
12
CartesianState
k3 = step * deriv(s0 + step / 2, start + k2 / 2);
13
CartesianState
k4 = step * deriv(s0 + step, start + k3);
14
/*
15
std::cout << "k1 = " << k1.position() << k1.momentum() << std::endl;
16
std::cout << "k2 = " << k2.position() << k2.momentum() << std::endl;
17
std::cout << "k3 = " << k3.position() << k3.momentum() << std::endl;
18
std::cout << "k4 = " << k4.position() << k4.momentum() << std::endl;
19
*/
20
CartesianState
result
= start + k1 / 6 + k2 / 3 + k3 / 3 + k4 / 6;
21
return
result
;
22
}
relval_steps.k2
k2
Definition:
relval_steps.py:3512
RK4OneStep.h
RKCartesianDerivative.h
mps_fire.result
tuple result
Definition:
mps_fire.py:311
command_line.start
start
Definition:
command_line.py:165
RK4OneStep::operator()
CartesianState operator()(const CartesianState &start, const RKCartesianDerivative &deriv, double step) const
Definition:
RK4OneStep.cc:6
CartesianState
Definition:
CartesianState.h:8
step
step
Definition:
StallMonitor.cc:94
RKCartesianDerivative
Definition:
RKCartesianDerivative.h:6
Generated for CMSSW Reference Manual by
1.8.5