I tried to process a TTree with PROOF and I noticed that the Process() method is only available on TChain.
So I tried to cast my TTree into a TChain, but obviously PROOF don’t like my manual cast. (using TChain::AddFriend())
The only solution I found is to write my TTree into a root file and then reload it.
Do you have a better solution for that? Because it’s absolutely not convinient for me…
PROOF was thought for processing (large) datasets and the concept of in-memory tree was not considered.
So, in your case, having the tree in the file is the only way to go with PROOF. The alternative would be to stream the tree over the socket which maybe even more inefficient.
If you can work with the master, you may want to try TProcessorExecutor (in multiproc). It uses a fork model to create processes (so no need to stream the tree) and provides a process interface from a TTree. See tutorials/multicore/mp* and also
root.cern.ch/doc/master/classRO … 32b8aa2ed1
root.cern.ch/doc/master/classRO … 1246416c83