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