10#include "FairLogger.h"
14const Int_t CbmStsDigi::fgkCharBits = 12;
15const Int_t CbmStsDigi::fgkTimeBits = 14;
16const Int_t CbmStsDigi::fgkAddrBits =
26const Int_t CbmStsDigi::fgkCharShift = CbmStsDigi::fgkAddrBits;
27const Int_t CbmStsDigi::fgkTimeShift = CbmStsDigi::fgkCharShift + CbmStsDigi::fgkCharBits;
33const Long64_t CbmStsDigi::fgkAddrMask = (1 << CbmStsDigi::fgkAddrBits) - 1;
34const Long64_t CbmStsDigi::fgkCharMask = (1 << CbmStsDigi::fgkCharBits) - 1;
35const Long64_t CbmStsDigi::fgkTimeMask = (1 << CbmStsDigi::fgkTimeBits) - 1;
45 : FairMultiLinkedData(),
69 Int_t channel, Int_t adc, Int_t time)
70 : FairMultiLinkedData(),
78 LOG(warn) <<
"ADC " << adc <<
" exceeds ADC range " <<
GetMaxAdc();
82 fData = ( (
DetectorId(station, sector, side, channel) >> 4) & fgkAddrMask )
83 | ( (adc & fgkCharMask) << fgkCharShift )
84 | ( (time & fgkTimeMask) << fgkTimeShift ) ;
94 Int_t maxAdc = (1 << fgkCharBits) - 1;
95 Int_t newAdc =
GetAdc() + adc;
96 if ( newAdc > maxAdc ) newAdc = maxAdc;
103void CbmStsDigi::SetAdc(Int_t adc) {
106 fData = fData & ~(fgkCharMask << fgkCharShift);
110 LOG(warn) <<
"ADC " << adc <<
" exceeds ADC range " <<
GetMaxAdc();
115 fData = fData | ( (adc & fgkCharMask) << fgkCharShift );
static const Int_t fgkSideBits
static const Int_t fgkStatBits
static const Int_t fgkSectBits
static const Int_t fgkChanBits