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