Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
tvdemo.C
Go to the documentation of this file.
1/// \file
2/// \ingroup tutorial_tree_legacy
3/// Macro generated by ROOT version3.00/00
4/// for tree "T" (Wed Feb 21 14:16:23 2001)
5///
6/// \macro_code
7///
8/// \author Rene Brun
9
10void open_session(void *p = 0) {
11//===This macro can be opened from a TreeViewer session after loading
12//===the corresponding tree
14 if (!treeview) treeview = new TTreeViewer();
15 TTree *tv_tree = (TTree*)gROOT->FindObject("T");
16 TFile *tv_file = (TFile*)gROOT->GetListOfFiles()->FindObject("Event.root");
17 if (!tv_tree) {
18 if (!tv_file) tv_file = new TFile("$ROOTSYS/test/Event.root");
19 if (tv_file) tv_tree = (TTree*)tv_file->Get("T");
20 if(!tv_tree) {
21 printf("Tree not found\n");
22 return;
23 }
24 }
25
26 treeview->SetTreeName("T");
27 treeview->SetNexpressions(10);
28// Set expressions on axis and cut
30// X expression
31 item = treeview->ExpressionItem(0);
32 item->SetExpression("fTemperature", "fTemperature");
33// Y expression
34 item = treeview->ExpressionItem(1);
35 item->SetExpression("", "-empty-");
36// Z expression
37 item = treeview->ExpressionItem(2);
38 item->SetExpression("", "-empty-");
39// Cut expression
40 item = treeview->ExpressionItem(3);
41 item->SetExpression("", "-empty-");
42// Scan list
43 item = treeview->ExpressionItem(4);
44 item->SetExpression("", "Scan box");
45// User defined expressions
46 item = treeview->ExpressionItem(5);
47 item->SetExpression("sqrt(fTracks.fPx*fTracks.fPx+fTracks.fPy*fTracks.fPy)", "~Pt", kFALSE);
48 item = treeview->ExpressionItem(6);
49 item->SetExpression("fTracks.fPx>0", "~Cut1", kTRUE);
50 item = treeview->ExpressionItem(7);
51 item->SetExpression("", "-empty-", kFALSE);
52 item = treeview->ExpressionItem(8);
53 item->SetExpression("", "-empty-", kFALSE);
54 item = treeview->ExpressionItem(9);
55 item->SetExpression("", "-empty-", kFALSE);
56 item = treeview->ExpressionItem(10);
57 item->SetExpression("", "-empty-", kFALSE);
58 item = treeview->ExpressionItem(11);
59 item->SetExpression("", "-empty-", kFALSE);
60 item = treeview->ExpressionItem(12);
61 item->SetExpression("", "-empty-", kFALSE);
62 item = treeview->ExpressionItem(13);
63 item->SetExpression("", "-empty-", kFALSE);
64 item = treeview->ExpressionItem(14);
65 item->SetExpression("", "-empty-", kFALSE);
66//--- session object
67 auto tv_session = new TTVSession(treeview);
68 treeview->SetSession(tv_session);
69//--- tree viewer record
70 auto tv_record = tv_session->AddRecord(kTRUE);
71 tv_session->SetRecordName("Temperature");
72 tv_record->fX = "fTemperature";
73 tv_record->fY = "";
74 tv_record->fZ = "";
75 tv_record->fCut = "";
76 tv_record->fXAlias = "fTemperature";
77 tv_record->fYAlias = "-empty-";
78 tv_record->fZAlias = "-empty-";
79 tv_record->fCutAlias = "-empty-";
80 tv_record->fOption = "lego1";
81 tv_record->fScanRedirected = kFALSE;
82 tv_record->fCutEnabled = kTRUE;
83//--- tree viewer record
84 tv_record = tv_session->AddRecord(kTRUE);
85 tv_session->SetRecordName("Py versus Px");
86 tv_record->fX = "fTracks.fPx";
87 tv_record->fY = "fTracks.fPy";
88 tv_record->fZ = "";
89 tv_record->fCut = "";
90 tv_record->fXAlias = "fTracks.fPx";
91 tv_record->fYAlias = "fTracks.fPy";
92 tv_record->fZAlias = "-empty-";
93 tv_record->fCutAlias = "-empty-";
94 tv_record->fOption = "lego";
95 tv_record->fScanRedirected = kFALSE;
96 tv_record->fCutEnabled = kTRUE;
97//--- tree viewer record
98 tv_record = tv_session->AddRecord(kTRUE);
99 tv_session->SetRecordName("Transverse momentum");
100 tv_record->fX = "sqrt(fTracks.fPx*fTracks.fPx+fTracks.fPy*fTracks.fPy)";
101 tv_record->fY = "";
102 tv_record->fZ = "";
103 tv_record->fCut = "fTracks.fPx>0";
104 tv_record->fXAlias = "~Pt";
105 tv_record->fYAlias = "-empty-";
106 tv_record->fZAlias = "-empty-";
107 tv_record->fCutAlias = "~Cut1";
108 tv_record->fOption = "";
109 tv_record->fScanRedirected = kFALSE;
110 tv_record->fCutEnabled = kTRUE;
111//--- tree viewer record
112 tv_record = tv_session->AddRecord(kTRUE);
113 tv_session->SetRecordName("Surface plot of Py vs. Px");
114 tv_record->fX = "fTracks.fPx";
115 tv_record->fY = "fTracks.fPy";
116 tv_record->fZ = "";
117 tv_record->fCut = "";
118 tv_record->fXAlias = "fTracks.fPx";
119 tv_record->fYAlias = "fTracks.fPy";
120 tv_record->fZAlias = "-empty-";
121 tv_record->fCutAlias = "-empty-";
122 tv_record->fOption = "SURF";
123 tv_record->fScanRedirected = kFALSE;
124 tv_record->fCutEnabled = kTRUE;
125//--- Show first record
126 tv_session->Show(tv_session->First());
127}
128
129void tvdemo() {
130 printf("This demo show how to handle TTreeViewer sessions\n");
131 printf("Compile class Event from test directory before running this\n");
132 printf("- use arrow buttons from bottom to cycle records ...\n");
133 printf("- make new expressions and drag them to X, Y, Z or Cut items ...\n");
134 printf("- use the Draw button to check your current selection ...\n");
135 printf("- click the record button once you are happy with this ...\n");
136 printf("- open the TV context menu (right-click on the right panel)...\n");
137 printf(" Use : RemoveLastRecord() - to remove last record :-)\n");
138 printf(" SetRecordName() - to name current record\n");
139 printf(" UpdateRecord() - if you want to change a record from the list\n");
140 printf(" with your new X, Y, Z, Cut configuration.\n");
141 printf(" Best luck !\n");
142
143 open_session();
144}
constexpr Bool_t kFALSE
Definition RtypesCore.h:109
constexpr Bool_t kTRUE
Definition RtypesCore.h:108
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
winID h TVirtualViewer3D TVirtualGLPainter p
#define gROOT
Definition TROOT.h:417
A file, usually with extension .root, that stores data and code in the form of serialized objects in ...
Definition TFile.h:130
This class represent entries that goes into the TreeViewer listview container.
I/O classes for TreeViewer session handling.
Definition TTVSession.h:71
A graphic user interface designed to handle ROOT trees and to take advantage of TTree class features.
Definition TTreeViewer.h:54
A TTree represents a columnar dataset.
Definition TTree.h:89