00001
00002
00003 #ifndef STAR_StiForwardTrackMaker
00004 #define STAR_StiForwardTrackMaker
00005
00014 #ifndef StMaker_H
00015 #include "StMaker.h"
00016 #endif
00017 #include <vector>
00018 class StiToolkit;
00019 class StiKalmanTrack;
00020 class StPrimaryVertex;
00021
00022 class StiHitContainer;
00023 class StiTrackContainer;
00024 class StiLocalTrackSeedFinder;
00025 class StiDetectorContainer;
00026 class StiKalmanTrackFinder;
00027
00028 class StiForwardTrackMaker : public StMaker {
00029 private:
00030
00031
00032 int eveID;
00033
00034
00035 int mTotEve;
00036 int mTotMatchedSeeds;
00037 int mTotMatchedTracks;
00038
00039
00040 double mMaxTrkDcaRxy;
00041 double mMaxZdca;
00042 double mMinEta;
00043
00044
00045 StiToolkit *mToolkit;
00046 enum {mxHA=11};
00047 TH1F *hA[mxHA];
00048 class VertexV{public: float z,ez;};
00049 vector<VertexV> vertL;
00050 StiHitContainer* mAllHits;
00051 StiHitContainer* mForwardHits;
00052 StiTrackContainer* mTrackSeeds;
00053 StiLocalTrackSeedFinder* mSeedGenerator;
00054 StiKalmanTrackFinder* mTrackFinder;
00055
00056
00057 void initHisto();
00058
00059 void getForwardHits(StiHitContainer* allHits, StiHitContainer* forwardHits, StiDetectorContainer* detector, double minEta);
00060
00061
00062 void buildTrackSeeds(const StiHitContainer* forwardHits, StiTrackContainer* trackSeeds, StiLocalTrackSeedFinder* seedGenerator);
00063
00064
00065 void extendTracks();
00066
00067
00068 void matchVertex(StiTrackContainer* tracks, vector<VertexV> &vertL, double &mMaxZdca, int &nV, TH1* h, int &totalMatched);
00069
00070 bool examineTrackDca(const StiKalmanTrack *track,float &zDca, float &ezDca, float &rxyDca);
00071
00072 public:
00073 StiForwardTrackMaker(const char *name="forwTrack");
00074 virtual ~StiForwardTrackMaker();
00075 virtual Int_t Init();
00076 virtual Int_t Make();
00077 Int_t MakeInSti();
00078 Int_t MakeAfterSti();
00079 virtual Int_t Finish();
00080 virtual void Clear(const char* opt);
00081 TObjArray * HList;
00082 void saveHisto(TString fname);
00083 void addVertex(float z, float ez);
00084
00085
00086
00087
00089 virtual const char *GetCVS() const {
00090 static const char cvs[]="Tag $Name: $ $Id: StiForwardTrackMaker.h,v 1.8 2007/07/12 19:27:21 fisyak Exp $ built "__DATE__" "__TIME__ ;
00091 return cvs;
00092 }
00093
00094 ClassDef(StiForwardTrackMaker,0)
00095 };
00096
00097 #endif
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124