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,
"FCAL", 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);
74 TGGroupFrame *fcalColorCodes =
new TGGroupFrame(controls,
"Color code", kVerticalFrame);
75 controls->AddFrame(fcalColorCodes, lhints);
78 ecanvas =
new TRootEmbeddedCanvas(
"endviewB Large Canvas", canvasframe, w, h, kSunkenFrame, GetWhitePixel());
79 canvasframe->AddFrame(
ecanvas, chints);
82 TGGroupFrame *panframe =
new TGGroupFrame(viewcontrols,
"Pan", kHorizontalFrame);
83 TGTextButton *panxneg =
new TGTextButton(panframe,
"-X");
84 TGVerticalFrame *panupdn =
new TGVerticalFrame(panframe);
85 TGTextButton *panypos =
new TGTextButton(panupdn,
"+Y");
86 TGTextButton *panyneg =
new TGTextButton(panupdn,
"-Y");
87 TGTextButton *panxpos =
new TGTextButton(panframe,
"X+");
89 viewcontrols->AddFrame(panframe, yhints);
90 panframe->AddFrame(panxneg, chints);
91 panframe->AddFrame(panupdn, chints);
92 panupdn->AddFrame(panypos, chints);
93 panupdn->AddFrame(panyneg, chints);
94 panframe->AddFrame(panxpos, chints);
96 panxneg->Connect(
"Clicked()",
"hdv_mainframe",hdvmf,
"DoPanXneg()");
97 panyneg->Connect(
"Clicked()",
"hdv_mainframe",hdvmf,
"DoPanYneg()");
98 panxpos->Connect(
"Clicked()",
"hdv_mainframe",hdvmf,
"DoPanXpos()");
99 panypos->Connect(
"Clicked()",
"hdv_mainframe",hdvmf,
"DoPanYpos()");
102 TGGroupFrame *zoomframe =
new TGGroupFrame(viewcontrols,
"ZOOM", kHorizontalFrame);
103 viewcontrols->AddFrame(zoomframe, thints);
104 TGTextButton *zoomout =
new TGTextButton(zoomframe,
" - ");
105 TGTextButton *zoomin =
new TGTextButton(zoomframe,
" + ");
106 zoomframe->AddFrame(zoomout, xhints);
107 zoomframe->AddFrame(zoomin, xhints);
109 zoomout->Connect(
"Clicked()",
"hdv_mainframe",hdvmf,
"DoZoomOut()");
110 zoomin->Connect(
"Clicked()",
"hdv_mainframe",hdvmf,
"DoZoomIn()");
113 TGTextButton *reset =
new TGTextButton(viewcontrols,
"Reset");
114 viewcontrols->AddFrame(reset, chints);
115 reset->Connect(
"Clicked()",
"hdv_mainframe", hdvmf,
"DoReset()");
119 ss<<
"To save the canvas to\n";
120 ss<<
"a file, right click\n";
121 ss<<
"and select \"SaveAs\"\n";
122 ss<<
"from the menu. File type\n";
123 ss<<
"will be determined by\n";
124 ss<<
"the suffix of the file\n";
126 TGLabel *saveas =
new TGLabel(viewcontrols, ss.str().c_str());
127 viewcontrols->AddFrame(saveas, chints);
129 TGLabel* FCCLables[9];
130 unsigned int FCccodes[9] = {0x0000FF,0x7700FF,0xFF00FF,0xFF0077,0xFF0000,0xFF7700,0xFFFF00,0xFFFF77,0xFFFFFF};
131 for (
int i=0;i<9;i++) {
132 double e = pow(10,((8-(
double)i)/2.0));
135 sprintf(str1,
"%7.2f GeV",e/1000.);
139 FCCLables[i] =
new TGLabel(fcalColorCodes, (
const char*)str1);
140 FCCLables[i]->SetBackgroundColor(FCccodes[i]);
141 fcalColorCodes->AddFrame(FCCLables[i],lhints);
146 TGTextButton *dismiss =
new TGTextButton(botframe,
"dismiss");
147 botframe->AddFrame(dismiss, chints);
150 dismiss->Connect(
"Clicked()",
"hdv_endviewBframe",
this,
"DoDismiss()");
151 this->Connect(
"CloseWindow()",
"hdv_endviewBframe",
this,
"DoDismiss()");
152 this->DontCallClose();
155 SetWindowName(
"Hall-D Event Viewer FCAL and TOF View");
156 SetIconName(
"HDView");
160 Resize(GetDefaultSize());
163 viewcontrols->Resize();
180 ecanvas->GetCanvas()->Range(xlo, ylo, xhi, yhi);
188 if(!IsMapped())
return;
191 for(
unsigned int i=0; i<graphics_endB.size(); i++)graphics_endB[i]->
Draw(
"f");
192 for(
unsigned int i=0; i<graphics_endB.size(); i++)graphics_endB[i]->
Draw();
193 ecanvas->GetCanvas()->Update();
sprintf(text,"Post KinFit Cut")
void SetRange(double xlo, double ylo, double xhi, double yhi)
void DrawObjects(vector< TObject * > &graphics_endB)
TRootEmbeddedCanvas * ecanvas
hdv_endviewBframe(hdv_mainframe *hdvmf, const TGWindow *p, UInt_t w, UInt_t h)
locHist_NumHighLevel Draw("COLZ")