]>
Commit | Line | Data |
---|---|---|
1 | // $Id$ | |
2 | // Main authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007 | |
3 | ||
4 | /************************************************************************** | |
5 | * Copyright(c) 1998-2008, ALICE Experiment at CERN, all rights reserved. * | |
6 | * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for * | |
7 | * full copyright notice. * | |
8 | **************************************************************************/ | |
9 | ///////////////////////////////////////////////////////////////////////// | |
10 | // | |
11 | // - AliEVE implementation - | |
12 | // Containers for visualisation of TRD data structures | |
13 | // - AliEveTRDHits - visualisation of MC Hits, Clusters (RecPoints) | |
14 | // - AliEveTRDDigits - visualisation of TRD digits | |
15 | // | |
16 | // by A.Bercuci (A.Bercuci@gsi.de) Fri Oct 27 2006 | |
17 | /////////////////////////////////////////////////////////////////////// | |
18 | ||
19 | #ifndef AliEveTRDData_H | |
20 | #define AliEveTRDData_H | |
21 | ||
22 | #include <TEveQuadSet.h> | |
23 | #include <TEveBoxSet.h> | |
24 | #include <TEvePointSet.h> | |
25 | #include <TEveLine.h> | |
26 | ||
27 | #ifndef ALITRDARRAYADC_H | |
28 | #include "AliTRDarrayADC.h" | |
29 | #endif | |
30 | ||
31 | class AliEveTRDChamber; | |
32 | class AliEveTRDHits : public TEvePointSet | |
33 | { | |
34 | public: | |
35 | AliEveTRDHits(); | |
36 | ~AliEveTRDHits(); | |
37 | ||
38 | void PointSelected(Int_t n); | |
39 | ||
40 | ||
41 | private: | |
42 | AliEveTRDHits(const AliEveTRDHits&); // Not implemented | |
43 | AliEveTRDHits& operator=(const AliEveTRDHits&); // Not implemented | |
44 | ||
45 | ClassDef(AliEveTRDHits, 0); // Base class for TRD hits visualisation | |
46 | }; | |
47 | ||
48 | ||
49 | class AliTRDdigitsManager; | |
50 | class AliEveTRDDigits : public TEveQuadSet | |
51 | { | |
52 | friend class AliEveTRDDigitsEditor; | |
53 | ||
54 | public: | |
55 | AliEveTRDDigits(AliEveTRDChamber *p); | |
56 | ~AliEveTRDDigits(); | |
57 | ||
58 | void ComputeRepresentation(); | |
59 | const AliTRDarrayADC* GetData() const {return fData.HasData() ? &fData : 0x0;} | |
60 | //void Paint(Option_t *opt=""); | |
61 | void Reset(); | |
62 | void SetData(AliTRDdigitsManager *digits); | |
63 | ||
64 | protected: | |
65 | AliEveTRDChamber *fParent; | |
66 | ||
67 | private: | |
68 | TEveBoxSet fBoxes; // Boxset for didigit representation. | |
69 | AliTRDarrayADC fData; // Raw-data array. | |
70 | ||
71 | AliEveTRDDigits(const AliEveTRDDigits&); // Not implemented | |
72 | AliEveTRDDigits& operator=(const AliEveTRDDigits&); // Not implemented | |
73 | ||
74 | ClassDef(AliEveTRDDigits, 0); // Digits visualisation for TRD | |
75 | }; | |
76 | ||
77 | ||
78 | ||
79 | class AliEveTRDClusters : public AliEveTRDHits | |
80 | { | |
81 | public: | |
82 | AliEveTRDClusters(); | |
83 | ||
84 | void Load(Char_t *what="all", Bool_t stkwise=kTRUE) const; // *MENU* | |
85 | void PointSelected(Int_t n); | |
86 | void Print(Option_t *o = "") const; // *MENU* | |
87 | ||
88 | private: | |
89 | AliEveTRDClusters(const AliEveTRDClusters&); // Not implemented | |
90 | AliEveTRDClusters& operator=(const AliEveTRDClusters&); // Not implemented | |
91 | ||
92 | ClassDef(AliEveTRDClusters, 0); // Base class for TRD clusters visualisation | |
93 | }; | |
94 | ||
95 | ||
96 | ||
97 | class AliTRDseedV1; | |
98 | class AliEveTRDTracklet : public TEveLine | |
99 | { | |
100 | public: | |
101 | AliEveTRDTracklet(AliTRDseedV1 *trklt); | |
102 | ~AliEveTRDTracklet(); | |
103 | AliEveTRDClusters* GetClusters() const {return fClusters;} | |
104 | void Print(Option_t *o="") const; // *MENU* | |
105 | ||
106 | private: | |
107 | AliEveTRDClusters *fClusters; // clusters | |
108 | ||
109 | AliEveTRDTracklet(const AliEveTRDTracklet&); // Not implemented | |
110 | AliEveTRDTracklet& operator=(const AliEveTRDTracklet&); // Not implemented | |
111 | ||
112 | ClassDef(AliEveTRDTracklet, 0); // TRD tracklet visualisation | |
113 | }; | |
114 | ||
115 | ||
116 | class AliTrackPoint; | |
117 | class AliTRDtrackV1; | |
118 | class AliRieman; | |
119 | class AliEveTRDTrack : public TEveLine | |
120 | { | |
121 | public: | |
122 | enum AliEveTRDTrackState{ | |
123 | kSource = 0 | |
124 | ,kPID = 1 | |
125 | ,kTrackCosmics = 2 | |
126 | ,kTrackModel = 3 | |
127 | }; | |
128 | enum AliEveTRDTrackModel{ | |
129 | kRieman = 0 | |
130 | ,kKalman = 1 | |
131 | }; | |
132 | ||
133 | ||
134 | AliEveTRDTrack(AliTRDtrackV1 *trk); | |
135 | virtual ~AliEveTRDTrack(); | |
136 | //AliEveTRDTracklet* GetTracklet(Int_t plane) const {return plane <6 && plane >= 0 ? fTracklet[plane] : 0x0;} | |
137 | void Print(Option_t *opt="a") const; // *MENU* | |
138 | void SetStatus(UChar_t s); | |
139 | void SetESDstatus(ULong_t stat) {fESDStatus = stat;} | |
140 | private: | |
141 | AliEveTRDTrack(const AliEveTRDTrack&); // Not implemented | |
142 | AliEveTRDTrack& operator=(const AliEveTRDTrack&); // Not implemented | |
143 | ||
144 | UChar_t fTrackState; // bit map for the track drawing state | |
145 | ULong_t fESDStatus; // ESD status bit for this track | |
146 | Float_t fAlpha; // sector angle for this track | |
147 | AliTrackPoint *fPoints; // track crossing points | |
148 | AliRieman *fRim; // rieman fitter | |
149 | ClassDef(AliEveTRDTrack, 0); // TRD track visualisation | |
150 | }; | |
151 | ||
152 | ||
153 | #include "TEveElement.h" | |
154 | ||
155 | class AliTRDtrackletMCM; | |
156 | class AliTRDtrackletWord; | |
157 | class AliEveTRDTrackletOnline : public TEveLine | |
158 | { | |
159 | public: | |
160 | AliEveTRDTrackletOnline(AliTRDtrackletMCM *tracklet); | |
161 | AliEveTRDTrackletOnline(AliTRDtrackletWord *tracklet); | |
162 | ~AliEveTRDTrackletOnline(); | |
163 | ||
164 | // void Print(Option_t *o="") const; // *MENU* | |
165 | void ShowMCM(Option_t *opt = "RHT") const; // *MENU* | |
166 | private: | |
167 | Int_t fDetector; | |
168 | Int_t fROB; | |
169 | Int_t fMCM; | |
170 | ||
171 | AliEveTRDTrackletOnline(const AliEveTRDTrackletOnline&); // Not implemented | |
172 | AliEveTRDTrackletOnline& operator=(const AliEveTRDTrackletOnline&); // Not implemented | |
173 | ||
174 | ClassDef(AliEveTRDTrackletOnline, 0); // TRD tracklet visualisation | |
175 | }; | |
176 | ||
177 | ||
178 | class AliTRDmcmSim; | |
179 | class AliEveTRDmcm : public TEveElement, public TNamed | |
180 | { | |
181 | public: | |
182 | AliEveTRDmcm(); | |
183 | ~AliEveTRDmcm(); | |
184 | ||
185 | Bool_t Init(Int_t det, Int_t rob, Int_t mcm); // *MENU* | |
186 | Bool_t LoadDigits(); // *MENU* | |
187 | Bool_t Filter(); // *MENU* | |
188 | Bool_t Tracklet(); // *MENU* | |
189 | void Draw(Option_t* option = "FHT"); // *MENU* | |
190 | Bool_t AssignPointer(const char* ptrname = "mcmtest"); // *MENU* | |
191 | ||
192 | protected: | |
193 | AliTRDmcmSim *fMCM; | |
194 | ||
195 | AliEveTRDmcm(const AliEveTRDmcm&); // not implemented | |
196 | AliEveTRDmcm& operator=(const AliEveTRDmcm&); // not implemented | |
197 | ||
198 | ClassDef(AliEveTRDmcm, 0); | |
199 | }; | |
200 | ||
201 | #endif |