7#include "CbmDetectorList.h"
12const Int_t CbmStsAddress::fgkBits[] = { fgkSystemBits,
25const Int_t CbmStsAddress::fgkShift[] =
27 CbmStsAddress::fgkShift[0] + CbmStsAddress::fgkBits[0],
28 CbmStsAddress::fgkShift[1] + CbmStsAddress::fgkBits[1],
29 CbmStsAddress::fgkShift[2] + CbmStsAddress::fgkBits[2],
30 CbmStsAddress::fgkShift[3] + CbmStsAddress::fgkBits[3],
31 CbmStsAddress::fgkShift[4] + CbmStsAddress::fgkBits[4],
32 CbmStsAddress::fgkShift[5] + CbmStsAddress::fgkBits[5],
33 CbmStsAddress::fgkShift[6] + CbmStsAddress::fgkBits[6] };
39const Int_t CbmStsAddress::fgkMask[] = { ( 1 << fgkBits[0] ) -1,
40 ( 1 << fgkBits[1] ) -1,
41 ( 1 << fgkBits[2] ) -1,
42 ( 1 << fgkBits[3] ) -1,
43 ( 1 << fgkBits[4] ) -1,
44 ( 1 << fgkBits[5] ) -1,
45 ( 1 << fgkBits[6] ) -1,
46 ( 1 << fgkBits[7] ) -1 };
62 LOG(error) <<
"Station Id " << station <<
" exceeds maximum ("
67 LOG(error) <<
"Ladder Id " << ladder <<
" exceeds maximum ("
72 LOG(error) <<
"HalfLadder Id " << halfladder <<
" exceeds maximum ("
77 LOG(error) <<
"Module Id " <<
module << " exceeds maximum ("
78 << ( 1 << fgkBits[kStsModule] ) - 1 << ")";
82 LOG(error) <<
"Sensor Id " << sensor <<
" exceeds maximum ("
86 if ( side >= ( 1 << fgkBits[
kStsSide]) ) {
87 LOG(error) <<
"Side Id " << side <<
" exceeds maximum ("
88 << ( 1 << fgkBits[
kStsSide] ) - 1 <<
")";
92 LOG(error) <<
"Channel Id " << channel <<
" exceeds maximum ("
101 module << fgkShift[kStsModule] |
102 sensor << fgkShift[kStsSensor] |
103 side << fgkShift[kStsSide] |
104 channel << fgkShift[kStsChannel];
114 UInt_t address = kSts << fgkShift[
kStsSystem];
116 if ( elementId[level] >= ( 1 << fgkBits[level] ) ) {
117 LOG(error) <<
"Id " << elementId[level] <<
" for STS level " << level
118 <<
" exceeds maximum (" << (1 << fgkBits[level]) - 1
122 address = address | ( elementId[level] << fgkShift[level] );
135 LOG(info) <<
"Level " << std::setw(2) << std::right << level
136 <<
": bits " << std::setw(2) << fgkBits[level]
137 <<
", max. range " << std::setw(6) << fgkMask[level];
@ kStsSystem
System = STS.
@ kStsNofLevels
Number of STS levels.
@ kStsHalfLadder
Halfladder.
static UInt_t GetAddress(Int_t station=0, Int_t ladder=0, Int_t halfladder=0, Int_t module=0, Int_t sensor=0, Int_t side=0, Int_t channel=0)