This TableTest class is a simple example of how to use a TGTable with a TTreeTableInterface.
TableTest inherits from TGMainFrame to create a top level frame to embed the TGTable in. First, the hsimple.root file is opened to obtain an ntuple. Then a TTreeTableInterface is created using this ntuple. A table is then created using the interface. In the end, the table is added to the TGMainFrame that is the TableTest and the necessary calls to correctly draw the window are made. For more information about the use of TTreeTableInterface and TGTable, see their documentation.
#include <iostream>
class IDList {
private:
public:
IDList() : nID(0) {}
~IDList() {}
Int_t GetUnID(
void) {
return ++nID; }
};
private:
IDList fIDs;
public:
~TableTest() override;
void DoExit();
TGTable *GetTable() {
return fTable; }
};
:
TGMainFrame(
p,
w,
h), fNTableRows(ntrows), fNTableColumns(ntcols), fTable(nullptr)
{
Connect("CloseWindow()", "TableTest", this, "DoExit()");
DontCallClose();
fFile =
new TFile(
"$ROOTSYS/tutorials/hsimple.root");
if (!fFile || fFile->IsZombie()) {
printf("Please run <ROOT location>/tutorials/hsimple.C first.");
return;
}
TString varexp =
"px:py:pz:random:sin(px):log(px/py):log(pz)";
fTable =
new TGTable(
this, fIDs.GetUnID(), fInterface, fNTableRows, fNTableColumns);
SetWindowName("Tree Table Test");
Resize(GetDefaultWidth() + 20, 600);
MapWindow();
};
TableTest::~TableTest()
{
delete fInterface;
fFile->Close();
Cleanup();
}
void TableTest::DoExit()
{
DeleteWindow();
}
{
TableTest *test = new TableTest(nullptr, ntrows, ntcols, 500, 200);
return test->GetTable();
}
#define ClassDefOverride(name, id)
winID h TVirtualViewer3D TVirtualGLPainter p
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize MapSubwindows
A ROOT file is an on-disk file, usually with extension .root, that stores objects in a file-system-li...
This class describes layout hints used by the layout classes.
Defines top level windows that interact with the system Window Manager.
Create an array to hold a bunch of numbers.
ROOT GUI Window base class.
A simple TTree restricted to a list of float variables only.
const char * Data() const
TTreeTableInterface is used to interface to data that is stored in a TTree.
RooCmdArg Layout(double xmin, double xmax=0.99, double ymin=0.95)
- Author
- Roel Aaij 13/07/2007
Definition in file ntupleTableTest.C.