ROOT
Version master
v6.36
v6.34
v6.32
v6.30
v6.28
v6.26
v6.24
v6.22
v6.20
v6.18
v6.16
v6.14
v6.12
v6.10
v6.08
v6.06
Reference Guide
►
ROOT
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Modules
Pages
Loading...
Searching...
No Matches
tree120_ntuple.C File Reference
Tutorials
»
IO tutorials
»
TTree tutorials
Detailed Description
Simple tree analysis.
#include "
TCanvas.h
"
#include "
TFile.h
"
#include "
TNtuple.h
"
#include "
TProfile.h
"
#include "
TBenchmark.h
"
#include "
TStyle.h
"
#include "
TPaveText.h
"
#include "
TFrame.h
"
#include "
TF1.h
"
#include "
TROOT.h
"
#include "
TSystem.h
"
#include "
TInterpreter.h
"
void
tree120_ntuple
()
{
//just in case this script is executed multiple times
delete
gROOT
->GetListOfFiles()->FindObject(
"hsimple.root"
);
delete
gROOT
->GetListOfCanvases()->FindObject(
"c1"
);
gBenchmark
->
Start
(
"ntuple1"
);
//
// Connect ROOT histogram/ntuple demonstration file
// generated by example $ROOTSYS/tutorials/hsimple.C.
TString
dir =
gROOT
->GetTutorialDir();
dir.
Append
(
"/hsimple.C"
);
dir.
ReplaceAll
(
"/./"
,
"/"
);
if
(
gBenchmark
->
GetBench
(
"hsimple"
) < 0)
gInterpreter
->LoadMacro(dir.
Data
());
TFile
*
f1
= (
TFile
*)
gROOT
->ProcessLineFast(
"hsimple(1)"
);
if
(!
f1
)
return
;
//
// Create a canvas, with 4 pads
//
auto
c1
=
new
TCanvas
(
"c1"
,
"The Ntuple canvas"
,200,10,700,780);
auto
pad1
=
new
TPad
(
"pad1"
,
"This is pad1"
,0.02,0.52,0.48,0.98,21);
auto
pad2
=
new
TPad
(
"pad2"
,
"This is pad2"
,0.52,0.52,0.98,0.98,21);
auto
pad3
=
new
TPad
(
"pad3"
,
"This is pad3"
,0.02,0.02,0.48,0.48,21);
auto
pad4
=
new
TPad
(
"pad4"
,
"This is pad4"
,0.52,0.02,0.98,0.48,1);
pad1
->Draw();
pad2
->Draw();
pad3
->Draw();
pad4
->Draw();
//
// Change default style for the statistics box
gStyle
->
SetStatW
(0.30);
gStyle
->
SetStatH
(0.20);
//
// Display a function of one ntuple column imposing a condition
// on another column.
pad1
->cd();
pad1
->SetGrid();
pad1
->SetLogy();
auto
ntuple
=
f1
->Get<
TNtuple
>(
"ntuple"
);
ntuple
->SetLineColor(1);
ntuple
->SetFillStyle(1001);
ntuple
->SetFillColor(45);
ntuple
->Draw(
"3*px+2"
,
"px**2+py**2>1"
);
ntuple
->SetFillColor(38);
ntuple
->Draw(
"2*px+2"
,
"pz>2"
,
"same"
);
ntuple
->SetFillColor(5);
ntuple
->Draw(
"1.3*px+2"
,
"(px^2+py^2>4) && py>0"
,
"same"
);
pad1
->RedrawAxis();
//
// Display the profile of two columns
// The profile histogram produced is saved in the current directory with
// the name hprofs
pad2
->cd();
pad2
->SetGrid();
ntuple
->Draw(
"pz:px>>hprofs"
,
""
,
"goffprofs"
);
TProfile
*
hprofs
= (
TProfile
*)
gDirectory
->Get(
"hprofs"
);
hprofs
->SetMarkerColor(5);
hprofs
->SetMarkerSize(0.7);
hprofs
->SetMarkerStyle(21);
hprofs
->Fit(
"pol2"
);
// Get pointer to fitted function and modify its attributes
TF1
*
fpol2
=
hprofs
->GetFunction(
"pol2"
);
fpol2
->SetLineWidth(4);
fpol2
->SetLineColor(2);
//
// Display a scatter plot of two columns with a selection.
// Superimpose the result of another cut with a different marker color
pad3
->cd();
pad3
->GetFrame()->SetBorderSize(8);
ntuple
->SetMarkerColor(1);
ntuple
->Draw(
"py:px"
,
"pz>1"
);
ntuple
->SetMarkerColor(2);
ntuple
->Draw(
"py:px"
,
"pz<1"
,
"same"
);
//
// Display a 3-D scatter plot of 3 columns. Superimpose a different selection.
pad4
->cd();
ntuple
->Draw(
"pz:py:px"
,
"(pz<10 && pz>6)+(pz<4 && pz>3)"
);
ntuple
->SetMarkerColor(4);
ntuple
->Draw(
"pz:py:px"
,
"pz<6 && pz>4"
,
"same"
);
ntuple
->SetMarkerColor(5);
ntuple
->Draw(
"pz:py:px"
,
"pz<4 && pz>3"
,
"same"
);
auto
l4
=
new
TPaveText
(-0.9,0.5,0.9,0.95);
l4
->SetFillColor(42);
l4
->SetTextAlign(12);
l4
->AddText(
"You can interactively rotate this view in 2 ways:"
);
l4
->AddText(
" - With the RotateCube in clicking in this pad"
);
l4
->AddText(
" - Selecting View with x3d in the View menu"
);
l4
->Draw();
//
c1
->cd();
c1
->Update();
gStyle
->
SetStatColor
(19);
gBenchmark
->
Show
(
"ntuple1"
);
}
TBenchmark.h
gBenchmark
R__EXTERN TBenchmark * gBenchmark
Definition
TBenchmark.h:59
TCanvas.h
TRangeDynCast
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
Definition
TCollection.h:358
gDirectory
#define gDirectory
Definition
TDirectory.h:384
TF1.h
TFile.h
TFrame.h
TInterpreter.h
gInterpreter
#define gInterpreter
Definition
TInterpreter.h:571
TNtuple.h
TPaveText.h
TProfile.h
TROOT.h
gROOT
#define gROOT
Definition
TROOT.h:406
TStyle.h
gStyle
R__EXTERN TStyle * gStyle
Definition
TStyle.h:442
TSystem.h
ROOT::Detail::TRangeCast
Definition
TCollection.h:311
TBenchmark::GetBench
Int_t GetBench(const char *name) const
Returns index of Benchmark name.
Definition
TBenchmark.cxx:106
TBenchmark::Start
virtual void Start(const char *name)
Starts Benchmark with the specified name.
Definition
TBenchmark.cxx:172
TBenchmark::Show
virtual void Show(const char *name)
Stops Benchmark name and Prints results.
Definition
TBenchmark.cxx:155
TCanvas
The Canvas class.
Definition
TCanvas.h:23
TF1
1-Dim function class
Definition
TF1.h:234
TFile
A ROOT file is an on-disk file, usually with extension .root, that stores objects in a file-system-li...
Definition
TFile.h:131
TNtuple
A simple TTree restricted to a list of float variables only.
Definition
TNtuple.h:28
TPad
The most important graphics class in the ROOT system.
Definition
TPad.h:28
TPaveText
A Pave (see TPave) with text, lines or/and boxes inside.
Definition
TPaveText.h:21
TProfile
Profile Histogram.
Definition
TProfile.h:32
TString
Basic string class.
Definition
TString.h:139
TString::Data
const char * Data() const
Definition
TString.h:376
TString::ReplaceAll
TString & ReplaceAll(const TString &s1, const TString &s2)
Definition
TString.h:704
TString::Append
TString & Append(const char *cs)
Definition
TString.h:572
TStyle::SetStatH
void SetStatH(Float_t h=0.1)
Definition
TStyle.h:404
TStyle::SetStatColor
void SetStatColor(Color_t color=19)
Definition
TStyle.h:394
TStyle::SetStatW
void SetStatW(Float_t w=0.19)
Definition
TStyle.h:403
c1
return c1
Definition
legend1.C:41
f1
TF1 * f1
Definition
legend1.C:11
Author
Rene Brun
Definition in file
tree120_ntuple.C
.
tutorials
io
tree
tree120_ntuple.C
ROOT master - Reference Guide Generated on Wed Apr 30 2025 06:18:29 (GVA Time) using Doxygen 1.10.0