// @(#)root/hist:$Id$ // Author: Rene Brun 26/12/94 /************************************************************************* * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. * * All rights reserved. * * * * For the licensing terms see $ROOTSYS/LICENSE. * * For the list of contributors see $ROOTSYS/README/CREDITS. * *************************************************************************/ #ifndef ROOT_TH1 #define ROOT_TH1 ////////////////////////////////////////////////////////////////////////// // // // TH1 // // // // 1-Dim histogram base class. // // // ////////////////////////////////////////////////////////////////////////// #include "TAxis.h" #include "TAttLine.h" #include "TAttFill.h" #include "TAttMarker.h" #include "TArrayC.h" #include "TArrayS.h" #include "TArrayI.h" #include "TArrayF.h" #include "TArrayD.h" #include "Foption.h" #include "TVectorFfwd.h" #include "TVectorDfwd.h" #include "TFitResultPtr.h" #include class TF1; class TH1D; class TBrowser; class TDirectory; class TList; class TCollection; class TVirtualFFT; class TVirtualHistPainter; class TH1 : public TNamed, public TAttLine, public TAttFill, public TAttMarker { public: // enumeration specifying type of statistics for bin errors enum EBinErrorOpt { kNormal = 0, ///< errors with Normal (Wald) approximation: errorUp=errorLow= sqrt(N) kPoisson = 1 , ///< errors from Poisson interval at 68.3% (1 sigma) kPoisson2 = 2 ///< errors from Poisson interval at 95% CL (~ 2 sigma) }; // enumeration specifying which axes can be extended enum { kNoAxis = 0, ///< NOTE: Must always be 0 !!! kXaxis = BIT(0), kYaxis = BIT(1), kZaxis = BIT(2), kAllAxes = kXaxis | kYaxis | kZaxis }; /// Enumeration specifying the way to treat statoverflow enum EStatOverflows { kIgnore = 0, ///< Override global flag ignoring the overflows kConsider = 1, ///< Override global flag considering the overflows kNeutral = 2, ///< Adapt to the global flag }; friend class TH1Merger; protected: Int_t fNcells; ///< number of bins(1D), cells (2D) +U/Overflows TAxis fXaxis; ///< X axis descriptor TAxis fYaxis; ///< Y axis descriptor TAxis fZaxis; ///< Z axis descriptor Short_t fBarOffset; ///< (1000*offset) for bar charts or legos Short_t fBarWidth; ///< (1000*width) for bar charts or legos Double_t fEntries; ///< Number of entries Double_t fTsumw; ///< Total Sum of weights Double_t fTsumw2; ///< Total Sum of squares of weights Double_t fTsumwx; ///< Total Sum of weight*X Double_t fTsumwx2; ///< Total Sum of weight*X*X Double_t fMaximum; ///< Maximum value for plotting Double_t fMinimum; ///< Minimum value for plotting Double_t fNormFactor; ///< Normalization factor TArrayD fContour; ///< Array to display contour levels TArrayD fSumw2; ///< Array of sum of squares of weights TString fOption; ///< histogram options TList *fFunctions; ///<->Pointer to list of functions (fits and user) Int_t fBufferSize; ///< fBuffer size Double_t *fBuffer; ///<[fBufferSize] entry buffer TDirectory *fDirectory; ///