protected:

public:

TH1C TH1C() TH1C TH1C(const char* name, const char* title, Int_t nbinsx, Axis_t xlow, Axis_t xup) TH1C TH1C(const char* name, const char* title, Int_t nbinsx, const Float_t* xbins) TH1C TH1C(const char* name, const char* title, Int_t nbinsx, const Double_t* xbins) TH1C TH1C(const TH1C& h1c) virtual void ~TH1C() virtual void AddBinContent(Int_t bin, Stat_t w) virtual void AddBinContent(Int_t bin) static TClass* Class() virtual void Copy(TObject& hnew) virtual TH1* DrawCopy(Option_t* option) virtual Stat_t GetBinContent(Int_t bin) const virtual Stat_t GetBinContent(Int_t bin, Int_t) const virtual Stat_t GetBinContent(Int_t bin, Int_t, Int_t) const virtual TClass* IsA() const TH1C& operator=(const TH1C& h1) virtual void Reset(Option_t* option) virtual void SetBinContent(Int_t bin, Stat_t content) virtual void SetBinContent(Int_t bin, Int_t, Stat_t content) virtual void SetBinContent(Int_t bin, Int_t, Int_t, Stat_t content) virtual void SetBinsLength(Int_t nx) virtual void ShowMembers(TMemberInspector& insp, char* parent) virtual void Streamer(TBuffer& b) void StreamerNVirtual(TBuffer& b)## Data Members

private:

protected:

public:

