20 int df014_CSVDataSource()
24 auto fileNameUrl =
"http://root.cern.ch/files/tutorials/df014_CsvDataSource_MuRun2010B.csv";
25 auto fileName =
"df014_CsvDataSource_MuRun2010B_cpp.csv";
26 if(gSystem->AccessPathName(fileName))
27 TFile::Cp(fileNameUrl, fileName);
28 auto tdf = ROOT::RDF::MakeCsvDataFrame(fileName);
35 tdf.Filter(
"Q1 * Q2 == -1")
36 .Define(
"m",
"sqrt(pow(E1 + E2, 2) - (pow(px1 + px2, 2) + pow(py1 + py2, 2) + pow(pz1 + pz2, 2)))");
40 filteredEvents.Histo1D({
"invMass",
"CMS Opendata: #mu#mu mass;#mu#mu mass [GeV];Events", 512, 2, 110},
"m");
42 auto c =
new TCanvas();
52 filteredEvents.Histo1D({
"Spectrum",
"Subset of CMS Run 2010B;#mu#mu mass [GeV];Events", 1024, 2, 110},
"m");
56 double jpsiLow = 2.95;
57 double jpsiHigh = 3.25;
58 auto jpsiCut = [jpsiLow, jpsiHigh](
double m) {
return m < jpsiHigh && m > jpsiLow; };
60 filteredEvents.Filter(jpsiCut, {
"m"})
61 .Histo1D({
"jpsi",
"Subset of CMS Run 2010B: J/#psi window;#mu#mu mass [GeV];Events", 128, jpsiLow, jpsiHigh},
65 auto dualCanvas =
new TCanvas(
"DualCanvas",
"DualCanvas", 800, 512);
66 dualCanvas->Divide(2, 1);
67 auto leftPad = dualCanvas->cd(1);
70 fullSpectrum->DrawClone(
"Hist");
72 jpsi->DrawClone(
"HistP");