00001 #include "RootEventData/TRecTrackEvent.h" 00002 #include "TCollection.h" // Declares TIter 00003 00004 ClassImp(TRecTrackEvent) 00005 00006 // Allocate the TObjArray just once 00007 00008 TObjArray *TRecTrackEvent::s_staticRecMdcTrackCol = 0; 00009 TObjArray *TRecTrackEvent::s_staticRecMdcHitCol = 0; 00010 TObjArray *TRecTrackEvent::s_staticTofTrackCol = 0; 00011 TObjArray *TRecTrackEvent::s_staticEmcHitCol = 0; 00012 TObjArray *TRecTrackEvent::s_staticEmcClusterCol = 0; 00013 TObjArray *TRecTrackEvent::s_staticEmcShowerCol = 0; 00014 TObjArray *TRecTrackEvent::s_staticMucTrackCol = 0; 00015 TObjArray *TRecTrackEvent::s_staticRecMdcDedxCol = 0; 00016 TObjArray *TRecTrackEvent::s_staticRecMdcDedxHitCol = 0; 00017 TObjArray *TRecTrackEvent::s_staticExtTrackCol = 0; 00018 TObjArray *TRecTrackEvent::s_staticRecMdcKalTrackCol = 0; 00019 TObjArray *TRecTrackEvent::s_staticRecMdcKalHelixSegCol = 0; 00020 TObjArray *TRecTrackEvent::s_staticEvTimeCol = 0; 00021 TObjArray *TRecTrackEvent::s_staticRecZddChannelCol = 0; 00022 00023 //*************************************************************** 00024 TRecTrackEvent::TRecTrackEvent() 00025 { 00026 //Dst Track 00027 //Rec Track 00028 if (!s_staticRecMdcTrackCol) { 00029 s_staticRecMdcTrackCol = new TObjArray(); 00030 } 00031 m_recMdcTrackCol = s_staticRecMdcTrackCol; 00032 00033 if (!s_staticRecMdcHitCol) { 00034 s_staticRecMdcHitCol = new TObjArray(); 00035 } 00036 m_recMdcHitCol = s_staticRecMdcHitCol; 00037 00038 00039 if (! s_staticTofTrackCol ){ 00040 s_staticTofTrackCol = new TObjArray(); 00041 } 00042 m_recTofTrackCol = s_staticTofTrackCol; 00043 00044 if (!s_staticEmcHitCol ){ 00045 s_staticEmcHitCol = new TObjArray(); 00046 } 00047 m_recEmcHitCol = s_staticEmcHitCol; 00048 00049 if (!s_staticEmcClusterCol ){ 00050 s_staticEmcClusterCol = new TObjArray(); 00051 } 00052 m_recEmcClusterCol = s_staticEmcClusterCol; 00053 00054 if (!s_staticEmcShowerCol ){ 00055 s_staticEmcShowerCol = new TObjArray(); 00056 } 00057 m_recEmcShowerCol = s_staticEmcShowerCol; 00058 00059 00060 if (! s_staticMucTrackCol ){ 00061 s_staticMucTrackCol = new TObjArray(); 00062 } 00063 m_recMucTrackCol = s_staticMucTrackCol; 00064 00065 if (! s_staticRecMdcDedxCol ){ 00066 s_staticRecMdcDedxCol = new TObjArray(); 00067 } 00068 m_recMdcDedxCol = s_staticRecMdcDedxCol; 00069 00070 if (! s_staticRecMdcDedxHitCol ){ 00071 s_staticRecMdcDedxHitCol = new TObjArray(); 00072 } 00073 m_recMdcDedxHitCol = s_staticRecMdcDedxHitCol; 00074 00075 00076 if (! s_staticExtTrackCol ){ 00077 s_staticExtTrackCol = new TObjArray(); 00078 } 00079 m_recExtTrackCol = s_staticExtTrackCol; 00080 00081 00082 if (! s_staticRecMdcKalTrackCol ){ 00083 s_staticRecMdcKalTrackCol = new TObjArray(); 00084 } 00085 m_recMdcKalTrackCol = s_staticRecMdcKalTrackCol; 00086 00087 if (! s_staticRecMdcKalHelixSegCol ){ 00088 s_staticRecMdcKalHelixSegCol = new TObjArray(); 00089 } 00090 m_recMdcKalHelixSegCol = s_staticRecMdcKalHelixSegCol; 00091 00092 if(! s_staticEvTimeCol ){ 00093 s_staticEvTimeCol = new TObjArray(); 00094 } 00095 m_recEvTimeCol = s_staticEvTimeCol; 00096 00097 if ( ! s_staticRecZddChannelCol ) { 00098 s_staticRecZddChannelCol = new TObjArray(); 00099 } 00100 m_recZddChannelCol = s_staticRecZddChannelCol; 00101 00102 Clear(); 00103 00104 } 00105 00106 //***************************************************************** 00107 TRecTrackEvent::~TRecTrackEvent() { 00108 00109 /**************************** Dst Track *************************/ 00110 if(m_recMdcTrackCol == s_staticRecMdcTrackCol) s_staticRecMdcTrackCol = 0; 00111 m_recMdcTrackCol->Delete(); 00112 delete m_recMdcTrackCol; 00113 m_recMdcTrackCol = 0; 00114 00115 if(m_recMdcHitCol == s_staticRecMdcHitCol) s_staticRecMdcHitCol = 0; 00116 m_recMdcHitCol->Delete(); 00117 delete m_recMdcHitCol; 00118 m_recMdcHitCol = 0; 00119 00120 if(m_recTofTrackCol == s_staticTofTrackCol ) s_staticTofTrackCol = 0; 00121 m_recTofTrackCol->Delete(); 00122 delete m_recTofTrackCol; 00123 m_recTofTrackCol = 0; 00124 00125 if(m_recEmcHitCol == s_staticEmcHitCol) s_staticEmcHitCol = 0; 00126 m_recEmcHitCol->Delete(); 00127 delete m_recEmcHitCol; 00128 m_recEmcHitCol = 0; 00129 00130 if(m_recEmcClusterCol == s_staticEmcClusterCol) s_staticEmcClusterCol = 0; 00131 m_recEmcClusterCol->Delete(); 00132 delete m_recEmcClusterCol; 00133 m_recEmcClusterCol = 0; 00134 00135 if(m_recEmcShowerCol == s_staticEmcShowerCol) s_staticEmcShowerCol = 0; 00136 m_recEmcShowerCol->Delete(); 00137 delete m_recEmcShowerCol; 00138 m_recEmcShowerCol = 0; 00139 00140 00141 if(m_recMucTrackCol == s_staticMucTrackCol ) s_staticMucTrackCol = 0; 00142 m_recMucTrackCol->Delete(); 00143 delete m_recMucTrackCol; 00144 m_recMucTrackCol = 0; 00145 00146 if(m_recMdcDedxCol == s_staticRecMdcDedxCol ) s_staticRecMdcDedxCol = 0; 00147 m_recMdcDedxCol->Delete(); 00148 delete m_recMdcDedxCol; 00149 m_recMdcDedxCol = 0; 00150 00151 if(m_recMdcDedxHitCol == s_staticRecMdcDedxHitCol ) s_staticRecMdcDedxHitCol = 0; 00152 m_recMdcDedxHitCol->Delete(); 00153 delete m_recMdcDedxHitCol; 00154 m_recMdcDedxHitCol = 0; 00155 00156 00157 if(m_recExtTrackCol == s_staticExtTrackCol ) s_staticExtTrackCol = 0; 00158 m_recExtTrackCol->Delete(); 00159 delete m_recExtTrackCol; 00160 m_recExtTrackCol = 0; 00161 00162 if(m_recMdcKalTrackCol == s_staticRecMdcKalTrackCol ) s_staticRecMdcKalTrackCol = 0; 00163 m_recMdcKalTrackCol->Delete(); 00164 delete m_recMdcKalTrackCol; 00165 m_recMdcKalTrackCol = 0; 00166 00167 if(m_recMdcKalHelixSegCol == s_staticRecMdcKalHelixSegCol ) s_staticRecMdcKalHelixSegCol = 0; 00168 m_recMdcKalHelixSegCol->Delete(); 00169 delete m_recMdcKalHelixSegCol; 00170 m_recMdcKalHelixSegCol = 0; 00171 00172 if(m_recEvTimeCol == s_staticEvTimeCol ) s_staticEvTimeCol = 0; 00173 m_recEvTimeCol->Delete(); 00174 delete m_recEvTimeCol; 00175 m_recEvTimeCol = 0; 00176 00177 if ( m_recZddChannelCol == s_staticRecZddChannelCol ) s_staticRecZddChannelCol = 0; 00178 m_recZddChannelCol->Delete(); 00179 delete m_recZddChannelCol; 00180 m_recZddChannelCol = 0; 00181 } 00182 00183 //***************************************************************** 00184 void TRecTrackEvent::initialize(){ 00185 } 00186 00187 //***************************************************************** 00188 void TRecTrackEvent::Clear(Option_t *option) { 00189 00190 } 00191 00192 //***************************************************************************** 00193 void TRecTrackEvent::Print(Option_t *option) const { 00194 TObject::Print(option); 00195 } 00196 00197 00198 /**************** Dst Track ************************/ 00200 void TRecTrackEvent::addRecMdcTrack(TRecMdcTrack *Track) { 00201 m_recMdcTrackCol->Add(Track); 00202 } 00203 00204 const TRecMdcTrack* TRecTrackEvent::getRecMdcTrack(Int_t i) const { 00205 if (Int_t(i) >= m_recMdcTrackCol->GetEntries()) 00206 return 0; 00207 return (TRecMdcTrack*)m_recMdcTrackCol->At(i); 00208 } 00209 00210 void TRecTrackEvent::addRecMdcHit(TRecMdcHit *Hit) { 00211 m_recMdcHitCol->Add(Hit); 00212 } 00213 00214 const TRecMdcHit* TRecTrackEvent::getRecMdcHit(Int_t i) const { 00215 if (Int_t(i) >= m_recMdcHitCol->GetEntries()) 00216 return 0; 00217 return (TRecMdcHit*)m_recMdcHitCol->At(i); 00218 } 00219 00221 void TRecTrackEvent::addTofTrack(TRecTofTrack * Track){ 00222 m_recTofTrackCol->Add(Track); 00223 } 00224 00225 const TRecTofTrack* TRecTrackEvent::getTofTrack(Int_t i) const { 00226 if(Int_t(i) >=m_recTofTrackCol->GetEntries()) 00227 return 0; 00228 return (TRecTofTrack*) m_recTofTrackCol->At(i); 00229 } 00230 00232 void TRecTrackEvent::addEmcHit(TRecEmcHit * Track) { 00233 m_recEmcHitCol->Add(Track); 00234 } 00235 00236 const TRecEmcHit* TRecTrackEvent::getEmcHit( Int_t i) const { 00237 if(Int_t(i) >= m_recEmcHitCol->GetEntries()) 00238 return 0; 00239 return (TRecEmcHit*)m_recEmcHitCol->At(i); 00240 } 00241 00242 void TRecTrackEvent::addEmcCluster(TRecEmcCluster * Track) { 00243 m_recEmcClusterCol->Add(Track); 00244 } 00245 00246 const TRecEmcCluster* TRecTrackEvent::getEmcCluster( Int_t i) const { 00247 if(Int_t(i) >= m_recEmcClusterCol->GetEntries()) 00248 return 0; 00249 return (TRecEmcCluster*)m_recEmcClusterCol->At(i); 00250 } 00251 00252 void TRecTrackEvent::addEmcShower(TRecEmcShower * Track) { 00253 m_recEmcShowerCol->Add(Track); 00254 } 00255 00256 const TRecEmcShower* TRecTrackEvent::getEmcShower( Int_t i) const { 00257 if(Int_t(i) >= m_recEmcShowerCol->GetEntries()) 00258 return 0; 00259 return (TRecEmcShower*)m_recEmcShowerCol->At(i); 00260 } 00261 00263 void TRecTrackEvent::addMucTrack(TRecMucTrack * Track){ 00264 m_recMucTrackCol->Add(Track); 00265 } 00266 00267 00268 const TRecMucTrack* TRecTrackEvent::getMucTrack(Int_t i) const { 00269 if(Int_t(i) >=m_recMucTrackCol->GetEntries()) 00270 return 0; 00271 return (TRecMucTrack*) m_recMucTrackCol->At(i); 00272 } 00273 00275 void TRecTrackEvent::addRecMdcDedx(TRecMdcDedx * Track){ 00276 m_recMdcDedxCol->Add(Track); 00277 } 00278 00279 00280 const TRecMdcDedx* TRecTrackEvent::getRecMdcDedx(Int_t i) const { 00281 if(Int_t(i) >=m_recMdcDedxCol->GetEntries()) 00282 return 0; 00283 return (TRecMdcDedx*) m_recMdcDedxCol->At(i); 00284 } 00285 00286 00287 void TRecTrackEvent::addRecMdcDedxHit(TRecMdcDedxHit * Track){ 00288 m_recMdcDedxHitCol->Add(Track); 00289 } 00290 00291 00292 const TRecMdcDedxHit* TRecTrackEvent::getRecMdcDedxHit(Int_t i) const { 00293 if(Int_t(i) >=m_recMdcDedxHitCol->GetEntries()) 00294 return 0; 00295 return (TRecMdcDedxHit*) m_recMdcDedxHitCol->At(i); 00296 } 00297 00298 // // Ext 00299 void TRecTrackEvent::addExtTrack(TRecExtTrack * Track){ 00300 m_recExtTrackCol->Add(Track); 00301 } 00302 00303 const TRecExtTrack* TRecTrackEvent::getExtTrack(Int_t i) const { 00304 if(Int_t(i) >=m_recExtTrackCol->GetEntries()) 00305 return 0; 00306 return (TRecExtTrack*) m_recExtTrackCol->At(i); 00307 } 00308 00309 //RecMdcKal 00310 void TRecTrackEvent::addRecMdcKalTrack(TRecMdcKalTrack * Track){ 00311 m_recMdcKalTrackCol->Add(Track); 00312 } 00313 00314 const TRecMdcKalTrack* TRecTrackEvent::getRecMdcKalTrack(Int_t i) const { 00315 if(Int_t(i) >=m_recMdcKalTrackCol->GetEntries()) 00316 return 0; 00317 return (TRecMdcKalTrack*) m_recMdcKalTrackCol->At(i); 00318 } 00319 00320 void TRecTrackEvent::addRecMdcKalHelixSeg(TRecMdcKalHelixSeg * Track){ 00321 m_recMdcKalHelixSegCol->Add(Track); 00322 } 00323 00324 const TRecMdcKalHelixSeg* TRecTrackEvent::getRecMdcKalHelixSeg(Int_t i) const { 00325 if(Int_t(i) >= m_recMdcKalHelixSegCol->GetEntries()) 00326 return 0; 00327 return ( TRecMdcKalHelixSeg*) m_recMdcKalHelixSegCol->At(i); 00328 } 00329 00330 //EsTime 00331 void TRecTrackEvent::addEvTime(TRecEvTime * Track){ 00332 m_recEvTimeCol->Add(Track); 00333 } 00334 00335 const TRecEvTime* TRecTrackEvent::getEvTime(Int_t i) const { 00336 if(Int_t(i) >=m_recEvTimeCol->GetEntries()) 00337 return 0; 00338 return (TRecEvTime*) m_recEvTimeCol->At(i); 00339 } 00340 00341 // ZDD 00342 void TRecTrackEvent::addRecZddChannel(TRecZddChannel* zdd) { 00343 m_recZddChannelCol->Add(zdd); 00344 } 00345 00346 const TRecZddChannel* TRecTrackEvent::getRecZddChannel(Int_t i) const { 00347 if ( i >= m_recZddChannelCol->GetEntries() || i < 0 ) 00348 return 0; 00349 return (TRecZddChannel*) m_recZddChannelCol->At(i); 00350 }