Checking in latest changes.
[u/mrichter/AliRoot.git] / HLT / hough / AliL3HoughTrack.h
1 #ifndef ALIL3_HOUGH_Track
2 #define ALIL3_HOUGH_Track
3
4 #include "AliL3Track.h"
5
6 class AliL3Transform;
7
8 class AliL3HoughTrack : public AliL3Track {
9   
10  private:
11
12   AliL3Transform *fTransform; //!
13   Double_t fMinDist;
14   Int_t fWeight;
15   Int_t fEtaIndex;
16   Double_t fEta;
17   Int_t fSlice; //The slice where this track was found
18
19   Double_t fDLine;
20   Double_t fPsiLine;
21  
22   Bool_t fIsHelix;
23
24  public:
25   AliL3HoughTrack(); 
26   virtual ~AliL3HoughTrack();
27   
28   virtual void Set(AliL3Track *track);
29   virtual Int_t Compare(const AliL3Track *track) const;
30   virtual void CalculateHelix();
31   
32   void UpdateToFirstRow();
33   void SetTrackParameters(Double_t kappa,Double_t phi,Int_t weight);  
34   void SetLineParameters(Double_t psi,Double_t D,Int_t weight,Int_t *rowrange,Int_t ref_row);
35
36   Int_t GetWeight()  const {return fWeight;}
37   Double_t GetPsiLine() const {return fPsiLine;}
38   Double_t GetDLine() const {return fDLine;}
39
40   Int_t GetEtaIndex() const {return fEtaIndex;}
41   Double_t GetEta() const {return fEta;}
42   Int_t GetSlice()  const {return fSlice;}
43   void GetLineCrossingPoint(Int_t padrow,Double_t *xy);
44
45   void SetSlice(Int_t slice) {fSlice=slice;}
46   void SetEta(Double_t f);
47   void SetWeight(Int_t i,Bool_t update=kFALSE) {if(update) fWeight+= i; else fWeight = i;}
48   void SetEtaIndex(Int_t f) {fEtaIndex = f;}
49   void SetBestMCid(Int_t f,Double_t min_dist);
50   void SetDLine(Double_t f) {fDLine=f;}
51   void SetPsiLine(Double_t f) {fPsiLine=f;}
52
53   ClassDef(AliL3HoughTrack,1) //Track class for Hough tracklets
54
55 };
56
57 #endif