00001
00013 #ifndef _RPC_PLANE_H_
00014 #define _RPC_PLANE_H_ 1
00015
00016 #include "CLHEP/Geometry/Point3D.h"
00017 #include "CLHEP/Geometry/Normal3D.h"
00018
00019 using namespace std;
00020
00021 class RpcPlane
00022 {
00023 public:
00024
00025 RpcPlane(double xUp, double xLow,
00026 double yUp, double yLow,
00027 double z);
00028
00029 virtual ~RpcPlane();
00030
00031 bool intersect(const HepGeom::Point3D<double> & linePoint, const HepGeom::Normal3D<double> & lineSlope,
00032 HepGeom::Point3D<double> & intersect );
00033
00034 double xUp() const { return m_xUp; }
00035 double xLow() const { return m_xLow; }
00036
00037 double yUp() const { return m_yUp; }
00038 double yLow() const { return m_yLow; }
00039
00040 double z() const { return m_z; }
00041
00042
00043 private:
00044
00045
00046
00047
00048
00049
00050
00051
00052
00054 double m_xUp,m_xLow;
00055 double m_yUp,m_yLow;
00056 double m_z;
00057
00058 };
00059
00060 std::ostream & operator<<(std::ostream & os, const RpcPlane & p);
00061
00062 #endif // _RPC_PLANE_H_
00063
00064