Mini-Analysis on CMS OpenData with RDataFrame.
This tutorial illustrates that analyzing data with RDataFrame works the same for both TTree data and RNTuple data. The RNTuple data are converted from the Events tree in http://root.cern/files/NanoAOD_DoubleMuon_CMS2011OpenData.root Based on RDataFrame's df102_NanoAODDimuonAnalysis.C
#include <cassert>
#include <cmath>
#include <iostream>
#include <memory>
#include <string>
#include <vector>
#include <utility>
constexpr char const *
kNTupleFileName =
"http://root.cern/files/tutorials/ntpl004_dimuon_v1.root";
auto df_2mu = df.Filter(
"nMuon == 2",
"Events with exactly two muons");
auto df_os =
df_2mu.Filter(
"Muon_charge[0] != Muon_charge[1]",
"Muons with opposite charge");
auto h =
df_mass.Histo1D({
"Dimuon_mass",
"Dimuon_mass", 30000, 0.25, 300},
"Dimuon_mass");
auto c =
new TCanvas(
"c",
"", 800, 700);
c->SetLogx();
c->SetLogy();
h->GetXaxis()->SetTitle(
"m_{#mu#mu} (GeV)");
h->GetXaxis()->SetTitleSize(0.04);
h->GetYaxis()->SetTitle(
"N_{Events}");
h->GetYaxis()->SetTitleSize(0.04);
label.DrawLatex(0.175, 0.740,
"#eta");
label.DrawLatex(0.205, 0.775,
"#rho,#omega");
label.DrawLatex(0.270, 0.740,
"#phi");
label.DrawLatex(0.400, 0.800,
"J/#psi");
label.DrawLatex(0.415, 0.670,
"#psi'");
label.DrawLatex(0.485, 0.700,
"Y(1,2,3S)");
label.DrawLatex(0.755, 0.680,
"Z");
label.SetTextSize(0.040);
label.DrawLatex(0.100, 0.920,
"#bf{CMS Open Data}");
label.SetTextSize(0.030);
label.DrawLatex(0.630, 0.920,
"#sqrt{s} = 8 TeV, L_{int} = 11.6 fb^{-1}");
}
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
R__EXTERN TStyle * gStyle
The RDataSource implementation for RNTuple.
ROOT's RDataFrame offers a modern, high-level interface for analysis of data stored in TTree ,...
virtual void SetTextFont(Font_t tfont=62)
Set the text font.
To draw Mathematical Formula.
void SetOptStat(Int_t stat=1)
The type of information printed in the histogram statistics box can be selected via the parameter mod...
void EnableImplicitMT(UInt_t numthreads=0)
Enable ROOT's implicit multi-threading for all objects and methods that provide an internal paralleli...
- Date
- April 2019
- Author
- The ROOT Team
Definition in file ntpl004_dimuon.C.