/HISTOGRAM

Manipulation of histograms. Interface to the HBOOK package.

/HISTOGRAM/FILE lun fname [ lrecl chopt ]

LUN I Logical unit number R=0:128
FNAME C File name
LRECL I Record length in words D=1024
CHOPT C Options D=' '

CHOPT:

'' '' Existing file is opened (read mode only).
'N' A new file is opened.
'U' Existing file is opened to be modified.
'D' Reset lock.

Open an HBOOK direct access file.

If LUN is 0 the next free logical unit will be used.

If LRECL is 0 the system will determine the correct record length of an existing file. The maximale record length which can be auto detected is LRECL=8192

/HISTOGRAM/LIST [ chopt ]

CHOPT C Options D=' '

CHOPT:

'' '' List histograms and Ntuples in the current directory.
'I' A verbose format is used (HINDEX), (only for //PAWC).
'S' List with histograms sorted by increasing IDs.

List histograms and Ntuples in the current directory.

/HISTOGRAM/DELETE id

ID C Histogram Identifier Loop

Delete histogram/Ntuple ID in Current Directory (memory).

If ID=0 all histograms and Ntuples are deleted.

To delete histograms in disk files use command HIO/HSCRATCH.

/HISTOGRAM/PLOT [ id chopt ]

ID C Histogram Identifier Loop Minus
CHOPT C Options D=' ' Minus

CHOPT:

'' '' Draw the histogram.
'C' Draw a smooth curve.
'S' Superimpose plot on top of existing picture.
'+' Add contents of ID to last plotted histogram. Use option K with previous histogram if you have several zones.
'-' Substract contents of ID to last plotted histogram. Use option K with previous histogram if you have several zones.
'+-' Draw the delta with the last plotted histogram. Use option K with previous histogram if you have several zones.
'B' Select Bar chart format.
'L' Connect channels contents by a line.
'P' Draw the current polymarker at each channel or cell.
'*' Draw a * at each channel.
'K' Must be given if option 'U' or '+' is given later.
'U' Update channels modified since last call.
'E' Draw error bars and current marker.
'E0' Draw error bars without symbols clipping.
'E1' Draw small lines at the end of the error bars.
'E2' Draw error rectangles.
'E3' Draw a filled area through the end points of the vertical error bars.
'E4' Draw a smoothed filled area through the end points of the vertical error bars.
'A' Axis labels and tick marks are not drawn.
'BOX' Draw 2-Dim with proportional boxes.
'COL' Draw 2-Dim with a color table.
'Z' Used with COL or SURF, it draws the color map.
'SURF' Draw as a surface plot (angles are set via the command angle).
'SURF1' Draw as a surface with color levels
'SURF2' Same as SURF1 but without cell lines.
'SURF3' Same as SURF but with the contour plot (in color) on top.
'SURF4' Draw as a surface with Gouraud shading.
'LEGO' Draw as a lego plot (angles are set via the command angle).
'LEGO1' Draw lego plot with light simulation.
'LEGO2' Draw lego plot with color levels.
'BB' Suppress the Back Box on 3D plots.
'FB' Suppress the Front Box on 3D plots.
'CONT' Draw 2-Dim as a contour plot (15 levels).
'TEXT' Draw 2-Dim as a table.
'CHAR' Draw 2-Dim with characters (a la HBOOK).
'HIST' Draw only histogram (no errors or associated function).
'FUNC' Draw only the associated function (not the histogram).
'CYL' Cylindrical coordinates for 3D plots.
'POL' Polar coordinates for 3D plots.
'SPH' Spherical coordinates for 3D plots.
'PSD' Pseudo-rapidity/phi coordinates for 3D plots.

Plot a single histogram or a 2-Dim projection. If ID=0 or ID=* all the histograms in the current directory are plotted. Each plotted histogram will start either a new picture or a new zone in the current picture.

Histogram subranges can be specified in 2 different ways:

PAW > h/pl id(ic1:ic2) | with ic1 and ic2 integers means plot | from channel ic1 to channel ic2 PAW > h/pl id(x1:x2) | with x1 and x2 reals (with a .) means plot | from channel corresponding to x1

Note that the mixed mode h/pl id(x1:ic2) is also accepted.

If ic1 or x1 are omitted, the first channel is used. If ic2 or x2 are omitted, the last channel is used.

PAW > h/pl 10(:20) | equivalent to h/pl 10(1:20) PAW > h/pl 10(20:) | plot from channel 20 to the last channel

This subrange works also for 2-DIM cases. Example:

PAW > Histo/plot 10(25:1.) PAW > Histo/plot 20(4:18,0.:0.5)

A specific histogram cycle can be accessed:

PAW > h/pl id;nc | cycle number nc is used (default is highest cycle)

1 Dim histograms could be plotted with option LEGO or SURF. In this case the angles are THETA=1 and PHI=-1.

When option 'E' is used, the marker type can be changed with SET MTYP, the marker size with SET KSIZ, the marker color with SET PMCI.

With Option E1, the size of the tick marks at the end of the error bars is equal to the marker size and can be changed with SET KSIZ.

When the option E is used with the option SURF1, SURF2, SURF3 or LEGO1, the colors are mapped on the errors not on the content of the histogram.

To plot projection X of ID type

PAW > HI/PLOT ID.PROX

To plot band 1 in Y of ID type

PAW > HI/PLOT ID.BANY.1

To plot slice 3 in Y of ID type

PAW > HI/PLOT ID.SLIY.3

In addition to the Cartesian coordinate systems, Polar, cylindrical, spherical, pseudo-rapidity/phi coordinates are available for LEGO and SURFACE plots, including stacked lego plots. For example:

PAW > Histo/plot 10+20+30 LEGO1,CYL | stacked cylindrical lego plot PAW > Histo/plot 10+20+30 LEGO1,POL | polar PAW > Histo/plot 10+20+30 LEGO1,SPH | spherical PAW > Histo/plot 10+20+30 LEGO1,PSD | pseudo-rapidity/phi

Note that the viewing angles may be changed via the command ANGLES. The axis, the front box, and the back box can be suppressed on 3D plots with the options 'A', 'FB' and 'BB'.

/HISTOGRAM/ZOOM [ id chopt icmin icmax ]

ID C Histogram Identifier Loop Minus
CHOPT C Options D=' '
ICMIN I First channel D=1
ICMAX I Last channel D=9999

CHOPT:

'' '' Plot the zoomed histogram.
'C' Draw a smooth curve.
'S' Superimpose plot on top of existing picture.
'+' Add contents of ID to last plotted histogram.
'B' Select Bar chart format.
'L' Connect channels contents by a line.
'P' Draw the current polymarker at each channel.
'*' Draw a * at each channel.

Plot a single histogram between channels ICMIN and ICMAX. Each plotted histogram will start either a new picture or a new zone in the current picture. If no parameters are given to the command, then the system waits for two points using the graphics cursor. To quit ZOOM, click the right button of the mouse or CRTL/E.

/HISTOGRAM/MANY_PLOTS idlist

IDLIST C List of histogram Identifiers Vararg

Plot one or several histograms into the same plot. Plotted histograms are superimposed on the same zone of the picture.

/HISTOGRAM/PROJECT id

ID C Histogram Identifier Loop

Fill all booked projections of a 2-Dim histogram. Filling is done using the 2-D contents of ID.

/HISTOGRAM/COPY id1 id2 [ title ]

ID1 C First histogram Identifier
ID2 C Second histogram Identifier Loop
TITLE C New title D=' '

Copy a histogram onto another one. Bin definition, contents, errors, etc. are preserved. If TITLE is not given, ID2 has the same title as ID1.

It is possible to copy a projection of a 2D histogram into a 1D histogram.

Ranges can be specify in the first histogram identifier to reduce or enlarge the X or Y scale.

Example:

Fun2 2 x*y 40 0 1 40 0 1 ' ' | Create a 2D histogram Slix 2 10 ; H/proj 2 | Slices on X H/Copy 2.slix.3 3 | Copy the slice 3 H/Copy 2(0.:.5,-1.:2.) 4 | Copy with new X and Y scales

/HISTOGRAM/FIT id func [ chopt np par step pmin pmax errpar ]

ID C Histogram Identifier
FUNC C Function name D=' '
CHOPT C Options D=' '
NP I Number of parameters D=0 R=0:34
PAR C Vector of parameters
STEP C Vector of steps size
PMIN C Vector of lower bounds
PMAX C Vector of upper bounds
ERRPAR C Vector of errors on parameters

CHOPT:

'' '' Do the fit, plot the result and print the parameters.
'0' Do not plot the result of the fit. By default the fitted function is drawn unless the option 'N' below is specified.
'S' Superimpose plot on top of existing picture.
'N' Do not store the result of the fit bin by bin with the histogram. By default the function is calculated at the middle of each bin and the fit results stored with the histogram data structure.
'Q' Quiet mode. No print
'V' Verbose mode. Results after each iteration are printed By default only final results are printed.
'B' Some or all parameters are bounded. The vectors STEP,PMIN,PMAX must be specified. Default is: All parameters vary freely.
'L' Use Log Likelihood. Default is chisquare method.
'D' The user is assumed to compute derivatives analytically using the routine HDERIV. By default, derivatives are computed numerically.
'W' Sets weights equal to 1. Default weights taken from the square root of the contents or from HPAKE/HBARX (PUT/ERRORS). If the L option is given (Log Likelihood), bins with errors=0 are excluded of the fit.
'M' The interactive Minuit is invoked. (see Application HMINUIT below).
'E' Performs a better Error evaluation (MIGRAD + HESSE + MINOS).
'U' User function value is taken from /HCFITD/FITPAD(24),FITFUN. Allows to do fitting in DOUBLE PRECISION.
'K' Keep the settings of Application HMINUIT for a subsequent command.

Fit a user defined (and parameter dependent) function to a histogram ID (1-Dim or 2-Dim) in the specified range. FUNC may be:

A) The name of a file which contains the user defined function to be minimized. Function name and file name must be the same. The function must be of type REAL. For example file 'func.f' is:

