]>
Commit | Line | Data |
---|---|---|
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" | |
17 | #include "AliESDTrdTrack.h" | |
18 | ||
19 | class AliTRDtrackGTU : public TObject { | |
20 | public: | |
21 | AliTRDtrackGTU(); | |
22 | ~AliTRDtrackGTU(); | |
23 | ||
24 | // ----- Track properties | |
25 | Int_t GetPtInt() const { return fPt; } | |
26 | Float_t GetPt() const { return (Float_t) fPt / 128.; } | |
27 | Int_t GetPID() const { return fPID; } | |
28 | Int_t GetSector() const { return fSector; } | |
29 | Int_t GetStack() const { return fStack; } | |
30 | Int_t GetLabel() const { return fLabel; } | |
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; | |
38 | Int_t GetTrackletIndex(Int_t layer) { return IsTrackletInLayer(layer) ? ((AliTRDtrackletGTU*) (*fTracklets)[layer])->GetIndex() : -1; } | |
39 | AliTRDtrackletGTU* GetTracklet(Int_t layer); | |
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(); | |
47 | Int_t GetRefLayerIdx() const { return fRefLayerIdx; } | |
48 | Int_t GetYapprox(); | |
49 | ||
50 | ||
51 | void AddTracklet(AliTRDtrackletGTU *tracklet, Int_t layer); | |
52 | ||
53 | void SetStack(Int_t stack) { fStack = stack; } | |
54 | void SetSector(Int_t sector) { fSector = sector; } | |
55 | void SetPtInt(Int_t pt) { fPt = pt; } | |
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 | ||
64 | Bool_t CookLabel(); | |
65 | ||
66 | protected: | |
67 | ||
68 | Int_t fStack; // TRD stack to which this track belongs | |
69 | Int_t fSector; // sector in which the track was found | |
70 | ||
71 | Int_t fPt; // pt in integer representation | |
72 | Int_t fPID; // PID calculated from tracklet PID | |
73 | ||
74 | TClonesArray *fTracklets; // array holding the tracklets composing this track | |
75 | Int_t fTrackletMask; // mask in which layers tracklets have been assigned | |
76 | Int_t fNTracklets; // number of tracklets in this track | |
77 | ||
78 | Int_t fRefLayerIdx; // index of the reference layer in which this track was found | |
79 | Int_t fZChannel; // z-channel unit in which this track was found | |
80 | Int_t fZSubChannel; // z-subchannel of the assigned tracklets | |
81 | ||
82 | Float_t fA; // fit parameter of y' = a + b*x + c*z | |
83 | Float_t fB; // fit parameter of y' = a + b*x + c*z | |
84 | Float_t fC; // fit parameter of y' = a + b*x + c*z | |
85 | ||
86 | Int_t fLabel; // MC label | |
87 | ||
88 | private: | |
89 | AliTRDtrackGTU(const AliTRDtrackGTU &rhs); // not implemented | |
90 | AliTRDtrackGTU& operator=(const AliTRDtrackGTU &rhs); // not implemented | |
91 | ||
92 | ClassDef(AliTRDtrackGTU, 1); | |
93 | }; | |
94 | ||
95 | #endif |