]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONdisplay.h
This commit was generated by cvs2svn to compensate for changes in r1018,
[u/mrichter/AliRoot.git] / MUON / AliMUONdisplay.h
1 #ifndef AliMUONdisplay_H
2 #define AliMUONdisplay_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 AliMUONdisplay : /*splaypublic TObject,*/ public AliDisplay {
31
32 private:
33    Int_t             fEvent;
34    Int_t             fChamber;
35    Int_t             fCathode;
36    Int_t             fZoomMode;             //=1 if in zoom mode
37
38    Bool_t            fDrawClusters;         //Flag True if Clusters to be drawn
39    Bool_t            fDrawCoG;              //Flag True if CoG to be drawn
40    Bool_t            fDrawCathCor;          //Flag True if correlated point 
41                                             //to be drawn
42    Float_t           fTheta;                //Viewing angle theta
43    Float_t           fPhi;                  //Viewing angle phi
44    Float_t           fPsi;                  //Viewving angle psi (rotation on display)
45   //   Float_t           fRzone;                //
46    Float_t           fRrange;               //Size of view in R
47    Float_t           fZrange;               //Size of view along Z
48    Float_t           fZoomX0[20];           //Low x range of zoom number i
49    Float_t           fZoomY0[20];           //Low y range of zoom number i
50    Float_t           fZoomX1[20];           //High x range of zoom number i
51    Float_t           fZoomY1[20];           //High y range of zoom number i
52    Int_t             fZooms;                //Number of zooms
53    Int_t             fHitsCuts;             //Number of hits surviving cuts
54    Int_t             fClustersCuts;         //Number of clusters surviving cuts
55    TCanvas          *fCanvas;               //Pointer to the display canvas
56    TPad             *fTrigPad;              //Pointer to the trigger pad 
57    TPad             *fColPad;               //Pointer to the colors pad 
58    TPad             *fButtons;              //Pointer to the buttons pad
59    TPad             *fPad;                  //Pointer to the event display main pad
60    TSlider          *fRangeSlider;          //Range slider
61    TButton          *fPickButton;           //Button to activate Pick mode
62    TButton          *fZoomButton;           //Button to activate Zoom mode
63    TArc             *fArcButton;            //Gren/Red button to show Pick/Zoom mode
64    TObjArray        *fPoints;               //Array of points for each cathode
65    TObjArray        *fPhits;                //Array of hit points for each chamber
66    TObjArray        *fRpoints;              //Array of cog points for each cathode
67    TObjArray        *fR2points;              //Array of cog points for each cathode
68    TObjArray        *fCpoints;              //Array of correlated points for each first cathode
69 public:
70                      AliMUONdisplay();
71                      AliMUONdisplay(Int_t size);
72    virtual          ~AliMUONdisplay();
73    virtual void      Clear(Option_t *option="");
74    virtual void      DisplayButtons();
75    virtual void      CreateColors();
76    virtual void      DisplayColorScale();
77    virtual Int_t     DistancetoPrimitive(Int_t px, Int_t py);
78    virtual void      Draw(Option_t *option="");
79    virtual void      DrawClusters();
80    virtual void      DrawHits();
81    virtual void      DrawCoG();
82    virtual void      DrawCoG2();
83    virtual void      DrawCathCor();
84    
85    virtual void      DrawTitle(Option_t *option="");
86    virtual void      DrawView(Float_t theta, Float_t phi, Float_t psi=0);
87    virtual void      ExecuteEvent(Int_t event, Int_t px, Int_t py);
88    Int_t             GetZoomMode() {return fZoomMode;}
89    Int_t             GetChamber() {return fChamber;}
90    Int_t             GetCathode() {return fCathode;}
91    virtual void      LoadDigits(Int_t chamber, Int_t cathode);
92    virtual void      LoadHits(Int_t chamber);
93    virtual void      LoadCoG(Int_t chamber, Int_t cathode);
94    virtual void      LoadCoG2(Int_t chamber, Int_t cathode);
95    virtual void      LoadCathCor(Int_t chamber);
96    TPad             *Pad() {return fPad;}
97    TObjArray        *Points() {return fPoints;}
98    TObjArray        *Phits() {return fPhits;}
99    TObjArray        *Rpoints() {return fRpoints;}
100    TObjArray        *R2points() {return fR2points;}
101    TObjArray        *Cpoints() {return fCpoints;}
102    virtual void      Paint(Option_t *option="");
103    virtual void      SetDrawClusters(Bool_t draw=kTRUE) {fDrawClusters=draw;}   // *MENU*
104    virtual void      SetChamberAndCathode(Int_t chamber=1, Int_t cathode=1); // *MENU*
105    virtual void      SetDrawCoG(Bool_t draw=kTRUE) {fDrawCoG=draw;}   // *MENU*
106    virtual void      SetDrawCathCor(Bool_t draw=kTRUE) {fDrawCathCor=draw;} // *MENU*
107    virtual void      SetRange(Float_t rrange=250., Float_t zrange=1050.); // *MENU*
108    virtual void      SetView(Float_t theta=0, Float_t phi=-90, Float_t psi=0);
109    virtual void      SetPickMode();
110    virtual void      SetZoomMode();
111    virtual void      ShowNextEvent(Int_t delta=1);
112    virtual void      UnZoom(); // *MENU*
113    virtual void      ResetPoints();
114    virtual void      ResetPhits();
115    virtual void      ResetRpoints();
116    virtual void      ResetR2points();
117    virtual void      ResetCpoints();
118
119    ClassDef(AliMUONdisplay, 0)   //Utility class to display MUON clusters...
120 };
121
122 #endif