Sean Kelly wrote:
>
>
> Hi Rooters,
>
> I want to write a large ROOT file consisting of a number of Event
> objects stored in a super branch of a TTree object. If I make a single
> call to hfile->Write() outside the event loop I run out of memmory. My
> question, how do I flush the output buffers every 1000 events or so ?
>
> thanks
>
> Sean Kelly
Hi Sean,
You should not run out of memory, except if:
1- You have created the TTree before opening the Root file in write
mode.
2- You have a large number of branches and you have specified
a large block size.
You can flush the output buffers with a given frequency using;
1- TTree::SetAutoSave(Int_t autosave). When autosave bytes have been
written to the buffers by TTree::Fill, the buffers are
automatically
flushed to disk. By default Root will autosave every 200 Mbytes.
This function should be called only once after the TTree creation.
2- TTree::AutoSave(). You can call yourself this function at regular
intervals (every 1000 events).
Rene Brun
This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:43:29 MET