Kinematics tools

From Charm-Tau Detector
Revision as of 21:56, 25 April 2020 by V.S.Vorobev (Talk | contribs)

Jump to: navigation, search

Event_selection_framework

Kinematic tools are defined in Common/Kinematics package. SCT kinematics classes are based on Eigen3 library. ROOT implementation of vectors and matrices is abandoned intentionally as too slow.


ThreeVector

| ThreeVector.h (contributors: D. Yakovlev, V. Vorobyev)

The ThreeVector class inherits from Eigen::Matrix<ftype, 1, 3>

template <typename ftype = double>
class ThreeVector : public Eigen::Matrix<ftype, 1, 3>

ThreeVector can be initialized with Cartesian or polar coordinates:

ThreeVector v1(x, y, z);
ThreeVector v2 = ThreeVector::fromRPhiCosth(r, phi, costh)

ThreeVecotor API compared with ROOT TVector3 API
Operation ThreeVector API TVector3 API
x component x(), px() X(), Px()
y component y(), py() Y(), Py()
z component z(), pz() Z(), Pz()
Transverse momentum pt() Pt(), Perp()
Norm norm() Mag()
Squared norm norm2(), squaredNorm() Mag2()
Rotation around x axis RotateX(double) RotateX (Double_t)
Rotation around y axis RotateY(double) RotateY (Double_t)
Rotation around z axis RotateZ(double) RotateZ (Double_t)

--V.S.Vorobev (talk) 21:53, 25 April 2020 (+07)

Personal tools