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

AIDA_Histogram2D.h

Go to the documentation of this file.
00001 // Emacs -*- C++ -*-
00002 #ifndef ANAPHE_AIDAHISTOGRAM2D
00003 #define ANAPHE_AIDAHISTOGRAM2D 1
00004 
00005 #include "AIDA_BaseHistogram.h"
00006 #include "AIDA_Dev/IDevHistogram2D.h"
00007 #include <vector>
00008 
00009 namespace Anaphe {
00010   namespace AIDA_Histogram_native {
00011     class GravityBin2D;
00012 
00023 class AIDA_Histogram2D : public AIDA_BaseHistogram,
00024                          virtual public AIDA::Dev::IDevHistogram2D
00025 {
00026 
00027 public:
00029   AIDA_Histogram2D( const std::string& title,
00030                     int numberOfBinsX,
00031                     double lowEdgeX,
00032                     double highEdgeX,
00033                     int numberOfBinsY,
00034                     double lowEdgeY,
00035                     double highEdgeY );
00037   AIDA_Histogram2D( const std::string& title,
00038                     const std::vector< double >& edgesX,
00039                     const std::vector< double >& edgesY );
00041   AIDA_Histogram2D( const AIDA_Histogram2D& h );
00043   AIDA_Histogram2D( const AIDA::IHistogram2D& h );
00045   ~AIDA_Histogram2D();
00050 protected:
00051   void updateAnnotation() const;
00052 public:
00053   bool reset();
00054   int entries() const;
00055 
00057   int allEntries() const;
00058   int extraEntries() const;
00059   double equivalentBinEntries() const;
00060   double sumBinHeights() const;
00061   double sumAllBinHeights() const;
00062   double sumExtraBinHeights() const;
00063   double minBinHeight() const;
00064   double maxBinHeight() const;
00065   bool scale( double scaleFactor );
00066 
00068   bool fill( double x, double y, double weight = 1. );
00069   double binMeanX( int indexX, int indexY ) const;
00070   double binMeanY( int indexX, int indexY ) const;
00071   int binEntries( int indexX, int indexY ) const;
00072   int binEntriesX( int indexX ) const;
00073   int binEntriesY( int indexY ) const;
00074   double binHeight( int indexX, int indexY ) const;
00075   double binHeightX( int indexX ) const;
00076   double binHeightY( int indexY ) const;
00077   double binError( int indexX, int indexY ) const;
00078   double meanX() const;
00079   double meanY() const;
00080   double rmsX() const;
00081   double rmsY() const;
00082   const AIDA::IAxis& xAxis() const;
00083   const AIDA::IAxis& yAxis() const;
00084   int coordToIndexX( double coordX ) const;
00085   int coordToIndexY( double coordY ) const;
00086   bool add( const AIDA::IHistogram2D & h );
00087 
00089   bool setBinContents( int binIndexX,
00090                        int binIndexY,
00091                        int entries,
00092                        double height,
00093                        double error,
00094                        double centreX,
00095                        double centreY );
00096   bool setRms( double rmsX, double rmsY );
00097 
00098 private:
00100   bool calculateStatistics() const;
00101   bool increment( const AIDA_Histogram2D& h );
00102 
00103 private:
00104   AIDA::IAxis*                  m_axisX;
00105   AIDA::IAxis*                  m_axisY;
00106   std::vector< std::vector< GravityBin2D* > >  m_bins;
00107   mutable bool                  m_validStatistics;
00108 
00109   // Histogram statistics
00110   mutable double                m_meanX;
00111   mutable double                m_rmsX;
00112   mutable double                m_meanY;
00113   mutable double                m_rmsY;
00114   mutable int                   m_entries;
00115   mutable int                   m_extraEntries;
00116   mutable double                m_ebe;
00117   mutable double                m_sumBinHeights;
00118   mutable double                m_sumExtraBinHeights;
00119   mutable double                m_minHeight;
00120   mutable double                m_maxHeight;
00121   double                        m_sumWeightTimesSquaredX;
00122   double                        m_sumWeightTimesSquaredY;
00123 
00125   AIDA_Histogram2D& operator=( const AIDA_Histogram2D& );
00126 };
00127 
00128   }
00129 }
00130 
00131 #endif /* ifndef ANAPHE_AIDAHISTOGRAM2D */

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