Table of Contents
The concept of "partition" was first introduced in the HistOOgrams package. A partition describes how one dimension of the problem space is divided into intervals. Consider the case of a 50 bin histogram in the range [0,50], a partition object containing the number of bins and the interval limits will describe completely how we divide such interval: a set of 50 sub-intervals of equal width. This is termed a "Fixed" or "Even" partition.
It may be required to book an histogram over the same range as the example above, but with bins of variable widths. In this case, a partition containing the number of bins, the lower limit of each sub-interval and the upper limit of the last sub-interval will describe completely [0,50] interval is divided. Such a partition is termed a "variable" or "Uneven" partition.
An n-dimensional HTL histogram thus contains n partitions, one for each axis. The only concern of a partition is to associate any ordered 1D space with a discreet numbered space. Thus it associates an interval to a positive integer. Hence, a partition knows about the width of the intervals and their lower point/bound or upper point/bound.
In the HTL package, a histogram delegates to its partitions the task of locating a bin. In other words, information about the lower and upper bounds of a bin or the width of a given bin are obtained from the corresponding partition. This is shown in the following code fragment, which demonstrates how the lower and upper bound and width of a given bin can be obtained.
Histo1D *histo = new Histo1D("Transient Histo_1D", 20, 0.0, 20.0 );
...
histo->partition().lower_point(i) // Obtain the lower bound of bin i
histo->partition().bin_width(i) // and its width
histo->partition().upper_point(i) // and upper bound