00001
00002 #ifndef ANAPHE_PROFILEBIN1D
00003 #define ANAPHE_PROFILEBIN1D 1
00004
00005 namespace Anaphe {
00006 namespace AIDA_Histogram_native {
00007
00030 class ProfileBin1D
00031 {
00032 public:
00034 ProfileBin1D();
00036 ~ProfileBin1D() {;}
00038 bool fill( double weight, double x, double y );
00040 bool reset();
00042 bool scale( double scaleFactor );
00044 bool increment( const ProfileBin1D & bin );
00046 bool increment( int extraEntries,
00047 double extraValue,
00048 double extraError,
00049 double extraSpread,
00050 double extraCentre );
00052 bool set( int newEntries,
00053 double newValue,
00054 double newError,
00055 double newSpread,
00056 double newCentre );
00058 int entries() const;
00060 double value() const;
00062 double error() const;
00064 double spread() const;
00066 double centreOfGravityX() const;
00067
00068 protected:
00070 double sumOfWeights() const;
00071
00072 private:
00074 int m_entries;
00076 double m_sumOfWeights;
00077 double m_sumOfWeightTimesExtraCoordinate;
00078 double m_sumOfWeightTimesSquaredExtraCoordinate;
00079 double m_sumOfWeightTimesCoordinate;
00080 };
00081
00082 }
00083 }
00084
00085 #include "ProfileBin1D.inl"
00086
00087 #endif