Logo ROOT   6.16/01
Reference Guide
df003_profiles.py
Go to the documentation of this file.
1## \file
2## \ingroup tutorial_dataframe
3## \notebook -draw
4## This tutorial illustrates how to use TProfiles in combination with the
5## RDataFrame. See the documentation of TProfile and TProfile2D to better
6## understand the analogy of this code with the example one.
7##
8## \macro_code
9## \macro_image
10##
11## \date February 2017
12## \author Danilo Piparo
13
14import ROOT
15RDataFrame = ROOT.ROOT.RDataFrame
16
17# A simple helper function to fill a test tree: this makes the example
18# stand-alone.
19def fill_tree(treeName, fileName):
20 d = RDataFrame(25000)
21 d.Define("px", "gRandom->Gaus()")\
22 .Define("py", "gRandom->Gaus()")\
23 .Define("pz", "sqrt(px * px + py * py)")\
24 .Snapshot(treeName, fileName)
25
26
27
28# We prepare an input tree to run on
29fileName = "df003_profiles_py.root"
30treeName = "myTree"
31fill_tree(treeName, fileName)
32
33# We read the tree from the file and create a RDataFrame.
34columns = ROOT.vector('string')()
35columns.push_back("px")
36columns.push_back("py")
37columns.push_back("pz")
38d = RDataFrame(treeName, fileName, columns)
39
40# Create the profiles
41hprof1d = d.Profile1D(("hprof1d", "Profile of pz versus px", 64, -4, 4))
42hprof2d = d.Profile2D(("hprof2d", "Profile of pz versus px and py", 40, -4, 4, 40, -4, 4, 0, 20))
43
44# And Draw
45c1 = ROOT.TCanvas("c1", "Profile histogram example", 200, 10, 700, 500)
46hprof1d.Draw()
47c2 = ROOT.TCanvas("c2", "Profile2D histogram example", 200, 10, 700, 500)
48hprof2d.Draw()
49