CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Attributes | Private Types | Private Attributes | Static Private Attributes
HcaluLUTTPGCoder Class Reference

#include <HcaluLUTTPGCoder.h>

Inheritance diagram for HcaluLUTTPGCoder:
HcalTPGCoder

Public Member Functions

virtual void adc2Linear (const HBHEDataFrame &df, IntegerCaloSamples &ics) const override
 
virtual void adc2Linear (const HFDataFrame &df, IntegerCaloSamples &ics) const override
 
virtual void adc2Linear (const QIE10DataFrame &df, IntegerCaloSamples &ics) const override
 
virtual void adc2Linear (const QIE11DataFrame &df, IntegerCaloSamples &ics) const override
 
virtual unsigned short adc2Linear (HcalQIESample sample, HcalDetId id) const override
 
virtual void compress (const IntegerCaloSamples &ics, const std::vector< bool > &featureBits, HcalTriggerPrimitiveDigi &tp) const override
 
std::vector< unsigned short > getLinearizationLUTWithMSB (const HcalDetId &id) const
 
virtual float getLUTGain (HcalDetId id) const override
 
int getLUTId (HcalSubdetector id, int ieta, int iphi, int depth) const
 
int getLUTId (uint32_t rawid) const
 
int getLUTId (const HcalDetId &detid) const
 
virtual float getLUTPedestal (HcalDetId id) const override
 
bool getMSB (const HcalDetId &id, int adc) const
 
 HcaluLUTTPGCoder (const HcalTopology *topo)
 
void lookupMSB (const HBHEDataFrame &df, std::vector< bool > &msb) const
 
void lookupMSB (const QIE11DataFrame &df, std::vector< std::bitset< 2 >> &msb) const
 
void setLUTGenerationMode (bool gen)
 
void setMaskBit (int bit)
 
void update (const HcalDbService &conditions)
 
void update (const char *filename, bool appendMSB=false)
 
void updateXML (const char *filename)
 
virtual ~HcaluLUTTPGCoder ()
 
- Public Member Functions inherited from HcalTPGCoder
unsigned short adc2Linear (unsigned char adc, HcalDetId id) const
 
virtual std::vector< unsigned short > getLinearizationLUT (HcalDetId id) const
 Get the full linearization LUT (128 elements). Default implementation just uses adc2Linear to get all values. More...
 

Static Public Attributes

static const float lsb_ =1./16
 
static const int QIE10_LUT_BITMASK = 0x7FF
 
static const int QIE11_LUT_BITMASK = 0x3FF
 
static const int QIE8_LUT_BITMASK = 0x3FF
 

Private Types

typedef std::vector< LutElementLut
 
typedef unsigned short LutElement
 

Private Attributes

int bitToMask_
 
int firstHBEta_
 
int firstHEEta_
 
int firstHFEta_
 
std::vector< float > gain_
 
std::vector< LutinputLUT_
 
int lastHBEta_
 
int lastHEEta_
 
int lastHFEta_
 
bool LUTGenerationMode_
 
int maxDepthHB_
 
int maxDepthHE_
 
int maxDepthHF_
 
int nHBEta_
 
int nHEEta_
 
int nHFEta_
 
std::vector< float > ped_
 
int sizeHB_
 
int sizeHE_
 
int sizeHF_
 
const HcalTopologytopo_
 
std::vector< LutupgradeQIE10LUT_
 
std::vector< LutupgradeQIE11LUT_
 

Static Private Attributes

static const size_t INPUT_LUT_SIZE = 128
 
static const int nFi_ = 72
 
static const int QIE11_LUT_MSB0 = 0x400
 
static const int QIE11_LUT_MSB1 = 0x800
 
static const int QIE8_LUT_MSB = 0x400
 
static const size_t UPGRADE_LUT_SIZE = 256
 

Detailed Description

The nominal coder uses a user-supplied table to linearize the ADC values.

[number of ieta slices]
[low tower 1] [low tower 2] ...
[high tower 1] [ high tower 2] ...
[LUT 1(0)] [LUT 2(0)] ...
[LUT 1(1)] [LUT 2(1)] ...
. . .
[LUT 1(127)] [LUT 2(127)] ...
Author
M. Weinberger – TAMU
Tulika Bose and Greg Landsberg – Brown

Definition at line 31 of file HcaluLUTTPGCoder.h.

Member Typedef Documentation

typedef std::vector<LutElement> HcaluLUTTPGCoder::Lut
private

Definition at line 66 of file HcaluLUTTPGCoder.h.

typedef unsigned short HcaluLUTTPGCoder::LutElement
private

Definition at line 65 of file HcaluLUTTPGCoder.h.

Constructor & Destructor Documentation

HcaluLUTTPGCoder::HcaluLUTTPGCoder ( const HcalTopology topo)

Definition at line 36 of file HcaluLUTTPGCoder.cc.

References firstHBEta_, HcalTopology::firstHBRing(), firstHEEta_, HcalTopology::firstHERing(), firstHFEta_, HcalTopology::firstHFRing(), gain_, HcalBarrel, HcalEndcap, HcalForward, INPUT_LUT_SIZE, inputLUT_, lastHBEta_, HcalTopology::lastHBRing(), lastHEEta_, HcalTopology::lastHERing(), lastHFEta_, HcalTopology::lastHFRing(), HcalTopology::maxDepth(), maxDepthHB_, maxDepthHE_, maxDepthHF_, nFi_, nHBEta_, nHEEta_, nHFEta_, ped_, sizeHB_, sizeHE_, sizeHF_, topo_, UPGRADE_LUT_SIZE, upgradeQIE10LUT_, and upgradeQIE11LUT_.

