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

AIDA_Profile2D.h

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

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