CMS 3D CMS Logo

CartesianStateAdaptor.h
Go to the documentation of this file.
1 #ifndef CartesianStateAdaptor_H
2 #define CartesianStateAdaptor_H
3 
4 #include "RKSmallVector.h"
6 
8 public:
9  typedef float Scalar;
11 
12  CartesianStateAdaptor(const RKSmallVector<double, 6>& rk) : pos_(rk[0], rk[1], rk[2]), mom_(rk[3], rk[4], rk[5]) {}
13 
14  const Vector3D& position() const { return pos_; }
15  const Vector3D& momentum() const { return mom_; }
16 
17  static Vector3D position(const RKSmallVector<double, 6>& rk) { return Vector3D(rk[0], rk[1], rk[2]); }
18 
19  static Vector3D momentum(const RKSmallVector<double, 6>& rk) { return Vector3D(rk[3], rk[4], rk[5]); }
20 
21  static RKSmallVector<double, 6> rkstate(const Vector3D& pos, const Vector3D& mom) {
23  res[0] = pos.x();
24  res[1] = pos.y();
25  res[2] = pos.z();
26  res[3] = mom.x();
27  res[4] = mom.y();
28  res[5] = mom.z();
29  return res;
30  }
31 
32 private:
33  Vector3D pos_;
34  Vector3D mom_;
35 };
36 
37 #endif
static Vector3D momentum(const RKSmallVector< double, 6 > &rk)
T y() const
Cartesian y coordinate.
T x() const
Cartesian x coordinate.
ROOT::Math::SVector< T, N > RKSmallVector
Definition: RKSmallVector.h:13
Definition: Electron.h:6
static Vector3D position(const RKSmallVector< double, 6 > &rk)
T z() const
Cartesian z coordinate.
const Vector3D & momentum() const
#define dso_internal
Definition: Visibility.h:13
Basic3DVector< Scalar > Vector3D
static RKSmallVector< double, 6 > rkstate(const Vector3D &pos, const Vector3D &mom)
const Vector3D & position() const
CartesianStateAdaptor(const RKSmallVector< double, 6 > &rk)