-#include "AliAOD.h"
/**************************************************************************
* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
* *
#include <TParticle.h>
#include <TClass.h>
#include <TString.h>
+
+#include "AliAOD.h"
#include "AliAODParticle.h"
#include "AliTrackPoints.h"
fParticleClass = in.fParticleClass ; //althought it is pointer, this points to object in class list of gROOT
return *this;
}
-
/**************************************************************************/
AliAOD::~AliAOD()
TObject& obj = *(fParticles->At(i));
obj = inobj;
}
-
+
+ TClass* partclass = GetParticleClass();
+ if (partclass == 0x0)
+ {
+ Fatal("CopyData","Can not get particle class");
+ return;//pro forma
+ }
+
for (Int_t i = curentr; i < inentr; i++)
{
TObject& inobj = *(in.fParticles->At(i));
- TObject& obj = *((TObject*)(fParticleClass->New(arr[i])));
+ TObject& obj = *((TObject*)(partclass->New(arr[i])));
obj = inobj;
}
}
fParticles = new TClonesArray(fParticleClass);
}
}
+/**************************************************************************/
+TClass* AliAOD::GetParticleClass()
+{
+//returns TClass of particle class
+ if (fParticleClass) return fParticleClass;
+
+ if (fParticles == 0x0) return 0x0;
+
+ fParticleClass = fParticles->GetClass();
+ return fParticleClass;
+}
/**************************************************************************/
Int_t idx = fParticles->GetLast() + 1;
TClonesArray& arr = *fParticles;
+
+ TClass* partclass = GetParticleClass();
+ if (partclass == 0x0)
+ {
+ Error("AddParticle(AliVAODParticle*)","Can not get particle class");
+ return;
+ }
- AliVAODParticle* pp = (AliVAODParticle*)fParticleClass->New(arr[idx]);
+ AliVAODParticle* pp = (AliVAODParticle*)partclass->New(arr[idx]);
pp->operator=(*particle);
}
Int_t newpartidx = fParticles->GetLast() + 1;
TClonesArray& arr = *fParticles;
-
- AliVAODParticle* p = (AliVAODParticle*)fParticleClass->New(arr[newpartidx]);
+
+ TClass* partclass = GetParticleClass();
+ if (partclass == 0x0)
+ {
+ Error("AddParticle(Int_t,...)","Can not get particle class");
+ return;
+ }
+
+ AliVAODParticle* p = (AliVAODParticle*)partclass->New(arr[newpartidx]);
p->SetPdgCode(pdg);
p->SetUID(idx);
if ( (i<0) || (i>=GetNumberOfParticles()) ) return;
if ( (j<0) || (j>=GetNumberOfParticles()) ) return;
- AliVAODParticle* tmpobj = (AliVAODParticle*)fParticleClass->New();
+
+ TClass* partclass = GetParticleClass();
+ if (partclass == 0x0)
+ {
+ Error("SwapParticles","Can not get particle class");
+ return;
+ }
+
+ AliVAODParticle* tmpobj = (AliVAODParticle*)partclass->New();
AliVAODParticle& tmp = *tmpobj;
AliVAODParticle& first = *(GetParticle(i));
AliVAODParticle& second = *(GetParticle(j));
if (tp) tp->Move(x,y,z);
}
}
+/**************************************************************************/
-void AliAOD::Print(Option_t* /*option*/)
+void AliAOD::Print(const Option_t* /*option*/) const
{
//Prints AOD
TString ts;