Supported file formats

ProMC file format

PROMC file format is used since 2014. It is primary used to to keep EVGEN records (truth level). The format uses Google protocol buffers. It uses varints for integer values (and, by design, for 4-momenta and vertex). It's efficient format for events with large number of particles. The file sizes for EVGEN files are typically 30% smaller than for traditional ROOT files (with fixed bytes for floats and integers). The file format is self-describing. Suported by C++, Java/Jython (read/write), CPython.

<fc #000080> Supported by: </fc> hs-toolkit and Jas4PP

ProIO file format

PROIO file format is used since 2018. It is more efficient file format than ProMC when the number of events in the files larger than 64k, and when number of particles in files is not large (<100). For the latter Monte Carlo records, the files created by ProIO are about 10-20% smaller in size than those from ProMC. ProIO files can be used with C++, Python, Java/Jython (only read), Go.

For pp collision events with large number of particles, ProMC and ProIO have same file sizes when ProIO use mc.proto files with VarintPackedParticles messages (arrays with 4-momenta converted to varints). See some tests in

<fc #000080> Supported by: </fc> hs-toolkit and Jas4PP

LCIO file format

LCIO files are used to keep simulated and reconstructed events for Geant4 simulation (and reconstruction) using “all-silicon” detector deigns.

<fc #000080> Supported by Jas4PP</fc>

ROOT file format

ROOT files are used to keep fast detector simulations from Delphes

LHE file format

LHE file formats are typically used for parton-level events from Madgraph.