]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONdisplay.h
New classes added AliGenExtFile and AliGenScan.
[u/mrichter/AliRoot.git] / MUON / AliMUONdisplay.h
1 #ifndef AliMUONdisplay_H
2 #define AliMUONdisplay_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 AliMUONdisplay : /*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           fRzone;                //
38    Float_t           fRrange;               //Size of view in R
39    Float_t           fZrange;               //Size of view along Z
40    Float_t           fZoomX0[20];           //Low x range of zoom number i
41    Float_t           fZoomY0[20];           //Low y range of zoom number i
42    Float_t           fZoomX1[20];           //High x range of zoom number i
43    Float_t           fZoomY1[20];           //High y range of zoom number i
44    Int_t             fZooms;                //Number of zooms
45    Int_t             fHitsCuts;             //Number of hits surviving cuts
46    Int_t             fClustersCuts;         //Number of clusters surviving cuts
47    TCanvas          *fCanvas;               //Pointer to the display canvas
48    TPad             *fTrigPad;              //Pointer to the trigger pad 
49    TPad             *fColPad;               //Pointer to the colors pad 
50    TPad             *fButtons;              //Pointer to the buttons pad
51    TPad             *fPad;                  //Pointer to the event display main pad
52    TSlider          *fRangeSlider;          //Range slider
53    TButton          *fPickButton;           //Button to activate Pick mode
54    TButton          *fZoomButton;           //Button to activate Zoom mode
55    TArc             *fArcButton;            //Gren/Red button to show Pick/Zoom mode
56    TObjArray        *fPoints;               //Array of points for each cathode
57    TObjArray        *fPhits;                //Array of hit points for each chamber
58 public:
59                      AliMUONdisplay();
60                      AliMUONdisplay(Int_t size);
61    virtual          ~AliMUONdisplay();
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      DrawClusters();
69    virtual void      DrawHits();
70    virtual void      DrawTitle(Option_t *option="");
71    virtual void      DrawView(Float_t theta, Float_t phi, Float_t psi=0);
72    virtual void      ExecuteEvent(Int_t event, Int_t px, Int_t py);
73    Int_t             GetZoomMode() {return fZoomMode;}
74    Int_t             GetChamber() {return fChamber;}
75    Int_t             GetCathode() {return fCathode;}
76    virtual void      LoadDigits(Int_t chamber, Int_t cathode);
77    virtual void      LoadHits(Int_t chamber);
78    TPad             *Pad() {return fPad;}
79    TObjArray        *Points() {return fPoints;}
80    TObjArray        *Phits() {return fPhits;}
81    virtual void      Paint(Option_t *option="");
82    virtual void      SetDrawClusters(Bool_t draw=kTRUE) {fDrawClusters=draw;}   // *MENU*
83    virtual void      SetChamberAndCathode(Int_t chamber=1, Int_t cathode=1); // *MENU*
84    virtual void      SetRange(Float_t rrange=250, Float_t zrange=1050); // *MENU*
85    virtual void      SetView(Float_t theta, Float_t phi, Float_t psi=0);
86    virtual void      SetPickMode();
87    virtual void      SetZoomMode();
88    virtual void      ShowNextEvent(Int_t delta=1);
89    virtual void      UnZoom(); // *MENU*
90    virtual void      ResetPoints();
91    virtual void      ResetPhits();
92
93    ClassDef(AliMUONdisplay, 0)   //Utility class to display MUON clusters...
94 };
95
96 #endif