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