00001
00002
00003
00004
00005
00006
00007 #ifndef INCLUDED_AIDAHISTOGRAM1D_H
00008 #define INCLUDED_AIDAHISTOGRAM1D_H 1
00009
00010
00011
00012 #include <string>
00013 #include <vector>
00014 #include "Interfaces/IHistogram1D.h"
00015
00016
00017
00018
00019 namespace Anaphe {
00020
00021 class CHBookHisto;
00022
00023 class IAnnotation;
00024 class IAnnotationFactory;
00025 class IHistogramFactory;
00026
00027 class HistoParameters1D;
00028
00029 namespace AIDA_HBook {
00030
00031 class AIDAAxis;
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048 class AIDAHistogram1D : virtual public IHistogram1D {
00049
00050 public:
00051
00055
00056 AIDAHistogram1D(const char* name,
00057 const int& nBinsX, const double& xMin, const double& xMax,
00058 const Anaphe::IAnnotation* ann = 0, const Anaphe::IHistogramFactory* f = 0);
00059
00060 AIDAHistogram1D(const CHBookHisto*, const Anaphe::IHistogramFactory* = 0);
00061
00062 AIDAHistogram1D(const HistoParameters1D & hp, const Anaphe::IAnnotation* ann = 0, const Anaphe::IHistogramFactory* = 0);
00063
00067
00068 virtual ~AIDAHistogram1D();
00069
00070 public:
00071
00072
00076
00077
00081
00085 virtual std::string title() const;
00086
00087 virtual void setTitle(const std::string& value );
00088
00090 Anaphe::IAnnotation * annotation();
00091
00093 virtual int dimensions() const;
00094
00096 virtual void reset();
00097
00101
00103 virtual int entries() const;
00104
00107 virtual int allEntries() const;
00108
00110 virtual int extraEntries() const;
00111
00115
00117 virtual void fill( double x, double weight = 1 );
00118
00121 virtual double equivalentBinEntries() const;
00122
00126
00128 virtual double sumBinHeights() const;
00129
00131 virtual double sumAllBinHeights() const;
00132
00134 virtual double sumExtraBinHeights() const;
00135
00139
00140
00145
00147 virtual int binEntries( int index ) const;
00148
00150 virtual double binHeight( int index ) const;
00151
00153 virtual double binError( int index ) const;
00154
00158
00161 virtual double mean() const;
00162
00165 virtual double rms() const;
00166
00170
00172 virtual double minBinHeight() const;
00173
00175 virtual int minBin() const;
00176
00178 virtual double maxBinHeight() const;
00179
00181 virtual int maxBin() const;
00182
00186
00188 virtual IAxis* xAxis() const;
00189
00193
00195 virtual int coordToIndex( double coord ) const;
00196
00200
00203
00205 virtual std::ostream& print(std::ostream& s) const;
00206
00209
00211 virtual std::ostream& write(std::ostream& s) const;
00212
00214 virtual int write( const char* file_name ) const;
00215
00217 const CHBookHisto* representation(void) const;
00218
00219 private:
00220
00224
00227 virtual int checkIndex( int index ) const;
00228 virtual int getIntFromString(const std::string&) const;
00229 virtual std::string getStringFromInt(const int&) const;
00230
00231 private:
00232 void notYetMessage(const std::string& featureName) const;
00233 void crisisMessage(const std::string& featureName) const;
00234
00235 private:
00236 AIDAAxis* axis;
00237 IAnnotation* ann;
00238 IHistogramFactory* factory;
00239 CHBookHisto* histo;
00240 bool ownsHist;
00241
00242 };
00243 }
00244 }
00245
00246 #endif // INCLUDED_AIDAHISTOGRAM1D_H