36  : topo_(top), LUTGenerationMode_(true), bitToMask_(0) {
52  size_t nluts= (size_t)(sizeHB_+sizeHE_+sizeHF_+1);
53  inputLUT_ = std::vector<HcaluLUTTPGCoder::Lut>(nluts,HcaluLUTTPGCoder::Lut(INPUT_LUT_SIZE, 0));
54  upgradeQIE10LUT_ = std::vector<HcaluLUTTPGCoder::Lut>(nluts,HcaluLUTTPGCoder::Lut(UPGRADE_LUT_SIZE, 0));
55  upgradeQIE11LUT_ = std::vector<HcaluLUTTPGCoder::Lut>(nluts,HcaluLUTTPGCoder::Lut(UPGRADE_LUT_SIZE, 0));
56  gain_ = std::vector<float>(nluts, 0.);
57  ped_ = std::vector<float>(nluts, 0.);
58 }
int firstHFRing() const
Definition: HcalTopology.h:91
static const int nFi_
const HcalTopology * topo_
int firstHBRing() const
Definition: HcalTopology.h:87
int lastHBRing() const
Definition: HcalTopology.h:88
static const size_t UPGRADE_LUT_SIZE
int maxDepth(HcalSubdetector subdet) const
int lastHFRing() const
Definition: HcalTopology.h:92
std::vector< LutElement > Lut
std::vector< Lut > upgradeQIE11LUT_
std::vector< float > ped_
std::vector< float > gain_
int firstHERing() const
Definition: HcalTopology.h:89
static const size_t INPUT_LUT_SIZE
std::vector< Lut > upgradeQIE10LUT_
int lastHERing() const
Definition: HcalTopology.h:90
std::vector< Lut > inputLUT_
HcaluLUTTPGCoder::~HcaluLUTTPGCoder ( )
virtual

Definition at line 64 of file HcaluLUTTPGCoder.cc.

64  {
65 }

Member Function Documentation

void HcaluLUTTPGCoder::adc2Linear ( const HBHEDataFrame df,
IntegerCaloSamples ics 
) const
overridevirtual

Implements HcalTPGCoder.

Definition at line 360 of file HcaluLUTTPGCoder.cc.

References ecalMGPA::adc(), getLUTId(), mps_fire::i, HBHEDataFrame::id(), inputLUT_, lumiPlot::lut, QIE8_LUT_BITMASK, and HBHEDataFrame::size().

Referenced by HcalTriggerPrimitiveAlgo::addSignal().

360  {
361  int lutId = getLUTId(df.id());
362  const Lut& lut = inputLUT_.at(lutId);
363  for (int i=0; i<df.size(); i++){
364  ics[i] = (lut.at(df[i].adc()) & QIE8_LUT_BITMASK);
365  }
366 }
int adc(sample_type sample)
get the ADC sample (12 bits)
int size() const
total number of samples in the digi
Definition: HBHEDataFrame.h:26
static const int QIE8_LUT_BITMASK
int getLUTId(HcalSubdetector id, int ieta, int iphi, int depth) const
const HcalDetId & id() const
Definition: HBHEDataFrame.h:22
Definition: Lut.h:32
std::vector< Lut > inputLUT_
void HcaluLUTTPGCoder::adc2Linear ( const HFDataFrame df,
IntegerCaloSamples ics 
) const
overridevirtual

Implements HcalTPGCoder.

Definition at line 368 of file HcaluLUTTPGCoder.cc.

References ecalMGPA::adc(), getLUTId(), mps_fire::i, HFDataFrame::id(), inputLUT_, lumiPlot::lut, QIE8_LUT_BITMASK, and HFDataFrame::size().

368  {
369  int lutId = getLUTId(df.id());
370  const Lut& lut = inputLUT_.at(lutId);
371  for (int i=0; i<df.size(); i++){
372  ics[i] = (lut.at(df[i].adc()) & QIE8_LUT_BITMASK);
373  }
374 }
int adc(sample_type sample)
get the ADC sample (12 bits)
static const int QIE8_LUT_BITMASK
int getLUTId(HcalSubdetector id, int ieta, int iphi, int depth) const
int size() const
total number of samples in the digi
Definition: HFDataFrame.h:26
const HcalDetId & id() const
Definition: HFDataFrame.h:22
Definition: Lut.h:32
std::vector< Lut > inputLUT_
void HcaluLUTTPGCoder::adc2Linear ( const QIE10DataFrame df,
IntegerCaloSamples ics 
) const
overridevirtual

Implements HcalTPGCoder.

Definition at line 376 of file HcaluLUTTPGCoder.cc.

References ecalMGPA::adc(), getLUTId(), mps_fire::i, QIE10DataFrame::id(), lumiPlot::lut, QIE10_LUT_BITMASK, QIE10DataFrame::samples(), and upgradeQIE10LUT_.

376  {
377  int lutId = getLUTId(HcalDetId(df.id()));
378  const Lut& lut = upgradeQIE10LUT_.at(lutId);
379  for (int i=0; i<df.samples(); i++){
380  ics[i] = (lut.at(df[i].adc()) & QIE10_LUT_BITMASK);
381  }
382 }
int adc(sample_type sample)
get the ADC sample (12 bits)
int samples() const
total number of samples in the digi
edm::DataFrame::id_type id() const
int getLUTId(HcalSubdetector id, int ieta, int iphi, int depth) const
static const int QIE10_LUT_BITMASK
std::vector< Lut > upgradeQIE10LUT_
Definition: Lut.h:32
void HcaluLUTTPGCoder::adc2Linear ( const QIE11DataFrame df,
IntegerCaloSamples ics 
) const
overridevirtual

Implements HcalTPGCoder.

Definition at line 384 of file HcaluLUTTPGCoder.cc.

References ecalMGPA::adc(), getLUTId(), mps_fire::i, QIE11DataFrame::id(), lumiPlot::lut, QIE11_LUT_BITMASK, QIE11DataFrame::samples(), and upgradeQIE11LUT_.

384  {
385  int lutId = getLUTId(HcalDetId(df.id()));
386  const Lut& lut = upgradeQIE11LUT_.at(lutId);
387  for (int i=0; i<df.samples(); i++){
388  ics[i] = (lut.at(df[i].adc()) & QIE11_LUT_BITMASK);
389  }
390 }
int adc(sample_type sample)
get the ADC sample (12 bits)
static const int QIE11_LUT_BITMASK
int getLUTId(HcalSubdetector id, int ieta, int iphi, int depth) const
edm::DataFrame::id_type id() const
std::vector< Lut > upgradeQIE11LUT_
int samples() const
total number of samples in the digi
Definition: Lut.h:32
unsigned short HcaluLUTTPGCoder::adc2Linear ( HcalQIESample  sample,
HcalDetId  id 
) const
overridevirtual

Implements HcalTPGCoder.

Definition at line 392 of file HcaluLUTTPGCoder.cc.

References HcalQIESample::adc(), getLUTId(), inputLUT_, and QIE8_LUT_BITMASK.

