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