Df 1 0 1_H 1 Analysis

Show how to express ROOT's standard H1 analysis with RDataFrame.

Author: Axel Naumann, Danilo Piparo (CERN)
This notebook tutorial was automatically generated with ROOTBOOK-izer from the macro found in the ROOT repository on Tuesday, June 15, 2021 at 07:23 AM.

In [1]:
auto Select = [](ROOT::RDataFrame &dataFrame) {
   using Farray_t = ROOT::VecOps::RVec<float>;
   using Iarray_t = ROOT::VecOps::RVec<int>;

   auto ret = dataFrame.Filter("TMath::Abs(md0_d - 1.8646) < 0.04")
                 .Filter("ptds_d > 2.5")
                 .Filter("TMath::Abs(etads_d) < 1.5")
                 .Filter([](int ik, int ipi, Iarray_t& nhitrp) { return nhitrp[ik - 1] * nhitrp[ipi - 1] > 1; },
                         {"ik", "ipi", "nhitrp"})
                 .Filter([](int ik, Farray_t& rstart, Farray_t& rend) { return rend[ik - 1] - rstart[ik - 1] > 22; },
                         {"ik", "rstart", "rend"})
                 .Filter([](int ipi, Farray_t& rstart, Farray_t& rend) { return rend[ipi - 1] - rstart[ipi - 1] > 22; },
                         {"ipi", "rstart", "rend"})
                 .Filter([](int ik, Farray_t& nlhk) { return nlhk[ik - 1] > 0.1; }, {"ik", "nlhk"})
                 .Filter([](int ipi, Farray_t& nlhpi) { return nlhpi[ipi - 1] > 0.1; }, {"ipi", "nlhpi"})
                 .Filter([](int ipis, Farray_t& nlhpi) { return nlhpi[ipis - 1] > 0.1; }, {"ipis", "nlhpi"})
                 .Filter("njets >= 1");

   return ret;
};

const Double_t dxbin = (0.17 - 0.13) / 40; // Bin-width

A helper function is created:

In [2]:
%%cpp -d
Double_t fdm5(Double_t *xx, Double_t *par)
{
   Double_t x = xx[0];
   if (x <= 0.13957)
      return 0;
   Double_t xp3 = (x - par[3]) * (x - par[3]);
   Double_t res =
      dxbin * (par[0] * pow(x - 0.13957, par[1]) + par[2] / 2.5066 / par[4] * exp(-xp3 / 2 / par[4] / par[4]));
   return res;
}

A helper function is created:

In [3]:
%%cpp -d
Double_t fdm2(Double_t *xx, Double_t *par)
{
   static const Double_t sigma = 0.0012;
   Double_t x = xx[0];
   if (x <= 0.13957)
      return 0;
   Double_t xp3 = (x - 0.1454) * (x - 0.1454);
   Double_t res = dxbin * (par[0] * pow(x - 0.13957, 0.25) + par[1] / 2.5066 / sigma * exp(-xp3 / 2 / sigma / sigma));
   return res;
}

A helper function is created:

In [4]:
%%cpp -d
void FitAndPlotHdmd(TH1 &hdmd)
{
   // create the canvas for the h1analysis fit
   gStyle->SetOptFit();
   auto c1 = new TCanvas("c1", "h1analysis analysis", 10, 10, 800, 600);
   hdmd.GetXaxis()->SetTitleOffset(1.4);

   // fit histogram hdmd with function f5 using the loglikelihood option
   auto f5 = new TF1("f5", fdm5, 0.139, 0.17, 5);
   f5->SetParameters(1000000, .25, 2000, .1454, .001);
   hdmd.Fit("f5", "lr");

   hdmd.DrawClone();
}

A helper function is created:

In [5]:
%%cpp -d
void FitAndPlotH2(TH2 &h2)
{
   // create the canvas for tau d0
   auto c2 = new TCanvas("c2", "tauD0", 100, 100, 800, 600);

   c2->SetGrid();
   c2->SetBottomMargin(0.15);

   // Project slices of 2-d histogram h2 along X , then fit each slice
   // with function f2 and make a histogram for each fit parameter
   // Note that the generated histograms are added to the list of objects
   // in the current directory.
   auto f2 = new TF1("f2", fdm2, 0.139, 0.17, 2);
   f2->SetParameters(10000, 10);
   h2.FitSlicesX(f2, 0, -1, 1, "qln");

   // See TH2::FitSlicesX documentation
   auto h2_1 = (TH1D *)gDirectory->Get("h2_1");
   h2_1->GetXaxis()->SetTitle("#tau [ps]");
   h2_1->SetMarkerStyle(21);
   h2_1->DrawClone();
   c2->Update();

   auto line = new TLine(0, 0, 0, c2->GetUymax());
   line->Draw();
}
In [6]:
TChain chain("h42");
chain.Add("root://eospublic.cern.ch//eos/root-eos/h1/dstarmb.root");
chain.Add("root://eospublic.cern.ch//eos/root-eos/h1/dstarp1a.root");
chain.Add("root://eospublic.cern.ch//eos/root-eos/h1/dstarp1b.root");
chain.Add("root://eospublic.cern.ch//eos/root-eos/h1/dstarp2.root");

