00001 #include "RootEventData/TMcEvent.h" 00002 #include "TCollection.h" // Declares TIter 00003 00004 ClassImp(TMcEvent) 00005 00006 // Allocate the TObjArray just once 00007 TObjArray *TMcEvent::s_staticMdcMcHitCol = 0; 00008 TObjArray *TMcEvent::s_staticEmcMcHitCol = 0; 00009 TObjArray *TMcEvent::s_staticTofMcHitCol = 0; 00010 TObjArray *TMcEvent::s_staticMucMcHitCol = 0; 00011 TObjArray *TMcEvent::s_staticMcParticleCol = 0; 00012 //TObject *TMcEvent::s_staticDecayMode = 0; 00013 00014 00015 //*************************************************************** 00016 TMcEvent::TMcEvent() 00017 { 00018 00019 if (!s_staticMdcMcHitCol) { 00020 s_staticMdcMcHitCol = new TObjArray(); 00021 } 00022 m_mdcMcHitCol = s_staticMdcMcHitCol; 00023 00024 if (!s_staticEmcMcHitCol ){ 00025 s_staticEmcMcHitCol = new TObjArray(); 00026 } 00027 m_emcMcHitCol = s_staticEmcMcHitCol; 00028 00029 if (! s_staticTofMcHitCol ){ 00030 s_staticTofMcHitCol = new TObjArray(); 00031 } 00032 m_tofMcHitCol = s_staticTofMcHitCol; 00033 00034 if (! s_staticMucMcHitCol ){ 00035 s_staticMucMcHitCol = new TObjArray(); 00036 } 00037 m_mucMcHitCol = s_staticMucMcHitCol; 00038 00039 if (! s_staticMcParticleCol ){ 00040 s_staticMcParticleCol = new TObjArray(); 00041 } 00042 m_mcParticleCol = s_staticMcParticleCol; 00043 /* 00044 if (! s_staticDecayMode ){ 00045 s_staticDecayMode = new TObject(); 00046 } 00047 m_decayMode = s_staticDecayMode; 00048 */ 00049 Clear(); 00050 00051 } 00052 00053 //***************************************************************** 00054 TMcEvent::~TMcEvent() { 00055 if(m_mdcMcHitCol == s_staticMdcMcHitCol) s_staticMdcMcHitCol = 0; 00056 m_mdcMcHitCol->Delete(); 00057 delete m_mdcMcHitCol; 00058 m_mdcMcHitCol = 0; 00059 00060 if(m_emcMcHitCol == s_staticEmcMcHitCol) s_staticEmcMcHitCol = 0; 00061 m_emcMcHitCol->Delete(); 00062 delete m_emcMcHitCol; 00063 m_emcMcHitCol = 0; 00064 00065 if(m_tofMcHitCol == s_staticTofMcHitCol ) s_staticTofMcHitCol = 0; 00066 m_tofMcHitCol->Delete(); 00067 delete m_tofMcHitCol; 00068 m_tofMcHitCol = 0; 00069 00070 if(m_mucMcHitCol == s_staticMucMcHitCol ) s_staticMucMcHitCol = 0; 00071 m_mucMcHitCol->Delete(); 00072 delete m_mucMcHitCol; 00073 m_mucMcHitCol = 0; 00074 00075 if(m_mcParticleCol == s_staticMcParticleCol ) s_staticMcParticleCol = 0; 00076 m_mcParticleCol->Delete(); 00077 delete m_mcParticleCol; 00078 m_mcParticleCol = 0; 00079 /* 00080 if(m_decayMode == s_staticDecayMode ) s_staticDecayMode = 0; 00081 m_decayMode->Delete(); 00082 delete m_decayMode; 00083 m_decayMode = 0; 00084 */ 00085 } 00086 00087 //***************************************************************** 00088 void TMcEvent::initialize(){ 00089 00090 } 00091 00092 //***************************************************************** 00093 void TMcEvent::Clear(Option_t *option) { 00094 00095 } 00096 00097 //***************************************************************************** 00098 void TMcEvent::Print(Option_t *option) const { 00099 TObject::Print(option); 00100 } 00101 00103 void TMcEvent::addMdcMc(TMdcMc *mcHit) { 00104 m_mdcMcHitCol->Add(mcHit); 00105 } 00106 00107 const TMdcMc* TMcEvent::getMdcMc(Int_t i) const { 00108 if (Int_t(i) >= m_mdcMcHitCol->GetEntries()) 00109 return 0; 00110 return (TMdcMc*)m_mdcMcHitCol->At(i); 00111 } 00113 void TMcEvent::addEmcMc(TEmcMc * mcHit) { 00114 m_emcMcHitCol->Add(mcHit); 00115 } 00116 00117 const TEmcMc* TMcEvent::getEmcMc( Int_t i) const { 00118 if(Int_t(i) >= m_emcMcHitCol->GetEntries()) 00119 return 0; 00120 return (TEmcMc*)m_emcMcHitCol->At(i); 00121 } 00122 00124 void TMcEvent::addTofMc(TTofMc * mcHit){ 00125 m_tofMcHitCol->Add(mcHit); 00126 } 00127 00128 00129 const TTofMc* TMcEvent::getTofMc(Int_t i) const { 00130 if(Int_t(i) >=m_tofMcHitCol->GetEntries()) 00131 return 0; 00132 return (TTofMc*) m_tofMcHitCol->At(i); 00133 } 00134 00136 void TMcEvent::addMucMc(TMucMc * mcHit){ 00137 m_mucMcHitCol->Add(mcHit); 00138 } 00139 00140 00141 const TMucMc* TMcEvent::getMucMc(Int_t i) const { 00142 if(Int_t(i) >=m_mucMcHitCol->GetEntries()) 00143 return 0; 00144 return (TMucMc*) m_mucMcHitCol->At(i); 00145 } 00146 00148 void TMcEvent::addMcParticle(TMcParticle * mcHit){ 00149 m_mcParticleCol->Add(mcHit); 00150 } 00151 00152 00153 const TMcParticle* TMcEvent::getMcParticle(Int_t i) const { 00154 if(Int_t(i) >=m_mcParticleCol->GetEntries()) 00155 return 0; 00156 return (TMcParticle*) m_mcParticleCol->At(i); 00157 } 00158 /* 00160 void TMcEvent::addDecayMode(TDecayMode * decayMode){ 00161 m_decayMode = decayMode; 00162 } 00163 00164 00165 const TDecayMode* TMcEvent::getDecayMode() const { 00166 return (TDecayMode*)m_decayMode ; 00167 } 00168 */