Reduced memory consumption (Bogdan)
[u/mrichter/AliRoot.git] / TRD / AliTRDmcmTracklet.h
CommitLineData
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 14class TGraph;
15
16class AliTRDgeometry;
17
18class 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