Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
ROOT::Math::Impl Namespace Reference

Classes

class  Plane3D
 Class describing a geometrical plane in 3 dimensions. More...
 
class  Transform3D
 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  Translation3D
 Class describing a 3 dimensional translation. More...
 

Functions

template<typename Scalar >
Scalar Eta_FromRhoZ (Scalar rho, Scalar z)
 Calculate eta given rho and zeta.
 
template<typename Scalar >
Scalar Eta_FromTheta (Scalar theta, Scalar r)
 Implementation of eta from -log(tan(theta/2)).
 
template<class T >
Transform3D< T > operator* (const AxisAngle &r, const Transform3D< T > &t)
 
template<class T >
Transform3D< T > operator* (const AxisAngle &r, const Translation3D< T > &t)
 
template<class T >
Transform3D< T > operator* (const EulerAngles &r, const Transform3D< T > &t)
 
template<class T >
Transform3D< T > operator* (const EulerAngles &r, const Translation3D< T > &t)
 
template<class T >
Transform3D< T > operator* (const Quaternion &r, const Transform3D< T > &t)
 
template<class T >
Transform3D< T > operator* (const Quaternion &r, const Translation3D< T > &t)
 
template<class T >
Transform3D< T > operator* (const Rotation3D &r, const Transform3D< T > &t)
 combine a rotation and a transformation to give a transform3d First the transformation then the rotation
 
template<class T >
Transform3D< T > operator* (const Rotation3D &r, const Translation3D< T > &t)
 combine a translation and a rotation to give a transform3d First the translation then the rotation
 
template<class T >
Transform3D< T > operator* (const RotationX &r, const Transform3D< T > &t)
 
template<class T >
Transform3D< T > operator* (const RotationX &r, const Translation3D< T > &t)
 
template<class T >
Transform3D< T > operator* (const RotationY &r, const Transform3D< T > &t)
 
template<class T >
Transform3D< T > operator* (const RotationY &r, const Translation3D< T > &t)
 
template<class T >
Transform3D< T > operator* (const RotationZ &r, const Transform3D< T > &t)
 
template<class T >
Transform3D< T > operator* (const RotationZ &r, const Translation3D< T > &t)
 
template<class T >
Transform3D< T > operator* (const RotationZYX &r, const Transform3D< T > &t)
 
template<class T >
Transform3D< T > operator* (const RotationZYX &r, const Translation3D< T > &t)
 
template<class T >
Transform3D< T > operator* (const Transform3D< T > &t, const AxisAngle &r)
 
template<class T >
Transform3D< T > operator* (const Transform3D< T > &t, const EulerAngles &r)
 
template<class T >
Transform3D< T > operator* (const Transform3D< T > &t, const Quaternion &r)
 
template<class T >
Transform3D< T > operator* (const Transform3D< T > &t, const Rotation3D &r)
 combine a transformation and a rotation to give a transform3d First the rotation then the transform3D
 
template<class T >
Transform3D< T > operator* (const Transform3D< T > &t, const RotationX &r)
 
template<class T >
Transform3D< T > operator* (const Transform3D< T > &t, const RotationY &r)
 
template<class T >
Transform3D< T > operator* (const Transform3D< T > &t, const RotationZ &r)
 
template<class T >
Transform3D< T > operator* (const Transform3D< T > &t, const RotationZYX &r)
 
template<class T >
Transform3D< T > operator* (const Transform3D< T > &t, const Translation3D< T > &d)
 combine a transformation and a translation to give a transform3d First the translation then the transform3D
 
template<class T >
Transform3D< T > operator* (const Translation3D< T > &d, const Transform3D< T > &t)
 combine a translation and a transformation to give a transform3d First the transformation then the translation
 
template<class T >
Transform3D< T > operator* (const Translation3D< T > &t, const AxisAngle &r)
 
template<class T >
Transform3D< T > operator* (const Translation3D< T > &t, const EulerAngles &r)
 
template<class T >
Transform3D< T > operator* (const Translation3D< T > &t, const Quaternion &r)
 
template<class T >
Transform3D< T > operator* (const Translation3D< T > &t, const Rotation3D &r)
 combine a rotation and a translation to give a transform3d First a rotation then the translation
 
template<class T >
Transform3D< T > operator* (const Translation3D< T > &t, const RotationX &r)
 
template<class T >
Transform3D< T > operator* (const Translation3D< T > &t, const RotationY &r)
 
template<class T >
Transform3D< T > operator* (const Translation3D< T > &t, const RotationZ &r)
 
template<class T >
Transform3D< T > operator* (const Translation3D< T > &t, const RotationZYX &r)
 
template<typename T >
std::ostream & operator<< (std::ostream &os, const Plane3D< T > &p)
 Stream Output and Input.
 
template<class T >
std::ostream & operator<< (std::ostream &os, const Transform3D< T > &t)
 print the 12 components of the Transform3D
 
template<class T >
std::ostream & operator<< (std::ostream &os, const Translation3D< T > &t)
 

