Skip to content

Improving unpacker

Antonello Pellecchia requested to merge feature/unpacker-zstd-multiple-files into main

This MR rewrites the VFAT3 unpacker for GEM raw data, which was still a primitive version built from an old GEM unpacker.

The unpacker is restructured to:

  • have better printout in verbose mode;
  • support the DigiEvent class already used for the APV data;
  • split the unpacking into a RawFileReader and a DigiFileWriter class;
  • be ready to integrate with ease (in a future MR) all reconstruction steps in a single executable;
  • allow unpacking multiple zstd-compressed files (one file per FED);
  • speed up the mapping using std::unordered_map instead of std::map in the ChamberMapping class.

immagine

  • use the smart pointers for raw event payloads instead of copies to speed up the code. Note: the speed improvement is only by about a factor 2, so it is best to compile with optimizations to speed up the unpacker. The other reconstruction steps are not affected much by the compiler optimizations.

immagine

Call graph after optimizing mapping and using smart pointers:

call_graph

Note: I do not plan to support any more the data formats before v302a.

Edited by Antonello Pellecchia

Merge request reports