]>
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 | ||
735e167e | 11 | public: |
12 | AliL3ModelTrack(); | |
13 | virtual ~AliL3ModelTrack(); | |
14 | ||
15 | void Init(Int_t slice,Int_t patch); | |
3e87ef69 | 16 | void CalculateClusterWidths(Int_t row,Bool_t parametrize=kFALSE); |
4a838220 | 17 | void SetCluster(Int_t row,Float_t dpad,Float_t dtime,Float_t charge,Float_t sigmaY2,Float_t sigmaZ2,Int_t npads); |
95a00d93 | 18 | void FillModel(); |
029912b7 | 19 | void FillTrack(); |
3e87ef69 | 20 | void Print(Bool_t everything=kTRUE); |
21 | void Set(AliL3Track *tpt); | |
22 | ||
029912b7 | 23 | void SetPadHit(Int_t row,Float_t f); |
24 | void SetTimeHit(Int_t row,Float_t f); | |
3e87ef69 | 25 | void SetCrossingAngleLUT(Int_t row,Float_t angle); |
029912b7 | 26 | void SetOverlap(Int_t row,Int_t id); |
3e87ef69 | 27 | void SetClusterLabel(Int_t row,Int_t *trackID); |
28 | void SetNClusters(Int_t i) {fNClusters = i;} | |
29 | ||
2357bb38 | 30 | Int_t GetNPresentClusters(); |
f64c4364 | 31 | Bool_t IsPresent(Int_t row); |
3e87ef69 | 32 | Bool_t IsSet(Int_t row); |
f64c4364 | 33 | |
95a00d93 | 34 | AliL3ClusterModel *GetClusters() {return fClusters;} |
95a00d93 | 35 | AliL3TrackModel *GetModel() {return fTrackModel;} |
029912b7 | 36 | AliL3ClusterModel *GetClusterModel(Int_t row); |
3e87ef69 | 37 | Int_t *GetOverlaps(Int_t row); |
38 | Int_t GetNOverlaps(Int_t row); | |
4a838220 | 39 | Int_t GetNPads(Int_t row); |
3e87ef69 | 40 | Int_t GetSlice(Int_t row); |
029912b7 | 41 | Float_t GetPadHit(Int_t row); |
42 | Float_t GetTimeHit(Int_t row); | |
3e87ef69 | 43 | Float_t GetCrossingAngleLUT(Int_t row); |
44 | Float_t GetParSigmaY2(Int_t row); | |
45 | Float_t GetParSigmaZ2(Int_t row); | |
029912b7 | 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); | |
1f1942b8 | 49 | Bool_t GetSigmaY2(Int_t row,Float_t &sigma2); |
50 | Bool_t GetSigmaZ2(Int_t row,Float_t &sigma2); | |
95a00d93 | 51 | Bool_t GetPadResidual(Int_t row,Float_t &res); |
52 | Bool_t GetTimeResidual(Int_t row,Float_t &res); | |
5a31e9df | 53 | Bool_t GetSigmaYResidual(Int_t row,Float_t &res); |
54 | Bool_t GetSigmaZResidual(Int_t row,Float_t &res); | |
b4686276 | 55 | Int_t GetNClusters() const {return fNClusters;} |
3e87ef69 | 56 | void GetClusterLabel(Int_t row,Int_t *trackID); |
57 | ||
b4686276 | 58 | private: |
59 | ||
60 | Short_t fClusterCharge; //Average cluster charge | |
61 | AliL3ClusterModel *fClusters; //! Clusters | |
62 | AliL3TrackModel *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 | ||
735e167e | 79 | ClassDef(AliL3ModelTrack,1) |
80 | ||
81 | }; | |
82 | ||
83 | #endif |