CbmRoot
|
#include <ReadoutConfig.h>
Public Member Functions | |
ReadoutConfig (const ReadoutSetup &pars) | |
Constructor. | |
virtual | ~ReadoutConfig () |
Destructor. | |
i32 | GetSystemTimeOffset () const |
System time offset for BMon. | |
std::vector< uint16_t > | GetEquipmentIds () |
Equipment in the configuration. | |
size_t | GetNumElinks (uint16_t equipmentId) |
Number of elinks of a component. | |
std::vector< uint32_t > | Map (uint16_t equipId, uint16_t elink) |
API: Mapping from component and elink to addresses per channel. | |
int32_t | GetElinkTimeOffset (uint16_t equipId, uint16_t elink) |
API: Mapping from component and elink to time offset. | |
Private Member Functions | |
void | Init (const ReadoutSetup &pars) |
Initialisation of readout map. | |
void | BuildChannelsUidMap (const ReadoutSetup &pars) |
void | BuildChannelsUidMapBmon (uint32_t &uCh, uint32_t uGbtx, const ReadoutSetup &pars) |
void | BuildChannelsUidMapBmon_2022 (uint32_t &uCh, uint32_t uGbtx, const ReadoutSetup &pars) |
Private Attributes | |
int32_t | fTimeOffset = 0 |
std::map< uint16_t, std::vector< int32_t > > | fTimeOffsetMap = {} |
std::map< uint16_t, std::vector< std::vector< uint32_t > > > | fReadoutMap = {} |
std::vector< int32_t > | fviRpcChUId = {} |
UID/address for each channel, build from type, side and module. | |
Definition at line 70 of file bmon/ReadoutConfig.h.
cbm::algo::bmon::ReadoutConfig::ReadoutConfig | ( | const ReadoutSetup & | pars | ) |
|
virtual |
Destructor.
Definition at line 26 of file bmon/ReadoutConfig.cxx.
|
private |
Special Treatment for the Bmon diamond
Special Treatment for the 2022 Bmon diamond, keep past behavior for older data!
Definition at line 122 of file bmon/ReadoutConfig.cxx.
References BuildChannelsUidMapBmon(), BuildChannelsUidMapBmon_2022(), cbm::algo::bmon::ReadoutSetup::crobs, fviRpcChUId, L_, cbm::algo::bmon::ReadoutSetup::nAsicsPerFeb, cbm::algo::bmon::ReadoutSetup::nChannelsPerAsic, cbm::algo::bmon::ReadoutSetup::NComponents(), cbm::algo::bmon::ReadoutSetup::NCrobs(), and cbm::algo::bmon::ReadoutSetup::nFebsPerComponent.
Referenced by Init().
|
private |
Mapping for the 2022 beamtime
Definition at line 221 of file bmon/ReadoutConfig.cxx.
References cbm::algo::bmon::ReadoutSetup::crobs, fviRpcChUId, CbmTofAddress::GetUniqueAddress(), L_, cbm::algo::bmon::ReadoutSetup::nChannelsPerAsic, and cbm::algo::bmon::ReadoutSetup::NElinksPerCrob().
Referenced by BuildChannelsUidMap().
|
private |
Mapping for the 2022 beamtime
1 channel per physical GET4, 2 links per physical GET4, 4 physical GET4s per GBTx, 1 GBTx per comp. 16 channels for one side, 16 for the other
Type hard-coded to allow different parameter values to separate 2022 Bmon and pre-2022 Bmon
Definition at line 244 of file bmon/ReadoutConfig.cxx.
References cbm::algo::bmon::ReadoutSetup::crobs, fviRpcChUId, CbmTofAddress::GetUniqueAddress(), L_, cbm::algo::bmon::ReadoutSetup::nChannelsPerAsic, and cbm::algo::bmon::ReadoutSetup::NElinksPerCrob().
Referenced by BuildChannelsUidMap().
int32_t cbm::algo::bmon::ReadoutConfig::GetElinkTimeOffset | ( | uint16_t | equipId, |
uint16_t | elink ) |
API: Mapping from component and elink to time offset.
equipId | Equipment identifier (component) |
elink | Elink number within component |
Definition at line 66 of file bmon/ReadoutConfig.cxx.
References fTimeOffsetMap.
Referenced by cbm::algo::bmon::Unpack::Unpack().
std::vector< uint16_t > cbm::algo::bmon::ReadoutConfig::GetEquipmentIds | ( | ) |
Equipment in the configuration.
Definition at line 30 of file bmon/ReadoutConfig.cxx.
References fReadoutMap.
Referenced by cbm::algo::bmon::Unpack::Unpack().
size_t cbm::algo::bmon::ReadoutConfig::GetNumElinks | ( | uint16_t | equipmentId | ) |
Number of elinks of a component.
Equipment | ID |
Definition at line 40 of file bmon/ReadoutConfig.cxx.
References fReadoutMap.
Referenced by cbm::algo::bmon::Unpack::Unpack().
|
inline |
System time offset for BMon.
Definition at line 82 of file bmon/ReadoutConfig.h.
References fTimeOffset.
Referenced by cbm::algo::bmon::Unpack::Unpack().
|
private |
Initialisation of readout map.
Definition at line 80 of file bmon/ReadoutConfig.cxx.
References BuildChannelsUidMap(), cbm::algo::bmon::ReadoutSetup::crobs, cbm::algo::bmon::ReadoutSetup::eqIds, fReadoutMap, fTimeOffset, fTimeOffsetMap, fviRpcChUId, cbm::algo::bmon::ReadoutSetup::nChannelsPerAsic, cbm::algo::bmon::ReadoutSetup::NChansPerComponent(), cbm::algo::bmon::ReadoutSetup::NComponents(), cbm::algo::bmon::ReadoutSetup::NCrobsPerComponent(), cbm::algo::bmon::ReadoutSetup::NElinksPerComponent(), cbm::algo::bmon::ReadoutSetup::NElinksPerCrob(), and cbm::algo::bmon::ReadoutSetup::timeOffset.
Referenced by ReadoutConfig().
std::vector< uint32_t > cbm::algo::bmon::ReadoutConfig::Map | ( | uint16_t | equipId, |
uint16_t | elink ) |
API: Mapping from component and elink to addresses per channel.
equipId | Equipment identifier (component) |
elink | Elink number within component |
Definition at line 51 of file bmon/ReadoutConfig.cxx.
References fReadoutMap.
Referenced by cbm::algo::bmon::Unpack::Unpack().
|
private |
Definition at line 119 of file bmon/ReadoutConfig.h.
Referenced by GetEquipmentIds(), GetNumElinks(), Init(), and Map().
|
private |
Definition at line 111 of file bmon/ReadoutConfig.h.
Referenced by GetSystemTimeOffset(), and Init().
|
private |
Definition at line 115 of file bmon/ReadoutConfig.h.
Referenced by GetElinkTimeOffset(), and Init().
|
private |
UID/address for each channel, build from type, side and module.
Definition at line 124 of file bmon/ReadoutConfig.h.
Referenced by BuildChannelsUidMap(), BuildChannelsUidMapBmon(), BuildChannelsUidMapBmon_2022(), and Init().