Glossary¶
Bank : A typed, columnar table within an event. Defined by a schema with a unique (group, item) pair. Contains rows of data with named, typed columns.
Banklist
: A std::vector<bank> used for convenient multi-bank reading via reader.next(banklist).
Chain : A class for processing multiple HIPO files with sequential iteration or parallel processing.
Columnar Storage (SOA) : Structure-of-Arrays layout where each column's values are stored contiguously in memory. Efficient for accessing individual columns across many rows.
Composite : A special bank type (type=10) for ad-hoc structured data without a dictionary schema. Used for non-standard data layouts.
Compression Type : The algorithm used to compress record data. Currently: 0=none, 1=LZ4.
Dictionary : A collection of schema definitions, typically read from a HIPO file header. Maps bank names to their schemas.
Event : A single physics event (e.g., one particle collision). Contains multiple banks as concatenated structures in a flat byte buffer with a 16-byte header.
Event Tag : An integer label attached to an event for filtering. Tagged events are stored in separate records.
Group
: A 16-bit integer identifying a bank category (e.g., 300 for REC:: banks). Combined with item to uniquely identify a bank type.
HIPO : High Performance Output. The data format and library.
Item
: An 8-bit integer identifying a specific bank within a group. Combined with group to uniquely identify a bank type.
LZ4 : A fast lossless compression algorithm used for record compression. Prioritizes decompression speed over compression ratio.
Magic Number
: A byte sequence (0xc0da0100) used to detect file/record endianness and validate format integrity.
Record : A compressed block containing multiple events. The fundamental I/O unit. Default size: up to 100K events or 8 MB uncompressed.
Record Builder : Internal class that accumulates events into a buffer, then compresses and serializes them into a record for writing.
Reader Index : Internal class maintaining the mapping from event numbers to record positions. Built from the file trailer.
Row : A single entry in a bank (e.g., one particle in a particle bank).
Row List : A list of row indices in a bank, supporting filtering and iteration over subsets of rows.
Schema : The definition of a bank's column layout: column names, types, and byte offsets. Identified by name, group, and item.
Schema Entry : Metadata for a single column: name, type, type ID, size, and byte offset.
Structure : Base class for all binary data in HIPO. Has an 8-byte header (group, item, type, size) followed by a data payload.
Trailer
: An optional record at the end of a HIPO file containing the record position index. Enables random event access via gotoEvent().
Type : One of 6 supported data types: Byte (B), Short (S), Int (I), Float (F), Double (D), Long (L).