00001 // Emacs -*- C++ -*- 00002 #ifndef ANAPHE_GRAVITYBIN1D 00003 #define ANAPHE_GRAVITYBIN1D 1 00004 00005 namespace Anaphe { 00006 namespace AIDA_Histogram_native { 00007 00009 00010 class GravityBin1D 00011 { 00012 public: 00014 GravityBin1D(); 00016 ~GravityBin1D() { /*nop*/; } 00021 bool fill( double weight, double coord ); 00023 bool reset(); 00025 bool scale( double factor ); 00027 bool increment( const GravityBin1D& otherBin ); 00028 bool increment( int extraEntries, 00029 double extraHeight, 00030 double extraError, 00031 double extraCentre ); 00033 bool set( int entriesNew, 00034 double heightNew, 00035 double errorNew, 00036 double centreNew ); 00038 int entries() const; 00040 double height() const; 00042 double error() const; 00044 double errorSquared() const; 00046 double centreOfGravityX() const; 00047 00048 private: 00049 int m_entries; 00050 double m_sumOfWeights; 00051 double m_sumOfWeightTimesCoord; 00052 double m_sumOfSquaredWeights; 00053 }; 00054 00055 } 00056 } 00057 00058 #include "GravityBin1D.inl" 00059 00060 #endif /* ifndef ANAPHE_GRAVITYBIN1D */