]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TOF/AliTOFtracker.h
provide possibility for additional category of systematic uncertainties
[u/mrichter/AliRoot.git] / TOF / AliTOFtracker.h
index 95f234bc34f948774434b37b998c3e19dfbc5a8f..437d74d75ebab89536963aab83e0a98ef7ec90bc 100644 (file)
@@ -21,7 +21,8 @@
 #include "AliTracker.h"
 
 #include "TObject.h"
-
+#include "AliESDTOFCluster.h"
+#include "AliESDTOFHit.h"
 
 class TClonesArray;
 class TObjArray;
@@ -42,24 +43,25 @@ class AliTOFtrackPoint : public TObject {
 
   AliTOFtrackPoint() :
     fIndex(0),fDistance(0),fDistanceZ(0),
-    fDistanceY(0),fPropRadius(0),fLength(0) { };
+    fDistanceY(0),fDistanceX(0),fPropRadius(0),fLength(0) { };
   AliTOFtrackPoint(Int_t index,Float_t dist,Float_t distZ,
-                  Float_t distY,Float_t radius,Float_t length) :
+                  Float_t distY,Float_t distX,Float_t radius,Float_t length) :
     TObject(),
     fIndex(index),fDistance(dist),fDistanceZ(distZ),
-    fDistanceY(distY),fPropRadius(radius),fLength(length) { };
+    fDistanceY(distY),fDistanceX(distX),fPropRadius(radius),fLength(length) { };
   AliTOFtrackPoint(const AliTOFtrackPoint & source) :
     TObject(source),
     fIndex(source.fIndex),
     fDistance(source.fDistance),
     fDistanceZ(source.fDistanceZ),
     fDistanceY(source.fDistanceY),
+    fDistanceX(source.fDistanceX),
     fPropRadius(source.fPropRadius),
     fLength(source.fLength) { };
   AliTOFtrackPoint & operator=(const AliTOFtrackPoint & source)
     { if (this == &source) return *this;
       TObject::operator=(source);
-      fDistance=source.fDistance;fDistanceZ=source.fDistanceZ;fDistanceY=source.fDistanceY;
+      fDistance=source.fDistance;fDistanceZ=source.fDistanceZ;fDistanceY=source.fDistanceY;fDistanceX=source.fDistanceX;
       fPropRadius=source.fPropRadius;fLength=source.fLength;
       return *this; };
 
@@ -67,6 +69,7 @@ class AliTOFtrackPoint : public TObject {
   Float_t Distance()  const {return fDistance;} // distance
   Float_t DistanceZ() const {return fDistanceZ;} // distance, Z component
   Float_t DistanceY() const {return fDistanceY;} // distance, Y  component
+  Float_t DistanceX() const {return fDistanceX;} // distance, X  component
   Float_t PropRadius() const {return fPropRadius;} // propagation radius at TOF
   Float_t Length() const {return fLength;} // reconstructed track length at TOF
 
@@ -76,10 +79,11 @@ class AliTOFtrackPoint : public TObject {
   Float_t fDistance; // track-cluster distance
   Float_t fDistanceZ; //  Z component of track-cluster distance
   Float_t fDistanceY; //  Y component of track-cluster distance
+  Float_t fDistanceX; //  X component of track-cluster distance
   Float_t fPropRadius; // track propagation radius
   Float_t fLength; // receonstructed track length
 
-  //ClassDef(AliTOFtrackPoint, 1) // TOF matchable cluster
+  //ClassDef(AliTOFtrackPoint, 2) // TOF matchable cluster
 
 }; 
 
@@ -100,11 +104,15 @@ class AliTOFtracker : public AliTracker {
    {if (index==-1 || index >= fN) return NULL;
    return (AliCluster *) fClusters[index];};
  Bool_t GetTrackPoint(Int_t index, AliTrackPoint& p) const;
+ Int_t GetNumberOfMatchedTOFtracks() const {return fnmatch;}
  void InitCheckHists();
  void SaveCheckHists();
  void FillClusterArray(TObjArray* arr) const;
+ protected:
+ AliESDTOFCluster* GetESDTOFCluster(int clID);
 
-private:
+ private:
 
  enum {kMaxCluster=77777}; //maximal number of the TOF clusters
 
@@ -112,7 +120,7 @@ private:
  AliTOFtracker& operator=(const AliTOFtracker &source); // ass. op.
 
  Int_t FindClusterIndex(Double_t z) const; // Returns cluster index 
- void  MatchTracks(Bool_t mLastStep); // Matching Algorithm 
+ void  MatchTracks(Int_t mLastStep); // Matching Algorithm 
  void  CollectESD(); // Select starting Set for Matching 
  Float_t CorrectTimeWalk(Float_t dist,Float_t tof) const; // Time Walk correction
 
@@ -127,6 +135,8 @@ private:
  Int_t fnbadmatch;      // Wrongly matched tracks
  Int_t fnunmatch;       // Unmatched tracks
  Int_t fnmatch;         // Total matched tracks
+
+ AliESDEvent*  fESDEv;  //! pointer on the esd event
  
  TClonesArray* fTracks; //! pointer to the TClonesArray with TOF tracks
  TObjArray* fSeeds;  //! pointer to the TObjArray with ESD tracks
@@ -154,7 +164,11 @@ private:
  Float_t fExpTimeKa; // exp time, Kaons
  Float_t fExpTimePr; // exp time, Protons
 
- ClassDef(AliTOFtracker, 6) // TOF tracker 
+ Int_t fNTOFmatched;                   // number of matched TOF cluster
+ // AliESDTOFCluster *fClusterESD[20000]; // pointers to the TOF clusters for ESD
+ // AliESDTOFHit *fHit[20000];            // pointers to the TOF hits for ESD
+
+ ClassDef(AliTOFtracker, 9) // TOF tracker 
 };
 
 #endif