]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliMCEvent.cxx
Added AddTrackParams() method for convenience + some comments
[u/mrichter/AliRoot.git] / STEER / AliMCEvent.cxx
index d652f276b533743b3b3ddf0f993531b42dc2967b..e7a58faa7800b217e47d196a2e60b967fac1d688 100644 (file)
@@ -41,7 +41,7 @@ AliMCEvent::AliMCEvent():
     fStack(0),
     fMCParticles(new TClonesArray("AliMCParticle",1000)),
     fMCParticleMap(0),
-    fHeader(0),
+    fHeader(new AliHeader()),
     fTRBuffer(0),
     fTrackReferences(new TClonesArray("AliTrackReference", 1000)),
     fTreeTR(0),
@@ -58,14 +58,14 @@ AliMCEvent::AliMCEvent(const AliMCEvent& mcEvnt) :
     fStack(0),
     fMCParticles(0),
     fMCParticleMap(0),
-    fHeader(0),
+    fHeader(new AliHeader()),
     fTRBuffer(0),
     fTrackReferences(0),
     fTreeTR(0),
     fTmpTreeTR(0),
     fTmpFileTR(0),
     fNprimaries(-1),
-    fNparticles(-1) 
+    fNparticles(-1)
 { 
 // Copy constructor
 }
@@ -106,10 +106,11 @@ void AliMCEvent::ConnectTreeK (TTree* tree)
     // This is a cache for the TParticles converted to MCParticles on user request
     if (fMCParticleMap) {
        fMCParticleMap->Clear();
-       if (fNparticles>0) fMCParticleMap->Expand(fNparticles);}
+       fMCParticles->Delete();
+       if (fNparticles>0) fMCParticleMap->Expand(fNparticles);
+    }
     else
        fMCParticleMap = new TRefArray(fNparticles);
-
 }
 
 void AliMCEvent::ConnectTreeTR (TTree* tree)
@@ -154,17 +155,16 @@ Int_t AliMCEvent::GetParticleAndTR(Int_t i, TParticle*& particle, TClonesArray*&
 void AliMCEvent::Clean()
 {
     // Clean-up before new trees are connected
-    
-    if (fHeader) {
-       delete fHeader;
-       fHeader = 0;
-    }
-    
-    delete fStack;
+//    if (fHeader) {
+//     delete fHeader;
+//     fHeader = 0;
+//    }
+
+    delete fStack; fStack = 0;
 
     // Clear TR
     if (fTRBuffer) {
-       fTRBuffer->Clear();
+       fTRBuffer->Delete();
        delete fTRBuffer;
        fTRBuffer = 0;
     }
@@ -173,10 +173,17 @@ void AliMCEvent::Clean()
 void AliMCEvent::FinishEvent()
 {
   // Clean-up after event
-  fStack->Reset(0);
-  fMCParticles->Delete();
-  fMCParticleMap->Delete();
-  fTrackReferences->Clear();
+  //    
+    fStack->Reset(0);
+    fMCParticles->Delete();
+    fMCParticleMap->Clear();
+    if (fTRBuffer)
+      fTRBuffer->Delete();
+    fTrackReferences->Delete();
+    fNparticles = -1;
+    fNprimaries = -1;    
+    fStack      =  0;
+    
 }
 
 
@@ -374,7 +381,7 @@ void AliMCEvent::ReorderAndExpandTreeTR()
                    } // hits
                } // branches
                fTmpTreeTR->Fill();
-               fTRBuffer->Clear();
+               fTRBuffer->Delete();
                ifills++;
            } // daughters
        } // has hits
@@ -411,7 +418,7 @@ void AliMCEvent::ReorderAndExpandTreeTR()
        } // entries
        it++;
        fTmpTreeTR->Fill();
-       fTRBuffer->Clear();
+       fTRBuffer->Delete();
        ifills++;
     } // tracks
     // Check