21 #include <TPolyMarker.h>
26 #include <TGeoVolume.h>
27 #include <TGeoManager.h>
29 #include <TGComboBox.h>
31 #include <TGButtonGroup.h>
32 #include <TGTextEntry.h>
38 extern JApplication *
japp;
57 TGLayoutHints *lhints =
new TGLayoutHints(kLHintsNormal, 2,2,2,2);
58 TGLayoutHints *chints =
new TGLayoutHints(kLHintsCenterY|kLHintsCenterX, 2,2,2,2);
59 TGLayoutHints *xhints =
new TGLayoutHints(kLHintsNormal|kLHintsExpandX, 2,2,2,2);
60 TGLayoutHints *yhints =
new TGLayoutHints(kLHintsNormal|kLHintsExpandY|kLHintsCenterY, 2,2,2,2);
61 TGLayoutHints *thints =
new TGLayoutHints(kLHintsTop|kLHintsCenterX|kLHintsExpandX, 2,2,0,0);
62 TGHorizontalFrame *topframe =
new TGHorizontalFrame(
this, w, h);
63 TGHorizontalFrame *botframe =
new TGHorizontalFrame(
this, w, h);
64 AddFrame(topframe, lhints);
65 AddFrame(botframe, chints);
67 TGGroupFrame *canvasframe =
new TGGroupFrame(topframe,
"BCAL", kVerticalFrame);
68 TGGroupFrame *controls =
new TGGroupFrame(topframe,
"", kVerticalFrame);
69 topframe->AddFrame(canvasframe, lhints);
70 topframe->AddFrame(controls, lhints);
72 TGGroupFrame *viewcontrols =
new TGGroupFrame(controls,
"Controls", kVerticalFrame);
73 controls->AddFrame(viewcontrols, lhints);
76 TGGroupFrame *bcalColorCodes =
new TGGroupFrame(controls,
"BCAL colors", kVerticalFrame);
77 controls->AddFrame(bcalColorCodes, lhints);
80 ecanvas =
new TRootEmbeddedCanvas(
"endviewA Large Canvas", canvasframe, w, h, kSunkenFrame, GetWhitePixel());
81 canvasframe->AddFrame(
ecanvas, chints);
84 TGGroupFrame *panframe =
new TGGroupFrame(viewcontrols,
"Pan", kHorizontalFrame);
85 TGTextButton *panxneg =
new TGTextButton(panframe,
"-X");
86 TGVerticalFrame *panupdn =
new TGVerticalFrame(panframe);
87 TGTextButton *panypos =
new TGTextButton(panupdn,
"+Y");
88 TGTextButton *panyneg =
new TGTextButton(panupdn,
"-Y");
89 TGTextButton *panxpos =
new TGTextButton(panframe,
"X+");
91 viewcontrols->AddFrame(panframe, yhints);
92 panframe->AddFrame(panxneg, chints);
93 panframe->AddFrame(panupdn, chints);
94 panupdn->AddFrame(panypos, chints);
95 panupdn->AddFrame(panyneg, chints);
96 panframe->AddFrame(panxpos, chints);
98 panxneg->Connect(
"Clicked()",
"hdv_mainframe",hdvmf,
"DoPanXneg()");
99 panyneg->Connect(
"Clicked()",
"hdv_mainframe",hdvmf,
"DoPanYneg()");
100 panxpos->Connect(
"Clicked()",
"hdv_mainframe",hdvmf,
"DoPanXpos()");
101 panypos->Connect(
"Clicked()",
"hdv_mainframe",hdvmf,
"DoPanYpos()");
104 TGGroupFrame *zoomframe =
new TGGroupFrame(viewcontrols,
"ZOOM", kHorizontalFrame);
105 viewcontrols->AddFrame(zoomframe, thints);
106 TGTextButton *zoomout =
new TGTextButton(zoomframe,
" - ");
107 TGTextButton *zoomin =
new TGTextButton(zoomframe,
" + ");
108 zoomframe->AddFrame(zoomout, xhints);
109 zoomframe->AddFrame(zoomin, xhints);
111 zoomout->Connect(
"Clicked()",
"hdv_mainframe",hdvmf,
"DoZoomOut()");
112 zoomin->Connect(
"Clicked()",
"hdv_mainframe",hdvmf,
"DoZoomIn()");
115 TGTextButton *reset =
new TGTextButton(viewcontrols,
"Reset");
116 viewcontrols->AddFrame(reset, chints);
117 reset->Connect(
"Clicked()",
"hdv_mainframe", hdvmf,
"DoReset()");
121 ss<<
"To save the canvas to\n";
122 ss<<
"a file, right click\n";
123 ss<<
"and select \"SaveAs\"\n";
124 ss<<
"from the menu. File type\n";
125 ss<<
"will be determined by\n";
126 ss<<
"the suffix of the file\n";
128 TGLabel *saveas =
new TGLabel(viewcontrols, ss.str().c_str());
129 viewcontrols->AddFrame(saveas, chints);
132 TGLabel* BCCLables[9];
133 unsigned int BCccodes[9] = {0x0000FF,0x7700FF,0xFF00FF,0xFF0077,0xFF0000,0xFF7700,0xFFFF00,0xFFFF77,0xFFFFFF};
134 for (
int i=0;i<9;i++) {
135 double e = pow(10,((8-(
double)i)/2.0));
138 sprintf(str1,
"%7.2f GeV",e/1000.);
142 BCCLables[i] =
new TGLabel(bcalColorCodes, (
const char*)str1);
144 BCCLables[i]->SetBackgroundColor(BCccodes[i]);
145 bcalColorCodes->AddFrame(BCCLables[i],lhints);
164 TGTextButton *dismiss =
new TGTextButton(botframe,
"dismiss");
165 botframe->AddFrame(dismiss, chints);
168 dismiss->Connect(
"Clicked()",
"hdv_endviewAframe",
this,
"DoDismiss()");
169 this->Connect(
"CloseWindow()",
"hdv_endviewAframe",
this,
"DoDismiss()");
170 this->DontCallClose();
172 SetWindowName(
"Hall-D Event Viewer BCAL View");
173 SetIconName(
"HDView");
177 Resize(GetDefaultSize());
180 viewcontrols->Resize();
197 ecanvas->GetCanvas()->Range(xlo, ylo, xhi, yhi);
205 if(!IsMapped())
return;
210 for(
unsigned int i=0; i<graphics_endA.size(); i++){
211 TPolyLine *l =
dynamic_cast<TPolyLine*
>(graphics_endA[i]);
212 if(l && l->GetFillStyle()!=0){
213 graphics_endA[i]->Draw(
"f");
215 graphics_endA[i]->Draw(
"");
218 ecanvas->GetCanvas()->Update();
TRootEmbeddedCanvas * ecanvas
sprintf(text,"Post KinFit Cut")
void DrawObjects(vector< TObject * > &graphics_endA)
hdv_endviewAframe(hdv_mainframe *hdvmf, const TGWindow *p, UInt_t w, UInt_t h)
void SetRange(double xlo, double ylo, double xhi, double yhi)