Logo ROOT   6.08/07
Reference Guide
Generic Vector for 2, 3 and 4 Dimensions

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


This GenVector package is part of the ROOT Reference Documentation and it can be built as an independent package. A tar file can be downloaded from here.

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