63const char *filetypes[] = {
64 "ROOT files",
"*.root",
69const char *rcfiletypes[] = {
78 TGShapedToolTip(
const TGShapedToolTip&);
79 TGShapedToolTip&
operator=(
const TGShapedToolTip&);
82 Int_t fTextX, fTextY, fTextH;
89 virtual void DoRedraw() {}
92 TGShapedToolTip(
const char *picname,
Int_t cx=0,
Int_t cy=0,
Int_t cw=0,
94 const char *col=
"#ffffff");
95 virtual ~TGShapedToolTip();
97 virtual void CloseWindow();
101 const char *GetText()
const {
return fText.
Data(); }
103 void SetHisto(
TH1 *hist);
104 void SetText(
const char *
text);
106 void SetTextAttributes(
Int_t tx,
Int_t ty,
Int_t th,
const char *col=0);
113class HtmlObjTable :
public TObject {
132 virtual ~HtmlObjTable();
134 void SetLabel(
Int_t col,
const char *label) { fLabels[col] = label; }
136 TString Html()
const {
return fHtml; }
155 HtmlSummary(
const char *title);
156 virtual ~HtmlSummary();
158 HtmlObjTable *AddTable(
const char *
name,
Int_t nfields,
Int_t nvals,
160 HtmlObjTable *GetTable(
Int_t at)
const {
return (HtmlObjTable *)fObjTables->
At(at); }
164 TString Html()
const {
return fHtml; }
175 kHelpAbout, kGLPerspYOZ, kGLPerspXOZ, kGLPerspXOY, kGLXOY,
176 kGLXOZ, kGLZOY, kGLOrthoRotate, kGLOrthoDolly, kSceneUpdate,
177 kSceneUpdateAll, kSummaryUpdate
187 static HtmlSummary *fgHtmlSummary;
195 TGShapedToolTip *fShapedToolTip;
204 virtual ~SplitGLView();
207 void HandleMenu(
Int_t id);
211 void OnViewerActivated();
214 void ToggleOrthoRotate();
215 void ToggleOrthoDolly();
217 void LoadConfig(
const char *fname);
218 void SaveConfig(
const char *fname);
219 static void UpdateSummary();
235HtmlSummary *SplitGLView::fgHtmlSummary = 0;
236TGHtml *SplitGLView::fgHtml = 0;
239TGShapedToolTip::TGShapedToolTip(
const char *pname,
Int_t cx,
Int_t cy,
Int_t cw,
247 fTextX = tx; fTextY = ty; fTextH = th;
251 fTextCol =
"0x000000";
254 if ((cx > 0) && (cy > 0) && (cw > 0) && (ch > 0)) {
255 Int_t lhRight = fWidth-cx-cw;
256 Int_t lhBottom = fHeight-cy-ch;
259 lhRight, cy, lhBottom));
263 Resize(fBgnd->GetWidth(), fBgnd->GetHeight());
267TGShapedToolTip::~TGShapedToolTip()
278void TGShapedToolTip::CloseWindow()
286void TGShapedToolTip::Refresh()
290 const char *str = fText.
Data();
291 char *
string = strdup(str);
292 Int_t nlines = 0, size = fTextH;
294 char *
s = strtok((
char *)
string,
"\n");
296 img->
DrawText(fTextX, fTextY+(nlines*size),
s, size, fTextCol, ar);
297 while ((
s = strtok(0,
"\n"))) {
299 img->
DrawText(fTextX, fTextY+(nlines*size),
s, size, fTextCol, ar);
301 img->
PaintImage(fId, 0, 0, 0, 0, 0, 0,
"opaque");
312 Int_t lhRight = fWidth-cx-cw;
313 Int_t lhBottom = fHeight-cy-ch;
316 lhRight, cy, lhBottom));
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)
390 fTextX = tx; fTextY = ty; fTextH = th;
423 fName(
name), fNValues(nvals), fNFields(nfields), fExpand(
exp)
427 fValues =
new TArrayF[fNFields];
428 for (
int i=0;i<fNFields;i++)
429 fValues[i].Set(nvals);
430 fLabels =
new TString[fNFields];
434HtmlObjTable::~HtmlObjTable()
443void HtmlObjTable::Build()
447 fHtml =
"<table width=100% border=1 cellspacing=0 cellpadding=0 bgcolor=f0f0f0> ",
450 if (fExpand && (fNFields > 0) && (fNValues > 0)) {
459void HtmlObjTable::BuildTitle()
463 fHtml +=
"<tr><td colspan=";
464 fHtml +=
Form(
"%d>", fNFields+1);
465 fHtml +=
"<table width=100% border=0 cellspacing=2 cellpadding=0 bgcolor=6e6ea0>";
466 fHtml +=
"<tr><td align=left>";
467 fHtml +=
"<font face=Verdana size=3 color=ffffff><b><i>";
469 fHtml +=
"</i></b></font></td>";
471 fHtml +=
"<td align=right> ";
472 fHtml +=
"<font face=Verdana size=3 color=ffffff><b><i>";
473 fHtml +=
Form(
"Size = %d", fNValues);
474 fHtml +=
"</i></b></font></td></tr>";
476 fHtml +=
"</td></tr>";
480void HtmlObjTable::BuildLabels()
485 fHtml +=
"<tr bgcolor=c0c0ff>";
486 fHtml +=
"<th> </th>";
487 for (i=0;i<fNFields;i++) {
496void HtmlObjTable::BuildTable()
500 for (
int i = 0; i < fNValues; i++) {
502 fHtml +=
"<tr bgcolor=e0e0ff>";
504 fHtml +=
"<tr bgcolor=ffffff>";
507 name.ReplaceAll(
" ",
"_");
509 fHtml +=
"<td bgcolor=d0d0ff align=\"center\">";
510 fHtml +=
"<input type=\"checkbox\" name=\"";
512 fHtml +=
Form(
"[%d]\">",i);
515 for (
int j = 0; j < fNFields; j++) {
516 fHtml +=
"<td width=";
517 fHtml +=
Form(
"%d%%", 100/fNFields);
518 fHtml +=
" align=\"center\"";
520 fHtml +=
Form(
"%1.4f", fValues[j][i]);
528HtmlSummary::HtmlSummary(
const char *title) : fNTables(0), fTitle(title)
536HtmlSummary::~HtmlSummary()
544HtmlObjTable *HtmlSummary::AddTable(
const char *
name,
Int_t nfields,
Int_t nvals,
551 HtmlObjTable *table =
new HtmlObjTable(
name, nfields, nvals,
exp);
556 fObjTables->
Add(table);
561void HtmlSummary::Clear(
Option_t *option)
565 if (option && option[0] ==
'D')
566 fObjTables->
Delete(option);
568 fObjTables->
Clear(option);
577 delete fObjTables; fObjTables = 0;
582void HtmlSummary::Build()
587 for (
int i=0;i<fNTables;i++) {
588 GetTable(i)->Build();
589 fHtml += GetTable(i)->Html();
595void HtmlSummary::MakeHeader()
599 fHeader =
"<html><head><title>";
601 fHeader +=
"</title></head><body>";
602 fHeader +=
"<center><h2><font color=#2222ee><i>";
604 fHeader +=
"</i></font></h2></center>";
609void HtmlSummary::MakeFooter()
613 fFooter =
"<br><p><br><center><strong><font size=2 color=#2222ee>";
614 fFooter +=
"Example of using Html widget to display tabular data";
616 fFooter +=
"(c) 2007-2010 Bertrand Bellenot";
617 fFooter +=
"</font></strong></center></body></html>";
623 TGMainFrame(p, w,
h), fActViewer(0), fShapedToolTip(0), fIsEmbedded(embed)
635 fMenuFile->AddEntry(
"&Open...",
kFileOpen);
636 fMenuFile->AddSeparator();
637 fMenuFile->AddEntry(
"&Update Summary", kSummaryUpdate);
638 fMenuFile->AddSeparator();
641 fMenuFile->AddSeparator();
642 fMenuFile->AddEntry(
"E&xit", kFileExit);
646 fMenuCamera->AddEntry(
"Perspective (Floor XOZ)", kGLPerspXOZ);
647 fMenuCamera->AddEntry(
"Perspective (Floor YOZ)", kGLPerspYOZ);
648 fMenuCamera->AddEntry(
"Perspective (Floor XOY)", kGLPerspXOY);
649 fMenuCamera->AddEntry(
"Orthographic (XOY)", kGLXOY);
650 fMenuCamera->AddEntry(
"Orthographic (XOZ)", kGLXOZ);
651 fMenuCamera->AddEntry(
"Orthographic (ZOY)", kGLZOY);
652 fMenuCamera->AddSeparator();
653 fMenuCamera->AddEntry(
"Ortho allow rotate", kGLOrthoRotate);
654 fMenuCamera->AddEntry(
"Ortho allow dolly", kGLOrthoDolly);
657 fMenuScene->AddEntry(
"&Update Current", kSceneUpdate);
658 fMenuScene->AddEntry(
"Update &All", kSceneUpdateAll);
678 fMenuFile->Connect(
"Activated(Int_t)",
"SplitGLView",
this,
679 "HandleMenu(Int_t)");
680 fMenuCamera->Connect(
"Activated(Int_t)",
"SplitGLView",
this,
681 "HandleMenu(Int_t)");
682 fMenuScene->Connect(
"Activated(Int_t)",
"SplitGLView",
this,
683 "HandleMenu(Int_t)");
684 fMenuHelp->Connect(
"Activated(Int_t)",
"SplitGLView",
this,
685 "HandleMenu(Int_t)");
687 if (fIsEmbedded &&
gEve) {
693 Int_t parts[] = {45, 15, 10, 30};
695 fStatusBar->SetParts(parts, 4);
702 fPad->SetFillColor(
kBlack);
708 fSplitFrame->HSplit(434);
710 fSplitFrame->GetSecond()->VSplit(266);
711 fSplitFrame->GetSecond()->GetSecond()->VSplit(266);
721 but1->
Connect(
"Clicked(TGLViewerBase*)",
"SplitGLView",
this,
"SwapToMainView(TGLViewerBase*)");
723 but2->
Connect(
"Clicked(TGLViewerBase*)",
"SplitGLView",
this,
"UnDock(TGLViewerBase*)");
729 fViewer0->Connect(
"MouseOver(TGLPhysicalShape*)",
"SplitGLView",
this,
730 "OnMouseOver(TGLPhysicalShape*)");
731 fViewer0->Connect(
"Activated()",
"SplitGLView",
this,
732 "OnViewerActivated()");
733 fViewer0->Connect(
"MouseIdle(TGLPhysicalShape*,UInt_t,UInt_t)",
735 "OnMouseIdle(TGLPhysicalShape*,UInt_t,UInt_t)");
736 fViewer0->Connect(
"Clicked(TObject*)",
"SplitGLView",
this,
737 "OnClicked(TObject*)");
738 fViewer[0] =
new TEveViewer(
"SplitGLViewer[0]");
739 fViewer[0]->SetGLViewer(fViewer0, fViewer0->GetFrame());
740 fViewer[0]->IncDenyDestroy();
741 if (fIsEmbedded &&
gEve) {
748 s->AddElement(fRhoZMgr);
761 but3->
Connect(
"Clicked(TGLViewerBase*)",
"SplitGLView",
this,
"SwapToMainView(TGLViewerBase*)");
763 but4->
Connect(
"Clicked(TGLViewerBase*)",
"SplitGLView",
this,
"UnDock(TGLViewerBase*)");
770 fViewer1->Connect(
"MouseOver(TGLPhysicalShape*)",
"SplitGLView",
this,
771 "OnMouseOver(TGLPhysicalShape*)");
772 fViewer1->Connect(
"Activated()",
"SplitGLView",
this,
773 "OnViewerActivated()");
774 fViewer1->Connect(
"MouseIdle(TGLPhysicalShape*,UInt_t,UInt_t)",
776 "OnMouseIdle(TGLPhysicalShape*,UInt_t,UInt_t)");
777 fViewer1->Connect(
"Clicked(TObject*)",
"SplitGLView",
this,
778 "OnClicked(TObject*)");
779 fViewer[1] =
new TEveViewer(
"SplitGLViewer[1]");
780 fViewer[1]->SetGLViewer(fViewer1, fViewer1->GetFrame());
781 fViewer[1]->IncDenyDestroy();
782 if (fIsEmbedded &&
gEve) {
785 fViewer[1]->AddScene(
s);
792 s->AddElement(fRPhiMgr);
805 but5->
Connect(
"Clicked(TGLViewerBase*)",
"SplitGLView",
this,
"SwapToMainView(TGLViewerBase*)");
807 but6->
Connect(
"Clicked(TGLViewerBase*)",
"SplitGLView",
this,
"UnDock(TGLViewerBase*)");
814 fViewer2->Connect(
"MouseOver(TGLPhysicalShape*)",
"SplitGLView",
this,
815 "OnMouseOver(TGLPhysicalShape*)");
816 fViewer2->Connect(
"Activated()",
"SplitGLView",
this,
817 "OnViewerActivated()");
818 fViewer2->Connect(
"MouseIdle(TGLPhysicalShape*,UInt_t,UInt_t)",
820 "OnMouseIdle(TGLPhysicalShape*,UInt_t,UInt_t)");
821 fViewer2->Connect(
"Clicked(TObject*)",
"SplitGLView",
this,
822 "OnClicked(TObject*)");
823 fViewer[2] =
new TEveViewer(
"SplitGLViewer[2]");
824 fViewer[2]->SetGLViewer(fViewer2, fViewer2->GetFrame());
825 fViewer[2]->IncDenyDestroy();
826 if (fIsEmbedded &&
gEve) {
829 fViewer[2]->AddScene(
s);
845 button->
Connect(
"Clicked()",
"SplitGLView",
this,
"SwapToMainView(TGLViewerBase*=0)");
846 fgHtmlSummary =
new HtmlSummary(
"Alice Event Display Summary Table");
847 fgHtml =
new TGHtml(hfrm, 100, 100, -1);
852 if (fIsEmbedded &&
gEve) {
854 "SplitGLView",
this,
"ItemClicked(TGListTreeItem*, Int_t, Int_t, Int_t)");
857 fShapedToolTip =
new TGShapedToolTip(
"Default.png", 120, 22, 160, 110,
858 23, 115, 12,
"#ffff80");
859 Resize(GetDefaultSize());
862 LoadConfig(
".everc");
866SplitGLView::~SplitGLView()
871 fMenuFile->Disconnect(
"Activated(Int_t)",
this,
"HandleMenu(Int_t)");
872 fMenuCamera->Disconnect(
"Activated(Int_t)",
this,
"HandleMenu(Int_t)");
873 fMenuScene->Disconnect(
"Activated(Int_t)",
this,
"HandleMenu(Int_t)");
874 fMenuHelp->Disconnect(
"Activated(Int_t)",
this,
"HandleMenu(Int_t)");
875 fViewer0->Disconnect(
"MouseOver(TGLPhysicalShape*)",
this,
876 "OnMouseOver(TGLPhysicalShape*)");
877 fViewer0->Disconnect(
"Activated()",
this,
"OnViewerActivated()");
878 fViewer0->Disconnect(
"MouseIdle(TGLPhysicalShape*,UInt_t,UInt_t)",
879 this,
"OnMouseIdle(TGLPhysicalShape*,UInt_t,UInt_t)");
880 fViewer1->Disconnect(
"MouseOver(TGLPhysicalShape*)",
this,
881 "OnMouseOver(TGLPhysicalShape*)");
882 fViewer1->Disconnect(
"Activated()",
this,
"OnViewerActivated()");
883 fViewer1->Disconnect(
"MouseIdle(TGLPhysicalShape*,UInt_t,UInt_t)",
884 this,
"OnMouseIdle(TGLPhysicalShape*,UInt_t,UInt_t)");
885 fViewer2->Disconnect(
"MouseOver(TGLPhysicalShape*)",
this,
886 "OnMouseOver(TGLPhysicalShape*)");
887 fViewer2->Disconnect(
"Activated()",
this,
"OnViewerActivated()");
888 fViewer2->Disconnect(
"MouseIdle(TGLPhysicalShape*,UInt_t,UInt_t)",
889 this,
"OnMouseIdle(TGLPhysicalShape*,UInt_t,UInt_t)");
895 delete fShapedToolTip;
914void SplitGLView::HandleMenu(
Int_t id)
919 static TString rcfile(
".everc");
1003 fActViewer->UpdateScene();
1007 case kSceneUpdateAll:
1008 fViewer0->UpdateScene();
1009 fViewer1->UpdateScene();
1010 fViewer2->UpdateScene();
1014 case kSummaryUpdate:
1028 sprintf(str,
"About ROOT %s...",
gROOT->GetVersion());
1043void SplitGLView::OnClicked(
TObject *obj)
1048 fStatusBar->SetText(
Form(
"User clicked on: \"%s\"", obj->
GetName()), 1);
1050 fStatusBar->SetText(
"", 1);
1063 static TH1F *h1f = 0;
1065 TF1 *sqroot =
new TF1(
"sqroot",
"x*gaus(0) + [3]*form1",0,10);
1068 h1f =
new TH1F(
"h1f",
"",50,0,10);
1074 if (fShapedToolTip) {
1075 fShapedToolTip->UnmapWindow();
1083 gClient->GetDefaultRoot()->GetId(), posx, posy,
x,
y,
1086 if (fShapedToolTip) {
1087 fShapedToolTip->Show(
x+5,
y+5,
Form(
"%s\n \n%s",
1102 fStatusBar->SetText(
Form(
"Mouse Over: \"%s\"",
1105 fStatusBar->SetText(
"", 0);
1109void SplitGLView::OnViewerActivated()
1116 if (fActViewer && fActViewer->GetFrame())
1117 fActViewer->GetFrame()->ChangeBackground(GetDefaultFrameBackground());
1123 if (fActViewer == 0) {
1124 printf (
"dyncast failed ...\n");
1130 gClient->GetColorByName(
"green", green);
1133 if (fActViewer->GetFrame())
1134 fActViewer->GetFrame()->ChangeBackground(green);
1137 if (fActViewer->GetOrthoXOYCamera()->GetDollyToZoom() &&
1138 fActViewer->GetOrthoXOZCamera()->GetDollyToZoom() &&
1139 fActViewer->GetOrthoZOYCamera()->GetDollyToZoom())
1140 fMenuCamera->UnCheckEntry(kGLOrthoDolly);
1142 fMenuCamera->CheckEntry(kGLOrthoDolly);
1144 if (fActViewer->GetOrthoXOYCamera()->GetEnableRotate() &&
1145 fActViewer->GetOrthoXOYCamera()->GetEnableRotate() &&
1146 fActViewer->GetOrthoXOYCamera()->GetEnableRotate())
1147 fMenuCamera->CheckEntry(kGLOrthoRotate);
1149 fMenuCamera->UnCheckEntry(kGLOrthoRotate);
1161 Form(
"The file \"%s\" is not a root file!", fname),
1168 Form(
"The file \"%s\" does't contain a geometry", fname),
1174 fPad->GetListOfPrimitives()->Delete();
1178 fViewer0->PadPaint(fPad);
1179 fViewer1->PadPaint(fPad);
1180 fViewer2->PadPaint(fPad);
1184void SplitGLView::ToggleOrthoRotate()
1188 if (fMenuCamera->IsEntryChecked(kGLOrthoRotate))
1189 fMenuCamera->UnCheckEntry(kGLOrthoRotate);
1191 fMenuCamera->CheckEntry(kGLOrthoRotate);
1192 Bool_t state = fMenuCamera->IsEntryChecked(kGLOrthoRotate);
1194 fActViewer->GetOrthoXOYCamera()->SetEnableRotate(state);
1195 fActViewer->GetOrthoXOYCamera()->SetEnableRotate(state);
1196 fActViewer->GetOrthoXOYCamera()->SetEnableRotate(state);
1201void SplitGLView::ToggleOrthoDolly()
1205 if (fMenuCamera->IsEntryChecked(kGLOrthoDolly))
1206 fMenuCamera->UnCheckEntry(kGLOrthoDolly);
1208 fMenuCamera->CheckEntry(kGLOrthoDolly);
1209 Bool_t state = ! fMenuCamera->IsEntryChecked(kGLOrthoDolly);
1211 fActViewer->GetOrthoXOYCamera()->SetDollyToZoom(state);
1212 fActViewer->GetOrthoXOZCamera()->SetDollyToZoom(state);
1213 fActViewer->GetOrthoZOYCamera()->SetDollyToZoom(state);
1229 if (
v->InheritsFrom(
"TGLEmbeddedViewer")) {
1237void SplitGLView::LoadConfig(
const char *fname)
1248 Int_t bottom_height = env->
GetValue(
"Bottom.Tab.Height", 0);
1250 if (fIsEmbedded &&
gEve) {
1262 width = fSplitFrame->GetFirst()->GetWidth();
1263 fSplitFrame->GetFirst()->Resize(
width, mainheight);
1265 height = fSplitFrame->GetSecond()->GetFirst()->GetHeight();
1266 fSplitFrame->GetSecond()->GetFirst()->Resize(blwidth, height);
1268 height = fSplitFrame->GetSecond()->GetSecond()->GetFirst()->GetHeight();
1269 fSplitFrame->GetSecond()->GetSecond()->GetFirst()->Resize(bcwidth, height);
1271 height = fSplitFrame->GetSecond()->GetSecond()->GetSecond()->GetHeight();
1272 fSplitFrame->GetSecond()->GetSecond()->GetSecond()->Resize(brwidth, height);
1274 fSplitFrame->Layout();
1276 if (fIsEmbedded &&
gEve) {
1285void SplitGLView::SaveConfig(
const char *fname)
1288 Int_t bottom_height = 0;
1289 Int_t top_height = 0;
1293 if (fIsEmbedded &&
gEve) {
1309 if (fIsEmbedded &&
gEve) {
1311 env->
SetValue(
"Right.Tab.Height", top_height);
1313 env->
SetValue(
"Bottom.Tab.Height", bottom_height);
1334 if (!fSplitFrame->GetFirst()->GetFrame())
1339 while (parent && !parent->
InheritsFrom(
"TGSplitFrame")) {
1369void SplitGLView::UpdateSummary()
1377 HtmlObjTable *table;
1380 fgHtmlSummary->
Clear(
"D");
1391 table = fgHtmlSummary->AddTable(ename, 0, nel);
1398 table = fgHtmlSummary->AddTable(ename.
Data(), 5,
1400 table->SetLabel(0,
"Momentum");
1401 table->SetLabel(1,
"P_t");
1402 table->SetLabel(2,
"Phi");
1403 table->SetLabel(3,
"Theta");
1404 table->SetLabel(4,
"Eta");
1406 for (j=
tracks->BeginChildren(); j!=
tracks->EndChildren(); ++j) {
1408 table->SetValue(0, k, p);
1410 table->SetValue(1, k,
pt);
1412 table->SetValue(2, k, phi);
1414 table->SetValue(3, k, theta);
1416 table->SetValue(4, k, eta);
1421 fgHtmlSummary->Build();
1423 fgHtml->ParseText((
char*)fgHtmlSummary->Html().Data());
1432 printf(
"This script is used via ACLiC by the macro \"alice_esd_split.C\"\n");
1433 printf(
"To see it in action, just run \".x alice_esd_split.C\"\n");
R__EXTERN const char gHelpAbout[]
#define ClassDef(name, id)
R__EXTERN TApplication * gApplication
include TDocParser_001 C image html pict1_TDocParser_001 png width
R__EXTERN TEveManager * gEve
R__EXTERN TGeoManager * gGeoManager
float type_of_call hi(const int &, const int &)
R__EXTERN void * gTQSender
char * Form(const char *fmt,...)
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)
virtual void SetFillColor(Color_t fcolor)
Set the fill area color.
void Clear(Option_t *option="")
Remove all primitives from the canvas.
virtual void Update()
Update canvas pad buffers.
TVirtualPad * cd(Int_t subpadnumber=0)
Set current canvas & pad.
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=0)
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.
Base class for TEveUtil visualization elements, providing hierarchy management, rendering control and...
virtual TObject * GetObject(const TEveException &eh) const
Get a TObject associated with this render-element.
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=0)
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...
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.
virtual void AddElement(TEveElement *el)
Call base-class implementation.
Eve representation of TGLViewer.
virtual void SetParameters(const Double_t *params)
virtual void AddFrame(TGFrame *f, TGLayoutHints *l=0)
Add frame to the composite frame using the specified layout hints.
virtual void AddFrame(TGFrame *f, TGLayoutHints *hints)
Add frame to dockable frame container. Frame and hints are NOT adopted.
void SetFixedSize(Bool_t fixed)
void EnableHide(Bool_t onoff)
Enable hiding.
void SetFilename(const char *fname)
Set file name.
void SetIniDir(const char *inidir)
Set directory name.
virtual void Resize(UInt_t w=0, UInt_t h=0)
Resize the frame.
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()
virtual void * GetUserData() const =0
TGShapedFrame & operator=(const TGShapedFrame &)
TGSplitFrame * GetFirst() const
TGSplitFrame * GetSecond() const
virtual void AddFrame(TGFrame *f, TGLayoutHints *l=0)
Add a frame in the split frame using layout hints l.
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()
Set default volume colors according to A of material.
TGeoVolume * GetTopVolume() const
1-D histogram with a float per channel (see TH1 documentation)}
virtual void Reset(Option_t *option="")
Reset.
virtual void FillRandom(const char *fname, Int_t ntimes=5000)
Fill histogram following distribution in function fname.
TObject * Clone(const char *newname=0) const
Make a complete copy of the underlying object.
virtual void Draw(Option_t *option="")
Draw this histogram with options.
virtual void SetStats(Bool_t stats=kTRUE)
Set statistics option on/off.
An abstract interface to image processing library.
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)
virtual void PaintImage(Drawable_t, Int_t, Int_t, Int_t=0, Int_t=0, UInt_t=0, UInt_t=0, Option_t *="")
virtual TObject * Clone(const char *) const
Make a clone of an object using the Streamer facility.
virtual void Clear(Option_t *option="")
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".
void Clear(Option_t *option="")
Remove all objects from the collection.
TObject * At(Int_t idx) const
Returns the object at position idx. Returns 0 if idx is out of range.
void AddFirst(TObject *obj)
Insert object at beginning of collection.
void Delete(Option_t *option="")
Remove all objects from the collection AND delete all heap based objects.
virtual void SetBorderMode(Short_t bordermode)
virtual void Clear(Option_t *option="")
Clear all lines in this pavetext.
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
TCanvas * GetCanvas() const
virtual void Add(TObject *obj)
void ToLower()
Change string to lower-case.
Bool_t EndsWith(const char *pat, ECaseCompare cmp=kExact) const
Return true if string ends with the specified string.
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.
TH1 * GetHisto(TFile *inFile, const std::string name)
static constexpr double s
static constexpr double ps
TFile * OpenFile(const TString &fin)