52c19022 |
1 | #ifndef ALITRDTRACKGTU_H |
2 | #define ALITRDTRACKGTU_H |
3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * |
4 | * See cxx source for full Copyright notice */ |
5 | |
6 | /* $Id: AliTRDtrackGTU.h 27496 2008-07-22 08:35:45Z cblume $ */ |
7 | |
8 | //--------------------------------------------------------------- |
9 | // |
10 | // TRD track as calculated in the GTU (for L1 contribution) |
11 | // |
12 | //--------------------------------------------------------------- |
13 | |
14 | #include "TClonesArray.h" |
15 | |
16 | #include "AliTRDtrackletGTU.h" |
4d6aee34 |
17 | class AliESDTrdTrack; |
52c19022 |
18 | |
19 | class AliTRDtrackGTU : public TObject { |
20 | public: |
21 | AliTRDtrackGTU(); |
22 | ~AliTRDtrackGTU(); |
23 | |
24 | // ----- Track properties |
d2c8b010 |
25 | Int_t GetPtInt() const { return AliTRDgtuParam::GetPt(fTrackletMask, (Int_t) this->GetA(), 0, 0, 0, 0); } |
26 | Float_t GetPt() const { return (Float_t) this->GetPtInt() / 128.; } |
52c19022 |
27 | Int_t GetPID() const { return fPID; } |
28 | Int_t GetSector() const { return fSector; } |
29 | Int_t GetStack() const { return fStack; } |
80f93426 |
30 | Int_t GetLabel() const { return fLabel; } |
52c19022 |
31 | |
32 | AliESDTrdTrack* CreateTrdTrack() const; |
33 | |
34 | // ----- compositing tracklets |
35 | Int_t GetNTracklets() const; |
36 | Int_t GetTrackletMask() const { return fTrackletMask; } |
37 | Bool_t IsTrackletInLayer(Int_t layer) const; |
5f006bd7 |
38 | Int_t GetTrackletIndex(Int_t layer) { return IsTrackletInLayer(layer) ? ((AliTRDtrackletGTU*) (*fTracklets)[layer])->GetIndex() : -1; } |
44eafcf2 |
39 | AliTRDtrackletGTU* GetTracklet(Int_t layer) const; |
52c19022 |
40 | |
41 | // ----- Quantities used internally for the calculation |
42 | Float_t GetA() const { return fA; } |
43 | Float_t GetB() const { return fB; } |
44 | Float_t GetC() const { return fC; } |
45 | Int_t GetZChannel() const { return fZChannel; } |
46 | Int_t GetZSubChannel(); |
d2c8b010 |
47 | Int_t GetRefLayer() const { return AliTRDgtuParam::GetRefLayer(fRefLayerIdx); } |
52c19022 |
48 | Int_t GetRefLayerIdx() const { return fRefLayerIdx; } |
49 | Int_t GetYapprox(); |
50 | |
51 | |
4d6aee34 |
52 | void AddTracklet(const AliTRDtrackletGTU * const tracklet, Int_t layer); |
52c19022 |
53 | |
54 | void SetStack(Int_t stack) { fStack = stack; } |
55 | void SetSector(Int_t sector) { fSector = sector; } |
52c19022 |
56 | void SetPID(Int_t pid) { fPID = pid; } |
57 | |
58 | void SetZChannel(Int_t zch) { fZChannel = zch; } |
59 | void SetRefLayerIdx(Int_t reflayer) { fRefLayerIdx = reflayer; } |
60 | // void SetInnerIntPoint(Float_t *x); |
61 | // void SetOuterIntPoint(Float_t *x); |
62 | void SetFitParams(Float_t a, Float_t b, Float_t c); |
63 | |
4cc89512 |
64 | Bool_t CookLabel(); |
65 | |
52c19022 |
66 | protected: |
67 | |
4cc89512 |
68 | Int_t fStack; // TRD stack to which this track belongs |
69 | Int_t fSector; // sector in which the track was found |
52c19022 |
70 | |
4cc89512 |
71 | Int_t fPID; // PID calculated from tracklet PID |
72 | |
73 | TClonesArray *fTracklets; // array holding the tracklets composing this track |
74 | Int_t fTrackletMask; // mask in which layers tracklets have been assigned |
75 | Int_t fNTracklets; // number of tracklets in this track |
52c19022 |
76 | |
4cc89512 |
77 | Int_t fRefLayerIdx; // index of the reference layer in which this track was found |
78 | Int_t fZChannel; // z-channel unit in which this track was found |
79 | Int_t fZSubChannel; // z-subchannel of the assigned tracklets |
52c19022 |
80 | |
4cc89512 |
81 | Float_t fA; // fit parameter of y' = a + b*x + c*z |
82 | Float_t fB; // fit parameter of y' = a + b*x + c*z |
83 | Float_t fC; // fit parameter of y' = a + b*x + c*z |
52c19022 |
84 | |
4cc89512 |
85 | Int_t fLabel; // MC label |
52c19022 |
86 | |
87 | private: |
88 | AliTRDtrackGTU(const AliTRDtrackGTU &rhs); // not implemented |
89 | AliTRDtrackGTU& operator=(const AliTRDtrackGTU &rhs); // not implemented |
90 | |
91 | ClassDef(AliTRDtrackGTU, 1); |
92 | }; |
93 | |
94 | #endif |