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

AIDA_Profile1D.h

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

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