[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: Handling ROOT files



Mark,

Just a few comment on your last message.
 

> I guess just like in the STAF case, where there is all this "behind the
> scenes" work to
> present an event to the user from the event id set that gets sent, a similar
> thing will need to
> be done with ROOT, though less complicated.  Once the user code has the
> event id list + file name, it could make a loop over the event id numbers
> and then for the appropriate number, reads the event information.

One further question si whether root files will contain multiple components,
i.e. each event id list may need a set of files, one for each component.

Also, in discussing this with Henrik we were wondering what is the format of
an event id in root.  Is it a 64 bit integer?


> It can be done efficiently if the ROOT tree contains two branches, one with
> the event id listing and a pointer to the event and the other with the event
> data. The "header" information and the event information are then contained
> in two separate buffers.  You can also make it so that the two parts are in
> separate files (split mode) but still one logical tree.
> 
> Looping over the event id listing will be quick, since it is stored
> contiguously on disk, either in several  large buffers contained in 1 file,
> or in a completely separate file.  Then dereferencing the pointer will give
> you direct access to the event object data.