]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TRD/AliTRDmcmTracklet.h
Restored compilation with CMake. The administrators of the modules have to mantain...
[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   AliTRDmcmTracklet(const AliTRDmcmTracklet &t);
27   virtual           ~AliTRDmcmTracklet();
28   AliTRDmcmTracklet &operator=(const AliTRDmcmTracklet &t);
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;          };
53   Float_t   GetOmegaTau(Float_t vdrift, Float_t field) const;
54   Float_t   GetClusY(Float_t *adc, Int_t pla) const;
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];   };
60
61  protected:
62   // Geometry
63   AliTRDgeometry  *fGeo;                 //! The TRD geometry
64
65   Int_t   fDetector;                     //  TRD detector number (0 ... 539)
66   Int_t   fRow;                          //  Row number in the detector
67   Float_t fADC[kNtimeBins][kNclsPads];   //  Array of ADC values in a pad group
68   Int_t   fTrack[kNtimeBins][kNdict];    //! Array of track dictionary values
69   Int_t   fTrackLabel;                   //  Cooked track label
70   Int_t   fTime[kNtimeBins];             //  Array of time bin values
71   Int_t   fCol[kNtimeBins];              //  Array of pad column values
72   Int_t   fNclusters;                    //  Number of clusters in the tracklet
73
74   Int_t   fN;                            //  Tracklet number
75
76   TGraph *fGPos;                         //! Positions
77   TGraph *fGAmp;                         //! Amplitudes
78
79   Float_t fTime0;                        //  X position at the entrance window
80   Float_t fRowz;                         //  Z position of the row center
81   Float_t fSlope;                        //  Slope [deg]
82   Float_t fOffset;                       //  Offset
83   Float_t fPt;                           //  Transverse momentum
84   Float_t fdQdl;                         //  Charge per unit length
85
86   ClassDef(AliTRDmcmTracklet,3)          //  Track segment for the TRD (Tracklet)
87
88 };
89
90 #endif