00001 #ifndef CASTOR_CODER_DB_H 00002 #define CASTOR_CODER_DB_H 00003 00004 #include "CalibFormats/CastorObjects/interface/CastorChannelCoder.h" 00005 #include "CalibFormats/CastorObjects/interface/CastorCoder.h" 00006 00013 class CastorQIECoder; 00014 class CastorQIEShape; 00015 00016 class CastorCoderDb : public CastorCoder { 00017 public: 00018 CastorCoderDb (const CastorQIECoder& fCoder, const CastorQIEShape& fShape); 00019 00020 virtual void adc2fC(const CastorDataFrame& df, CaloSamples& lf) const; 00021 00022 virtual void fC2adc(const CaloSamples& clf, CastorDataFrame& df, int fCapIdOffset) const; 00023 00024 private: 00025 template <class Digi> void adc2fC_ (const Digi& df, CaloSamples& clf) const; 00026 template <class Digi> void fC2adc_ (const CaloSamples& clf, Digi& df, int fCapIdOffset) const; 00027 00028 const CastorQIECoder* mCoder; 00029 const CastorQIEShape* mShape; 00030 }; 00031 00032 #endif