177#include "RConfigure.h"
236 "",
"AXIS",
"HIST",
"SAME",
"CYL",
"POL",
"SPH",
"PSR",
"LEGO",
"LEGO1",
"LEGO2",
237 "SURF",
"SURF1",
"SURF2",
"SURF3",
"SURF4"
241 "",
"AH",
"B",
"C",
"E",
"E1",
"E2",
"E3",
"E4",
"L",
"P",
"*H"
245 "",
"ARR",
"BOX",
"COL",
"COL2",
"CONT",
"CONT0",
"CONT1",
"CONT2",
"CONT3",
246 "FB",
"BB",
"SCAT",
"PROF"
319 fDimension(0), fVarDraw(0), fScanMode(0),
320 fTreeIndex(0), fDefaultCursor(0), fWatchCursor(0),
321 fCounting(0), fStopMapping(0), fEnableCut(0),fNexpressions(0)
326 gROOT->ProcessLine(
"#ifndef GTV_DEFINED\n\
327 TTreeViewer *gTV = 0;\n\
328 TTree *tv__tree = 0;\n\
329 TList *tv__tree_list = 0;\n\
330 TFile *tv__tree_file = 0;\n\
331 #define GTV_DEFINED\n\
333 snprintf(command,128,
"gTV = (TTreeViewer*)0x%zx", (
size_t)
this);
334 gROOT->ProcessLine(command);
336 gROOT->ProcessLine(
"tv__tree_list = new TList;");
347 fDimension(0), fVarDraw(0), fScanMode(0),
348 fTreeIndex(0), fDefaultCursor(0), fWatchCursor(0),
349 fCounting(0), fStopMapping(0), fEnableCut(0),fNexpressions(0)
356 gROOT->ProcessLine(
"#ifndef GTV_DEFINED\n\
357 TTreeViewer *gTV = 0;\n\
358 TTree *tv__tree = 0;\n\
359 TList *tv__tree_list = 0;\n\
360 TFile *tv__tree_file = 0;\n\
361 #define GTV_DEFINED\n\
363 snprintf(command,128,
"gTV = (TTreeViewer*)0x%zx", (
size_t)
this);
364 gROOT->ProcessLine(command);
367 gROOT->ProcessLine(
"tv__tree_list = new TList;");
373 if (cdir) cdir->
cd();
378 cdir =
tree->GetDirectory();
382 if (dirsav) dirsav->
cd();
393 printf(
"Tree found\n");
396 while ((ftree = (
TTree*)next())) {
397 if (ftree==
tree) {printf(
"found at index %i\n",
index);
break;}
423 snprintf(command,100,
"tv__tree = (TTree *)0x%zx;", (
size_t)
tree);
436 gClient->GetPicture(
"tree_t.xpm"),
gClient->GetPicture(
"tree_t.xpm"));
455 if (diff <= 0)
return;
500 gClient->GetPicture(
"tree_t.xpm"),
gClient->GetPicture(
"tree_t.xpm"));
518 if (!treeName)
return;
522 printf(
"Tree found\n");
526 if (!strcmp(treeName,
tree->GetName())) {printf(
"found at index %i\n",
index);
break;}
565 gClient->GetPicture(
"tree_t.xpm"),
gClient->GetPicture(
"tree_t.xpm"));
589 while ((obj=next())) {
595 std::cout <<
"File name : "<<
fFilename << std::endl;
621 gClient->GetColorByName(
"blue",color);
800 fBarOption->
SetToolTipText(
"Histogram graphics option. Type option here and click <Draw> (or <ENTER> to update current histogram).");
905 fSPIDER->
Connect(
"Clicked()",
"TTreeViewer",
this,
"ExecuteSpider()");
926 fREFR->
Connect(
"Clicked()",
"TTreeViewer",
this,
"DoRefresh()");
1082 entry->
SetToolTipText(
"X expression. Drag and drop expressions here");
1091 entry->
SetToolTipText(
"Y expression. Drag and drop expressions here");
1100 entry->
SetToolTipText(
"Z expression. Drag and drop expressions here");
1110 entry->
SetToolTipText(
"Active cut. Double-click to enable/disable");
1120 entry->
SetToolTipText(
"Drag and drop expressions/leaves here. Double-click to scan. Check <Scan> to redirect on file.");
1133 entry->
SetToolTipText(
"User defined expression/cut. Double-click to edit");
1298 if (!stripped.Contains(
"["))
return name;
1302 while (stripped.Index(
"[",
index) !=
kNPOS) {
1308 return (objstr->
String()).Data();
1311 retstr = stripped.Remove(start+1, end-start-1);
1316 return (objstr->
String()).Data();
1335 Warning(
"Empty",
"No item selected.");
1340 Warning(
"Empty",
"Not expression type.");
1386 Int_t dimension = 0;
1399 if (
Ez() && strlen(
Ez())) {
1406 if ((
Ez() && strlen(
Ez())) && ((
Ex() &&strlen(
Ex())) || (
Ey() && strlen(
Ey())))) varexp +=
":";
1407 if (
Ey() && strlen(
Ey())) {
1414 if (
Ey() && strlen(
Ey()) &&
Ex() && strlen(
Ex())) varexp +=
":";
1415 if (
Ex () && strlen(
Ex())) {
1424 Warning(
"ExecuteDraw",
"Nothing to draw on X,Y,Z.");
1442 auto pad =
gROOT->GetSelectedPad();
1449 const char *cut =
"";
1462 command =
TString::Format(
"tv__tree->Scan(\"%s\",\"%s\",\"%s\", %lld, %lld);",
1485 if (current == last) {
1489 if (dimension == 3 && strlen(gopt)) {
1490 std::cout <<
"Graphics option " << gopt <<
" not valid for 3D histograms" << std::endl;
1493 std::cout <<
" Graphics option for current histogram changed to " << gopt << std::endl;
1507 if (dimension == 3 && strlen(gopt)) {
1508 std::cout <<
"Graphics option " << gopt <<
" not valid for 3D histograms" << std::endl;
1512 command =
TString::Format(
"tv__tree->Draw(\"%s\",\"%s\",\"%s\", %lld, %lld);",
1529 for (i=0; i<3; i++) {
1530 if (alias[i].Length()) {
1532 alias[current] = alias[i];
1543 for (
Int_t ind=0; ind<3; ind++) axis[ind]->SetTitle(alias[ind].Data());
1554 Int_t dimension = 0;
1559 if (
Ez() && strlen(
Ez())) {
1560 previousexp =
kTRUE;
1567 if ((
Ez() && strlen(
Ez())) && ((
Ex() && strlen(
Ex())) || (
Ey() && strlen(
Ey())))) varexp +=
":";
1568 if (
Ey() && strlen(
Ey())) {
1569 previousexp =
kTRUE;
1576 if (
Ey() && strlen(
Ey()) &&
Ex() && strlen(
Ex())) varexp +=
":";
1577 if (
Ex() && strlen(
Ex())) {
1578 previousexp =
kTRUE;
1585 for(
Int_t i=0;i<10;++i){
1586 if(
En(i+5) && strlen(
En(i+5))){
1591 }
else varexp =
En(i+5);
1592 previousexp =
kTRUE;
1596 Warning(
"ExecuteSpider",
"Need at least 3 variables");
1609 auto pad =
gROOT->GetSelectedPad();
1616 const char *cut =
"";
1675 Warning(
"EditExpression",
"No item selected.");
1681 Warning(
"EditExpression",
"Not expression type.");
1705 if (!
fTree)
return 0;
1714 if (!
fTree)
return 0;
1751 Warning(
"RemoveItem",
"No item selected.");
1757 Warning(
"RemoveItem",
"Not removable type.");
1972 Warning(
"ProcessMessage",
"Edit expressions first.");
1976 Warning(
"ProcessMessage",
"You have only one expression active.");
1980 Warning(
"ProcessMessage",
"1D drawing options not apply to 2D histograms.");
1989 gROOT->MakeDefCanvas();
2004 std::cout <<
"Use SetTreeName() from context menu and supply a tree name" << std::endl;
2005 std::cout <<
"The context menu is activated by right-clicking the panel from right" << std::endl;
2014 event.fX =
event.fY = 1;
2032 snprintf(command,1024,
"open_session((void*)0x%zx);", (
size_t)
this);
2114 hd =
new TRootHelpDialog(
this,
"Executing user commands...", 600, 400);
2157 if (trueName.Contains(
"[]")) {
2160 while((leaf=(
TLeaf*)next())) {
2165 char* msg2 =
new char[2000];
2170 char symbol = (char)((*itemType) >> 8);
2171 snprintf(msg2,2000,
"%c expression : %s", symbol, vname);
2175 snprintf(msg2,2000,
"Cut : %s", vname);
2178 snprintf(msg2,2000,
"Box : %s", vname);
2182 snprintf(msg2,2000,
"Expression : %s", vname);
2185 snprintf(msg2,2000,
"Branch : %s", vname);
2187 snprintf(msg2,2000,
"Leaf : %s", vname);
2195 message = message(0,150);
2314 if (strlen(command) > 1999) {
2315 Warning(
"ExecuteCommand",
"Command too long: aborting.");
2318 snprintf(comm,2000,
"%s", command);
2324 gROOT->ProcessLineFast(command);
2326 gROOT->ProcessLine(command);
2417 if (!branches)
return;
2421 for (
id=0;
id<branches->
GetEntries();
id++) {
2425 if (
name.Contains(
"fBits") ||
name.Contains(
"fUniqueID"))
continue;
2433 TIter nextf(
tree->GetTree()->GetListOfFriends() );
2438 for (
id=0;
id<branches->
GetEntries();
id++) {
2442 if (
name.Contains(
"fBits") ||
name.Contains(
"fUniqueID"))
continue;
2461 if (!branch)
return;
2463 if (prefix && strlen(prefix) > 0) {
2465 if (!
name.EndsWith(
"."))
name +=
".";
2473 if (
name.Contains(
"fBits") ||
name.Contains(
"fUniqueID"))
return;
2504 leaf = (
TLeaf *)leaves->
At(lf);
2551 entry->
SetToolTipText(
"Branch with sub-branches. Can not be dragged");
2557 if (textEntry)
delete textEntry;
2563 entry->
SetToolTipText(
"Branch with more than one leaf. Can not be dragged");
2572 leaf = (
TLeaf *)leaves->
At(lf);
2581 entry->
SetToolTipText(
"Double-click to draw. Drag to X, Y, Z or scan box.");
2587 pic = (
gClient->GetMimeTypeList())->GetIcon(
"TLeaf",
kFALSE);
2589 spic =
gClient->GetMimeTypeList()->GetIcon(
"TLeaf",
kTRUE);
2593 entry->
SetToolTipText(
"Double-click to draw. Drag to X, Y, Z or scan box.");
2606 for (ind=0; ind<branches->
GetEntries(); ind++) {
2609 MapBranch(branchDaughter,
"", branchItem, listIt);
2641 if (!itemType)
return;
2670 static const int buf_size = 2048;
2671 char buf[buf_size], *bp;
2673 int n = vsnprintf(buf, buf_size, fmt, va);
2676 if (
n == -1 ||
n >= buf_size) {
2684 const char *title =
"";
2692 title =
"System Error";
2703 char * msg =
new char[100];
2704 snprintf(msg,100,
"First entry : %lld Last entry : %lld",
2722 lenfile = strlen(fname);
2730 out.open(fname, std::ios::out);
2732 fname =
new char[13];
2733 strlcpy(fname,
"treeviewer.C",13);
2734 out.open(fname, std::ios::out);
2737 printf(
"SaveSource cannot open file : %s\n", fname);
2739 if (!lenfile)
delete [] fname;
2745 sname = sname.ReplaceAll(
".C",
"");
2746 out <<
"void open_session(void *p = 0);"<<std::endl<<std::endl;
2747 out <<
"void "<<sname.Data()<<
"() {"<<std::endl;
2748 out <<
"//=========Macro generated by ROOT version"<<
gROOT->GetVersion()<<std::endl;
2750 out <<
"//===This macro can be opened from a TreeViewer session after loading"<<std::endl;
2751 out <<
"//===the corresponding tree, or by running root with the macro name argument"<<std::endl<<std::endl;
2752 out <<
" open_session();"<<std::endl;
2753 out <<
"}"<<std::endl<<std::endl;
2754 out <<
"void open_session(void *p = 0) {"<<std::endl;
2755 out <<
" gSystem->Load("<<quote<<
"libTreeViewer"<<quote<<
");"<<std::endl;
2756 out <<
" TTreeViewer *treeview = (TTreeViewer *) p;"<<std::endl;
2757 out <<
" if (!treeview) treeview = new TTreeViewer();"<<std::endl;
2758 out <<
" TTree *tv_tree = (TTree*)gROOT->FindObject("<<quote<<
fTree->
GetName()<<quote<<
");"<<std::endl;
2759 out <<
" TFile *tv_file = (TFile*)gROOT->GetListOfFiles()->FindObject("<<quote<<
fFilename<<quote<<
");"<<std::endl;
2760 out <<
" if (!tv_tree) {"<<std::endl;
2761 out <<
" if (!tv_file) tv_file = new TFile("<<quote<<
fFilename<<quote<<
");"<<std::endl;
2762 out <<
" if (tv_file) tv_tree = (TTree*)tv_file->Get("<<quote<<
fTree->
GetName()<<quote<<
");"<<std::endl;
2763 out <<
" if(!tv_tree) {"<<std::endl;
2764 out <<
" printf(\"Tree %s not found\", "<<quote<<
fTree->
GetName()<<quote<<
");"<<std::endl;
2765 out <<
" return;"<<std::endl;
2766 out <<
" }"<<std::endl;
2767 out <<
" }"<<std::endl<<std::endl;
2768 out <<
" treeview->SetTreeName("<<quote<<
fTree->
GetName()<<quote<<
");"<<std::endl;
2772 out <<
"// Set expressions on axis and cut"<<std::endl;
2773 out <<
" TTVLVEntry *item;"<<std::endl;
2774 for (
Int_t i=0; i<4; i++) {
2777 out <<
"// X expression"<<std::endl;
2780 out <<
"// Y expression"<<std::endl;
2783 out <<
"// Z expression"<<std::endl;
2786 out <<
"// Cut expression"<<std::endl;
2792 out <<
" item = treeview->ExpressionItem("<<i<<
");"<<std::endl;
2794 <<
", "<<quote<<item->
GetAlias()<<quote<<
");"<<std::endl;
2796 out <<
"// Scan list"<<std::endl;
2798 out <<
" item = treeview->ExpressionItem(4);"<<std::endl;
2800 <<
", "<<quote<<
"Scan box"<<quote<<
");"<<std::endl;
2801 out <<
"// User defined expressions"<<std::endl;
2808 itemType =
"kFALSE";
2809 out <<
" item = treeview->ExpressionItem("<<crt<<
");"<<std::endl;
2811 <<
", "<<quote<<item->
GetAlias()<<quote<<
", "<<itemType.
Data()<<
");"<<std::endl;
2814 out <<
"}"<<std::endl;
2816 printf(
"C++ Macro file: %s has been generated\n", fname);
2817 if (!lenfile)
delete [] fname;
2827 Warning(
"SwitchTree",
"No tree found.");
2831 std::string command;
2833 command =
"tv__tree = (TTree *) tv__tree_list->At";
2841 command =
"Current Tree : ";
2888 if (rec)
rec->SetUserCode(code, autoexec);
EMouseButton
Button names.
R__EXTERN const char gTVHelpLayout[]
R__EXTERN const char gTVHelpStart[]
R__EXTERN const char gTVHelpDrawing[]
R__EXTERN const char gTVHelpOpenSave[]
R__EXTERN const char gTVHelpMacros[]
R__EXTERN const char gTVHelpEditExpressions[]
R__EXTERN const char gTVHelpAbout[]
R__EXTERN const char gTVHelpDraggingItems[]
R__EXTERN const char gTVHelpUserCommands[]
R__EXTERN const char gTVHelpSession[]
R__EXTERN const char gTVHelpContext[]
R__EXTERN const char gHelpAbout[]
R__EXTERN TApplication * gApplication
const Int_t kDoNotProcess
constexpr Int_t kSysError
void Warning(const char *location, const char *msgfmt,...)
Use this function in warning situations.
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 index
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize id
Option_t Option_t TPoint TPoint const char mode
Option_t Option_t TPoint TPoint percent
static const char * gOpenTypes[]
char * Form(const char *fmt,...)
Formats a string in a circular formatting buffer.
R__EXTERN TSystem * gSystem
static const char * gOpt2D[14]
static const char * gOptgen[16]
static const char * gOpenTypes[]
static const char * gOpt1D[12]
static const char * gMacroTypes[]
virtual void Terminate(Int_t status=0)
Terminate the application by call TSystem::Exit() unless application has been told to return from Run...
Class to manage histogram axis.
A TTree is a list of TBranches.
TObjArray * GetListOfBranches()
TObjArray * GetListOfLeaves()
This class stores the date and time with a precision of one second in an unsigned 32 bit word (950130...
const char * AsString() const
Return the date & time as a string (ctime() format).
Describe directory structure in memory.
virtual TFile * GetFile() const
virtual Bool_t cd()
Change current directory to "this" directory.
A TEventList object is a list of selected events (entries) in a TTree.
A ROOT file is composed of a header, followed by consecutive data records (TKey instances) with a wel...
A TFriendElement TF describes a TTree object TF in a file.
virtual TTree * GetTree()
Return pointer to friend TTree.
A frame containing two scrollbars (a horizontal and a vertical) and a viewport.
virtual void SetContainer(TGFrame *f)
TGViewPort * GetViewPort() const
const TGWindow * GetRoot() const
Returns current root (i.e.
const TGPicture * GetPicture(const char *name)
Get picture from the picture pool.
void NeedRedraw(TGWindow *w, Bool_t force=kFALSE)
Set redraw flags.
A combobox (also known as a drop down listbox) allows the selection of one item out of a list of item...
virtual void AddEntry(TGString *s, Int_t id)
virtual void RemoveEntries(Int_t from_ID, Int_t to_ID)
virtual void Select(Int_t id, Bool_t emit=kTRUE)
Make the selected item visible in the combo box window and emit signals according to the second param...
The base class for composite widgets (menu bars, list boxes, etc.).
TGDimension GetDefaultSize() const override
std::cout << fWidth << "x" << fHeight << std::endl;
virtual void AddFrame(TGFrame *f, TGLayoutHints *l=nullptr)
Add frame to the composite frame using the specified layout hints.
UInt_t GetDefaultWidth() const override
void MapSubwindows() override
Map all sub windows that are part of the composite frame.
UInt_t GetDefaultHeight() const override
void Layout() override
Layout the elements of the composite frame.
virtual void Associate(const TGWindow *w)
virtual void RemoveItem(TGFrame *item)
Remove item from container.
virtual const TGFrame * GetNextSelected(void **current)
Return the next selected item.
virtual Int_t NumSelected() const
void RemoveAll() override
Remove all items from the container.
virtual Double_t GetMaxPositionD() const
virtual Long64_t GetMinPositionL() const
virtual Double_t GetMinPositionD() const
virtual void SetRange(Float_t min, Float_t max)
virtual Long64_t GetMaxPositionL() const
virtual void SetPosition(Float_t min, Float_t max)
Dragging the slider will generate the event:
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 SetIniDir(const char *inidir)
Set directory name.
void Resize(UInt_t w=0, UInt_t h=0) override
Resize the frame.
static Pixel_t GetWhitePixel()
Get white pixel value.
virtual UInt_t GetDefaultHeight() const
void SetBackgroundColor(Pixel_t back) override
Set background color (override from TGWindow base class).
void MapWindow() override
map window
virtual void DeleteWindow()
Delete window.
virtual void SetWidth(UInt_t w)
virtual void SetHeight(UInt_t h)
void ShowPosition(Bool_t set=kTRUE, Bool_t percent=kTRUE, const char *format="%.2f")
Show postion text, either in percent or formatted according format.
A horizontal 3D line is a line that typically separates a toolbar from the menubar.
A composite frame that layout their children in horizontal way.
void * GetUserData() const
void SetUserData(void *userData)
This class handles GUI labels.
virtual void SetText(TGString *newText)
Set new text in label.
This class describes layout hints used by the layout classes.
virtual const char * GetText() const =0
TGListTreeItem * GetParent() const
virtual void * GetUserData() const =0
A list tree is a widget that can contain a number of items arranged in a tree structure.
void ClearHighlighted()
Un highlight items.
void AddItem(TGListTreeItem *parent, TGListTreeItem *item)
Add given item to list tree.
void OpenItem(TGListTreeItem *item)
Open item in list tree (i.e. show child items).
TGListTreeItem * GetSelected() const
TGListTreeItem * FindChildByName(TGListTreeItem *item, const char *name)
Find child of item by name.
void HighlightItem(TGListTreeItem *item)
Highlight item.
A list view is a widget that can contain a number of items arranged in a grid or list.
void Layout() override
Layout list view components (container and contents of container).
void SetContainer(TGFrame *f) override
Set list view container.
virtual void SetViewMode(EListViewMode viewMode)
Set list view mode.
Defines top level windows that interact with the system Window Manager.
virtual void SendCloseMessage()
Send close message to self.
void SetWindowName(const char *name=nullptr) override
Set window name. This is typically done via the window manager.
TGClient * fClient
Connection to display server.
The TGPicture class implements pictures and icons used in the different GUI elements and widgets.
Pixmap_t GetPicture() const
void SetPosition(Float_t pos)
Set progress position between [min,max].
void SetFillType(EFillType type)
Set fill type.
virtual void SetBarColor(Pixel_t color)
Set progress bar color.
This class represent a specialized expression editor for TTVLVEntry 'true name' and 'alias' data memb...
TTVLVEntry * EditedEntry()
void InsertText(const char *text)
Insert text in text entry.
void GrabPointer()
Just focus the cursor inside.
void SetLabel(const char *title)
Set label of selection box.
void SetEntry(TTVLVEntry *entry)
Connect one entry.
static TGSelectBox * GetInstance()
Return the pointer to the instantiated singleton.
Provides a StatusBar widget.
void Draw3DCorner(Bool_t corner)
virtual void SetText(TGString *text, Int_t partidx=0)
Set text in partition partidx in status bar.
TGString wraps a TString and adds some graphics routines like drawing, size of string on screen depen...
const char * GetString() const
A text buffer is used in several widgets, like TGTextEntry, TGFileDialog, etc.
Yield an action as soon as it is clicked.
A TGTextEntry is a one line text input widget.
virtual void SetDefaultSize(UInt_t w, UInt_t h)
Set the default / minimal size of the widget.
void Clear(Option_t *option="") override
Clears up the text entry.
const char * GetText() const
virtual void SetCursorPosition(Int_t pos)
Set the cursor position to newPos.
virtual void AppendText(const char *text)
Appends text to the end of text entry, clears the selection and moves the cursor to the end of the li...
virtual void SetToolTipText(const char *text, Long_t delayms=500)
Set tool tip text associated with this text entry.
virtual void SetText(const char *text, Bool_t emit=kTRUE)
Sets text entry to text, clears the selection and moves the cursor to the end of the line.
Bool_t HandleButton(Event_t *event) override
Handle mouse button event in text entry widget.
A vertical 3D line is a line that can be used to separate groups of widgets.
A composite frame that layout their children in vertical way.
TH1 is the base class of all histogram classes in ROOT.
void SetTitle(const char *title) override
Change/set the title.
TObject * FindObject(const char *name) const override
Search object named name in the list of functions.
void Draw(Option_t *option="") override
Draw this histogram with options.
A TLeaf describes individual elements of a TBranch See TBranch structure in TTree.
TObject * FindObject(const char *name) const override
Find an object in this list using its name.
void Add(TObject *obj) override
void Delete(Option_t *option="") override
Remove all objects from the list 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.
Each ROOT class (see TClass) has a linked list of methods.
const char * GetName() const override
Returns name of object.
Int_t GetEntries() const override
Return the number of objects in array (i.e.
TObject * At(Int_t idx) const override
TObject * UncheckedAt(Int_t i) const
Collectable string class.
Mother of all ROOT objects.
R__ALWAYS_INLINE Bool_t TestBit(UInt_t f) const
virtual void DoError(int level, const char *location, const char *fmt, va_list va) const
Interface to ErrorHandler (protected).
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.
virtual TObject * FindObject(const char *name) const
Must be redefined in derived classes.
virtual Bool_t InheritsFrom(const char *classname) const
Returns kTRUE if object inherits from class "classname".
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.
A TRootHelpDialog is used to display help text (or any text in a dialog window).
void SetText(const char *helpText)
Set help text from helpText buffer in TGTextView.
void Popup()
Show help dialog.
Sequenceable collection abstract base class.
void Draw(Option_t *options="") override
Draw the spider.
Bool_t EndsWith(const char *pat, ECaseCompare cmp=kExact) const
Return true if string ends with the specified string.
const char * Data() const
TString & Remove(Ssiz_t pos)
TString & Append(const char *cs)
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString.
virtual Int_t Exec(const char *shellcmd)
Execute a command.
virtual const char * UnixPathName(const char *unixpathname)
Convert from a local pathname to a Unix pathname.
virtual const char * GetError()
Return system error string.
This class represent the list view container for the TreeView class.
void SelectItem(const char *name)
Select an item.
void SetViewer(TTreeViewer *viewer)
TList * ExpressionList()
Return the list of user-defined expressions.
const char * Cut()
Return the cut entry.
const char * Ez()
Return the expression on Z.
const char * Ey()
Return the expression on Y.
const char * ScanList()
Return the cut entry.
virtual void AddThisItem(TTVLVEntry *item)
TTVLVEntry * ExpressionItem(Int_t index)
Return the expression item at specific position.
void SetListView(TGListView *lv) override
const char * Ex()
Return the expression on X.
void EmptyAll()
Clear all names and aliases for expression type items.
void RemoveNonStatic()
Remove all non-static items from the list view, except expressions.
This class represent entries that goes into the TreeViewer listview container.
TGItemContext * GetContext()
void SetSmallPic(const TGPicture *spic)
Set small picture.
void SetAlias(const char *alias)
void SetToolTipText(const char *text, Long_t delayms=1000)
Set tool tip text associated with this item.
void SetTrueName(const char *name)
const char * ConvertAliases()
Convert all aliases into true names.
void Empty()
Clear all names and alias.
const char * GetTrueName()
I/O classes for TreeViewer session handling.
const char * GetName() const override
Returns name of object.
I/O classes for TreeViewer session handling.
void SaveSource(std::ofstream &out)
Save the TTVSession in a C++ macro file.
TTVRecord * GetRecord(Int_t i)
Return record at index i.
void SetRecordName(const char *name)
Set record name.
void Show(TTVRecord *rec)
Display record rec.
void RemoveLastRecord()
Remove current record from list.
TTVRecord * AddRecord(Bool_t fromFile=kFALSE)
Add a record.
void UpdateRecord(const char *name)
Updates current record according to new X, Y, Z settings.
Handles synchronous and a-synchronous timer events.
virtual void TurnOff()
Remove timer from system timer list.
virtual void TurnOn()
Add the timer to the system timer list.
void Reset()
Reset the timer.
Implement some of the functionality of the class TTree requiring access to extra libraries (Histogram...
A graphic user interface designed to handle ROOT trees and to take advantage of TTree class features.
TGLabel * fBarLbl2
Label of option text entry.
void SetUserCode(const char *code, Bool_t autoexec=kTRUE)
TGSelectBox * fDialogBox
Expression editor.
void SetCurrentRecord(Long64_t entry)
TGCheckButton * fBarRec
Command recording toggle.
TGHProgressBar * fProgressBar
Progress bar.
void SetHistogramTitle(const char *title)
void UpdateRecord(const char *name="new name")
TGTextEntry * fBarOption
Histogram drawing option entry.
TGLabel * fBLbl4
Label for input list entry.
TGTextEntry * fBarCommand
User command entry.
TGListView * fListView
ListView with branches and leaves.
TGComboBox * fCombo
Combo box with session records.
TGListTree * fLt
ListTree with file and tree items.
TList * fWidgets
List of widgets to be deleted.
void SetNexpressions(Int_t expr)
Bool_t fEnableCut
True if cuts are enabled.
TTreeViewer(const char *treeName=nullptr)
TTreeViewer default constructor.
TGCheckButton * fBarH
Checked for drawing current histogram with different graphic option.
TGPictureButton * fBGFirst
Cursor_t fDefaultCursor
Default cursor.
void MapOptions(Long_t parm1)
TGLabel * fBLbl5
Label for output list entry.
Bool_t IsScanRedirected()
TGCanvas * fTreeView
ListTree canvas container.
Int_t fTreeIndex
Index of current tree in list.
TGPictureButton * fSTOP
Interrupt current command (not yet)
void SetSession(TTVSession *session)
void SetParentTree(TGListTreeItem *item)
void MapBranch(TBranch *branch, const char *prefix="", TGListTreeItem *parent=nullptr, Bool_t listIt=kTRUE)
const char * EmptyBrackets(const char *name)
const TGPicture * fPicStop
Pictures for Stop buttons.
void CloseWindow() override
Close and delete main frame.
const TGPicture * fPicY
Pictures for Y expressions.
TGLabel * fLbl2
Label for list view.
TTVLVEntry * ExpressionItem(Int_t index)
Cursor_t fWatchCursor
Watch cursor.
void AppendTree(TTree *tree)
Bool_t fScanMode
Flag activated when Scan Box is double-clicked.
TGTextEntry * fBarListIn
Tree input event list name entry.
void SetScanRedirect(Bool_t mode)
TTimer * fTimer
Tree viewer timer.
Long64_t Process(const char *filename, Option_t *option="", Long64_t nentries=TTree::kMaxEntries, Long64_t firstentry=0)
Bool_t SwitchTree(Int_t index)
TGCheckButton * fBarScan
Checked for tree scan.
const TGPicture * fPicRefr
Pictures for Refresh buttons ///<ia.
const char * fSourceFile
Name of the C++ source file - default treeviewer.C.
Int_t MakeSelector(const char *selector=nullptr)
const TGPicture * fPicX
Pictures for X expressions.
void DoError(int level, const char *location, const char *fmt, va_list va) const override
Interface to ErrorHandler (protected).
void SetRecordName(const char *name)
TGPictureButton * fDRAW
DRAW button.
TString fLastOption
Last graphic option.
TList * fTreeList
List of mapped trees.
const char * fFilename
Name of the file containing the tree.
TGTextEntry * fBarHist
Histogram name entry.
TGLayoutHints * fBarLayout
TContextMenu * fContextMenu
Context menu for tree viewer.
TGHorizontalFrame * fHpb
Progress bar frame.
TGPictureButton * fBGNext
Int_t fNexpressions
Number of expression widgets.
void SetTreeName(const char *treeName)
TGVerticalFrame * fV2
List view mother.
Bool_t HandleTimer(TTimer *timer) override
Execute action in response of a timer timing out.
TGLayoutHints * fMenuBarItemLayout
Bool_t fStopMapping
True if branch don't need remapping.
void SaveSource(const char *filename="", Option_t *option="") override
Save the GUI main frame widget in a C++ macro file.
void ExecuteCommand(const char *command, Bool_t fast=kFALSE)
TClass * IsA() const override
TTree * fTree
Selected tree.
TGCompositeFrame * fTreeHdr
Header for list tree.
TGLabel * fBarLbl3
Label of histogram name text entry.
void SetTree(TTree *tree)
TGDoubleVSlider * fSlider
Vertical slider to select processed tree entries;.
TTree * fMappedTree
Listed tree.
TGVerticalFrame * fV1
List tree mother.
void Message(const char *msg) override
Bool_t ProcessMessage(Longptr_t msg, Longptr_t parm1, Longptr_t parm2) override
const TGPicture * fPicDraw
Pictures for Draw buttons.
TGPictureButton * fBGLast
void MapTree(TTree *tree, TGListTreeItem *parent=nullptr, Bool_t listIt=kTRUE)
void ActivateButtons(Bool_t first, Bool_t previous, Bool_t next, Bool_t last)
TGPopupMenu * fOptionsMenu
TGLayoutHints * fMenuBarHelpLayout
Bool_t fVarDraw
True if an item is double-clicked.
TGPictureButton * fBGPrevious
TTVLVContainer * fLVContainer
Container for listview.
TGLabel * fLbl1
Label for list tree.
void SetGrOpt(const char *option)
TGPopupMenu * fOptionsGen
TGLayoutHints * fMenuBarLayout
TGLabel * fBarLbl1
Label of command text entry.
TGPictureButton * fREFR
REFRESH button ///<ia.
TGHorizontalFrame * fHf
Main horizontal frame.
const TGPicture * fPicZ
Pictures for Z expressions.
Bool_t fCounting
True if timer is counting.
TGHorizontalFrame * fBFrame
Button frame.
TBranch * fMappedBranch
Listed branch.
TTVSession * fSession
Current tree-viewer session.
Int_t fDimension
Histogram dimension.
TGCompositeFrame * fListHdr
Header for list view.
TGTextEntry * fBarListOut
Pree output event list name entry.
TGTextButton * fReset
clear expression's entries
TGPictureButton * fBGRecord
void SetScanFileName(const char *name="")
TGStatusBar * fStatusBar
Status bar.
TGTextButton * fSPIDER
SPIDER button.
A TTree represents a columnar dataset.
virtual void SetTimerInterval(Int_t msec=333)
virtual TBranch * GetBranch(const char *name)
Return pointer to the branch with the given name in this tree or its friends.
virtual TObjArray * GetListOfLeaves()
TVirtualTreePlayer * GetPlayer()
Load the TTreePlayer (if not already done).
virtual Long64_t Process(const char *filename, Option_t *option="", Long64_t nentries=kMaxEntries, Long64_t firstentry=0)
Process this tree executing the TSelector code in the specified filename.
virtual void SetEventList(TEventList *list)
This function transfroms the given TEventList into a TEntryList The new TEntryList is owned by the TT...
virtual Long64_t GetEntries() const
virtual Int_t MakeSelector(const char *selector=nullptr, Option_t *option="")
Generate skeleton selector class for this tree.
virtual Long64_t GetReadEntry() const
virtual TObjArray * GetListOfBranches()
virtual void Refresh()
Refresh contents of this tree and its branches from the current status on disk.
double min(double x, double y)
__device__ AFloat max(AFloat x, AFloat y)
UInt_t GetListOfMethods(TList &methods, TDirectory *dir=nullptr)
Short_t Abs(Short_t d)
Returns the absolute value of parameter Short_t d.