392  {
393  int lutId = getLUTId(id);
394  return ((inputLUT_.at(lutId)).at(sample.adc()) & QIE8_LUT_BITMASK);
395 }
int adc() const
get the ADC sample
Definition: HcalQIESample.h:22
static const int QIE8_LUT_BITMASK
int getLUTId(HcalSubdetector id, int ieta, int iphi, int depth) const
std::vector< Lut > inputLUT_
void HcaluLUTTPGCoder::compress ( const IntegerCaloSamples ics,
const std::vector< bool > &  featureBits,
HcalTriggerPrimitiveDigi tp 
) const
overridevirtual

Implements HcalTPGCoder.

Definition at line 60 of file HcaluLUTTPGCoder.cc.

References Exception.

60  {
61  throw cms::Exception("PROBLEM: This method should never be invoked!");
62 }
std::vector< unsigned short > HcaluLUTTPGCoder::getLinearizationLUTWithMSB ( const HcalDetId id) const

Definition at line 407 of file HcaluLUTTPGCoder.cc.

References getLUTId(), and inputLUT_.

Referenced by setMaskBit().

407  {
408  int lutId = getLUTId(id);
409  return inputLUT_.at(lutId);
410 }
int getLUTId(HcalSubdetector id, int ieta, int iphi, int depth) const
std::vector< Lut > inputLUT_
float HcaluLUTTPGCoder::getLUTGain ( HcalDetId  id) const
overridevirtual

Implements HcalTPGCoder.

Definition at line 402 of file HcaluLUTTPGCoder.cc.

References gain_, and getLUTId().

402  {
403  int lutId = getLUTId(id);
404  return gain_.at(lutId);
405 }
int getLUTId(HcalSubdetector id, int ieta, int iphi, int depth) const
std::vector< float > gain_
int HcaluLUTTPGCoder::getLUTId ( HcalSubdetector  id,
int  ieta,
int  iphi,
int  depth 
) const

Definition at line 67 of file HcaluLUTTPGCoder.cc.

References firstHBEta_, firstHEEta_, firstHFEta_, HcalBarrel, HcalEndcap, HcalForward, lastHBEta_, lastHEEta_, lastHFEta_, maxDepthHB_, maxDepthHE_, maxDepthHF_, nFi_, nHBEta_, nHEEta_, nHFEta_, sizeHB_, and sizeHE_.

Referenced by adc2Linear(), getLinearizationLUTWithMSB(), getLUTGain(), getLUTId(), getLUTPedestal(), getMSB(), lookupMSB(), setMaskBit(), update(), and updateXML().

67  {
68  int retval(0);
69  if (id == HcalBarrel) {
70  retval = (depth-1)+maxDepthHB_*(iphi-1);
71  if (ieta>0) retval+=maxDepthHB_*nFi_*(ieta-firstHBEta_);
72  else retval+=maxDepthHB_*nFi_*(ieta+lastHBEta_+nHBEta_);
73  } else if (id == HcalEndcap) {
74  retval = sizeHB_;
75  retval+= (depth-1)+maxDepthHE_*(iphi-1);
76  if (ieta>0) retval+=maxDepthHE_*nFi_*(ieta-firstHEEta_);
77  else retval+=maxDepthHE_*nFi_*(ieta+lastHEEta_+nHEEta_);
78  } else if (id == HcalForward) {
79  retval = sizeHB_+sizeHE_;
80  retval+= (depth-1)+maxDepthHF_*(iphi-1);
81  if (ieta>0) retval+=maxDepthHF_*nFi_*(ieta-firstHFEta_);
82  else retval+=maxDepthHF_*nFi_*(ieta+lastHFEta_+nHFEta_);
83  }
84  return retval;
85 }
static const int nFi_
int HcaluLUTTPGCoder::getLUTId ( uint32_t  rawid) const

Definition at line 87 of file HcaluLUTTPGCoder.cc.

References HcalDetId::depth(), getLUTId(), HcalDetId::ieta(), HcalDetId::iphi(), and HcalDetId::subdet().

87  {
88  HcalDetId detid(rawid);
89  return getLUTId(detid.subdet(), detid.ieta(), detid.iphi(), detid.depth());
90 }
int getLUTId(HcalSubdetector id, int ieta, int iphi, int depth) const
int HcaluLUTTPGCoder::getLUTId ( const HcalDetId detid) const

Definition at line 92 of file HcaluLUTTPGCoder.cc.

References HcalDetId::depth(), getLUTId(), HcalDetId::ieta(), HcalDetId::iphi(), and HcalDetId::subdet().

92  {
93  return getLUTId(detid.subdet(), detid.ieta(), detid.iphi(), detid.depth());
94 }
HcalSubdetector subdet() const
get the subdetector
Definition: HcalDetId.h:49
int depth() const
get the tower depth
Definition: HcalDetId.cc:108
int getLUTId(HcalSubdetector id, int ieta, int iphi, int depth) const
int ieta() const
get the cell ieta
Definition: HcalDetId.h:56
int iphi() const
get the cell iphi
Definition: HcalDetId.cc:103
float HcaluLUTTPGCoder::getLUTPedestal ( HcalDetId  id) const
overridevirtual

Implements HcalTPGCoder.

Definition at line 397 of file HcaluLUTTPGCoder.cc.

References getLUTId(), and ped_.

397  {
398  int lutId = getLUTId(id);
399  return ped_.at(lutId);
400 }
int getLUTId(HcalSubdetector id, int ieta, int iphi, int depth) const
std::vector< float > ped_
bool HcaluLUTTPGCoder::getMSB ( const HcalDetId id,
int  adc 
) const

Definition at line 418 of file HcaluLUTTPGCoder.cc.

References getLUTId(), inputLUT_, lumiPlot::lut, and QIE8_LUT_MSB.

Referenced by lookupMSB(), and setMaskBit().

418  {
419  int lutId = getLUTId(id);
420  const Lut& lut = inputLUT_.at(lutId);
421  return (lut.at(adc) & QIE8_LUT_MSB);
422 }
int adc(sample_type sample)
get the ADC sample (12 bits)
int getLUTId(HcalSubdetector id, int ieta, int iphi, int depth) const
static const int QIE8_LUT_MSB
Definition: Lut.h:32
std::vector< Lut > inputLUT_
void HcaluLUTTPGCoder::lookupMSB ( const HBHEDataFrame df,
std::vector< bool > &  msb 
) const

Definition at line 412 of file HcaluLUTTPGCoder.cc.

References HcalQIESample::adc(), getMSB(), mps_fire::i, HBHEDataFrame::id(), HBHEDataFrame::sample(), and HBHEDataFrame::size().

