Alignment framework (C.Cheshkov). More information is available in http://agenda...
[u/mrichter/AliRoot.git] / STEER / AliESDtrack.cxx
index 45ed5655b4a44702bb949b31dcbd38d4ebab1041..0270c607c1e4931fc45b202d6aa850bc09a70f21 100644 (file)
@@ -24,6 +24,7 @@
 
 #include "AliESDtrack.h"
 #include "AliKalmanTrack.h"
+#include "AliTrackPointArray.h"
 #include "AliLog.h"
 
 ClassImp(AliESDtrack)
@@ -78,7 +79,8 @@ AliESDtrack::AliESDtrack() :
   fRICHtheta(0),
   fRICHphi(0),
   fRICHdx(0),
-  fRICHdy(0)
+  fRICHdy(0),
+  fPoints(0)
 {
   //
   // The default ESD constructor 
@@ -176,7 +178,8 @@ AliESDtrack::AliESDtrack(const AliESDtrack& track):
   fRICHtheta(track.fRICHtheta),
   fRICHphi(track.fRICHphi),
   fRICHdx(track.fRICHdx),
-  fRICHdy(track.fRICHdy)
+  fRICHdy(track.fRICHdy),
+  fPoints(track.fPoints)
 {
   //
   //copy constructor
@@ -232,7 +235,8 @@ AliESDtrack::~AliESDtrack(){
   //
   //printf("Delete track\n");
   delete fITStrack;
-  delete fTRDtrack;  
+  delete fTRDtrack; 
+  delete fPoints;
 }
 
 //_______________________________________________________________________
@@ -341,6 +345,7 @@ void AliESDtrack::MakeMiniESDtrack(){
   fRICHdx = 0;     
   fRICHdy = 0;      
 
+  fPoints = 0;
 } 
 //_______________________________________________________________________
 Double_t AliESDtrack::GetMass() const {
@@ -776,6 +781,58 @@ void AliESDtrack::GetInnerExternalCovariance(Double_t cov[15]) const
  
 }
 
+Int_t AliESDtrack::GetNcls(Int_t idet) const
+{
+  // Get number of clusters by subdetector index
+  //
+  Int_t ncls = 0;
+  switch(idet){
+  case 0:
+    ncls = fITSncls;
+    break;
+  case 1:
+    ncls = fTPCncls;
+    break;
+  case 2:
+    ncls = fTRDncls;
+    break;
+  case 3:
+    if (fTOFindex != 0)
+      ncls = 1;
+    break;
+  default:
+    break;
+  }
+  return ncls;
+}
+
+Int_t AliESDtrack::GetClusters(Int_t idet, UInt_t *idx) const
+{
+  // Get cluster index array by subdetector index
+  //
+  Int_t ncls = 0;
+  switch(idet){
+  case 0:
+    ncls = GetITSclusters(idx);
+    break;
+  case 1:
+    ncls = GetTPCclusters((Int_t *)idx);
+    break;
+  case 2:
+    ncls = GetTRDclusters(idx);
+    break;
+  case 3:
+    if (fTOFindex != 0) {
+      idx[0] = GetTOFcluster();
+      ncls = 1;
+    }
+    break;
+  default:
+    break;
+  }
+  return ncls;
+}
+
 void  AliESDtrack::GetTRDExternalParameters(Double_t &x, Double_t&alpha, Double_t p[5], Double_t cov[15]) const
 {
   //