/VECTOR

Vector Processor commands. Vectors are equivalent to FORTRAN 77 arrays and they use the same notation except when omitting indexes (see last line below). Up to 3 dimensions are supported. Examples:

Vec(20) (mono-dimensional with 20 elements)

may be addressed by:

Vec for all elements Vec(13) for element 13-th Vec(12:) for elements 12-th to last Vec(:10) for elements first to 10-th Vec(5:8) for elements 5-th to 8-th Vec(3,100) (2-dimensional with 3 columns by 100 rows):

may be addressed by:

Vec(2,5:8) for elements 5-th to 8-th in 2-nd column Vec(2:3,5:8) for elements 5-th to 8-th in 2-nd to 3-rd columns Vec(2,5) for element 5-th in 2-nd column Vec(:,3) for all elements in 3-rd row Vec(2) for all elements in 2-nd column (SPECIAL CASE)

The latest line shows the special (and non-standard with FORTRAN 77) notation such that missing indexes are substituted to the right.

An 'invisible' vector called '?', mono-dimensional and of length 100, is always present. Is is used for communicating between user arrays and KUIP vectors, being equivalenced with the real array VECTOR(100) in the labeled common block /KCWORK/.

/VECTOR/CREATE vname [ type values ]

VNAME C Vector name(length)
TYPE C Vector type D='R'
VALUES C Value list D=' ' Separate Vararg

TYPE:

'R'
'I'

Create a vector named VNAME (elements are set to zero). The dimensions are taken from the name, for example VEC(20), VEC(3,100), VEC(2,2,10). Up to 3 dimensions are supported. Dimensions which are not specified are taken to 1, for example VEC(10) ---> VEC(10,1,1) and VEC ---> VEC(1,1,1). The vector may be of type Real or Integer. A vector is filled at the same time if parameters are given after the TYPE:

VEC/CREATE V(10) R 1 2 3 4 5 66 77 88 99 111 VEC/CREATE W(20) R 1 2 3

In the last example only the first three elements are filled. Vector elements may be changed later with the command VECTOR/INPUT.

If many equal values have to be entered consecutively, one can specify just one value and precede it by a repetition factor and an asterisk. Example:

VEC/CREATE Z(20) R 5*1 2 4*3 ---> VEC/CREATE Z(20) R 1 1 1 1 1 2 3 3 3 3

Enter HELP VECTOR for more information on vector addressing.

/VECTOR/LIST

List all vectors (name, dimensions, type).

/VECTOR/DELETE vlist

VLIST C Vector list D=' ' Loop

Delete from memory all vectors in the list VLIST. The vectors are separated in the list by a comma and embedded blanks are not allowed. An asterisk at the end of VLIST acts as wild-card:

VEC/DEL AB* ---> deletes all vectors starting by AB VEC/DEL * ---> deletes all vectors

/VECTOR/COPY vnam1 vnam2

VNAM1 C Source vector name
VNAM2 C Destination vector name

Copy a vector into another one. Mixed vector type copy is supported (e.g. Integer ---> Real and viceversa). If VNAM2 does not exist it is created with the required dimensions, not necessarily the same as the source vector if a sub-range was specified. For example, if A is a 3 x 100 vector and B does not exist, COPY A(2,11:60) B will create B as a 50 elements mono-dimensional vector; a special (and non-standard with FORTRAN 77) notation is used such that, still using the above vectors, COPY A(2,1:100) B and COPY A(2) B have the same effect.

Note that VECTOR/COPY does not allow a range for the destination vector not specifying consecutive elements (i.e. along the first dimension):

VEC/COPY V(5) W(3,4) | O.K. VEC/COPY V1(2:3,5) V2(4:5,9) | O.K. VEC/COPY V1(5,2:3) V2(4:5,9) | O.K. VEC/COPY V1(3,3:4) V2(4,4:5) | NOT allowed VEC/COPY V1(2:3,5) V2(2,4:5) | NOT allowed

Enter HELP VECTOR for more information on vector addressing.

/VECTOR/INPUT vname [ values ]

VNAME C Vector name
VALUES C Value list D=' ' Separate Vararg

Enter values into a vector from the terminal. Example:

VEC/INPUT V(6:10) 1.1 2.22 3.333 4.4444 5.55555

If many equal values have to be entered consecutively, one can specify just one value and precede it by a repetition factor and an asterisk. Example:

VEC/INPUT V 5*1 2 4*3 ---> VEC/INPUT V 1 1 1 1 1 2 3 3 3 3

Enter HELP VECTOR for more information on vector addressing.

/VECTOR/PRINT vname [ dense ]

VNAME C Vector name
DENSE I Output density D=1 R=0,1,2

Write to the terminal the content of a vector. Enter HELP VECTOR for more information on vector addressing.

