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 #include "TRecZddChannel.h" 00023 00024 class TRecTrackEvent : public TObject { 00025 00026 public: 00027 00028 TRecTrackEvent(); 00029 virtual ~TRecTrackEvent(); 00030 00031 void initialize(); 00032 00033 void Clear(Option_t *option=""); 00034 00035 void Print(Option_t *option="") const; 00036 00037 00038 // inline Bool_t getFromMc() { return m_fromMc; }; 00039 00040 00041 // ********************* Dst Track ******************************/ 00043 const TObjArray* getRecMdcTrackCol() const { return m_recMdcTrackCol; }; 00044 00046 void addRecMdcTrack(TRecMdcTrack *Track); 00047 00049 const TRecMdcTrack* getRecMdcTrack(Int_t i) const; 00050 00052 void clearRecMdcTrackCol() { m_recMdcTrackCol->Clear(); } 00053 00055 const TObjArray* getRecMdcHitCol() const { return m_recMdcHitCol; }; 00056 00058 void addRecMdcHit(TRecMdcHit *Hit); 00059 00061 const TRecMdcHit* getRecMdcHit(Int_t i) const; 00063 void clearRecMdcHitCol() { m_recMdcHitCol->Clear(); } 00064 00065 00067 const TObjArray* getTofTrackCol() const { return m_recTofTrackCol; }; 00068 00070 void addTofTrack(TRecTofTrack * Track); 00071 00073 const TRecTofTrack* getTofTrack(Int_t i) const; 00074 00076 void clearTofTrackCol() { m_recTofTrackCol->Clear();} 00077 00078 00080 const TObjArray* getEmcHitCol() const { return m_recEmcHitCol; }; 00081 00083 void addEmcHit(TRecEmcHit *Track); 00084 00086 const TRecEmcHit* getEmcHit(Int_t i) const; 00087 00089 void clearEmcHitCol() { m_recEmcHitCol->Clear(); } 00090 00092 const TObjArray* getEmcClusterCol() const { return m_recEmcClusterCol; }; 00093 00095 void addEmcCluster(TRecEmcCluster *Track); 00096 00098 const TRecEmcCluster* getEmcCluster(Int_t i) const; 00099 00101 void clearEmcClusterCol() { m_recEmcClusterCol->Clear(); } 00102 00104 const TObjArray* getEmcShowerCol() const { return m_recEmcShowerCol; }; 00105 00107 void addEmcShower(TRecEmcShower *Track); 00108 00110 const TRecEmcShower* getEmcShower(Int_t i) const; 00111 00113 void clearEmcShowerCol() { m_recEmcShowerCol->Clear(); } 00114 00115 00117 const TObjArray* getMucTrackCol() const { return m_recMucTrackCol; }; 00118 00120 void addMucTrack(TRecMucTrack * Track); 00121 00123 const TRecMucTrack* getMucTrack(Int_t i) const; 00124 00126 void clearMucTrackCol() { m_recMucTrackCol->Clear();} 00127 00129 const TObjArray* getRecMdcDedxCol() const { return m_recMdcDedxCol; }; 00130 00132 void addRecMdcDedx(TRecMdcDedx * Track); 00133 00135 const TRecMdcDedx* getRecMdcDedx(Int_t i) const; 00136 00138 void clearRecMdcDedxCol() { m_recMdcDedxCol->Clear();} 00139 00140 00142 const TObjArray* getRecMdcDedxHitCol() const { return m_recMdcDedxHitCol; }; 00143 00145 void addRecMdcDedxHit(TRecMdcDedxHit * Track); 00146 00148 const TRecMdcDedxHit* getRecMdcDedxHit(Int_t i) const; 00149 00151 void clearRecMdcDedxHitCol() { m_recMdcDedxHitCol->Clear();} 00152 00153 00154 00155 /* /// retrieve the whole TObjArray of Ext Data */ 00156 const TObjArray* getExtTrackCol() const { return m_recExtTrackCol; }; 00157 00159 void addExtTrack(TRecExtTrack * Track); 00160 00161 /* /// retrieve a MucTrack From the collection, using the index into the array */ 00162 const TRecExtTrack* getExtTrack(Int_t i) const; 00163 00164 /* /// clear the whole array */ 00165 void clearExtTrackCol() { m_recExtTrackCol->Clear();} 00166 00167 // TObjArray of MdcKal Data 00168 const TObjArray* getRecMdcKalTrackCol() const { return m_recMdcKalTrackCol; } 00169 void addRecMdcKalTrack(TRecMdcKalTrack * Track); 00170 const TRecMdcKalTrack* getRecMdcKalTrack(Int_t i) const; 00171 void clearRecMdcKalTrackCol() { m_recMdcKalTrackCol->Clear();} 00172 00173 // TObjArray of MdcKalHit Data 00174 const TObjArray* getRecMdcKalHelixSegCol() const { return m_recMdcKalHelixSegCol; } 00175 void addRecMdcKalHelixSeg(TRecMdcKalHelixSeg * Track); 00176 const TRecMdcKalHelixSeg* getRecMdcKalHelixSeg(Int_t i) const; 00177 void clearRecMdcKalHelixSegCol() { m_recMdcKalHelixSegCol->Clear();} 00178 00179 00180 // TObjArray of EsTime Data 00181 const TObjArray* getEvTimeCol() const { return m_recEvTimeCol; } 00182 void addEvTime(TRecEvTime * Track); 00183 const TRecEvTime* getEvTime(Int_t i) const; 00184 void clearEvTimeCol() { m_recEvTimeCol->Clear();} 00185 00186 // Interfaces of RecZddChannel 00187 const TObjArray* getRecZddChannelCol() const {return m_recZddChannelCol; } 00188 void addRecZddChannel(TRecZddChannel* dtag); 00189 const TRecZddChannel* getRecZddChannel(Int_t i) const; 00190 void clearRecZddChannelCol() { m_recZddChannelCol->Clear(); } 00191 00192 private: 00193 00195 static TObjArray *s_staticRecMdcTrackCol; 00196 TObjArray* m_recMdcTrackCol; //-> 00197 static TObjArray *s_staticRecMdcHitCol; 00198 TObjArray* m_recMdcHitCol; //-> 00199 00200 static TObjArray * s_staticEmcHitCol; 00201 TObjArray* m_recEmcHitCol; //-> 00202 00203 static TObjArray * s_staticEmcClusterCol; 00204 TObjArray* m_recEmcClusterCol; //-> 00205 00206 /* /// data members to store Emc track data */ 00207 static TObjArray * s_staticEmcShowerCol; 00208 TObjArray* m_recEmcShowerCol; //-> 00209 00211 static TObjArray * s_staticTofTrackCol; 00212 TObjArray* m_recTofTrackCol; //-> 00213 00215 static TObjArray *s_staticMucTrackCol; 00216 TObjArray* m_recMucTrackCol; //-> 00217 00219 static TObjArray * s_staticRecMdcDedxCol; 00220 TObjArray* m_recMdcDedxCol; //-> 00221 00223 static TObjArray * s_staticRecMdcDedxHitCol; 00224 TObjArray* m_recMdcDedxHitCol; //-> 00225 00226 /* /// data members to store Ext data */ 00227 static TObjArray * s_staticExtTrackCol; 00228 TObjArray* m_recExtTrackCol; //-> 00229 00230 /* /// data members to store MdcKal data */ 00231 static TObjArray * s_staticRecMdcKalTrackCol; 00232 TObjArray* m_recMdcKalTrackCol; //-> 00233 00235 static TObjArray * s_staticRecMdcKalHelixSegCol; 00236 TObjArray* m_recMdcKalHelixSegCol; //-> 00237 00239 static TObjArray *s_staticEvTimeCol; 00240 TObjArray* m_recEvTimeCol; //-> 00241 00242 // data members to store RecZddChannel 00243 static TObjArray* s_staticRecZddChannelCol; 00244 TObjArray* m_recZddChannelCol; //-> 00245 00246 ClassDef(TRecTrackEvent,8) 00247 00248 }; 00249 00250 #endif