14 constexpr u8 SystemVersion = 0x01;
15 i32 SystemTimeOffset =
fReadout.GetSystemTimeOffset();
18 auto equipIdsMvd =
fReadout.GetEquipmentIds();
19 L_(info) <<
" mvd equipment ids " << equipIdsMvd.size();
20 for (
auto& equip : equipIdsMvd) {
22 const size_t numElinks =
fReadout.GetNumElinks(equip);
23 for (
size_t elink = 0; elink < numElinks; elink++) {
29 par.fElinkParams.push_back(elinkPar);
31 auto algo = std::make_unique<UnpackMS>(par,
fReadout.GetFrameLength());
32 fAlgos[{equip, SystemVersion}] = std::move(
algo);
33 L_(debug) <<
"--- Configured equipment " << equip <<
" with " << numElinks <<
" elinks";
35 L_(info) <<
"--- Configured " <<
fAlgos.size() <<
" unpacker algorithms for MVD.";
Result_t DoUnpack(const fles::Subsystem subsystem, const fles::Timeslice &ts) const
std::map< UnpackKey, std::unique_ptr< Unpack_t > > fAlgos
Unpack(const ReadoutConfig &readout)
detail::UnpackBase::Result_t Result_t
Result_t operator()(const fles::Timeslice &) const
MVD Unpacking parameters for one eLink / ASIC.
std::vector< uint8_t > fPixX
col masking flags
std::vector< uint32_t > fStation
CbmMuchAddress for different channels.
uint64_t fTimeOffset
Time calibration parameter.
std::vector< uint8_t > fPixY
row masking flags
Parameters required for the MVD unpacking (specific to one component)