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