Variable bin size

I have boon looking though the root docs and saw that TH1 and friends support variable bin size. What I could not find is how these variable bin sizes are determined. Can anybody give me a hand with this?

Use the specialized constructors in TH1, TH2, TH3 where you can define
an array of bin low-edges. For example with TH1F:

TH1F(const char *name,const char *title,Int_t nbinsx,Axis_t xlow,Axis_t xup); TH1F(const char *name,const char *title,Int_t nbinsx,const Float_t *xbins); TH1F(const char *name,const char *title,Int_t nbinsx,const Double_t *xbins);

Using one of last two constructors, you specify an array xbins of nbinsx+1 values


I see, so, root does not calculate the optimum bin width for you, you have to do that another way and then rebin on the fly.

ROOT calculates the origine and bin size automatically when analyzing Trees via TTree::Draw, but still with equal bin sizes.