]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/UPGRADE/AliITSUTrackerCooked.h
Accomodate the noise clusters by increasing the size of the corresponding arrays
[u/mrichter/AliRoot.git] / ITS / UPGRADE / AliITSUTrackerCooked.h
index 22e0860e2776a24606c3122e472fe31629851702..3702f9b89e57d400244e3e89d22823e141191063 100644 (file)
@@ -6,7 +6,7 @@
 //    The pattern recongintion based on the "cooked covariance" approach
 //-------------------------------------------------------------------------
 
-#include "AliTracker.h"
+#include "AliITSUTrackerGlo.h"
 
 class TTree;
 class TClonesArray;
@@ -16,13 +16,15 @@ class AliESDEvent;
 class AliCluster;
 class AliITSUClusterPix;
 class AliITSUTrackCooked;
+class AliITSUReconstructor;
 
 //-------------------------------------------------------------------------
-class AliITSUTrackerCooked : public AliTracker {
+class AliITSUTrackerCooked : public AliITSUTrackerGlo {
 public:
   enum {
-     kNLayers=7,kMaxClusterPerLayer=9999,kMaxSelected=kMaxClusterPerLayer/9};
-  AliITSUTrackerCooked();
+     kNLayers=7, kMaxClusterPerLayer=150000, kMaxSelected=kMaxClusterPerLayer/10
+  };
+  AliITSUTrackerCooked(AliITSUReconstructor *rec);
   virtual ~AliITSUTrackerCooked();
 
   // These functions must be implemented 
@@ -36,6 +38,9 @@ public:
 
   AliCluster *GetCluster(Int_t index) const;
 
+  void SetSAonly(Bool_t sa=kTRUE) {fSAonly=sa;}
+  Bool_t GetSAonly() const {return fSAonly;}
+
   // internal helper classes
   class AliITSUlayer;
 
@@ -64,7 +69,9 @@ private:
   AliITSUTrackCooked *fBestTrack;        // "best" track 
   AliITSUTrackCooked *fTrackToFollow;    // followed track
   
-  ClassDef(AliITSUTrackerCooked,1)   //ITSU stand-alone tracker
+  Bool_t fSAonly; // kTRUE if the standalone tracking only
+
+  ClassDef(AliITSUTrackerCooked,2)   //ITSU stand-alone tracker
 };
 
 
@@ -75,16 +82,19 @@ class AliITSUTrackerCooked::AliITSUlayer {
     AliITSUlayer();
     ~AliITSUlayer();
 
-    void InsertClusters(TClonesArray *clusters, Bool_t seedingLayer);
+    void InsertClusters(TClonesArray *clusters, Bool_t seedingLayer, Bool_t sa);
     void SetR(Double_t r) {fR=r;}
     void DeleteClusters();
-    Int_t 
-    SelectClusters(Float_t zMin,Float_t zMax,Float_t phiMin, Float_t phiMax);
+    void ResetSelectedClusters() {fI=0;}
+    void SelectClusters(Float_t phi, Float_t dy, Float_t z, Float_t dz);
     const AliCluster *GetNextCluster(Int_t &i); 
     void ResetTrack(const AliITSUTrackCooked &t);
     Int_t FindClusterIndex(Double_t z) const;
-    Double_t GetR() const {return fR;}
+    Float_t GetR() const {return fR;}
     AliCluster *GetCluster(Int_t i) const { return fClusters[i]; } 
+    Float_t GetXRef(Int_t i) const { return fXRef[i]; } 
+    Float_t GetAlphaRef(Int_t i) const { return fAlphaRef[i]; } 
+    Float_t GetClusterPhi(Int_t i) const { return fPhi[i]; } 
     Int_t GetNumberOfClusters() const {return fN;}
     const AliITSUTrackCooked *GetTrack() const {return fTrack;}
 
@@ -93,13 +103,18 @@ class AliITSUTrackerCooked::AliITSUlayer {
     AliITSUlayer &operator=(const AliITSUlayer &tr);  
     Int_t InsertCluster(AliCluster *c);
 
-    Double_t fR;                // mean radius of this layer
+    Float_t fR;                // mean radius of this layer
+
+    AliCluster *fClusters[kMaxClusterPerLayer]; // All clusters
+    Float_t fXRef[kMaxClusterPerLayer];     // x of the reference plane
+    Float_t fAlphaRef[kMaxClusterPerLayer]; // alpha of the reference plane
+    Float_t fPhi[kMaxClusterPerLayer]; // cluster phi 
+    Int_t fN; // Total number of clusters 
 
-    AliCluster *fClusters[kMaxClusterPerLayer]; //All clusters
-    Int_t fN; //number of clusters 
+    Int_t fIndex[kMaxSelected]; 
+    Int_t fNsel;      // Number of selected clusters
+    Int_t fI;         // Running index for the selected clusters  
 
-    Int_t fIndex[kMaxSelected]; // Indices of selected clusters 
-    Int_t fNsel;                // number of preselected clusters
     AliITSUTrackCooked *fTrack; // track estimation at this layer
   };