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