00001
00002 #ifndef KERNEL_SOLIDINTERSECTIONS_H
00003 #define KERNEL_SOLIDINTERSECTIONS_H 1
00004
00005
00006
00014 namespace Gaudi {
00015
00016 namespace Math
00017 {
00018
00028 template <typename ITERATOR, typename aLine>
00029 unsigned int intersectionLineSphere( const aLine& line,
00030 const double radius2,
00031 ITERATOR out );
00032
00042 template <typename ITERATOR, typename aLine>
00043 unsigned int intersectionLineCylinder( const aLine& line,
00044 const double radius2,
00045 ITERATOR out );
00046
00047
00057 template <typename ITERATOR, typename aLine>
00058 unsigned int intersectionLinePlaneX( const aLine& line,
00059 const double X,
00060 ITERATOR out );
00061
00071 template <typename ITERATOR, typename aLine>
00072 unsigned int intersectionLinePlaneY( const aLine& line,
00073 const double Y,
00074 ITERATOR out );
00075
00085 template <typename ITERATOR, typename aLine>
00086 unsigned int intersectionLinePlaneZ( const aLine& line,
00087 const double Z,
00088 ITERATOR out );
00089
00090
00101 template <typename ITERATOR, typename aLine>
00102 unsigned int intersectionLinePlanePhi( const aLine& line,
00103 const double Phi,
00104 ITERATOR out );
00105
00106
00116 template <typename ITERATOR, typename aLine>
00117 unsigned int intersectionLineCone( const aLine& line,
00118 const double Theta,
00119 ITERATOR out );
00120
00121
00122
00123
00124 };
00125
00126 };
00127
00128 #endif // KERNEL_SOLIDINTERSECTIONS_H