]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HLT/src/AliL3Track.h
Made it possible to use different cuts for nonvertex tracking
[u/mrichter/AliRoot.git] / HLT / src / AliL3Track.h
index 478c0d89fe86f22f6985e537f82e1a7d30777a23..e2ee2af7b919bbf040532c746c31b057b7eec867 100644 (file)
@@ -5,6 +5,8 @@
 
 #include "AliL3RootTypes.h"
 
+class AliL3Vertex;
+
 class AliL3Track {
   
  private:
@@ -47,12 +49,11 @@ class AliL3Track {
   
   Bool_t fIsLocal; //Track given in local coordinates.
 
-  UInt_t fHitNumbers[174];  //Array of hit numbers for this track
+  UInt_t fHitNumbers[176];  //Array of hit numbers for this track
 
  protected:
 
   static Float_t BFACT;
-  static Float_t bField;
   static Double_t pi;
  
  public:
@@ -61,17 +62,19 @@ class AliL3Track {
   virtual ~AliL3Track();
   
   virtual void Set(AliL3Track* track);
+  virtual Int_t Compare(const AliL3Track *track) const;
+  virtual void CalculateHelix();
   
-  Bool_t CalculateReferencePoint(Double_t angle);//Calculate Reference Point
+  Bool_t CalculateReferencePoint(Double_t angle,Double_t radius=132);//Calculate Reference Point
   Bool_t CalculateEdgePoint(Double_t angle);//Calculate crossing point with line
   Bool_t CalculatePoint(Double_t xplane);//Calculate crossing point with X-plane
   Bool_t IsPoint() {return fIsPoint;}
-  void CalculateHelix();
   Double_t GetCrossingAngle(Int_t padrow);
   Bool_t GetCrossingPoint(Int_t padrow,Float_t *xyz);
   Double_t GetDistance(Double_t x0,Double_t x1){return 0;}
   
-  void Rotate(Int_t slice);
+  void GetClosestPoint(AliL3Vertex *vertex,Double_t &closest_x,Double_t &closest_y,Double_t &closest_z);
+  void Rotate(Int_t slice,Bool_t tolocal=kFALSE);
   Bool_t IsLocal() {return fIsLocal;}
 
   // getter
@@ -92,14 +95,15 @@ class AliL3Track {
   Double_t GetPhi0() const {return fPhi0;}
   Double_t GetPsi() const {return fPsi;}
   Double_t GetR0() const {return fR0;}
-  Double_t GetZ0() const {return fZ0;}
-
+  Double_t GetZ0() const {return fFirstPoint[2];}
+  //Double_t GetZ0() const {return fZ0;}
+  
   Double_t   GetKappa()            const { return fKappa;}
   Double_t   GetRadius()           const { return fRadius;}
   Double_t   GetCenterX()          const { return fCenterX;}
   Double_t   GetCenterY()          const { return fCenterY;}
 
-  Int_t GetNHits() {return fNHits;}
+  Int_t GetNHits() const {return fNHits;}
   Int_t   GetNumberOfPoints()   const {return fNHits;}
   Bool_t  ComesFromMainVertex() const { return fFromMainVertex;}
     
@@ -109,7 +113,7 @@ class AliL3Track {
   
   Double_t   GetP() const;
   Double_t   GetPseudoRapidity() const;
-  Double_t   GetEta() const; 
+  //Double_t   GetEta() const; 
   Double_t   GetRapidity() const;
   
   Int_t   GetCharge()           const { return fQ;}
@@ -122,6 +126,7 @@ class AliL3Track {
   UInt_t *GetHitNumbers() {return fHitNumbers;}
 
   // setter   
+  
   void SetMCid(Int_t f) {fMCid = f;}
   void SetFirstPoint(Double_t f,Double_t g,Double_t h) {fFirstPoint[0]=f; fFirstPoint[1]=g; fFirstPoint[2]=h;}
   void SetLastPoint(Double_t f,Double_t g,Double_t h) {fLastPoint[0]=f; fLastPoint[1]=g; fLastPoint[2]=h;}
@@ -132,7 +137,8 @@ class AliL3Track {
   void SetPsi(Double_t f) {fPsi = f;}
   void SetR0(Double_t f) {fR0 = f;}
   void SetTgl(Double_t f) {fTanl =f;}
-  void SetZ0(Double_t f) {fZ0 = f;}
+  //void SetZ0(Double_t f) {fZ0 = f;}
+  void SetZ0(Double_t f) {fFirstPoint[2] = f;}
   void SetPt(Double_t f) {fPt = f;}
   void SetLength(Double_t f) {fLength = f;}
   void SetPterr(Double_t f) {fPterr = f;}
@@ -154,7 +160,7 @@ class AliL3Track {
   
   void   ComesFromMainVertex(Bool_t f) { fFromMainVertex = f; }
   
-  ClassDef(AliL3Track,1) //Conformal mapping track class
+  ClassDef(AliL3Track,1) //Base track class
 };
     
 #endif