64 const char *filetypes[] = {
65 "ROOT files",
"*.root",
70 const char *rcfiletypes[] = {
79 TGShapedToolTip(
const TGShapedToolTip&);
80 TGShapedToolTip&
operator=(
const TGShapedToolTip&);
83 Int_t fTextX, fTextY, fTextH;
93 TGShapedToolTip(
const char *picname,
Int_t cx=0,
Int_t cy=0,
Int_t cw=0,
95 const char *col=
"#ffffff");
96 virtual ~TGShapedToolTip();
98 virtual void CloseWindow();
102 const char *GetText()
const {
return fText.
Data(); }
104 void SetHisto(
TH1 *hist);
105 void SetText(
const char *
text);
107 void SetTextAttributes(
Int_t tx,
Int_t ty,
Int_t th,
const char *col=0);
114 class HtmlObjTable :
public TObject {
133 virtual ~HtmlObjTable();
135 void SetLabel(
Int_t col,
const char *label) { fLabels[col] = label; }
137 TString Html()
const {
return fHtml; }
156 HtmlSummary(
const char *title);
157 virtual ~HtmlSummary();
159 HtmlObjTable *AddTable(
const char *
name,
Int_t nfields,
Int_t nvals,
161 HtmlObjTable *GetTable(
Int_t at)
const {
return (HtmlObjTable *)fObjTables->
At(at); }
165 TString Html()
const {
return fHtml; }
176 kHelpAbout, kGLPerspYOZ, kGLPerspXOZ, kGLPerspXOY, kGLXOY,
177 kGLXOZ, kGLZOY, kGLOrthoRotate, kGLOrthoDolly, kSceneUpdate,
178 kSceneUpdateAll, kSummaryUpdate
188 static HtmlSummary *fgHtmlSummary;
196 TGShapedToolTip *fShapedToolTip;
205 virtual ~SplitGLView();
208 void HandleMenu(
Int_t id);
212 void OnViewerActivated();
215 void ToggleOrthoRotate();
216 void ToggleOrthoDolly();
218 void LoadConfig(
const char *fname);
219 void SaveConfig(
const char *fname);
220 static void UpdateSummary();
236 HtmlSummary *SplitGLView::fgHtmlSummary = 0;
237 TGHtml *SplitGLView::fgHtml = 0;
240 TGShapedToolTip::TGShapedToolTip(const
char *pname,
Int_t cx,
Int_t cy,
Int_t cw,
248 fTextX = tx; fTextY = ty; fTextH = th;
252 fTextCol =
"0x000000";
255 if ((cx > 0) && (cy > 0) && (cw > 0) && (ch > 0)) {
256 Int_t lhRight = fWidth-cx-cw;
257 Int_t lhBottom = fHeight-cy-ch;
260 lhRight, cy, lhBottom));
264 Resize(fBgnd->GetWidth(), fBgnd->GetHeight());
268 TGShapedToolTip::~TGShapedToolTip()
279 void TGShapedToolTip::CloseWindow()
287 void TGShapedToolTip::Refresh()
291 const char *str = fText.
Data();
292 char *
string = strdup(str);
293 Int_t nlines = 0, size = fTextH;
295 TString ar = fp +
"/arial.ttf";
296 char *s = strtok((
char *)
string,
"\n");
298 img->
DrawText(fTextX, fTextY+(nlines*size), s, size, fTextCol, ar);
299 while ((s = strtok(0,
"\n"))) {
301 img->
DrawText(fTextX, fTextY+(nlines*size), s, size, fTextCol, ar);
303 img->
PaintImage(fId, 0, 0, 0, 0, 0, 0,
"opaque");
314 Int_t lhRight = fWidth-cx-cw;
315 Int_t lhBottom = fHeight-cy-ch;
318 lhRight, cy, lhBottom));
321 Resize(fBgnd->GetWidth(), fBgnd->GetHeight());
333 AddFrame(fEc, hints);
336 Resize(fBgnd->GetWidth(), fBgnd->GetHeight());
343 void TGShapedToolTip::SetHisto(
TH1 *hist)
351 fEc->GetCanvas()->Clear();
355 fEc->GetCanvas()->SetBorderMode(0);
356 fEc->GetCanvas()->SetFillColor(10);
357 fEc->GetCanvas()->cd();
359 fEc->GetCanvas()->Update();
365 void TGShapedToolTip::SetText(
const char *
text)
392 fTextX = tx; fTextY = ty; fTextH = th;
400 void TGShapedToolTip::Show(
Int_t x,
Int_t y,
const char *text,
TH1 *hist)
414 fEc->GetCanvas()->SetBorderMode(0);
415 fEc->GetCanvas()->SetFillColor(10);
416 fEc->GetCanvas()->cd();
418 fEc->GetCanvas()->Update();
425 fName(name), fNValues(nvals), fNFields(nfields), fExpand(exp)
429 fValues =
new TArrayF[fNFields];
430 for (
int i=0;i<fNFields;i++)
431 fValues[i].Set(nvals);
432 fLabels =
new TString[fNFields];
436 HtmlObjTable::~HtmlObjTable()
445 void HtmlObjTable::Build()
449 fHtml =
"<table width=100% border=1 cellspacing=0 cellpadding=0 bgcolor=f0f0f0> ",
452 if (fExpand && (fNFields > 0) && (fNValues > 0)) {
461 void HtmlObjTable::BuildTitle()
465 fHtml +=
"<tr><td colspan=";
466 fHtml +=
Form(
"%d>", fNFields+1);
467 fHtml +=
"<table width=100% border=0 cellspacing=2 cellpadding=0 bgcolor=6e6ea0>";
468 fHtml +=
"<tr><td align=left>";
469 fHtml +=
"<font face=Verdana size=3 color=ffffff><b><i>";
471 fHtml +=
"</i></b></font></td>";
473 fHtml +=
"<td align=right> ";
474 fHtml +=
"<font face=Verdana size=3 color=ffffff><b><i>";
475 fHtml +=
Form(
"Size = %d", fNValues);
476 fHtml +=
"</i></b></font></td></tr>";
478 fHtml +=
"</td></tr>";
482 void HtmlObjTable::BuildLabels()
487 fHtml +=
"<tr bgcolor=c0c0ff>";
488 fHtml +=
"<th> </th>";
489 for (i=0;i<fNFields;i++) {
498 void HtmlObjTable::BuildTable()
502 for (
int i = 0; i < fNValues; i++) {
504 fHtml +=
"<tr bgcolor=e0e0ff>";
506 fHtml +=
"<tr bgcolor=ffffff>";
511 fHtml +=
"<td bgcolor=d0d0ff align=\"center\">";
512 fHtml +=
"<input type=\"checkbox\" name=\"";
514 fHtml +=
Form(
"[%d]\">",i);
517 for (
int j = 0; j < fNFields; j++) {
518 fHtml +=
"<td width=";
519 fHtml +=
Form(
"%d%%", 100/fNFields);
520 fHtml +=
" align=\"center\"";
522 fHtml +=
Form(
"%1.4f", fValues[j][i]);
530 HtmlSummary::HtmlSummary(
const char *title) : fNTables(0), fTitle(title)
538 HtmlSummary::~HtmlSummary()
546 HtmlObjTable *HtmlSummary::AddTable(
const char *name,
Int_t nfields,
Int_t nvals,
553 HtmlObjTable *table =
new HtmlObjTable(name, nfields, nvals, exp);
558 fObjTables->
Add(table);
563 void HtmlSummary::Clear(
Option_t *option)
567 if (option && option[0] ==
'D')
568 fObjTables->
Delete(option);
570 fObjTables->
Clear(option);
579 delete fObjTables; fObjTables = 0;
584 void HtmlSummary::Build()
589 for (
int i=0;i<fNTables;i++) {
590 GetTable(i)->Build();
591 fHtml += GetTable(i)->Html();
597 void HtmlSummary::MakeHeader()
601 fHeader =
"<html><head><title>";
603 fHeader +=
"</title></head><body>";
604 fHeader +=
"<center><h2><font color=#2222ee><i>";
606 fHeader +=
"</i></font></h2></center>";
611 void HtmlSummary::MakeFooter()
615 fFooter =
"<br><p><br><center><strong><font size=2 color=#2222ee>";
616 fFooter +=
"Example of using Html widget to display tabular data";
618 fFooter +=
"(c) 2007-2010 Bertrand Bellenot";
619 fFooter +=
"</font></strong></center></body></html>";
625 TGMainFrame(p, w, h), fActViewer(0), fShapedToolTip(0), fIsEmbedded(embed)
638 fMenuFile->AddSeparator();
639 fMenuFile->AddEntry(
"&Update Summary", kSummaryUpdate);
640 fMenuFile->AddSeparator();
643 fMenuFile->AddSeparator();
644 fMenuFile->AddEntry(
"E&xit", kFileExit);
648 fMenuCamera->
AddEntry(
"Perspective (Floor XOZ)", kGLPerspXOZ);
649 fMenuCamera->AddEntry(
"Perspective (Floor YOZ)", kGLPerspYOZ);
650 fMenuCamera->AddEntry(
"Perspective (Floor XOY)", kGLPerspXOY);
651 fMenuCamera->AddEntry(
"Orthographic (XOY)", kGLXOY);
652 fMenuCamera->AddEntry(
"Orthographic (XOZ)", kGLXOZ);
653 fMenuCamera->AddEntry(
"Orthographic (ZOY)", kGLZOY);
654 fMenuCamera->AddSeparator();
655 fMenuCamera->AddEntry(
"Ortho allow rotate", kGLOrthoRotate);
656 fMenuCamera->AddEntry(
"Ortho allow dolly", kGLOrthoDolly);
659 fMenuScene->
AddEntry(
"&Update Current", kSceneUpdate);
660 fMenuScene->AddEntry(
"Update &All", kSceneUpdateAll);
667 fMenuBar =
new TGMenuBar(
this, 1, 1, kHorizontalFrame);
680 fMenuFile->Connect(
"Activated(Int_t)",
"SplitGLView",
this,
681 "HandleMenu(Int_t)");
682 fMenuCamera->Connect(
"Activated(Int_t)",
"SplitGLView",
this,
683 "HandleMenu(Int_t)");
684 fMenuScene->Connect(
"Activated(Int_t)",
"SplitGLView",
this,
685 "HandleMenu(Int_t)");
686 fMenuHelp->Connect(
"Activated(Int_t)",
"SplitGLView",
this,
687 "HandleMenu(Int_t)");
689 if (fIsEmbedded &&
gEve) {
695 Int_t parts[] = {45, 15, 10, 30};
697 fStatusBar->SetParts(parts, 4);
704 fPad->SetFillColor(
kBlack);
710 fSplitFrame->HSplit(434);
712 fSplitFrame->GetSecond()->VSplit(266);
713 fSplitFrame->GetSecond()->GetSecond()->VSplit(266);
723 but1->
Connect(
"Clicked(TGLViewerBase*)",
"SplitGLView",
this,
"SwapToMainView(TGLViewerBase*)");
725 but2->
Connect(
"Clicked(TGLViewerBase*)",
"SplitGLView",
this,
"UnDock(TGLViewerBase*)");
731 fViewer0->Connect(
"MouseOver(TGLPhysicalShape*)",
"SplitGLView",
this,
732 "OnMouseOver(TGLPhysicalShape*)");
733 fViewer0->Connect(
"Activated()",
"SplitGLView",
this,
734 "OnViewerActivated()");
735 fViewer0->Connect(
"MouseIdle(TGLPhysicalShape*,UInt_t,UInt_t)",
737 "OnMouseIdle(TGLPhysicalShape*,UInt_t,UInt_t)");
738 fViewer0->Connect(
"Clicked(TObject*)",
"SplitGLView",
this,
739 "OnClicked(TObject*)");
740 fViewer[0] =
new TEveViewer(
"SplitGLViewer[0]");
741 fViewer[0]->SetGLViewer(fViewer0, fViewer0->GetFrame());
742 fViewer[0]->IncDenyDestroy();
743 if (fIsEmbedded &&
gEve) {
763 but3->
Connect(
"Clicked(TGLViewerBase*)",
"SplitGLView",
this,
"SwapToMainView(TGLViewerBase*)");
765 but4->
Connect(
"Clicked(TGLViewerBase*)",
"SplitGLView",
this,
"UnDock(TGLViewerBase*)");
772 fViewer1->Connect(
"MouseOver(TGLPhysicalShape*)",
"SplitGLView",
this,
773 "OnMouseOver(TGLPhysicalShape*)");
774 fViewer1->Connect(
"Activated()",
"SplitGLView",
this,
775 "OnViewerActivated()");
776 fViewer1->Connect(
"MouseIdle(TGLPhysicalShape*,UInt_t,UInt_t)",
778 "OnMouseIdle(TGLPhysicalShape*,UInt_t,UInt_t)");
779 fViewer1->Connect(
"Clicked(TObject*)",
"SplitGLView",
this,
780 "OnClicked(TObject*)");
781 fViewer[1] =
new TEveViewer(
"SplitGLViewer[1]");
782 fViewer[1]->SetGLViewer(fViewer1, fViewer1->GetFrame());
783 fViewer[1]->IncDenyDestroy();
784 if (fIsEmbedded &&
gEve) {
787 fViewer[1]->AddScene(s);
807 but5->
Connect(
"Clicked(TGLViewerBase*)",
"SplitGLView",
this,
"SwapToMainView(TGLViewerBase*)");
809 but6->
Connect(
"Clicked(TGLViewerBase*)",
"SplitGLView",
this,
"UnDock(TGLViewerBase*)");
816 fViewer2->Connect(
"MouseOver(TGLPhysicalShape*)",
"SplitGLView",
this,
817 "OnMouseOver(TGLPhysicalShape*)");
818 fViewer2->Connect(
"Activated()",
"SplitGLView",
this,
819 "OnViewerActivated()");
820 fViewer2->Connect(
"MouseIdle(TGLPhysicalShape*,UInt_t,UInt_t)",
822 "OnMouseIdle(TGLPhysicalShape*,UInt_t,UInt_t)");
823 fViewer2->Connect(
"Clicked(TObject*)",
"SplitGLView",
this,
824 "OnClicked(TObject*)");
825 fViewer[2] =
new TEveViewer(
"SplitGLViewer[2]");
826 fViewer[2]->SetGLViewer(fViewer2, fViewer2->GetFrame());
827 fViewer[2]->IncDenyDestroy();
828 if (fIsEmbedded &&
gEve) {
831 fViewer[2]->AddScene(s);
847 button->
Connect(
"Clicked()",
"SplitGLView",
this,
"SwapToMainView(TGLViewerBase*=0)");
848 fgHtmlSummary =
new HtmlSummary(
"Alice Event Display Summary Table");
849 fgHtml =
new TGHtml(hfrm, 100, 100, -1);
854 if (fIsEmbedded &&
gEve) {
856 "SplitGLView",
this,
"ItemClicked(TGListTreeItem*, Int_t, Int_t, Int_t)");
859 fShapedToolTip =
new TGShapedToolTip(
"Default.png", 120, 22, 160, 110,
860 23, 115, 12,
"#ffff80");
861 Resize(GetDefaultSize());
864 LoadConfig(
".everc");
868 SplitGLView::~SplitGLView()
873 fMenuFile->Disconnect(
"Activated(Int_t)",
this,
"HandleMenu(Int_t)");
874 fMenuCamera->Disconnect(
"Activated(Int_t)",
this,
"HandleMenu(Int_t)");
875 fMenuScene->Disconnect(
"Activated(Int_t)",
this,
"HandleMenu(Int_t)");
876 fMenuHelp->Disconnect(
"Activated(Int_t)",
this,
"HandleMenu(Int_t)");
877 fViewer0->Disconnect(
"MouseOver(TGLPhysicalShape*)",
this,
878 "OnMouseOver(TGLPhysicalShape*)");
879 fViewer0->Disconnect(
"Activated()",
this,
"OnViewerActivated()");
880 fViewer0->Disconnect(
"MouseIdle(TGLPhysicalShape*,UInt_t,UInt_t)",
881 this,
"OnMouseIdle(TGLPhysicalShape*,UInt_t,UInt_t)");
882 fViewer1->Disconnect(
"MouseOver(TGLPhysicalShape*)",
this,
883 "OnMouseOver(TGLPhysicalShape*)");
884 fViewer1->Disconnect(
"Activated()",
this,
"OnViewerActivated()");
885 fViewer1->Disconnect(
"MouseIdle(TGLPhysicalShape*,UInt_t,UInt_t)",
886 this,
"OnMouseIdle(TGLPhysicalShape*,UInt_t,UInt_t)");
887 fViewer2->Disconnect(
"MouseOver(TGLPhysicalShape*)",
this,
888 "OnMouseOver(TGLPhysicalShape*)");
889 fViewer2->Disconnect(
"Activated()",
this,
"OnViewerActivated()");
890 fViewer2->Disconnect(
"MouseIdle(TGLPhysicalShape*,UInt_t,UInt_t)",
891 this,
"OnMouseIdle(TGLPhysicalShape*,UInt_t,UInt_t)");
897 delete fShapedToolTip;
916 void SplitGLView::HandleMenu(
Int_t id)
921 static TString rcfile(
".everc");
1005 fActViewer->UpdateScene();
1009 case kSceneUpdateAll:
1010 fViewer0->UpdateScene();
1011 fViewer1->UpdateScene();
1012 fViewer2->UpdateScene();
1016 case kSummaryUpdate:
1028 if (!rootx.
IsNull()) rootx +=
"/bin";
1030 rootx +=
"/root -a &";
1037 sprintf(str,
"About ROOT %s...",
gROOT->GetVersion());
1052 void SplitGLView::OnClicked(
TObject *obj)
1057 fStatusBar->SetText(
Form(
"User clicked on: \"%s\"", obj->
GetName()), 1);
1059 fStatusBar->SetText(
"", 1);
1072 static TH1F *h1f = 0;
1075 TF1 *sqroot =
new TF1(
"sqroot",
"x*gaus(0) + [3]*form1",0,10);
1078 h1f =
new TH1F(
"h1f",
"",50,0,10);
1084 if (fShapedToolTip) {
1085 fShapedToolTip->UnmapWindow();
1093 gClient->GetDefaultRoot()->GetId(), posx, posy,
x,
y,
1096 if (fShapedToolTip) {
1097 fShapedToolTip->Show(x+5, y+5,
Form(
"%s\n \n%s",
1112 fStatusBar->SetText(
Form(
"Mouse Over: \"%s\"",
1115 fStatusBar->SetText(
"", 0);
1119 void SplitGLView::OnViewerActivated()
1126 if (fActViewer && fActViewer->GetFrame())
1127 fActViewer->GetFrame()->ChangeBackground(GetDefaultFrameBackground());
1133 if (fActViewer == 0) {
1134 printf (
"dyncast failed ...\n");
1140 gClient->GetColorByName(
"green", green);
1143 if (fActViewer->GetFrame())
1144 fActViewer->GetFrame()->ChangeBackground(green);
1147 if (fActViewer->GetOrthoXOYCamera()->GetDollyToZoom() &&
1148 fActViewer->GetOrthoXOZCamera()->GetDollyToZoom() &&
1149 fActViewer->GetOrthoZOYCamera()->GetDollyToZoom())
1150 fMenuCamera->UnCheckEntry(kGLOrthoDolly);
1152 fMenuCamera->CheckEntry(kGLOrthoDolly);
1154 if (fActViewer->GetOrthoXOYCamera()->GetEnableRotate() &&
1155 fActViewer->GetOrthoXOYCamera()->GetEnableRotate() &&
1156 fActViewer->GetOrthoXOYCamera()->GetEnableRotate())
1157 fMenuCamera->CheckEntry(kGLOrthoRotate);
1159 fMenuCamera->UnCheckEntry(kGLOrthoRotate);
1171 Form(
"The file \"%s\" is not a root file!", fname),
1178 Form(
"The file \"%s\" does't contain a geometry", fname),
1184 fPad->GetListOfPrimitives()->Delete();
1188 fViewer0->PadPaint(fPad);
1189 fViewer1->PadPaint(fPad);
1190 fViewer2->PadPaint(fPad);
1194 void SplitGLView::ToggleOrthoRotate()
1198 if (fMenuCamera->IsEntryChecked(kGLOrthoRotate))
1199 fMenuCamera->UnCheckEntry(kGLOrthoRotate);
1201 fMenuCamera->CheckEntry(kGLOrthoRotate);
1202 Bool_t state = fMenuCamera->IsEntryChecked(kGLOrthoRotate);
1204 fActViewer->GetOrthoXOYCamera()->SetEnableRotate(state);
1205 fActViewer->GetOrthoXOYCamera()->SetEnableRotate(state);
1206 fActViewer->GetOrthoXOYCamera()->SetEnableRotate(state);
1211 void SplitGLView::ToggleOrthoDolly()
1215 if (fMenuCamera->IsEntryChecked(kGLOrthoDolly))
1216 fMenuCamera->UnCheckEntry(kGLOrthoDolly);
1218 fMenuCamera->CheckEntry(kGLOrthoDolly);
1219 Bool_t state = ! fMenuCamera->IsEntryChecked(kGLOrthoDolly);
1221 fActViewer->GetOrthoXOYCamera()->SetDollyToZoom(state);
1222 fActViewer->GetOrthoXOZCamera()->SetDollyToZoom(state);
1223 fActViewer->GetOrthoZOYCamera()->SetDollyToZoom(state);
1247 void SplitGLView::LoadConfig(
const char *fname)
1250 Int_t height, width;
1258 Int_t bottom_height = env->
GetValue(
"Bottom.Tab.Height", 0);
1260 if (fIsEmbedded &&
gEve) {
1272 width = fSplitFrame->GetFirst()->GetWidth();
1273 fSplitFrame->GetFirst()->Resize(width, mainheight);
1275 height = fSplitFrame->GetSecond()->GetFirst()->GetHeight();
1276 fSplitFrame->GetSecond()->GetFirst()->Resize(blwidth, height);
1278 height = fSplitFrame->GetSecond()->GetSecond()->GetFirst()->GetHeight();
1279 fSplitFrame->GetSecond()->GetSecond()->GetFirst()->Resize(bcwidth, height);
1281 height = fSplitFrame->GetSecond()->GetSecond()->GetSecond()->GetHeight();
1282 fSplitFrame->GetSecond()->GetSecond()->GetSecond()->Resize(brwidth, height);
1284 fSplitFrame->Layout();
1286 if (fIsEmbedded &&
gEve) {
1295 void SplitGLView::SaveConfig(
const char *fname)
1298 Int_t bottom_height = 0;
1299 Int_t top_height = 0;
1303 if (fIsEmbedded &&
gEve) {
1319 if (fIsEmbedded &&
gEve) {
1321 env->
SetValue(
"Right.Tab.Height", top_height);
1323 env->
SetValue(
"Bottom.Tab.Height", bottom_height);
1344 if (!fSplitFrame->GetFirst()->GetFrame())
1349 while (parent && !parent->
InheritsFrom(
"TGSplitFrame")) {
1379 void SplitGLView::UpdateSummary()
1387 HtmlObjTable *table;
1390 fgHtmlSummary->
Clear(
"D");
1401 table = fgHtmlSummary->AddTable(ename, 0, nel);
1408 table = fgHtmlSummary->AddTable(ename.
Data(), 5,
1410 table->SetLabel(0,
"Momentum");
1411 table->SetLabel(1,
"P_t");
1412 table->SetLabel(2,
"Phi");
1413 table->SetLabel(3,
"Theta");
1414 table->SetLabel(4,
"Eta");
1418 table->SetValue(0, k, p);
1420 table->SetValue(1, k, pt);
1422 table->SetValue(2, k, phi);
1424 table->SetValue(3, k, theta);
1426 table->SetValue(4, k, eta);
1431 fgHtmlSummary->Build();
1433 fgHtml->ParseText((
char*)fgHtmlSummary->Html().Data());
1442 printf(
"This script is used via ACLiC by the macro \"alice_esd_split.C\"\n");
1443 printf(
"To see it in action, just run \".x alice_esd_split.C\"\n");
TEveViewerList * GetViewers() const
virtual Bool_t AccessPathName(const char *path, EAccessMode mode=kFileExists)
Returns FALSE if one can access a file using the specified access mode.
virtual void Add(TObject *obj)
TGShapedFrame & operator=(const TGShapedFrame &)
virtual void Resize(UInt_t w=0, UInt_t h=0)
Resize the frame.
virtual void AddFrame(TGFrame *f, TGLayoutHints *hints)
Add frame to dockable frame container. Frame and hints are NOT adopted.
virtual void SetParameters(const Double_t *params)
Base class for event management and navigation.
void Delete(Option_t *option="")
Remove all objects from the collection AND delete all heap based objects.
TObject * GetExternal() const
Eve representation of TGLScene.
virtual Bool_t InheritsFrom(const char *classname) const
Returns kTRUE if object inherits from class "classname".
const TGWindow * GetParent() const
virtual const char * GetElementName() const
Virtual function for retrieving name of the element.
R__EXTERN void * gTQSender
TString & ReplaceAll(const TString &s1, const TString &s2)
TH1 * GetHisto(TFile *inFile, const std::string name)
TFile * OpenFile(const TString &fin)
THist< 1, float, THistStatContent, THistStatUncertainty > TH1F
This is the ROOT implementation of the Qt object communication mechanism (see also http://www...
void SetFixedSize(Bool_t fixed)
TObject * At(Int_t idx) const
Returns the object at position idx. Returns 0 if idx is out of range.
The TEnv class reads config files, by default named .rootrc.
tomato 1-D histogram with a float per channel (see TH1 documentation)}
TGStatusBar * GetStatusBar() const
Array of floats (32 bits per element).
void ToLower()
Change string to lower-case.
TGSplitFrame * GetSecond() const
virtual void Draw(Option_t *option="")
Default Draw method for all objects.
TGListTreeItem * AddToListTree(TEveElement *re, Bool_t open, TGListTree *lt=0)
An abstract interface to image processing library.
virtual void Terminate(Int_t status=0)
Terminate the application by call TSystem::Exit() unless application has been told to return from Run...
TGCompositeFrame * GetFrame() const
R__EXTERN TApplication * gApplication
Axes for non-linear projections.
TGSplitFrame * GetFirst() const
TEveSelection * GetSelection() const
R__EXTERN const char gHelpAbout[]
TEveEventManager * GetCurrentEvent() const
virtual void Reset(Option_t *option="")
Reset.
TObject * Clone(const char *newname=0) const
Make a complete copy of the underlying object.
Minimal GL-viewer that can be embedded in a standard ROOT frames.
Base class for GL viewers.
Concrete physical shape - a GL drawable.
virtual void SetValue(const char *name, const char *value, EEnvLevel level=kEnvChange, const char *type=0)
Set the value of a resource or create a new resource.
virtual int Rename(const char *from, const char *to)
Rename a file.
const char * Data() const
virtual void Clear(Option_t *option="")
Set name and title to empty strings ("").
#define ClassDef(name, id)
TEveScene * GetGlobalScene() const
const TGLLogicalShape * GetLogical() const
A list of tracks supporting change of common attributes and selection based on track parameters...
virtual const char * Getenv(const char *env)
Get environment variable.
virtual void SetName(const char *name)
virtual void Clear(Option_t *option="")
Clear all lines in this pavetext.
TGeoVolume * GetTopVolume() const
Int_t GetPickToSelect() const
Manager class for steering of projections and managing projected objects.
Bool_t Connect(const char *signal, const char *receiver_class, void *receiver, const char *slot)
Non-static method is used to connect from the signal of this object to the receiver slot...
virtual void PaintImage(Drawable_t, Int_t, Int_t, Int_t=0, Int_t=0, UInt_t=0, UInt_t=0, Option_t *="")
virtual void FillRandom(const char *fname, Int_t ntimes=5000)
Fill histogram following distribution in function fname.
Bool_t EndsWith(const char *pat, ECaseCompare cmp=kExact) const
Return true if string ends with the specified string.
R__EXTERN TSystem * gSystem
virtual void SetFillColor(Color_t fcolor)
Set the fill area color.
virtual TObject * Clone(const char *) const
Make a clone of an object using the Streamer facility.
R__EXTERN TEveManager * gEve
void DefaultColors()
Set default volume colors according to A of material.
virtual Int_t GetValue(const char *name, Int_t dflt)
Returns the integer value for a resource.
char * Form(const char *fmt,...)
TEvePointSet is a render-element holding a collection of 3D points with optional per-point TRef and a...
virtual Int_t Exec(const char *shellcmd)
Execute a command.
void AddFirst(TObject *obj)
Insert object at beginning of collection.
Base GL viewer object - used by both standalone and embedded (in pad) GL.
virtual void AddElement(TEveElement *el)
Add el to the list of children.
void Reset(Detail::TBranchProxy *x)
Visual representation of a track.
virtual void * GetUserData() const =0
virtual const char * GetElementTitle() const
Virtual function for retrieving title of the render-element.
char * StrDup(const char *str)
Duplicate the string str.
TString & Remove(Ssiz_t pos)
virtual void DrawText(Int_t=0, Int_t=0, const char *="", Int_t=12, const char *=0, const char *="fixed", EText3DType=TImage::kPlain, const char *=0, Float_t=0)
R__EXTERN TGeoManager * gGeoManager
virtual const char * GetName() const
Returns name of object.
void EveMenu(Int_t id)
Handle events from Eve menu.
TGListTree * GetListTree() const
Get default list-tree widget.
TEveScene * GetEventScene() const
TEveBrowser * GetBrowser() const
virtual TObject * GetObject(const TEveException &eh) const
Get a TObject associated with this render-element.
void SetAt(Double_t v, Int_t i)
virtual void AddFrame(TGFrame *f, TGLayoutHints *l=0)
Add frame to the composite frame using the specified layout hints.
virtual void SaveLevel(EEnvLevel level)
Write the resource file for a certain level.
Mother of all ROOT objects.
This was intended as a TPad wrapper to allow smart updates of groups of pads.
virtual void DoRedraw()
Redraw the frame.
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
void Clear(Option_t *option="")
Remove all objects from the collection.
virtual void AddElement(TEveElement *el)
Call base-class implementation.
TEveScene * SpawnNewScene(const char *name, const char *title="")
Create a new scene.
Int_t NumChildren() const
Exception class thrown by TEve classes and macros.
float type_of_call hi(const int &, const int &)
static TGeoManager * Import(const char *filename, const char *name="", Option_t *option="")
static function Import a geometry from a gdml or ROOT file
Base class for TEveUtil visualization elements, providing hierarchy management, rendering control and...
TGTab * GetTabRight() const
virtual void SetStats(Bool_t stats=kTRUE)
Set statistics option on/off.
TGTab * GetTabBottom() const
Ssiz_t First(char c) const
Find first occurrence of a character c.
Eve representation of TGLViewer.
TEveSelection * GetHighlight() const
virtual void AddFrame(TGFrame *f, TGLayoutHints *l=0)
Add a frame in the split frame using layout hints l.
void EnableHide(Bool_t onoff)
Enable hiding.
TGLWidget * GetGLWidget()
virtual const char * GetElementName() const
Virtual function for retrieving name of the element.