CMS 3D CMS Logo

HcalQIECoder Class Reference

Author:
Fedor Ratnikov (UMd) POOL object to store calibration mode QIE coder parameters for one channel $Id
More...

#include <CondFormats/HcalObjects/interface/HcalQIECoder.h>

List of all members.

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


Detailed Description

Author:
Fedor Ratnikov (UMd) POOL object to store calibration mode QIE coder parameters for one channel $Id

Author:
Fedor Ratnikov (UMd) POOL object to store QIE coder parameters for one channel $Author: ratnikov
Date
2008/03/05 10:38:03
Revision
1.9

Definition at line 19 of file HcalQIECoder.h.


Constructor & Destructor Documentation

HcalQIECoder::HcalQIECoder ( unsigned long  fId = 0  )  [inline]

Definition at line 21 of file HcalQIECoder.h.

00021 : mId (fId) {}


Member Function Documentation

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().

00048                                                                   {
00049   return *((&mOffset00) + index (fRange, fCapId));
00050 }

uint32_t HcalQIECoder::rawId (  )  const [inline]

Definition at line 35 of file HcalQIECoder.h.

References mId.

00035 {return mId;}

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().

00052                                                                  {
00053   return *((&mSlope00) + index (fRange, fCapId));
00054 }


Member Data Documentation

uint32_t HcalQIECoder::mId [private]

Definition at line 38 of file HcalQIECoder.h.

Referenced by rawId().

float HcalQIECoder::mOffset00 [private]

Definition at line 39 of file HcalQIECoder.h.

Referenced by offset(), and setOffset().

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]

Definition at line 55 of file HcalQIECoder.h.

Referenced by setSlope(), and slope().

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.


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:23:50 2009 for CMSSW by  doxygen 1.5.4