CbmRoot
|
#include <ReadoutConfig.h>
Public Member Functions | |
ReadoutConfig () | |
Constructor. | |
virtual | ~ReadoutConfig () |
Destructor. | |
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. | |
std::vector< bool > | MaskMap (uint16_t equipId, uint16_t elink) |
API: Mapping from component and elink to channel mask flags. | |
Private Member Functions | |
void | Init () |
Initialisation of readout map. | |
uint32_t | CreateMuchAddress (uint32_t dpbidx, int32_t iFebId, uint32_t usChan) |
Maps component index, Fed Id and channel number to Much Address. | |
void | InitChannelToPadMaps () |
Init arrays which store positions of PADs. | |
int32_t | GetFebId (uint16_t) |
int8_t | GetPadXA (uint8_t febid, uint8_t channelid) |
int8_t | GetPadYA (uint8_t febid, uint8_t channelid) |
int8_t | GetPadXB (uint8_t febid, uint8_t channelid) |
int8_t | GetPadYB (uint8_t febid, uint8_t channelid) |
int8_t | GetPadXRpc (uint8_t febid, uint8_t channelid) |
int8_t | GetPadYRpc (uint8_t febid, uint8_t channelid) |
Private Attributes | |
std::map< uint16_t, std::vector< std::vector< uint32_t > > > | fReadoutMap = {} |
std::map< uint16_t, std::map< size_t, std::vector< bool > > > | fMaskMap = {} |
const uint16_t | numChanPerAsic = 128 |
Number of channels in each ASIC. | |
uint16_t | numFebsInGemA = 27 |
Variables. | |
uint16_t | numFebsInGemB = 27 |
Number of FEBs connected in GEM Module B. | |
uint16_t | numFebsInRpc = 9 |
Number of FEBs connected in RPC Module. | |
std::vector< int16_t > | fnFebsIdsArrayGemA |
Array to hold FEB IDs connected to GEM Module A. | |
std::vector< int16_t > | fnFebsIdsArrayGemB |
Array to hold FEB IDs connected to GEM Module B. | |
std::vector< int16_t > | fnFebsIdsArrayRpc |
Array to hold FEB IDs connected to RPC Module. | |
std::vector< int16_t > | fChannelsToPadXA |
Array which stores the corresponding x position of PAD of entire module A. | |
std::vector< int16_t > | fChannelsToPadYA |
Array which stores the corresponding y position of PAD of entire module A. | |
std::vector< int16_t > | fChannelsToPadXB |
Array which stores the corresponding x position of PAD of entire module B. | |
std::vector< int16_t > | fChannelsToPadYB |
Array which stores the corresponding y position of PAD of entire module B. | |
std::vector< int16_t > | fChannelsToPadXRpc |
Array which stores the corresponding x position of PAD of RPC module. | |
std::vector< int16_t > | fChannelsToPadYRpc |
Array which stores the corresponding y position of PAD of RPC module. | |
Static Private Attributes | |
static const uint16_t | numCrobPerComp = 1 |
Constants. | |
static const uint16_t | numElinksPerCrob = 42 |
Number of elinks in each CROB ? | |
static const uint16_t | numFebsPerCrob = 9 |
Number of FEBs connected to each CROB for mMuch 2019. | |
static const uint16_t | numAsicsPerFeb = 1 |
Number of ASICs connected in each FEB for MUCH. | |
static const uint16_t | numComp = 7 |
Total number of MUCH DPBs in system. | |
Definition at line 15 of file much/ReadoutConfig.h.
cbm::algo::much::ReadoutConfig::ReadoutConfig | ( | ) |
|
virtual |
Destructor.
Definition at line 22 of file much/ReadoutConfig.cxx.
|
private |
Maps component index, Fed Id and channel number to Much Address.
Below FebID is according to FEB Position in Module GEM A or Module GEM B (Carefully write MUCH Par file)
Switch to smx2.0/smx2.1 data-> fiFlag = 0 for 2.0 and fiFlag = 1 for 2.1
Definition at line 168 of file much/ReadoutConfig.cxx.
References CbmMuchAddress::GetAddress(), GetPadXA(), GetPadXB(), GetPadXRpc(), GetPadYA(), GetPadYB(), GetPadYRpc(), and CbmMuchAddress::SetElementId().
Referenced by Init().
std::vector< uint16_t > cbm::algo::much::ReadoutConfig::GetEquipmentIds | ( | ) |
Equipment in the configuration.
Definition at line 26 of file much/ReadoutConfig.cxx.
References fReadoutMap.
Referenced by cbm::algo::much::Unpack::Unpack().
|
private |
Definition at line 346 of file much/ReadoutConfig.cxx.
References fnFebsIdsArrayGemA, fnFebsIdsArrayGemB, fnFebsIdsArrayRpc, numFebsInGemA, numFebsInGemB, and numFebsInRpc.
Referenced by Init().
size_t cbm::algo::much::ReadoutConfig::GetNumElinks | ( | uint16_t | equipmentId | ) |
Number of elinks of a component.
Equipment | ID |
Definition at line 36 of file much/ReadoutConfig.cxx.
References fReadoutMap.
Referenced by cbm::algo::much::Unpack::Unpack().
|
private |
Definition at line 283 of file much/ReadoutConfig.cxx.
References fChannelsToPadXA, and numChanPerAsic.
Referenced by CreateMuchAddress().
|
private |
Definition at line 306 of file much/ReadoutConfig.cxx.
References fChannelsToPadXB, and numChanPerAsic.
Referenced by CreateMuchAddress().
|
private |
Definition at line 326 of file much/ReadoutConfig.cxx.
References fChannelsToPadXRpc, and numChanPerAsic.
Referenced by CreateMuchAddress().
|
private |
Definition at line 295 of file much/ReadoutConfig.cxx.
References fChannelsToPadYA, and numChanPerAsic.
Referenced by CreateMuchAddress().
|
private |
Definition at line 316 of file much/ReadoutConfig.cxx.
References fChannelsToPadYB, and numChanPerAsic.
Referenced by CreateMuchAddress().
|
private |
Definition at line 336 of file much/ReadoutConfig.cxx.
References fChannelsToPadYRpc, and numChanPerAsic.
Referenced by CreateMuchAddress().
|
private |
Initialisation of readout map.
Definition at line 76 of file much/ReadoutConfig.cxx.
References CreateMuchAddress(), fMaskMap, fnFebsIdsArrayGemA, fnFebsIdsArrayGemB, fnFebsIdsArrayRpc, fReadoutMap, GetFebId(), InitChannelToPadMaps(), numAsicsPerFeb, numChanPerAsic, numComp, numCrobPerComp, numElinksPerCrob, and numFebsPerCrob.
Referenced by ReadoutConfig().
|
private |
Init arrays which store positions of PADs.
Definition at line 363 of file much/ReadoutConfig.cxx.
References fChannelsToPadXA, fChannelsToPadXB, fChannelsToPadXRpc, fChannelsToPadYA, fChannelsToPadYB, and fChannelsToPadYRpc.
Referenced by Init().
std::vector< uint32_t > cbm::algo::much::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 46 of file much/ReadoutConfig.cxx.
References fReadoutMap.
Referenced by cbm::algo::much::Unpack::Unpack().
std::vector< bool > cbm::algo::much::ReadoutConfig::MaskMap | ( | uint16_t | equipId, |
uint16_t | elink ) |
API: Mapping from component and elink to channel mask flags.
equipId | Equipment identifier (component) |
elink | Elink number within component |
Definition at line 60 of file much/ReadoutConfig.cxx.
References fMaskMap.
Referenced by cbm::algo::much::Unpack::Unpack().
|
private |
Array which stores the corresponding x position of PAD of entire module A.
Definition at line 80 of file much/ReadoutConfig.h.
Referenced by GetPadXA(), and InitChannelToPadMaps().
|
private |
Array which stores the corresponding x position of PAD of entire module B.
Definition at line 84 of file much/ReadoutConfig.h.
Referenced by GetPadXB(), and InitChannelToPadMaps().
|
private |
Array which stores the corresponding x position of PAD of RPC module.
Definition at line 87 of file much/ReadoutConfig.h.
Referenced by GetPadXRpc(), and InitChannelToPadMaps().
|
private |
Array which stores the corresponding y position of PAD of entire module A.
Definition at line 82 of file much/ReadoutConfig.h.
Referenced by GetPadYA(), and InitChannelToPadMaps().
|
private |
Array which stores the corresponding y position of PAD of entire module B.
Definition at line 86 of file much/ReadoutConfig.h.
Referenced by GetPadYB(), and InitChannelToPadMaps().
|
private |
Array which stores the corresponding y position of PAD of RPC module.
Definition at line 88 of file much/ReadoutConfig.h.
Referenced by GetPadYRpc(), and InitChannelToPadMaps().
|
private |
Definition at line 56 of file much/ReadoutConfig.h.
|
private |
Array to hold FEB IDs connected to GEM Module A.
Definition at line 76 of file much/ReadoutConfig.h.
Referenced by GetFebId(), and Init().
|
private |
Array to hold FEB IDs connected to GEM Module B.
Definition at line 77 of file much/ReadoutConfig.h.
Referenced by GetFebId(), and Init().
|
private |
Array to hold FEB IDs connected to RPC Module.
Definition at line 78 of file much/ReadoutConfig.h.
Referenced by GetFebId(), and Init().
|
private |
Definition at line 52 of file much/ReadoutConfig.h.
Referenced by GetEquipmentIds(), GetNumElinks(), Init(), and Map().
|
staticprivate |
Number of ASICs connected in each FEB for MUCH.
Definition at line 68 of file much/ReadoutConfig.h.
Referenced by Init().
|
private |
Number of channels in each ASIC.
Definition at line 69 of file much/ReadoutConfig.h.
Referenced by GetPadXA(), GetPadXB(), GetPadXRpc(), GetPadYA(), GetPadYB(), GetPadYRpc(), and Init().
|
staticprivate |
Total number of MUCH DPBs in system.
Definition at line 70 of file much/ReadoutConfig.h.
Referenced by Init().
|
staticprivate |
Constants.
Number of CROBs possible per DPB
Definition at line 65 of file much/ReadoutConfig.h.
Referenced by Init().
|
staticprivate |
Number of elinks in each CROB ?
Definition at line 66 of file much/ReadoutConfig.h.
Referenced by Init().
|
private |
Variables.
Number of FEBs connected in GEM Module A
Definition at line 73 of file much/ReadoutConfig.h.
Referenced by GetFebId().
|
private |
Number of FEBs connected in GEM Module B.
Definition at line 74 of file much/ReadoutConfig.h.
Referenced by GetFebId().
|
private |
Number of FEBs connected in RPC Module.
Definition at line 75 of file much/ReadoutConfig.h.
Referenced by GetFebId().
|
staticprivate |
Number of FEBs connected to each CROB for mMuch 2019.
Definition at line 67 of file much/ReadoutConfig.h.
Referenced by Init().