Function Documentation

◆ Eta_FromRhoZ()

template<typename Scalar >
Scalar ROOT::Math::Impl::Eta_FromRhoZ ( Scalar rho,
Scalar z )
inline

Calculate eta given rho and zeta.

This formula is faster than the standard calculation (below) from log(tan(theta/2) but one has to be careful when rho is much smaller than z (large eta values) Formula is eta = log( zs + sqrt(zs^2 + 1) ) where zs = z/rho

For large value of z_scaled (tan(theta) ) one can approximate the sqrt via a Taylor expansion We do the approximation of the sqrt if the numerical error is of the same order of second term of the sqrt.expansion: eps > 1/zs^4 => zs > 1/(eps^0.25)

When rho == 0 we use etaMax (see definition in etaMax.h)

Definition at line 48 of file eta.h.

◆ Eta_FromTheta()

template<typename Scalar >
Scalar ROOT::Math::Impl::Eta_FromTheta ( Scalar theta,
Scalar r )
inline

Implementation of eta from -log(tan(theta/2)).

This is convenient when theta is already known (for example in a polar coorindate system)

Definition at line 85 of file eta.h.

◆ operator*() [1/34]

template<class T >
Transform3D< T > ROOT::Math::Impl::operator* ( const AxisAngle & r,
const Transform3D< T > & t )
inline

Definition at line 1278 of file Transform3D.h.

◆ operator*() [2/34]

template<class T >
Transform3D< T > ROOT::Math::Impl::operator* ( const AxisAngle & r,
const Translation3D< T > & t )
inline

Definition at line 1100 of file Transform3D.h.

◆ operator*() [3/34]

template<class T >
Transform3D< T > ROOT::Math::Impl::operator* ( const EulerAngles & r,
const Transform3D< T > & t )
inline

Definition at line 1272 of file Transform3D.h.

◆ operator*() [4/34]

template<class T >
Transform3D< T > ROOT::Math::Impl::operator* ( const EulerAngles & r,
const Translation3D< T > & t )
inline

Definition at line 1106 of file Transform3D.h.

◆ operator*() [5/34]

template<class T >
Transform3D< T > ROOT::Math::Impl::operator* ( const Quaternion & r,
const Transform3D< T > & t )
inline

Definition at line 1284 of file Transform3D.h.

◆ operator*() [6/34]

template<class T >
Transform3D< T > ROOT::Math::Impl::operator* ( const Quaternion & r,
const Translation3D< T > & t )
inline

Definition at line 1112 of file Transform3D.h.

◆ operator*() [7/34]

template<class T >
Transform3D< T > ROOT::Math::Impl::operator* ( const Rotation3D & r,
const Transform3D< T > & t )
inline

combine a rotation and a transformation to give a transform3d First the transformation then the rotation

Definition at line 1243 of file Transform3D.h.

◆ operator*() [8/34]

template<class T >
Transform3D< T > ROOT::Math::Impl::operator* ( const Rotation3D & r,
const Translation3D< T > & t )
inline

combine a translation and a rotation to give a transform3d First the translation then the rotation

Definition at line 1071 of file Transform3D.h.

◆ operator*() [9/34]

template<class T >
Transform3D< T > ROOT::Math::Impl::operator* ( const RotationX & r,
const Transform3D< T > & t )
inline

Definition at line 1248 of file Transform3D.h.

◆ operator*() [10/34]

template<class T >
Transform3D< T > ROOT::Math::Impl::operator* ( const RotationX & r,
const Translation3D< T > & t )
inline

Definition at line 1076 of file Transform3D.h.

◆ operator*() [11/34]

template<class T >
Transform3D< T > ROOT::Math::Impl::operator* ( const RotationY & r,
const Transform3D< T > & t )
inline

Definition at line 1254 of file Transform3D.h.

◆ operator*() [12/34]

template<class T >
Transform3D< T > ROOT::Math::Impl::operator* ( const RotationY & r,
const Translation3D< T > & t )
inline

Definition at line 1082 of file Transform3D.h.

◆ operator*() [13/34]

template<class T >
Transform3D< T > ROOT::Math::Impl::operator* ( const RotationZ & r,
const Transform3D< T > & t )
inline

Definition at line 1260 of file Transform3D.h.

◆ operator*() [14/34]

template<class T >
Transform3D< T > ROOT::Math::Impl::operator* ( const RotationZ & r,
const Translation3D< T > & t )
inline

Definition at line 1088 of file Transform3D.h.

◆ operator*() [15/34]

template<class T >
Transform3D< T > ROOT::Math::Impl::operator* ( const RotationZYX & r,
const Transform3D< T > & t )
inline

Definition at line 1266 of file Transform3D.h.

◆ operator*() [16/34]

template<class T >
Transform3D< T > ROOT::Math::Impl::operator* ( const RotationZYX & r,
const Translation3D< T > & t )
inline

Definition at line 1094 of file Transform3D.h.

◆ operator*() [17/34]

template<class T >
Transform3D< T > ROOT::Math::Impl::operator* ( const Transform3D< T > & t,
const AxisAngle & r )
inline

Definition at line 1226 of file Transform3D.h.

◆ operator*() [18/34]

template<class T >
Transform3D< T > ROOT::Math::Impl::operator* ( const Transform3D< T > & t,
const EulerAngles & r )
inline

Definition at line 1221 of file Transform3D.h.

◆ operator*() [19/34]

template<class T >
Transform3D< T > ROOT::Math::Impl::operator* ( const Transform3D< T > & t,
const Quaternion & r )
inline

Definition at line 1231 of file Transform3D.h.

◆ operator*() [20/34]

template<class T >
Transform3D< T > ROOT::Math::Impl::operator* ( const Transform3D< T > & t,
const Rotation3D & r )
inline

combine a transformation and a rotation to give a transform3d First the rotation then the transform3D

Definition at line 1196 of file Transform3D.h.

◆ operator*() [21/34]

template<class T >
Transform3D< T > ROOT::Math::Impl::operator* ( const Transform3D< T > & t,
const RotationX & r )
inline

Definition at line 1201 of file Transform3D.h.

◆ operator*() [22/34]

template<class T >
Transform3D< T > ROOT::Math::Impl::operator* ( const Transform3D< T > & t,
const RotationY & r )
inline

Definition at line 1206 of file Transform3D.h.

◆ operator*() [23/34]

template<class T >
Transform3D< T > ROOT::Math::Impl::operator* ( const Transform3D< T > & t,
const RotationZ & r )
inline

Definition at line 1211 of file Transform3D.h.

◆ operator*() [24/34]

template<class T >
Transform3D< T > ROOT::Math::Impl::operator* ( const Transform3D< T > & t,
const RotationZYX & r )
inline

Definition at line 1216 of file Transform3D.h.

◆ operator*() [25/34]

template<class T >
Transform3D< T > ROOT::Math::Impl::operator* ( const Transform3D< T > & t,
const Translation3D< T > & d )
inline

combine a transformation and a translation to give a transform3d First the translation then the transform3D

Definition at line 1172 of file Transform3D.h.

◆ operator*() [26/34]

template<class T >
Transform3D< T > ROOT::Math::Impl::operator* ( const Translation3D< T > & d,
const Transform3D< T > & t )
inline

combine a translation and a transformation to give a transform3d First the transformation then the translation

Definition at line 1183 of file Transform3D.h.

◆ operator*() [27/34]

template<class T >
Transform3D< T > ROOT::Math::Impl::operator* ( const Translation3D< T > & t,
const AxisAngle & r )
inline

Definition at line 1160 of file Transform3D.h.

◆ operator*() [28/34]

template<class T >
Transform3D< T > ROOT::Math::Impl::operator* ( const Translation3D< T > & t,
const EulerAngles & r )
inline

Definition at line 1150 of file Transform3D.h.

◆ operator*() [29/34]

template<class T >
Transform3D< T > ROOT::Math::Impl::operator* ( const Translation3D< T > & t,
const Quaternion & r )
inline

Definition at line 1155 of file Transform3D.h.

◆ operator*() [30/34]

template<class T >
Transform3D< T > ROOT::Math::Impl::operator* ( const Translation3D< T > & t,
const Rotation3D & r )
inline

combine a rotation and a translation to give a transform3d First a rotation then the translation

Definition at line 1125 of file Transform3D.h.

◆ operator*() [31/34]

template<class T >
Transform3D< T > ROOT::Math::Impl::operator* ( const Translation3D< T > & t,
const RotationX & r )
inline

Definition at line 1130 of file Transform3D.h.

◆ operator*() [32/34]

template<class T >
Transform3D< T > ROOT::Math::Impl::operator* ( const Translation3D< T > & t,
const RotationY & r )
inline

Definition at line 1135 of file Transform3D.h.

◆ operator*() [33/34]

template<class T >
Transform3D< T > ROOT::Math::Impl::operator* ( const Translation3D< T > & t,
const RotationZ & r )
inline

Definition at line 1140 of file Transform3D.h.

◆ operator*() [34/34]

template<class T >
Transform3D< T > ROOT::Math::Impl::operator* ( const Translation3D< T > & t,
const RotationZYX & r )
inline

Definition at line 1145 of file Transform3D.h.

◆ operator<<() [1/3]

template<typename T >
std::ostream & ROOT::Math::Impl::operator<< ( std::ostream & os,
const Plane3D< T > & p )

Stream Output and Input.

Definition at line 296 of file Plane3D.h.

◆ operator<<() [2/3]

template<class T >
std::ostream & ROOT::Math::Impl::operator<< ( std::ostream & os,
const Transform3D< T > & t )

print the 12 components of the Transform3D

Definition at line 1298 of file Transform3D.h.

◆ operator<<() [3/3]

template<class T >
std::ostream & ROOT::Math::Impl::operator<< ( std::ostream & os,
const Translation3D< T > & t )

Definition at line 294 of file Translation3D.h.