]>
Commit | Line | Data |
---|---|---|
0ee00e25 | 1 | #ifndef ALITRDMCMTRACKLET_H |
2 | #define ALITRDMCMTRACKLET_H | |
3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
6 | /////////////////////////////////////////////////////// | |
e3b2b5e5 | 7 | // // |
8 | // Tracklet object (MCM/LTU) // | |
9 | // // | |
0ee00e25 | 10 | /////////////////////////////////////////////////////// |
11 | ||
12 | #include <TObject.h> | |
13 | ||
0ee00e25 | 14 | class TGraph; |
15 | ||
16 | class AliTRDgeometry; | |
17 | ||
18 | class AliTRDmcmTracklet : public TObject { | |
19 | ||
20 | public: | |
21 | ||
e3b2b5e5 | 22 | enum { kNclsPads = 3, kNtimeBins = 30, kNdict = 3 }; |
23 | ||
0ee00e25 | 24 | AliTRDmcmTracklet(); |
25 | AliTRDmcmTracklet(Int_t det, Int_t row, Int_t n); | |
6d50f529 | 26 | AliTRDmcmTracklet(const AliTRDmcmTracklet &t); |
27 | virtual ~AliTRDmcmTracklet(); | |
e3b2b5e5 | 28 | AliTRDmcmTracklet &operator=(const AliTRDmcmTracklet &t); |
6d50f529 | 29 | virtual void Copy(TObject &t) const; |
30 | ||
31 | void Reset(); | |
32 | ||
33 | void AddCluster(Int_t icol, Int_t itb, Float_t *adc, Int_t *track); | |
34 | void MakeTrackletGraph(AliTRDgeometry *geo = 0, Float_t field = 0); | |
35 | void MakeClusAmpGraph(); | |
36 | void CookLabel(Float_t frac); | |
37 | ||
38 | void SetRow(Int_t row) { fRow = row; }; | |
39 | void SetDetector(Int_t det) { fDetector = det; }; | |
40 | void SetN(Int_t n) { fN = n; }; | |
41 | ||
42 | Int_t GetNclusters() const { return fNclusters; }; | |
43 | Int_t GetDetector() const { return fDetector; }; | |
44 | Int_t GetRow() const { return fRow; }; | |
45 | Float_t GetOffset() const { return fOffset; }; | |
46 | Float_t GetSlope() const { return fSlope; }; | |
47 | Float_t GetTime0() const { return fTime0; }; | |
48 | Float_t GetRowz() const { return fRowz; }; | |
49 | Float_t GetPt() const { return fPt; }; | |
50 | Float_t GetdQdl() const { return fdQdl; }; | |
51 | Int_t GetLabel() const { return fTrackLabel; }; | |
52 | Int_t GetNumber() const { return fN; }; | |
e3b2b5e5 | 53 | Float_t GetOmegaTau(Float_t vdrift, Float_t field) const; |
54 | Float_t GetClusY(Float_t *adc, Int_t pla) const; | |
6d50f529 | 55 | TGraph *GetTrackletGraph() const { return fGPos; }; |
56 | TGraph *GetClusAmpGraph() const { return fGAmp; }; | |
57 | Float_t *GetClusterADC(Int_t icl) { return fADC[icl]; }; | |
58 | Int_t GetClusterTime(Int_t icl) const { return fTime[icl]; }; | |
59 | Int_t GetClusterCol(Int_t icl) const { return fCol[icl]; }; | |
0ee00e25 | 60 | |
61 | protected: | |
62 | ||
63 | Int_t fDetector; // TRD detector number (0 ... 539) | |
64 | Int_t fRow; // Row number in the detector | |
65 | Float_t fADC[kNtimeBins][kNclsPads]; // Array of ADC values in a pad group | |
66 | Int_t fTrack[kNtimeBins][kNdict]; //! Array of track dictionary values | |
67 | Int_t fTrackLabel; // Cooked track label | |
68 | Int_t fTime[kNtimeBins]; // Array of time bin values | |
69 | Int_t fCol[kNtimeBins]; // Array of pad column values | |
70 | Int_t fNclusters; // Number of clusters in the tracklet | |
71 | ||
6d50f529 | 72 | Int_t fN; // Tracklet number |
0ee00e25 | 73 | |
74 | TGraph *fGPos; //! Positions | |
75 | TGraph *fGAmp; //! Amplitudes | |
76 | ||
6d50f529 | 77 | Float_t fTime0; // X position at the entrance window |
78 | Float_t fRowz; // Z position of the row center | |
79 | Float_t fSlope; // Slope [deg] | |
80 | Float_t fOffset; // Offset | |
81 | Float_t fPt; // Transverse momentum | |
82 | Float_t fdQdl; // Charge per unit length | |
0ee00e25 | 83 | |
6d50f529 | 84 | ClassDef(AliTRDmcmTracklet,2) // Track segment for the TRD (Tracklet) |
0ee00e25 | 85 | |
86 | }; | |
87 | ||
88 | #endif |