00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef MUC_GEOMETRON_H
00013 #define MUC_GEOMETRON_H
00014
00015 #include <CLHEP/Vector/ThreeVector.h>
00016 #include <CLHEP/Geometry/Point3D.h>
00017 #include <CLHEP/Geometry/Plane3D.h>
00018
00019 #ifndef ENABLE_BACKWARDS_COMPATIBILITY
00020 typedef HepGeom::Point3D<double> HepPoint3D;
00021 #endif
00022 #ifndef ENABLE_BACKWARDS_COMPATIBILITY
00023 typedef HepGeom::Vector3D<double> HepVector3D;
00024 #endif
00025 #ifndef ENABLE_BACKWARDS_COMPATIBILITY
00026 typedef HepGeom::Plane3D<double> HepPlane3D;
00027 #endif
00028
00029 using namespace CLHEP;
00030
00038 class MucGeometron
00039 {
00040 public:
00041
00043 MucGeometron();
00044
00046 ~MucGeometron();
00047
00049 bool GetIntersectionLinePlane(const HepPoint3D pLine,
00050 const Hep3Vector vectLine,
00051 const HepPlane3D plane,
00052 HepPoint3D& cross);
00053
00054 bool GetIntersectionLinePlaneWithSigma(const HepPoint3D pLine,
00055 const Hep3Vector vectLine,
00056 const HepPoint3D pLineSigma,
00057 const Hep3Vector vectLineSigma,
00058 const HepPlane3D plane,
00059 HepPoint3D& cross,
00060 HepPoint3D& crossSigma);
00061
00062
00063 bool GetIntersectionQuadPlaneLocal(const int part,
00064 const int orient,
00065 const float a,
00066 const float b,
00067 const float c,
00068 const HepPlane3D plane,
00069 HepPoint3D& cross1,
00070 HepPoint3D& cross2);
00071
00072
00073 bool GetIntersectionQuadPlane(const HepPoint3D pLine,
00074 const float vy,
00075 const float y0,
00076 const float a,
00077 const float b,
00078 const float c,
00079 const HepPlane3D plane,
00080 HepPoint3D& cross1,
00081 HepPoint3D& cross2);
00082
00083
00084 private:
00085
00086 };
00087
00088 #endif