CbmRoot
Loading...
Searching...
No Matches
cbm::algo::much::ReadoutConfig Class Reference

#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.
 

Detailed Description

Definition at line 15 of file much/ReadoutConfig.h.

Constructor & Destructor Documentation

◆ ReadoutConfig()

cbm::algo::much::ReadoutConfig::ReadoutConfig ( )

Constructor.

Definition at line 18 of file much/ReadoutConfig.cxx.

References Init().

◆ ~ReadoutConfig()

cbm::algo::much::ReadoutConfig::~ReadoutConfig ( )
virtual

Destructor.

Definition at line 22 of file much/ReadoutConfig.cxx.

Member Function Documentation

◆ CreateMuchAddress()

uint32_t cbm::algo::much::ReadoutConfig::CreateMuchAddress ( uint32_t dpbidx,
int32_t iFebId,
uint32_t usChan )
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().

◆ GetEquipmentIds()

std::vector< uint16_t > cbm::algo::much::ReadoutConfig::GetEquipmentIds ( )

Equipment in the configuration.

Returns
Vector of equipment IDs

Definition at line 26 of file much/ReadoutConfig.cxx.

References fReadoutMap.

Referenced by cbm::algo::much::Unpack::Unpack().

◆ GetFebId()

int32_t cbm::algo::much::ReadoutConfig::GetFebId ( uint16_t uAsicIdx)
private

◆ GetNumElinks()

size_t cbm::algo::much::ReadoutConfig::GetNumElinks ( uint16_t equipmentId)

Number of elinks of a component.

Parameters
EquipmentID
Returns
Number of elinks

Definition at line 36 of file much/ReadoutConfig.cxx.

References fReadoutMap.

Referenced by cbm::algo::much::Unpack::Unpack().

◆ GetPadXA()

int8_t cbm::algo::much::ReadoutConfig::GetPadXA ( uint8_t febid,
uint8_t channelid )
private

Definition at line 283 of file much/ReadoutConfig.cxx.

References fChannelsToPadXA, and numChanPerAsic.

Referenced by CreateMuchAddress().

◆ GetPadXB()

int8_t cbm::algo::much::ReadoutConfig::GetPadXB ( uint8_t febid,
uint8_t channelid )
private

Definition at line 306 of file much/ReadoutConfig.cxx.

References fChannelsToPadXB, and numChanPerAsic.

Referenced by CreateMuchAddress().

◆ GetPadXRpc()

int8_t cbm::algo::much::ReadoutConfig::GetPadXRpc ( uint8_t febid,
uint8_t channelid )
private

Definition at line 326 of file much/ReadoutConfig.cxx.

References fChannelsToPadXRpc, and numChanPerAsic.

Referenced by CreateMuchAddress().

◆ GetPadYA()

int8_t cbm::algo::much::ReadoutConfig::GetPadYA ( uint8_t febid,
uint8_t channelid )
private

Definition at line 295 of file much/ReadoutConfig.cxx.

References fChannelsToPadYA, and numChanPerAsic.

Referenced by CreateMuchAddress().

◆ GetPadYB()

int8_t cbm::algo::much::ReadoutConfig::GetPadYB ( uint8_t febid,
uint8_t channelid )
private

Definition at line 316 of file much/ReadoutConfig.cxx.

References fChannelsToPadYB, and numChanPerAsic.

Referenced by CreateMuchAddress().

◆ GetPadYRpc()

int8_t cbm::algo::much::ReadoutConfig::GetPadYRpc ( uint8_t febid,
uint8_t channelid )
private

Definition at line 336 of file much/ReadoutConfig.cxx.

References fChannelsToPadYRpc, and numChanPerAsic.

Referenced by CreateMuchAddress().

◆ Init()

void cbm::algo::much::ReadoutConfig::Init ( )
private

◆ InitChannelToPadMaps()

void cbm::algo::much::ReadoutConfig::InitChannelToPadMaps ( )
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().

◆ Map()

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.

Parameters
equipIdEquipment identifier (component)
elinkElink number within component
Returns
Vector of MUCH addresses, indexed via channel number

Definition at line 46 of file much/ReadoutConfig.cxx.

References fReadoutMap.

Referenced by cbm::algo::much::Unpack::Unpack().

◆ MaskMap()

std::vector< bool > cbm::algo::much::ReadoutConfig::MaskMap ( uint16_t equipId,
uint16_t elink )

API: Mapping from component and elink to channel mask flags.

Parameters
equipIdEquipment identifier (component)
elinkElink number within component
Returns
(vector of mask flags for channels per asic)