ROOT::EnableImplicitMT(4);

ROOT::RDataFrame dataFrame(chain);
auto selected = Select(dataFrame);
Plugin No such file or directory loading sec.protocol libXrdSeckrb5-4.so

Note: the title syntax is ";<label x axis>;<label y axis>"</p> </div> </div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> <div class="prompt input_prompt">In [7]:</div> <div class="inner_cell"> <div class="input_area"> <div class=" highlight hl-c++"><pre><span></span><span class="k">auto</span> <span class="n">hdmdARP</span> <span class="o">=</span> <span class="n">selected</span><span class="p">.</span><span class="n">Histo1D</span><span class="p">({</span><span class="s">"hdmd"</span><span class="p">,</span> <span class="s">"Dm_d;m_{K#pi#pi} - m_{K#pi}[GeV/c^{2}]"</span><span class="p">,</span> <span class="mi">40</span><span class="p">,</span> <span class="mf">0.13</span><span class="p">,</span> <span class="mf">0.17</span><span class="p">},</span> <span class="s">"dm_d"</span><span class="p">);</span> <span class="k">auto</span> <span class="n">selectedAddedBranch</span> <span class="o">=</span> <span class="n">selected</span><span class="p">.</span><span class="n">Define</span><span class="p">(</span><span class="s">"h2_y"</span><span class="p">,</span> <span class="s">"rpd0_t / 0.029979f * 1.8646f / ptd0_d"</span><span class="p">);</span> <span class="k">auto</span> <span class="n">h2ARP</span> <span class="o">=</span> <span class="n">selectedAddedBranch</span><span class="p">.</span><span class="n">Histo2D</span><span class="p">({</span><span class="s">"h2"</span><span class="p">,</span> <span class="s">"ptD0 vs Dm_d"</span><span class="p">,</span> <span class="mi">30</span><span class="p">,</span> <span class="mf">0.135</span><span class="p">,</span> <span class="mf">0.165</span><span class="p">,</span> <span class="mi">30</span><span class="p">,</span> <span class="mi">-3</span><span class="p">,</span> <span class="mi">6</span><span class="p">},</span> <span class="s">"dm_d"</span><span class="p">,</span> <span class="s">"h2_y"</span><span class="p">);</span> <span class="n">FitAndPlotHdmd</span><span class="p">(</span><span class="o">*</span><span class="n">hdmdARP</span><span class="p">);</span> <span class="n">FitAndPlotH2</span><span class="p">(</span><span class="o">*</span><span class="n">h2ARP</span><span class="p">);</span> </pre></div> </div> </div> </div> <div class="output_wrapper"> <div class="output"> <div class="output_area"> <div class="prompt"></div> <div class="output_subarea output_stream output_stdout output_text"> <pre> FCN=10684 FROM MIGRAD STATUS=CONVERGED 209 CALLS 210 TOTAL EDM=1.2814e-06 STRATEGY= 1 ERROR MATRIX ACCURATE EXT PARAMETER STEP FIRST NO. NAME VALUE ERROR SIZE DERIVATIVE 1 p0 9.59915e+05 8.87690e+04 2.77938e+02 -4.39940e-08 2 p1 3.51114e-01 2.27896e-02 2.22437e-04 1.27888e-01 3 p2 1.18503e+03 5.92240e+01 3.18237e+00 1.06503e-05 4 p3 1.45569e-01 5.93973e-05 4.11621e-06 1.60533e+00 5 p4 1.24388e-03 6.60206e-05 3.72402e-06 -3.36599e+00 ERR DEF= 0.5 </pre> </div> </div> <div class="output_area"> <div class="prompt"></div> <div class="output_subarea output_stream output_stderr output_text"> <pre>Info in <TH2D::DoFitSlices>: Slice fit 0 (-3.300000,-3.000000) Info in <TH2D::DoFitSlices>: Slice fit 1 (-3.000000,-2.700000) Info in <TH2D::DoFitSlices>: Slice fit 2 (-2.700000,-2.400000) Info in <TH2D::DoFitSlices>: Slice fit 3 (-2.400000,-2.100000) Info in <TH2D::DoFitSlices>: Slice fit 4 (-2.100000,-1.800000) Info in <TH2D::DoFitSlices>: Slice fit 5 (-1.800000,-1.500000) Info in <TH2D::DoFitSlices>: Slice fit 6 (-1.500000,-1.200000) Info in <TH2D::DoFitSlices>: Slice fit 7 (-1.200000,-0.900000) Info in <TH2D::DoFitSlices>: Slice fit 8 (-0.900000,-0.600000) Info in <TH2D::DoFitSlices>: Slice fit 9 (-0.600000,-0.300000) Info in <TH2D::DoFitSlices>: Slice fit 10 (-0.300000,0.000000) Info in <TH2D::DoFitSlices>: Slice fit 11 (0.000000,0.300000) Info in <TH2D::DoFitSlices>: Slice fit 12 (0.300000,0.600000) Info in <TH2D::DoFitSlices>: Slice fit 13 (0.600000,0.900000) Info in <TH2D::DoFitSlices>: Slice fit 14 (0.900000,1.200000) Info in <TH2D::DoFitSlices>: Slice fit 15 (1.200000,1.500000) Info in <TH2D::DoFitSlices>: Slice fit 16 (1.500000,1.800000) Info in <TH2D::DoFitSlices>: Slice fit 17 (1.800000,2.100000) Info in <TH2D::DoFitSlices>: Slice fit 18 (2.100000,2.400000) Info in <TH2D::DoFitSlices>: Slice fit 19 (2.400000,2.700000) Info in <TH2D::DoFitSlices>: Slice fit 20 (2.700000,3.000000) Info in <TH2D::DoFitSlices>: Slice fit 21 (3.000000,3.300000) Info in <TH2D::DoFitSlices>: Slice fit 22 (3.300000,3.600000) Info in <TH2D::DoFitSlices>: Slice fit 23 (3.600000,3.900000) Info in <TH2D::DoFitSlices>: Slice fit 24 (3.900000,4.200000) Info in <TH2D::DoFitSlices>: Slice fit 25 (4.200000,4.500000) Info in <TH2D::DoFitSlices>: Slice fit 26 (4.500000,4.800000) Info in <TH2D::DoFitSlices>: Slice fit 27 (4.800000,5.100000) Info in <TH2D::DoFitSlices>: Slice fit 28 (5.100000,5.400000) Info in <TH2D::DoFitSlices>: Slice fit 29 (5.400000,5.700000) Info in <TH2D::DoFitSlices>: Slice fit 30 (5.700000,6.000000) Info in <TH2D::DoFitSlices>: Slice fit 31 (6.000000,6.300000) </pre> </div> </div> </div> </div> </div> <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt"> </div><div class="inner_cell"> <div class="text_cell_render border-box-sizing rendered_html"> <p>Draw all canvases</p> </div> </div> </div> <div class="cell border-box-sizing code_cell rendered"> <div class="input"> <div class="prompt input_prompt">In [8]:</div> <div class="inner_cell"> <div class="input_area"> <div class=" highlight hl-c++"><pre><span></span><span class="n">gROOT</span><span class="o">-></span><span class="n">GetListOfCanvases</span><span class="p">()</span><span class="o">-></span><span class="n">Draw</span><span class="p">()</span> </pre></div> </div> </div> </div> <div class="output_wrapper"> <div class="output"> <div class="output_area"> <div class="prompt"></div> <div class="output_png output_subarea "> <img src="data:image/png;base64,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 " > </div> </div> <div class="output_area"> <div class="prompt"></div> <div class="output_png output_subarea "> <img src="data:image/png;base64,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 " > </div> </div> </div> </div> </div> </div> </div> </div> <footer class="footer hidden-print"> <div class="container"> <div class="col-md-4"> <p> This website does not host notebooks, it only renders notebooks available on other websites. </p> </div> <div class="col-md-4"> <p> Delivered by <a href="http://www.fastly.com/">Fastly</a>, Rendered by <a href="https://ovhcloud.com">OVHcloud</a> </p> <p> nbviewer GitHub <a href="https://github.com/jupyter/nbviewer">repository</a>. </p> </div> <div class="col-md-4"> <p> nbviewer version: <a href="https://github.com/jupyter/nbviewer/commit/90c61ccda0e4ae08ce46511c45505b49663fb019"> 90c61cc </a> </p> <p> nbconvert version: <a href="https://github.com/jupyter/nbconvert/releases/tag/5.6.1"> 5.6.1 </a> </p> <p> Rendered <span class='date' data-date='Tue, 15 Jun 2021 13:25:41 UTC' title='Tue, 15 Jun 2021 13:25:41 UTC'>(Tue, 15 Jun 2021 13:25:41 UTC)</span> </p> </div> </div> </footer> <script src="/static/components/bootstrap/js/bootstrap.min.js"></script> <script src="/static/components/headroom.js/dist/headroom.min.js"></script> <script src="/static/components/headroom.js/dist/jQuery.headroom.min.js"></script> <script> $(function(){ $("#menubar").headroom({ tolerance: 5, offset: 205, classes: { initial: "animated", pinned: "slideInDown", unpinned: "slideOutUp" } })}); </script> <script> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-52617120-5', 'auto', {'storage': 'none'}); ga('set', 'anonymizeIp', true); ga('send', 'pageview'); </script> <script> require({ paths: { moment: "/static/components/moment/min/moment.min.js" } }, ["moment"], function(moment){ var date = $("footer .date"), m = moment(new Date(date.data('date'))), update = function(){ date.text(m.fromNow()); }; setInterval(update, 61*1000); update(); var w = $(window).scroll(function(event){ $("body").toggleClass("scrolled", w.scrollTop() > 0); }); }); </script> <!--NEW RELIC Stop Perf Measurement--> <!--NEW RELIC End--> </body> </html>