29 #include "StThreeVector.hh"
30 #include "StThreeVectorF.hh"
49 enum StiDirection {kOutsideIn=0, kInsideOut};
63 enum StiTrackProperty {kCharge=0,
93 virtual int initialize(
const vector<StiHit*> &)=0;
96 virtual int fit (
int direction=kOutsideIn);
97 virtual bool find(
int direction=kOutsideIn);
98 virtual void reset()=0;
99 virtual void unset(){;}
100 virtual void reduce(){;}
101 virtual void getMomentum(
double p[3],
double e[6])
const =0;
102 virtual double getCurvature()
const=0;
103 virtual double getP()
const=0;
104 virtual double getPt()
const=0;
105 virtual double getRapidity()
const=0;
106 virtual double getPseudoRapidity()
const=0;
107 virtual double getPhi()
const=0;
108 virtual double getTanL()
const=0;
109 virtual double getDca(
const StiHit*)
const;
110 virtual double getDca()
const=0;
111 virtual double getDca2(
StiTrack *t)
const=0;
112 virtual double getDca3(
StiTrack *t)
const=0;
113 virtual int getPointCount (
int detectorId=0)
const=0;
114 virtual int getFitPointCount(
int detectorId=0)
const=0;
115 virtual int getGapCount()
const=0;
116 virtual int getMaxPointCount(
int detectorId=0)
const=0;
118 virtual UShort_t getSeedHitCount()
const =0;
119 virtual void setSeedHitCount(UShort_t c)=0;
120 virtual double getTrackLength()
const=0;
121 virtual vector<const StMeasuredPoint*> stHits()
const=0;
123 virtual double getMass()
const=0;
125 virtual int getCharge()
const=0;
127 virtual double getChi2()
const=0;
128 virtual double getChi2Max()
const=0;
129 virtual void setFlag(
int v)=0;
130 virtual int getFlag()
const=0;
131 virtual vector<StiHit*> getHits()=0;
133 virtual double getValue(
int key)
const;
134 int getId()
const {
return mId;}
135 void setId(
int id) {mId=id;}
138 virtual int refit()=0;
139 virtual int refitL()=0;
145 friend ostream& operator<<(ostream& os,
const StiTrack&
track);
152 inline double StiTrack::getDca(
const StiHit*)
const
Abstract definition of a Track.
An abstract class defining the interface to the track finder.