This commit was generated by cvs2svn to compensate for changes in r2,
[u/mrichter/AliRoot.git] / STEER / AliDisplay.h
1 #ifndef AliDisplay_H
2 #define AliDisplay_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
16 class TCanvas;
17 class TPad;
18 class TList;
19 class TSlider;
20 class TButton;
21 class TArc;
22
23 const Int_t kMAXZOOMS = 20;
24
25 class AliDisplay : public TObject {
26
27 private:
28    Int_t             fZoomMode;             //=1 if in zoom mode
29    Bool_t            fDrawAllViews;         //Flag True if AllViews selected
30    Bool_t            fDrawParticles;        //Flag True if particles to be drawn
31    Bool_t            fDrawHits;             //Flag True if Hits to be drawn
32    Float_t           fPTcut;                //PT cut to display objects
33    Float_t           fTheta;                //Viewing angle theta
34    Float_t           fPhi;                  //Viewing angle phi
35    Float_t           fPsi;                  //Viewving angle psi (rotation on display)
36    Float_t           fRrange;               //Size of view in R
37    Float_t           fZrange;               //Size of view along Z
38    Float_t           fZoomX0[20];           //Low x range of zoom number i
39    Float_t           fZoomY0[20];           //Low y range of zoom number i
40    Float_t           fZoomX1[20];           //High x range of zoom number i
41    Float_t           fZoomY1[20];           //High y range of zoom number i
42    Int_t             fZooms;                //Number of zooms
43    Int_t             fHitsCuts;             //Number of hits surviving cuts
44    TCanvas          *fCanvas;               //Pointer to the display canvas
45    TPad             *fTrigPad;              //Pointer to the trigger pad 
46    TPad             *fCutPad;               //Pointer to the momentum cut slider pad 
47    TPad             *fEtaPad;               //Pointer to the rapidity cut slider pad 
48    TPad             *fButtons;              //Pointer to the buttons pad
49    TPad             *fPad;                  //Pointer to the event display main pad
50    TSlider          *fCutSlider;            //Momentum cut slider
51    TSlider          *fEtaSlider;            //Rapidity slider
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    TList            *fFruits;               //List for fruits
57    
58 public:
59                      AliDisplay();
60                      AliDisplay(Int_t size);
61    virtual          ~AliDisplay();
62    virtual Bool_t    AllViews() {return fDrawAllViews;}
63    virtual void      Clear(Option_t *option="");
64    TSlider          *CutSlider() {return fCutSlider;}
65    virtual void      ShowTrack(Int_t track_number); // *MENU*
66    virtual void      HideTrack(Int_t track_number); // *MENU*
67    virtual void      DisableDetector(const char *name); // *MENU*
68    virtual void      DisplayButtons();
69    virtual Int_t     DistancetoPrimitive(Int_t px, Int_t py);
70    virtual void      Draw(Option_t *option="");
71    virtual void      DrawAllViews();
72    virtual void      DrawHits();
73    virtual void      DrawTitle(Option_t *option="");
74    virtual void      DrawView(Float_t theta, Float_t phi, Float_t psi=0);
75    virtual void      DrawViewGL();
76    virtual void      DrawViewX3D();
77    virtual void      EnableDetector(const char *name); // *MENU*
78    TSlider          *EtaSlider() {return fEtaSlider;}
79    virtual void      ExecuteEvent(Int_t event, Int_t px, Int_t py);
80    Int_t             GetZoomMode() {return fZoomMode;}
81    virtual void      LoadPoints();
82    TPad             *Pad() {return fPad;}
83    virtual void      Paint(Option_t *option="");
84    Float_t           PTcut() {return fPTcut;}
85    virtual void      SetDrawHits(Bool_t draw=kTRUE) {fDrawHits=draw;}   // *MENU*
86    virtual void      SetDrawParticles(Bool_t draw=kTRUE) {fDrawParticles=draw;} // *MENU*
87    virtual void      SetPTcut(Float_t ptcut=1.5); // *MENU*
88    virtual void      SetRange(Float_t rrange=350, Float_t zrange=350); // *MENU*
89    virtual void      SetView(Float_t theta, Float_t phi, Float_t psi=0);
90    virtual void      SetPickMode();
91    virtual void      SetZoomMode();
92    virtual void      ShowNextEvent(Int_t delta=1);
93    virtual void      UnZoom(); // *MENU*
94    
95    ClassDef(AliDisplay, 0)   //Utility class to display ALICE outline, tracks, hits,..
96 };
97
98 #endif