91 LOGF(info,
"Channel = %i", channel);
92 LOGF(info,
"Nhits = %i",
nHits);
93 LOGF(info,
"Q1 & Q0 = 0x%08x Q1 = %i, Q0 = %i", (
q1 << 16) |
q0,
q1,
q0);
94 LOGF(info,
"SumX = 0x%08x = %i",
sumX,
sumX);
95 LOGF(info,
"SumX2 = 0x%08x = %i",
sumX2,
sumX2);
96 LOGF(info,
"SumY = 0x%08x = %i",
sumY,
sumY);
97 LOGF(info,
"SumXY = 0x%08x = %i",
sumXY,
sumXY);
98 LOGF(info,
"SumY2 = 0x%08x = %i",
sumY2,
sumY2);
100 void Print()
const { LOGF(info,
"FitReg: nHits(%u), q0(%u), q1(%u), sumX(%u), sumX2(%u), sumY(%i), sumY2(%u), sumXY(%i)",
nHits,
q0,
q1,
sumX,
sumX2,
sumY,
sumY2,
sumXY); }
117 void noiseTest(
int nsamples,
int mean,
int sigma,
int inputGain = 1,
int inputTail = 2);
120 int getDataRaw(
int iadc,
int timebin)
const {
return mADCR[iadc * mNTimeBin + timebin]; }
122 int getDataFiltered(
int iadc,
int timebin)
const {
return mADCF[iadc * mNTimeBin + timebin]; }
145 int packData(std::vector<uint32_t>& rawdata, uint32_t
offset)
const;
170 void addHitToFitreg(
int adc,
unsigned short timebin,
unsigned short qtot,
short ypos);
181 void print(
int choice)
const;
185 static std::ostream&
cfdat(std::ostream& os);
186 static std::ostream&
raw(std::ostream& os);
187 static std::ostream&
text(std::ostream& os);
195 void printAdcDatDatx(std::ostream& os,
bool broadcast = kFALSE,
int timeBinOffset = -1)
const;
228 bool mInitialized{
false};
229 bool mDataIsSet{
false};
234 uint32_t mMcmHeaderEmpty;
235 uint64_t mTrkltWordEmpty;
236 bool mDontSendEmptyHeaderTrklt{
false};
238 int mAdditionalBaseline = 0;
241 bool mUseFloatingPointForQ{
false};
242 int mScaleQ{0x10000000};
244 int mMaskQ0Q1{(1 << mSizeQ0Q1) - 1};
246 int mMaxQ2{(1 << mSizeQ2) - 2};
247 int mQ2LeftMargin{7};
248 int mQ2WindowWidth{7};
251 int mDynMask{(1 << mDynSize) - 1};
257 int mMaskLPID{(1 << mSizeLPID) - 1};
259 int mEmptyHPID8{(1 << mSizeHPID) - 1};
260 int mEmptyHPID24{mEmptyHPID8 | (mEmptyHPID8 << 8) | (mEmptyHPID8 << 16)};
263 std::vector<int> mADCR;
264 std::vector<int> mADCF;
265 std::array<int, constants::NADCMCM> mADCDigitIndices{};
266 std::array<uint32_t, 4> mMCMT;
267 std::vector<Tracklet64> mTrackletArray64;
268 std::vector<unsigned short> mTrackletDigitCount;
269 std::vector<unsigned int> mTrackletDigitIndices;
270 std::vector<int> mZSMap;
272 std::array<int, constants::NCPU> mFitPtr{};
273 std::array<FitReg, constants::NADCMCM> mFitReg{};
274 std::array<FilterReg, constants::NADCMCM> mInternalFilterRegisters;
278 TrapConfig* mTrapConfig{
nullptr};
281 void sort2(uint16_t idx1i, uint16_t idx2i, uint16_t val1i, uint16_t val2i,
282 uint16_t* idx1o, uint16_t* idx2o, uint16_t* val1o, uint16_t* val2o)
const;
283 void sort3(uint16_t idx1i, uint16_t idx2i, uint16_t idx3i,
284 uint16_t val1i, uint16_t val2i, uint16_t val3i,
285 uint16_t* idx1o, uint16_t* idx2o, uint16_t* idx3o,
286 uint16_t* val1o, uint16_t* val2o, uint16_t* val3o)
const;
287 void sort6To4(uint16_t idx1i, uint16_t idx2i, uint16_t idx3i, uint16_t idx4i, uint16_t idx5i, uint16_t idx6i,
288 uint16_t val1i, uint16_t val2i, uint16_t val3i, uint16_t val4i, uint16_t val5i, uint16_t val6i,
289 uint16_t* idx1o, uint16_t* idx2o, uint16_t* idx3o, uint16_t* idx4o,
290 uint16_t* val1o, uint16_t* val2o, uint16_t* val3o, uint16_t* val4o)
const;
291 void sort6To2Worst(uint16_t idx1i, uint16_t idx2i, uint16_t idx3i, uint16_t idx4i, uint16_t idx5i, uint16_t idx6i,
292 uint16_t val1i, uint16_t val2i, uint16_t val3i, uint16_t val4i, uint16_t val5i, uint16_t val6i,
293 uint16_t* idx5o, uint16_t* idx6o)
const;
296 unsigned int addUintClipping(
unsigned int a,
unsigned int b,
unsigned int nbits)
const;
299 const uint16_t LUT_POS[128] = {
300 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15,
301 16, 16, 16, 17, 17, 18, 18, 19, 19, 19, 20, 20, 20, 21, 21, 22, 22, 22, 23, 23, 23, 24, 24, 24, 24, 25, 25, 25, 26, 26, 26, 26,
302 27, 27, 27, 27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 27, 27, 27, 27, 26,
303 26, 26, 26, 25, 25, 25, 24, 24, 23, 23, 22, 22, 21, 21, 20, 20, 19, 18, 18, 17, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 7};