RDataFrame with arrays of fixed length arrays?

I’m trying to use RDataFrame to analyze an ntuple that has branches that are variable length arrays that hold fixed length arrays (specifically, 4 momenta and vertex position+time). The ntuple is Print()'ed below. I cannot figure out how to use Histo1D to book and fill with the equivalent of

t.Draw(“prodpart.mom[][2]”,“prodpart.pdg[]==211”) //pz for pi+

I’m trying lines like this:

hp3=df.Histo1D((“hp3”,“hp3”,20,20.0,20.0), “prodpart.mom[4]” )

which tells me:

In module ‘ROOTDataFrame’:
/home/kordosky/root/include/ROOT/RDF/RAction.hxx:117:96: error: cannot pass object of non-trivial type ‘ROOT::VecOps::RVec<std::array<double, 4> >’ through variadic method; call will abort at runtime [-Wnon-pod-varargs]

Is this ntuple analyzable by rdataframe or should I give up and use another tool?

ROOT Version: 6.40.02
Platform: linux
Compiler: gcc 15.2.0

root [2] hAinfoTree->Print()




*Tree    :hAinfoTree: g4hp info from h+A                                     *
*Entries :   156108 : Total =       264277233 bytes  File  Size =  180838101 *

   :          : Tree compression factor =   1.46                       *




*Branch  :hAinfo                                                             *
*Entries :   156108 : BranchElement (see below)                              *
............................................................................
*Br    0 :prodpart  : Int_t prodpart_                                        *
*Entries :   156108 : Total  Size=    1288814 bytes  File Size  =     434394 *
*Baskets :       61 : Basket Size=      32000 bytes  Compression=   2.89     *
............................................................................
*Br    1 :prodpart.pdg : Int_t pdg[prodpart_]                                *
*Entries :   156108 : Total  Size=   14094767 bytes  File Size  =    3093306 *
*Baskets :       88 : Basket Size=    1364992 bytes  Compression=   4.56     *
............................................................................
*Br    2 :prodpart.vtx[3] : Double_t vtx[prodpart_]                          *
*Entries :   156108 : Total  Size=   81435610 bytes  File Size  =   20019815 *
*Baskets :      439 : Basket Size=    7888384 bytes  Compression=   4.07     *
............................................................................
*Br    3 :prodpart.mom[4] : Double_t mom[prodpart_]                          *
*Entries :   156108 : Total  Size=  108371446 bytes  File Size  =  104006448 *
*Baskets :      576 : Basket Size=   25600000 bytes  Compression=   1.04     *
............................................................................

See “working with collections” for RDataFrame:

In short, use Define to make a collection of what you need and then fill the histo with that.