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_