00001 00010 #ifndef __QELE_CONVERTER_HH_ 00011 #define __QELE_CONVERTER_HH_ 00012 00013 #include "QCuore.hh" 00014 00015 #include <map> 00016 00017 class QEleConverter { 00018 00019 public: 00020 00022 static QEleConverter& GetInstance(); 00023 00025 virtual ~QEleConverter(); 00026 00028 void SetExternalBias(float bias) {if(bias >= 0) fExternalBias = bias; } 00029 00031 float GetExternalBias() const { return fExternalBias; } 00032 00041 short GetBinaryBias(float realBias) const; 00042 00047 float GetRealBias(unsigned short binaryBias) const; 00048 00056 short GetBinaryGain(float realGain) const; 00057 00062 float GetRealGain(unsigned short binaryGain) const; 00063 00072 short GetBinaryResistance(float realResistance) const; 00073 00078 float GetRealResistance(unsigned short binaryResistance) const; 00079 00080 00085 float GetRealCutFrequency(unsigned short binaryCutFreq) const; 00086 00087 00109 float GetRealOffset(const unsigned short dacLow, 00110 const unsigned short dacHi, 00111 const bool polarity, 00112 const bool sBit) const; 00113 private: 00114 QEleConverter(); 00115 00120 float fExternalBias; 00121 00122 std::map<unsigned short,float> fBinaryBiasMap; 00123 std::map<unsigned short,float> fBinaryGainMap; 00124 std::map<unsigned short,float> fBinaryResistanceMap; 00125 std::map<unsigned short,float> fBinaryCutFreq; 00126 00127 std::map<float,unsigned short> fRealBiasMap; 00128 std::map<float,unsigned short> fRealGainMap; 00129 std::map<float,unsigned short> fRealResistanceMap; 00130 00131 }; 00132 00133 #endif //__QELE_CONVERTER_HH_