using namespace ROOT::RDF; auto fileNameUrl = "http://root.cern/files/tutorials/df014_CsvDataSource_MuRun2010B.csv"; auto fileName = "df015_CsvDataSource_MuRun2010B.csv"; if(gSystem->AccessPathName(fileName)) TFile::Cp(fileNameUrl, fileName); auto csv_rdf = FromCSV(fileName); std::string px1Name = "px1"; auto px1 = csv_rdf.Take(px1Name); std::string py1Name = "py1"; auto py1 = csv_rdf.Take(py1Name); auto df = MakeLazyDataFrame(std::make_pair(px1Name, px1), std::make_pair(py1Name, py1)); auto ptFormula = [](double px, double py) { return sqrt(px * px + py * py); }; auto pt_h = df.Define("pt", ptFormula, {"px1", "py1"}) .Histo1D({"pt", "Muon p_{T};p_{T} [GeV/c];", 128, 0, 128}, "pt"); auto can = new TCanvas(); can->SetLogy(); pt_h->DrawCopy(); return 0; gROOT->GetListOfCanvases()->Draw()