#ifndef _Track_H #define _Track_H /** @class Track Track * * Define a Track as the combination of (x,y,z) points * * @author A.Karavdina * @date 04/04/2012 */ using namespace std; class Track{ public: Track(); virtual ~Track(){} void setEventnum(int eventnum); void setTracknum(int tracknum); void addSensor(int &newsen){ m_sensors.push_back(newsen);} void addHit(double xp, double errxp,double yp, double erryp, double zp, double errzp, int senID); int getEventnum() const; int getTracknum() const; std::vector getSensors(){return m_sensors;} // std::vector getXhit(){return m_xHit;} // std::vector getYhit(){return m_yHit;} // std::vector getZhit(){return m_zHit;} std::vector getHit(int hitNum);//obtain coordinates for hit #hitNum private: std::vector m_xHit; // x-cootdinate of hits std::vector m_yHit; // y-cootdinate of hits std::vector m_zHit; // y-cootdinate of hits std::vector m_errxHit; // x-cootdinate of hits std::vector m_erryHit; // y-cootdinate of hits std::vector m_errzHit; // y-cootdinate of hits int m_tracknum;// number of track std::vector m_sensors; //fired sensors by this track }; #include typedef std::vector Tracks; /* // constructer */ inline Track::Track():m_xHit(0), m_yHit(0), m_zHit(0),m_errxHit(0), m_erryHit(0), m_errzHit(0),m_sensors(0){} inline void Track::setTracknum(int tracknum) { m_tracknum = tracknum ; } inline int Track::getTracknum() const{ return m_tracknum; } inline void Track::addHit(double xp, double errxp,double yp, double erryp, double zp, double errzp, int senID){ // cout<<" Track::addHit from sensor "< Track::getHit(int hitNum){ std::vector hitcoord; double xhit = m_xHit[hitNum]; hitcoord.push_back(xhit); double errxhit = m_errxHit[hitNum]; hitcoord.push_back(errxhit); double yhit = m_yHit[hitNum]; hitcoord.push_back(yhit); double erryhit = m_erryHit[hitNum]; hitcoord.push_back(erryhit); double zhit = m_zHit[hitNum]; hitcoord.push_back(zhit); double errzhit = m_errzHit[hitNum]; hitcoord.push_back(errzhit); return hitcoord; } #endif // _Track_H