Skip to content

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).