3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
8 //////////////////////////////////////////////////////////////////////////
12 // Utility class to display ALice outline, tracks, hits,.. //
14 //////////////////////////////////////////////////////////////////////////
25 static const Int_t kMAXZOOMS = 20;
27 class AliDisplay : public TObject {
31 AliDisplay(Int_t size);
32 AliDisplay(const AliDisplay &disp);
33 virtual ~AliDisplay();
34 virtual Bool_t AllViews() const {return fDrawAllViews;}
35 virtual void Clear(Option_t *option="");
36 TSlider *CutSlider() {return fCutSlider;}
37 virtual void ShowTrack(Int_t trackNumber); // *MENU*
38 virtual void HideTrack(Int_t trackNumber) const; // *MENU*
39 void Copy(TObject &disp) const;
40 virtual void DisableDetector(const char *name); // *MENU*
41 virtual void DisplayButtons();
42 virtual Int_t DistancetoPrimitive(Int_t px, Int_t py);
43 virtual void Draw(Option_t *option="");
44 virtual void DrawAllViews();
45 virtual void DrawHits();
46 virtual void DrawTitle(Option_t *option="");
47 virtual void DrawView(Float_t theta, Float_t phi, Float_t psi=0);
48 virtual void DrawViewGL();
49 virtual void DrawViewX3D();
50 virtual void EnableDetector(const char *name); // *MENU*
51 TSlider *EtaSlider() {return fEtaSlider;}
52 virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py);
53 Int_t GetZoomMode() const {return fZoomMode;}
54 virtual void LoadPoints();
55 TPad *Pad() const {return fPad;}
56 virtual void Paint(Option_t *option="");
57 Float_t PTcut() const {return fPTcut;}
58 virtual void SetDrawHits(Bool_t draw=kTRUE) {fDrawHits=draw;} // *MENU*
59 virtual void SetDrawParticles(Bool_t draw=kTRUE) {fDrawParticles=draw;} // *MENU*
60 virtual void SetPTcut(Float_t ptcut=1.5); // *MENU*
61 virtual void SetRange(Float_t rrange=350, Float_t zrange=350); // *MENU*
62 virtual void SetView(Float_t theta, Float_t phi, Float_t psi=0);
63 virtual void SetPickMode();
64 virtual void SetZoomMode();
65 virtual void ShowNextEvent(Int_t delta=1);
66 virtual void UnZoom(); // *MENU*
67 AliDisplay& operator= (const AliDisplay &disp);
69 void SetTracksToDisplay(Int_t *tracks, Int_t n); // set tracks to display
71 Int_t fZoomMode; //=1 if in zoom mode
72 Bool_t fDrawAllViews; //Flag True if AllViews selected
73 Bool_t fDrawParticles; //Flag True if particles to be drawn
74 Bool_t fDrawHits; //Flag True if Hits to be drawn
75 Float_t fPTcut; //PT cut to display objects
76 Float_t fTheta; //Viewing angle theta
77 Float_t fPhi; //Viewing angle phi
78 Float_t fPsi; //Viewving angle psi (rotation on display)
79 Float_t fRrange; //Size of view in R
80 Float_t fZrange; //Size of view along Z
81 Float_t fZoomX0[20]; //Low x range of zoom number i
82 Float_t fZoomY0[20]; //Low y range of zoom number i
83 Float_t fZoomX1[20]; //High x range of zoom number i
84 Float_t fZoomY1[20]; //High y range of zoom number i
85 Int_t fZooms; //Number of zooms
86 Int_t fHitsCuts; //Number of hits surviving cuts
87 TCanvas *fCanvas; //Pointer to the display canvas
88 TPad *fTrigPad; //Pointer to the trigger pad
89 TPad *fCutPad; //Pointer to the momentum cut slider pad
90 TPad *fEtaPad; //Pointer to the rapidity cut slider pad
91 TPad *fButtons; //Pointer to the buttons pad
92 TPad *fPad; //Pointer to the event display main pad
93 TSlider *fCutSlider; //Momentum cut slider
94 TSlider *fEtaSlider; //Rapidity slider
95 TSlider *fRangeSlider; //Range slider
96 TButton *fPickButton; //Button to activate Pick mode
97 TButton *fZoomButton; //Button to activate Zoom mode
98 TArc *fArcButton; //Gren/Red button to show Pick/Zoom mode
99 TList *fFruits; //List for fruits
101 Int_t *fTracksToDisplay; // array of tracks to display
102 Int_t fNTracksToDisplay; // number of tracks to display
103 ClassDef(AliDisplay, 0) //Utility class to display ALICE outline, tracks, hits,..