Referenced by HcalTriggerPrimitiveAlgo::addSignal(), and setMaskBit().

412  {
413  msb.resize(df.size());
414  for (int i=0; i<df.size(); ++i)
415  msb[i] = getMSB(df.id(), df.sample(i).adc());
416 }
int adc() const
get the ADC sample
Definition: HcalQIESample.h:22
int size() const
total number of samples in the digi
Definition: HBHEDataFrame.h:26
const HcalQIESample & sample(int i) const
access a sample
Definition: HBHEDataFrame.h:39
bool getMSB(const HcalDetId &id, int adc) const
const HcalDetId & id() const
Definition: HBHEDataFrame.h:22
void HcaluLUTTPGCoder::lookupMSB ( const QIE11DataFrame df,
std::vector< std::bitset< 2 >> &  msb 
) const

Definition at line 425 of file HcaluLUTTPGCoder.cc.

References ecalMGPA::adc(), getLUTId(), mps_fire::i, QIE11DataFrame::id(), lumiPlot::lut, QIE11_LUT_MSB0, QIE11_LUT_MSB1, QIE11DataFrame::samples(), and upgradeQIE11LUT_.

426 {
427  int lutId = getLUTId(HcalDetId(df.id()));
428  const Lut& lut = upgradeQIE11LUT_.at(lutId);
429  for (int i = 0; i < df.samples(); ++i) {
430  msb[i][0] = lut.at(df[i].adc()) & QIE11_LUT_MSB0;
431  msb[i][1] = lut.at(df[i].adc()) & QIE11_LUT_MSB1;
432  }
433 }
int adc(sample_type sample)
get the ADC sample (12 bits)
static const int QIE11_LUT_MSB1
static const int QIE11_LUT_MSB0
int getLUTId(HcalSubdetector id, int ieta, int iphi, int depth) const
edm::DataFrame::id_type id() const
std::vector< Lut > upgradeQIE11LUT_
int samples() const
total number of samples in the digi
Definition: Lut.h:32
void HcaluLUTTPGCoder::setLUTGenerationMode ( bool  gen)
inline

Definition at line 49 of file HcaluLUTTPGCoder.h.

References relval_steps::gen(), and LUTGenerationMode_.

Referenced by HcalTPGCoderULUT::buildCoder().

49 { LUTGenerationMode_ = gen; };
def gen(fragment, howMuch)
Production test section ####.
void HcaluLUTTPGCoder::setMaskBit ( int  bit)
inline
void HcaluLUTTPGCoder::update ( const HcalDbService conditions)

Definition at line 226 of file HcaluLUTTPGCoder.cc.

References ecalMGPA::adc(), HcalCoderDb::adc2fC(), hcaldqm::constants::adc2fC, bitToMask_, AlignmentProducer_cff::calibrations, data, HcalTopology::dddConstants(), HcalTopology::etaRange(), EnergyCorrector::etas, firstHFEta_, muonCSCDigis_cfi::gain, gain_, HcalCondObjectContainer< Item >::getAllChannels(), HcalTPChannelParameter::getFGBitInfo(), HcalL1TriggerObject::getFlag(), HcalDbService::getHcalCalibrations(), HcalDbService::getHcalChannelStatus(), HcalDbService::getHcalCoder(), HcalDbService::getHcalL1TriggerObject(), HcalDbService::getHcalLutMetadata(), HcalDbService::getHcalShape(), HcalDbService::getHcalTPChannelParameter(), HcalLutMetadatum::getLutGranularity(), getLUTId(), HcalLutMetadata::getNominalGain(), HcalL1TriggerObject::getPedestal(), HcalLutMetadatum::getRCalib(), HcalL1TriggerObject::getRespGain(), HcalChannelStatus::getValue(), HcalCondObjectContainer< Item >::getValues(), DetId::Hcal, HcalBarrel, HcalEndcap, HcalForward, mps_fire::i, HcalDetId::ietaAbs(), INPUT_LUT_SIZE, inputLUT_, HcalDDDRecConstants::isPlan1(), lastHFEta_, lsb_, LUTGenerationMode_, HcalCalibrations::LUTrespcorrgain(), hpstanc_transforms::max, min(), or, ped_, HcalCalibrations::pedestal(), QIE10_LUT_BITMASK, QIE11_LUT_BITMASK, QIE11_LUT_MSB0, QIE11_LUT_MSB1, QIE8_LUT_BITMASK, hcalTTPDigis_cfi::samples, HFDataFrame::setSample(), HBHEDataFrame::setSample(), QIE11DataFrame::setSample(), QIE10DataFrame::setSample(), HBHEDataFrame::setSize(), HFDataFrame::setSize(), mps_update::status, HcalDetId::subdet(), topo_, HcalTopology::triggerMode(), HcalTopologyMode::TriggerMode_2018, HcalTopologyMode::TriggerMode_2018legacy, UPGRADE_LUT_SIZE, upgradeQIE10LUT_, upgradeQIE11LUT_, and HcalTopology::valid().

