Skip to content

HIPO4 Library

High Performance Output (HIPO) is a columnar data format and I/O library designed for storing and analyzing experimental physics data from the CLAS12 detector at Jefferson Lab.

Quick Example

#include "reader.h"

int main() {
    hipo::reader reader;
    reader.open("data.hipo");

    hipo::dictionary dict;
    reader.readDictionary(dict);

    hipo::bank particles(dict.getSchema("REC::Particle"));
    hipo::event event;

    while (reader.next()) {
        reader.read(event);
        event.read(particles);
        for (int row = 0; row < particles.getRows(); row++) {
            int   pid = particles.getInt("pid", row);
            float px  = particles.getFloat("px", row);
            float py  = particles.getFloat("py", row);
            float pz  = particles.getFloat("pz", row);
        }
    }
}

Library Info

Version 4.4.0
Language C++17
Build System Meson + Ninja
License US Government License (free for educational, research, non-profit)
Origin Jefferson National Laboratory (JLab)