00001 #ifndef ROOT_TRecTrackEvent_H 00002 #define ROOT_TRecTrackEvent_H 1 00003 00004 #include "TObject.h" 00005 #include "TClonesArray.h" 00006 #include "TObjArray.h" 00007 00008 #include "TRecMdcTrack.h" 00009 #include "TRecMdcKalTrack.h" 00010 #include "TRecMdcHit.h" 00011 #include "TTofTrack.h" 00012 #include "TRecTofTrack.h" 00013 #include "TRecEmcHit.h" 00014 #include "TRecEmcCluster.h" 00015 #include "TRecEmcShower.h" 00016 #include "TRecMucTrack.h" 00017 #include "TRecMdcDedx.h" 00018 #include "TRecMdcDedxHit.h" 00019 #include "TRecExtTrack.h" 00020 #include "TRecEvTime.h" 00021 #include "TRecMdcKalHelixSeg.h" 00022 00023 class TRecTrackEvent : public TObject { 00024 00025 public: 00026 00027 TRecTrackEvent(); 00028 virtual ~TRecTrackEvent(); 00029 00030 void initialize(); 00031 00032 void Clear(Option_t *option=""); 00033 00034 void Print(Option_t *option="") const; 00035 00036 00037 // inline Bool_t getFromMc() { return m_fromMc; }; 00038 00039 00040 // ********************* Dst Track ******************************/ 00042 const TObjArray* getRecMdcTrackCol() const { return m_recMdcTrackCol; }; 00043 00045 void addRecMdcTrack(TRecMdcTrack *Track); 00046 00048 const TRecMdcTrack* getRecMdcTrack(Int_t i) const; 00049 00051 void clearRecMdcTrackCol() { m_recMdcTrackCol->Clear(); } 00052 00054 const TObjArray* getRecMdcHitCol() const { return m_recMdcHitCol; }; 00055 00057 void addRecMdcHit(TRecMdcHit *Hit); 00058 00060 const TRecMdcHit* getRecMdcHit(Int_t i) const; 00062 void clearRecMdcHitCol() { m_recMdcHitCol->Clear(); } 00063 00064 00066 const TObjArray* getTofTrackCol() const { return m_recTofTrackCol; }; 00067 00069 void addTofTrack(TRecTofTrack * Track); 00070 00072 const TRecTofTrack* getTofTrack(Int_t i) const; 00073 00075 void clearTofTrackCol() { m_recTofTrackCol->Clear();} 00076 00077 00079 const TObjArray* getEmcHitCol() const { return m_recEmcHitCol; }; 00080 00082 void addEmcHit(TRecEmcHit *Track); 00083 00085 const TRecEmcHit* getEmcHit(Int_t i) const; 00086 00088 void clearEmcHitCol() { m_recEmcHitCol->Clear(); } 00089 00091 const TObjArray* getEmcClusterCol() const { return m_recEmcClusterCol; }; 00092 00094 void addEmcCluster(TRecEmcCluster *Track); 00095 00097 const TRecEmcCluster* getEmcCluster(Int_t i) const; 00098 00100 void clearEmcClusterCol() { m_recEmcClusterCol->Clear(); } 00101 00103 const TObjArray* getEmcShowerCol() const { return m_recEmcShowerCol; }; 00104 00106 void addEmcShower(TRecEmcShower *Track); 00107 00109 const TRecEmcShower* getEmcShower(Int_t i) const; 00110 00112 void clearEmcShowerCol() { m_recEmcShowerCol->Clear(); } 00113 00114 00116 const TObjArray* getMucTrackCol() const { return m_recMucTrackCol; }; 00117 00119 void addMucTrack(TRecMucTrack * Track); 00120 00122 const TRecMucTrack* getMucTrack(Int_t i) const; 00123 00125 void clearMucTrackCol() { m_recMucTrackCol->Clear();} 00126 00128 const TObjArray* getRecMdcDedxCol() const { return m_recMdcDedxCol; }; 00129 00131 void addRecMdcDedx(TRecMdcDedx * Track); 00132 00134 const TRecMdcDedx* getRecMdcDedx(Int_t i) const; 00135 00137 void clearRecMdcDedxCol() { m_recMdcDedxCol->Clear();} 00138 00139 00141 const TObjArray* getRecMdcDedxHitCol() const { return m_recMdcDedxHitCol; }; 00142 00144 void addRecMdcDedxHit(TRecMdcDedxHit * Track); 00145 00147 const TRecMdcDedxHit* getRecMdcDedxHit(Int_t i) const; 00148 00150 void clearRecMdcDedxHitCol() { m_recMdcDedxHitCol->Clear();} 00151 00152 00153 00154 /* /// retrieve the whole TObjArray of Ext Data */ 00155 const TObjArray* getExtTrackCol() const { return m_recExtTrackCol; }; 00156 00158 void addExtTrack(TRecExtTrack * Track); 00159 00160 /* /// retrieve a MucTrack From the collection, using the index into the array */ 00161 const TRecExtTrack* getExtTrack(Int_t i) const; 00162 00163 /* /// clear the whole array */ 00164 void clearExtTrackCol() { m_recExtTrackCol->Clear();} 00165 00166 // TObjArray of MdcKal Data 00167 const TObjArray* getRecMdcKalTrackCol() const { return m_recMdcKalTrackCol; } 00168 void addRecMdcKalTrack(TRecMdcKalTrack * Track); 00169 const TRecMdcKalTrack* getRecMdcKalTrack(Int_t i) const; 00170 void clearRecMdcKalTrackCol() { m_recMdcKalTrackCol->Clear();} 00171 00172 // TObjArray of MdcKalHit Data 00173 const TObjArray* getRecMdcKalHelixSegCol() const { return m_recMdcKalHelixSegCol; } 00174 void addRecMdcKalHelixSeg(TRecMdcKalHelixSeg * Track); 00175 const TRecMdcKalHelixSeg* getRecMdcKalHelixSeg(Int_t i) const; 00176 void clearRecMdcKalHelixSegCol() { m_recMdcKalHelixSegCol->Clear();} 00177 00178 00179 // TObjArray of EsTime Data 00180 const TObjArray* getEvTimeCol() const { return m_recEvTimeCol; } 00181 void addEvTime(TRecEvTime * Track); 00182 const TRecEvTime* getEvTime(Int_t i) const; 00183 void clearEvTimeCol() { m_recEvTimeCol->Clear();} 00184 00185 private: 00186 00188 static TObjArray *s_staticRecMdcTrackCol; 00189 TObjArray* m_recMdcTrackCol; //-> 00190 static TObjArray *s_staticRecMdcHitCol; 00191 TObjArray* m_recMdcHitCol; //-> 00192 00193 static TObjArray * s_staticEmcHitCol; 00194 TObjArray* m_recEmcHitCol; //-> 00195 00196 static TObjArray * s_staticEmcClusterCol; 00197 TObjArray* m_recEmcClusterCol; //-> 00198 00199 /* /// data members to store Emc track data */ 00200 static TObjArray * s_staticEmcShowerCol; 00201 TObjArray* m_recEmcShowerCol; //-> 00202 00204 static TObjArray * s_staticTofTrackCol; 00205 TObjArray* m_recTofTrackCol; //-> 00206 00208 static TObjArray *s_staticMucTrackCol; 00209 TObjArray* m_recMucTrackCol; //-> 00210 00212 static TObjArray * s_staticRecMdcDedxCol; 00213 TObjArray* m_recMdcDedxCol; //-> 00214 00216 static TObjArray * s_staticRecMdcDedxHitCol; 00217 TObjArray* m_recMdcDedxHitCol; //-> 00218 00219 /* /// data members to store Ext data */ 00220 static TObjArray * s_staticExtTrackCol; 00221 TObjArray* m_recExtTrackCol; //-> 00222 00223 /* /// data members to store MdcKal data */ 00224 static TObjArray * s_staticRecMdcKalTrackCol; 00225 TObjArray* m_recMdcKalTrackCol; //-> 00226 00228 static TObjArray * s_staticRecMdcKalHelixSegCol; 00229 TObjArray* m_recMdcKalHelixSegCol; //-> 00230 00232 static TObjArray *s_staticEvTimeCol; 00233 TObjArray* m_recEvTimeCol; //-> 00234 00235 ClassDef(TRecTrackEvent,8) 00236 00237 }; 00238 00239 #endif