Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
ROOT::ROOT_MATH_ARCH::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::ROOT_MATH_ARCH::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 50 of file eta.h.

◆ Eta_FromTheta()

template<typename Scalar >
Scalar ROOT::ROOT_MATH_ARCH::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 81 of file eta.h.

◆ operator*() [1/34]

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

Definition at line 1288 of file Transform3D.h.

◆ operator*() [2/34]

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

Definition at line 1113 of file Transform3D.h.

◆ operator*() [3/34]

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

Definition at line 1282 of file Transform3D.h.

◆ operator*() [4/34]

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

Definition at line 1119 of file Transform3D.h.

◆ operator*() [5/34]

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

Definition at line 1294 of file Transform3D.h.

◆ operator*() [6/34]

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

Definition at line 1125 of file Transform3D.h.

◆ operator*() [7/34]

template<class T >
Transform3D< T > ROOT::ROOT_MATH_ARCH::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 1253 of file Transform3D.h.

◆ operator*() [8/34]

template<class T >
Transform3D< T > ROOT::ROOT_MATH_ARCH::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 1084 of file Transform3D.h.

◆ operator*() [9/34]

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

Definition at line 1258 of file Transform3D.h.

◆ operator*() [10/34]

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

Definition at line 1089 of file Transform3D.h.

◆ operator*() [11/34]

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

Definition at line 1264 of file Transform3D.h.

◆ operator*() [12/34]

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

Definition at line 1095 of file Transform3D.h.

◆ operator*() [13/34]

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

Definition at line 1270 of file Transform3D.h.

◆ operator*() [14/34]

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

Definition at line 1101 of file Transform3D.h.

◆ operator*() [15/34]

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

Definition at line 1276 of file Transform3D.h.

◆ operator*() [16/34]

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

Definition at line 1107 of file Transform3D.h.

◆ operator*() [17/34]

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

Definition at line 1238 of file Transform3D.h.

◆ operator*() [18/34]

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

Definition at line 1233 of file Transform3D.h.

◆ operator*() [19/34]

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

Definition at line 1243 of file Transform3D.h.

◆ operator*() [20/34]

template<class T >
Transform3D< T > ROOT::ROOT_MATH_ARCH::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 1208 of file Transform3D.h.

◆ operator*() [21/34]

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

Definition at line 1213 of file Transform3D.h.

◆ operator*() [22/34]

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

Definition at line 1218 of file Transform3D.h.

◆ operator*() [23/34]

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

Definition at line 1223 of file Transform3D.h.

◆ operator*() [24/34]

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

Definition at line 1228 of file Transform3D.h.

◆ operator*() [25/34]

template<class T >
Transform3D< T > ROOT::ROOT_MATH_ARCH::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 1185 of file Transform3D.h.

◆ operator*() [26/34]

template<class T >
Transform3D< T > ROOT::ROOT_MATH_ARCH::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 1196 of file Transform3D.h.

◆ operator*() [27/34]

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

Definition at line 1173 of file Transform3D.h.

◆ operator*() [28/34]

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

Definition at line 1163 of file Transform3D.h.

◆ operator*() [29/34]

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

Definition at line 1168 of file Transform3D.h.

◆ operator*() [30/34]

template<class T >
Transform3D< T > ROOT::ROOT_MATH_ARCH::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 1138 of file Transform3D.h.

◆ operator*() [31/34]

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

Definition at line 1143 of file Transform3D.h.

◆ operator*() [32/34]

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

Definition at line 1148 of file Transform3D.h.

◆ operator*() [33/34]

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

Definition at line 1153 of file Transform3D.h.

◆ operator*() [34/34]

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

Definition at line 1158 of file Transform3D.h.

◆ operator<<() [1/3]

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

Stream Output and Input.

Definition at line 294 of file Plane3D.h.

◆ operator<<() [2/3]

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

print the 12 components of the Transform3D

Definition at line 1307 of file Transform3D.h.

◆ operator<<() [3/3]

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

Definition at line 292 of file Translation3D.h.