00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef StHltTrack_hh
00018 #define StHltTrack_hh
00019
00020 #include <Stiostream.h>
00021 #include "StObject.h"
00022 #include "StArray.h"
00023 #include "StEnumerations.h"
00024
00025 class StHltTrackNode;
00026
00027 class StHltTrack : public StObject {
00028 public:
00029 StHltTrack();
00030 virtual ~StHltTrack();
00031
00032 StTrackType type() const;
00033 int id() const;
00034 unsigned int flag() const;
00035 int innerMostRow() const;
00036 int outerMostRow() const;
00037 unsigned int nHits() const;
00038 unsigned int ndedx() const;
00039 int q() const;
00040 float chi2(int) const;
00041 float dedx() const;
00042 float pt() const;
00043 float phi0() const;
00044 float psi() const;
00045 float r0() const;
00046 float tanl() const;
00047 float z0() const;
00048 float length() const;
00049 float dpt() const;
00050 float dpsi() const;
00051 float dz0() const;
00052 float dtanl() const;
00053
00054 StHltTrackNode* trackNode();
00055 const StHltTrackNode* trackNode() const;
00056
00057 void setType(StTrackType);
00058 void setId(int);
00059 void setFlag(unsigned short);
00060 void setInnerMostRow(char);
00061 void setOuterMostRow(char);
00062 void setNHits(unsigned char);
00063 void setNDedx(unsigned char);
00064 void setQ(char);
00065 void setChi2(int,float);
00066 void setDedx(float);
00067 void setPt(float);
00068 void setPhi0(float);
00069 void setPsi(float);
00070 void setR0(float);
00071 void setTanl(float);
00072 void setZ0(float);
00073 void setLength(float);
00074 void setDpt(float);
00075 void setDpsi(float);
00076 void setDz0(float);
00077 void setDtanl(float);
00078
00079 void setTrackNode(StHltTrackNode*);
00080
00081 protected:
00082 StTrackType mType;
00083 int mId;
00084 unsigned short mFlag;
00085 char mInnerMostRow;
00086 char mOuterMostRow;
00087 unsigned char mNHits;
00088 unsigned char mNDedx;
00089 char mQ;
00090 float mChi2[2];
00091 float mDedx;
00092 float mPt;
00093 float mPhi0;
00094 float mPsi;
00095 float mR0;
00096 float mTanl;
00097 float mZ0;
00098 float mLength;
00099 float mDpt;
00100 float mDpsi;
00101 float mDz0;
00102 float mDtanl;
00103
00104 #ifdef __CINT__
00105 StObjLink mTrackNode;
00106 #else
00107 StLink<StHltTrackNode> mTrackNode;
00108 #endif //__CINT__
00109
00110 ClassDef(StHltTrack,1)
00111 };
00112
00113 inline StTrackType StHltTrack::type() const {return mType;}
00114 inline int StHltTrack::id() const {return mId;}
00115 inline unsigned int StHltTrack::flag() const {return mFlag;}
00116 inline int StHltTrack::innerMostRow() const {return mInnerMostRow;}
00117 inline int StHltTrack::outerMostRow() const {return mOuterMostRow;}
00118 inline unsigned int StHltTrack::nHits() const {return mNHits;}
00119 inline unsigned int StHltTrack::ndedx() const {return mNDedx;}
00120 inline int StHltTrack::q() const {return mQ;}
00121 inline float StHltTrack::chi2(int i) const { if (i==0 || i==1) return mChi2[i]; else return 0;}
00122 inline float StHltTrack::dedx() const {return mDedx;}
00123 inline float StHltTrack::pt() const {return mPt;}
00124 inline float StHltTrack::phi0() const {return mPhi0;}
00125 inline float StHltTrack::psi() const {return mPsi;}
00126 inline float StHltTrack::r0() const {return mR0;}
00127 inline float StHltTrack::tanl() const {return mTanl;}
00128 inline float StHltTrack::z0() const {return mZ0;}
00129 inline float StHltTrack::length() const {return mLength;}
00130 inline float StHltTrack::dpt() const {return mDpt;}
00131 inline float StHltTrack::dpsi() const {return mDpsi;}
00132 inline float StHltTrack::dz0() const {return mDz0;}
00133 inline float StHltTrack::dtanl() const {return mDtanl;}
00134
00135 inline StHltTrackNode* StHltTrack::trackNode() {return mTrackNode;}
00136 inline const StHltTrackNode* StHltTrack::trackNode() const {return mTrackNode;}
00137
00138
00139 ostream& operator<<(ostream&, const StHltTrack&);
00140
00141 #endif
00142
00143
00144
00145
00146
00147
00148