 
  
 
 This tutorial illustrates how PyROOT supports declaring C++ callables from Python callables making them, for example, usable with RDataFrame. 
The feature uses the numba Python package for just-in-time compilation of the Python callable and supports fundamental types and ROOT::RVec thereof.
 
import ROOT
 
@ROOT.Numba.Declare(['float', 'int'], 'float')
    return x**y
 
 
                         .Define('x_pow3', 'Numba::pypow(x, 3)')\
 
print(
'pypow({}, 3) = {}'.
format(data[
'x'], data[
'x_pow3']))
 
@ROOT.Numba.Declare(['RVecF', 'int'], 'RVecF')
    return x**y
 
ROOT::RVecF x = {0, 1, 2, 3};
cout << "pypowarray(" << x << ", 3) =  " << Numba::pypowarray(x, 3) << endl;
''')
 
                      .Define('x2', 'Numba::pypowarray(x, 2)')\
                      .Sum('x2') 
print(
'sum(pypowarray({ 1, 2, 3 }, 2)) = ', 
s.GetValue())
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t format
ROOT's RDataFrame offers a modern, high-level interface for analysis of data stored in TTree ,...
2^3 = 8
pypow([0. 1. 2. 3.], 3) = [ 0.  1.  8. 27.]
pypowarray({ 0, 1, 2, 3 }, 3) =  { 0, 1, 8, 27 }
sum(pypowarray({ 1, 2, 3 }, 2)) =  14.0
- Date
- March 2020 
- Author
- Stefan Wunsch 
Definition in file pyroot004_NumbaDeclare.py.