REAL FUNCTION FUNC(X) or FUNC(X,Y) for a 2-Dim histogram COMMON/PAWPAR/PAR(2) FUNC=PAR(1)*X +PAR(2)*EXP(-X) END PAW > His/fit 10 func.f ! 2 par

To do fitting in DOUBLE PRESICION option U should be used. In that case, the file 'func.f' should look like:

REAL FUNCTION FUNC(X) or FUNC(X,Y) for a 2-Dim histogram DOUBLE PRECISION FITPAD(24),FITFUN COMMON/HCFITD/FITPAD,FITFUN FITFUN=FITPAD(1)*X +FITPAD(2)*EXP(-X) FUNC=FITFUN END

B) One of the following keywords (1-Dim only):

G : to fit Func=par(1)*exp(-0.5*((x-par(2))/par(3))**2) E : to fit Func=exp(par(1)+par(2)*x) Pn: to fit Func=par(1)+par(2)*x+par(3)*x**2......+par(n+1)*x**n PAW > His/fit 10 G

C) A combination of the keywords in B with the 2 operators + or *.

PAW > His/Fit 10 p4+g ! 8 par PAW > His/Fit 10 p2*g+g ! 9 par

In this case, the order of parameters in PAR must correspond to the order of the basic functions. For example, in the first case above, par(1:5) apply to the polynomial of degree 4 and par(6:8) to the gaussian while in the second case par(1:3) apply to the polynomial of degree 2, par(4:6) to the first gaussian and par(7:9) to the second gaussian. Blanks are not allowed in the expression.

For cases A and C, before the execution of this command, the vector PAR must be filled (via Vector/Input) with the initial values. For case B, if NP is set to 0, then the initial values of PAR will be calculated automatically. After the fit, the vector PAR contains the new values of parameters. If the vector ERRPAR is given, it will contain the errors on the fitted parameters. A bin range may be specified with ID.

PAW > Histo/Fit 10(25:56).

When the Histo/it command is used in a macro, it might be convenient to specify MINUIT directives in the macro itself via the Application HMINUIT as described in this example:

Macro fit Application HMINUIT exit name 1 par_name1 name 2 par_name2 migrad improve exit Histo/fit id fitfun.f M Return

Some plotting options available in the command HISTOGRAM/PLOT can be also used.