#include <CondFormats/HcalObjects/interface/HcalQIECoder.h>
Public Member Functions | |
unsigned | adc (const HcalQIEShape &fShape, float fCharge, unsigned fCapId) const |
fC + capid [0..3] -> ADC conversion | |
float | charge (const HcalQIEShape &fShape, unsigned fAdc, unsigned fCapId) const |
ADC [0..127] + capid [0..3] -> fC conversion. | |
HcalQIECoder (unsigned long fId=0) | |
float | offset (unsigned fCapId, unsigned fRange) const |
uint32_t | rawId () const |
void | setOffset (unsigned fCapId, unsigned fRange, float fValue) |
void | setSlope (unsigned fCapId, unsigned fRange, float fValue) |
float | slope (unsigned fCapId, unsigned fRange) const |
Private Attributes | |
uint32_t | mId |
float | mOffset00 |
float | mOffset01 |
float | mOffset02 |
float | mOffset03 |
float | mOffset10 |
float | mOffset11 |
float | mOffset12 |
float | mOffset13 |
float | mOffset20 |
float | mOffset21 |
float | mOffset22 |
float | mOffset23 |
float | mOffset30 |
float | mOffset31 |
float | mOffset32 |
float | mOffset33 |
float | mSlope00 |
float | mSlope01 |
float | mSlope02 |
float | mSlope03 |
float | mSlope10 |
float | mSlope11 |
float | mSlope12 |
float | mSlope13 |
float | mSlope20 |
float | mSlope21 |
float | mSlope22 |
float | mSlope23 |
float | mSlope30 |
float | mSlope31 |
float | mSlope32 |
float | mSlope33 |
Definition at line 19 of file HcalQIECoder.h.
HcalQIECoder::HcalQIECoder | ( | unsigned long | fId = 0 |
) | [inline] |
unsigned HcalQIECoder::adc | ( | const HcalQIEShape & | fShape, | |
float | fCharge, | |||
unsigned | fCapId | |||
) | const |
fC + capid [0..3] -> ADC conversion
Definition at line 27 of file HcalQIECoder.cc.
References HcalQIEShape::highEdge(), offset(), range, and slope().
Referenced by HcalDeadCellMonitor::createMaps(), HcalHotCellMonitor::createMaps(), HcalCoderDb::fC2adc_(), HcalPedestalMonitor::fillDBValues(), and HcalPedestalMonitor::processEvent().
00027 { 00028 // search for the range 00029 for (unsigned range = 0; range < 4; range++) { 00030 float qieCharge = fCharge * slope (fCapId, range) + offset (fCapId, range); 00031 unsigned minBin = 32*range; 00032 float qieChargeMax = fShape.highEdge (minBin + 31); 00033 if (qieCharge <= qieChargeMax) { 00034 for (unsigned bin = minBin; bin <= minBin + 31; bin++) { 00035 if (qieCharge < fShape.highEdge (bin)) { 00036 return bin; 00037 } 00038 } 00039 return minBin; // underflow 00040 } 00041 else if (range == 3) { 00042 return 127; // overflow 00043 } 00044 } 00045 return 0; //should never get here 00046 }
float HcalQIECoder::charge | ( | const HcalQIEShape & | fShape, | |
unsigned | fAdc, | |||
unsigned | fCapId | |||
) | const |
ADC [0..127] + capid [0..3] -> fC conversion.
Definition at line 22 of file HcalQIECoder.cc.
References HcalQIEShape::center(), offset(), HcalQIEShape::range(), range, and slope().
Referenced by HcalCoderDb::adc2fC_(), getLinearizedADC(), ZSEnergy_impl::keepMe(), HcalDbService::makeHcalCalibration(), HcalDbService::makeHcalCalibrationWidth(), HcalDeadCellMonitor::processEvent_digi(), HcalHotCellMonitor::processEvent_pedestal(), and AlCaHOCalibProducer::produce().
00022 { 00023 unsigned range = fShape.range (fAdc); 00024 return (fShape.center (fAdc) - offset (fCapId, range)) / slope (fCapId, range); 00025 }
float HcalQIECoder::offset | ( | unsigned | fCapId, | |
unsigned | fRange | |||
) | const |
Definition at line 48 of file HcalQIECoder.cc.
References index, and mOffset00.
Referenced by adc(), HcalQIEDataCheck::analyze(), and charge().
uint32_t HcalQIECoder::rawId | ( | ) | const [inline] |
void HcalQIECoder::setOffset | ( | unsigned | fCapId, | |
unsigned | fRange, | |||
float | fValue | |||
) |
Definition at line 56 of file HcalQIECoder.cc.
References TestMuL1L2Filter_cff::cerr, lat::endl(), index, and mOffset00.
Referenced by HcalDbOnline::getObject().
00056 { 00057 if (fCapId >= 0 && fRange >= 0 && fCapId < 4 && fRange < 4) { 00058 *((&mOffset00) + index (fRange, fCapId)) = fValue; 00059 } 00060 else { 00061 std::cerr << "HcalQIECoder::setOffset-> Wrong parameters capid/range: " << fCapId << '/' << fRange << std::endl; 00062 } 00063 }
void HcalQIECoder::setSlope | ( | unsigned | fCapId, | |
unsigned | fRange, | |||
float | fValue | |||
) |
Definition at line 65 of file HcalQIECoder.cc.
References TestMuL1L2Filter_cff::cerr, lat::endl(), index, and mSlope00.
Referenced by HcalDbOnline::getObject().
00065 { 00066 if (fCapId >= 0 && fRange >= 0 && fCapId < 4 && fRange < 4) { 00067 *((&mSlope00) + index (fRange, fCapId)) = fValue; 00068 } 00069 else { 00070 std::cerr << "HcalQIECoder::setSlope-> Wrong parameters capid/range: " << fCapId << '/' << fRange << std::endl; 00071 } 00072 }
float HcalQIECoder::slope | ( | unsigned | fCapId, | |
unsigned | fRange | |||
) | const |
Definition at line 52 of file HcalQIECoder.cc.
References index, and mSlope00.
Referenced by adc(), HcalQIEDataCheck::analyze(), and charge().
uint32_t HcalQIECoder::mId [private] |
float HcalQIECoder::mOffset00 [private] |
float HcalQIECoder::mOffset01 [private] |
Definition at line 40 of file HcalQIECoder.h.
float HcalQIECoder::mOffset02 [private] |
Definition at line 41 of file HcalQIECoder.h.
float HcalQIECoder::mOffset03 [private] |
Definition at line 42 of file HcalQIECoder.h.
float HcalQIECoder::mOffset10 [private] |
Definition at line 43 of file HcalQIECoder.h.
float HcalQIECoder::mOffset11 [private] |
Definition at line 44 of file HcalQIECoder.h.
float HcalQIECoder::mOffset12 [private] |
Definition at line 45 of file HcalQIECoder.h.
float HcalQIECoder::mOffset13 [private] |
Definition at line 46 of file HcalQIECoder.h.
float HcalQIECoder::mOffset20 [private] |
Definition at line 47 of file HcalQIECoder.h.
float HcalQIECoder::mOffset21 [private] |
Definition at line 48 of file HcalQIECoder.h.
float HcalQIECoder::mOffset22 [private] |
Definition at line 49 of file HcalQIECoder.h.
float HcalQIECoder::mOffset23 [private] |
Definition at line 50 of file HcalQIECoder.h.
float HcalQIECoder::mOffset30 [private] |
Definition at line 51 of file HcalQIECoder.h.
float HcalQIECoder::mOffset31 [private] |
Definition at line 52 of file HcalQIECoder.h.
float HcalQIECoder::mOffset32 [private] |
Definition at line 53 of file HcalQIECoder.h.
float HcalQIECoder::mOffset33 [private] |
Definition at line 54 of file HcalQIECoder.h.
float HcalQIECoder::mSlope00 [private] |
float HcalQIECoder::mSlope01 [private] |
Definition at line 56 of file HcalQIECoder.h.
float HcalQIECoder::mSlope02 [private] |
Definition at line 57 of file HcalQIECoder.h.
float HcalQIECoder::mSlope03 [private] |
Definition at line 58 of file HcalQIECoder.h.
float HcalQIECoder::mSlope10 [private] |
Definition at line 59 of file HcalQIECoder.h.
float HcalQIECoder::mSlope11 [private] |
Definition at line 60 of file HcalQIECoder.h.
float HcalQIECoder::mSlope12 [private] |
Definition at line 61 of file HcalQIECoder.h.
float HcalQIECoder::mSlope13 [private] |
Definition at line 62 of file HcalQIECoder.h.
float HcalQIECoder::mSlope20 [private] |
Definition at line 63 of file HcalQIECoder.h.
float HcalQIECoder::mSlope21 [private] |
Definition at line 64 of file HcalQIECoder.h.
float HcalQIECoder::mSlope22 [private] |
Definition at line 65 of file HcalQIECoder.h.
float HcalQIECoder::mSlope23 [private] |
Definition at line 66 of file HcalQIECoder.h.
float HcalQIECoder::mSlope30 [private] |
Definition at line 67 of file HcalQIECoder.h.
float HcalQIECoder::mSlope31 [private] |
Definition at line 68 of file HcalQIECoder.h.
float HcalQIECoder::mSlope32 [private] |
Definition at line 69 of file HcalQIECoder.h.
float HcalQIECoder::mSlope33 [private] |
Definition at line 70 of file HcalQIECoder.h.