00001 #ifndef CALIBFORMATS_CASTOROBJECTS_CASTORTPGCODER_H 00002 #define CALIBFORMATS_CASTOROBJECTS_CASTORTPGCODER_H 1 00003 00004 #include "CalibFormats/CaloObjects/interface/IntegerCaloSamples.h" 00005 #include "DataFormats/HcalDigi/interface/CastorDataFrame.h" 00006 #include "DataFormats/HcalDetId/interface/HcalDetId.h" 00007 00008 // forward declaration of EventSetup is all that is needed here 00009 namespace edm { 00010 class EventSetup; 00011 } 00012 00025 class CastorTPGCoder { 00026 public: 00027 00028 // virtual void adc2Linear(const CastorDataFrame& df, IntegerCaloSamples& ics) const = 0; 00029 00030 virtual unsigned short adc2Linear(HcalQIESample sample,HcalDetId id) const = 0; 00031 unsigned short adc2Linear(unsigned char adc, HcalDetId id) const { return adc2Linear(HcalQIESample(adc,0,0,0),id); } 00032 virtual float getLUTPedestal(HcalDetId id) const = 0; 00033 virtual float getLUTGain(HcalDetId id) const = 0; 00037 virtual std::vector<unsigned short> getLinearizationLUT(HcalDetId id) const; 00038 }; 00039 00040 #endif