ProMC

From HandWiki

ProMC[1] is a library for event_generators or any structural data in very compact binary form. The main features are:

  • Streams data into a binary form and dynamically writes less interesting numeric information with reduced precision compared to more interesting records. Such content-dependent "compression" can substantially reduce file size.
  • Fast. No CPU overhead due to decompression.
  • Self-describing data format based on a template approach to encode complicated data structures. One can generate C++, Java and Python analysis code for reading and writing data from the ProMC file itself.
  • Multiplatform. Data records can be written and read in C++, Java and Python.

ProMC ("ProtocolBuffers" MC) is based on Google's Protocol Buffers, language-neutral, platform-neutral and extensible mechanism for serializing structured data. It uses "varints" as a way to store and compress integers using variable number of bytes. Smaller numbers take a smaller number of bytes. This means that low energetic particles (jets, clusters, cells, tracks etc.) can be represented by smaller number of bytes, since values needed to represent such particles are smaller compared to high-energetic particles or other objects.

Web page: ProMC file format

See also: ProIO



  1. S.V.Chekanov, E.Maya, K.Strand, P. Van Gemmeren, Comm. Phys. Comm. Volume 185, Issue 10, October 2014, Pages 2629-2635