]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliMCParticle.cxx
Adding extra logging level option to macro.
[u/mrichter/AliRoot.git] / STEER / AliMCParticle.cxx
index 4bf7f7f0e5f62076b54542ad7b2ed86415c7c240..3cc4f7f553245a392c4828488bfaef35c5af23fb 100644 (file)
@@ -21,6 +21,8 @@
 //     Author: Andreas Morsch, CERN
 //-------------------------------------------------------------------------
 
+#include <TRefArray.h>
+
 #include "AliMCParticle.h"
 
 
@@ -28,30 +30,60 @@ ClassImp(AliMCParticle)
 
 AliMCParticle::AliMCParticle():
     AliVParticle(),
-    fParticle(0)
+    fParticle(0),
+    fTrackReferences(0),
+    fNTrackRef(0),
+    fLabel(-1)
 {
     // Constructor
 }
 
-AliMCParticle::AliMCParticle(TParticle* part):
+    
+AliMCParticle::AliMCParticle(TParticle* part, TRefArray* rarray, Int_t index):
     AliVParticle(),
-    fParticle(part)
+    fParticle(part),
+    fTrackReferences(rarray),
+    fNTrackRef(0),
+    fLabel(index)
 {
     // Constructor
+    if (rarray != 0) {
+      fNTrackRef = fTrackReferences->GetEntriesFast();
+    }
 }
     
     
 AliMCParticle::AliMCParticle(const AliMCParticle& mcPart) :
     AliVParticle(mcPart),
-    fParticle(0)
+    fParticle(0),    
+    fTrackReferences(0),
+    fNTrackRef(0),
+    fLabel(-1)
 {
 // Copy constructor
 }
 
 AliMCParticle& AliMCParticle::operator=(const AliMCParticle& mcPart)
-{ if (this!=&mcPart) { 
-    AliVParticle::operator=(mcPart); 
+{ 
+
+  if (this!=&mcPart) { 
+    AliVParticle::operator=(mcPart);
   }
   
   return *this; 
 }
+
+AliMCParticle::~AliMCParticle()
+{ 
+  // delete the track references passed externally
+  // fParticle should be handled by the user
+  // AliStack in case of AliMCEventHandler
+  if(fTrackReferences){
+      fTrackReferences->Delete();
+      delete fTrackReferences;
+      fTrackReferences = 0;
+  }
+}
+
+
+