00001 #ifndef HCAL_CODER_DB_H 00002 #define HCAL_CODER_DB_H 00003 00004 #include "CalibFormats/HcalObjects/interface/HcalChannelCoder.h" 00005 #include "CalibFormats/HcalObjects/interface/QieShape.h" 00006 #include "CalibFormats/HcalObjects/interface/HcalCoder.h" 00007 00016 class HcalQIECoder; 00017 class HcalQIEShape; 00018 00019 class HcalCoderDb : public HcalCoder { 00020 public: 00021 HcalCoderDb (const HcalQIECoder& fCoder, const HcalQIEShape& fShape); 00022 00023 virtual void adc2fC(const HBHEDataFrame& df, CaloSamples& lf) const; 00024 virtual void adc2fC(const HODataFrame& df, CaloSamples& lf) const; 00025 virtual void adc2fC(const HFDataFrame& df, CaloSamples& lf) const; 00026 virtual void adc2fC(const ZDCDataFrame& df, CaloSamples& lf) const; 00027 virtual void adc2fC(const HcalCalibDataFrame& df, CaloSamples& lf) const; 00028 virtual void fC2adc(const CaloSamples& clf, HBHEDataFrame& df, int fCapIdOffset) const; 00029 virtual void fC2adc(const CaloSamples& clf, HFDataFrame& df, int fCapIdOffset) const; 00030 virtual void fC2adc(const CaloSamples& clf, HODataFrame& df, int fCapIdOffset) const; 00031 virtual void fC2adc(const CaloSamples& clf, ZDCDataFrame& df, int fCapIdOffset) const; 00032 virtual void fC2adc(const CaloSamples& clf, HcalCalibDataFrame& df, int fCapIdOffset) const; 00033 private: 00034 template <class Digi> void adc2fC_ (const Digi& df, CaloSamples& clf) const; 00035 template <class Digi> void fC2adc_ (const CaloSamples& clf, Digi& df, int fCapIdOffset) const; 00036 00037 const HcalQIECoder* mCoder; 00038 const HcalQIEShape* mShape; 00039 }; 00040 00041 #endif