Logo ROOT  
Reference Guide
GenVector

Generic 2D, 3D and 4D vectors classes and their transformations (rotations).

GenVector, is a new package intended to represent 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 parameter 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

Packaging

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.

References

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

Namespaces

namespace  ROOT::Math::VectorUtil
 Global Helper functions for generic Vector classes.
 

Classes

class  ROOT::Math::AxisAngle
 AxisAngle class describing rotation represented with direction axis (3D Vector) and an angle of rotation around that axis. More...
 
class  ROOT::Math::Boost
 Lorentz boost class with the (4D) transformation represented internally by a 4x4 orthosymplectic matrix. More...
 
class  ROOT::Math::BoostX
 Class representing a Lorentz Boost along the X axis, by beta. More...
 
class  ROOT::Math::BoostY
 Class representing a Lorentz Boost along the Y axis, by beta. More...
 
class  ROOT::Math::BoostZ
 Class representing a Lorentz Boost along the Z axis, by beta. More...
 
class  ROOT::Math::Cartesian2D< T >
 Class describing a 2D cartesian coordinate system (x, y coordinates) More...
 
class  ROOT::Math::Cartesian3D< T >
 Class describing a 3D cartesian coordinate system (x, y, z coordinates) More...
 
class  ROOT::Math::Cylindrical3D< T >
 Class describing a cylindrical coordinate system based on rho, z and phi. More...
 
class  ROOT::Math::CylindricalEta3D< T >
 Class describing a cylindrical coordinate system based on eta (pseudorapidity) instead of z. More...
 
class  ROOT::Math::DefaultCoordinateSystemTag
 DefaultCoordinateSystemTag Default tag for identifying any coordinate system. More...
 
class  ROOT::Math::DisplacementVector2D< CoordSystem, Tag >
 Class describing a generic displacement vector in 2 dimensions. More...
 
class  ROOT::Math::DisplacementVector3D< CoordSystem, Tag >
 Class describing a generic displacement vector in 3 dimensions. More...
 
class  ROOT::Math::EulerAngles
 EulerAngles class describing rotation as three angles (Euler Angles). More...
 
class  ROOT::Math::GlobalCoordinateSystemTag
 Tag for identifying vectors based on a global coordinate system. More...
 
class  ROOT::Math::LocalCoordinateSystemTag
 Tag for identifying vectors based on a local coordinate system. More...
 
class  ROOT::Math::LorentzRotation
 Lorentz transformation class with the (4D) transformation represented by a 4x4 orthosymplectic matrix. More...
 
class  ROOT::Math::LorentzVector< CoordSystem >
 Class describing a generic LorentzVector in the 4D space-time, using the specified coordinate system for the spatial vector part. More...
 
class  ROOT::Math::Impl::Plane3D< T >
 Class describing a geometrical plane in 3 dimensions. More...
 
class  ROOT::Math::Polar2D< T >
 Class describing a polar 2D coordinate system based on r and phi Phi is restricted to be in the range [-PI,PI) More...
 
class  ROOT::Math::Polar3D< T >
 Class describing a polar coordinate system based on r, theta and phi Phi is restricted to be in the range [-PI,PI) More...
 
class  ROOT::Math::PositionVector2D< CoordSystem, Tag >
 Class describing a generic position vector (point) in 2 dimensions. More...
 
class  ROOT::Math::PositionVector3D< CoordSystem, Tag >
 Class describing a generic position vector (point) in 3 dimensions. More...
 
class  ROOT::Math::PtEtaPhiE4D< ScalarType >
 Class describing a 4D cylindrical coordinate system using Pt , Phi, Eta and E (or rho, phi, eta , T) The metric used is (-,-,-,+). More...
 
class  ROOT::Math::PtEtaPhiM4D< ScalarType >
 Class describing a 4D cylindrical coordinate system using Pt , Phi, Eta and M (mass) The metric used is (-,-,-,+). More...
 
class  ROOT::Math::PxPyPzE4D< ScalarType >
 Class describing a 4D cartesian coordinate system (x, y, z, t coordinates) or momentum-energy vectors stored as (Px, Py, Pz, E). More...
 
class  ROOT::Math::PxPyPzM4D< ScalarType >
 Class describing a 4D coordinate system or momentum-energy vectors stored as (Px, Py, Pz, M). More...
 
class  ROOT::Math::Quaternion
 Rotation class with the (3D) rotation represented by a unit quaternion (u, i, j, k). More...
 
class  ROOT::Math::Rotation3D
 Rotation class with the (3D) rotation represented by a 3x3 orthogonal matrix. More...
 
class  ROOT::Math::RotationX
 Rotation class representing a 3D rotation about the X axis by the angle of rotation. More...
 
class  ROOT::Math::RotationY
 Rotation class representing a 3D rotation about the Y axis by the angle of rotation. More...
 
class  ROOT::Math::RotationZ
 Rotation class representing a 3D rotation about the Z axis by the angle of rotation. More...
 
class  ROOT::Math::RotationZYX
 Rotation class with the (3D) rotation represented by angles describing first a rotation of an angle phi (yaw) about the Z axis, followed by a rotation of an angle theta (pitch) about the Y axis, followed by a third rotation of an angle psi (roll) about the X axis. More...
 
class  ROOT::Math::Impl::Transform3D< T >
 Basic 3D Transformation class describing a rotation and then a translation The internal data are a 3D rotation data (represented as a 3x3 matrix) and a 3D vector data. More...
 
class  ROOT::Math::Impl::Translation3D< T >
 Class describing a 3 dimensional translation. More...