Profile2D histograms are used to display the mean
value of Z and its RMS for each cell in X,Y.
Profile2D histograms are in many cases an
elegant replacement of three-dimensional histograms : the inter-relation of three
measured quantities X, Y and Z can always be visualized by a three-dimensional
histogram or scatter-plot; its representation on the line-printer is not particularly
satisfactory, except for sparse data. If Z is an unknown (but single-valued)
approximate function of X,Y this function is displayed by a profile2D histogram with
much better precision than by a scatter-plot.
The following formulae show the cumulated contents (capital letters) and the values
displayed by the printing or plotting routines (small letters) of the elements for cell I, J.
2
H(I,J) = sum Z E(I,J) = sum Z
l(I,J) = sum l L(I,J) = sum l
h(I,J) = H(I,J)/L(I,J) s(I,J) = sqrt(E(I,J)/L(I,J)- h(I,J)**2)
e(I,J) = s(I,J)/sqrt(L(I,J))
In the special case where s(I,J) is zero (eg, case of 1 entry only in one cell)
e(I,J) is computed from the average of the s(I,J) for all cells.
This simple/crude approximation was suggested in order to keep the cell
during a fit operation.
Example of a profile2D histogram
{
TCanvas *c1 = new TCanvas("c1","Profile histogram example",200,10,700,500);
hprof2d = new TProfile2D("hprof2d","Profile of pz versus px and py",40,-4,4,40,-4,4,0,20);
Float_t px, py, pz;
for ( Int_t i=0; i<25000; i++) {
gRandom->Rannor(px,py);
pz = px*px + py*py;
hprof2d->Fill(px,py,pz,1);
}
hprof2d->Draw();
}

*-*-*-*-*-*Normal Constructor for Profile histograms*-*-*-*-*-*-*-*-*-*
*-* ==========================================
The first eight parameters are similar to TH2D::TH2D.
All values of z are accepted at filling time.
To fill a profile2D histogram, one must use TProfile2D::Fill function.
Note that when filling the profile histogram the function Fill
checks if the variable z is betyween fZmin and fZmax.
If a minimum or maximum value is set for the Z scale before filling,
then all values below zmin or above zmax will be discarded.
Setting the minimum or maximum value for the Z scale before filling
has the same effect as calling the special TProfile2D constructor below
where zmin and zmax are specified.
H(I,J) is printed as the cell contents. The errors computed are s(I,J) if CHOPT='S'
(spread option), or e(I,J) if CHOPT=' ' (error on mean).
See TProfile2D::BuildOptions for explanation of parameters

*-*-*-*-*-*Constructor for Profile2D histograms with range in z*-*-*-*-*-*
*-* ====================================================
The first eight parameters are similar to TH2D::TH2D.
Only the values of Z between ZMIN and ZMAX will be considered at filling time.
zmin and zmax will also be the maximum and minimum values
on the z scale when drawing the profile2D.
See TProfile2D::BuildOptions for more explanations on errors

*-*-*-*-*-*-*Set Profile2D histogram structure and options*-*-*-*-*-*-*-*-*
*-* =============================================
If a cell has N data points all with the same value Z (especially
possible when dealing with integers), the spread in Z for that cell
is zero, and the uncertainty assigned is also zero, and the cell is
ignored in making subsequent fits. If SQRT(Z) was the correct error
in the case above, then SQRT(Z)/SQRT(N) would be the correct error here.
In fact, any cell with non-zero number of entries N but with zero spread
should have an uncertainty SQRT(Z)/SQRT(N).
Now, is SQRT(Z)/SQRT(N) really the correct uncertainty?
that it is only in the case where the Z variable is some sort
of counting statistics, following a Poisson distribution. This should
probably be set as the default case. However, Z can be any variable
from an original NTUPLE, not necessarily distributed "Poissonly".
The computation of errors is based on the parameter option:
option:
' ' (Default) Errors are Spread/SQRT(N) for Spread.ne.0. ,
" " SQRT(Z)/SQRT(N) for Spread.eq.0,N.gt.0 ,
" " 0. for N.eq.0
's' Errors are Spread for Spread.ne.0. ,
" " SQRT(Z) for Spread.eq.0,N.gt.0 ,
" " 0. for N.eq.0
'i' Errors are Spread/SQRT(N) for Spread.ne.0. ,
" " 1./SQRT(12.*N) for Spread.eq.0,N.gt.0 ,
" " 0. for N.eq.0
The third case above corresponds to Integer Z values for which the
uncertainty is +-0.5, with the assumption that the probability that Z
takes any value between Z-0.5 and Z+0.5 is uniform (the same argument
goes for Z uniformly distributed between Z and Z+1); this would be
useful if Z is an ADC measurement, for example. Other, fancier options
would be possible, at the cost of adding one more parameter to the PROFILE2D
For example, if all Z variables are distributed according to some
known Gaussian of standard deviation Sigma, then:
'G' Errors are Spread/SQRT(N) for Spread.ne.0. ,
" " Sigma/SQRT(N) for Spread.eq.0,N.gt.0 ,
" " 0. for N.eq.0
For example, this would be useful when all Z's are experimental quantities
measured with the same instrument with precision Sigma.

*-*-*-*-*Project this profile2D into a 2-D histogram along X,Y*-*-*-*-*-*-*
*-* =====================================================
The projection is always of the type TH2D.
if option "E" is specified, the errors are computed. (default)

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.