Recipes¶
Practical, copy-paste patterns for the things you actually want to do with HIPO files. Each recipe assumes you've gone through the Quick Start and have a working build.
Pages¶
- Reading files — basic event loop, the preferred banklist pattern,
the
hipoeventfilerange-based iterator, random access viagotoEvent(), tag filtering, column-index caching, listing available banks, and handling missing banks. - Writing files — basic write loop, multiple banks per event, user config metadata, the copy/filter pattern, and a generic schema-driven bank filler.
- Row filtering — three filter styles (lambda, expression string,
cached
Parser), manual row lists, full row lists, and cross-bank row linking viagetRowListLinked(). - Parallel processing — using the
chainclass for record-level parallelism across many files, filtered processing, percentage sampling, sequential iteration, thread-safety patterns, and statistics. - Integration — calling HIPO from ROOT
RDataFrame, the Pythonhipopywrapper, Julia, Fortran, and linking viapkg-config/ CMake / Make.
When to use which¶
| Goal | Start with |
|---|---|
| Read one bank from one file | reading.md — Basic Event Loop |
| Read several banks | reading.md — Banklist Pattern |
| Process many files quickly | parallel.md |
| Skim only events that pass a row predicate | filtering.md |
| Make a smaller derived file | writing.md — Copy/Filter Pattern |
| Use HIPO data in ROOT or Python | integration.md |