GenVector Library

GenVector Library

GenVector, is a new package intended to prepresent vectors and their operations and transformations, such as rotations and Lorentz transformations, in 2, 3 and 4 dimensions. The 2D and 3D space are used to describe the geometry vectors and points, while the 4D space-time is used for physics vectors representing relativistic particles.
These 2D,3D and 4D vectors are different from vectors of the Linear Algebra package which describe generic N-dimensional vectors. Similar functionality is currently provided by the CLHEP Vector and Geometry packages and the ROOT Physics Vector classes (Tvector2, TVector3 and TLorentzVector). It is also re-uses concepts and ideas from the CMS Common Vector package.

In contrast to CLHEP or the ROOT physics libraries, GenVector provides class templates for modelling the vectors. There is a user-controlled freedom on how the vector is internally represented. This is expressed by a choice of coordinate system which is supplied as a template prameter when the vector is constructed. Furthermore each coordinate system is itself a template, so that the user can specify the underlying scalar type.
In more detail, the main characteristics of GenVector are:

Other main characteristics of the GenVector classes are:

Example of Usage

Additional Documentation

A more detailed description of all the GenVector classes is available in this document.


  1. CLHEP Vector package (User guide and reference doc)
  2. CLHEP Geometry package
  3. ROOT Physics Vector classes
  4. CMS Vector package

N.B.: For consulting the reference GenVector documentation it is strongly recommended to look at these online doc. The class documentation shown from the class links below is not complete, it is missing some template methods.

Last modified: Tue Jun 24 10:39:56 CEST 2008

Further Reading

LorentzVector Point3D Transformation Vector3D VectorPoint2D externalUsage vector

List of Classes

Class Index

Jump to

R ROOT::Math::C ROOT::Math::D ROOT::Math::Di ROOT::Math::DisplacementVector3D<ROOT::Math::P ROOT::Math::L ROOT::Math::P ROOT::Math::Po ROOT::Math::Pt ROOT::Math::Q ROOT::Math::T