]> git.uio.no Git - u/mrichter/AliRoot.git/blob - RICH/AliRICHdisplay.h
Addition of CPV library as a separate detector from PHOS
[u/mrichter/AliRoot.git] / RICH / AliRICHdisplay.h
1 #ifndef AliRICHdisplay_H
2 #define AliRICHdisplay_H
3
4 //////////////////////////////////////////////////////////////////////////
5 //                                                                      //
6 // AliDisplay                                                           //
7 //                                                                      //
8 // Utility class to display ALice outline, tracks, hits,..              //
9 //                                                                      //
10 //////////////////////////////////////////////////////////////////////////
11
12 //#ifndef ROOT_TObject
13 #include <TObject.h>
14 //#endif
15 #include "AliDisplay.h"
16
17 class TCanvas;
18 class TPad;
19 class TList;
20 class TSlider;
21 class TButton;
22 class TArc;
23
24 const Int_t kMAXZOOM = 20;
25
26 class AliRICHdisplay : /*splaypublic TObject,*/ public AliDisplay {
27     
28  private:
29     Int_t             fChamber;
30     Int_t             fCathode;
31     Int_t             fZoomMode;             //=1 if in zoom mode
32     
33     Bool_t            fDrawClusters;         //Flag True if Clusters to be drawn
34     Float_t           fTheta;                //Viewing angle theta
35     Float_t           fPhi;                  //Viewing angle phi
36     Float_t           fPsi;                  //Viewving angle psi (rotation on display)
37     Float_t           fRrange;               //Size of view in R
38     Float_t           fZrange;               //Size of view along Z
39     Float_t           fZoomX0[20];           //Low x range of zoom number i
40     Float_t           fZoomY0[20];           //Low y range of zoom number i
41     Float_t           fZoomX1[20];           //High x range of zoom number i
42     Float_t           fZoomY1[20];           //High y range of zoom number i
43     Int_t             fZooms;                //Number of zooms
44     Int_t             fHitsCuts;             //Number of hits surviving cuts
45     Int_t             fClustersCuts;         //Number of clusters surviving cuts
46     TCanvas          *fCanvas;               //Pointer to the display canvas
47     TPad             *fTrigPad;              //Pointer to the trigger pad 
48     TPad             *fColPad;               //Pointer to the colors pad 
49     TPad             *fButtons;              //Pointer to the buttons pad
50     TPad             *fPad;                  //Pointer to the event display main pad
51     TSlider          *fRangeSlider;          //Range slider
52     TButton          *fPickButton;           //Button to activate Pick mode
53     TButton          *fZoomButton;           //Button to activate Zoom mode
54     TArc             *fArcButton;            //Gren/Red button to show Pick/Zoom mode
55     TObjArray        *fPoints;               //Array of points for each cathode
56     TObjArray        *fPhits;                //Array of hit points for each chamber
57     TObjArray        *fPCerenkovs;                //Array of cerenkov hits for each chamber
58  public:
59     AliRICHdisplay();
60     AliRICHdisplay(Int_t size);
61     virtual          ~AliRICHdisplay();
62     virtual void      Clear(Option_t *option="");
63     virtual void      DisplayButtons();
64     virtual void      CreateColors();
65     virtual void      DisplayColorScale();
66     virtual Int_t     DistancetoPrimitive(Int_t px, Int_t py);
67     virtual void      Draw(Option_t *option="");
68     virtual void      DrawCerenkovs();
69     virtual void      DrawClusters();
70     virtual void      DrawHits();
71     virtual void      DrawTitle(Option_t *option="");
72     virtual void      DrawView(Float_t theta, Float_t phi, Float_t psi=0);
73     virtual void      ExecuteEvent(Int_t event, Int_t px, Int_t py);
74     Int_t             GetZoomMode() {return fZoomMode;}
75     Int_t             GetChamber() {return fChamber;}
76     Int_t             GetCathode() {return fCathode;}
77     virtual void      LoadDigits();
78     virtual void      LoadCerenkovs(Int_t chamber);
79     virtual void      LoadHits(Int_t chamber);
80     TPad             *Pad() {return fPad;}
81     TObjArray        *Points() {return fPoints;}
82     TObjArray        *Phits() {return fPhits;}
83     TObjArray        *PCerenkovs() {return fPCerenkovs;}
84     virtual void      Paint(Option_t *option="");
85     virtual void      SetDrawClusters(Bool_t draw=kTRUE) {fDrawClusters=draw;}   // *MENU*
86     virtual void      SetChamberAndCathode(Int_t chamber=1, Int_t cathode=1); // *MENU*
87     virtual void      SetRange(Float_t rrange=250, Float_t zrange=1050); // *MENU*
88     virtual void      SetView(Float_t theta, Float_t phi, Float_t psi=0);
89     virtual void      SetPickMode();
90     virtual void      SetZoomMode();
91     virtual void      ShowNextEvent(Int_t delta=1);
92     virtual void      UnZoom(); // *MENU*
93     virtual void      ResetPoints();
94     virtual void      ResetPhits();
95     virtual void      ResetPCerenkovs();
96     
97     
98     ClassDef(AliRICHdisplay, 0)   //Utility class to display RICH clusters...
99         };
100         
101 #endif
102