Added AliL3Stopwatch.
[u/mrichter/AliRoot.git] / HLT / comp / AliL3ModelTrack.h
1 #ifndef AliL3Model_Track
2 #define AliL3Model_Track
3
4 #include "AliL3Track.h"
5 #include "AliL3Models.h"
6
7 class AliL3ModelTrack : public AliL3Track {
8
9  private:
10   
11   Short_t fClusterCharge; //Average cluster charge
12   AliL3ClusterModel *fClusters; //!
13   AliL3TrackModel *fTrackModel; //!
14   Short_t fNClusters;
15   Int_t *fOverlap; //!
16   Float_t fXYResidualQ; //Quantization steps.
17   Float_t fZResidualQ;
18   Float_t fXYResolution;
19   Float_t fZResolution;
20   Float_t fXYWidthQ;
21   Float_t fZWidthQ;
22   Int_t fSlice;
23   Int_t fPatch;
24   Int_t fLabel;
25   
26   //Crossing points with padrows
27   Float_t *fPad; //!
28   Float_t *fTime; //!
29   
30  public:
31   AliL3ModelTrack();
32   virtual ~AliL3ModelTrack();
33   
34   void Init(Int_t slice,Int_t patch);
35   void SetCluster(Int_t row,Float_t dpad,Float_t dtime,Float_t charge,Float_t sigmaY2,Float_t sigmaZ2,Int_t npads);
36   void FillModel();
37   void FillTrack();
38   void Print();
39   void AssignTrackID(Float_t wrong=0.10);
40   
41   void SetTrackID(Int_t row,Int_t *trackID);
42   void SetPadHit(Int_t row,Float_t f);
43   void SetTimeHit(Int_t row,Float_t f);
44   void SetOverlap(Int_t row,Int_t id);
45   void SetXYResolution(Float_t f) {fXYResolution=f;}
46   void SetZResolution(Float_t f) {fZResolution=f;}
47   void SetLabel(Int_t i) {fLabel = i;}
48   Int_t CheckClustersQuality(UInt_t npads=3);
49   
50
51   Int_t GetTrackID(Int_t row,Int_t idindex);
52   AliL3ClusterModel *GetClusters() {return fClusters;}
53   AliL3TrackModel *GetModel() {return fTrackModel;}
54   AliL3ClusterModel *GetClusterModel(Int_t row);
55   Int_t GetOverlap(Int_t row);
56   Int_t GetNPads(Int_t row);
57   Float_t GetPadHit(Int_t row);
58   Float_t GetTimeHit(Int_t row);
59   Bool_t GetPad(Int_t row,Float_t &pad);
60   Bool_t GetTime(Int_t row,Float_t &time);
61   Bool_t GetClusterCharge(Int_t row,Int_t &charge);
62   Bool_t GetXYWidth(Int_t row,Float_t &width);
63   Bool_t GetZWidth(Int_t row,Float_t &width);
64   Bool_t GetPadResidual(Int_t row,Float_t &res);
65   Bool_t GetTimeResidual(Int_t row,Float_t &res);
66   Bool_t GetXYWidthResidual(Int_t row,Float_t &res);
67   Bool_t GetZWidthResidual(Int_t row,Float_t &res);
68   Int_t GetNClusters() {return fNClusters;}
69   Int_t GetLabel() {return fLabel;}
70
71   Double_t GetParSigmaY2(Int_t row);
72   Double_t GetParSigmaZ2(Int_t row);
73   
74   ClassDef(AliL3ModelTrack,1)
75
76 };
77
78 #endif