Show how NanoAOD files can be processed with RDataFrame.
This tutorial illustrates how NanoAOD files can be processed with ROOT dataframes. The NanoAOD-like input files are filled with 66 mio. events from CMS OpenData containing muon candidates part of 2012 dataset (DOI: 10.7483/OPENDATA.CMS.YLIC.86ZZ and DOI: 10.7483/OPENDATA.CMS.M5AD.Y3V3). The macro matches muon pairs and produces an histogram of the dimuon mass spectrum showing resonances up to the Z mass. Note that the bump at 30 GeV is not a resonance but a trigger effect.
More details about the dataset can be found on the CERN Open Data portal.
{
ROOT::RDataFrame df(
"Events",
"root://eospublic.cern.ch//eos/opendata/cms/derived-data/AOD2NanoAODOutreachTool/"
"Run2012BC_DoubleMuParked_Muons.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;m_{#mu#mu} (GeV);N_{Events}", 30000, 0.25, 300},
"Dimuon_mass");
auto c =
new TCanvas(
"c",
"", 800, 700);
c->SetLogx();
c->SetLogy();
h->GetXaxis()->SetTitleSize(0.04);
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}");
c->SaveAs(
"dimuon_spectrum.pdf");
}
{
}
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
R__EXTERN TStyle * gStyle
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 AddProgressBar(ROOT::RDF::RNode df)
Add ProgressBar to a ROOT::RDF::RNode.
void EnableImplicitMT(UInt_t numthreads=0)
Enable ROOT's implicit multi-threading for all objects and methods that provide an internal paralleli...
|> | [Elapsed time: 0:02m processing file: 1 / 1 processed evts: 1000 / 54231870 4.76e+02 evt/s 31:37:07h remaining time (per file being processed)]
|=================================================================> | [Elapsed time: 0:03m processing file: 1 / 1 processed evts: 6136000 / 55053565 3.07e+06 evt/s 0:15m remaining time (per file being processed)]
|=============================================================================================================================================> | [Elapsed time: 0:04m processing file: 1 / 1 processed evts: 13220000 / 55875260 4.41e+06 evt/s 0:09m remaining time (per file being processed)]
|================================================================================================================================================================================================================================> | [Elapsed time: 0:05m processing file: 1 / 1 processed evts: 21269000 / 56696955 5.32e+06 evt/s 0:06m remaining time (per file being processed)]
|============================================================================================================================================================================================================================================================================================================> | [Elapsed time: 0:06m processing file: 1 / 1 processed evts: 28870000 / 57518650 5.77e+06 evt/s 0:04m remaining time (per file being processed)]
|==========================================================================================================================================================================================================================================================================================================================================================================> | [Elapsed time: 0:07m processing file: 1 / 1 processed evts: 36285000 / 59983735 6.05e+06 evt/s 0:03m remaining time (per file being processed)]
|==============================================================================================================================================================================================================================================================================================================================================================================================================================================> | [Elapsed time: 0:08m processing file: 1 / 1 processed evts: 44185000 / 61540413 6.31e+06 evt/s 0:02m remaining time (per file being processed)]
|====================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================> | [Elapsed time: 0:09m processing file: 1 / 1 processed evts: 51352000 / 61540413 6.42e+06 evt/s 0:01m remaining time (per file being processed)]
|===================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================> | [Elapsed time: 0:10m processing file: 1 / 1 processed evts: 59405000 / 61540413 6.60e+06 evt/s 0:00m remaining time (per file being processed)]
[Total elapsed time: 0:10m processed files: 1 / 1 processed evts: 61540413 / 61540413]
Events with exactly two muons: pass=31104343 all=61540413 -- eff=50.54 % cumulative eff=50.54 %
Muons with opposite charge: pass=24067843 all=31104343 -- eff=77.38 % cumulative eff=39.11 %
- Date
- August 2018
- Author
- Stefan Wunsch (KIT, CERN)
Definition in file df102_NanoAODDimuonAnalysis.C.