14 constexpr i64 SystemTimeOffset = 100;
15 constexpr u8 SystemVersion = 0x03;
20 for (
auto& equip : equipIdsRich) {
22 std::map<uint32_t, std::vector<double>> compMap =
fReadout.
Map(equip);
23 for (
auto const& val : compMap) {
24 uint32_t address = val.first;
25 par.fElinkParams[address].fToTshift = val.second;
26 par.fElinkParams[address].fTimeOffset = SystemTimeOffset;
28 auto algo = std::make_unique<UnpackMS>(par);
29 fAlgos[{equip, SystemVersion}] = std::move(algo);
33 L_(info) <<
"--- Configured " <<
fAlgos.size() <<
" unpacker algorithms for RICH.";
Result_t DoUnpack(const fles::Subsystem subsystem, const fles::Timeslice &ts) const
std::map< UnpackKey, std::unique_ptr< Unpack_t > > fAlgos
Provides the hardware-to-software address mapping for the CBM-RICH.
double Map(uint16_t equipmentId, uint32_t address, uint16_t chan)
API: Mapping from component, address and channel to tot shift.
std::vector< uint16_t > GetEquipmentIds()
Equipment in the configuration.
size_t GetNumElinks(uint16_t equipmentId)
Number of elinks of a component.
detail::UnpackBase::Result_t Result_t
Unpack(const ReadoutConfig &readout)
Result_t operator()(const fles::Timeslice &) const
Parameters required for the RICH unpacking (specific to one component)