00001 #include "BeamMonSwicPeds.h" 00002 00003 #include <DatabaseInterface/DbiResultSet.h> 00004 #include <DatabaseInterface/DbiOutRowStream.h> 00005 00006 using namespace std; 00007 00008 BeamMonSwicPeds::BeamMonSwicPeds(const char* devicename) 00009 : fDeviceName(devicename), fMean(96,0), fSigma(96,0) 00010 { 00011 } 00012 00014 DbiTableRow* BeamMonSwicPeds::CreateTableRow() const 00015 { 00016 return new BeamMonSwicPeds; 00017 } 00018 00020 void BeamMonSwicPeds::Fill(DbiResultSet& rs, const DbiValidityRec* /*vrec*/) 00021 { 00022 this->ClearData(); 00023 00024 rs >> fDeviceName >> fNsamples; 00025 for (int ind=0; ind<96; ++ind) { 00026 float tmp=0; 00027 rs >> tmp; 00028 fMean[ind] = tmp; 00029 } 00030 for (int ind=0; ind<96; ++ind) { 00031 float tmp=0; 00032 rs >> tmp; 00033 fSigma[ind] = tmp; 00034 } 00035 } 00036 00038 void BeamMonSwicPeds::Store(DbiOutRowStream& ors, const DbiValidityRec* /*vrec*/) const 00039 { 00040 ors << fDeviceName<< fNsamples; 00041 for (int ind=0; ind<96; ++ind) ors << fMean[ind]; 00042 for (int ind=0; ind<96; ++ind) ors << fSigma[ind]; 00043 } 00044 00045 void BeamMonSwicPeds::ClearData() 00046 { 00047 for (int ind=0; ind<96; ++ind) fMean[ind] = fSigma[ind] = 0.0; 00048 fNsamples = 0; 00049 } 00050 00051 void BeamMonSwicPeds::SetChannelMeans(const std::vector<double>& means) 00052 { 00053 if (means.size() != 96) return; // shouldn't happen 00054 for (size_t ind=0; ind<96; ++ind) fMean[ind] = (float)means[ind]; 00055 } 00056 void BeamMonSwicPeds::SetChannelSigmas(const std::vector<double>& sigmas) 00057 { 00058 if (sigmas.size() != 96) return; // shouldn't happen 00059 for (size_t ind=0; ind<96; ++ind) fSigma[ind] = (float)sigmas[ind]; 00060 } 00061 00062 std::vector<double> BeamMonSwicPeds::GetMeansAsDoubles() const 00063 { 00064 vector<double> ret(96,0); 00065 for (size_t ind=0; ind<96; ++ind) ret[ind] = fMean[ind]; 00066 return ret; 00067 } 00068 00069 std::vector<double> BeamMonSwicPeds::GetSigmasAsDoubles() const 00070 { 00071 vector<double> ret(96,0); 00072 for (size_t ind=0; ind<96; ++ind) ret[ind] = fSigma[ind]; 00073 return ret; 00074 } 00075 00076 ClassImp(BeamMonSwicPeds) 00077
1.3.9.1