11#include <unordered_set>
30 std::vector<uint16_t> result;
32 result.push_back(entry.first);
50 std::vector<uint32_t> result;
53 if (elinkId < equipIter->second.size()) {
54 result = equipIter->second.at(elinkId);
64 std::vector<uint8_t> result;
65 auto equipIter =
fMaskMap.find(equipmentId);
67 auto elinkMap = equipIter->second;
68 auto elinkIter = elinkMap.find(elinkId);
69 if (elinkIter != elinkMap.end()) {
70 result = elinkIter->second;
83 fReadoutMap[comp.first].resize(comp.second.crobs.size());
84 for (
size_t crob_idx = 0; crob_idx < comp.second.crobs.size(); ++crob_idx) {
86 comp.second.crobs[crob_idx].sensorAddress.begin(),
87 comp.second.crobs[crob_idx].sensorAddress.end());
99 uint16_t eqId[
numComp] = {0x0000, 0x0001};
106 for (uint16_t comp = 0; comp <
numComp; comp++) {
107 uint16_t equipment = eqId[comp];
112 L_(debug) <<
" comp id " << comp <<
" equipment " << equipment <<
" crob " << crob <<
" elink " << elink
113 <<
" number of elinks per crob " << numElinksPerComp << std::endl;
#define CBM_YAML_INSTANTIATE(type)
Explicitly instantiate the Read and Dump functions for a type.
uint64_t fulFrameLengthNs
void InitHardcoded()
Initialisation of readout map from hardcoded valus, backup if YAML missing.
ReadoutConfig()
Default Constructor if no valid YAMl file available.
static constexpr uint16_t numElinksPerCrob
Number of elinks in each CROB ?
int32_t fTimeOffset
Variables.
std::vector< uint16_t > GetEquipmentIds()
Equipment in the configuration.
std::vector< uint8_t > MaskMap(uint16_t equipId, uint16_t elink)
API: Mapping from component and elink to channel mask flags.
std::vector< uint32_t > Map(uint16_t equipId, uint16_t elink)
API: Mapping from component and elink to addresses per channel.
void Init(const ReadoutSetup &)
Initialisation of readout map with hardcoded values.
size_t GetNumElinks(uint16_t equipmentId)
Number of elinks of a component.
static constexpr uint16_t numCrobPerComp
Number of CROBs possible per DPB.
static constexpr uint16_t numComp
Constants used for hardcoded defaults.
std::map< uint16_t, std::vector< std::vector< uint32_t > > > fReadoutMap
std::map< uint16_t, std::map< size_t, std::vector< uint8_t > > > fMaskMap
Readout setup / Hardware cabling for MVD Used to create the hardware mapping for the MVD unpacker.
std::map< uint16_t, Component > components