65const char *filetypes[] = {
"ROOT files",
"*.root",
"All files",
"*",
nullptr,
nullptr};
67const char *rcfiletypes[] = {
"All files",
"*",
nullptr,
nullptr};
73 TGShapedToolTip(
const TGShapedToolTip &);
74 TGShapedToolTip &
operator=(
const TGShapedToolTip &);
77 Int_t fTextX, fTextY, fTextH;
84 void DoRedraw()
override {}
88 Int_t ty = 0,
Int_t th = 0,
const char *col =
"#ffffff");
89 ~TGShapedToolTip()
override;
91 virtual void CloseWindow();
94 TH1 *GetHisto()
const {
return fHist; }
95 const char *GetText()
const {
return fText.
Data(); }
97 void SetHisto(
TH1 *hist);
98 void SetText(
const char *
text);
100 void SetTextAttributes(
Int_t tx,
Int_t ty,
Int_t th,
const char *col =
nullptr);
107class HtmlObjTable :
public TObject {
125 ~HtmlObjTable()
override;
127 void SetLabel(
Int_t col,
const char *label) { fLabels[col] = label; }
129 TString Html()
const {
return fHtml; }
148 HtmlSummary(
const char *title);
149 virtual ~HtmlSummary();
152 HtmlObjTable *GetTable(
Int_t at)
const {
return (HtmlObjTable *)fObjTables->
At(at); }
156 TString Html()
const {
return fHtml; }
191 static HtmlSummary *fgHtmlSummary;
199 TGShapedToolTip *fShapedToolTip;
208 ~SplitGLView()
override;
211 void HandleMenu(
Int_t id);
215 void OnViewerActivated();
218 void ToggleOrthoRotate();
219 void ToggleOrthoDolly();
221 void LoadConfig(
const char *fname);
222 void SaveConfig(
const char *fname);
223 static void UpdateSummary();
235 HtmlSummary *SplitGLView::fgHtmlSummary =
nullptr;
236TGHtml *SplitGLView::fgHtml =
nullptr;
240 Int_t th,
const char *col)
253 fTextCol =
"0x000000";
256 if ((cx > 0) && (cy > 0) && (cw > 0) && (ch > 0)) {
257 Int_t lhRight = fWidth - cx - cw;
258 Int_t lhBottom = fHeight - cy - ch;
264 Resize(fBgnd->GetWidth(), fBgnd->GetHeight());
268TGShapedToolTip::~TGShapedToolTip()
279void TGShapedToolTip::CloseWindow()
287void TGShapedToolTip::Refresh()
291 const char *str = fText.
Data();
292 char *
string = strdup(str);
295 char *s = strtok((
char *)
string,
"\n");
297 img->DrawText(fTextX, fTextY + (nlines *
size), s,
size, fTextCol, ar);
298 while ((s = strtok(
nullptr,
"\n"))) {
300 img->DrawText(fTextX, fTextY + (nlines *
size), s,
size, fTextCol, ar);
302 img->
PaintImage(fId, 0, 0, 0, 0, 0, 0,
"opaque");
313 Int_t lhRight = fWidth - cx - cw;
314 Int_t lhBottom = fHeight - cy - ch;
319 Resize(fBgnd->GetWidth(), fBgnd->GetHeight());
331 AddFrame(fEc, hints);
334 Resize(fBgnd->GetWidth(), fBgnd->GetHeight());
341void TGShapedToolTip::SetHisto(
TH1 *hist)
363void TGShapedToolTip::SetText(
const char *
text)
375void TGShapedToolTip::SetTextColor(
const char *col)
385void TGShapedToolTip::SetTextAttributes(
Int_t tx,
Int_t ty,
Int_t th,
const char *col)
424 : fName(
name), fNValues(nvals), fNFields(nfields), fExpand(
exp)
428 fValues =
new TArrayF[fNFields];
429 for (
int i = 0; i < fNFields; i++)
430 fValues[i].Set(nvals);
431 fLabels =
new TString[fNFields];
435HtmlObjTable::~HtmlObjTable()
444void HtmlObjTable::Build()
448 fHtml =
"<table width=100% border=1 cellspacing=0 cellpadding=0 bgcolor=f0f0f0> ",
451 if (fExpand && (fNFields > 0) && (fNValues > 0)) {
460void HtmlObjTable::BuildTitle()
464 fHtml +=
"<tr><td colspan=";
465 fHtml +=
Form(
"%d>", fNFields + 1);
466 fHtml +=
"<table width=100% border=0 cellspacing=2 cellpadding=0 bgcolor=6e6ea0>";
467 fHtml +=
"<tr><td align=left>";
468 fHtml +=
"<font face=Verdana size=3 color=ffffff><b><i>";
470 fHtml +=
"</i></b></font></td>";
472 fHtml +=
"<td align=right> ";
473 fHtml +=
"<font face=Verdana size=3 color=ffffff><b><i>";
474 fHtml +=
Form(
"Size = %d", fNValues);
475 fHtml +=
"</i></b></font></td></tr>";
477 fHtml +=
"</td></tr>";
481void HtmlObjTable::BuildLabels()
486 fHtml +=
"<tr bgcolor=c0c0ff>";
487 fHtml +=
"<th> </th>";
488 for (i = 0; i < fNFields; i++) {
497void HtmlObjTable::BuildTable()
501 for (
int i = 0; i < fNValues; i++) {
503 fHtml +=
"<tr bgcolor=e0e0ff>";
505 fHtml +=
"<tr bgcolor=ffffff>";
508 name.ReplaceAll(
" ",
"_");
510 fHtml +=
"<td bgcolor=d0d0ff align=\"center\">";
511 fHtml +=
"<input type=\"checkbox\" name=\"";
513 fHtml +=
Form(
"[%d]\">", i);
516 for (
int j = 0; j < fNFields; j++) {
517 fHtml +=
"<td width=";
518 fHtml +=
Form(
"%d%%", 100 / fNFields);
519 fHtml +=
" align=\"center\"";
521 fHtml +=
Form(
"%1.4f", fValues[j][i]);
529HtmlSummary::HtmlSummary(
const char *title) : fNTables(0), fTitle(title)
537HtmlSummary::~HtmlSummary()
551 HtmlObjTable *table =
new HtmlObjTable(
name, nfields, nvals, exp);
556 fObjTables->
Add(table);
578 fObjTables =
nullptr;
583void HtmlSummary::Build()
588 for (
int i = 0; i < fNTables; i++) {
589 GetTable(i)->Build();
590 fHtml += GetTable(i)->Html();
596void HtmlSummary::MakeHeader()
600 fHeader =
"<html><head><title>";
602 fHeader +=
"</title></head><body>";
603 fHeader +=
"<center><h2><font color=#2222ee><i>";
605 fHeader +=
"</i></font></h2></center>";
610void HtmlSummary::MakeFooter()
614 fFooter =
"<br><p><br><center><strong><font size=2 color=#2222ee>";
615 fFooter +=
"Example of using Html widget to display tabular data";
617 fFooter +=
"(c) 2007-2010 Bertrand Bellenot";
618 fFooter +=
"</font></strong></center></body></html>";
624 :
TGMainFrame(
p,
w,
h), fActViewer(nullptr), fShapedToolTip(nullptr), fIsEmbedded(embed)
636 fMenuFile->AddEntry(
"&Open...",
kFileOpen);
637 fMenuFile->AddSeparator();
638 fMenuFile->AddEntry(
"&Update Summary", kSummaryUpdate);
639 fMenuFile->AddSeparator();
640 fMenuFile->AddEntry(
"&Load Config...", kFileLoadConfig);
641 fMenuFile->AddEntry(
"&Save Config...", kFileSaveConfig);
642 fMenuFile->AddSeparator();
643 fMenuFile->AddEntry(
"E&xit", kFileExit);
647 fMenuCamera->AddEntry(
"Perspective (Floor XOZ)", kGLPerspXOZ);
648 fMenuCamera->AddEntry(
"Perspective (Floor YOZ)", kGLPerspYOZ);
649 fMenuCamera->AddEntry(
"Perspective (Floor XOY)", kGLPerspXOY);
650 fMenuCamera->AddEntry(
"Orthographic (XOY)", kGLXOY);
651 fMenuCamera->AddEntry(
"Orthographic (XOZ)", kGLXOZ);
652 fMenuCamera->AddEntry(
"Orthographic (ZOY)", kGLZOY);
653 fMenuCamera->AddSeparator();
654 fMenuCamera->AddEntry(
"Ortho allow rotate", kGLOrthoRotate);
655 fMenuCamera->AddEntry(
"Ortho allow dolly", kGLOrthoDolly);
658 fMenuScene->AddEntry(
"&Update Current", kSceneUpdate);
659 fMenuScene->AddEntry(
"Update &All", kSceneUpdateAll);
675 fMenuFile->Connect(
"Activated(Int_t)",
"SplitGLView",
this,
"HandleMenu(Int_t)");
676 fMenuCamera->Connect(
"Activated(Int_t)",
"SplitGLView",
this,
"HandleMenu(Int_t)");
677 fMenuScene->Connect(
"Activated(Int_t)",
"SplitGLView",
this,
"HandleMenu(Int_t)");
678 fMenuHelp->Connect(
"Activated(Int_t)",
"SplitGLView",
this,
"HandleMenu(Int_t)");
680 if (fIsEmbedded &&
gEve) {
685 Int_t parts[] = {45, 15, 10, 30};
687 fStatusBar->SetParts(parts, 4);
693 fPad->SetFillColor(
kBlack);
699 fSplitFrame->HSplit(434);
701 fSplitFrame->GetSecond()->VSplit(266);
702 fSplitFrame->GetSecond()->GetSecond()->VSplit(266);
712 but1->
Connect(
"Clicked(TGLViewerBase*)",
"SplitGLView",
this,
"SwapToMainView(TGLViewerBase*)");
714 but2->
Connect(
"Clicked(TGLViewerBase*)",
"SplitGLView",
this,
"UnDock(TGLViewerBase*)");
719 fViewer0->Connect(
"MouseOver(TGLPhysicalShape*)",
"SplitGLView",
this,
"OnMouseOver(TGLPhysicalShape*)");
720 fViewer0->Connect(
"Activated()",
"SplitGLView",
this,
"OnViewerActivated()");
721 fViewer0->Connect(
"MouseIdle(TGLPhysicalShape*,UInt_t,UInt_t)",
"SplitGLView",
this,
722 "OnMouseIdle(TGLPhysicalShape*,UInt_t,UInt_t)");
723 fViewer0->Connect(
"Clicked(TObject*)",
"SplitGLView",
this,
"OnClicked(TObject*)");
724 fViewer[0] =
new TEveViewer(
"SplitGLViewer[0]");
725 fViewer[0]->SetGLViewer(fViewer0, fViewer0->GetFrame());
726 fViewer[0]->IncDenyDestroy();
727 if (fIsEmbedded &&
gEve) {
747 but3->
Connect(
"Clicked(TGLViewerBase*)",
"SplitGLView",
this,
"SwapToMainView(TGLViewerBase*)");
749 but4->
Connect(
"Clicked(TGLViewerBase*)",
"SplitGLView",
this,
"UnDock(TGLViewerBase*)");
755 fViewer1->Connect(
"MouseOver(TGLPhysicalShape*)",
"SplitGLView",
this,
"OnMouseOver(TGLPhysicalShape*)");
756 fViewer1->Connect(
"Activated()",
"SplitGLView",
this,
"OnViewerActivated()");
757 fViewer1->Connect(
"MouseIdle(TGLPhysicalShape*,UInt_t,UInt_t)",
"SplitGLView",
this,
758 "OnMouseIdle(TGLPhysicalShape*,UInt_t,UInt_t)");
759 fViewer1->Connect(
"Clicked(TObject*)",
"SplitGLView",
this,
"OnClicked(TObject*)");
760 fViewer[1] =
new TEveViewer(
"SplitGLViewer[1]");
761 fViewer[1]->SetGLViewer(fViewer1, fViewer1->GetFrame());
762 fViewer[1]->IncDenyDestroy();
763 if (fIsEmbedded &&
gEve) {
766 fViewer[1]->AddScene(s);
786 but5->
Connect(
"Clicked(TGLViewerBase*)",
"SplitGLView",
this,
"SwapToMainView(TGLViewerBase*)");
788 but6->
Connect(
"Clicked(TGLViewerBase*)",
"SplitGLView",
this,
"UnDock(TGLViewerBase*)");
794 fViewer2->Connect(
"MouseOver(TGLPhysicalShape*)",
"SplitGLView",
this,
"OnMouseOver(TGLPhysicalShape*)");
795 fViewer2->Connect(
"Activated()",
"SplitGLView",
this,
"OnViewerActivated()");
796 fViewer2->Connect(
"MouseIdle(TGLPhysicalShape*,UInt_t,UInt_t)",
"SplitGLView",
this,
797 "OnMouseIdle(TGLPhysicalShape*,UInt_t,UInt_t)");
798 fViewer2->Connect(
"Clicked(TObject*)",
"SplitGLView",
this,
"OnClicked(TObject*)");
799 fViewer[2] =
new TEveViewer(
"SplitGLViewer[2]");
800 fViewer[2]->SetGLViewer(fViewer2, fViewer2->GetFrame());
801 fViewer[2]->IncDenyDestroy();
802 if (fIsEmbedded &&
gEve) {
805 fViewer[2]->AddScene(s);
819 button->SetToolTipText(
"Swap to big view");
821 button->Connect(
"Clicked()",
"SplitGLView",
this,
"SwapToMainView(TGLViewerBase*=0)");
822 fgHtmlSummary =
new HtmlSummary(
"Alice Event Display Summary Table");
823 fgHtml =
new TGHtml(hfrm, 100, 100, -1);
828 if (fIsEmbedded &&
gEve) {
830 "ItemClicked(TGListTreeItem*, Int_t, Int_t, Int_t)");
833 fShapedToolTip =
new TGShapedToolTip(
"Default.png", 120, 22, 160, 110, 23, 115, 12,
"#ffff80");
834 Resize(GetDefaultSize());
837 LoadConfig(
".everc");
841SplitGLView::~SplitGLView()
846 fMenuFile->Disconnect(
"Activated(Int_t)",
this,
"HandleMenu(Int_t)");
847 fMenuCamera->Disconnect(
"Activated(Int_t)",
this,
"HandleMenu(Int_t)");
848 fMenuScene->Disconnect(
"Activated(Int_t)",
this,
"HandleMenu(Int_t)");
849 fMenuHelp->Disconnect(
"Activated(Int_t)",
this,
"HandleMenu(Int_t)");
850 fViewer0->Disconnect(
"MouseOver(TGLPhysicalShape*)",
this,
"OnMouseOver(TGLPhysicalShape*)");
851 fViewer0->Disconnect(
"Activated()",
this,
"OnViewerActivated()");
852 fViewer0->Disconnect(
"MouseIdle(TGLPhysicalShape*,UInt_t,UInt_t)",
this,
853 "OnMouseIdle(TGLPhysicalShape*,UInt_t,UInt_t)");
854 fViewer1->Disconnect(
"MouseOver(TGLPhysicalShape*)",
this,
"OnMouseOver(TGLPhysicalShape*)");
855 fViewer1->Disconnect(
"Activated()",
this,
"OnViewerActivated()");
856 fViewer1->Disconnect(
"MouseIdle(TGLPhysicalShape*,UInt_t,UInt_t)",
this,
857 "OnMouseIdle(TGLPhysicalShape*,UInt_t,UInt_t)");
858 fViewer2->Disconnect(
"MouseOver(TGLPhysicalShape*)",
this,
"OnMouseOver(TGLPhysicalShape*)");
859 fViewer2->Disconnect(
"Activated()",
this,
"OnViewerActivated()");
860 fViewer2->Disconnect(
"MouseIdle(TGLPhysicalShape*,UInt_t,UInt_t)",
this,
861 "OnMouseIdle(TGLPhysicalShape*,UInt_t,UInt_t)");
867 delete fShapedToolTip;
886void SplitGLView::HandleMenu(
Int_t id)
891 static TString rcfile(
".everc");
906 case kFileLoadConfig: {
919 case kFileSaveConfig: {
932 case kFileExit: CloseWindow();
break;
958 case kGLOrthoRotate: ToggleOrthoRotate();
break;
959 case kGLOrthoDolly: ToggleOrthoDolly();
break;
963 fActViewer->UpdateScene();
967 case kSceneUpdateAll:
968 fViewer0->UpdateScene();
969 fViewer1->UpdateScene();
970 fViewer2->UpdateScene();
974 case kSummaryUpdate: UpdateSummary();
break;
985 sprintf(str,
"About ROOT %s...",
gROOT->GetVersion());
998void SplitGLView::OnClicked(
TObject *obj)
1003 fStatusBar->SetText(
Form(
"User clicked on: \"%s\"", obj->
GetName()), 1);
1005 fStatusBar->SetText(
"", 1);
1018 static TH1F *h1f =
nullptr;
1020 TF1 *sqroot =
new TF1(
"sqroot",
"x*gaus(0) + [3]*form1", 0, 10);
1023 h1f =
new TH1F(
"h1f",
"", 50, 0, 10);
1029 if (fShapedToolTip) {
1030 fShapedToolTip->UnmapWindow();
1040 if (fShapedToolTip) {
1041 fShapedToolTip->Show(
x + 5,
y + 5,
1059 fStatusBar->SetText(
"", 0);
1063void SplitGLView::OnViewerActivated()
1070 if (fActViewer && fActViewer->GetFrame())
1077 if (fActViewer ==
nullptr) {
1078 printf(
"dyncast failed ...\n");
1084 gClient->GetColorByName(
"green", green);
1087 if (fActViewer->GetFrame())
1088 fActViewer->GetFrame()->ChangeBackground(green);
1091 if (fActViewer->GetOrthoXOYCamera()->GetDollyToZoom() && fActViewer->GetOrthoXOZCamera()->GetDollyToZoom() &&
1092 fActViewer->GetOrthoZOYCamera()->GetDollyToZoom())
1093 fMenuCamera->UnCheckEntry(kGLOrthoDolly);
1095 fMenuCamera->CheckEntry(kGLOrthoDolly);
1097 if (fActViewer->GetOrthoXOYCamera()->GetEnableRotate() && fActViewer->GetOrthoXOYCamera()->GetEnableRotate() &&
1098 fActViewer->GetOrthoXOYCamera()->GetEnableRotate())
1099 fMenuCamera->CheckEntry(kGLOrthoRotate);
1101 fMenuCamera->UnCheckEntry(kGLOrthoRotate);
1105void SplitGLView::OpenFile(
const char *fname)
1112 new TGMsgBox(
gClient->GetRoot(),
this,
"OpenFile",
Form(
"The file \"%s\" is not a root file!", fname),
1118 new TGMsgBox(
gClient->GetRoot(),
this,
"OpenFile",
Form(
"The file \"%s\" does't contain a geometry", fname),
1124 fPad->GetListOfPrimitives()->Delete();
1128 fViewer0->PadPaint(fPad);
1129 fViewer1->PadPaint(fPad);
1130 fViewer2->PadPaint(fPad);
1134void SplitGLView::ToggleOrthoRotate()
1138 if (fMenuCamera->IsEntryChecked(kGLOrthoRotate))
1139 fMenuCamera->UnCheckEntry(kGLOrthoRotate);
1141 fMenuCamera->CheckEntry(kGLOrthoRotate);
1142 Bool_t state = fMenuCamera->IsEntryChecked(kGLOrthoRotate);
1144 fActViewer->GetOrthoXOYCamera()->SetEnableRotate(state);
1145 fActViewer->GetOrthoXOYCamera()->SetEnableRotate(state);
1146 fActViewer->GetOrthoXOYCamera()->SetEnableRotate(state);
1151void SplitGLView::ToggleOrthoDolly()
1155 if (fMenuCamera->IsEntryChecked(kGLOrthoDolly))
1156 fMenuCamera->UnCheckEntry(kGLOrthoDolly);
1158 fMenuCamera->CheckEntry(kGLOrthoDolly);
1159 Bool_t state = !fMenuCamera->IsEntryChecked(kGLOrthoDolly);
1161 fActViewer->GetOrthoXOYCamera()->SetDollyToZoom(state);
1162 fActViewer->GetOrthoXOZCamera()->SetDollyToZoom(state);
1163 fActViewer->GetOrthoZOYCamera()->SetDollyToZoom(state);
1176 TObject *obj = re->GetObject(eh);
1180 if (
v->InheritsFrom(
"TGLEmbeddedViewer")) {
1188void SplitGLView::LoadConfig(
const char *fname)
1199 Int_t bottom_height = env->
GetValue(
"Bottom.Tab.Height", 0);
1201 if (fIsEmbedded &&
gEve) {
1213 width = fSplitFrame->GetFirst()->GetWidth();
1214 fSplitFrame->GetFirst()->Resize(
width, mainheight);
1216 height = fSplitFrame->GetSecond()->GetFirst()->GetHeight();
1217 fSplitFrame->GetSecond()->GetFirst()->Resize(blwidth,
height);
1219 height = fSplitFrame->GetSecond()->GetSecond()->GetFirst()->GetHeight();
1220 fSplitFrame->GetSecond()->GetSecond()->GetFirst()->Resize(bcwidth,
height);
1222 height = fSplitFrame->GetSecond()->GetSecond()->GetSecond()->GetHeight();
1223 fSplitFrame->GetSecond()->GetSecond()->GetSecond()->Resize(brwidth,
height);
1225 fSplitFrame->Layout();
1227 if (fIsEmbedded &&
gEve) {
1236void SplitGLView::SaveConfig(
const char *fname)
1239 Int_t bottom_height = 0;
1240 Int_t top_height = 0;
1244 if (fIsEmbedded &&
gEve) {
1260 if (fIsEmbedded &&
gEve) {
1262 env->
SetValue(
"Right.Tab.Height", top_height);
1264 env->
SetValue(
"Bottom.Tab.Height", bottom_height);
1285 if (!fSplitFrame->GetFirst()->GetFrame())
1287 if (viewer ==
nullptr) {
1290 while (parent && !parent->
InheritsFrom(
"TGSplitFrame")) {
1321void SplitGLView::UpdateSummary()
1329 HtmlObjTable *table;
1332 fgHtmlSummary->
Clear(
"D");
1343 table = fgHtmlSummary->AddTable(ename, 0, nel);
1350 table->SetLabel(0,
"Momentum");
1351 table->SetLabel(1,
"P_t");
1352 table->SetLabel(2,
"Phi");
1353 table->SetLabel(3,
"Theta");
1354 table->SetLabel(4,
"Eta");
1358 table->SetValue(0, k,
p);
1360 table->SetValue(1, k,
pt);
1362 table->SetValue(2, k, phi);
1364 table->SetValue(3, k, theta);
1366 table->SetValue(4, k, eta);
1371 fgHtmlSummary->Build();
1373 fgHtml->ParseText((
char *)fgHtmlSummary->Html().Data());
1381 printf(
"This script is used via ACLiC by the macro \"alice_esd_split.C\"\n");
1382 printf(
"To see it in action, just run \".x alice_esd_split.C\"\n");
Handle_t Window_t
Window handle.
ULong_t Pixel_t
Pixel value.
R__EXTERN const char gHelpAbout[]
size_t size(const MatrixT &matrix)
retrieve the size of a square matrix
bool Bool_t
Boolean (0=false, 1=true) (bool)
int Int_t
Signed integer 4 bytes (int)
unsigned int UInt_t
Unsigned integer 4 bytes (unsigned int)
float Float_t
Float 4 bytes (float)
constexpr Ssiz_t kNPOS
The equivalent of std::string::npos for the ROOT class TString.
const char Option_t
Option string (const char)
#define ClassDef(name, id)
#define ClassDefOverride(name, id)
R__EXTERN TApplication * gApplication
R__EXTERN TEveManager * gEve
winID h TVirtualViewer3D TVirtualGLPainter p
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char filename
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t sel
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize MapSubwindows
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t src
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t height
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t button
Option_t Option_t TPoint TPoint const char text
R__EXTERN TGeoManager * gGeoManager
R__EXTERN void * gTQSender
char * Form(const char *fmt,...)
Formats a string in a circular formatting buffer.
R__EXTERN TSystem * gSystem
virtual void Terminate(Int_t status=0)
Terminate the application by call TSystem::Exit() unless application has been told to return from Run...
Array of floats (32 bits per element).
void SetAt(Double_t v, Int_t i) override
virtual void SetFillColor(Color_t fcolor)
Set the fill area color.
void Clear(Option_t *option="") override
Remove all primitives from the canvas.
TVirtualPad * cd(Int_t subpadnumber=0) override
Set current canvas & pad.
void Update() override
Update canvas pad buffers.
The TEnv class reads config files, by default named .rootrc.
virtual Int_t GetValue(const char *name, Int_t dflt) const
Returns the integer value for a resource.
virtual void SetValue(const char *name, const char *value, EEnvLevel level=kEnvChange, const char *type=nullptr)
Set the value of a resource or create a new resource.
virtual void SaveLevel(EEnvLevel level)
Write the resource file for a certain level.
void EveMenu(Int_t id)
Handle events from Eve menu.
const char * GetElementName() const override
Virtual function for retrieving name of the element.
Base class for TEveUtil visualization elements, providing hierarchy management, rendering control and...
virtual void AddElement(TEveElement *el)
Add el to the list of children.
virtual TClass * IsA() const
Int_t NumChildren() const
Base class for event management and navigation.
Exception class thrown by TEve classes and macros.
TGListTree * GetListTree() const
Get default list-tree widget.
TEveViewerList * GetViewers() const
TEveSelection * GetSelection() const
TEveScene * GetGlobalScene() const
TEveBrowser * GetBrowser() const
TGListTreeItem * AddToListTree(TEveElement *re, Bool_t open, TGListTree *lt=nullptr)
TEveScene * SpawnNewScene(const char *name, const char *title="")
Create a new scene.
TEveSelection * GetHighlight() const
TEveScene * GetEventScene() const
TEveEventManager * GetCurrentEvent() const
This was intended as a TPad wrapper to allow smart updates of groups of pads.
TEvePointSet is a render-element holding a collection of 3D points with optional per-point TRef and a...
const char * GetElementTitle() const override
Virtual function for retrieving title of the render-element.
const char * GetElementName() const override
Virtual function for retrieving name of the element.
Axes for non-linear projections.
Manager class for steering of projections and managing projected objects.
Eve representation of TGLScene.
Int_t GetPickToSelect() const
A list of tracks supporting change of common attributes and selection based on track parameters.
Visual representation of a track.
void AddElement(TEveElement *el) override
Call base-class implementation.
Eve representation of TGLViewer.
virtual void SetParameters(const Double_t *params)
The base class for composite widgets (menu bars, list boxes, etc.).
virtual void AddFrame(TGFrame *f, TGLayoutHints *l=nullptr)
Add frame to the composite frame using the specified layout hints.
A frame with handles that allow it to be undocked (i.e.
void AddFrame(TGFrame *f, TGLayoutHints *hints) override
Add frame to dockable frame container. Frame and hints are NOT adopted.
void SetFixedSize(Bool_t fixed)
void EnableHide(Bool_t onoff)
Enable hiding.
This class creates a file selection dialog.
char * fFilename
selected file name
const char ** fFileTypes
file types used to filter selectable files
char * fIniDir
on input: initial directory, on output: new directory
void SetFilename(const char *fname)
Set file name.
void SetIniDir(const char *inidir)
Set directory name.
void Resize(UInt_t w=0, UInt_t h=0) override
Resize the frame.
virtual void ChangeBackground(Pixel_t back)
Change frame background color.
A composite frame that layout their children in horizontal way.
Minimal GL-viewer that can be embedded in a standard ROOT frames.
TGCompositeFrame * GetFrame() const
TObject * GetExternal() const
Concrete physical shape - a GL drawable.
const TGLLogicalShape * GetLogical() const
Base class for GL viewers.
Base GL viewer object - used by both standalone and embedded (in pad) GL.
TGLWidget * GetGLWidget()
This class describes layout hints used by the layout classes.
virtual void * GetUserData() const =0
Defines top level windows that interact with the system Window Manager.
TGShapedFrame & operator=(const TGShapedFrame &)=delete
void AddFrame(TGFrame *f, TGLayoutHints *l=nullptr) override
Add a frame in the split frame using layout hints l.
TGSplitFrame * GetFirst() const
TGSplitFrame * GetSecond() const
Provides a StatusBar widget.
ROOT GUI Window base class.
virtual void SetName(const char *name)
const TGWindow * GetParent() const
static TGeoManager * Import(const char *filename, const char *name="", Option_t *option="")
static function Import a geometry from a gdml or ROOT file
void DefaultColors(const TGeoColorScheme *cs=nullptr)
Set default volume colors according to A of material.
TGeoVolume * GetTopVolume() const
1-D histogram with a float per channel (see TH1 documentation)
void Reset(Option_t *option="") override
Reset.
TH1 is the base class of all histogram classes in ROOT.
virtual void FillRandom(TF1 *f1, Int_t ntimes=5000, TRandom *rng=nullptr)
void Draw(Option_t *option="") override
Draw this histogram with options.
TObject * Clone(const char *newname="") const override
Make a complete copy of the underlying object.
virtual void SetStats(Bool_t stats=kTRUE)
Set statistics option on/off.
An abstract interface to image processing library.
TObject * Clone(const char *="") const override
Make a clone of an object using the Streamer facility.
virtual void PaintImage(Drawable_t, Int_t, Int_t, Int_t=0, Int_t=0, UInt_t=0, UInt_t=0, Option_t *="")
const char * GetName() const override
Returns name of object.
void Clear(Option_t *option="") override
Set name and title to empty strings ("").
Mother of all ROOT objects.
virtual const char * GetName() const
Returns name of object.
virtual Bool_t InheritsFrom(const char *classname) const
Returns kTRUE if object inherits from class "classname".
virtual TClass * IsA() const
void AddFirst(TObject *obj) override
Insert object at beginning of collection.
void Clear(Option_t *option="") override
Remove all objects from the collection.
void Delete(Option_t *option="") override
Remove all objects from the collection AND delete all heap based objects.
TObject * At(Int_t idx) const override
Returns the object at position idx. Returns 0 if idx is out of range.
void SetBorderMode(Short_t bordermode) override
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.
static const TString & GetBinDir()
Get the binary directory in the installation. Static utility function.
TGTab * GetTabBottom() const
TGStatusBar * GetStatusBar() const
TGTab * GetTabRight() const
This class creates a TGCanvas in which a TCanvas is created.
TCanvas * GetCanvas() const
A TRootHelpDialog is used to display help text (or any text in a dialog window).
void Add(TObject *obj) override
void ToLower()
Change string to lower-case.
Ssiz_t First(char c) const
Find first occurrence of a character c.
const char * Data() const
TString & Remove(Ssiz_t pos)
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
virtual Int_t Exec(const char *shellcmd)
Execute a command.
virtual Bool_t AccessPathName(const char *path, EAccessMode mode=kFileExists)
Returns FALSE if one can access a file using the specified access mode.
virtual int Rename(const char *from, const char *to)
Rename a file.
RVec< PromoteType< T > > exp(const RVec< T > &v)
TFile * OpenFile(const TString &fin)