Line data Source code
1 : #ifndef AliMFTCATrack_H
2 : #define AliMFTCATrack_H
3 :
4 : #include "TObject.h"
5 : #include "TClonesArray.h"
6 :
7 : #include "AliMFTConstants.h"
8 :
9 : class AliMFTCACell;
10 :
11 : //_________________________________________________________________________________
12 : class AliMFTCATrack : public TObject {
13 :
14 : public:
15 :
16 : AliMFTCATrack();
17 0 : ~AliMFTCATrack() {};
18 :
19 : AliMFTCATrack (const AliMFTCATrack &track);
20 : AliMFTCATrack &operator=(const AliMFTCATrack&);
21 :
22 : virtual void Clear(Option_t *);
23 : void AddCell(AliMFTCACell *cell);
24 0 : void SetGID(Int_t gid) { fGID = gid; }
25 0 : const Int_t GetGID() const { return fGID; }
26 0 : const Int_t GetNcells() const { return fNcells; }
27 0 : const Int_t GetCellGID(Int_t ic) const { return fCellGIDarray[ic]; }
28 0 : AliMFTCACell* GetCell(Int_t ic) const { return (AliMFTCACell*)fCells->At(ic); }
29 0 : const Int_t GetLastCellGID() const { return fCellGIDarray[fNcells-1]; }
30 0 : const Int_t GetStartLayer() const { return fStartLayer; }
31 0 : void SetStartLayer(Int_t sl) { fStartLayer = sl; }
32 0 : void SetMCflag(UChar_t mcf) { fMCflag = mcf; }
33 0 : const UChar_t GetMCflag() { return fMCflag; }
34 0 : void SetVertX(Double_t x) { fVertX = x; }
35 0 : void SetVertY(Double_t y) { fVertY = y; }
36 0 : void SetVertZ(Double_t z) { fVertZ = z; }
37 0 : void SetTheta(Double_t the) { fTheta = the; }
38 0 : void SetPhi(Double_t phi) { fPhi = phi; }
39 0 : const Double_t GetVertX() { return fVertX; }
40 0 : const Double_t GetVertY() { return fVertY; }
41 0 : const Double_t GetVertZ() { return fVertZ; }
42 0 : const Double_t GetTheta() { return fTheta; }
43 0 : const Double_t GetPhi() { return fPhi; }
44 0 : void SetChiSqX(Double_t chisq) { fChiSqX = chisq; }
45 0 : void SetChiSqY(Double_t chisq) { fChiSqY = chisq; }
46 0 : const Double_t GetChiSqX() { return fChiSqX; }
47 0 : const Double_t GetChiSqY() { return fChiSqY; }
48 : Double_t AddCellToChiSq(AliMFTCACell *cell);
49 0 : void SetMCindex(Int_t index) { fMCindex = index; }
50 0 : const Int_t GetMCindex() { return fMCindex; }
51 0 : void SetChargeSign(Short_t sign) { fChargeSign = sign; }
52 0 : const Short_t GetChargeSign() { return fChargeSign; }
53 0 : void SetCellGID(Int_t index, Int_t gid) { fCellGIDarray[index] = gid; };
54 : void EvalSignedPt();
55 0 : const Double_t GetPt() { return fPt; }
56 :
57 : private:
58 : static const Int_t fNDetMax = AliMFTConstants::fNMaxPlanes;
59 :
60 : Int_t fGID; // Track global identifier
61 : Int_t fNcells; // Number of cells in the track
62 : Int_t fStartLayer; // Upstream start layer (RunBackward)
63 : Int_t fCellGIDarray[fNDetMax]; // Array of cell global identifier
64 :
65 : TClonesArray *fCells; //! Array of cells
66 :
67 : UChar_t fMCflag; // MC classification of the track:
68 : // 0 = default (not set)
69 : // 1 = clean
70 : // 2 = good
71 : // 3 = fake
72 : // 4 = noise
73 :
74 : Double_t fVertX; // x at z vertex [cm]
75 : Double_t fVertY; // y at z vertex [cm]
76 : Double_t fVertZ; // z vertex [cm]
77 : Double_t fTheta; // theta fit [deg]
78 : Double_t fPhi; // phi fit [deg]
79 : Double_t fChiSqX; // reduced ChiSq en xz
80 : Double_t fChiSqY; // reduced ChiSq en yz
81 : Int_t fMCindex; // MC track index for clean tracks
82 : Short_t fChargeSign; // estimated sign of the charge
83 : Double_t fPt ; // Pt evaluated from sagitta measurement
84 :
85 12 : ClassDef(AliMFTCATrack,2);
86 :
87 : };
88 :
89 : #endif
90 :
91 :
|