Root Trees and Relational Databases


I am trying to set up a system to create a relational database layer that sits on top of a collection of TTrees. THe relational database will keep track of all events generated in my experiment and generate a unique event identifier for each event. If I desire to load particular event data for a particular event ID, I can query the relational database, which will tell me which TTree structure stores the data I desire.

Has anyone implmented a system providing the described features. If not, do you know whether this can be done within root itself - for example using a ttree structure to keep track of the relational information.

Do I need an object database for this?

Any information would be greatly appreciated.

If I have not been clear about the requirements of this project, I can provide more information.

Thank you.

Best Regards,

Jon Lederman
XENON Experiment (Nevis Laboratories)

Hello Jon,

there is a working example in the ROOT tutorials which does exactly what you want.
Look at the files sqlcreatedb.C sqlfilldb.C sqlselect.C .


thanks, actually i was wondering whether anyone had experience interfacng root to an object database such as objectivity…

Note that in addition to the current SQL interfaces visible in the tutorials,we are working on a high level interface (class TTreeSQL)
that will allow to:
-view an existing SQL table as it was a ROOT TTree
-create a SQL table from a TTree
Delivery is expected with the June release
Concerning Objectivity, I suggest to go to Google and type
"root objectivity"

As you are probably aware the interest for Objectivity has gradually vanished to 0 and we are not planning to support this interface in thefuture.