00001 #ifndef STAR_StTrackChair
00002 #define STAR_StTrackChair
00003 #include "TChair.h"
00004 #include "StHelixD.hh"
00005
00006 class StTrackChair : public TChair {
00007 private:
00008 UInt_t mR0;
00009 UInt_t mPhi0;
00010 UInt_t mZ0;
00011 UInt_t mPsi;
00012 UInt_t mTanl;
00013 UInt_t mInvpt;
00014 UInt_t mCurvature;
00015 UInt_t mLength;
00016 UInt_t mCharge;
00017 protected:
00018 StTrackChair() {;}
00019 public:
00020 static const Char_t *trackTableList[];
00021 StTrackChair(TTable *track);
00022 ~StTrackChair(){;}
00023 StHelixD *MakeHelix(Int_t i, float bField) const ;
00024 TDataSet* Instance() const {return TDataSet::Instance();}
00025 static StTrackChair *Instance(TTable *table);
00026 static Int_t IsTrack(TTable *table);
00027 Float_t R0(Int_t i) const;
00028 Float_t Z0(Int_t i) const;
00029 Float_t Phi0(Int_t i) const;
00030 Float_t Invpt(Int_t i) const;
00031 Float_t Curvature(Int_t i) const;
00032 Int_t Charge(Int_t i) const;
00033 Float_t Length(Int_t i) const;
00034 ClassDef(StTrackChair,0)
00035 };
00036
00037 inline Int_t StTrackChair::Charge(Int_t i) const{return *(Int_t *)GetOffset(At(i),mCharge); }
00038 inline Float_t StTrackChair::R0(Int_t i) const {return *(Float_t *)GetOffset(At(i),mR0); }
00039 inline Float_t StTrackChair::Z0(Int_t i) const {return *(Float_t *)GetOffset(At(i),mZ0); }
00040 inline Float_t StTrackChair::Phi0(Int_t i) const {return *(Float_t *)GetOffset(At(i),mPhi0); }
00041 inline Float_t StTrackChair::Invpt(Int_t i)const {return *(Float_t *)GetOffset(At(i),mInvpt); }
00042 inline Float_t StTrackChair::Curvature(Int_t i) const {return *(Float_t *)GetOffset(At(i),mCurvature); }
00043 inline Float_t StTrackChair::Length(Int_t i) const {return *(Float_t *)GetOffset(At(i),mLength); }
00044
00045 #endif
00046