00001 #include "RootEventData/TDstEvent.h" 00002 #include "TCollection.h" // Declares TIter 00003 00004 ClassImp(TDstEvent) 00005 00006 // Allocate the TObjArray just once 00007 00008 TObjArray *TDstEvent::s_staticMdcTrackCol = 0; 00009 TObjArray *TDstEvent::s_staticEmcTrackCol = 0; 00010 TObjArray *TDstEvent::s_staticTofTrackCol = 0; 00011 TObjArray *TDstEvent::s_staticMucTrackCol = 0; 00012 TObjArray *TDstEvent::s_staticMdcDedxCol = 0; 00013 TObjArray *TDstEvent::s_staticExtTrackCol = 0; 00014 TObjArray *TDstEvent::s_staticMdcKalTrackCol = 0; 00015 00016 //*************************************************************** 00017 TDstEvent::TDstEvent() 00018 { 00019 //Dst Track 00020 00021 if (!s_staticMdcTrackCol) { 00022 s_staticMdcTrackCol = new TObjArray(); 00023 } 00024 m_mdcTrackCol = s_staticMdcTrackCol; 00025 00026 if (!s_staticEmcTrackCol ){ 00027 s_staticEmcTrackCol = new TObjArray(); 00028 } 00029 m_emcTrackCol = s_staticEmcTrackCol; 00030 00031 if (! s_staticTofTrackCol ){ 00032 s_staticTofTrackCol = new TObjArray(); 00033 } 00034 m_tofTrackCol = s_staticTofTrackCol; 00035 00036 if (! s_staticMucTrackCol ){ 00037 s_staticMucTrackCol = new TObjArray(); 00038 } 00039 m_mucTrackCol = s_staticMucTrackCol; 00040 00041 if (! s_staticMdcDedxCol ){ 00042 s_staticMdcDedxCol = new TObjArray(); 00043 } 00044 m_mdcDedxCol = s_staticMdcDedxCol; 00045 00046 if (! s_staticExtTrackCol ){ 00047 s_staticExtTrackCol = new TObjArray(); 00048 } 00049 m_extTrackCol = s_staticExtTrackCol; 00050 00051 00052 if (! s_staticMdcKalTrackCol ){ 00053 s_staticMdcKalTrackCol = new TObjArray(); 00054 } 00055 m_mdcKalTrackCol = s_staticMdcKalTrackCol; 00056 00057 Clear(); 00058 00059 } 00060 00061 //***************************************************************** 00062 TDstEvent::~TDstEvent() { 00063 00064 /**************************** Dst Track *************************/ 00065 if(m_mdcTrackCol == s_staticMdcTrackCol) s_staticMdcTrackCol = 0; 00066 m_mdcTrackCol->Delete(); 00067 delete m_mdcTrackCol; 00068 m_mdcTrackCol = 0; 00069 00070 if(m_emcTrackCol == s_staticEmcTrackCol) s_staticEmcTrackCol = 0; 00071 m_emcTrackCol->Delete(); 00072 delete m_emcTrackCol; 00073 m_emcTrackCol = 0; 00074 00075 if(m_tofTrackCol == s_staticTofTrackCol ) s_staticTofTrackCol = 0; 00076 m_tofTrackCol->Delete(); 00077 delete m_tofTrackCol; 00078 m_tofTrackCol = 0; 00079 00080 if(m_mucTrackCol == s_staticMucTrackCol ) s_staticMucTrackCol = 0; 00081 m_mucTrackCol->Delete(); 00082 delete m_mucTrackCol; 00083 m_mucTrackCol = 0; 00084 00085 if(m_mdcDedxCol == s_staticMdcDedxCol ) s_staticMdcDedxCol = 0; 00086 m_mdcDedxCol->Delete(); 00087 delete m_mdcDedxCol; 00088 m_mdcDedxCol = 0; 00089 00090 if(m_extTrackCol == s_staticExtTrackCol ) s_staticExtTrackCol = 0; 00091 m_extTrackCol->Delete(); 00092 delete m_extTrackCol; 00093 m_extTrackCol = 0; 00094 00095 if(m_mdcKalTrackCol == s_staticMdcKalTrackCol ) s_staticMdcKalTrackCol = 0; 00096 m_mdcKalTrackCol->Delete(); 00097 delete m_mdcKalTrackCol; 00098 m_mdcKalTrackCol = 0; 00099 00100 00101 } 00102 00103 //***************************************************************** 00104 void TDstEvent::initialize(){ 00105 } 00106 00107 //***************************************************************** 00108 void TDstEvent::Clear(Option_t *option) { 00109 00110 } 00111 00112 //***************************************************************************** 00113 void TDstEvent::Print(Option_t *option) const { 00114 TObject::Print(option); 00115 } 00116 00117 00118 /**************** Dst Track ************************/ 00120 void TDstEvent::addMdcTrack(TMdcTrack *Track) { 00121 m_mdcTrackCol->Add(Track); 00122 } 00123 00124 const TMdcTrack* TDstEvent::getMdcTrack(Int_t i) const { 00125 if (Int_t(i) >= m_mdcTrackCol->GetEntries()) 00126 return 0; 00127 return (TMdcTrack*)m_mdcTrackCol->At(i); 00128 } 00130 void TDstEvent::addEmcTrack(TEmcTrack * Track) { 00131 m_emcTrackCol->Add(Track); 00132 } 00133 00134 const TEmcTrack* TDstEvent::getEmcTrack( Int_t i) const { 00135 if(Int_t(i) >= m_emcTrackCol->GetEntries()) 00136 return 0; 00137 return (TEmcTrack*)m_emcTrackCol->At(i); 00138 } 00139 00141 void TDstEvent::addTofTrack(TTofTrack * Track){ 00142 m_tofTrackCol->Add(Track); 00143 } 00144 00145 00146 const TTofTrack* TDstEvent::getTofTrack(Int_t i) const { 00147 if(Int_t(i) >=m_tofTrackCol->GetEntries()) 00148 return 0; 00149 return (TTofTrack*) m_tofTrackCol->At(i); 00150 } 00152 void TDstEvent::addMucTrack(TMucTrack * Track){ 00153 m_mucTrackCol->Add(Track); 00154 } 00155 00156 00157 const TMucTrack* TDstEvent::getMucTrack(Int_t i) const { 00158 if(Int_t(i) >=m_mucTrackCol->GetEntries()) 00159 return 0; 00160 return (TMucTrack*) m_mucTrackCol->At(i); 00161 } 00163 void TDstEvent::addMdcDedx(TMdcDedx * Track){ 00164 m_mdcDedxCol->Add(Track); 00165 } 00166 00167 00168 const TMdcDedx* TDstEvent::getMdcDedx(Int_t i) const { 00169 if(Int_t(i) >=m_mdcDedxCol->GetEntries()) 00170 return 0; 00171 return (TMdcDedx*) m_mdcDedxCol->At(i); 00172 } 00173 00174 // Ext 00175 void TDstEvent::addExtTrack(TExtTrack * Track){ 00176 m_extTrackCol->Add(Track); 00177 } 00178 00179 const TExtTrack* TDstEvent::getExtTrack(Int_t i) const { 00180 if(Int_t(i) >=m_extTrackCol->GetEntries()) 00181 return 0; 00182 return (TExtTrack*) m_extTrackCol->At(i); 00183 } 00184 00185 //MdcKal 00186 void TDstEvent::addMdcKalTrack(TMdcKalTrack * Track){ 00187 m_mdcKalTrackCol->Add(Track); 00188 } 00189 00190 const TMdcKalTrack* TDstEvent::getMdcKalTrack(Int_t i) const { 00191 if(Int_t(i) >=m_mdcKalTrackCol->GetEntries()) 00192 return 0; 00193 return (TMdcKalTrack*) m_mdcKalTrackCol->At(i); 00194 } 00195