CMS 3D CMS Logo

RKCartesianDistance.h
Go to the documentation of this file.
1 #ifndef RKCartesianDistance_H
2 #define RKCartesianDistance_H
3 
6 #include "RKDistance.h"
7 #include "RKSmallVector.h"
9 
10 #include <cmath>
11 
13 
14 class dso_internal RKCartesianDistance final : public RKDistance<double, 6> {
15 public:
16  typedef double Scalar;
18 
19  ~RKCartesianDistance() override {}
20 
21  Scalar operator()(const Vector& rka, const Vector& rkb, const Scalar& s) const override {
22  CartesianStateAdaptor a(rka), b(rkb);
23 
24  return (a.position() - b.position()).mag() + (a.momentum() - b.momentum()).mag() / b.momentum().mag();
25  }
26 };
27 
28 #endif
Visibility.h
RKCartesianDistance::Scalar
double Scalar
Definition: RKCartesianDistance.h:16
Basic3DVector.h
CartesianStateAdaptor.h
alignCSCRings.s
s
Definition: alignCSCRings.py:92
RKSmallVector
ROOT::Math::SVector< T, N > RKSmallVector
Definition: RKSmallVector.h:13
b
double b
Definition: hdecay.h:118
RKCartesianDistance
Estimator of the distance between two state vectors, e.g. for convergence test.
Definition: RKCartesianDistance.h:14
a
double a
Definition: hdecay.h:119
RKCartesianDistance::Vector
RKSmallVector< double, 6 > Vector
Definition: RKCartesianDistance.h:17
dso_internal
#define dso_internal
Definition: Visibility.h:13
RKCartesianDistance::~RKCartesianDistance
~RKCartesianDistance() override
Definition: RKCartesianDistance.h:19
CartesianStateAdaptor
Definition: CartesianStateAdaptor.h:8
RKDistance.h
mag
T mag() const
The vector magnitude. Equivalent to sqrt(vec.mag2())
Definition: Basic3DVectorLD.h:127
RKSmallVector.h
RKCartesianDistance::operator()
Scalar operator()(const Vector &rka, const Vector &rkb, const Scalar &s) const override
Definition: RKCartesianDistance.h:21
RKDistance
Definition: RKDistance.h:8