Multi-thread and TTree

From: Antonio Bulgheroni <>
Date: Tue, 19 Dec 2006 14:38:12 +0100

Dear ROOTers,

        I have browsed the ROOT-Talk archive but I wasn't able to find an updated answer to my question. This is what I would like to do:

I have a TFile with a TTree containing lots of events and I want to process them in parallel. Since I just have to apply the same procedure to all events, I think that the easiest possible way to perform parallel computing is to split the amount of events among different threads each of which is doing the same things.

Here comes the first question. I've read somewhere that ROOT I/O is not (yet) thread safe. Does it mean that different threads cannot GetEntry from the same TTree on one TFile? Should I TMutex::Lock() and UnLock() each GetEntry() call?

During the event process, I would like to fill a bunch of histograms and an output TTree. Can it be done by different threads? Again, should I mute every Fill() call?

In the TThreadFactory abstract base class it is written that depending on which factory is active one gets the Posix or Win32 implementation of the TThread but I'm not able to find the TWin32Thread. Does it exist?

I'm using ROOT 5.15/01 on a Fedora Core 4 linux box with gcc 4.0.2

Thank you very much for your help,



Antonio Bulgheroni, PhD
Received on Tue Dec 19 2006 - 14:38:27 MET

This archive was generated by hypermail 2.2.0 : Mon Jan 01 2007 - 16:32:02 MET