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