00001 // @(#)root/mathcore:$Id: Point3Dfwd.h 22516 2008-03-07 15:14:26Z moneta $ 00002 // Authors: W. Brown, M. Fischler, L. Moneta 2005 00003 00004 /********************************************************************** 00005 * * 00006 * Copyright (c) 2005 , LCG ROOT MathLib Team * 00007 * * 00008 * * 00009 **********************************************************************/ 00010 00011 // Header file Point3Dfwd 00012 // 00013 // Created by: Lorenzo Moneta at Mon May 30 18:12:14 2005 00014 // 00015 // Last update: Mon May 30 18:12:14 2005 00016 // 00017 #ifndef ROOT_Math_Point3Dfwd 00018 #define ROOT_Math_Point3Dfwd 1 00019 00020 // forward declareations of position vectors (Points) and type defs definitions 00021 00022 namespace ROOT { 00023 00024 namespace Math { 00025 00026 template<class CoordSystem, class Tag> class PositionVector3D; 00027 00028 template<typename T> class Cartesian3D; 00029 template<typename T> class Cylindrical3D; 00030 template<typename T> class CylindricalEta3D; 00031 template<typename T> class Polar3D; 00032 00033 class DefaultCoordinateSystemTag; 00034 00035 /** 00036 3D Point based on the cartesian coordinates x,y,z in double precision 00037 */ 00038 typedef PositionVector3D< Cartesian3D<double>, DefaultCoordinateSystemTag > XYZPoint; 00039 00040 /** 00041 3D Point based on the cartesian corrdinates x,y,z in single precision 00042 */ 00043 typedef PositionVector3D< Cartesian3D<float>, DefaultCoordinateSystemTag > XYZPointF; 00044 typedef XYZPoint XYZPointD; 00045 00046 /** 00047 3D Point based on the eta based cylindrical coordinates rho, eta, phi in double precision. 00048 */ 00049 typedef PositionVector3D< CylindricalEta3D<double>, DefaultCoordinateSystemTag > RhoEtaPhiPoint; 00050 /** 00051 3D Point based on the eta based cylindrical coordinates rho, eta, phi in single precision. 00052 */ 00053 typedef PositionVector3D< CylindricalEta3D<float>, DefaultCoordinateSystemTag > RhoEtaPhiPointF; 00054 typedef RhoEtaPhiPoint RhoEtaPhiPointD; 00055 00056 /** 00057 3D Point based on the polar coordinates rho, theta, phi in double precision. 00058 */ 00059 typedef PositionVector3D< Polar3D<double>, DefaultCoordinateSystemTag > Polar3DPoint; 00060 /** 00061 3D Point based on the polar coordinates rho, theta, phi in single precision. 00062 */ 00063 typedef PositionVector3D< Polar3D<float>, DefaultCoordinateSystemTag > Polar3DPointF; 00064 typedef Polar3DPoint Polar3DPointD; 00065 00066 /** 00067 3D Point based on the cylindrical coordinates rho, z, phi in double precision. 00068 */ 00069 typedef PositionVector3D< Cylindrical3D<double>, DefaultCoordinateSystemTag > RhoZPhiPoint; 00070 /** 00071 3D Point based on the cylindrical coordinates rho, z, phi in single precision. 00072 */ 00073 typedef PositionVector3D< Cylindrical3D<float>, DefaultCoordinateSystemTag > RhoZPhiPointF; 00074 typedef RhoZPhiPoint RhoZPhiPointD; 00075 00076 00077 } // end namespace Math 00078 00079 } // end namespace ROOT 00080 00081 00082 #endif /* ROOT_Math_Point3Dfwd */