]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TPCLib/AliHLTTPCModelTrack.h
- configure adapted to the new directory structure of the HOMER module in PubSub
[u/mrichter/AliRoot.git] / HLT / TPCLib / AliHLTTPCModelTrack.h
1 // @(#) $Id$
2 // Original: AliL3ModelTrack.h,v 1.13 2004/06/15 10:26:57 hristov 
3
4 #ifndef AliHLTTPCModel_Track
5 #define AliHLTTPCModel_Track
6
7 #include "AliHLTTPCTrack.h"
8 #include "AliHLTTPCModels.h"
9
10 class AliHLTTPCModelTrack : public AliHLTTPCTrack {
11
12  public:
13   AliHLTTPCModelTrack();
14   virtual ~AliHLTTPCModelTrack();
15   
16   void Init(Int_t slice,Int_t patch);
17   void CalculateClusterWidths(Int_t row,Bool_t parametrize=kFALSE);
18   void SetCluster(Int_t row,Float_t dpad,Float_t dtime,Float_t charge,Float_t sigmaY2,Float_t sigmaZ2,Int_t npads);
19   void FillModel();
20   void FillTrack();
21   void Print(Bool_t everything=kTRUE);
22   void Set(AliHLTTPCTrack *tpt);
23
24   void SetPadHit(Int_t row,Float_t f);
25   void SetTimeHit(Int_t row,Float_t f);
26   void SetCrossingAngleLUT(Int_t row,Float_t angle);
27   void SetOverlap(Int_t row,Int_t id);
28   void SetClusterLabel(Int_t row,Int_t *trackID);
29   void SetNClusters(Int_t i) {fNClusters = i;}
30   
31   Int_t GetNPresentClusters();
32   Bool_t IsPresent(Int_t row);
33   Bool_t IsSet(Int_t row);
34   
35   AliHLTTPCClusterModel *GetClusters() {return fClusters;}
36   AliHLTTPCTrackModel *GetModel() {return fTrackModel;}
37   AliHLTTPCClusterModel *GetClusterModel(Int_t row);
38   Int_t *GetOverlaps(Int_t row);
39   Int_t GetNOverlaps(Int_t row);
40   Int_t GetNPads(Int_t row);
41   Int_t GetSlice(Int_t row);
42   Float_t GetPadHit(Int_t row);
43   Float_t GetTimeHit(Int_t row);
44   Float_t GetCrossingAngleLUT(Int_t row);
45   Float_t GetParSigmaY2(Int_t row);
46   Float_t GetParSigmaZ2(Int_t row);
47   Bool_t GetPad(Int_t row,Float_t &pad);
48   Bool_t GetTime(Int_t row,Float_t &time);
49   Bool_t GetClusterCharge(Int_t row,Int_t &charge);
50   Bool_t GetSigmaY2(Int_t row,Float_t &sigma2);
51   Bool_t GetSigmaZ2(Int_t row,Float_t &sigma2);
52   Bool_t GetPadResidual(Int_t row,Float_t &res);
53   Bool_t GetTimeResidual(Int_t row,Float_t &res);
54   Bool_t GetSigmaYResidual(Int_t row,Float_t &res);
55   Bool_t GetSigmaZResidual(Int_t row,Float_t &res);
56   Int_t GetNClusters() const {return fNClusters;}
57   void GetClusterLabel(Int_t row,Int_t *trackID);
58     
59  private:
60   
61   Short_t fClusterCharge; //Average cluster charge
62   AliHLTTPCClusterModel *fClusters; //! Clusters
63   AliHLTTPCTrackModel *fTrackModel; //! Track model
64   Short_t fNClusters; // Number of clusters
65   Int_t fMaxOverlaps; // Max overlaps (?)
66   Int_t *fNoverlaps; //! Number of overlaps
67   Int_t **fOverlap; //! Table of overlaps(?)
68   Float_t *fParSigmaY2;    //! Parameter SigmaY2 (?)
69   Float_t *fParSigmaZ2;    //! Parameter SigmaZ2 (?)
70   Float_t *fCrossingAngle; //! Crossing angle
71   Int_t fPatch; // Current patch
72   Bool_t fArraysCreated; // Flag if arrays were created
73
74   //Crossing points with padrows
75   Float_t *fPad;  //! Current pad
76   Float_t *fTime;  //! Current time
77   
78   void DeleteArrays();
79   
80   ClassDef(AliHLTTPCModelTrack,1)
81
82 };
83
84 #endif