28void df040_RResultPtr_lifetimeManagement()
32 std::mt19937 generator{1};
33 std::normal_distribution gaus{5., 1.};
34 auto rdf = bare_rdf.Define(
"x", [&]() ->
double {
35 return gaus(generator);
44 THStack histStack1(
"histStack1",
"Stacking result histograms (wrong way)");
45 for(
int i=0; i<2; i++) {
46 auto ht = rdf.Histo1D(histoModel, {
"x"});
47 ht->SetFillColor(
kBlue+i);
48 histStack1.Add(ht.GetPtr());
50 c1 =
new TCanvas(
"c1",
"THStack without obtaining a shared_ptr (wrong)");
51 histStack1.DrawClone();
55 THStack histStack2(
"histStack2",
"THStack with shared_ptr (correct way)");
56 std::vector<std::shared_ptr<TH1D>> results;
57 for(
int i=0; i<2; i++) {
58 auto ht = rdf.Histo1D(histoModel, {
"x"});
59 ht->SetFillColor(
kBlue+2*i);
60 histStack2.Add(ht.GetPtr());
61 results.push_back(ht.GetSharedPtr());
63 c2 =
new TCanvas(
"c2",
"Drawing with obtaining a shared_ptr (right)");
64 histStack2.DrawClone();
ROOT's RDataFrame offers a modern, high-level interface for analysis of data stored in TTree ,...
A struct which stores some basic parameters of a TH1D.