Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
df003_profiles.C
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_image
11/// \macro_code
12///
13/// \date February 2017
14/// \author Danilo Piparo (CERN)
15
16// A simple helper function to fill a test tree: this makes the example
17// stand-alone.
18void fill_tree(const char *treeName, const char *fileName)
19{
20 ROOT::RDataFrame d(25000);
21 d.Define("px", []() { return gRandom->Gaus(); })
22 .Define("py", []() { return gRandom->Gaus(); })
23 .Define("pz", [](double px, double py) { return sqrt(px * px + py * py); }, {"px", "py"})
24 .Snapshot(treeName, fileName);
25}
26
27void df003_profiles()
28{
29 // We prepare an input tree to run on
30 auto fileName = "df003_profiles.root";
31 auto treeName = "myTree";
32 fill_tree(treeName, fileName);
33
34 // We read the tree from the file and create a RDataFrame.
35 ROOT::RDataFrame d(treeName, fileName, {"px", "py", "pz"});
36
37 // Create the profiles
38 auto hprof1d = d.Profile1D({"hprof1d", "Profile of py versus px", 64, -4, 4});
39 auto hprof2d = d.Profile2D({"hprof2d", "Profile of pz versus px and py", 40, -4, 4, 40, -4, 4, 0, 20});
40
41 // And Draw
42 auto c1 = new TCanvas("c1", "Profile histogram example", 200, 10, 700, 500);
43 hprof1d->DrawClone();
44 auto c2 = new TCanvas("c2", "Profile2D histogram example", 200, 10, 700, 500);
45 hprof2d->DrawClone("BOX");
46}
#define d(i)
Definition RSha256.hxx:102
R__EXTERN TRandom * gRandom
Definition TRandom.h:62
RResultPtr<::TProfile > Profile1D(const TProfile1DModel &model, std::string_view v1Name="", std::string_view v2Name="")
Fill and return a one-dimensional profile (lazy action).
ROOT's RDataFrame offers a high level interface for analyses of data stored in TTree,...
The Canvas class.
Definition TCanvas.h:23
virtual Double_t Gaus(Double_t mean=0, Double_t sigma=1)
Samples a random number from the standard Normal (Gaussian) Distribution with the given mean and sigm...
Definition TRandom.cxx:274
return c1
Definition legend1.C:41
return c2
Definition legend2.C:14
VecExpr< UnaryOp< Sqrt< T >, VecExpr< A, T, D >, T >, T, D > sqrt(const VecExpr< A, T, D > &rhs)