15 coordDefineCode =
'''ROOT::VecOps::RVec<double> {0}(len); 16 std::transform({0}.begin(), {0}.end(), {0}.begin(), [](double){{return gRandom->Uniform(-1.0, 1.0);}}); 18 d = tdf.Define(
"len",
"gRandom->Uniform(0, 16)")\
19 .Define(
"x", coordDefineCode.format(
"x"))\
20 .Define(
"y", coordDefineCode.format(
"y"))
26 d1 = d.Define(
"r", "sqrt(x*x + y*y)")
31 ring_h = d1.Define(
"rInFig",
"r > .4 && r < .8 && x*y < 0")\
32 .Define(
"yFig",
"y[rInFig]")\
33 .Define(
"xFig",
"x[rInFig]")\
34 .Histo2D((
"fig",
"Two quarters of a ring", 64, -1, 1, 64, -1, 1),
"xFig",
"yFig")
36 cring = ROOT.TCanvas()
38 cring.Print(
"df016_vecOps_py.png")
ROOT's RDataFrame offers a high level interface for analyses of data stored in TTrees, CSV's and other data formats.