CMS 3D CMS Logo

List of all members | Public Member Functions
HcalTPGCoder Class Referenceabstract

#include <HcalTPGCoder.h>

Inheritance diagram for HcalTPGCoder:
HcaluLUTTPGCoder

Public Member Functions

virtual void adc2Linear (const HBHEDataFrame &df, IntegerCaloSamples &ics) const =0
 
virtual void adc2Linear (const HFDataFrame &df, IntegerCaloSamples &ics) const =0
 
virtual void adc2Linear (const QIE10DataFrame &df, IntegerCaloSamples &ics) const =0
 
virtual void adc2Linear (const QIE11DataFrame &df, IntegerCaloSamples &ics) const =0
 
virtual unsigned short adc2Linear (HcalQIESample sample, HcalDetId id) const =0
 
unsigned short adc2Linear (unsigned char adc, HcalDetId id) const
 
virtual void compress (const IntegerCaloSamples &ics, const std::vector< bool > &featureBits, HcalTriggerPrimitiveDigi &tp) const =0
 
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...
 
virtual float getLUTGain (HcalDetId id) const =0
 
virtual float getLUTPedestal (HcalDetId id) const =0
 
virtual ~HcalTPGCoder ()=default
 

Detailed Description

Converts ADC to linear E or ET for use in the TPG path Also compresses linear scale for transmission to RCT

Note : whether the coder produces E or ET is determined by the specific implementation of the coder.

Author
J. Mans - Minnesota

Definition at line 26 of file HcalTPGCoder.h.

Constructor & Destructor Documentation

◆ ~HcalTPGCoder()

virtual HcalTPGCoder::~HcalTPGCoder ( )
virtualdefault

Member Function Documentation

◆ adc2Linear() [1/6]

virtual void HcalTPGCoder::adc2Linear ( const HBHEDataFrame df,
IntegerCaloSamples ics 
) const
pure virtual

◆ adc2Linear() [2/6]

virtual void HcalTPGCoder::adc2Linear ( const HFDataFrame df,
IntegerCaloSamples ics 
) const
pure virtual

Implemented in HcaluLUTTPGCoder.

◆ adc2Linear() [3/6]

virtual void HcalTPGCoder::adc2Linear ( const QIE10DataFrame df,
IntegerCaloSamples ics 
) const
pure virtual

Implemented in HcaluLUTTPGCoder.

◆ adc2Linear() [4/6]

virtual void HcalTPGCoder::adc2Linear ( const QIE11DataFrame df,
IntegerCaloSamples ics 
) const
pure virtual

Implemented in HcaluLUTTPGCoder.

◆ adc2Linear() [5/6]

virtual unsigned short HcalTPGCoder::adc2Linear ( HcalQIESample  sample,
HcalDetId  id 
) const
pure virtual

Implemented in HcaluLUTTPGCoder.

◆ adc2Linear() [6/6]

unsigned short HcalTPGCoder::adc2Linear ( unsigned char  adc,
HcalDetId  id 
) const
inline

Definition at line 34 of file HcalTPGCoder.h.

References gpuClustering::adc, and adc2Linear().

34  {
35  return adc2Linear(HcalQIESample(adc, 0, 0, 0), id);
36  }
virtual void adc2Linear(const HBHEDataFrame &df, IntegerCaloSamples &ics) const =0
uint16_t *__restrict__ uint16_t const *__restrict__ adc

◆ compress()

virtual void HcalTPGCoder::compress ( const IntegerCaloSamples ics,
const std::vector< bool > &  featureBits,
HcalTriggerPrimitiveDigi tp 
) const
pure virtual

Implemented in HcaluLUTTPGCoder.

◆ getLinearizationLUT()

std::vector< unsigned short > HcalTPGCoder::getLinearizationLUT ( HcalDetId  id) const
virtual

Get the full linearization LUT (128 elements). Default implementation just uses adc2Linear to get all values.

Reimplemented in HcaluLUTTPGCoder.

Definition at line 3 of file HcalTPGCoder.cc.

References adc2Linear(), and mps_fire::i.

Referenced by HcalLuttoDB::analyze(), HcalLutManager::getLinearizationLutXmlFromCoder(), and HcalLutManager::getLinearizationLutXmlFromCoderEmap().

3  {
4  std::vector<unsigned short> lut(128);
5  for (unsigned char i = 0; i < 128; ++i)
6  lut[i] = adc2Linear(i, id);
7  return lut;
8 }
virtual void adc2Linear(const HBHEDataFrame &df, IntegerCaloSamples &ics) const =0

◆ getLUTGain()

virtual float HcalTPGCoder::getLUTGain ( HcalDetId  id) const
pure virtual

Implemented in HcaluLUTTPGCoder.

◆ getLUTPedestal()

virtual float HcalTPGCoder::getLUTPedestal ( HcalDetId  id) const
pure virtual

Implemented in HcaluLUTTPGCoder.