66const char *
filetypes[] = {
"ROOT files",
"*.root",
"All files",
"*",
nullptr,
nullptr};
68const char *
rcfiletypes[] = {
"All files",
"*",
nullptr,
nullptr};
85 void DoRedraw()
override {}
89 Int_t ty = 0,
Int_t th = 0,
const char *col =
"#ffffff");
92 virtual void CloseWindow();
95 TH1 *GetHisto()
const {
return fHist; }
96 const char *GetText()
const {
return fText.
Data(); }
98 void SetHisto(
TH1 *hist);
99 void SetText(
const char *
text);
128 void SetLabel(
Int_t col,
const char *label) { fLabels[col] = label; }
212 void HandleMenu(
Int_t id);
219 void ToggleOrthoRotate();
220 void ToggleOrthoDolly();
238TGHtml *SplitGLView::fgHtml =
nullptr;
242 Int_t th,
const char *col)
258 if ((
cx > 0) && (
cy > 0) && (cw > 0) && (ch > 0)) {
266 Resize(fBgnd->GetWidth(), fBgnd->GetHeight());
270TGShapedToolTip::~TGShapedToolTip()
281void TGShapedToolTip::CloseWindow()
289void TGShapedToolTip::Refresh()
293 const char *str = fText.
Data();
294 char *
string =
strdup(str);
297 char *s =
strtok((
char *)
string,
"\n");
300 while ((s =
strtok(
nullptr,
"\n"))) {
304 img->PaintImage(fId, 0, 0, 0, 0, 0, 0,
"opaque");
321 Resize(fBgnd->GetWidth(), fBgnd->GetHeight());
336 Resize(fBgnd->GetWidth(), fBgnd->GetHeight());
343void 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();
365void TGShapedToolTip::SetText(
const char *
text)
377void TGShapedToolTip::SetTextColor(
const char *col)
415 fEc->GetCanvas()->SetBorderMode(0);
416 fEc->GetCanvas()->SetFillColor(10);
417 fEc->GetCanvas()->cd();
419 fEc->GetCanvas()->Update();
430 fValues =
new TArrayF[fNFields];
431 for (
int i = 0; i < fNFields; i++)
432 fValues[i].Set(
nvals);
433 fLabels =
new TString[fNFields];
437HtmlObjTable::~HtmlObjTable()
446void HtmlObjTable::Build()
450 fHtml =
"<table width=100% border=1 cellspacing=0 cellpadding=0 bgcolor=f0f0f0> ",
453 if (fExpand && (fNFields > 0) && (
fNValues > 0)) {
462void HtmlObjTable::BuildTitle()
466 fHtml +=
"<tr><td colspan=";
467 fHtml +=
Form(
"%d>", fNFields + 1);
468 fHtml +=
"<table width=100% border=0 cellspacing=2 cellpadding=0 bgcolor=6e6ea0>";
469 fHtml +=
"<tr><td align=left>";
470 fHtml +=
"<font face=Verdana size=3 color=ffffff><b><i>";
472 fHtml +=
"</i></b></font></td>";
474 fHtml +=
"<td align=right> ";
475 fHtml +=
"<font face=Verdana size=3 color=ffffff><b><i>";
477 fHtml +=
"</i></b></font></td></tr>";
479 fHtml +=
"</td></tr>";
483void HtmlObjTable::BuildLabels()
488 fHtml +=
"<tr bgcolor=c0c0ff>";
489 fHtml +=
"<th> </th>";
490 for (i = 0; i < fNFields; i++) {
499void HtmlObjTable::BuildTable()
503 for (
int i = 0; i <
fNValues; i++) {
505 fHtml +=
"<tr bgcolor=e0e0ff>";
507 fHtml +=
"<tr bgcolor=ffffff>";
510 name.ReplaceAll(
" ",
"_");
512 fHtml +=
"<td bgcolor=d0d0ff align=\"center\">";
513 fHtml +=
"<input type=\"checkbox\" name=\"";
515 fHtml +=
Form(
"[%d]\">", i);
518 for (
int j = 0;
j < fNFields;
j++) {
519 fHtml +=
"<td width=";
520 fHtml +=
Form(
"%d%%", 100 / fNFields);
521 fHtml +=
" align=\"center\"";
523 fHtml +=
Form(
"%1.4f", fValues[
j][i]);
531HtmlSummary::HtmlSummary(
const char *title) :
fNTables(0), fTitle(title)
539HtmlSummary::~HtmlSummary()
563void HtmlSummary::Clear(
Option_t *option)
567 if (option && option[0] ==
'D')
585void HtmlSummary::Build()
590 for (
int i = 0; i <
fNTables; i++) {
591 GetTable(i)->Build();
592 fHtml += GetTable(i)->Html();
598void HtmlSummary::MakeHeader()
602 fHeader =
"<html><head><title>";
604 fHeader +=
"</title></head><body>";
605 fHeader +=
"<center><h2><font color=#2222ee><i>";
607 fHeader +=
"</i></font></h2></center>";
612void HtmlSummary::MakeFooter()
616 fFooter =
"<br><p><br><center><strong><font size=2 color=#2222ee>";
617 fFooter +=
"Example of using Html widget to display tabular data";
619 fFooter +=
"(c) 2007-2010 Bertrand Bellenot";
620 fFooter +=
"</font></strong></center></body></html>";
638 fMenuFile->AddEntry(
"&Open...",
kFileOpen);
639 fMenuFile->AddSeparator();
641 fMenuFile->AddSeparator();
644 fMenuFile->AddSeparator();
649 fMenuCamera->AddEntry(
"Perspective (Floor XOZ)", kGLPerspXOZ);
650 fMenuCamera->AddEntry(
"Perspective (Floor YOZ)", kGLPerspYOZ);
651 fMenuCamera->AddEntry(
"Perspective (Floor XOY)", kGLPerspXOY);
652 fMenuCamera->AddEntry(
"Orthographic (XOY)", kGLXOY);
653 fMenuCamera->AddEntry(
"Orthographic (XOZ)", kGLXOZ);
654 fMenuCamera->AddEntry(
"Orthographic (ZOY)", kGLZOY);
656 fMenuCamera->AddEntry(
"Ortho allow rotate", kGLOrthoRotate);
657 fMenuCamera->AddEntry(
"Ortho allow dolly", kGLOrthoDolly);
677 fMenuFile->Connect(
"Activated(Int_t)",
"SplitGLView",
this,
"HandleMenu(Int_t)");
678 fMenuCamera->Connect(
"Activated(Int_t)",
"SplitGLView",
this,
"HandleMenu(Int_t)");
679 fMenuScene->Connect(
"Activated(Int_t)",
"SplitGLView",
this,
"HandleMenu(Int_t)");
680 fMenuHelp->Connect(
"Activated(Int_t)",
"SplitGLView",
this,
"HandleMenu(Int_t)");
689 fStatusBar->SetParts(
parts, 4);
695 fPad->SetFillColor(
kBlack);
704 fSplitFrame->GetSecond()->GetSecond()->VSplit(266);
709 frm->SetName(
"Main_View");
714 but1->Connect(
"Clicked(TGLViewerBase*)",
"SplitGLView",
this,
"SwapToMainView(TGLViewerBase*)");
716 but2->Connect(
"Clicked(TGLViewerBase*)",
"SplitGLView",
this,
"UnDock(TGLViewerBase*)");
721 fViewer0->Connect(
"MouseOver(TGLPhysicalShape*)",
"SplitGLView",
this,
"OnMouseOver(TGLPhysicalShape*)");
722 fViewer0->Connect(
"Activated()",
"SplitGLView",
this,
"OnViewerActivated()");
723 fViewer0->Connect(
"MouseIdle(TGLPhysicalShape*,UInt_t,UInt_t)",
"SplitGLView",
this,
724 "OnMouseIdle(TGLPhysicalShape*,UInt_t,UInt_t)");
725 fViewer0->Connect(
"Clicked(TObject*)",
"SplitGLView",
this,
"OnClicked(TObject*)");
726 fViewer[0] =
new TEveViewer(
"SplitGLViewer[0]");
728 fViewer[0]->IncDenyDestroy();
744 frm->SetName(
"Bottom_Left");
749 but3->Connect(
"Clicked(TGLViewerBase*)",
"SplitGLView",
this,
"SwapToMainView(TGLViewerBase*)");
751 but4->Connect(
"Clicked(TGLViewerBase*)",
"SplitGLView",
this,
"UnDock(TGLViewerBase*)");
757 fViewer1->Connect(
"MouseOver(TGLPhysicalShape*)",
"SplitGLView",
this,
"OnMouseOver(TGLPhysicalShape*)");
758 fViewer1->Connect(
"Activated()",
"SplitGLView",
this,
"OnViewerActivated()");
759 fViewer1->Connect(
"MouseIdle(TGLPhysicalShape*,UInt_t,UInt_t)",
"SplitGLView",
this,
760 "OnMouseIdle(TGLPhysicalShape*,UInt_t,UInt_t)");
761 fViewer1->Connect(
"Clicked(TObject*)",
"SplitGLView",
this,
"OnClicked(TObject*)");
762 fViewer[1] =
new TEveViewer(
"SplitGLViewer[1]");
764 fViewer[1]->IncDenyDestroy();
768 fViewer[1]->AddScene(s);
783 frm->SetName(
"Bottom_Center");
788 but5->Connect(
"Clicked(TGLViewerBase*)",
"SplitGLView",
this,
"SwapToMainView(TGLViewerBase*)");
790 but6->Connect(
"Clicked(TGLViewerBase*)",
"SplitGLView",
this,
"UnDock(TGLViewerBase*)");
796 fViewer2->Connect(
"MouseOver(TGLPhysicalShape*)",
"SplitGLView",
this,
"OnMouseOver(TGLPhysicalShape*)");
797 fViewer2->Connect(
"Activated()",
"SplitGLView",
this,
"OnViewerActivated()");
798 fViewer2->Connect(
"MouseIdle(TGLPhysicalShape*,UInt_t,UInt_t)",
"SplitGLView",
this,
799 "OnMouseIdle(TGLPhysicalShape*,UInt_t,UInt_t)");
800 fViewer2->Connect(
"Clicked(TObject*)",
"SplitGLView",
this,
"OnClicked(TObject*)");
801 fViewer[2] =
new TEveViewer(
"SplitGLViewer[2]");
803 fViewer[2]->IncDenyDestroy();
807 fViewer[2]->AddScene(s);
814 frm->SetName(
"Bottom_Right");
821 button->SetToolTipText(
"Swap to big view");
823 button->Connect(
"Clicked()",
"SplitGLView",
this,
"SwapToMainView(TGLViewerBase*=0)");
832 "ItemClicked(TGListTreeItem*, Int_t, Int_t, Int_t)");
836 Resize(GetDefaultSize());
843SplitGLView::~SplitGLView()
848 fMenuFile->Disconnect(
"Activated(Int_t)",
this,
"HandleMenu(Int_t)");
849 fMenuCamera->Disconnect(
"Activated(Int_t)",
this,
"HandleMenu(Int_t)");
850 fMenuScene->Disconnect(
"Activated(Int_t)",
this,
"HandleMenu(Int_t)");
851 fMenuHelp->Disconnect(
"Activated(Int_t)",
this,
"HandleMenu(Int_t)");
852 fViewer0->Disconnect(
"MouseOver(TGLPhysicalShape*)",
this,
"OnMouseOver(TGLPhysicalShape*)");
853 fViewer0->Disconnect(
"Activated()",
this,
"OnViewerActivated()");
854 fViewer0->Disconnect(
"MouseIdle(TGLPhysicalShape*,UInt_t,UInt_t)",
this,
855 "OnMouseIdle(TGLPhysicalShape*,UInt_t,UInt_t)");
856 fViewer1->Disconnect(
"MouseOver(TGLPhysicalShape*)",
this,
"OnMouseOver(TGLPhysicalShape*)");
857 fViewer1->Disconnect(
"Activated()",
this,
"OnViewerActivated()");
858 fViewer1->Disconnect(
"MouseIdle(TGLPhysicalShape*,UInt_t,UInt_t)",
this,
859 "OnMouseIdle(TGLPhysicalShape*,UInt_t,UInt_t)");
860 fViewer2->Disconnect(
"MouseOver(TGLPhysicalShape*)",
this,
"OnMouseOver(TGLPhysicalShape*)");
861 fViewer2->Disconnect(
"Activated()",
this,
"OnViewerActivated()");
862 fViewer2->Disconnect(
"MouseIdle(TGLPhysicalShape*,UInt_t,UInt_t)",
this,
863 "OnMouseIdle(TGLPhysicalShape*,UInt_t,UInt_t)");
888void SplitGLView::HandleMenu(
Int_t id)
960 case kGLOrthoRotate: ToggleOrthoRotate();
break;
961 case kGLOrthoDolly: ToggleOrthoDolly();
break;
1000void SplitGLView::OnClicked(
TObject *obj)
1005 fStatusBar->SetText(
Form(
"User clicked on: \"%s\"", obj->
GetName()), 1);
1007 fStatusBar->SetText(
"", 1);
1022 TF1 *
sqroot =
new TF1(
"sqroot",
"x*gaus(0) + [3]*form1", 0, 10);
1023 sqroot->SetParameters(10, 4, 1, 20);
1025 h1f =
new TH1F(
"h1f",
"", 50, 0, 10);
1027 h1f->SetFillColor(45);
1028 h1f->SetStats(
false);
1029 h1f->FillRandom(
"sqroot", 200);
1044 Form(
"%s\n \n%s", shape->
GetLogical()->GetExternal()->IsA()->GetName(),
1045 shape->
GetLogical()->GetExternal()->GetName()),
1059 fStatusBar->SetText(
Form(
"Mouse Over: \"%s\"", shape->
GetLogical()->GetExternal()->GetName()), 0);
1061 fStatusBar->SetText(
"", 0);
1065void SplitGLView::OnViewerActivated()
1073 fActViewer->GetFrame()->ChangeBackground(GetDefaultFrameBackground());
1080 printf(
"dyncast failed ...\n");
1093 if (
fActViewer->GetOrthoXOYCamera()->GetDollyToZoom() &&
fActViewer->GetOrthoXOZCamera()->GetDollyToZoom() &&
1094 fActViewer->GetOrthoZOYCamera()->GetDollyToZoom())
1099 if (
fActViewer->GetOrthoXOYCamera()->GetEnableRotate() &&
fActViewer->GetOrthoXOYCamera()->GetEnableRotate() &&
1100 fActViewer->GetOrthoXOYCamera()->GetEnableRotate())
1107void SplitGLView::OpenFile(
const char *
fname)
1126 fPad->GetListOfPrimitives()->Delete();
1136void SplitGLView::ToggleOrthoRotate()
1146 fActViewer->GetOrthoXOYCamera()->SetEnableRotate(state);
1147 fActViewer->GetOrthoXOYCamera()->SetEnableRotate(state);
1148 fActViewer->GetOrthoXOYCamera()->SetEnableRotate(state);
1153void SplitGLView::ToggleOrthoDolly()
1163 fActViewer->GetOrthoXOYCamera()->SetDollyToZoom(state);
1164 fActViewer->GetOrthoXOZCamera()->SetDollyToZoom(state);
1165 fActViewer->GetOrthoZOYCamera()->SetDollyToZoom(state);
1182 if (
v->InheritsFrom(
"TGLEmbeddedViewer")) {
1184 gVirtualX->SetInputFocus(
ev->GetGLWidget()->GetId());
1190void SplitGLView::LoadConfig(
const char *
fname)
1238void SplitGLView::SaveConfig(
const char *
fname)
1252 env->SetValue(
"MainView.Height", (
Int_t)
frm->GetHeight());
1255 env->SetValue(
"Bottom.Left.Width", (
Int_t)
frm->GetWidth());
1258 env->SetValue(
"Bottom.Center.Width", (
Int_t)
frm->GetWidth());
1261 env->SetValue(
"Bottom.Right.Width", (
Int_t)
frm->GetWidth());
1292 while (parent && !parent->
InheritsFrom(
"TGSplitFrame")) {
1323void SplitGLView::UpdateSummary()
1335 for (i =
mgr->BeginChildren(); i !=
mgr->EndChildren(); ++i) {
1352 table->SetLabel(0,
"Momentum");
1353 table->SetLabel(1,
"P_t");
1354 table->SetLabel(2,
"Phi");
1355 table->SetLabel(3,
"Theta");
1356 table->SetLabel(4,
"Eta");
1360 table->SetValue(0, k,
p);
1362 table->SetValue(1, k,
pt);
1364 table->SetValue(2, k, phi);
1366 table->SetValue(3, k, theta);
1368 table->SetValue(4, k, eta);
1383 printf(
"This script is used via ACLiC by the macro \"alice_esd_split.C\"\n");
1384 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
#define ClassDef(name, id)
#define ClassDefOverride(name, id)
R__EXTERN TApplication * gApplication
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
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
void operator=(const TProof &)
static void Reset(const char *url, Bool_t hard=kFALSE)
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
The TEnv class reads config files, by default named .rootrc.
void EveMenu(Int_t id)
Handle events from Eve menu.
Base class for TEveUtil visualization elements, providing hierarchy management, rendering control and...
virtual void AddElement(TEveElement *el)
Add el to the list of children.
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.
The base class for composite widgets (menu bars, list boxes, etc.).
A frame with handles that allow it to be undocked (i.e.
This class creates a file selection dialog.
void Resize(UInt_t w=0, UInt_t h=0) override
Resize the frame.
A composite frame that layout their children in horizontal way.
Minimal GL-viewer that can be embedded in a standard ROOT frames.
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.
This class describes layout hints used by the layout classes.
Defines top level windows that interact with the system Window Manager.
Provides a StatusBar widget.
ROOT GUI Window base class.
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()
Set default volume colors according to A of material.
TGeoVolume * GetTopVolume() const
1-D histogram with a float per channel (see TH1 documentation)
TH1 is the base class of all histogram classes in ROOT.
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.
An abstract interface to image processing library.
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".
This is the ROOT implementation of the Qt object communication mechanism (see also http://www....
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.
A TRootHelpDialog is used to display help text (or any text in a dialog window).
void ToLower()
Change string to lower-case.
const char * Data() const
void Clone(Ssiz_t nc)
Make self a distinct copy with capacity of at least tot, where tot cannot be smaller than the current...
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.
TFile * OpenFile(const TString &fin)