FEDRA emulsion software from the OPERA Collaboration
EdbDisplayBase.h
Go to the documentation of this file.
1#ifndef ROOT_EdbDisplayBase
2#define ROOT_EdbDisplayBase
5
11
12#include "TObject.h"
13#include "TMath.h"
14#include "TCanvas.h"
15#include "TSlider.h"
16
17#include "TPolyLine3D.h"
18#include "TPolyMarker3D.h"
19#include "TClonesArray.h"
20#include "TArrayF.h"
21#include "TArrayI.h"
22#include "TButton.h"
23#include "TPaveLabel.h"
24
25#include "TGClient.h"
26#include "TGFrame.h"
27#include "TDiamond.h"
28#include "TArc.h"
29#include "TSliderBox.h"
30#include "TGaxis.h"
31#include "TVirtualX.h"
32#include "TGeoVolume.h"
33
34#if ROOT_VERSION_CODE >= ROOT_VERSION(5,15,0)
35#include "TView3D.h"
36#else
37#include "TView.h"
38#endif
39
40static const int kMAXZOOMS=30;
41
43#if ROOT_VERSION_CODE >= ROOT_VERSION(5,15,0)
44class Edb3DView: public TView3D
45#else
46class Edb3DView: public TView
47#endif
48 {
49protected:
50
52
53public:
54#if ROOT_VERSION_CODE >= ROOT_VERSION(5,15,0)
55 Edb3DView() : TView3D() { fRotateMode = false; }
56#else
57 Edb3DView() : TView(1) { fRotateMode = false; }
58#endif
59
60
62
63 virtual const char *GetTitle() const;
64 virtual const char *GetName() const;
65 virtual char *GetObjectInfo(int px, int py) const;
66 virtual void ExecuteRotateView(Int_t event, Int_t px, Int_t py);
67 virtual void SetRotateMode( bool Mode = true );
68
69 ClassDef(Edb3DView,1) //Event Display
70};
71
73class EdbDisplayBase: public TNamed {
74
75protected:
77
78protected:
79 Int_t fZoomMode;
81 Float_t fTheta;
82 Float_t fPhi;
83 Float_t fPsi;
84 Double_t fZoomX0[kMAXZOOMS];
85 Double_t fZoomY0[kMAXZOOMS];
86 Double_t fZoomX1[kMAXZOOMS];
87 Double_t fZoomY1[kMAXZOOMS];
88 Int_t fZooms;
89 Int_t fStyle;
90 // 0 - default
91 // 1 - presentation
92 // ...
93 Width_t fLineWidth;
94 Int_t fColorBG;
96 char fTitle[128];
97 TPad *fTrigPad;
98 TPad *fButtons;
99 TButton *fAllButton;
100 TButton *fEnvButton;
101 TButton *fUndButton;
102 TButton *fAccButton;
103 TButton *fCanButton;
104 TButton *fPickButton;
105 TButton *fZoomButton;
106 TButton *fUnZoomButton;
108 TGMainFrame *fMain;
109 TText *fHdrVTX;
110 TText *fOldVTX;
111 TText *fNewVTX;
112 TText *fPreVTX;
113 TPaveText *fVTXTracks;
114 TButton *fOldBut;
115 TButton *fNewBut;
116 TButton *fPreBut;
117 TButton *fRemBut[50];
118 char fCanvasName[128];
119 Bool_t fDrawDet;
120 TGeoVolume *fDetector;
121public:
122
123 TPaveText *fVTXTRKInfo;
127 TPad *fPad;
128
129public:
130
132 EdbDisplayBase( const char *title,
133 Float_t x0, Float_t x1,
134 Float_t y0, Float_t y1,
135 Float_t z0, Float_t z1,
136 TCanvas *Canvas = 0);
138
139// virtual TCanvas *GetCanvas() { return fCanvas; }
140// virtual TCanvas *GetCanvasVTX() { return fCanvasVTX; }
141 virtual void Set0();
142 virtual void Clear() { fPad->Clear("nodelete"); fView=0; }
143 virtual void Refresh() {}
144 virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py);
145 virtual void DisplayButtons();
146 virtual void SetView(Float_t theta, Float_t phi, Float_t psi=0);
147 virtual void DrawAllViews();
148 virtual void DrawViewGL();
149 virtual void DrawViewX3D();
150 virtual void DrawTitle(Option_t *option="");
151 virtual void DrawPreVTX(char *text);
152 virtual void DrawOldVTX(char *text);
153 virtual void DrawNewVTX(char *text);
154 virtual void DrawPreBut(char *text);
155 virtual void DrawOldBut(char *text);
156 virtual void DrawNewBut(char *text);
157 virtual void ClearPreVTX();
158 virtual void ClearNewVTX();
159 virtual void CreateCanvasVTX();
160 virtual void DrawUnd();
161 virtual void DrawAcc();
162 virtual void DrawCan();
163 virtual void DrawEnv();
164 virtual void DrawView(Float_t theta, Float_t phi, Float_t psi=0);
165 virtual void SetPickMode();
166 virtual void SetRange(Float_t x0, Float_t x1 , Float_t y0, Float_t y1, Float_t z0, Float_t z1);
167 virtual void SetZoomMode();
168 virtual void UnZoom(); // *MENU*
169 virtual void Draw(Option_t *option="");
170 virtual Int_t DistancetoPrimitive(Int_t px, Int_t py);
171 virtual char * GetObjectInfo(int px, int py) const;
172 virtual void SetRotate();
173 virtual void SetStyle(int Style = 0);
174 virtual void SetLineWidth(int width = 1) {fLineWidth=width;}
175 virtual void SetColorBG(int color = 1) {fColorBG=color;}
176 virtual void SetDrawDet(Bool_t fflag);
177 virtual void SwDrawDet() { SetDrawDet(!fDrawDet); }
178 Bool_t GetDrawDet() const { return fDrawDet; }
179 virtual void DrawDetector();
180 virtual void SetDetector(TGeoVolume* det){fDetector=det;}
181 ClassDef(EdbDisplayBase,1) //basic class for FEDRA Event Display
182};
183
184#endif /* ROOT_EdbDisplayBase */
TText * text
Definition: Canv_SYSTEMATICS_ALLCOMBINED__RMSEnergy__vs__Energy__ELECTRON.C:164
brick z0
Definition: RecDispMC.C:106
Event Display.
Definition: EdbDisplayBase.h:48
virtual char * GetObjectInfo(int px, int py) const
Definition: EdbDisplayBase.cxx:1216
bool fRotateMode
Definition: EdbDisplayBase.h:51
~Edb3DView()
Definition: EdbDisplayBase.h:61
virtual const char * GetName() const
Definition: EdbDisplayBase.cxx:1210
virtual void SetRotateMode(bool Mode=true)
Definition: EdbDisplayBase.cxx:1370
virtual const char * GetTitle() const
Definition: EdbDisplayBase.cxx:1202
virtual void ExecuteRotateView(Int_t event, Int_t px, Int_t py)
Definition: EdbDisplayBase.cxx:1240
Edb3DView()
Definition: EdbDisplayBase.h:55
basic class for FEDRA Event Display
Definition: EdbDisplayBase.h:73
virtual void CreateCanvasVTX()
Definition: EdbDisplayBase.cxx:993
Double_t fZoomY0[kMAXZOOMS]
Low y range of zoom number i.
Definition: EdbDisplayBase.h:85
TCanvas * fCanvasVTX
Pointer to the vertex canvas.
Definition: EdbDisplayBase.h:125
Float_t fVz1
Definition: EdbDisplayBase.h:76
virtual void Draw(Option_t *option="")
Definition: EdbDisplayBase.cxx:787
Double_t fZoomY1[kMAXZOOMS]
High y range of zoom number i.
Definition: EdbDisplayBase.h:87
virtual void SetPickMode()
Definition: EdbDisplayBase.cxx:809
virtual void DrawAllViews()
Definition: EdbDisplayBase.cxx:729
TText * fOldVTX
Old Vertex data.
Definition: EdbDisplayBase.h:110
virtual void UnZoom()
Definition: EdbDisplayBase.cxx:854
virtual void DrawOldBut(char *text)
Definition: EdbDisplayBase.cxx:1048
TArc * fArcButton
Gren/Red button to show Pick/Zoom mode.
Definition: EdbDisplayBase.h:107
TPaveText * fVTXTracks
Vertex tracks information.
Definition: EdbDisplayBase.h:113
virtual void DrawNewVTX(char *text)
Definition: EdbDisplayBase.cxx:971
TButton * fNewBut
Modified Vertex display button.
Definition: EdbDisplayBase.h:115
virtual void SetDetector(TGeoVolume *det)
Definition: EdbDisplayBase.h:180
virtual void DrawNewBut(char *text)
Definition: EdbDisplayBase.cxx:1108
virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py)
Definition: EdbDisplayBase.cxx:632
TButton * fAccButton
Button to accept modified vertex.
Definition: EdbDisplayBase.h:102
TButton * fUndButton
Button to undo vertex modofication.
Definition: EdbDisplayBase.h:101
TGMainFrame * fMain
Dialog frame.
Definition: EdbDisplayBase.h:108
Bool_t fDrawAllViews
Flag True if AllViews selected.
Definition: EdbDisplayBase.h:80
virtual void DisplayButtons()
Definition: EdbDisplayBase.cxx:423
TButton * fZoomButton
Button to activate Zoom mode.
Definition: EdbDisplayBase.h:105
Width_t fLineWidth
Line width for tracks and segments.
Definition: EdbDisplayBase.h:93
TButton * fUnZoomButton
Button to Undo previous Zoom.
Definition: EdbDisplayBase.h:106
virtual void DrawTitle(Option_t *option="")
Definition: EdbDisplayBase.cxx:395
virtual void SetRange(Float_t x0, Float_t x1, Float_t y0, Float_t y1, Float_t z0, Float_t z1)
Definition: EdbDisplayBase.cxx:576
virtual void DrawPreVTX(char *text)
Definition: EdbDisplayBase.cxx:949
virtual void DrawViewX3D()
Definition: EdbDisplayBase.cxx:774
~EdbDisplayBase()
Definition: EdbDisplayBase.cxx:211
virtual void SetDrawDet(Bool_t fflag)
Definition: EdbDisplayBase.cxx:554
TCanvas * fCanvas
Pointer to the display canvas.
Definition: EdbDisplayBase.h:124
TGeoVolume * fDetector
detector geometry
Definition: EdbDisplayBase.h:120
TButton * fAllButton
Button to draw all objects.
Definition: EdbDisplayBase.h:99
TText * fPreVTX
Previous Vertex data.
Definition: EdbDisplayBase.h:112
TButton * fPickButton
Button to activate Pick mode.
Definition: EdbDisplayBase.h:104
virtual void Clear()
Definition: EdbDisplayBase.h:142
Int_t fColorBG
color for the display BG
Definition: EdbDisplayBase.h:94
virtual void DrawDetector()
Definition: EdbDisplayBase.cxx:565
TButton * fOldBut
Old Vertex display button.
Definition: EdbDisplayBase.h:114
Float_t fVy0
Definition: EdbDisplayBase.h:76
TPad * fPad
Pointer to the event display main pad.
Definition: EdbDisplayBase.h:127
virtual void SetLineWidth(int width=1)
Definition: EdbDisplayBase.h:174
virtual void SetRotate()
Definition: EdbDisplayBase.cxx:839
virtual void DrawViewGL()
Definition: EdbDisplayBase.cxx:762
virtual void ClearNewVTX()
Definition: EdbDisplayBase.cxx:1032
virtual void DrawAcc()
Definition: EdbDisplayBase.cxx:1154
Double_t fZoomX1[kMAXZOOMS]
High x range of zoom number i.
Definition: EdbDisplayBase.h:86
virtual void DrawOldVTX(char *text)
Definition: EdbDisplayBase.cxx:927
virtual void DrawUnd()
Definition: EdbDisplayBase.cxx:1138
Int_t fStyle
Display style (line width, sizes etc)
Definition: EdbDisplayBase.h:89
virtual void Refresh()
Definition: EdbDisplayBase.h:143
TPad * fTrigPad
Pointer to the trigger pad.
Definition: EdbDisplayBase.h:97
TText * fNewVTX
Modified Vertex data.
Definition: EdbDisplayBase.h:111
char fCanvasName[128]
Name of main canvas.
Definition: EdbDisplayBase.h:118
virtual void SwDrawDet()
Definition: EdbDisplayBase.h:177
TButton * fPreBut
Previous Vertex display button.
Definition: EdbDisplayBase.h:116
TPad * fButtons
Pointer to the buttons pad.
Definition: EdbDisplayBase.h:98
virtual void SetZoomMode()
Definition: EdbDisplayBase.cxx:824
TCanvas * fCanvasTRK
Pointer to the vertex canvas.
Definition: EdbDisplayBase.h:126
Float_t fTheta
Viewing angle theta.
Definition: EdbDisplayBase.h:81
Float_t fPhi
Viewing angle phi.
Definition: EdbDisplayBase.h:82
Int_t fZoomMode
=1 if in zoom mode
Definition: EdbDisplayBase.h:79
virtual Int_t DistancetoPrimitive(Int_t px, Int_t py)
Definition: EdbDisplayBase.cxx:875
virtual void DrawPreBut(char *text)
Definition: EdbDisplayBase.cxx:1078
Double_t fZoomX0[kMAXZOOMS]
Low x range of zoom number i.
Definition: EdbDisplayBase.h:84
virtual void SetView(Float_t theta, Float_t phi, Float_t psi=0)
Definition: EdbDisplayBase.cxx:707
virtual void DrawView(Float_t theta, Float_t phi, Float_t psi=0)
Definition: EdbDisplayBase.cxx:588
Bool_t fDrawDet
True if drawing detector is on.
Definition: EdbDisplayBase.h:119
virtual char * GetObjectInfo(int px, int py) const
Definition: EdbDisplayBase.cxx:903
Edb3DView * fView
Main View object.
Definition: EdbDisplayBase.h:95
TButton * fCanButton
Button to cancel modified vertex.
Definition: EdbDisplayBase.h:103
TButton * fEnvButton
Button to draw vertex environment.
Definition: EdbDisplayBase.h:100
TText * fHdrVTX
Vertex data header.
Definition: EdbDisplayBase.h:109
Int_t fZooms
Number of zooms.
Definition: EdbDisplayBase.h:88
virtual void SetColorBG(int color=1)
Definition: EdbDisplayBase.h:175
char fTitle[128]
EdbDisplay Object Name.
Definition: EdbDisplayBase.h:96
virtual void SetStyle(int Style=0)
Definition: EdbDisplayBase.cxx:264
Float_t fPsi
Viewving angle psi (rotation on display)
Definition: EdbDisplayBase.h:83
EdbDisplayBase()
Definition: EdbDisplayBase.cxx:27
Bool_t GetDrawDet() const
Definition: EdbDisplayBase.h:178
virtual void ClearPreVTX()
Definition: EdbDisplayBase.cxx:1040
TButton * fRemBut[50]
track removing buttons
Definition: EdbDisplayBase.h:117
Float_t fVy1
Definition: EdbDisplayBase.h:76
virtual void DrawCan()
Definition: EdbDisplayBase.cxx:1170
Float_t fVz0
Definition: EdbDisplayBase.h:76
virtual void DrawEnv()
Definition: EdbDisplayBase.cxx:1186
virtual void Set0()
Definition: EdbDisplayBase.cxx:225
Float_t fVx0
Definition: EdbDisplayBase.h:76
TPaveText * fVTXTRKInfo
Vertex - tracks information.
Definition: EdbDisplayBase.h:123
Float_t fVx1
Definition: EdbDisplayBase.h:76
int event
Definition: shower_tr.C:25
new TCanvas()