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.