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