62 GPUdi()
void setGainCorrection(int32_t sector, tpccf::Row
row, tpccf::Pad
pad,
float c)
72 GPUdi() float getGainCorrection(int32_t sector, tpccf::Row
row, tpccf::Pad
pad)
const
79 return mPadOffsetPerRow[
row] +
pad;
82 GPUdi()
void setMinCorrectionFactor(
const float minCorrectionFactor)
85 mGainCorrection[sector].mMinCorrectionFactor = minCorrectionFactor;
92 mGainCorrection[sector].mMaxCorrectionFactor = maxCorrectionFactor;
97 template <
typename T = u
int16_t>
98 class SectorPadGainCorrection
102 float mMinCorrectionFactor = 0.f;
103 float mMaxCorrectionFactor = 2.f;
106 GPUdi() SectorPadGainCorrection()
129 GPUd() T pack(
float f)
const
131 f = CAMath::Clamp(
f, mMinCorrectionFactor, mMaxCorrectionFactor);
132 f -= mMinCorrectionFactor;
134 f /= (mMaxCorrectionFactor - mMinCorrectionFactor);
135 return CAMath::Round(
f);
138 GPUd() float unpack(T c)
const
140 return mMinCorrectionFactor + (mMaxCorrectionFactor - mMinCorrectionFactor) *
float(c) /
float(NumOfSteps);
157 SectorPadGainCorrection<uint16_t> mGainCorrection[
GPUCA_NSECTORS];