*-*-*-*-*-*-*-*-*-*-*The H I S T O G R A M Classes*-*-*-*-*-*-*-*-*-*-*-* *-* =============================== *-* *-* ROOT supports the following histogram types: *-* *-* 1-D histograms: *-* TH1C : histograms with one byte per channel. Maximum bin content = 255 *-* TH1S : histograms with one short per channel. Maximum bin content = 65535 *-* TH1F : histograms with one float per channel. Maximum precision 7 digits *-* TH1D : histograms with one double per channel. Maximum precision 14 digits *-* *-* 2-D histograms: *-* TH2C : histograms with one byte per channel. Maximum bin content = 255 *-* TH2S : histograms with one short per channel. Maximum bin content = 65535 *-* TH2F : histograms with one float per channel. Maximum precision 7 digits *-* TH2D : histograms with one double per channel. Maximum precision 14 digits *-* *-* 3-D histograms: *-* TH3C : histograms with one byte per channel. Maximum bin content = 255 *-* TH3S : histograms with one short per channel. Maximum bin content = 65535 *-* TH3F : histograms with one float per channel. Maximum precision 7 digits *-* TH3D : histograms with one double per channel. Maximum precision 14 digits *-* *-* Profile histograms: See classes TProfile and TProfile2D *-* Profile histograms are used to display the mean value of Y and its RMS *-* for each bin in X. Profile histograms are in many cases an elegant *-* replacement of two-dimensional histograms : the inter-relation of two *-* measured quantities X and Y can always be visualized by a two-dimensional *-* histogram or scatter-plot; If Y is an unknown (but single-valued) *-* approximate function of X, this function is displayed by a profile *-* histogram with much better precision than by a scatter-plot. /*-* *-*- All histogram classes are derived from the base class TH1 *-* *-* TH1 *-* ^ *-* | *-* | *-* | *-* ----------------------------------------------------- *-* | | | | | | *-* | | TH1C TH1S TH1F TH1D *-* | | | *-* | | | *-* | TH2 TProfile *-* | | *-* | | *-* | ----------------------------- *-* | | | | | *-* | TH2C TH2S TH2F TH2D *-* | | *-* TH3 | *-* | TProfile2D *-* | *-* ------------------------------ *-* | | | | *-* TH3C TH3S TH3F TH3D *-* *-* The TH*C classes also inherit from the array class TArrayC. *-* The TH*S classes also inherit from the array class TArrayS. *-* The TH*F classes also inherit from the array class TArrayF. *-* The TH*D classes also inherit from the array class TArrayD. *-* *-* Creating histograms *-* =================== *-* Histograms are created by invoking one of the constructors, eg *-* TH1F *h1 = new TH1F("h1","h1 title",100,0,4.4); *-* TH2F *h2 = new TH2F("h2","h2 title",40,0,4,30,-3,3); *-* histograms may also be created by: *-* - calling the Clone function, see below *-* - making a projection from a 2-D or 3-D histogram, see below *-* - reading an histogram from a file *-* When an histogram is created, a reference to it is automatically added *-* to the list of in-memory objects for the current file or directory. *-* This default behaviour can be changed by: *-* h->SetDirectory(0); // for the current histogram h *-* TH1::AddDirectory(kFALSE); // sets a global switch disabling the reference *-* When the histogram is deleted, the reference to it is removed from *-* the list of objects in memory. *-* When a file is closed, all histograms in memory associated with this file *-* are automatically deleted. *-* *-* Fix or variable bin size *-* ======================== *-* *-* All histogram types support either fix or variable bin sizes. *-* 2-D histograms may have fix size bins along X and variable size bins *-* along Y or vice-versa. The functions to fill, manipulate, draw or access *-* histograms are identical in both cases. *-* Each histogram always contains 3 objects TAxis: fXaxis, fYaxis and fZaxis *-* To access the axis parameters, do: *-* TAxis *xaxis = h->GetXaxis(); etc. *-* Double_t binCenter = xaxis->GetBinCenter(bin), etc. *-* See class TAxis for a description of all the access functions. *-* The axis range is always stored internally in double precision. *-* *-* Convention for numbering bins *-* ============================= *-* For all histogram types: nbins, xlow, xup *-* bin = 0; underflow bin *-* bin = 1; first bin with low-edge xlow INCLUDED *-* bin = nbins; last bin with upper-edge xup EXCLUDED *-* bin = nbins+1; overflow bin *-* In case of 2-D or 3-D histograms, a "global bin" number is defined. *-* For example, assuming a 3-D histogram with binx,biny,binz, the function *-* Int_t bin = h->GetBin(binx,biny,binz); *-* returns a global/linearized bin number. This *-* to access the bin information independently of the dimension. *-* *-* Filling histograms *-* ================== *-* An histogram is typically filled with statements like: *-* h1->Fill(x); *-* h1->Fill(x,w); //fill with weight *-* h2->Fill(x,y) *-* h2->Fill(x,y,w) *-* h3->Fill(x,y,z) *-* h3->Fill(x,y,z,w) *-* The Fill functions compute the bin number corresponding to the given *-* x,y or z argument and increment this bin by the given weight. *-* The Fill functions return the bin number for 1-D histograms or global *-* bin number for 2-D and 3-D histograms. *-* If TH1::Sumw2 has been called before filling, the sum of squares of *-* weights is also stored. *-* One can also increment directly a bin number via TH1::AddBinContent *-* or replace the existing content via TH1::SetBinContent. *-* To access the bin content of a given bin, do: *-* Double_t binContent = h->GetBinContent(bin); *-* *-* By default, the bin number is computed using the current axis ranges. *-* If the automatic binning option has been set via *-* h->SetBit(TH1::kCanRebin); *-* then, the Fill Function will automatically extend the axis range to *-* accomodate the new value specified in the Fill argument. The method *-* used is to double the bin size until the new value fits in the range, *-* merging bins two by two. This automatic binning options is extensively *-* used by the TTree::Draw function when histogramming Tree variables *-* with an unknown range. *-* This automatic binning option is supported for 1-d, 2-D and 3-D histograms. *-* *-* During filling, some statistics parameters are incremented to compute *-* the mean value and Root Mean Square with the maximum precision. *-* *-* In case of histograms of type TH1C, TH1S, TH2C, TH2S, TH3C, TH3S *-* a check is made that the bin contents do not exceed the maximum positive *-* capacity (127 or 65535). Histograms of all types may have positive *-* or/and negative bin contents. *-* *-* Rebinning *-* ========= *-* At any time, an histogram can be rebinned via TH1::Rebin. This function *-* returns a new histogram with the rebinned contents. *-* If bin errors were stored, they are recomputed during the rebinning. *-* *-* Associated errors *-* ================= *-* By default, for each bin, the sum of weights is computed at fill time. *-* One can also call TH1::Sumw2 to force the storage and computation *-* of the sum of the square of weights per bin. *-* If Sumw2 has been called, the error per bin is computed as the *-* sqrt(sum of squares of weights), otherwise the error is set equal *-* to the sqrt(bin content). *-* To return the error for a given bin number, do: *-* Double_t error = h->GetBinError(bin); *-* *-* Associated functions *-* ==================== *-* One or more object (typically a TF1*) can be added to the list *-* of functions (fFunctions) associated to each histogram. *-* When TH1::Fit is invoked, the fitted function is added to this list. *-* Given an histogram h, one can retrieve an associated function *-* with: TF1 *myfunc = h->GetFunction("myfunc"); *-* *-* Operations on histograms *-* ======================== *-* *-* Many types of operations are supported on histograms or between histograms *-* - Addition of an histogram to the current histogram *-* - Additions of two histograms with coefficients and storage into the current *-* histogram *-* - Multiplications and Divisions are supported in the same way as additions. *-* - The Add, Divide and Multiply functions also exist to add,divide or multiply *-* an histogram by a function. *-* If an histogram has associated error bars (TH1::Sumw2 has been called), *-* the resulting error bars are also computed assuming independent histograms. *-* In case of divisions, Binomial errors are also supported. *-* *-* *-* Fitting histograms *-* ================== *-* *-* Histograms (1-D,2-D,3-D and Profiles) can be fitted with a user *-* specified function via TH1::Fit. When an histogram is fitted, the *-* resulting function with its parameters is added to the list of functions *-* of this histogram. If the histogram is made persistent, the list of *-* associated functions is also persistent. Given a pointer (see above) *-* to an associated function myfunc, one can retrieve the function/fit *-* parameters with calls such as: *-* Double_t chi2 = myfunc->GetChisquare(); *-* Double_t par0 = myfunc->GetParameter(0); //value of 1st parameter *-* Double_t err0 = myfunc->GetParError(0); //error on first parameter *-* *-* *-* Projections of histograms *-* ======================== *-* One can: *-* - make a 1-D projection of a 2-D histogram or Profile *-* see functions TH2::ProjectionX,Y, TH2::ProfileX,Y, TProfile::ProjectionX *-* - make a 1-D, 2-D or profile out of a 3-D histogram *-* see functions TH3::ProjectionZ, TH3::Project3D. *-* *-* One can fit these projections via: *-* TH2::FitSlicesX,Y, TH3::FitSlicesZ. *-* *-* Random Numbers and histograms *-* ============================= *-* TH1::FillRandom can be used to randomly fill an histogram using *-* the contents of an existing TF1 function or another *-* TH1 histogram (for all dimensions). *-* For example the following two statements create and fill an histogram *-* 10000 times with a default gaussian distribution of mean 0 and sigma 1: *-* TH1F h1("h1","histo from a gaussian",100,-3,3); *-* h1.FillRandom("gaus",10000); *-* TH1::GetRandom can be used to return a random number distributed *-* according the contents of an histogram. *-* *-* Making a copy of an histogram *-* ============================= *-* Like for any other Root object derived from TObject, one can use *-* the Clone function. This makes an identical copy of the original histogram *-* including all associated errors and functions, eg: *-* TH1F *hnew = (TH1F*)h->Clone(); *-* hnew->SetName("hnew"); //recommended, otherwise you get 2 histograms *-* //with the same name *-* *-* Normalizing histograms *-* ====================== *-* One can scale an histogram such that the bins integral is equal to *-* to the normalization parameter via TH1::Scale(Double_t norm); *-* *-* Drawing histograms *-* ================== *-* Histograms are drawn via the THistPainter class. Each histogram has *-* a pointer to its own painter (to be usable in a multithreaded program). *-* Many drawing options are supported. *-* See THistPainter::Paint for more details. *-* The same histogram can be drawn with different options in different pads. *-* When an histogram drawn in a pad is deleted, the histogram is *-* automatically removed from the pad or pads where it was drawn. *-* If an histogram is drawn in a pad, then filled again, the new status *-* of the histogram will be automatically shown in the pad next time *-* the pad is updated. One does not need to redraw the histogram. *-* To draw the current version of an histogram in a pad, one can use *-* h->DrawCopy(); *-* This makes a clone (see Clone below) of the histogram. Once the clone *-* is drawn, the original histogram may be modified or deleted without *-* affecting the aspect of the clone. *-* *-* One can use TH1::SetMaximum and TH1::SetMinimum to force a particular *-* value for the maximum or the minimum scale on the plot. *-* *-* TH1::UseCurrentStyle can be used to change all histogram graphics *-* attributes to correspond to the current selected style. *-* This function must be called for each histogram. *-* In case one reads and draws many histograms from a file, one can force *-* the histograms to inherit automatically the current graphics style *-* by calling before gROOT->ForceStyle(); *-* *-* *-* Setting Drawing histogram contour levels (2-D hists only) *-* ========================================================= *-* By default contours are automatically generated at equidistant *-* intervals. A default value of 20 levels is used. This can be modified *-* via TH1::SetContour or TH1::SetContourLevel. *-* the contours level info is used by the drawing options "cont", "surf", *-* and "lego". *-* *-* Setting histogram graphics attributes *-* ===================================== *-* The histogram classes inherit from the attribute classes: *-* TAttLine, TAttFill, TAttMarker and TAttText. *-* See the member functions of these classes for the list of options. *-* *-* Giving titles to the X, Y and Z axis *-* ================================= *-* h->GetXaxis()->SetTitle("X axis title"); *-* h->GetYaxis()->SetTitle("Y axis title"); *-* The histogram title and the axis titles can be any TLatex string. *-* The titles are part of the persistent histogram. *-* *-* Saving/Reading histograms to/from a Root file *-* ================================ *-* The following statements create a Root file and store an histogram *-* on the file. Because TH1 derives from TNamed, the key identifier on *-* the file is the histogram name: *-* TFile f("histos.root","new"); *-* TH1F h1("hgaus","histo from a gaussian",100,-3,3); *-* h1.FillRandom("gaus",10000); *-* h1->Write(); *-* To Read this histogram in another Root session, do: *-* TFile f("histos.root"); *-* TH1F *h = (TH1F*)f.Get("hgaus"); *-* One can save all histograms in memory to the file by: *-* file->Write(); *-* *-* Miscelaneous operations *-* ======================= *-* *-* TH1::KolmogorovTest: Statistical test of compatibility in shape between *-* two histograms. *-* TH1::Smooth smooths the bin contents of a 1-d histogram *-* TH1::Integral returns the integral of bin contents in a given bin range *-* TH1::GetMean(int axis) returns the mean value along axis *-* TH1::GetRMS(int axis) returns the Root Mean Square along axis *-* TH1::GetEntries returns the number of entries *-* TH1::Reset() resets the bin contents and errors of an histogram. *-* /* */ *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

