Fixed forward declarations.
[u/mrichter/AliRoot.git] / RICH / AliRICHDisplay.h
1 #ifndef ALIRICHDISPLAY_H
2 #define ALIRICHDISPLAY_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 /* $Id$ */
8
9 //////////////////////////////////////////////////////////////////////////
10 //                                                                      //
11 // AliDisplay                                                           //
12 //                                                                      //
13 // Utility class to display ALice outline, tracks, hits,..              //
14 //                                                                      //
15 //////////////////////////////////////////////////////////////////////////
16
17 //#ifndef ROOT_TObject
18 #include <TPolyMarker3D.h>
19 #include <TAttLine.h>
20 #include <TAtt3D.h>
21
22 //#endif
23 #include "AliDisplay.h"
24
25
26 class TCanvas;
27 class TPad;
28 class TList;
29 class TSlider;
30 class TButton;
31 class TArc;
32
33 class AliRICHEllipse;
34
35 const Int_t kMAXZOOM = 20;
36
37 class AliRICHDisplay : public AliDisplay {
38  public:
39     AliRICHDisplay();
40     AliRICHDisplay(Int_t size);
41     virtual          ~AliRICHDisplay();
42     virtual void      Clear(Option_t *option="");
43     virtual void      DisplayButtons();
44     virtual void      CreateColors();
45     virtual void      DisplayColorScale();
46     virtual Int_t     DistancetoPrimitive(Int_t px, Int_t py);
47     virtual void      Draw(Option_t *option="");
48     virtual void      DrawCoG();
49     virtual void      DrawRecHits();
50     virtual void      DrawCerenkovs();
51     virtual void      DrawClusters();
52     virtual void      DrawHits();
53     virtual void      DrawTitle(Option_t *option="");
54     virtual void      DrawView(Float_t theta, Float_t phi, Float_t psi=0);
55     virtual void      DrawViewGL();
56     virtual void      DrawViewX3D();
57     virtual void      ExecuteEvent(Int_t event, Int_t px, Int_t py);
58     Int_t             GetZoomMode() {return fZoomMode;}
59     Int_t             GetChamber() {return fChamber;}
60     Int_t             GetCathode() {return fCathode;}
61     virtual void      LoadDigits();
62     virtual void      LoadRecHits(Int_t chamber, Int_t cathode);
63     virtual void      LoadCoG(Int_t chamber, Int_t cathode);
64     virtual void      LoadCerenkovs(Int_t chamber);
65     virtual void      LoadHits(Int_t chamber);
66     TPad             *Pad() {return fPad;}
67     TObjArray        *Points() {return fPoints;}
68     TObjArray        *Phits() {return fPhits;}
69     TObjArray        *Rpoints() {return fRpoints;}
70     TObjArray        *PCerenkovs() {return fPCerenkovs;}
71     virtual void      Paint(Option_t *option="");
72     virtual void      SetDrawClusters(Bool_t draw=kTRUE) {fDrawClusters=draw;}   // *MENU*
73     virtual void      SetDrawCoG(Bool_t draw=kTRUE) {fDrawCoG=draw;}   // *MENU*
74     virtual void      SetChamberAndCathode(Int_t chamber=1, Int_t cathode=1); // *MENU*
75     virtual void      SetRange(Float_t rrange=250, Float_t zrange=1050); // *MENU*
76     virtual void      SetView(Float_t theta, Float_t phi, Float_t psi=0);
77     virtual void      SetPickMode();
78     virtual void      SetZoomMode();
79     virtual void      ShowNextEvent(Int_t delta=1);
80     virtual void      UnZoom(); // *MENU*
81     virtual void      ResetPoints();
82     virtual void      ResetRpoints();
83     virtual void      ResetRecpoints();
84     virtual void      ResetPhits();
85     virtual void      ResetPCerenkovs();
86  private:
87     Int_t             fChamber;              //Chamber number
88     Int_t             fCathode;              //Cathode number
89     Int_t             fZoomMode;             //=1 if in zoom mode
90     
91     Bool_t            fDrawClusters;         //Flag True if Clusters to be drawn
92     Bool_t            fDrawCoG;              //Flag True if CoG to be drawn
93     Bool_t            fDrawRecHits;          //Flag True if rec hits to be drawn
94     Float_t           fTheta;                //Viewing angle theta
95     Float_t           fPhi;                  //Viewing angle phi
96     Float_t           fPsi;                  //Viewving angle psi (rotation on display)
97     Float_t           fRrange;               //Size of view in R
98     Float_t           fZrange;               //Size of view along Z
99     Float_t           fZoomX0[20];           //Low x range of zoom number i
100     Float_t           fZoomY0[20];           //Low y range of zoom number i
101     Float_t           fZoomX1[20];           //High x range of zoom number i
102     Float_t           fZoomY1[20];           //High y range of zoom number i
103     Int_t             fZooms;                //Number of zooms
104     Int_t             fHitsCuts;             //Number of hits surviving cuts
105     Int_t             fClustersCuts;         //Number of clusters surviving cuts
106     TCanvas          *fCanvas;               //Pointer to the display canvas
107     TPad             *fTrigPad;              //Pointer to the trigger pad 
108     TPad             *fColPad;               //Pointer to the colors pad 
109     TPad             *fButtons;              //Pointer to the buttons pad
110     TPad             *fPad;                  //Pointer to the event display main pad
111     TSlider          *fRangeSlider;          //Range slider
112     TButton          *fPickButton;           //Button to activate Pick mode
113     TButton          *fZoomButton;           //Button to activate Zoom mode
114     TArc             *fArcButton;            //Gren/Red button to show Pick/Zoom mode
115     TObjArray        *fPoints;               //Array of points for each cathode
116     TObjArray        *fPhits;                //Array of hit points for each chamber
117     TObjArray        *fPCerenkovs;           //Array of cerenkov hits for each chamber
118     TObjArray        *fRpoints;              //Array of cog points for each cathode 
119     TObjArray        *fRecpoints;            //Array of rec points for each cathode 
120     ClassDef(AliRICHDisplay, 0)   //Utility class to display RICH clusters...
121         
122 };
123 #endif
124