Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

AIDA_Histogram1D.h

Go to the documentation of this file.
00001 // Emacs -*- C++ -*-
00002 #ifndef ANAPHE_AIDAHISTOGRAM1D
00003 #define ANAPHE_AIDAHISTOGRAM1D 1
00004 
00005 #include "AIDA_BaseHistogram.h"
00006 #include "AIDA_Dev/IDevHistogram1D.h"
00007 #include <vector>
00008 
00009 namespace Anaphe {
00010   namespace AIDA_Histogram_native {
00011     class GravityBin1D;
00012 
00023 class AIDA_Histogram1D : public AIDA_BaseHistogram,
00024                          virtual public AIDA::Dev::IDevHistogram1D
00025 {
00026 
00027 public:
00029   AIDA_Histogram1D( const std::string& title,
00030                     int numberOfBins,
00031                     double lowEdge,
00032                     double highEdge );
00034   AIDA_Histogram1D( const std::string& title,
00035                     const std::vector< double >& edges );
00037   AIDA_Histogram1D( const AIDA_Histogram1D& h );
00039   AIDA_Histogram1D( const AIDA::IHistogram1D& h );
00041   ~AIDA_Histogram1D();
00046 protected:
00047   void updateAnnotation() const;
00048 public:
00049   bool reset();
00050   int entries() const;
00051 
00053   int allEntries() const;
00054   int extraEntries() const;
00055   double equivalentBinEntries() const;
00056   double sumBinHeights() const;
00057   double sumAllBinHeights() const;
00058   double sumExtraBinHeights() const;
00059   double minBinHeight() const;
00060   double maxBinHeight() const;
00061   bool scale( double scaleFactor );
00062 
00064   bool fill( double x, double weight = 1. ) ;
00065   double binMean( int index ) const;
00066   int binEntries( int index ) const;
00067   double binHeight( int index ) const;
00068   double binError( int index ) const;
00069   double mean() const;
00070   double rms() const;
00071   const AIDA::IAxis& axis() const;
00072   int coordToIndex( double coord ) const;
00073   bool add( const AIDA::IHistogram1D & h );  
00074 
00076   bool setBinContents( int binIndex,
00077                        int entries,
00078                        double height,
00079                        double error,
00080                        double centre );
00081   bool setRms( double rms );
00082 
00083 private:
00085   bool calculateStatistics() const;
00086   bool increment( const AIDA_Histogram1D& h );
00087 
00088 private:
00089   AIDA::IAxis*                  m_axis;
00090   std::vector< GravityBin1D* >  m_bins;
00091   mutable bool                  m_validStatistics;
00092 
00093   // Histogram statistics
00094   mutable double                m_mean;
00095   mutable double                m_rms;
00096   mutable int                   m_entries;
00097   mutable int                   m_extraEntries;
00098   mutable double                m_ebe;
00099   mutable double                m_sumBinHeights;
00100   mutable double                m_sumExtraBinHeights;
00101   mutable double                m_minHeight;
00102   mutable double                m_maxHeight;
00103   double                        m_sumWeightTimesSquaredX;
00104 
00106   AIDA_Histogram1D& operator=( const AIDA_Histogram1D& );
00107 };
00108 
00109   }
00110 }
00111 
00112 #endif /* ifndef ANAPHE_AIDAHISTOGRAM1D */

Generated on Tue Nov 19 12:32:16 2002 for AIDA_Histogram_native by doxygen1.2.16