]>
Commit | Line | Data |
---|---|---|
52c19022 | 1 | #ifndef ALITRDTRACKLETGTU_H |
2 | #define ALITRDTRACKLETGTU_H | |
3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
6 | /* $Id: AliTRDtrackletGTU.h 27496 2008-07-22 08:35:45Z cblume $ */ | |
7 | ||
8 | // -------------------------------------------------------- | |
9 | // | |
10 | // GTU tracklet | |
11 | // | |
12 | // | |
13 | // -------------------------------------------------------- | |
14 | ||
15 | #include "AliTRDtrackletBase.h" | |
16 | #include "AliLog.h" | |
17 | ||
52c19022 | 18 | class AliTRDgtuParam; |
19 | ||
20 | class AliTRDtrackletGTU : public AliTRDtrackletBase { | |
21 | public: | |
22 | AliTRDtrackletGTU(); | |
52c19022 | 23 | AliTRDtrackletGTU(AliTRDtrackletBase *tracklet); |
24 | AliTRDtrackletGTU(const AliTRDtrackletGTU& trk); | |
25 | ||
26 | ~AliTRDtrackletGTU(); | |
27 | ||
28 | AliTRDtrackletGTU& operator=(const AliTRDtrackletGTU &rhs); | |
29 | ||
30 | Bool_t IsSortable() const { return kTRUE; } | |
31 | Int_t Compare(const TObject *o) const; | |
32 | ||
33 | // ----- Getters for information from the tracklet word ----- | |
34 | Int_t GetYbin() const { return fTracklet->GetYbin(); } | |
35 | Int_t GetdY() const { return fTracklet->GetdY(); } | |
36 | Int_t GetZbin() const { return fTracklet->GetZbin(); } | |
36dc3337 | 37 | Int_t GetPID() const { return ((Int_t) (255 * fTracklet->GetPID())); } |
52c19022 | 38 | Double_t GetPID(Int_t is) const { return fTracklet->GetPID(is); } |
39 | ||
40 | // ----- Getters for calculated properties ----- | |
41 | Int_t GetYProj() const { return fYProj; } | |
42 | Int_t GetAlpha() const { return fAlpha; } | |
43 | Int_t GetYPrime() const { return fYPrime; } | |
36dc3337 | 44 | Int_t GetSubChannel(Int_t zch) const; |
52c19022 | 45 | |
46 | // ----- Getters for offline corresponding values ----- | |
47 | Bool_t CookPID() { return kFALSE; } | |
48 | Int_t GetDetector() const { return fTracklet->GetDetector(); } | |
49 | Int_t GetIndex() const { return fIndex; } | |
50 | ||
51 | Float_t GetdYdX() const { return (GetdY() * 140e-4 / 3.); } | |
52 | Float_t GetX() const { return 0; } | |
53 | Float_t GetY() const { return (GetYbin() * 160e-4); } | |
54 | Float_t GetZ() const { return 0; } | |
55 | ||
56 | // AliTRDtrackletBase* GetTracklet() const { return fTracklet; } | |
57 | UInt_t GetTrackletWord() const { return fTracklet->GetTrackletWord(); } | |
58 | ||
59 | Int_t GetSide() const { return GetYbin() < 0 ? 0 : 1; } | |
60 | ||
4cc89512 | 61 | Int_t GetLabel() const; // { return fLabel; } |
62 | ||
52c19022 | 63 | // ----- Setters ----- |
64 | void SetAlpha(Int_t alpha) { fAlpha = alpha; } | |
65 | void SetYProj(Int_t yproj) { fYProj = yproj; } | |
66 | void SetYPrime(Int_t yprime) { fYPrime = yprime; } | |
67 | ||
68 | void SetSubChannel(Int_t zch, Int_t subch); | |
69 | void SetDetector(Int_t /* id */ ) { AliError("Cannot change base tracklet"); } | |
70 | void SetIndex(Int_t idx) { fIndex = idx; } | |
71 | ||
72 | void RemoveTracklet() { fTracklet = fgkDummyTracklet; } | |
73 | ||
74 | protected: | |
75 | AliTRDgtuParam *fGtuParam; //! | |
80f93426 | 76 | AliTRDtrackletBase *fTracklet; // pointer to the underlying tracklet |
52c19022 | 77 | |
78 | Int_t *fSubChannel; //! [AliTRDgtuParam::GetNZChannels()] | |
79 | Bool_t fAssignedZ; // tracklet assigned to a Z-channel | |
80 | ||
81 | Int_t fAlpha; // calculated value for alpha | |
82 | Int_t fYProj; // calculated value for y_proj | |
83 | Int_t fYPrime; // calculated value for y' | |
4cc89512 | 84 | Int_t fIndex; // index of tracklet in the sequence after the input units |
52c19022 | 85 | |
4cc89512 | 86 | static AliTRDtrackletBase* fgkDummyTracklet; // dummy tracklet, used in case no tracklet is given |
52c19022 | 87 | |
88 | private: | |
89 | ||
90 | ClassDef(AliTRDtrackletGTU, 1); | |
91 | }; | |
92 | ||
93 | #endif |