5#ifndef ALGO_DETECTORS_MVD_READOUTCONFIG_H
6#define ALGO_DETECTORS_MVD_READOUTCONFIG_H
32 yaml::Property(&
Component::crobs,
"crobs",
"eLink to address mapping per CROB", {}, YAML::Flow));
79 std::vector<uint32_t>
Map(uint16_t equipId, uint16_t elink);
86 std::vector<uint8_t>
MaskMap(uint16_t equipId, uint16_t elink);
109 std::map<uint16_t, std::vector<std::vector<uint32_t>>>
fReadoutMap = {};
113 std::map<uint16_t, std::map<size_t, std::vector<uint8_t>>>
fMaskMap = {};
uint64_t fulFrameLengthNs
void InitHardcoded()
Initialisation of readout map from hardcoded valus, backup if YAML missing.
int32_t GetSystemTimeOffset() const
System time offset for BMon.
ReadoutConfig()
Default Constructor if no valid YAMl file available.
static constexpr uint16_t numElinksPerCrob
Number of elinks in each CROB ?
int32_t fTimeOffset
Variables.
uint64_t GetFrameLength()
Frame length in ns.
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
CBM_YAML_PROPERTIES(yaml::Property(&Component::crobs, "crobs","eLink to address mapping per CROB", {}, YAML::Flow))
std::vector< Crob > crobs
CBM_YAML_PROPERTIES(yaml::Property(&Crob::sensorAddress, "sensorAddress", "Sensor address per eLink"))
std::vector< uint32_t > sensorAddress
Readout setup / Hardware cabling for MVD Used to create the hardware mapping for the MVD unpacker.
CBM_YAML_PROPERTIES(yaml::Property(&ReadoutSetup::timeOffset, "timeOffset", "Time offset in ns of the MVD data relative to the reference/trigger"), yaml::Property(&ReadoutSetup::frameLengthNs, "frameLengthNs", "Length of the Mimosis frame in ns"), yaml::Property(&ReadoutSetup::components, "components", "Components", {}, YAML::Flow))
std::map< uint16_t, Component > components