// Author: Andreas Morsch, CERN
//-------------------------------------------------------------------------
+#include <TRefArray.h>
+
#include "AliMCParticle.h"
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;
+ }
+}
+
+
+