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