00001 //StiMaker.h 00002 00003 #ifndef StiMaker_HH 00004 #define StiMaker_HH 00005 00006 #include <string> 00007 using std::string; 00008 00009 #include "StMaker.h" 00010 #include "StEvent/StEnumerations.h" 00011 #include "Sti/StiKalmanTrackFinder.h" 00012 #include "Sti/StiKalmanTrackFitter.h" 00013 00014 class TFile; 00015 class TTree; 00016 class StiPullEvent; 00017 class StEvent; 00018 class StiHit; 00019 class StiTrack; 00020 class StiStEventFiller; 00021 class StiTrackContainer; 00022 class StiTrackFinder; 00023 class StiKalmanTrackFinder; 00024 class StiKalmanTrackFitter; 00025 class StiKalmanTrackNode; 00026 class StiKalmanTrack; 00027 class StiTrackMerger; 00028 class StiToolkit; 00029 class StiVertexFinder; 00030 template<class FILTERED> class EditableFilter; 00031 00032 00033 class StiMaker : public StMaker 00034 { 00035 public: 00036 00037 StiMaker(const char* name = "Sti"); 00038 virtual ~StiMaker(); 00039 virtual void Clear(const char* opt=""); 00040 virtual Int_t Init(); 00041 Int_t InitDetectors(); 00042 Int_t InitPulls(); 00043 Int_t FillPulls(); 00044 virtual Int_t InitRun(int); 00045 virtual Int_t Make(); 00046 virtual Int_t MakeGlobalTracks(StEvent *event); 00047 virtual Int_t MakePrimaryTracks(StEvent *event); 00048 virtual Int_t Finish(); 00049 00050 virtual const char* GetCVS() const 00051 {static const char cvs[]="Tag $Name: $ $Id: StiMaker.h,v 2.32 2012/05/07 14:56:14 fisyak Exp $ built "__DATE__" "__TIME__; return cvs;} 00052 00053 00054 StiToolkit * getToolkit(); 00055 void load(TDataSet *); 00056 00057 protected: 00058 virtual TDataSet *FindDataSet (const char* logInput, 00059 const StMaker *uppMk=0, 00060 const StMaker *dowMk=0) const ; 00061 TDataSet* fVolume; 00062 00063 private: 00064 void MyClear(); 00065 00066 bool eventIsFinished; 00067 bool _initialized; 00068 StiToolkit * _toolkit; 00069 StiHitLoader<StEvent,StiDetectorBuilder> * _hitLoader; 00070 StiTrackFinder * _seedFinder; 00071 StiKalmanTrackFinder * _tracker; 00072 StiKalmanTrackFitter * _fitter; 00073 StiStEventFiller * _eventFiller; 00074 StiTrackContainer * _trackContainer; 00075 StiVertexFinder* _vertexFinder; 00076 EditableFilter<StiTrack> * _loaderTrackFilter; 00077 EditableFilter<StiHit> * _loaderHitFilter; 00078 #if 0 00079 void fillVxFlags(); 00080 #endif 00081 TFile *mPullFile; 00082 StiPullEvent *mPullEvent; 00083 TTree *mPullTTree; 00084 int mPullHits[3];//number of hits filled. See FillPulls 00085 int mTotPrimTks[2]; 00086 TStopwatch *mTimg[5]; //HitLoad,GloTrks,Vtx,PriTrks,StFill 00087 ClassDef(StiMaker,0) 00088 }; 00089 00090 //inlines 00091 00092 inline StiToolkit * StiMaker::getToolkit() 00093 { 00094 return _toolkit; 00095 } 00096 #endif
1.5.9