TH1C(): TH1(), TArrayC()

TH1C(const char *name,const char *title,Int_t nbins,Axis_t xlow,Axis_t xup) : TH1(name,title,nbins,xlow,xup), TArrayC(nbins+2)

Create a 1-Dim histogram with fix bins of type char (one byte per channel) ========================================================================== (see TH1::TH1 for explanation of parameters)

TH1C(const char *name,const char *title,Int_t nbins,const Float_t *xbins) : TH1(name,title,nbins,xbins), TArrayC(nbins+2)

Create a 1-Dim histogram with variable bins of type char (one byte per channel) ========================================================================== (see TH1::TH1 for explanation of parameters)

TH1C(const char *name,const char *title,Int_t nbins,const Double_t *xbins) : TH1(name,title,nbins,xbins), TArrayC(nbins+2)

Create a 1-Dim histogram with variable bins of type char (one byte per channel) ========================================================================== (see TH1::TH1 for explanation of parameters)

~TH1C()

TH1C(const TH1C &h1c)

void AddBinContent(Int_t bin)

*-*-*-*-*-*-*-*-*-*Increment bin content by 1*-*-*-*-*-*-*-*-*-*-*-*-*-* *-* ==========================

void AddBinContent(Int_t bin, Stat_t w)

*-*-*-*-*-*-*-*-*-*Increment bin content by w*-*-*-*-*-*-*-*-*-*-*-*-*-* *-* ==========================

void Copy(TObject &newth1)

TH1* DrawCopy(Option_t *option)

Stat_t GetBinContent(Int_t bin) const

void Reset(Option_t *option)

Stat_t GetBinContent(Int_t bin, Int_t) const Stat_t GetBinContent(Int_t bin, Int_t, Int_t) const void SetBinContent(Int_t bin, Stat_t content) void SetBinContent(Int_t bin, Int_t, Stat_t content) void SetBinContent(Int_t bin, Int_t, Int_t, Stat_t content) void SetBinsLength(Int_t nx) TH1C& operator=(const TH1C& h1) TClass* Class() TClass* IsA() const void ShowMembers(TMemberInspector& insp, char* parent) void Streamer(TBuffer& b) void StreamerNVirtual(TBuffer& b)

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.