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); |
26 | virtual ~AliTRDmcmTracklet(); |
e3b2b5e5 |
27 | AliTRDmcmTracklet &operator=(const AliTRDmcmTracklet &t); |
28 | virtual void Copy(TObject &t) const; |
29 | |
3fcb9908 |
30 | void Reset(); |
31 | |
e3b2b5e5 |
32 | void AddCluster(Int_t icol, Int_t itb, Float_t *adc, Int_t *track); |
33 | void MakeTrackletGraph(AliTRDgeometry *geo = 0, Float_t field = 0); |
34 | void MakeClusAmpGraph(); |
35 | void CookLabel(Float_t frac); |
36 | |
3fcb9908 |
37 | void SetRow(Int_t row) { fRow = row; }; |
38 | void SetDetector(Int_t det) { fDetector = det; }; |
39 | void SetN(Int_t n) { fN = n; }; |
40 | |
e3b2b5e5 |
41 | Int_t GetNclusters() const { return fNclusters; }; |
42 | Int_t GetDetector() const { return fDetector; }; |
43 | Int_t GetRow() const { return fRow; }; |
44 | Float_t GetOffset() const { return fOffset; }; |
45 | Float_t GetSlope() const { return fSlope; }; |
46 | Float_t GetTime0() const { return fTime0; }; |
47 | Float_t GetRowz() const { return fRowz; }; |
48 | Float_t GetPt() const { return fPt; }; |
49 | Float_t GetdQdl() const { return fdQdl; }; |
50 | Int_t GetLabel() const { return fTrackLabel; }; |
51 | Int_t GetNumber() const { return fN; }; |
52 | Float_t GetOmegaTau(Float_t vdrift, Float_t field) const; |
53 | Float_t GetClusY(Float_t *adc, Int_t pla) const; |
54 | TGraph *GetTrackletGraph() const { return fGPos; }; |
55 | TGraph *GetClusAmpGraph() const { return fGAmp; }; |
56 | Float_t *GetClusterADC(Int_t icl) { return fADC[icl]; }; |
57 | Int_t GetClusterTime(Int_t icl) const { return fTime[icl]; }; |
58 | Int_t GetClusterCol(Int_t icl) const { return fCol[icl]; }; |
0ee00e25 |
59 | |
60 | protected: |
61 | |
62 | Int_t fDetector; // TRD detector number (0 ... 539) |
63 | Int_t fRow; // Row number in the detector |
64 | Float_t fADC[kNtimeBins][kNclsPads]; // Array of ADC values in a pad group |
65 | Int_t fTrack[kNtimeBins][kNdict]; //! Array of track dictionary values |
66 | Int_t fTrackLabel; // Cooked track label |
67 | Int_t fTime[kNtimeBins]; // Array of time bin values |
68 | Int_t fCol[kNtimeBins]; // Array of pad column values |
69 | Int_t fNclusters; // Number of clusters in the tracklet |
70 | |
71 | Int_t fN; // Tracklet number |
72 | |
73 | TGraph *fGPos; //! Positions |
74 | TGraph *fGAmp; //! Amplitudes |
75 | |
76 | Float_t fTime0; // X position at the entrance window |
77 | Float_t fRowz; // Z position of the row center |
78 | Float_t fSlope; // Slope [deg] |
79 | Float_t fOffset; // Offset |
80 | Float_t fPt; // Transverse momentum |
81 | Float_t fdQdl; // Charge per unit length |
82 | |
e3b2b5e5 |
83 | ClassDef(AliTRDmcmTracklet,2) // Track segment for the TRD (Tracklet) |
0ee00e25 |
84 | |
85 | }; |
86 | |
87 | #endif |