507cc49e119785a41d1f7120adef5c433bed7924
[u/mrichter/AliRoot.git] / EVE / EveDet / AliEveTRDData.h
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 : NULL;}
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] : NULL;}
137   void    Print(Option_t *opt="a") const; // *MENU*
138   void    SetStatus(UChar_t s=0);         // *MENU*
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               ShowMCM(Option_t *opt = "RHT") const; // *MENU*
165 private:
166   Int_t fDetector;
167   Int_t fROB;
168   Int_t fMCM;
169
170   AliEveTRDTrackletOnline(const AliEveTRDTrackletOnline&);            // Not implemented
171   AliEveTRDTrackletOnline& operator=(const AliEveTRDTrackletOnline&); // Not implemented
172
173   ClassDef(AliEveTRDTrackletOnline, 0); // TRD tracklet visualisation
174 };
175
176
177 class AliTRDmcmSim;
178 class AliEveTRDmcm : public TEveElement, public TNamed
179 {
180  public:
181   AliEveTRDmcm();
182   ~AliEveTRDmcm();
183
184   Bool_t Init(Int_t det, Int_t rob, Int_t mcm); // *MENU*
185   Bool_t LoadDigits(); // *MENU*
186   Bool_t Filter(); // *MENU*
187   Bool_t Tracklet(); // *MENU*
188   void Draw(Option_t* option = "FHT"); // *MENU*
189   Bool_t AssignPointer(const char* ptrname = "mcmtest"); // *MENU*
190
191  protected:
192   AliTRDmcmSim *fMCM;
193
194   AliEveTRDmcm(const AliEveTRDmcm&); // not implemented
195   AliEveTRDmcm& operator=(const AliEveTRDmcm&); // not implemented
196
197   ClassDef(AliEveTRDmcm, 0);
198 };
199
200 #endif