diff --git a/core/data/sts/CbmStsAddress.cxx b/core/data/sts/CbmStsAddress.cxx index 8670d4b82f38e8c630fb73adf8a00e0869bd8cfa..ca89d3c34e26b90935eecbbc1d6ecac44744e9bd 100644 --- a/core/data/sts/CbmStsAddress.cxx +++ b/core/data/sts/CbmStsAddress.cxx @@ -21,7 +21,7 @@ namespace CbmStsAddress // clang-format off // ----- Definition of address bit field ------------------------------ - const uint16_t kBits[kCurrentVersion + 1][kStsNofLevels] = { + inline constexpr uint16_t kBits[kCurrentVersion + 1][kStsNofLevels] = { // Version 0 (until 23 August 2017) { @@ -50,7 +50,7 @@ namespace CbmStsAddress // ----- Bit shifts ----------------------------------------------------- - const int32_t kShift[kCurrentVersion + 1][kStsNofLevels] = { + inline constexpr int32_t kShift[kCurrentVersion + 1][kStsNofLevels] = { {0, kShift[0][0] + kBits[0][0], kShift[0][1] + kBits[0][1], kShift[0][2] + kBits[0][2], kShift[0][3] + kBits[0][3], kShift[0][4] + kBits[0][4], kShift[0][5] + kBits[0][5]}, @@ -60,7 +60,7 @@ namespace CbmStsAddress // ----- Bit masks ----------------------------------------------------- - const int32_t kMask[kCurrentVersion + 1][kStsNofLevels] = { + inline constexpr int32_t kMask[kCurrentVersion + 1][kStsNofLevels] = { {(1 << kBits[0][0]) - 1, (1 << kBits[0][1]) - 1, (1 << kBits[0][2]) - 1, (1 << kBits[0][3]) - 1, (1 << kBits[0][4]) - 1, (1 << kBits[0][5]) - 1, (1 << kBits[0][6]) - 1}, @@ -198,9 +198,9 @@ int32_t CbmStsAddress::SetElementId(int32_t address, int32_t level, uint32_t new // ----- Pack Digi Address -------------------------------------------- int32_t CbmStsAddress::PackDigiAddress(int32_t address) { - const int32_t kDMask = kMask[1][kStsUnit] << kShift[1][kStsUnit] | kMask[1][kStsLadder] << kShift[1][kStsLadder] - | kMask[1][kStsHalfLadder] << kShift[1][kStsHalfLadder] - | kMask[1][kStsModule] << kShift[1][kStsModule]; + constexpr int32_t kDMask = kMask[1][kStsUnit] << kShift[1][kStsUnit] | kMask[1][kStsLadder] << kShift[1][kStsLadder] + | kMask[1][kStsHalfLadder] << kShift[1][kStsHalfLadder] + | kMask[1][kStsModule] << kShift[1][kStsModule]; int32_t ret = (address & kDMask) >> kShift[1][kStsUnit]; diff --git a/core/data/sts/CbmStsAddress.h b/core/data/sts/CbmStsAddress.h index c232c6df28af1e2cc95dfef77b4a155e28a359cc..4bf1bf097a8537897443bd555ae649d7f76e3963 100644 --- a/core/data/sts/CbmStsAddress.h +++ b/core/data/sts/CbmStsAddress.h @@ -48,13 +48,13 @@ enum EStsElementLevel namespace CbmStsAddress { - const uint32_t kCurrentVersion = 1; + inline constexpr uint32_t kCurrentVersion = 1; // --- These values are not to be changed if backward compatibility // --- shall be maintained. - const int32_t kVersionSize = 4; // Bits for version number - const int32_t kVersionShift = 28; // First bit for version number - const int32_t kVersionMask = (1 << kVersionSize) - 1; + inline constexpr int32_t kVersionSize = 4; // Bits for version number + inline constexpr int32_t kVersionShift = 28; // First bit for version number + inline constexpr int32_t kVersionMask = (1 << kVersionSize) - 1; /** @brief Construct address