// Vector Doxygen doc page /** \page Vector Generic Vector for 2, 3 and 4 Dimensions @b 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 \ref index 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

@authors The %ROOT Math Library Team

@b Contact: */