Skip to content

Rich unpacker in cbm::algo

Dominik Smith requested to merge d.smith/cbmroot:RichUnpackAlgo into master

A new unpacker for RICH in cbm::algo. The current version works, but is marked as Draft as further cleanup is likely possible. For this, input from the RICH team is needed. In particular, possible simplifications of the time stamp treatment should be discussed.

The output was tested against the original unpacker CbmRichUnpackAlgo2022 on the first timeslice of 2391_node8_0_0008.tsa. Hardcoded parameters from cbmroot/macro/beamtime/mcbm2021/mRichPar.par are included in the configuration class and were used for the test. This might not be entirely appropriate for run 2391 (the default file is mRichPar_70.par) but should yield a valid comparison regardless. A more flexible treatment of parameters is left for future work.

This unpacker differs from all the others in that only a single equipment ID is used. Furthermore, the asic (TRB) addresses (for a single component) contained in detector messages are not drawn from a sequential set of values, as they are for the other detector systems. This implies that we cannot use std::vector to store configuration data for them, but must use std::map or something similar (I use std::map here). The RICH unpacker hence kind of stands out. I still chose to integrate this unpacker into CbmTaskUnpack in the same fashion as the others.

The logic of message processing is also rather complex, and somewhat resembles TRD/TRD2D. An auxiliary MicrosliceReader class is required, which is included here.

I have contacted C. Höhne to find out who is currently responsible for the unpackers. This person should be included in the discussion here.

@v.friese @p.-a.loizeau @f.uhlig

Edit: Includes commits of !1169 (merged).

Edited by Dominik Smith

Merge request reports