Definition at line 60 of file much/ReadoutConfig.cxx.

References fMaskMap.

Referenced by cbm::algo::much::Unpack::Unpack().

Member Data Documentation

◆ fChannelsToPadXA

std::vector<int16_t> cbm::algo::much::ReadoutConfig::fChannelsToPadXA
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().

◆ fChannelsToPadXB

std::vector<int16_t> cbm::algo::much::ReadoutConfig::fChannelsToPadXB
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().

◆ fChannelsToPadXRpc

std::vector<int16_t> cbm::algo::much::ReadoutConfig::fChannelsToPadXRpc
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().

◆ fChannelsToPadYA

std::vector<int16_t> cbm::algo::much::ReadoutConfig::fChannelsToPadYA
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().

◆ fChannelsToPadYB

std::vector<int16_t> cbm::algo::much::ReadoutConfig::fChannelsToPadYB
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().

◆ fChannelsToPadYRpc

std::vector<int16_t> cbm::algo::much::ReadoutConfig::fChannelsToPadYRpc
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().

◆ fMaskMap

std::map<uint16_t, std::map<size_t, std::vector<bool> > > cbm::algo::much::ReadoutConfig::fMaskMap = {}
private

Definition at line 56 of file much/ReadoutConfig.h.

Referenced by Init(), and MaskMap().

◆ fnFebsIdsArrayGemA

std::vector<int16_t> cbm::algo::much::ReadoutConfig::fnFebsIdsArrayGemA
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().

◆ fnFebsIdsArrayGemB

std::vector<int16_t> cbm::algo::much::ReadoutConfig::fnFebsIdsArrayGemB
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().

◆ fnFebsIdsArrayRpc

std::vector<int16_t> cbm::algo::much::ReadoutConfig::fnFebsIdsArrayRpc
private

Array to hold FEB IDs connected to RPC Module.

Definition at line 78 of file much/ReadoutConfig.h.

Referenced by GetFebId(), and Init().

◆ fReadoutMap

std::map<uint16_t, std::vector<std::vector<uint32_t> > > cbm::algo::much::ReadoutConfig::fReadoutMap = {}
private

Definition at line 52 of file much/ReadoutConfig.h.

Referenced by GetEquipmentIds(), GetNumElinks(), Init(), and Map().

◆ numAsicsPerFeb

const uint16_t cbm::algo::much::ReadoutConfig::numAsicsPerFeb = 1
staticprivate

Number of ASICs connected in each FEB for MUCH.

Definition at line 68 of file much/ReadoutConfig.h.

Referenced by Init().

◆ numChanPerAsic

const uint16_t cbm::algo::much::ReadoutConfig::numChanPerAsic = 128
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().

◆ numComp

const uint16_t cbm::algo::much::ReadoutConfig::numComp = 7
staticprivate

Total number of MUCH DPBs in system.

Definition at line 70 of file much/ReadoutConfig.h.

Referenced by Init().

◆ numCrobPerComp

const uint16_t cbm::algo::much::ReadoutConfig::numCrobPerComp = 1
staticprivate

Constants.

Number of CROBs possible per DPB

Definition at line 65 of file much/ReadoutConfig.h.

Referenced by Init().

◆ numElinksPerCrob

const uint16_t cbm::algo::much::ReadoutConfig::numElinksPerCrob = 42
staticprivate

Number of elinks in each CROB ?

Definition at line 66 of file much/ReadoutConfig.h.

Referenced by Init().

◆ numFebsInGemA

uint16_t cbm::algo::much::ReadoutConfig::numFebsInGemA = 27
private

Variables.

Number of FEBs connected in GEM Module A

Definition at line 73 of file much/ReadoutConfig.h.

Referenced by GetFebId().

◆ numFebsInGemB

uint16_t cbm::algo::much::ReadoutConfig::numFebsInGemB = 27
private

Number of FEBs connected in GEM Module B.

Definition at line 74 of file much/ReadoutConfig.h.

Referenced by GetFebId().

◆ numFebsInRpc

uint16_t cbm::algo::much::ReadoutConfig::numFebsInRpc = 9
private

Number of FEBs connected in RPC Module.

Definition at line 75 of file much/ReadoutConfig.h.

Referenced by GetFebId().

◆ numFebsPerCrob

const uint16_t cbm::algo::much::ReadoutConfig::numFebsPerCrob = 9
staticprivate

Number of FEBs connected to each CROB for mMuch 2019.

Definition at line 67 of file much/ReadoutConfig.h.

Referenced by Init().


The documentation for this class was generated from the following files: