Kinematics tools

From Charm-Tau Detector
(Difference between revisions)
Jump to: navigation, search
(Created page with "Event_selection_framework Kinematic tools are defined in [https://git.inp.nsk.su/sctau/aurora/-/blob/master/Common/Kinematics/Kinematics| Common/Kinematics] package. SCT ...")
 
Line 14: Line 14:
 
</code>
 
</code>
  
ThreeVector can be initialized in Cartesian or polar coordinates:
+
ThreeVector can be initialized with Cartesian or polar coordinates:
  
 
<code>
 
<code>
Line 31: Line 31:
 
| z component || z(), pz() || Z(), Pz()
 
| z component || z(), pz() || Z(), Pz()
 
|-
 
|-
| Transverse momentum || pt() || Pt()
+
| Transverse momentum || pt() || Pt(), Perp()
 
|-
 
|-
 
| Norm || norm() || Mag()
 
| Norm || norm() || Mag()
 
|-
 
|-
 
| Squared norm || norm2(), squaredNorm() || Mag2()
 
| 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)
 
|}
 
|}
  
 
--[[User:V.S.Vorobev|V.S.Vorobev]] ([[User talk:V.S.Vorobev|talk]]) 21:53, 25 April 2020 (+07)
 
--[[User:V.S.Vorobev|V.S.Vorobev]] ([[User talk:V.S.Vorobev|talk]]) 21:53, 25 April 2020 (+07)

Revision as of 21:56, 25 April 2020

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