Improving unpacker
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 aDigiFileWriter
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 ofstd::map
in theChamberMapping
class.
- 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.
Call graph after optimizing mapping and using smart pointers:
Note: I do not plan to support any more the data formats before v302a
.