CbmRoot
Loading...
Searching...
No Matches
CbmStsAddress.h File Reference
#include "AlgoFairloggerCompat.h"
#include "CbmDefs.h"
#include <cassert>
#include <cstdint>
#include <sstream>
#include <xpu/defines.h>
Include dependency graph for CbmStsAddress.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  CbmStsAddress
 Functions to encode or decode the address field of STS data.
 
namespace  CbmStsAddress::Detail
 

Enumerations

enum  EStsElementLevel {
  kStsSystem , kStsUnit , kStsLadder , kStsHalfLadder ,
  kStsModule , kStsSensor , kStsSide , kStsNofLevels
}
 

Functions

int32_t CbmStsAddress::GetAddress (uint32_t unit=0, uint32_t ladder=0, uint32_t halfladder=0, uint32_t module=0, uint32_t sensor=0, uint32_t side=0, uint32_t version=kCurrentVersion)
 Construct address.
 
int32_t CbmStsAddress::GetAddress (uint32_t *elementId, uint32_t version)
 Construct address.
 
int32_t CbmStsAddress::GetMotherAddress (int32_t address, int32_t level)
 Construct the address of an element from the address of a descendant element.
 
uint32_t CbmStsAddress::GetElementId (int32_t address, int32_t level)
 Get the index of an element.
 
ECbmModuleId CbmStsAddress::GetSystemId (int32_t address)
 Get system Id (should be ECbmModuleId::kSts)
 
uint32_t CbmStsAddress::GetVersion (int32_t address)
 Extract version number.
 
int32_t CbmStsAddress::SetElementId (int32_t address, int32_t level, uint32_t newId)
 Set the index of an element, leaving the other element levels untouched.
 
XPU_D int32_t CbmStsAddress::UnpackDigiAddress (int32_t digiAddress)
 Add version and system to compressed address that's stored in a digi.
 
XPU_D int32_t CbmStsAddress::PackDigiAddress (int32_t address)
 Strip address to contain only unit, (half)ladder and module.
 
std::string CbmStsAddress::ToString (int32_t address)
 String output.
 

Variables

constexpr uint32_t CbmStsAddress::kCurrentVersion = 1
 
constexpr int32_t CbmStsAddress::kVersionSize = 4
 
constexpr int32_t CbmStsAddress::kVersionShift = 28
 
constexpr int32_t CbmStsAddress::kVersionMask = (1 << kVersionSize) - 1
 
constexpr uint16_t CbmStsAddress::Detail::kBits [kCurrentVersion+1][kStsNofLevels]
 
constexpr int32_t CbmStsAddress::Detail::kShift [kCurrentVersion+1][kStsNofLevels]
 
constexpr int32_t CbmStsAddress::Detail::kMask [kCurrentVersion+1][kStsNofLevels]
 

Detailed Description

Author
Volker Friese v.fri.nosp@m.ese@.nosp@m.gsi.d.nosp@m.e
Date
17.05.2013

Definition in file CbmStsAddress.h.

Enumeration Type Documentation

◆ EStsElementLevel

Enumerator for the hierarchy levels of the STS setup

Enumerator
kStsSystem 
kStsUnit 
kStsLadder 
kStsHalfLadder 
kStsModule 
kStsSensor 
kStsSide 
kStsNofLevels 

Definition at line 23 of file CbmStsAddress.h.