00001 #ifndef RootEventData_TEvtRecPrimaryVertex_H 00002 #define RootEventData_TEvtRecPrimaryVertex_H 00003 00004 #include <vector> 00005 #include "TObject.h" 00006 00007 class TEvtRecPrimaryVertex : public TObject { 00008 public: 00009 TEvtRecPrimaryVertex(); 00010 ~TEvtRecPrimaryVertex(); 00011 00012 Bool_t isValid() const {return m_isValid;} 00013 Int_t nTracks() const {return m_nTracks;} 00014 const std::vector<Int_t>& trackIdList() const {return m_trackIdList;} 00015 Double_t chi2() const {return m_chi2;} 00016 Int_t ndof() const {return m_ndof;} 00017 Int_t fitMethod() const {return m_fitMethod;} 00018 Double_t vertex(Int_t i) const {return m_vtx[i];} 00019 Double_t errorVertex(Int_t i) const {return m_Evtx[i];} 00020 00021 void setIsValid(Bool_t isValid) {m_isValid = isValid;} 00022 void setNTracks(Int_t nTracks) {m_nTracks = nTracks;} 00023 void setTrackIdList(const std::vector<Int_t>& trackIdList) {m_trackIdList = trackIdList;} 00024 void setChi2(Double_t chi2) {m_chi2 = chi2;} 00025 void setNdof(Int_t ndof) {m_ndof = ndof;} 00026 void setFitMethod(Int_t fitMethod) {m_fitMethod = fitMethod;} 00027 void setVertex(Double_t vtx[3]) { 00028 for (Int_t i = 0; i < 3; i++) m_vtx[i] = vtx[i]; 00029 } 00030 void setErrorVertex(Double_t Evtx[6]) { 00031 for (Int_t i = 0; i < 6; i++) m_Evtx[i] = Evtx[i]; 00032 } 00033 00034 private: 00035 Bool_t m_isValid; 00036 Int_t m_nTracks; //number of tracks contributing to vertex fitting 00037 std::vector<Int_t> m_trackIdList; // id list of tracks contributing to vertex fitting 00038 Double_t m_chi2; // chi square of vertex fitting 00039 Int_t m_ndof; // degree of freedom 00040 // for a fixed position => 2n; for unknown position => 2n-3; 00041 Int_t m_fitMethod; // vertex fitting algorithm 00042 // 0 => global method; 1 => kalman filter method; 00043 Double_t m_vtx[3]; // primary vertex position : (Vx, Vy, Vz) 00044 Double_t m_Evtx[6]; // error matrix of primary vertex 00045 00046 ClassDef(TEvtRecPrimaryVertex, 1) 00047 }; 00048 00049 #endif 00050