Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
simple.cxx
Go to the documentation of this file.
1 /// \file
2 /// \ingroup tutorial_v7
3 ///
4 /// \macro_code
5 ///
6 /// \date 2015-03-22
7 /// \warning This is part of the ROOT 7 prototype! It will change without notice. It might trigger earthquakes. Feedback
8 /// is welcome!
9 /// \author Axel Naumann <axel@cern.ch>
10 
11 /*************************************************************************
12  * Copyright (C) 1995-2015, Rene Brun and Fons Rademakers. *
13  * All rights reserved. *
14  * *
15  * For the licensing terms see $ROOTSYS/LICENSE. *
16  * For the list of contributors see $ROOTSYS/README/CREDITS. *
17  *************************************************************************/
18 
19 #include "ROOT/RHist.hxx"
20 #include "ROOT/RFit.hxx"
21 #include "ROOT/RFile.hxx"
22 
23 void simple()
24 {
25  using namespace ROOT::Experimental;
26 
27  // Create a 2D histogram with an X axis with equidistant bins, and a y axis
28  // with irregular binning.
29  RAxisConfig xAxis(100, 0., 1.);
30  RAxisConfig yAxis({0., 1., 2., 3., 10.});
31  RH2D histFromVars(xAxis, yAxis);
32 
33  // Or the short in-place version:
34  // Create a 2D histogram with an X axis with equidistant bins, and a y axis
35  // with irregular binning.
36  RH2D hist({100, 0., 1.}, {{0., 1., 2., 3., 10.}});
37 
38  // Fill weight 1. at the coordinate 0.01, 1.02.
39  hist.Fill({0.01, 1.02});
40 
41  // Fit the histogram.
42  RFunction<2> func([](const std::array<double, 2> &x, const std::span<const double> par) {
43  return par[0] * x[0] * x[0] + (par[1] - x[1]) * x[1];
44  });
45 
46  auto fitResult = FitTo(hist, func, {{0., 1.}});
47 
48  auto file = RFile::Recreate("hist.root");
49  file->Write("TheHist", hist);
50 }