Relativistic Kinematics (RK)
This package provides a C++ double precision implementation of several basic geometric entities and transformations: points in 3d, directions in 3d (unit vectors), 3-vectors, points in 4d, 4-vectors, rotations, linear transformations, and boosts. The main purpose of the package is representing 4-momenta of relativistic particles and related formulae. The package implementation differs from other kinematic libraries in several important respects:
Unfortunately, the improvements in the numerical accuracy and code speed do not come without a price. In particular, due to a representation which memoizes particle masses, space-like 4-vectors are "second class" objects, and they are not treated equally with their time-like and light-like counterparts. Although space-like 4-vectors can participate in normal vector arithmetic operations, they can not be boosted and their masses can not be evaluated. This limitation will rarely be a problem for a typical HEP-related calculation, but you should be aware of it when you decide whether this package is a right tool for your job.
is no separate manual, but the header files are well-commented, and the
names of classes and functions are reasonably intuitive. After
installing the package, include "rk/rk.h" in your program if you
perform 4-vector calculations, or "rk/geom3.hh" if 3d geometry is all
you need. For general Lorentz transformations (in case you need to combine rotations and boosts or to combine several boosts into one operation) include "rk/LT.hh". If you need to read/write your objects to disk, the file "rk/rkIO.h" interfaces RK classes to Geners serialization
facilities. Geners is needed for I/O only. If you do not need I/O, you
do not need to install Geners in order to compile and use RK.
Contact: Igor Volobouev