Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

BeamMonSwicPeds.cxx

Go to the documentation of this file.
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     

Generated on Mon Feb 15 11:06:25 2010 for loon by  doxygen 1.3.9.1