00001 #ifndef Vertex_Parameter_H 00002 #define Vertex_Parameter_H 00003 00004 // 00005 // define the vertex parameter 00006 // 00007 // Author: K.L. He date 10/31/2005, created 00008 // 00009 // 00010 #include "CLHEP/Geometry/Point3D.h" 00011 #ifndef ENABLE_BACKWARDS_COMPATIBILITY 00012 typedef HepGeom::Point3D<double> HepPoint3D; 00013 #endif 00014 #include "CLHEP/Matrix/SymMatrix.h" 00015 #include "CLHEP/Matrix/Vector.h" 00016 using CLHEP::HepSymMatrix; 00017 using CLHEP::HepVector; 00018 class VertexParameter { 00019 00020 public: 00021 00022 VertexParameter(){ m_Evx = HepSymMatrix(3,0); m_vx=HepVector(3, 0);} 00023 ~VertexParameter(){;} 00024 00025 inline VertexParameter(const VertexParameter &); 00026 00027 inline void setVx(const HepPoint3D &vx); 00028 void setVx(const HepVector &vx) { m_vx = vx;} 00029 void setEvx(const HepSymMatrix &eVx) {m_Evx = eVx;} 00030 HepPoint3D vx() const{return HepPoint3D(m_vx[0], m_vx[1], m_vx[2]);} 00031 HepVector Vx() const{return m_vx;} 00032 HepVector x() const {return m_vx;} 00033 HepSymMatrix Evx() const {return m_Evx;} 00034 HepSymMatrix Ex() const {return m_Evx;} 00035 inline VertexParameter & operator = (const VertexParameter &); 00036 00037 private: 00038 00039 HepVector m_vx; // vertex point (x, y, z) 00040 HepSymMatrix m_Evx; // error matrix 00041 }; 00042 00043 inline VertexParameter::VertexParameter(const VertexParameter & vpar) { 00044 m_vx = vpar.m_vx; 00045 m_Evx = vpar.m_Evx; 00046 } 00047 00048 inline VertexParameter & VertexParameter::operator = (const VertexParameter & vpar) { 00049 m_vx = vpar.m_vx; 00050 m_Evx = vpar.m_Evx; 00051 return (*this); 00052 } 00053 00054 inline void VertexParameter::setVx(const HepPoint3D &vx) { 00055 m_vx[0] = vx.x(); 00056 m_vx[1] = vx.y(); 00057 m_vx[2] = vx.z(); 00058 } 00059 #endif 00060