]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TRD/AliTRDtrack.h
datamember added in AliGeomManager with number of alignable volumes per subdetector...
[u/mrichter/AliRoot.git] / TRD / AliTRDtrack.h
index c705f28bf9eb5d781d1df501cdaac937fb68b0fb..e5bd051889cf6d853f98765131b4154015fb6ff5 100644 (file)
 //                                                                           //
 ///////////////////////////////////////////////////////////////////////////////
 
+#include "AliESDtrack.h"
 #include "AliKalmanTrack.h"
 
 #include "AliTRDtracklet.h"
 
-class AliESDtrack;
+#ifndef ALITRDSEEDV1_H
+#include "AliTRDseedV1.h"
+#endif
+
 class AliTrackReference;
 class AliTRDcluster;
-
 class AliTRDtrack : public AliKalmanTrack {
 
  public:
@@ -28,7 +31,7 @@ class AliTRDtrack : public AliKalmanTrack {
    
   enum { kNdet      = 540
        , kNstacks   =  90
-       , kNplane    =   6
+       , kNplane    =   AliESDtrack::kTRDnPlanes
        , kNcham     =   5
        , kNsect     =  18
        , kNslice    =   3
@@ -44,7 +47,7 @@ class AliTRDtrack : public AliKalmanTrack {
                    , Double_t xr, Double_t alpha);
          AliTRDtrack(const AliTRDtrack &t/*, const Bool_t owner = kTRUE*/);    
          AliTRDtrack(const AliESDtrack &t);
       ~AliTRDtrack();
virtual ~AliTRDtrack();
          AliTRDtrack(const AliKalmanTrack &t, Double_t alpha); 
 
          void            ResetClusters()                              { SetChi2(0.0); 
@@ -87,6 +90,13 @@ class AliTRDtrack : public AliKalmanTrack {
          Float_t         GetBudget(Int_t i) const                     { return fBudget[i];                   }
          Float_t         GetChi2Last() const                          { return fChi2Last;                    }
          AliTRDtrack    *GetBackupTrack()                             { return fBackupTrack;                 }
+         // dummy to bridge the function in AliTRDtrackV1
+        //Int_t          GetNumberOfClusters() const                   { printf("AliTRDtrack::GetNumberOfClusters()\n"); 
+         //                                                               return AliKalmanTrack::GetNumberOfClusters();   }
+ inline virtual Int_t    GetNumberOfTracklets() const;
+ virtual Int_t           GetTrackletIndex(Int_t plane) const          { return plane>=0 && plane<6 
+                                                                             ? fTrackletIndex[plane] : -1;   } 
+
 
          void            SetdEdx(Double_t dedx)                       { fdEdx                      = dedx;   }
          void            SetStop(Bool_t stop)                         { fStopped                   = stop;   }
@@ -163,8 +173,8 @@ class AliTRDtrack : public AliKalmanTrack {
          Float_t  fDE;                                //  Integrated delta energy
          Float_t  fdEdxPlane[kNplane][kNslice];       //  dE/dx from all 6 planes in 3 slices each
          Int_t    fTimBinPlane[kNplane];              //  Time bin of Max cluster from all 6 planes
+         UChar_t  fPIDquality;                        //  No of planes used for PID calculation        
          Double_t fPID[AliPID::kSPECIES];             //  PID probabilities
-
         Float_t  fMom[kNplane];                      //  Track momentum at chamber entrance
         Float_t  fSnp[kNplane];                      //  Track direction
         Float_t  fTgl[kNplane];                      //  Track direction
@@ -188,9 +198,21 @@ class AliTRDtrack : public AliKalmanTrack {
   AliTRDtracklet  fTracklets[6];                      //  Tracklets
          Float_t  fBudget[3];                         //  Integrated material budget
   AliTRDtrack    *fBackupTrack;                       //! Backup track
+       
+        Int_t    fTrackletIndex[6];                  //  Tracklets index in the tracker list
+  AliTRDseedV1    fTracklet[6];                       //  Tracklets array defining the track
 
   ClassDef(AliTRDtrack,9)                             //  TRD reconstructed tracks
 
 };                     
 
+//___________________________________________________________
+inline Int_t AliTRDtrack::GetNumberOfTracklets() const
+{
+       Int_t ntrklt = 0;
+       for(int ip=0; ip<6; ip++) if(fTrackletIndex[ip] >= 0) ntrklt++;
+       return ntrklt;
+}
+
+
 #endif