HDF5 Event Files

## HDF5 Event File Format

HDF5 is a binary data format, organised similarly to a data base. Some modern matrix element generators support the output of parton-level events in the HDF5 format. The information is stored in the Les Houches Accord in close analogy to (default) ASCII Les Houches Event Files.

The HDF5 Les Houches event reader derives from the LHAup class and acts as a replacement of the Pythia Les Houches reader.

### Versions

As the LHAHDF5 format is relatively new, no clear version numbering standard has solidified. The reader attempts at guessing the format, but there is no guarantee that the correct version can be determined. For full control, the version can be set by

`word` LHAHDF5:version
LHAHDF5 version number of the event file in the format X.Y.Z.

The Pythia-internal version numbering scheme is:

#### LHAHDF5 0.1.0

- The event file contains an `index` group, in which the indices of the particles in a single event are stored. The indices refer to the `particle` group.
- No weight variations are supported. Event weights are a single floating point number per event stored in the `event` group.

#### LHAHDF5 0.2.0

- The `index` group is removed.
- No weight variations are supported. Event weights are a single floating point number per event stored in the `event` group.

#### LHAHDF5 1.0.0

- The `index` group is removed.
- Weight variations are supported. Event weights are stored in a, possibly one-dimensional, array per event in the `event` group.

#### LHAHDF5 2.0.0

- All groups are replaced by datasets.
- Both, calculations at LO and NLO are supported.
- A new dataset `version` is added, containing the version numbers X, Y, and Z as separate entries.

## HDF5 Event File Usage

A number of external libraries are required to read HDF5 LHA event files. The HDF5 library and development headers are required and can be configured with the `--with-hdf5` options. Finally, the HighFive header library is also required which can be configured with the `--with-highfive` options. Currently, version 2.7.1 is supported and can be downloaded as follows.

      curl -OL https://github.com/BlueBrain/HighFive/archive/tags/v2.7.1.zip \
      && unzip v2.7.1.zip && mv HighFive-tags-v2.7.1 highfive \
      && rm -r v2.7.1.zip