00001 00015 #ifndef VERTEX_HH 00016 #define VERTEX_HH 00017 00018 #include "data_base.hh" 00019 00020 namespace larlight { 00025 class vertex : public data_base { 00026 00027 public: 00028 00030 vertex(DATA::DATA_TYPE type=DATA::Vertex); 00031 00033 vertex(Double_t* xyz, 00034 Int_t id=DATA::INVALID_INT, 00035 DATA::DATA_TYPE type=DATA::Vertex); 00036 00038 vertex(const vertex &original) : data_base(original), 00039 fID(original.fID) 00040 {original.XYZ(fXYZ);} 00041 00043 virtual ~vertex(){} 00044 00046 virtual void clear_data(); 00047 00049 void XYZ(Double_t *xyz) const; 00050 Int_t ID() const { return fID; } 00051 Double_t X() const { return fXYZ[0]; } 00052 Double_t Y() const { return fXYZ[1]; } 00053 Double_t Z() const { return fXYZ[2]; } 00054 00055 private: 00056 00057 Double_t fXYZ[3]; 00058 Int_t fID; 00059 00061 ClassDef(vertex,1) 00063 00064 }; 00065 00070 class event_vertex : public std::vector<larlight::vertex>, 00071 public event_base { 00072 00073 public: 00074 00076 event_vertex(DATA::DATA_TYPE type=DATA::Vertex); 00077 00079 event_vertex(const event_vertex& original) : std::vector<larlight::vertex>(original), 00080 event_base(original) 00081 {} 00082 00084 ~event_vertex(){} 00085 00087 virtual void clear_data(){event_base::clear_data(); clear();} 00088 00089 private: 00090 00092 ClassDef(event_vertex,1) 00094 }; 00095 } 00096 #endif 00097 // end of doxygen group