14 constexpr u8 SystemVersion = 0x00;
18 for (
auto& equip : equipIdsTof) {
21 for (
size_t elink = 0; elink < numElinks; elink++) {
25 par.fElinkParams.push_back(elinkPar);
27 auto algo = std::make_unique<UnpackMS>(std::move(par));
28 fAlgos[{equip, SystemVersion}] = std::move(algo);
29 L_(debug) <<
"--- Configured equipment " << equip <<
" with " << numElinks <<
" elinks";
32 L_(info) <<
"--- Configured " <<
fAlgos.size() <<
" unpacker algorithms for TOF.";
Result_t DoUnpack(const fles::Subsystem subsystem, const fles::Timeslice &ts) const
std::map< UnpackKey, std::unique_ptr< Unpack_t > > fAlgos
int32_t GetElinkTimeOffset(uint16_t equipId, uint16_t elink)
API: Mapping from component and elink to time offset.
std::vector< uint32_t > Map(uint16_t equipId, uint16_t elink)
API: Mapping from component and elink to addresses per channel.
std::vector< uint16_t > GetEquipmentIds()
Equipment in the configuration.
i32 GetSystemTimeOffset() const
System time offset for TOF.
size_t GetNumElinks(uint16_t equipmentId)
Number of elinks of a component.
Unpack(const ReadoutConfig &readout)
detail::UnpackBase::Result_t Result_t
Result_t operator()(const fles::Timeslice &) const
TOF Unpacking parameters for one eLink / ASIC.
int32_t fTimeOffset
Time calibration parameter.
std::vector< uint32_t > fChannelUId
CbmTofAddress for different channels.
Parameters required for the STS unpacking (specific to one component)