]>
Commit | Line | Data |
---|---|---|
3e87ef69 | 1 | // @(#) $Id$ |
2 | ||
735e167e | 3 | #ifndef AliL3Model_Track |
4 | #define AliL3Model_Track | |
5 | ||
6 | #include "AliL3Track.h" | |
95a00d93 | 7 | #include "AliL3Models.h" |
92a876e2 | 8 | |
735e167e | 9 | class AliL3ModelTrack : public AliL3Track { |
10 | ||
11 | private: | |
12 | ||
13 | Short_t fClusterCharge; //Average cluster charge | |
95a00d93 | 14 | AliL3ClusterModel *fClusters; //! |
15 | AliL3TrackModel *fTrackModel; //! | |
735e167e | 16 | Short_t fNClusters; |
3e87ef69 | 17 | Int_t fMaxOverlaps; |
18 | Int_t *fNoverlaps; //! | |
19 | Int_t **fOverlap; //! | |
20 | Float_t *fParSigmaY2; //! | |
21 | Float_t *fParSigmaZ2; //! | |
22 | Float_t *fCrossingAngle; //! | |
029912b7 | 23 | Int_t fPatch; |
3e87ef69 | 24 | |
735e167e | 25 | //Crossing points with padrows |
26 | Float_t *fPad; //! | |
27 | Float_t *fTime; //! | |
28 | ||
6f388e0d | 29 | Float_t QuantizePad(Int_t row,Float_t pad); |
30 | Float_t QuantizeTime(Int_t row,Float_t time); | |
31 | Float_t QuantizeSigmaY2(Int_t row,Float_t dsigmaY2); | |
32 | Float_t QuantizeSigmaZ2(Int_t row,Float_t dsigmaZ2); | |
33 | Float_t RetrievePad(Int_t row,Float_t dpad); | |
34 | Float_t RetrieveTime(Int_t row,Float_t time); | |
35 | Float_t RetrieveSigmaY2(Int_t row,Float_t dsigmaY2); | |
36 | Float_t RetrieveSigmaZ2(Int_t row,Float_t dsigmaZ2); | |
37 | ||
735e167e | 38 | public: |
39 | AliL3ModelTrack(); | |
40 | virtual ~AliL3ModelTrack(); | |
41 | ||
42 | void Init(Int_t slice,Int_t patch); | |
3e87ef69 | 43 | void CalculateClusterWidths(Int_t row,Bool_t parametrize=kFALSE); |
4a838220 | 44 | void SetCluster(Int_t row,Float_t dpad,Float_t dtime,Float_t charge,Float_t sigmaY2,Float_t sigmaZ2,Int_t npads); |
95a00d93 | 45 | void FillModel(); |
029912b7 | 46 | void FillTrack(); |
3e87ef69 | 47 | void Print(Bool_t everything=kTRUE); |
48 | void Set(AliL3Track *tpt); | |
49 | ||
029912b7 | 50 | void SetPadHit(Int_t row,Float_t f); |
51 | void SetTimeHit(Int_t row,Float_t f); | |
3e87ef69 | 52 | void SetCrossingAngleLUT(Int_t row,Float_t angle); |
029912b7 | 53 | void SetOverlap(Int_t row,Int_t id); |
3e87ef69 | 54 | void SetClusterLabel(Int_t row,Int_t *trackID); |
55 | void SetNClusters(Int_t i) {fNClusters = i;} | |
56 | ||
2357bb38 | 57 | Int_t GetNPresentClusters(); |
f64c4364 | 58 | Bool_t IsPresent(Int_t row); |
3e87ef69 | 59 | Bool_t IsSet(Int_t row); |
f64c4364 | 60 | |
95a00d93 | 61 | AliL3ClusterModel *GetClusters() {return fClusters;} |
95a00d93 | 62 | AliL3TrackModel *GetModel() {return fTrackModel;} |
029912b7 | 63 | AliL3ClusterModel *GetClusterModel(Int_t row); |
3e87ef69 | 64 | Int_t *GetOverlaps(Int_t row); |
65 | Int_t GetNOverlaps(Int_t row); | |
4a838220 | 66 | Int_t GetNPads(Int_t row); |
3e87ef69 | 67 | Int_t GetSlice(Int_t row); |
029912b7 | 68 | Float_t GetPadHit(Int_t row); |
69 | Float_t GetTimeHit(Int_t row); | |
3e87ef69 | 70 | Float_t GetCrossingAngleLUT(Int_t row); |
71 | Float_t GetParSigmaY2(Int_t row); | |
72 | Float_t GetParSigmaZ2(Int_t row); | |
029912b7 | 73 | Bool_t GetPad(Int_t row,Float_t &pad); |
74 | Bool_t GetTime(Int_t row,Float_t &time); | |
75 | Bool_t GetClusterCharge(Int_t row,Int_t &charge); | |
76 | Bool_t GetXYWidth(Int_t row,Float_t &width); | |
77 | Bool_t GetZWidth(Int_t row,Float_t &width); | |
95a00d93 | 78 | Bool_t GetPadResidual(Int_t row,Float_t &res); |
79 | Bool_t GetTimeResidual(Int_t row,Float_t &res); | |
4a838220 | 80 | Bool_t GetXYWidthResidual(Int_t row,Float_t &res); |
81 | Bool_t GetZWidthResidual(Int_t row,Float_t &res); | |
95a00d93 | 82 | Int_t GetNClusters() {return fNClusters;} |
3e87ef69 | 83 | void GetClusterLabel(Int_t row,Int_t *trackID); |
84 | ||
735e167e | 85 | ClassDef(AliL3ModelTrack,1) |
86 | ||
87 | }; | |
88 | ||
89 | #endif |