/** @file DetermDriftCorr.cpp @author Brian Magill @creationdate 8/8/2006 */ #include "DetermDriftCorr.h" #include "Interp_Funct.h" #include #include #include #include #include using namespace std; DetermDriftCorr::DetermDriftCorr(valarray const &time, valarray const &signal) { string strErr; unsigned long i; double cov00; double cov01; double cov11; double sumsq; vector tim; vector V; double intercept; double m_slope; long n = signal.size(); assert(time.size() == signal.size() ); Vref = signal.sum()/signal.size(); tref = time.sum()/time.size(); for(i = 0; i < signal.size(); i++) { tim.push_back(time[i]); V.push_back(Vref/signal[i]); } if (linear_fit(&tim[0], &V[0], n, &intercept, &m_slope, &cov00, &cov01, &cov11, &sumsq) != 0) { strErr = "DetermDriftCorr():Error occurred in calculating drift"; throw runtime_error(strErr); } slope = m_slope; slopeError = sqrt(cov11); hasData = true; }