Many simple data types are supported out-of-the-box. In general, if the data type parser encounters a data type it can’t deal with, it ignores it. If it crashes on an unsupported data type I would consider that a bug and would very much appreciate you getting in touch with a sample root file so I can fix the parser!

Simple Data Types

Most simple types are supported out of the box: int, unsigned int, float, double, bool, short, and unsigned short.

STL vector’s are supported, for example, vector<int> is supported (int can be any of the simple types listed above). Nesting should be supported to any level, though only tested 3 deep (e.g. vector<vector<int>>).

C-Style arrays are also supported, though the support is not pretty. For example, int[10] is supported. As are C-style arrays of variable length, like int[nTracks] and nTracks is a  leaf declared elsewhere.

Mixing C-Style arrays and vectors is not supported. Both vector<int[10]> and vector<int>[10] are unsupported.

Strings are not yet supported.


The only objects that are supported are ROOT objects. Any ROOT object that is known about by the ROOT.NET translation library is supported by LINQtoROOT, and translated correctly.

There is limited support for pre-compiled custom ROOT objects.

Modern versions  of ROOT do support self-described object layout in ROOT files. However, many recent versions of ROOT had a bug that prevented full discovery from working. So the LINQtoROOT code has been designed to discover the layout, the bug has prevented full testing. Use at your own risk! Smile

Last edited Jul 10, 2012 at 10:00 PM by gwatts, version 1


No comments yet.