]>
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 | ||
18 | class AliTRDmcmTracklet; | |
19 | class AliTRDgtuParam; | |
20 | ||
21 | class AliTRDtrackletGTU : public AliTRDtrackletBase { | |
22 | public: | |
23 | AliTRDtrackletGTU(); | |
24 | // AliTRDtrackletGTU(UInt_t tracklet_word = 0); | |
25 | AliTRDtrackletGTU(AliTRDtrackletBase *tracklet); | |
26 | AliTRDtrackletGTU(const AliTRDtrackletGTU& trk); | |
27 | ||
28 | ~AliTRDtrackletGTU(); | |
29 | ||
30 | AliTRDtrackletGTU& operator=(const AliTRDtrackletGTU &rhs); | |
31 | ||
32 | Bool_t IsSortable() const { return kTRUE; } | |
33 | Int_t Compare(const TObject *o) const; | |
34 | ||
35 | // ----- Getters for information from the tracklet word ----- | |
36 | Int_t GetYbin() const { return fTracklet->GetYbin(); } | |
37 | Int_t GetdY() const { return fTracklet->GetdY(); } | |
38 | Int_t GetZbin() const { return fTracklet->GetZbin(); } | |
39 | Double_t GetPID() const { return fTracklet->GetPID(); } | |
40 | Double_t GetPID(Int_t is) const { return fTracklet->GetPID(is); } | |
41 | ||
42 | // ----- Getters for calculated properties ----- | |
43 | Int_t GetYProj() const { return fYProj; } | |
44 | Int_t GetAlpha() const { return fAlpha; } | |
45 | Int_t GetYPrime() const { return fYPrime; } | |
46 | Int_t GetSubChannel(Int_t zch); | |
47 | ||
48 | // ----- Getters for offline corresponding values ----- | |
49 | Bool_t CookPID() { return kFALSE; } | |
50 | Int_t GetDetector() const { return fTracklet->GetDetector(); } | |
51 | Int_t GetIndex() const { return fIndex; } | |
52 | ||
53 | Float_t GetdYdX() const { return (GetdY() * 140e-4 / 3.); } | |
54 | Float_t GetX() const { return 0; } | |
55 | Float_t GetY() const { return (GetYbin() * 160e-4); } | |
56 | Float_t GetZ() const { return 0; } | |
57 | ||
58 | // AliTRDtrackletBase* GetTracklet() const { return fTracklet; } | |
59 | UInt_t GetTrackletWord() const { return fTracklet->GetTrackletWord(); } | |
60 | ||
61 | Int_t GetSide() const { return GetYbin() < 0 ? 0 : 1; } | |
62 | ||
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; //! | |
76 | const AliTRDtrackletBase *fTracklet; // always points to a valid tracklet | |
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' | |
84 | Int_t fIndex; | |
85 | ||
86 | static AliTRDtrackletBase* fgkDummyTracklet; | |
87 | ||
88 | private: | |
89 | ||
90 | ClassDef(AliTRDtrackletGTU, 1); | |
91 | }; | |
92 | ||
93 | #endif |