Main Page
Namespaces
Namespace List
Namespace Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Enumerations
a
b
c
d
e
f
g
h
i
j
k
l
m
o
p
q
r
s
t
u
v
w
z
Enumerator
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Classes
Class List
Class Index
Class Hierarchy
Class Members
All
:
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Enumerations
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
Enumerator
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Properties
_
a
d
e
f
l
m
o
p
s
t
u
v
Related Functions
:
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
Package Documentation
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Modules
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
}
start
Definition:
start.py:1
step
step
Definition:
StallMonitor.cc:94
RKCartesianDerivative
Definition:
RKCartesianDerivative.h:6
CartesianState
Definition:
CartesianState.h:8
RKCartesianDerivative.h
RK4OneStep::operator()
CartesianState operator()(const CartesianState &start, const RKCartesianDerivative &deriv, double step) const
Definition:
RK4OneStep.cc:6
RK4OneStep.h
mps_fire.result
result
Definition:
mps_fire.py:311
Generated for CMSSW Reference Manual by
1.8.16