File indexing completed on 2024-04-06 12:02:15
0001
0002
0003
0004
0005
0006
0007
0008 #include <iostream>
0009
0010 #include "CondFormats/HcalObjects/interface/HcalCalibrationQIECoder.h"
0011
0012 float HcalCalibrationQIECoder::charge(unsigned fAdc) const {
0013 const float* data = base();
0014 if (fAdc >= 31)
0015 return (3 * data[31] - data[30]) / 2.;
0016 return (data[fAdc] + data[fAdc + 1]) / 2;
0017 }
0018
0019 unsigned HcalCalibrationQIECoder::adc(float fCharge) const {
0020 const float* data = base();
0021 unsigned adc = 1;
0022 for (; adc < 32; adc++) {
0023 if (fCharge < data[adc])
0024 return adc - 1;
0025 }
0026 return 31;
0027 }
0028
0029 float HcalCalibrationQIECoder::minCharge(unsigned fBin) const {
0030 const float* data = base();
0031 return fBin < 32 ? data[fBin] : data[31];
0032 }
0033
0034 const float* HcalCalibrationQIECoder::minCharges() const {
0035 const float* data = base();
0036 return data;
0037 }
0038
0039 void HcalCalibrationQIECoder::setMinCharge(unsigned fBin, float fValue) {
0040 float* data = base();
0041 if (fBin < 32)
0042 data[fBin] = fValue;
0043 }
0044
0045 void HcalCalibrationQIECoder::setMinCharges(const float fValue[32]) {
0046 float* data = base();
0047 for (int i = 0; i < 32; i++)
0048 data[i] = fValue[i];
0049 }