- for(list<double>::iterator measIt = meas->begin(); measIt != meas->end(); ++measIt)
- computations[compid].err += pow( *measIt - computations[compid].val, 2 );
- computations[compid].err /= nmeas*(nmeas-1);
- computations[compid].err = sqrt( computations[compid].err );
+ for(vector< vector<double> >::iterator measIt = meas->begin(); measIt != meas->end(); ++measIt)
+ computations[compid].err += pow( (*measIt)[ival] - computations[compid].val, 2 );
+ computations[compid].err = sqrt( computations[compid].err ) / nmeas;
+}
+
+template <typename obstype>
+void obs<obstype>::mean(const string& compid, vector< vector<int> > *meas, const int& ival)
+{
+ computations[compid].val = 0;
+ computations[compid].err = 0;
+
+ int nmeas = meas->size();
+
+ for(vector< vector<int> >::iterator measIt = meas->begin(); measIt != meas->end(); ++measIt)
+ computations[compid].val += (*measIt)[ival];
+ computations[compid].val /= nmeas;
+
+ for(vector< vector<int> >::iterator measIt = meas->begin(); measIt != meas->end(); ++measIt)
+ computations[compid].err += pow( (*measIt)[ival] - computations[compid].val, 2 );
+ computations[compid].err = sqrt( computations[compid].err ) / nmeas;