Negative indices allowed.
authormorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 29 Sep 2003 08:06:27 +0000 (08:06 +0000)
committermorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 29 Sep 2003 08:06:27 +0000 (08:06 +0000)
STEER/AliESDtrack.cxx

index 0bc6478..5edea6a 100644 (file)
@@ -24,6 +24,7 @@
 
 #include "AliESDtrack.h"
 #include "AliKalmanTrack.h"
+#include "../ITS/AliITStrackV2.h"
 
 ClassImp(AliESDtrack)
 
@@ -31,8 +32,8 @@ ClassImp(AliESDtrack)
 AliESDtrack::AliESDtrack() : 
 fFlags(0), 
 fITSncls(0),
-fVertex(kFALSE),
-fTPCncls(0)
+fTPCncls(0),
+fVertex(kFALSE)
 {
   //
   // The default ESD constructor 
@@ -107,26 +108,30 @@ Bool_t AliESDtrack::UpdateTrackParams(AliKalmanTrack *t, ULong_t flags) {
   
   if (flags == kITSin)
    {
-     t->PropagateTo(3.,0.0028,65.19);
-     t->PropagateToPrimVertex(0.,0.);
-
-     Double_t ralpha=t->GetAlpha();
-     Double_t rx;      // X-coordinate of the track reference plane 
-     Double_t rp[5];   // external track parameters  
-     t->GetExternalParameters(rx,rp);
-
-     Double_t phi=TMath::ASin(rp[2]) + ralpha;
-     Double_t pt=1./TMath::Abs(rp[4]);
-     Double_t r=TMath::Sqrt(rx*rx + rp[0]*rp[0]);
-
-     fVertexX=r*TMath::Cos(phi); 
-     fVertexY=r*TMath::Sin(phi); 
-     fVertexZ=rp[1]; 
-
-     fVertexPx = pt*TMath::Cos(phi); 
-     fVertexPy = pt*TMath::Sin(phi);
-     fVertexPz = pt*rp[3]; 
-     fVertex = kTRUE;
+     AliITStrackV2* itstrack = dynamic_cast<AliITStrackV2*>(t);
+     if (itstrack)
+      {
+        itstrack->PropagateTo(3.,0.0028,65.19);
+        itstrack->PropagateToVertex();
+        
+        Double_t ralpha=t->GetAlpha();
+        Double_t rx;      // X-coordinate of the track reference plane 
+        Double_t rp[5];   // external track parameters  
+        t->GetExternalParameters(rx,rp);
+   
+        Double_t phi=TMath::ASin(rp[2]) + ralpha;
+        Double_t pt=1./TMath::Abs(rp[4]);
+        Double_t r=TMath::Sqrt(rx*rx + rp[0]*rp[0]);
+        
+        fVertexX=r*TMath::Cos(phi); 
+        fVertexY=r*TMath::Sin(phi); 
+        fVertexZ=rp[1]; 
+        
+        fVertexPx = pt*TMath::Cos(phi); 
+        fVertexPy = pt*TMath::Sin(phi); 
+        fVertexPz = pt*rp[3]; 
+        fVertex = kTRUE;
+      }
    }
   
   return kTRUE;
@@ -225,11 +230,11 @@ Int_t AliESDtrack::GetITSclusters(UInt_t *idx) const {
 }
 
 //_______________________________________________________________________
-Int_t AliESDtrack::GetTPCclusters(UInt_t *idx) const {
+Int_t AliESDtrack::GetTPCclusters(Int_t *idx) const {
   //---------------------------------------------------------------------
   // This function returns indices of the assgined ITS clusters 
   //---------------------------------------------------------------------
-  for (Int_t i=0; i<fTPCncls; i++) idx[i]=fTPCindex[i];
+  for (Int_t i=0; i<180; i++) idx[i]=fTPCindex[i];  // MI I prefer some constant
   return fTPCncls;
 }