#!/usr/bin/env python # coding: utf-8 # # df003_profiles # Use TProfiles with RDataFrame. # # This tutorial illustrates how to use TProfiles in combination with the # RDataFrame. See the documentation of TProfile and TProfile2D to better # understand the analogy of this code with the example one. # # # # # **Author:** Danilo Piparo (CERN) # This notebook tutorial was automatically generated with ROOTBOOK-izer from the macro found in the ROOT repository on Wednesday, April 17, 2024 at 11:07 AM. # In[1]: import ROOT # A simple helper function to fill a test tree: this makes the example # stand-alone. # In[2]: def fill_tree(treeName, fileName): d = ROOT.RDataFrame(25000) d.Define("px", "gRandom->Gaus()")\ .Define("py", "gRandom->Gaus()")\ .Define("pz", "sqrt(px * px + py * py)")\ .Snapshot(treeName, fileName) # We prepare an input tree to run on # In[3]: fileName = "df003_profiles_py.root" treeName = "myTree" fill_tree(treeName, fileName) # We read the tree from the file and create a RDataFrame. # In[4]: d = ROOT.RDataFrame(treeName, fileName) # Create the profiles # In[5]: hprof1d = d.Profile1D(("hprof1d", "Profile of pz versus px", 64, -4, 4), "px", "py") hprof2d = d.Profile2D(("hprof2d", "Profile of pz versus px and py", 40, -4, 4, 40, -4, 4, 0, 20), "px", "py", "pz") # And Draw # In[6]: c1 = ROOT.TCanvas("c1", "Profile histogram example", 200, 10, 700, 500) hprof1d.Draw() c1.SaveAs("df003_c1.png") c2 = ROOT.TCanvas("c2", "Profile2D histogram example", 200, 10, 700, 500) hprof2d.Draw() c2.SaveAs("df003_c2.png") print("Saved figures to df003_*.png") # Draw all canvases # In[7]: from ROOT import gROOT gROOT.GetListOfCanvases().Draw()