Referenced by progressbar.ProgressBar::__next__(), MatrixUtil.Matrix::__setitem__(), MatrixUtil.Steps::__setitem__(), Vispa.Gui.VispaWidget.VispaWidget::autosize(), HcalTPGCoderULUT::buildCoder(), Vispa.Views.LineDecayView.LineDecayContainer::createObject(), HcalTPGCoderULUT::dbRecordCallback(), Vispa.Views.LineDecayView.LineDecayContainer::deselectAllObjects(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::deselectAllWidgets(), Vispa.Gui.VispaWidget.VispaWidget::enableAutosizing(), dqm-mbProfile.Profile::finish(), progressbar.ProgressBar::finish(), Vispa.Gui.MenuWidget.MenuWidget::leaveEvent(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::mouseMoveEvent(), Vispa.Gui.MenuWidget.MenuWidget::mouseMoveEvent(), Vispa.Views.LineDecayView.LineDecayContainer::mouseMoveEvent(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::mouseReleaseEvent(), Vispa.Views.LineDecayView.LineDecayContainer::objectMoved(), MatrixUtil.Steps::overwrite(), Vispa.Views.LineDecayView.LineDecayContainer::removeObject(), Vispa.Gui.ConnectableWidget.ConnectableWidget::removePorts(), Vispa.Gui.FindDialog.FindDialog::reset(), Vispa.Gui.PortConnection.PointToPointConnection::select(), Vispa.Gui.VispaWidget.VispaWidget::select(), Vispa.Views.LineDecayView.LineDecayContainer::select(), Vispa.Gui.VispaWidget.VispaWidget::setText(), Vispa.Gui.VispaWidget.VispaWidget::setTitle(), Vispa.Gui.ZoomableWidget.ZoomableWidget::setZoom(), Vispa.Views.LineDecayView.LineDecayContainer::setZoom(), and Vispa.Gui.PortConnection.PointToPointConnection::updateConnection().

226  {
227 
229  const HcalLutMetadata *metadata = conditions.getHcalLutMetadata();
230  assert(metadata !=0);
231  float nominalgain_ = metadata->getNominalGain();
232 
233  std::map<int, float> cosh_ieta;
234  for (int i = firstHFEta_; i <= lastHFEta_; ++i){
235  std::pair<double,double> etas = topo_->etaRange(HcalForward,i);
236  double eta1 = etas.first;
237  double eta2 = etas.second;
238  cosh_ieta[i] = cosh((eta1 + eta2)/2.);
239  }
240 
241  for (const auto& id: metadata->getAllChannels()) {
242  if (not (id.det() == DetId::Hcal and topo_->valid(id)))
243  continue;
244  HcalDetId cell(id);
245  HcalSubdetector subdet = cell.subdet();
246  if (subdet != HcalBarrel and subdet != HcalEndcap and subdet != HcalForward)
247  continue;
248 
249  const HcalQIECoder* channelCoder = conditions.getHcalCoder (cell);
250  const HcalQIEShape* shape = conditions.getHcalShape(cell);
251  HcalCoderDb coder (*channelCoder, *shape);
252  const HcalLutMetadatum *meta = metadata->getValues(cell);
253 
254  unsigned int mipMax = 0;
255  unsigned int mipMin = 0;
256 
259  topo_->dddConstants()->isPlan1(cell)) {
260  const HcalTPChannelParameter *channelParameters = conditions.getHcalTPChannelParameter(cell);
261  mipMax = channelParameters->getFGBitInfo() >> 16;
262  mipMin = channelParameters->getFGBitInfo() & 0xFFFF;
263  }
264 
265  int lutId = getLUTId(cell);
266  float ped = 0;
267  float gain = 0;
268  uint32_t status = 0;
269 
270  if (LUTGenerationMode_){
271  const HcalCalibrations& calibrations = conditions.getHcalCalibrations(cell);
272  for (int capId = 0; capId < 4; ++capId){
273  ped += calibrations.pedestal(capId);
274  gain += calibrations.LUTrespcorrgain(capId);
275  }
276  ped /= 4.0;
277  gain /= 4.0;
278 
279  //Get Channel Quality
280  const HcalChannelStatus* channelStatus = conditions.getHcalChannelStatus(cell);
281  status = channelStatus->getValue();
282  } else {
283  const HcalL1TriggerObject* myL1TObj = conditions.getHcalL1TriggerObject(cell);
284  ped = myL1TObj->getPedestal();
285  gain = myL1TObj->getRespGain();
286  status = myL1TObj->getFlag();
287  } // LUTGenerationMode_
288 
289  ped_[lutId] = ped;
290  gain_[lutId] = gain;
291  bool isMasked = ( (status & bitToMask_) > 0 );
292  float rcalib = meta->getRCalib();
293 
294  // Input LUT for HB/HE/HF
295  if (subdet == HcalBarrel || subdet == HcalEndcap){
296  HBHEDataFrame frame(cell);
297  frame.setSize(1);
298  CaloSamples samples(cell, 1);
299 
300  int granularity = meta->getLutGranularity();
301 
302  for (unsigned int adc = 0; adc < INPUT_LUT_SIZE; ++adc) {
303  frame.setSample(0,HcalQIESample(adc));
304  coder.adc2fC(frame,samples);
305  float adc2fC = samples[0];
306 
307  if (isMasked) inputLUT_[lutId][adc] = 0;
308  else inputLUT_[lutId][adc] = (LutElement) std::min(std::max(0, int((adc2fC -ped) * gain * rcalib / nominalgain_ / granularity)), QIE8_LUT_BITMASK);
309  }
310 
311  unsigned short data[] = {0, 0, 0};
312  QIE11DataFrame upgradeFrame(edm::DataFrame(0, data, 3));
313  CaloSamples upgradeSamples(cell, 1);
314  for (unsigned int adc = 0; adc < UPGRADE_LUT_SIZE; ++adc) {
315  upgradeFrame.setSample(0, adc, 0, true);
316  coder.adc2fC(upgradeFrame, upgradeSamples);
317  float adc2fC = upgradeSamples[0];
318 
319  if (isMasked) {
320  upgradeQIE11LUT_[lutId][adc] = 0;
321  } else {
322  upgradeQIE11LUT_[lutId][adc] = (LutElement) std::min(std::max(0, int((adc2fC -ped) * gain * rcalib / nominalgain_ / granularity)), QIE11_LUT_BITMASK);
323  if (adc >= mipMin and adc < mipMax)
325  else if (adc >= mipMax)
327  }
328  }
329  } // endif HBHE
330  else if (subdet == HcalForward){
331  HFDataFrame frame(cell);
332  frame.setSize(1);
333  CaloSamples samples(cell, 1);
334 
335  for (unsigned int adc = 0; adc < INPUT_LUT_SIZE; ++adc) {
336  frame.setSample(0,HcalQIESample(adc));
337  coder.adc2fC(frame,samples);
338  float adc2fC = samples[0];
339  if (isMasked) inputLUT_[lutId][adc] = 0;
340  else inputLUT_[lutId][adc] = std::min(std::max(0,int((adc2fC - ped) * gain * rcalib / lsb_ / cosh_ieta[cell.ietaAbs()] )), QIE8_LUT_BITMASK);
341  }
342 
343  unsigned short data[] = {0, 0, 0, 0};
344  QIE10DataFrame upgradeFrame(edm::DataFrame(0, data, 4));
345  CaloSamples upgradeSamples(cell, 1);
346  for (unsigned int adc = 0; adc < UPGRADE_LUT_SIZE; ++adc) {
347  upgradeFrame.setSample(0, adc, 0, 0, 0, true);
348  coder.adc2fC(upgradeFrame, upgradeSamples);
349  float adc2fC = upgradeSamples[0];
350 
351  if (isMasked)
352  upgradeQIE10LUT_[lutId][adc] = 0;
353  else
354  upgradeQIE10LUT_[lutId][adc] = std::min(std::max(0,int((adc2fC - ped) * gain * rcalib / lsb_ / cosh_ieta[cell.ietaAbs()] )), QIE10_LUT_BITMASK);
355  }
356  } // endif HF
357  }// for cell
358 }
int adc(sample_type sample)
get the ADC sample (12 bits)
uint32_t getFlag() const
float getPedestal() const
const HcalDDDRecConstants * dddConstants() const
Definition: HcalTopology.h:161
const HcalTPChannelParameter * getHcalTPChannelParameter(const HcalGenericDetId &fId) const
static const int QIE11_LUT_MSB1
static const int QIE11_LUT_BITMASK
const HcalChannelStatus * getHcalChannelStatus(const HcalGenericDetId &fId) const
const HcalTopology * topo_
static const int QIE11_LUT_MSB0
static const float lsb_
double pedestal(int fCapId) const
get pedestal for capid=0..3
const Item * getValues(DetId fId, bool throwOnFail=true) const
static const int QIE8_LUT_BITMASK
uint8_t getLutGranularity() const
HcalTopologyMode::TriggerMode triggerMode() const
Definition: HcalTopology.h:32
unsigned short LutElement
static const size_t UPGRADE_LUT_SIZE
int getLUTId(HcalSubdetector id, int ieta, int iphi, int depth) const
float getRespGain() const
std::vector< DetId > getAllChannels() const
float getNominalGain() const
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
float getRCalib() const
const HcalL1TriggerObject * getHcalL1TriggerObject(const HcalGenericDetId &fId) const
HcalSubdetector
Definition: HcalAssistant.h:31
const HcalLutMetadata * getHcalLutMetadata() const
T min(T a, T b)
Definition: MathUtil.h:58
std::vector< Lut > upgradeQIE11LUT_
static const int QIE10_LUT_BITMASK
double const adc2fC[256]
Definition: Constants.h:229
double LUTrespcorrgain(int fCapId) const
get LUT corrected and response corrected gain for capid=0..3
std::vector< float > ped_
std::vector< float > gain_
const HcalQIECoder * getHcalCoder(const HcalGenericDetId &fId) const
virtual bool valid(const DetId &id) const
const HcalQIEShape * getHcalShape(const HcalGenericDetId &fId) const
static const size_t INPUT_LUT_SIZE
std::pair< double, double > etaRange(HcalSubdetector subdet, int ieta) const
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:82
uint32_t getFGBitInfo() const
get FG bit information
std::vector< Lut > upgradeQIE10LUT_
bool isPlan1(const HcalDetId &id) const
uint32_t getValue() const
const HcalCalibrations & getHcalCalibrations(const HcalGenericDetId &fId) const
std::vector< Lut > inputLUT_
void HcaluLUTTPGCoder::update ( const char *  filename,
bool  appendMSB = false 
)

Definition at line 96 of file HcaluLUTTPGCoder.cc.

References ecalMGPA::adc(), particleFlowClusterECALTimeSelected_cfi::depth, FrontierConditions_GlobalTag_cff::file, getLUTId(), HcalBarrel, HcalEndcap, HcalForward, mps_fire::i, hcalTTPDigis_cfi::id, recoMuon::in, diffTreeTool::index, INPUT_LUT_SIZE, inputLUT_, QIE8_LUT_BITMASK, QIE8_LUT_MSB, findQualityFiles::size, AlCaHLTBitMon_QueryRunRegistry::string, topo_, and HcalTopology::valid().

Referenced by progressbar.ProgressBar::__next__(), MatrixUtil.Matrix::__setitem__(), MatrixUtil.Steps::__setitem__(), Vispa.Gui.VispaWidget.VispaWidget::autosize(), Vispa.Views.LineDecayView.LineDecayContainer::createObject(), Vispa.Views.LineDecayView.LineDecayContainer::deselectAllObjects(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::deselectAllWidgets(), Vispa.Gui.VispaWidget.VispaWidget::enableAutosizing(), dqm-mbProfile.Profile::finish(), progressbar.ProgressBar::finish(), Vispa.Gui.MenuWidget.MenuWidget::leaveEvent(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::mouseMoveEvent(), Vispa.Gui.MenuWidget.MenuWidget::mouseMoveEvent(), Vispa.Views.LineDecayView.LineDecayContainer::mouseMoveEvent(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::mouseReleaseEvent(), Vispa.Views.LineDecayView.LineDecayContainer::objectMoved(), MatrixUtil.Steps::overwrite(), Vispa.Views.LineDecayView.LineDecayContainer::removeObject(), Vispa.Gui.ConnectableWidget.ConnectableWidget::removePorts(), Vispa.Gui.FindDialog.FindDialog::reset(), Vispa.Gui.PortConnection.PointToPointConnection::select(), Vispa.Gui.VispaWidget.VispaWidget::select(), Vispa.Views.LineDecayView.LineDecayContainer::select(), Vispa.Gui.VispaWidget.VispaWidget::setText(), Vispa.Gui.VispaWidget.VispaWidget::setTitle(), Vispa.Gui.ZoomableWidget.ZoomableWidget::setZoom(), Vispa.Views.LineDecayView.LineDecayContainer::setZoom(), and Vispa.Gui.PortConnection.PointToPointConnection::updateConnection().

96  {
97 
98  std::ifstream file(filename, std::ios::in);
99  assert(file.is_open());
100 
101  std::vector<HcalSubdetector> subdet;
102  std::string buffer;
103 
104  // Drop first (comment) line
105  std::getline(file, buffer);
106  std::getline(file, buffer);
107 
108  unsigned int index = buffer.find("H", 0);
109  while (index < buffer.length()){
110  std::string subdetStr = buffer.substr(index, 2);
111  if (subdetStr == "HB") subdet.push_back(HcalBarrel);
112  else if (subdetStr == "HE") subdet.push_back(HcalEndcap);
113  else if (subdetStr == "HF") subdet.push_back(HcalForward);
114  //TODO Check subdet
115  //else exception
116  index += 2;
117  index = buffer.find("H", index);
118  }
119 
120  // Get upper/lower ranges for ieta/iphi/depth
121  size_t nCol = subdet.size();
122  assert(nCol > 0);
123 
124  std::vector<int> ietaU;
125  std::vector<int> ietaL;
126  std::vector<int> iphiU;
127  std::vector<int> iphiL;
128  std::vector<int> depU;
129  std::vector<int> depL;
130  std::vector< Lut > lutFromFile(nCol);
131  LutElement lutValue;
132 
133  for (size_t i=0; i<nCol; ++i) {
134  int ieta;
135  file >> ieta;
136  ietaL.push_back(ieta);
137  }
138 
139  for (size_t i=0; i<nCol; ++i) {
140  int ieta;
141  file >> ieta;
142  ietaU.push_back(ieta);
143  }
144 
145  for (size_t i=0; i<nCol; ++i) {
146  int iphi;
147  file >> iphi;
148  iphiL.push_back(iphi);
149  }
150 
151  for (size_t i=0; i<nCol; ++i) {
152  int iphi;
153  file >> iphi;
154  iphiU.push_back(iphi);
155  }
156 
157  for (size_t i=0; i<nCol; ++i) {
158  int dep;
159  file >> dep;
160  depL.push_back(dep);
161  }
162 
163  for (size_t i=0; i<nCol; ++i) {
164  int dep;
165  file >> dep;
166  depU.push_back(dep);
167  }
168 
169  // Read Lut Entry
170  for (size_t i=0; file >> lutValue; i = (i+1) % nCol){
171  lutFromFile[i].push_back(lutValue);
172  }
173 
174  // Check lut size
175  for (size_t i=0; i<nCol; ++i) assert(lutFromFile[i].size() == INPUT_LUT_SIZE);
176 
177  for (size_t i=0; i<nCol; ++i){
178  for (int ieta = ietaL[i]; ieta <= ietaU[i]; ++ieta){
179  for (int iphi = iphiL[i]; iphi <= iphiU[i]; ++iphi){
180  for (int depth = depL[i]; depth <= depU[i]; ++depth){
181 
182  HcalDetId id(subdet[i], ieta, iphi, depth);
183  if (!topo_->valid(id)) continue;
184 
185  int lutId = getLUTId(id);
186  for (size_t adc = 0; adc < INPUT_LUT_SIZE; ++adc){
187  if (appendMSB){
188  // Append FG bit LUT to MSB
189  // MSB = Most Significant Bit = bit 10
190  // Overwrite bit 10
191  LutElement msb = (lutFromFile[i][adc] != 0 ? QIE8_LUT_MSB : 0);
192  inputLUT_[lutId][adc] = (msb | (inputLUT_[lutId][adc] & QIE8_LUT_BITMASK));
193  }
194  else inputLUT_[lutId][adc] = lutFromFile[i][adc];
195  }// for adc
196  }// for depth
197  }// for iphi
198  }// for ieta
199  }// for nCol
200 }
int adc(sample_type sample)
get the ADC sample (12 bits)
size
Write out results.
const HcalTopology * topo_
static const int QIE8_LUT_BITMASK
unsigned short LutElement
int getLUTId(HcalSubdetector id, int ieta, int iphi, int depth) const
static const int QIE8_LUT_MSB
virtual bool valid(const DetId &id) const
static const size_t INPUT_LUT_SIZE
std::vector< Lut > inputLUT_
void HcaluLUTTPGCoder::updateXML ( const char *  filename)

Definition at line 202 of file HcaluLUTTPGCoder.cc.

References LutXml::create_lut_map(), particleFlowClusterECALTimeSelected_cfi::depth, Exception, XMLProcessor::getInstance(), LutXml::getLutFast(), getLUTId(), HcalBarrel, HcalEndcap, HcalForward, mps_fire::i, INPUT_LUT_SIZE, inputLUT_, HcalDetId::kHcalDepthMask2, HcalDetId::kHcalEtaMask2, HcalDetId::kHcalPhiMask2, lumiPlot::lut, XMLProcessor::terminate(), topo_, and HcalTopology::valid().

Referenced by HcalTPGCoderULUT::buildCoder().

202  {
203  LutXml * _xml = new LutXml(filename);
204  _xml->create_lut_map();
206  for (int ieta = -HcalDetId::kHcalEtaMask2;
207  ieta <= HcalDetId::kHcalEtaMask2; ++ieta) {
208  for (int iphi = 0; iphi <= HcalDetId::kHcalPhiMask2; ++iphi) {
209  for (int depth = 1; depth < HcalDetId::kHcalDepthMask2; ++depth) {
210  for (int isub=0; isub<3; ++isub) {
211  HcalDetId detid(subdet[isub], ieta, iphi, depth);
212  if (!topo_->valid(detid)) continue;
213  int id = getLUTId(subdet[isub], ieta, iphi, depth);
214  std::vector<unsigned int>* lut = _xml->getLutFast(detid);
215  if (lut==0) throw cms::Exception("PROBLEM: No inputLUT_ in xml file for ") << detid << std::endl;
216  if (lut->size()!=INPUT_LUT_SIZE) throw cms::Exception ("PROBLEM: Wrong inputLUT_ size in xml file for ") << detid << std::endl;
217  for (unsigned int i=0; i<INPUT_LUT_SIZE; ++i) inputLUT_[id][i] = (LutElement)lut->at(i);
218  }
219  }
220  }
221  }
222  delete _xml;
224 }
Definition: LutXml.h:27
int create_lut_map(void)
Definition: LutXml.cc:497
const HcalTopology * topo_
unsigned short LutElement
static const int kHcalDepthMask2
Definition: HcalDetId.h:26
int getLUTId(HcalSubdetector id, int ieta, int iphi, int depth) const
int terminate(void)
HcalSubdetector
Definition: HcalAssistant.h:31
static const int kHcalPhiMask2
Definition: HcalDetId.h:16
virtual bool valid(const DetId &id) const
std::vector< unsigned int > * getLutFast(uint32_t det_id)
Definition: LutXml.cc:127
static const size_t INPUT_LUT_SIZE
static const int kHcalEtaMask2
Definition: HcalDetId.h:20
static XMLProcessor * getInstance()
Definition: XMLProcessor.h:145
std::vector< Lut > inputLUT_

Member Data Documentation

int HcaluLUTTPGCoder::bitToMask_
private

Definition at line 80 of file HcaluLUTTPGCoder.h.

Referenced by setMaskBit(), and update().

int HcaluLUTTPGCoder::firstHBEta_
private

Definition at line 81 of file HcaluLUTTPGCoder.h.

Referenced by getLUTId(), and HcaluLUTTPGCoder().

int HcaluLUTTPGCoder::firstHEEta_
private

Definition at line 82 of file HcaluLUTTPGCoder.h.

Referenced by getLUTId(), and HcaluLUTTPGCoder().

int HcaluLUTTPGCoder::firstHFEta_
private

Definition at line 83 of file HcaluLUTTPGCoder.h.

Referenced by getLUTId(), HcaluLUTTPGCoder(), and update().

std::vector<float> HcaluLUTTPGCoder::gain_
private

Definition at line 87 of file HcaluLUTTPGCoder.h.

Referenced by getLUTGain(), HcaluLUTTPGCoder(), and update().

const size_t HcaluLUTTPGCoder::INPUT_LUT_SIZE = 128
staticprivate

Definition at line 69 of file HcaluLUTTPGCoder.h.

Referenced by HcaluLUTTPGCoder(), update(), and updateXML().

std::vector< Lut > HcaluLUTTPGCoder::inputLUT_
private
int HcaluLUTTPGCoder::lastHBEta_
private

Definition at line 81 of file HcaluLUTTPGCoder.h.

Referenced by getLUTId(), and HcaluLUTTPGCoder().

int HcaluLUTTPGCoder::lastHEEta_
private

Definition at line 82 of file HcaluLUTTPGCoder.h.

Referenced by getLUTId(), and HcaluLUTTPGCoder().

int HcaluLUTTPGCoder::lastHFEta_
private

Definition at line 83 of file HcaluLUTTPGCoder.h.

Referenced by getLUTId(), HcaluLUTTPGCoder(), and update().

const float HcaluLUTTPGCoder::lsb_ =1./16
static

Definition at line 33 of file HcaluLUTTPGCoder.h.

Referenced by CaloTPGTranscoderULUT::setup(), and update().

bool HcaluLUTTPGCoder::LUTGenerationMode_
private

Definition at line 79 of file HcaluLUTTPGCoder.h.

Referenced by setLUTGenerationMode(), and update().

int HcaluLUTTPGCoder::maxDepthHB_
private

Definition at line 81 of file HcaluLUTTPGCoder.h.

Referenced by getLUTId(), and HcaluLUTTPGCoder().

int HcaluLUTTPGCoder::maxDepthHE_
private

Definition at line 82 of file HcaluLUTTPGCoder.h.

Referenced by getLUTId(), and HcaluLUTTPGCoder().

int HcaluLUTTPGCoder::maxDepthHF_
private

Definition at line 83 of file HcaluLUTTPGCoder.h.

Referenced by getLUTId(), and HcaluLUTTPGCoder().

const int HcaluLUTTPGCoder::nFi_ = 72
staticprivate

Definition at line 71 of file HcaluLUTTPGCoder.h.

Referenced by getLUTId(), and HcaluLUTTPGCoder().

int HcaluLUTTPGCoder::nHBEta_
private

Definition at line 81 of file HcaluLUTTPGCoder.h.

Referenced by getLUTId(), and HcaluLUTTPGCoder().

int HcaluLUTTPGCoder::nHEEta_
private

Definition at line 82 of file HcaluLUTTPGCoder.h.

Referenced by getLUTId(), and HcaluLUTTPGCoder().

int HcaluLUTTPGCoder::nHFEta_
private

Definition at line 83 of file HcaluLUTTPGCoder.h.

Referenced by getLUTId(), and HcaluLUTTPGCoder().

std::vector<float> HcaluLUTTPGCoder::ped_
private

Definition at line 88 of file HcaluLUTTPGCoder.h.

Referenced by getLUTPedestal(), HcaluLUTTPGCoder(), and update().

const int HcaluLUTTPGCoder::QIE10_LUT_BITMASK = 0x7FF
static

Definition at line 60 of file HcaluLUTTPGCoder.h.

Referenced by adc2Linear(), and update().

const int HcaluLUTTPGCoder::QIE11_LUT_BITMASK = 0x3FF
static

Definition at line 61 of file HcaluLUTTPGCoder.h.

Referenced by adc2Linear(), and update().

const int HcaluLUTTPGCoder::QIE11_LUT_MSB0 = 0x400
staticprivate

Definition at line 74 of file HcaluLUTTPGCoder.h.

Referenced by lookupMSB(), and update().

const int HcaluLUTTPGCoder::QIE11_LUT_MSB1 = 0x800
staticprivate

Definition at line 75 of file HcaluLUTTPGCoder.h.

Referenced by lookupMSB(), and update().

const int HcaluLUTTPGCoder::QIE8_LUT_BITMASK = 0x3FF
static

Definition at line 59 of file HcaluLUTTPGCoder.h.

Referenced by adc2Linear(), and update().

const int HcaluLUTTPGCoder::QIE8_LUT_MSB = 0x400
staticprivate

Definition at line 73 of file HcaluLUTTPGCoder.h.

Referenced by getMSB(), and update().

int HcaluLUTTPGCoder::sizeHB_
private

Definition at line 81 of file HcaluLUTTPGCoder.h.

Referenced by getLUTId(), and HcaluLUTTPGCoder().

int HcaluLUTTPGCoder::sizeHE_
private

Definition at line 82 of file HcaluLUTTPGCoder.h.

Referenced by getLUTId(), and HcaluLUTTPGCoder().

int HcaluLUTTPGCoder::sizeHF_
private

Definition at line 83 of file HcaluLUTTPGCoder.h.

Referenced by HcaluLUTTPGCoder().

const HcalTopology* HcaluLUTTPGCoder::topo_
private

Definition at line 78 of file HcaluLUTTPGCoder.h.

Referenced by HcaluLUTTPGCoder(), update(), and updateXML().

const size_t HcaluLUTTPGCoder::UPGRADE_LUT_SIZE = 256
staticprivate

Definition at line 70 of file HcaluLUTTPGCoder.h.

Referenced by HcaluLUTTPGCoder(), and update().

std::vector< Lut > HcaluLUTTPGCoder::upgradeQIE10LUT_
private

Definition at line 85 of file HcaluLUTTPGCoder.h.

Referenced by adc2Linear(), HcaluLUTTPGCoder(), and update().

std::vector< Lut > HcaluLUTTPGCoder::upgradeQIE11LUT_
private

Definition at line 86 of file HcaluLUTTPGCoder.h.

Referenced by adc2Linear(), HcaluLUTTPGCoder(), lookupMSB(), and update().