/** @file DetermDiffDrift.cpp @author Brian Magill @creationdate 5/03/2007 */ #include "DetermDiffDrift.h" #include "Interp_Funct.h" #include #include #include #include #include using namespace std; DetermDiffDrift::DetermDiffDrift(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() ); for(i = 0; i < signal.size(); i++) { tim.push_back(time[i]); V.push_back(signal[i]); } Vref = signal.sum()/signal.size(); tref = time.sum()/time.size(); if (linear_fit(&tim[0], &V[0], n, &intercept, &m_slope, &cov00, &cov01, &cov11, &sumsq) != 0) { strErr = "DetermDiffDrift():Error occurred in calculating drift"; throw runtime_error(strErr); } slope = m_slope; slopeError = sqrt(cov11); hasData = true; }