]> git.uio.no Git - u/mrichter/AliRoot.git/blame - RICH/AliRICHDisplay.h
Digits, clusters and reconstruction results added.
[u/mrichter/AliRoot.git] / RICH / AliRICHDisplay.h
CommitLineData
8278a469 1#ifndef AliRICHDisplay_H
2#define AliRICHDisplay_H
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
26class TCanvas;
27class TPad;
28class TList;
29class TSlider;
30class TButton;
31class TArc;
32
33class AliRICHEllipse;
34
35const Int_t kMAXZOOM = 20;
36
37class AliRICHDisplay : /*splaypublic TObject,*/ public AliDisplay {
38
39 private:
40 Int_t fChamber;
41 Int_t fCathode;
42 Int_t fZoomMode; //=1 if in zoom mode
43
44 Bool_t fDrawClusters; //Flag True if Clusters to be drawn
45 Bool_t fDrawCoG; //Flag True if CoG to be drawn
46 Bool_t fDrawRecHits; //Flag True if rec hits to be drawn
47 Float_t fTheta; //Viewing angle theta
48 Float_t fPhi; //Viewing angle phi
49 Float_t fPsi; //Viewving angle psi (rotation on display)
50 Float_t fRrange; //Size of view in R
51 Float_t fZrange; //Size of view along Z
52 Float_t fZoomX0[20]; //Low x range of zoom number i
53 Float_t fZoomY0[20]; //Low y range of zoom number i
54 Float_t fZoomX1[20]; //High x range of zoom number i
55 Float_t fZoomY1[20]; //High y range of zoom number i
56 Int_t fZooms; //Number of zooms
57 Int_t fHitsCuts; //Number of hits surviving cuts
58 Int_t fClustersCuts; //Number of clusters surviving cuts
59 TCanvas *fCanvas; //Pointer to the display canvas
60 TPad *fTrigPad; //Pointer to the trigger pad
61 TPad *fColPad; //Pointer to the colors pad
62 TPad *fButtons; //Pointer to the buttons pad
63 TPad *fPad; //Pointer to the event display main pad
64 TSlider *fRangeSlider; //Range slider
65 TButton *fPickButton; //Button to activate Pick mode
66 TButton *fZoomButton; //Button to activate Zoom mode
67 TArc *fArcButton; //Gren/Red button to show Pick/Zoom mode
68 TObjArray *fPoints; //Array of points for each cathode
69 TObjArray *fPhits; //Array of hit points for each chamber
70 TObjArray *fPCerenkovs; //Array of cerenkov hits for each chamber
71 TObjArray *fRpoints; //Array of cog points for each cathode
72 TObjArray *fRecpoints; //Array of rec points for each cathode
73
74 public:
75 AliRICHDisplay();
76 AliRICHDisplay(Int_t size);
77 virtual ~AliRICHDisplay();
78 virtual void Clear(Option_t *option="");
79 virtual void DisplayButtons();
80 virtual void CreateColors();
81 virtual void DisplayColorScale();
82 virtual Int_t DistancetoPrimitive(Int_t px, Int_t py);
83 virtual void Draw(Option_t *option="");
84 virtual void DrawCoG();
85 virtual void DrawRecHits();
86 virtual void DrawCerenkovs();
87 virtual void DrawClusters();
88 virtual void DrawHits();
89 virtual void DrawTitle(Option_t *option="");
90 virtual void DrawView(Float_t theta, Float_t phi, Float_t psi=0);
91 virtual void DrawViewGL();
92 virtual void DrawViewX3D();
93 virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py);
94 Int_t GetZoomMode() {return fZoomMode;}
95 Int_t GetChamber() {return fChamber;}
96 Int_t GetCathode() {return fCathode;}
97 virtual void LoadDigits();
98 virtual void LoadRecHits(Int_t chamber, Int_t cathode);
99 virtual void LoadCoG(Int_t chamber, Int_t cathode);
100 virtual void LoadCerenkovs(Int_t chamber);
101 virtual void LoadHits(Int_t chamber);
102 TPad *Pad() {return fPad;}
103 TObjArray *Points() {return fPoints;}
104 TObjArray *Phits() {return fPhits;}
105 TObjArray *Rpoints() {return fRpoints;}
106 TObjArray *PCerenkovs() {return fPCerenkovs;}
107 virtual void Paint(Option_t *option="");
108 virtual void SetDrawClusters(Bool_t draw=kTRUE) {fDrawClusters=draw;} // *MENU*
109 virtual void SetDrawCoG(Bool_t draw=kTRUE) {fDrawCoG=draw;} // *MENU*
110 virtual void SetChamberAndCathode(Int_t chamber=1, Int_t cathode=1); // *MENU*
111 virtual void SetRange(Float_t rrange=250, Float_t zrange=1050); // *MENU*
112 virtual void SetView(Float_t theta, Float_t phi, Float_t psi=0);
113 virtual void SetPickMode();
114 virtual void SetZoomMode();
115 virtual void ShowNextEvent(Int_t delta=1);
116 virtual void UnZoom(); // *MENU*
117 virtual void ResetPoints();
118 virtual void ResetRpoints();
119 virtual void ResetRecpoints();
120 virtual void ResetPhits();
121 virtual void ResetPCerenkovs();
122 ClassDef(AliRICHDisplay, 0) //Utility class to display RICH clusters...
123};
124
125
126class AliRICHEllipse : public TPolyMarker3D {
127
128public:
129 AliRICHEllipse();
130 AliRICHEllipse(Float_t cx, Float_t cy, Float_t omega, Float_t theta, Float_t phi);
131
132 virtual ~AliRICHEllipse();
133 virtual void CreatePoints(Int_t chamber);
134
135 Float_t fOmega;
136 Float_t fTheta;
137 Float_t fPhi;
138 Float_t fCx;
139 Float_t fCy;
140 Float_t h;
141
142 ClassDef(AliRICHEllipse, 1) //Utility class to draw an ellipse
143};
144
145#endif
146