00001
00002
00003
00004
00005
00006
00007 #ifndef AIDAHIST1DVAR_H
00008 #define AIDAHIST1DVAR_H
00009
00010
00011
00012 #include <string>
00013 #include <vector>
00014 #include "Interfaces/IHistogram1D.h"
00015
00016
00017
00018
00019 #ifdef AIDA_STD
00020 # undef AIDA_STD
00021 #endif
00022 #ifdef AIDA_NOT_USE_STD
00023 # define AIDA_STD
00024 #else
00025 # define AIDA_STD std
00026 #endif
00027
00028
00029
00030
00031 namespace Anaphe {
00032
00033 class CHBookHisto;
00034
00035 class IAnnotation;
00036 class IAnnotationFactory;
00037 class IHistogramFactory;
00038
00039 namespace AIDA_HBook {
00040
00041 class AIDAAxis;
00042
00043
00044
00045 class AIDAHist1DVar : virtual public IHistogram1D
00046 {
00047 public:
00048 AIDAHist1DVar(const char* name,
00049 const AIDA_STD::vector<float>& binEdges,
00050 const IAnnotation* = 0,
00051 const IHistogramFactory* f = 0);
00052 AIDAHist1DVar(const CHBookHisto*,
00053 const IHistogramFactory* = 0);
00054 virtual ~AIDAHist1DVar(void);
00055
00056 public:
00060 virtual AIDA_STD::string title(void) const;
00061 virtual void setTitle(const AIDA_STD::string& value);
00063 IAnnotation* annotation(void);
00065 virtual int dimensions(void) const;
00067 virtual void reset(void);
00069 virtual int entries(void) const;
00072 virtual int allEntries(void) const;
00074 virtual int extraEntries(void) const;
00077 virtual double equivalentBinEntries(void) const;
00079 virtual double sumBinHeights(void) const;
00081 virtual double sumAllBinHeights(void) const;
00083 virtual double sumExtraBinHeights(void) const;
00085 virtual void fill(double x, double weight = 1);
00087 virtual int binEntries(int index) const;
00089 virtual double binHeight(int index) const;
00091 virtual double binError(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& s) const;
00113 virtual AIDA_STD::ostream& write(AIDA_STD::ostream& s) const;
00115 virtual int write(const char* file_name) const;
00117 const CHBookHisto* 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 CHBookHisto* histo;
00132 bool ownsHist;
00133
00134 };
00135
00136 }
00137 }
00138
00139
00140 #endif // AIDAHIST1DVAR_H