The HepMC3 event record library for Monte Carlo event generators
In high-energy physics, Monte Carlo event generators (MCEGs) are used to simulate the interactions of high energy particles. MCEG event records store the information on the simulated particles and their relationships, and thus reflect the simulated evolution of physics phenomena in each collision event. We present the HepMC3 library, a next-generation framework for MCEG event record encoding and manipulation, which builds on the functionality of its widely-used predecessors to enable more sophisticated algorithms for event-record analysis. As compared to previous versions, the event record structure has been simplified, while adding the possibility to encode arbitrary information. The I/O functionality has been extended to support common input and output formats of various HEP MCEGs, including formats used in Fortran MCEGs, the formats established by the HepMC2 library, and binary formats such as ROOT; custom input or output handlers may also be used. HepMC3 is already supported by popular modern MCEGs and can replace the older HepMC versions in many others.