PODIO is a C++ toolkit for the creation of event data models (EDMs) with a fast and efficient I/O layer. It employs plain-old-data (POD) data structures wherever possible, while avoiding deep object-hierarchies and virtual inheritance. A lightweight layer of handle classes provides the necessary highlevel interface for the physicist. PODIO creates all EDM code from simple instructive YAML files, describing the actual EDM entities. Since its original development PODIO has been very actively used for Future Circular Collider (FCC) studies. In its original version, the underlying I/O was entirely based on the automatic streaming code generated with ROOT dictionaries. Recently two additional I/O implementations have been added. One is based on HDF5 and the other uses SIO, a simple binary I/O library provided by LCIO. We briefly introduce the main features of PODIO and then report on recent developments with a focus on performance comparisons between the available I/O implementations. We conclude with presenting recent activities on porting the well-established LCIO EDM to PODIO and the recent EDM4hep project.
[1]
Tony Johnson,et al.
LCIO - A persistency framework for linear collider simulation studies
,
2003
.
[2]
Gerardo Ganis,et al.
Towards a Turnkey Software Stack for HEP Experiments
,
2020
.
[3]
F. Gaede.
Marlin and LCCD—Software tools for the ILC
,
2006
.
[4]
W Lavrijsen.
Python in the Cling World
,
2015
.
[5]
Fons Rademakers,et al.
ROOT — An object oriented data analysis framework
,
1997
.
[6]
Frank Gaede,et al.
MarlinMT - parallelising the Marlin framework
,
2020
.