| 187 |
|
} |
| 188 |
|
|
| 189 |
|
outStream << "#######################################################\n"; |
| 190 |
< |
outStream << "# Standard Deviations in those quantities follow:\n"; |
| 190 |
> |
outStream << "# 95% confidence intervals in those quantities follow:\n"; |
| 191 |
|
outStream << "#######################################################\n"; |
| 192 |
|
|
| 193 |
|
for (int j = 0; j < nBins_; j++) { |
| 200 |
|
|
| 201 |
|
int n = outputData->accumulator[j]->count(); |
| 202 |
|
if (n != 0) { |
| 203 |
< |
writeStdDev( outStream, outputData, j ); |
| 203 |
> |
writeErrorBars( outStream, outputData, j ); |
| 204 |
|
} |
| 205 |
|
} |
| 206 |
|
outStream << std::endl; |
| 257 |
|
} |
| 258 |
|
} |
| 259 |
|
|
| 260 |
< |
void SpatialStatistics::writeStdDev(ostream& os, OutputData* dat, |
| 260 |
> |
void SpatialStatistics::writeErrorBars(ostream& os, OutputData* dat, |
| 261 |
|
unsigned int bin) { |
| 262 |
|
assert(int(bin) < nBins_); |
| 263 |
|
int n = dat->accumulator[bin]->count(); |
| 265 |
|
|
| 266 |
|
if( dat->dataType == odtReal ) { |
| 267 |
|
RealType r; |
| 268 |
< |
dynamic_cast<Accumulator*>(dat->accumulator[bin])->getStdDev(r); |
| 268 |
> |
dynamic_cast<Accumulator*>(dat->accumulator[bin])->get95percentConfidenceInterval(r); |
| 269 |
|
if (isinf(r) || isnan(r) ) { |
| 270 |
|
sprintf( painCave.errMsg, |
| 271 |
|
"SpatialStatistics detected a numerical error writing:\n" |
| 279 |
|
|
| 280 |
|
} else if ( dat->dataType == odtVector3 ) { |
| 281 |
|
Vector3d v; |
| 282 |
< |
dynamic_cast<VectorAccumulator*>(dat->accumulator[bin])->getStdDev(v); |
| 282 |
> |
dynamic_cast<VectorAccumulator*>(dat->accumulator[bin])->get95percentConfidenceInterval(v); |
| 283 |
|
if (isinf(v[0]) || isnan(v[0]) || |
| 284 |
|
isinf(v[1]) || isnan(v[1]) || |
| 285 |
|
isinf(v[2]) || isnan(v[2]) ) { |
| 360 |
|
bool hasCoordinateOrigin = rnemdParams->haveCoordinateOrigin(); |
| 361 |
|
|
| 362 |
|
if (hasCoordinateOrigin) { |
| 363 |
< |
coordinateOrigin_ = rnemdParams->getCoordinateOrigin(); |
| 363 |
> |
std::vector<RealType> co = rnemdParams->getCoordinateOrigin(); |
| 364 |
> |
if (co.size() != 3) { |
| 365 |
> |
sprintf(painCave.errMsg, |
| 366 |
> |
"RNEMD: Incorrect number of parameters specified for coordinateOrigin.\n" |
| 367 |
> |
"\tthere should be 3 parameters, but %lu were specified.\n", |
| 368 |
> |
co.size()); |
| 369 |
> |
painCave.isFatal = 1; |
| 370 |
> |
simError(); |
| 371 |
> |
} |
| 372 |
> |
coordinateOrigin_.x() = co[0]; |
| 373 |
> |
coordinateOrigin_.y() = co[1]; |
| 374 |
> |
coordinateOrigin_.z() = co[2]; |
| 375 |
|
} else { |
| 376 |
|
coordinateOrigin_ = V3Zero; |
| 377 |
|
} |