]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliESDfriendTrack.cxx
Cluster types (Gustavo)
[u/mrichter/AliRoot.git] / STEER / AliESDfriendTrack.cxx
index 72e7b792e8477089f2db257bd6ba033129690e88..87937fc8aee6c70e378698717568bafd1efefd4f 100644 (file)
 //-------------------------------------------------------------------------
 #include "AliTrackPointArray.h"
 #include "AliESDfriendTrack.h"
-#include "AliESD.h"
+#include "AliKalmanTrack.h"
+#include "TObjArray.h"
 
 ClassImp(AliESDfriendTrack)
 
-  AliESDfriendTrack::AliESDfriendTrack(): TObject(), f1P(0), fPoints(0) {
+AliESDfriendTrack::AliESDfriendTrack(): 
+TObject(), 
+f1P(0), 
+fPoints(0),
+fCalibContainer(0),
+fITStrack(0),
+fTRDtrack(0)
+{
   //
   // Default constructor
   //
   Int_t i;
-  for (i=0; i<AliESDtrack::kMaxITScluster; i++) fITSindex[i]=-2;
-  for (i=0; i<AliESDtrack::kMaxTPCcluster; i++) fTPCindex[i]=-2;
-  for (i=0; i<AliESDtrack::kMaxTRDcluster; i++) fTRDindex[i]=-2;
+  for (i=0; i<kMaxITScluster; i++) fITSindex[i]=-2;
+  for (i=0; i<kMaxTPCcluster; i++) fTPCindex[i]=-2;
+  for (i=0; i<kMaxTRDcluster; i++) fTRDindex[i]=-2;
 }
 
 AliESDfriendTrack::AliESDfriendTrack(const AliESDfriendTrack &t): 
 TObject(t),
 f1P(t.f1P),
-fPoints(0)
+fPoints(0),
+fCalibContainer(0),
+fITStrack(0),
+fTRDtrack(0)
 {
   //
   // Copy constructor
   //
   Int_t i;
-  for (i=0; i<AliESDtrack::kMaxITScluster; i++) fITSindex[i]=t.fITSindex[i];
-  for (i=0; i<AliESDtrack::kMaxTPCcluster; i++) fTPCindex[i]=t.fTPCindex[i];
-  for (i=0; i<AliESDtrack::kMaxTRDcluster; i++) fTRDindex[i]=t.fTRDindex[i];
+  for (i=0; i<kMaxITScluster; i++) fITSindex[i]=t.fITSindex[i];
+  for (i=0; i<kMaxTPCcluster; i++) fTPCindex[i]=t.fTPCindex[i];
+  for (i=0; i<kMaxTRDcluster; i++) fTRDindex[i]=t.fTRDindex[i];
   if (t.fPoints) fPoints=new AliTrackPointArray(*t.fPoints);
+  if (t.fCalibContainer) fCalibContainer = new TObjArray(*(t.fCalibContainer));
 }
 
-AliESDfriendTrack::AliESDfriendTrack(const AliESDtrack &t): 
-TObject(t),
-f1P(t.Get1P()),
-fPoints(0) 
-{
+AliESDfriendTrack::~AliESDfriendTrack() {
+  //
+  // Simple destructor
+  //
+   delete fPoints;
+   delete fCalibContainer;
+   delete fITStrack;
+   delete fTRDtrack;
+}
+
+
+void AliESDfriendTrack::AddCalibObject(TObject * calibObject){
   //
-  // Extracts the complementary info from the ESD track
+  // add calibration object to array -
+  // track is owner of the objects in the container 
   //
-  t.GetITSclusters(fITSindex); 
-  t.GetTPCclusters(fTPCindex); 
-  t.GetTRDclusters(fTRDindex); 
-  const AliTrackPointArray *points=t.GetTrackPointArray();
-  if (points) fPoints=new AliTrackPointArray(*points);
+  if (!fCalibContainer) fCalibContainer = new TObjArray(5);
+  fCalibContainer->AddLast(calibObject);
 }
 
-AliESDfriendTrack::~AliESDfriendTrack() {delete fPoints;}
+TObject * AliESDfriendTrack::GetCalibObject(Int_t index){
+  //
+  //
+  //
+  if (!fCalibContainer) return 0;
+  if (index>=fCalibContainer->GetEntriesFast()) return 0;
+  return fCalibContainer->At(index);
+}