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 — the sequential
chain(the default), the lower-levelreaderand its banklist pattern, thehipoeventfilerange-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 events from one or many files | reading.md — Sequential Chain |
| Fine-grained single-file reading | reading.md — Low-Level Reader |
| Process many files across all cores | 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 |