BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
Muc/MucGeomSvc/include/MucGeomSvc/MucGeometron.h
Go to the documentation of this file.
1//$id$
2//
3//$log$
4
5/*
6 * 2003/08/30 Zhengyun You Peking University
7 *
8 * 2004/09/09 Zhengyun You Peking University
9 * transplanted to Gaudi framework
10 */
11
12#ifndef MUC_GEOMETRON_H
13#define MUC_GEOMETRON_H
14
15#include <CLHEP/Geometry/Plane3D.h>
16#include <CLHEP/Geometry/Point3D.h>
17#include <CLHEP/Vector/ThreeVector.h>
18
19#ifndef ENABLE_BACKWARDS_COMPATIBILITY
20typedef HepGeom::Point3D<double> HepPoint3D;
21#endif
22#ifndef ENABLE_BACKWARDS_COMPATIBILITY
23typedef HepGeom::Vector3D<double> HepVector3D;
24#endif
25#ifndef ENABLE_BACKWARDS_COMPATIBILITY
26typedef HepGeom::Plane3D<double> HepPlane3D;
27#endif
28
29using namespace CLHEP;
30
31/**
32 * Class MucGeometron contains some geometry calculation for convenience.
33 *
34 * @author Zhengyun You \URL{mailto:youzy@pku.edu.cn}
35 *
36 */
37
38class MucGeometron {
39public:
40 /// Constructor.
42
43 /// Destructor.
45
46 /// Get intersection of a line and a plane.
47 bool GetIntersectionLinePlane( const HepPoint3D pLine, const Hep3Vector vectLine,
48 const HepPlane3D plane, HepPoint3D& cross );
49
50 bool GetIntersectionLinePlaneWithSigma( const HepPoint3D pLine, const Hep3Vector vectLine,
51 const HepPoint3D pLineSigma,
52 const Hep3Vector vectLineSigma,
53 const HepPlane3D plane, HepPoint3D& cross,
54 HepPoint3D& crossSigma );
55
56 bool GetIntersectionQuadPlaneLocal( const int part, // liangyt 2009.3.12
57 const int orient,
58 const float a, // y = a * x * x + b * x + c;
59 const float b, const float c, const HepPlane3D plane,
60 HepPoint3D& cross1, HepPoint3D& cross2 );
61
62 bool GetIntersectionQuadPlane( const HepPoint3D pLine, // liangyt 2007.4.9
63 const float vy, const float y0,
64 const float a, // y = a * x * x + b * x + c;
65 const float b, const float c, const HepPlane3D plane,
66 HepPoint3D& cross1, HepPoint3D& cross2 );
67
68private:
69};
70
71#endif /* MUC_GEOMETRON_H */
HepGeom::Vector3D< double > HepVector3D
HepGeom::Point3D< double > HepPoint3D
HepGeom::Plane3D< double > HepPlane3D
EvtVector3R cross(const EvtVector3R &p1, const EvtVector3R &p2)
HepGeom::Point3D< double > HepPoint3D
HepGeom::Plane3D< double > HepPlane3D
MucGeometron()
Constructor.
bool GetIntersectionQuadPlane(const HepPoint3D pLine, const float vy, const float y0, const float a, const float b, const float c, const HepPlane3D plane, HepPoint3D &cross1, HepPoint3D &cross2)
bool GetIntersectionLinePlane(const HepPoint3D pLine, const Hep3Vector vectLine, const HepPlane3D plane, HepPoint3D &cross)
Get intersection of a line and a plane.
bool GetIntersectionQuadPlaneLocal(const int part, const int orient, const float a, const float b, const float c, const HepPlane3D plane, HepPoint3D &cross1, HepPoint3D &cross2)
bool GetIntersectionLinePlaneWithSigma(const HepPoint3D pLine, const Hep3Vector vectLine, const HepPoint3D pLineSigma, const Hep3Vector vectLineSigma, const HepPlane3D plane, HepPoint3D &cross, HepPoint3D &crossSigma)
~MucGeometron()
Destructor.