Rich unpacker in cbm::algo
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).