Go to the documentation of this file. 1 #ifndef CartesianLorentzForce_H
2 #define CartesianLorentzForce_H
30 constexpr
float k = 2.99792458e-3;
33 auto dpos =
start.momentum().unit();
36 auto dmom = (
k *
theCharge) * dpos.cross(bfield);
Vector inTesla(const LocalPoint &lp) const
the argument lp is in the local frame specified in the constructor
CartesianLorentzForce(const RKLocalFieldProvider &field, float ch)
ROOT::Math::Plane3D::Vector Vector
RKDerivative< double, 6 > Base
Vector operator()(Scalar z, const Vector &state) const override
virtual Vector operator()(Scalar startPar, const Vector &startState) const =0
Derivative calculation for the 6D cartesian case.
static RKSmallVector< double, 6 > rkstate(const Vector3D &pos, const Vector3D &mom)
const RKLocalFieldProvider & theField
Base class for derivative calculation.
RKSmallVector< double, N > Vector