00001
00002
00003
00004
00005
00006
00007 #ifndef AIDAPROFILEHIST_H
00008 #define AIDAPROFILEHIST_H
00009
00010
00011
00012 #include <iostream>
00013 #include <string>
00014 #include "Interfaces/IProfileHistogram.h"
00015
00016
00017
00018 #ifdef AIDA_STD
00019 #undef AIDA_STD
00020 #endif
00021 #ifdef AIDA_NOT_USE_STD
00022 #define AIDA_STD
00023 #else
00024 #define AIDA_STD std
00025 #endif
00026
00027
00028
00029
00030 namespace Anaphe {
00031
00032 class CHBookProfile;
00033
00034 class IAnnotation;
00035 class IAnnotationFactory;
00036 class IHistogramFactory;
00037
00038 namespace AIDA_HBook {
00039
00040 class AIDAAxis;
00041
00042 class AIDAProfileHist : virtual public IProfileHistogram
00043 {
00044 public:
00045 AIDAProfileHist(const char* name = " ",
00046 const int& nBinsX = 2,
00047 const double& lowX = 0.0, const double& highX = 1.0,
00048 const double& lowY = 0.0, const double& highY = 1.0,
00049 const IAnnotation* = 0,
00050 const IHistogramFactory* = 0);
00051 AIDAProfileHist(const CHBookProfile*, const IHistogramFactory* = 0);
00052 virtual ~AIDAProfileHist(void);
00053
00054 public:
00058 virtual AIDA_STD::string title(void) const;
00059 virtual void setTitle(const AIDA_STD::string&);
00061 IAnnotation* annotation(void);
00063 virtual int dimensions(void) const;
00065 virtual void reset(void);
00067 virtual int entries(void) const;
00070 virtual int allEntries(void) const;
00072 virtual int extraEntries(void) const;
00075 virtual double equivalentBinEntries(void) const;
00077 virtual double sumBinHeights(void) const;
00079 virtual double sumAllBinHeights(void) const;
00081 virtual double sumExtraBinHeights(void) const;
00083 virtual void fill(double x, double y, double weight = 1.0);
00085 virtual int binEntries(int index) const;
00087 virtual double binHeight(int index) const;
00089 virtual double binError(int index) const;
00091 virtual double binSpread(int index) const;
00094 virtual double mean(void) const;
00097 virtual double rms(void) const;
00099 virtual double minBinHeight(void) const;
00101 virtual int minBin(void) const;
00103 virtual double maxBinHeight(void) const;
00105 virtual int maxBin(void) const;
00107 virtual IAxis* xAxis(void) const;
00109 virtual int coordToIndex(double coord) const;
00111 virtual AIDA_STD::ostream& print(AIDA_STD::ostream& = AIDA_STD::cout) const;
00113 virtual AIDA_STD::ostream& write(AIDA_STD::ostream& = AIDA_STD::cout) const;
00115 virtual int write(const char* filename) const;
00117 const CHBookProfile* representation(void) const;
00118
00119 private:
00122 virtual int checkIndex(int index) const;
00123 virtual int getIntFromString(const AIDA_STD::string&) const;
00124 virtual AIDA_STD::string getStringFromInt(const int&) const;
00125 void crisisMessage(const AIDA_STD::string& featureName) const;
00126
00127 private:
00128 AIDAAxis* axis;
00129 IAnnotation* ann;
00130 IHistogramFactory* factory;
00131 CHBookProfile* histo;
00132 bool ownsHist;
00133
00134 };
00135
00136 }
00137 }
00138
00139
00140 #endif // AIDAPROFILEHIST_H