If DENSE.EQ.0 the output is one vector element per line. If DENSE.EQ.1 the output for a sequence of identical vector elements is compressed to two lines stating the start and end indices. If DENSE.EQ.2 the output for a sequence of identical vector elements is compressed to a single line.

/VECTOR/READ vlist fname [ format opt match ]

VLIST C Vector list
FNAME C File name D=' '
FORMAT C Format D=' '
OPT C Options D='OC'
MATCH C Matching pattern D=' '

OPT:

'OC'
'O'
'' ''
'C'

Enter values into vector(s) from a file. A format can be specified, e.g. FORMAT='F10.5,2X,F10.5', or the free format is used if FORMAT is not supplied.

If vector(s) are not existing they will be created of the size as read from the file.

Vectors in the list VLIST (maximum 30) are separated by a comma and embedded blanks are not allowed. If subscripts are present in vector names, the smallest one is taken.

OPT is used to select between the following options:

'OC' file is Opened, read and then Closed (default case) 'O' file is Opened and then read (left open for further reading) ' ' file is read (already open, left so for further reading) 'C' file is read and then Closed (already open)

If the character 'Z' is present in OPT, the vector elements equal to zero after reading are set to the latest non-zero element value (for example reading 1 2 3 0 0 4 0 5 will give 1 2 3 3 3 4 4 5).

MATCH is used to specify a pattern string, restricting the vector filling only to the records in the file which verify the pattern. Example of patterns:

/string/ match a string (starting in column 1) -/string/ do not match a string (starting in column 1) /string/(n) match a string, starting in column n /string/(*) match a string, starting at any column

Enter HELP VECTOR for more information on vector addressing.

/VECTOR/WRITE vlist [ fname format chopt ]

VLIST C Vector list
FNAME C File name D=' '
FORMAT C Format D='(1X,G13.7)'
CHOPT C Options D='OC'

CHOPT:

'OC'
'O'
'' ''
'C'

Write to a file the content of vector(s). If FNAME=' ' the content is written to the terminal. A format can be specified, e.g. FORMAT='F10.5,2X,F10.5', or the default one is used if FORMAT is not supplied.

Vectors in the list VLIST (maximum 30) are separated by a comma and embedded blanks are not allowed. If subscripts are present in vector names, the smallest one is taken.

CHOPT is used to select between the following options:

'OC' file is Opened, written and then Closed (default case) 'O' file is Opened and then written (left open for further writing) ' ' file is written (already open, left so for further writing) 'C' file is written and then Closed (already open)

Enter HELP VECTOR for more information on vector addressing.

/VECTOR/DRAW vname [ id chopt ]

VNAME C Vector name
ID C Histogram Identifier D='12345'
CHOPT C Options D=' '

CHOPT:

'' '' Draw an 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.

Draw vector VNAME (real) interpreting it as a histogram. Optionally save the contents in histogram ID.

/VECTOR/HFILL vname id

VNAME C Vector name
ID C Histogram Identifier

Fill the existing histogram ID with vector VNAME (real) . Note that the command VECTOR/PLOT can automatically book, fill and plot the contents of a vector.

/VECTOR/PLOT vname [ id chopt ]

VNAME C Vector name
ID C Histogram Identifier D='12345'
CHOPT C Options D=' '

CHOPT:

'' '' Draw an 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.

Each element of VNAME (real) is used to fill an histogram which is automatically booked with 100 channels and then plotted. If VNAME has the form VNAME1%VNAME2 then a scatter-plot of vector VNAME1 versus VNAME2 is plotted. If ID is given different of 12345, then a 2-Dim histogram is created with 40 bins by 40 bins and filled. One can use the command VECTOR/HFILL to fill an already existing histogram. When option 'S' is used, the limits of the current plot are used to create the 1D histogram.

/VECTOR/FIT x y ey func [ chopt np par step pmin pmax errpar ]

X C Vector of X coordinates
Y C Vector of Y coordinates
EY C Vector of errors on Y D='?'
FUNC C Function name
CHOPT C Character options D=' '
NP I Number of parameters D=0 R=0:20
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).
'M' The interactive Minuit is invoked.
'E' Performs a better Error evaluation (MIGRAD + HESSE + MINOS).
'Z' FUNC is the user fitting model

Fit a user defined function to the points defined by the two vectors X and Y and the vector of associated errors EY. See command HISTOGRAM/FIT for explanation of parameters. Note that if option 'W' is specified or EY='?' (default), the array EY is ignored. Option 'L' is not available.

When option 'Z' is given, FUNC is the user fitting model. FUNC is a subroutine with the calling sequence:

SUBROUTINE FUNC(N,X,Y,EY,NPAR,IFLAG,NPFITS)

where

- X(N),Y(N),EY(N) are the input vectors, - NPAR the number of parameters - NPFITS is an output parameter = Number of points used in the fit

The user must declare the

COMMON /HCFITD/FITPAD(24),FITFUN

in FUNC

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