next up previous contents index
Next: Memory size control Up: Memory usage and Previous: Memory usage and

The use of ZEBRA

Inside the HBOOK division the various data elements are stored as a ZEBRA data structure, one for each ``identifier''. In fact all identifiers (histogram or Ntuple numbers) are stored in an ordered array in a ZEBRA bank and access to the information associated with the HBOOK data is via the reference link at the same offset as the identifier in the data part of the bank. The data structure for a given element depends on its characteristics. In any case the top bank for a given element contains the title and other constants, while the data themselves are stored in another bank hanging from the previous one. Sometimes other banks are created, e.g. for automatic binning, for storing the limits of the elements of a Ntuple and, when a Ntuple is kept in memory, for containing the overflow   of the data, for projections, slices and   bands in the 2-dim case of for containing the errors   associated to a bin. This means that each HBOOK identifier has a whole set of attributes associated with its   existence, and when a histogram or Ntuple is written to backup store and later reread, the complete data structure, containing all characteristics and attributes are retrieved. Figure gif shows the ZEBRA data structure for a two-dimensional histogram. The precise layout of this bank should be of no concern to the user. It is only shown here as an example of the underlying ZEBRA structure of HBOOK. Note the use of the data part of the bank for storing attributes (e.g. title, number of bins, number of entries) as well as of the link part for storing the addresses to access the associated data points (scatter plot contents, X and Y projections, slices and bands and their associated errors).

The ZEBRA data structure used for two-dimensional histograms  


next up previous contents index
Next: Memory size control Up: Memory usage and Previous: Memory usage and

Janne Saarela
Tue May 16 09:09:27 METDST 1995