| 1 | * | 
|---|
| 2 | * $Id: mnhelp.F,v 1.1.1.1 2003-06-11 14:18:27 cmv Exp $ | 
|---|
| 3 | * | 
|---|
| 4 | * $Log: not supported by cvs2svn $ | 
|---|
| 5 | * Revision 1.2  1999/09/03 09:17:47  couet | 
|---|
| 6 | * - \Cind{} removed in the help of minuit. This was a Tex directive which very | 
|---|
| 7 | *   likely has been forgotten during a Tex to f77 translation. This didn't | 
|---|
| 8 | *   compile on RH6. | 
|---|
| 9 | * | 
|---|
| 10 | * Revision 1.1.1.1  1996/03/07 14:31:30  mclareni | 
|---|
| 11 | * Minuit | 
|---|
| 12 | * | 
|---|
| 13 | * | 
|---|
| 14 | #include "minuit/pilot.h" | 
|---|
| 15 | SUBROUTINE MNHELP(COMD,LOUT) | 
|---|
| 16 | *. | 
|---|
| 17 | *.         HELP routine for MINUIT interactive commands. | 
|---|
| 18 | *. | 
|---|
| 19 | *.      COMD ='*   '  prints a global help for all commands | 
|---|
| 20 | *.      COMD =Command_name: print detailed help for one command. | 
|---|
| 21 | *.          Note that at least 3 characters must be given for the command name. | 
|---|
| 22 | *. | 
|---|
| 23 | *.     Author: Rene Brun | 
|---|
| 24 | *             comments extracted from the MINUIT documentation file. | 
|---|
| 25 | *. | 
|---|
| 26 | CHARACTER*(*) COMD | 
|---|
| 27 | CHARACTER*3 CMD3 | 
|---|
| 28 | *. | 
|---|
| 29 | *-- command name ASSUMED to be in upper case | 
|---|
| 30 | *__________________________________________________________________ | 
|---|
| 31 | *-- | 
|---|
| 32 | *--  Global HELP: Summary of all commands | 
|---|
| 33 | *--  ==================================== | 
|---|
| 34 | *-- | 
|---|
| 35 | IF(COMD(1:1) .EQ. '*')THEN | 
|---|
| 36 | WRITE(LOUT,10000) | 
|---|
| 37 | WRITE(LOUT,10001) | 
|---|
| 38 | GO TO 99 | 
|---|
| 39 | ENDIF | 
|---|
| 40 | 10000 FORMAT('   ==>List of MINUIT Interactive commands:',/, | 
|---|
| 41 | +' CLEar     Reset all parameter names and values undefined',/, | 
|---|
| 42 | +' CONtour   Make contour map of the user function',/, | 
|---|
| 43 | +' EXIT      Exit from Interactive Minuit',/, | 
|---|
| 44 | +' FIX       Cause parameter(s) to remain constant',/, | 
|---|
| 45 | +' HESse     Calculate the Hessian or error matrix.',/, | 
|---|
| 46 | +' IMPROVE   Search for a new minimum around current minimum',/, | 
|---|
| 47 | +' MIGrad    Minimize by the method of Migrad',/, | 
|---|
| 48 | +' MINImize  MIGRAD + SIMPLEX method if Migrad fails',/, | 
|---|
| 49 | +' MINOs     Exact (non-linear) parameter error analysis') | 
|---|
| 50 | 10001 FORMAT(' MNContour Calculate one MINOS function contour',/, | 
|---|
| 51 | +' PARameter Define or redefine new parameters and values',/, | 
|---|
| 52 | +' RELease   Make previously FIXed parameters variable again',/, | 
|---|
| 53 | +' REStore   Release last parameter fixed',/, | 
|---|
| 54 | +' SAVe      Save current parameter values on a file',/, | 
|---|
| 55 | +' SCAn      Scan the user function by varying parameters',/, | 
|---|
| 56 | +' SEEk      Minimize by the method of Monte Carlo',/, | 
|---|
| 57 | +' SET       Set various MINUIT constants or conditions',/, | 
|---|
| 58 | +' SHOw      Show values of current constants or conditions',/, | 
|---|
| 59 | +' SIMplex   Minimize by the method of Simplex') | 
|---|
| 60 | * | 
|---|
| 61 | CMD3=COMD(1:3) | 
|---|
| 62 | *__________________________________________________________________ | 
|---|
| 63 | *-- | 
|---|
| 64 | *--  Command CLEAR | 
|---|
| 65 | *--  ============= | 
|---|
| 66 | *. | 
|---|
| 67 | IF(CMD3.EQ.'CLE')THEN | 
|---|
| 68 | WRITE(LOUT,10100) | 
|---|
| 69 | GO TO 99 | 
|---|
| 70 | ENDIF | 
|---|
| 71 | 10100 FORMAT(' ***>CLEAR',/, | 
|---|
| 72 | +' Resets all parameter names and values to undefined.',/, | 
|---|
| 73 | +' Must normally be followed by a PARameters command or ',/, | 
|---|
| 74 | +' equivalent, in order to define parameter values.') | 
|---|
| 75 | *__________________________________________________________________ | 
|---|
| 76 | *-- | 
|---|
| 77 | *--  Command CONTOUR | 
|---|
| 78 | *--  =============== | 
|---|
| 79 | *. | 
|---|
| 80 | IF(CMD3.EQ.'CON')THEN | 
|---|
| 81 | WRITE(LOUT,10200) | 
|---|
| 82 | GO TO 99 | 
|---|
| 83 | ENDIF | 
|---|
| 84 | 10200 FORMAT(' ***>CONTOUR <par1>  <par2>  [devs]  [ngrid]',/, | 
|---|
| 85 | +' Instructs Minuit to trace contour lines of the user function',/, | 
|---|
| 86 | +' with respect to the two parameters whose external numbers',/, | 
|---|
| 87 | +' are <par1> and <par2>.',/, | 
|---|
| 88 | +' Other variable parameters of the function, if any, will have',/, | 
|---|
| 89 | +' their values fixed at the current values during the contour',/, | 
|---|
| 90 | +' tracing. The optional parameter [devs] (default value 2.)',/, | 
|---|
| 91 | +' gives the number of standard deviations in each parameter',/, | 
|---|
| 92 | +' which should lie entirely within the plotting area.',/, | 
|---|
| 93 | +' Optional parameter [ngrid] (default value 25 unless page',/, | 
|---|
| 94 | +' size is too small) determines the resolution of the plot,',/, | 
|---|
| 95 | +' i.e. the number of rows and columns of the grid at which the',/, | 
|---|
| 96 | +' function will be evaluated. [See also MNContour.]') | 
|---|
| 97 | *__________________________________________________________________ | 
|---|
| 98 | *-- | 
|---|
| 99 | *--  Command END | 
|---|
| 100 | *--  =========== | 
|---|
| 101 | *. | 
|---|
| 102 | IF(CMD3.EQ.'END')THEN | 
|---|
| 103 | WRITE(LOUT,10300) | 
|---|
| 104 | GO TO 99 | 
|---|
| 105 | ENDIF | 
|---|
| 106 | 10300 FORMAT(' ***>END',/, | 
|---|
| 107 | +' Signals the end of a data block (i.e., the end of a fit),',/, | 
|---|
| 108 | +' and implies that execution should continue, because another',/, | 
|---|
| 109 | +' Data Block follows. A Data Block is a set of Minuit data',/, | 
|---|
| 110 | +' consisting of',/, | 
|---|
| 111 | +'     (1) A Title,',/, | 
|---|
| 112 | +'     (2) One or more Parameter Definitions,',/, | 
|---|
| 113 | +'     (3) A blank line, and',/, | 
|---|
| 114 | +'     (4) A set of Minuit Commands.',/, | 
|---|
| 115 | +' The END command is used when more than one Data Block is to',/, | 
|---|
| 116 | +' be used with the same FCN function. It first causes Minuit',/, | 
|---|
| 117 | +' to issue a CALL FCN with IFLAG=3, in order to allow FCN to',/, | 
|---|
| 118 | +' perform any calculations associated with the final fitted',/, | 
|---|
| 119 | +' parameter values, unless a CALL FCN 3 command has already',/, | 
|---|
| 120 | +' been executed at the current FCN value.') | 
|---|
| 121 | *__________________________________________________________________ | 
|---|
| 122 | *. | 
|---|
| 123 | *-- | 
|---|
| 124 | *--  Command EXIT | 
|---|
| 125 | *--  ============ | 
|---|
| 126 | IF(CMD3 .EQ.'EXI')THEN | 
|---|
| 127 | WRITE(LOUT,10400) | 
|---|
| 128 | GO TO 99 | 
|---|
| 129 | ENDIF | 
|---|
| 130 | 10400 FORMAT(' ***>EXIT',/, | 
|---|
| 131 | +' Signals the end of execution.',/, | 
|---|
| 132 | +' The EXIT command first causes Minuit to issue a CALL FCN',/, | 
|---|
| 133 | +' with IFLAG=3, to allow FCN to perform any calculations',/, | 
|---|
| 134 | +' associated with the final fitted parameter values, unless a',/, | 
|---|
| 135 | +' CALL FCN 3 command has already been executed.') | 
|---|
| 136 | *__________________________________________________________________ | 
|---|
| 137 | *-- | 
|---|
| 138 | *--  Command FIX | 
|---|
| 139 | *--  =========== | 
|---|
| 140 | *. | 
|---|
| 141 | IF(CMD3.EQ.'FIX')THEN | 
|---|
| 142 | WRITE(LOUT,10500) | 
|---|
| 143 | GO TO 99 | 
|---|
| 144 | ENDIF | 
|---|
| 145 | 10500 FORMAT(' ***>FIX} <parno> [parno] ... [parno]',/, | 
|---|
| 146 | +' Causes parameter(s) <parno> to be removed from the list of',/, | 
|---|
| 147 | +' variable parameters, and their value(s) will remain constant',/, | 
|---|
| 148 | +' during subsequent minimizations, etc., until another command',/, | 
|---|
| 149 | +' changes their value(s) or status.') | 
|---|
| 150 | *__________________________________________________________________ | 
|---|
| 151 | *-- | 
|---|
| 152 | *--  Command HESSE | 
|---|
| 153 | *--  ============= | 
|---|
| 154 | *. | 
|---|
| 155 | IF(CMD3.EQ.'HES')THEN | 
|---|
| 156 | WRITE(LOUT,10600) | 
|---|
| 157 | GO TO 99 | 
|---|
| 158 | ENDIF | 
|---|
| 159 | 10600 FORMAT(' ***>HESse  [maxcalls]',/, | 
|---|
| 160 | +' Calculate, by finite differences, the Hessian or error matrix.', | 
|---|
| 161 | +/,'  That is, it calculates the full matrix of second derivatives' | 
|---|
| 162 | +,/,' of the function with respect to the currently variable',/, | 
|---|
| 163 | +' parameters, and inverts it, printing out the resulting error',/, | 
|---|
| 164 | +' matrix. The optional argument [maxcalls] specifies the',/, | 
|---|
| 165 | +' (approximate) maximum number of function calls after which',/, | 
|---|
| 166 | +' the calculation will be stopped.') | 
|---|
| 167 | *__________________________________________________________________ | 
|---|
| 168 | *-- | 
|---|
| 169 | *--  Command IMPROVE | 
|---|
| 170 | *--  =============== | 
|---|
| 171 | *. | 
|---|
| 172 | IF(CMD3.EQ.'IMP')THEN | 
|---|
| 173 | WRITE(LOUT,10700) | 
|---|
| 174 | GO TO 99 | 
|---|
| 175 | ENDIF | 
|---|
| 176 | 10700 FORMAT(' ***>IMPROVE  [maxcalls]',/, | 
|---|
| 177 | +' If a previous minimization has converged, and the current',/, | 
|---|
| 178 | +' values of the parameters therefore correspond to a local',/, | 
|---|
| 179 | +' minimum of the function, this command requests a search for',/, | 
|---|
| 180 | +' additional distinct local minima.',/, | 
|---|
| 181 | +' The optional argument [maxcalls] specifies the (approximate)',/, | 
|---|
| 182 | +' maximum number of function calls after which the calculation',/, | 
|---|
| 183 | +' will be stopped.') | 
|---|
| 184 | *__________________________________________________________________ | 
|---|
| 185 | *-- | 
|---|
| 186 | *--  Command MIGRAD | 
|---|
| 187 | *--  ============== | 
|---|
| 188 | *. | 
|---|
| 189 | IF(CMD3.EQ.'MIG')THEN | 
|---|
| 190 | WRITE(LOUT,10800) | 
|---|
| 191 | GO TO 99 | 
|---|
| 192 | ENDIF | 
|---|
| 193 | 10800 FORMAT(' ***>MIGrad  [maxcalls]  [tolerance]',/, | 
|---|
| 194 | +' Causes minimization of the function by the method of Migrad,',/, | 
|---|
| 195 | +' the most efficient and complete single method, recommended',/, | 
|---|
| 196 | +' for general functions (see also MINImize).',/, | 
|---|
| 197 | +' The minimization produces as a by-product the error matrix',/, | 
|---|
| 198 | +' of the parameters, which is usually reliable unless warning',/, | 
|---|
| 199 | +' messages are produced.',/, | 
|---|
| 200 | +' The optional argument [maxcalls] specifies the (approximate)',/, | 
|---|
| 201 | +' maximum number of function calls after which the calculation',/, | 
|---|
| 202 | +' will be stopped even if it has not yet converged.',/, | 
|---|
| 203 | +' The optional argument [tolerance] specifies required tolerance', | 
|---|
| 204 | +/,' on the function value at the minimum.',/, | 
|---|
| 205 | +' The default tolerance is 0.1, and the minimization will stop',/, | 
|---|
| 206 | +' when the estimated vertical distance to the minimum (EDM) is',/, | 
|---|
| 207 | +' less than 0.001*[tolerance]*UP (see [SET ERRordef]).') | 
|---|
| 208 | *__________________________________________________________________ | 
|---|
| 209 | *-- | 
|---|
| 210 | *--  Command MINIMIZE | 
|---|
| 211 | *--  ================ | 
|---|
| 212 | *. | 
|---|
| 213 | IF(COMD(1:4).EQ.'MINI')THEN | 
|---|
| 214 | WRITE(LOUT,10900) | 
|---|
| 215 | GO TO 99 | 
|---|
| 216 | ENDIF | 
|---|
| 217 | 10900 FORMAT(' ***>MINImize  [maxcalls] [tolerance]',/, | 
|---|
| 218 | +' Causes minimization of the function by the method of Migrad,',/, | 
|---|
| 219 | +' as does the MIGrad command, but switches to the SIMplex method', | 
|---|
| 220 | +/,' if Migrad fails to converge. Arguments are as for MIGrad.',/, | 
|---|
| 221 | +' Note that command requires four characters to be unambiguous.') | 
|---|
| 222 | *__________________________________________________________________ | 
|---|
| 223 | *-- | 
|---|
| 224 | *--  Command MINOS | 
|---|
| 225 | *--  ============= | 
|---|
| 226 | *. | 
|---|
| 227 | IF(COMD(1:4).EQ.'MINO')THEN | 
|---|
| 228 | WRITE(LOUT,11000) | 
|---|
| 229 | GO TO 99 | 
|---|
| 230 | ENDIF | 
|---|
| 231 | 11000 FORMAT(' ***>MINOs  [maxcalls]  [parno] [parno] ...',/, | 
|---|
| 232 | +' Causes a Minos error analysis to be performed on the parameters' | 
|---|
| 233 | +,/,' whose numbers [parno] are specified. If none are specified,', | 
|---|
| 234 | +/,' Minos errors are calculated for all variable parameters.',/, | 
|---|
| 235 | +' Minos errors may be expensive to calculate, but are very',/, | 
|---|
| 236 | +' reliable since they take account of non-linearities in the',/, | 
|---|
| 237 | +' problem as well as parameter correlations, and are in general',/ | 
|---|
| 238 | +' asymmetric.',/, | 
|---|
| 239 | +' The optional argument [maxcalls] specifies the (approximate)',/, | 
|---|
| 240 | +' maximum number of function calls per parameter requested,',/, | 
|---|
| 241 | +' after which the calculation will stop for that parameter.') | 
|---|
| 242 | *__________________________________________________________________ | 
|---|
| 243 | *-- | 
|---|
| 244 | *--  Command MNCONTOUR | 
|---|
| 245 | *--  ================= | 
|---|
| 246 | *. | 
|---|
| 247 | IF(CMD3.EQ.'MNC')THEN | 
|---|
| 248 | WRITE(LOUT,11100) | 
|---|
| 249 | GO TO 99 | 
|---|
| 250 | ENDIF | 
|---|
| 251 | 11100 FORMAT(' ***>MNContour  <par1> <par2> [npts]',/, | 
|---|
| 252 | +' Calculates one function contour of FCN with respect to',/, | 
|---|
| 253 | +' parameters par1 and par2, with FCN minimized always with',/, | 
|---|
| 254 | +' respect to all other NPAR-2 variable parameters (if any).',/, | 
|---|
| 255 | +' Minuit will try to find npts points on the contour (default 20)' | 
|---|
| 256 | +,/,' If only two parameters are variable at the time, it is not', | 
|---|
| 257 | +/,' necessary to specify their numbers. To calculate more than',/, | 
|---|
| 258 | +' one contour, it is necessary to SET ERRordef to the appropriate' | 
|---|
| 259 | +,/,' value and issue the MNContour command for each contour.') | 
|---|
| 260 | *__________________________________________________________________ | 
|---|
| 261 | *-- | 
|---|
| 262 | *--  Command PARAMETER | 
|---|
| 263 | *--  ================= | 
|---|
| 264 | *. | 
|---|
| 265 | IF(CMD3.EQ.'PAR')THEN | 
|---|
| 266 | WRITE(LOUT,11150) | 
|---|
| 267 | GO TO 99 | 
|---|
| 268 | ENDIF | 
|---|
| 269 | 11150 FORMAT(' ***>PARameters',/, | 
|---|
| 270 | +' followed by one or more parameter definitions.',/, | 
|---|
| 271 | +' Parameter definitions are of the form:',/, | 
|---|
| 272 | +'   <number>  ''name''  <value>  <step>  [lolim] [uplim] ',/, | 
|---|
| 273 | +' for example:',/, | 
|---|
| 274 | +'  3  ''K width''  1.2   0.1' ,/, | 
|---|
| 275 | +' the last definition is followed by a blank line or a zero.') | 
|---|
| 276 | *__________________________________________________________________ | 
|---|
| 277 | *-- | 
|---|
| 278 | *--  Command RELEASE | 
|---|
| 279 | *--  =============== | 
|---|
| 280 | *. | 
|---|
| 281 | IF(CMD3.EQ.'REL')THEN | 
|---|
| 282 | WRITE(LOUT,11200) | 
|---|
| 283 | GO TO 99 | 
|---|
| 284 | ENDIF | 
|---|
| 285 | 11200 FORMAT(' ***>RELease  <parno> [parno] ... [parno]',/, | 
|---|
| 286 | +' If <parno> is the number of a previously variable parameter',/, | 
|---|
| 287 | +' which has been fixed by a command: FIX <parno>, then that',/, | 
|---|
| 288 | +' parameter will return to variable status.  Otherwise a warning' | 
|---|
| 289 | +,/,' message is printed and the command is ignored.',/, | 
|---|
| 290 | +' Note that this command operates only on parameters which were',/ | 
|---|
| 291 | +' at one time variable and have been FIXed. It cannot make',/, | 
|---|
| 292 | +' constant parameters variable; that must be done by redefining',/ | 
|---|
| 293 | +' the parameter with a PARameters command.') | 
|---|
| 294 | *__________________________________________________________________ | 
|---|
| 295 | *-- | 
|---|
| 296 | *--  Command RESTORE | 
|---|
| 297 | *--  =============== | 
|---|
| 298 | *. | 
|---|
| 299 | IF(CMD3.EQ.'RES')THEN | 
|---|
| 300 | WRITE(LOUT,11300) | 
|---|
| 301 | GO TO 99 | 
|---|
| 302 | ENDIF | 
|---|
| 303 | 11300 FORMAT(' ***>REStore  [code]',/, | 
|---|
| 304 | +' If no [code] is specified, this command restores all previously' | 
|---|
| 305 | +,/,' FIXed parameters to variable status. If [code]=1, then only', | 
|---|
| 306 | +/,' the last parameter FIXed is restored to variable status.',/, | 
|---|
| 307 | +' If code is neither zero nor one, the command is ignored.') | 
|---|
| 308 | *__________________________________________________________________ | 
|---|
| 309 | *-- | 
|---|
| 310 | *--  Command RETURN | 
|---|
| 311 | *--  ============== | 
|---|
| 312 | *. | 
|---|
| 313 | IF(CMD3.EQ.'RET')THEN | 
|---|
| 314 | WRITE(LOUT,11400) | 
|---|
| 315 | GO TO 99 | 
|---|
| 316 | ENDIF | 
|---|
| 317 | 11400 FORMAT(' ***>RETURN',/, | 
|---|
| 318 | +' Signals the end of a data block, and instructs Minuit to return' | 
|---|
| 319 | +,/,' to the program which called it. The RETurn command first',/, | 
|---|
| 320 | +' causes Minuit to CALL FCN with IFLAG=3, in order to allow FCN',/ | 
|---|
| 321 | +,' to perform any calculations associated with the final fitted',/ | 
|---|
| 322 | +,' parameter values, unless a CALL FCN 3 command has already been' | 
|---|
| 323 | +,/,' executed at the current FCN value.') | 
|---|
| 324 | *__________________________________________________________________ | 
|---|
| 325 | *-- | 
|---|
| 326 | *--  Command SAVE | 
|---|
| 327 | *--  ============ | 
|---|
| 328 | *. | 
|---|
| 329 | IF(CMD3.EQ.'SAV')THEN | 
|---|
| 330 | WRITE(LOUT,11500) | 
|---|
| 331 | GO TO 99 | 
|---|
| 332 | ENDIF | 
|---|
| 333 | 11500 FORMAT(' ***>SAVe',/, | 
|---|
| 334 | +' Causes the current parameter values to be saved on a file in',/, | 
|---|
| 335 | +' such a format that they can be read in again as Minuit',/, | 
|---|
| 336 | +' parameter definitions. If the covariance matrix exists, it is',/ | 
|---|
| 337 | +,' also output in such a format. The unit number is by default 7,' | 
|---|
| 338 | +,/,' or that specified by the user in his call to MINTIO or',/, | 
|---|
| 339 | +' MNINIT. The user is responsible for opening the file previous' | 
|---|
| 340 | +,/,' to issuing the [SAVe] command (except where this can be done' | 
|---|
| 341 | +,/,' interactively).') | 
|---|
| 342 | *__________________________________________________________________ | 
|---|
| 343 | *-- | 
|---|
| 344 | *--  Command SCAN | 
|---|
| 345 | *--  ============ | 
|---|
| 346 | *. | 
|---|
| 347 | IF(CMD3.EQ.'SCA')THEN | 
|---|
| 348 | WRITE(LOUT,11600) | 
|---|
| 349 | GO TO 99 | 
|---|
| 350 | ENDIF | 
|---|
| 351 | 11600 FORMAT(' ***>SCAn  [parno]  [numpts] [from]  [to]',/, | 
|---|
| 352 | +' Scans the value of the user function by varying parameter',/, | 
|---|
| 353 | +' number [parno], leaving all other parameters fixed at the',/, | 
|---|
| 354 | +' current value. If [parno] is not specified, all variable',/, | 
|---|
| 355 | +' parameters are scanned in sequence.',/, | 
|---|
| 356 | +' The number of points [numpts] in the scan is 40 by default,',/, | 
|---|
| 357 | +' and cannot exceed 100. The range of the scan is by default',/, | 
|---|
| 358 | +' 2 standard deviations on each side of the current best value,', | 
|---|
| 359 | +/,' but can be specified as from [from] to [to].',/, | 
|---|
| 360 | +' After each scan, if a new minimum is found, the best parameter' | 
|---|
| 361 | +,/,' values are retained as start values for future scans or',/, | 
|---|
| 362 | +' minimizations. The curve resulting from each scan is plotted',/ | 
|---|
| 363 | +,' on the output unit in order to show the approximate behaviour' | 
|---|
| 364 | +,/,' of the function.',/, | 
|---|
| 365 | +' This command is not intended for minimization, but is sometimes' | 
|---|
| 366 | +,/,' useful for debugging the user function or finding a',/, | 
|---|
| 367 | +' reasonable starting point.') | 
|---|
| 368 | *__________________________________________________________________ | 
|---|
| 369 | *-- | 
|---|
| 370 | *--  Command SEEK | 
|---|
| 371 | *--  ============ | 
|---|
| 372 | *. | 
|---|
| 373 | IF(CMD3.EQ.'SEE')THEN | 
|---|
| 374 | WRITE(LOUT,11700) | 
|---|
| 375 | GO TO 99 | 
|---|
| 376 | ENDIF | 
|---|
| 377 | 11700 FORMAT(' ***>SEEk  [maxcalls]  [devs]',/, | 
|---|
| 378 | +' Causes a Monte Carlo minimization of the function, by choosing', | 
|---|
| 379 | +/,' random values of the variable parameters, chosen uniformly',/, | 
|---|
| 380 | +' over a hypercube centered at the current best value.',/, | 
|---|
| 381 | +' The region size is by default 3 standard deviations on each',/, | 
|---|
| 382 | +' side, but can be changed by specifying the value of [devs].') | 
|---|
| 383 | *__________________________________________________________________ | 
|---|
| 384 | *-- | 
|---|
| 385 | *--  Command SET | 
|---|
| 386 | *--  =========== | 
|---|
| 387 | *. | 
|---|
| 388 | IF(CMD3.EQ.'SET')THEN | 
|---|
| 389 | WRITE(LOUT,11800) | 
|---|
| 390 | WRITE(LOUT,11801) | 
|---|
| 391 | WRITE(LOUT,11802) | 
|---|
| 392 | WRITE(LOUT,11803) | 
|---|
| 393 | WRITE(LOUT,11804) | 
|---|
| 394 | WRITE(LOUT,11805) | 
|---|
| 395 | WRITE(LOUT,11806) | 
|---|
| 396 | WRITE(LOUT,11807) | 
|---|
| 397 | WRITE(LOUT,11808) | 
|---|
| 398 | WRITE(LOUT,11809) | 
|---|
| 399 | WRITE(LOUT,11810) | 
|---|
| 400 | WRITE(LOUT,11811) | 
|---|
| 401 | WRITE(LOUT,11812) | 
|---|
| 402 | WRITE(LOUT,11813) | 
|---|
| 403 | WRITE(LOUT,11814) | 
|---|
| 404 | WRITE(LOUT,11815) | 
|---|
| 405 | WRITE(LOUT,11816) | 
|---|
| 406 | WRITE(LOUT,11817) | 
|---|
| 407 | GO TO 99 | 
|---|
| 408 | ENDIF | 
|---|
| 409 | 11800 FORMAT(' ***>SET <option_name>',/,/, | 
|---|
| 410 | +'  SET BATch',/, | 
|---|
| 411 | +'    Informs Minuit that it is running in batch mode.',//, | 
|---|
| 412 |  | 
|---|
| 413 | +'  SET EPSmachine  <accuracy>',/, | 
|---|
| 414 | +'    Informs Minuit that the relative floating point arithmetic',/ | 
|---|
| 415 | +'    precision is <accuracy>. Minuit determines the nominal',/, | 
|---|
| 416 | +'    precision itself, but the SET EPSmachine command can be',/, | 
|---|
| 417 | +'    used to override Minuit own determination, when the user',/, | 
|---|
| 418 | +'    knows that the FCN function value is not calculated to',/, | 
|---|
| 419 | +'    the nominal machine accuracy. Typical values of <accuracy>',/ | 
|---|
| 420 | +'    are between 10**-5 and 10**-14.') | 
|---|
| 421 |  | 
|---|
| 422 | 11801 FORMAT(/,'  SET ERRordef  <up>',/, | 
|---|
| 423 | +'    Sets the value of UP (default value= 1.), defining parameter' | 
|---|
| 424 | +,/,'    errors. Minuit defines parameter errors as the change',/, | 
|---|
| 425 | +'    in parameter value required to change the function value',/, | 
|---|
| 426 | +'    by UP. Normally, for chisquared fits UP=1, and for negative' | 
|---|
| 427 | +,/,'    log likelihood, UP=0.5.') | 
|---|
| 428 |  | 
|---|
| 429 | 11802 FORMAT(/,'   SET GRAdient  [force]',/, | 
|---|
| 430 | +'    Informs Minuit that the user function is prepared to',/, | 
|---|
| 431 | +'    calculate its own first derivatives and return their values' | 
|---|
| 432 | +,/,'    in the array GRAD when IFLAG=2 (see specs of FCN).',/, | 
|---|
| 433 | +'    If [force] is not specified, Minuit will calculate',/, | 
|---|
| 434 | +'    the FCN derivatives by finite differences at the current',/, | 
|---|
| 435 | +'    point and compare with the user calculation at that point,' | 
|---|
| 436 | +,/,'    accepting the user values only if they agree.',/, | 
|---|
| 437 | +'    If [force]=1, Minuit does not do its own derivative',/, | 
|---|
| 438 | +'    calculation, and uses the derivatives calculated in FCN.') | 
|---|
| 439 |  | 
|---|
| 440 | 11803 FORMAT(/,'   SET INPut  [unitno]  [filename]',/, | 
|---|
| 441 | +'    Causes Minuit, in data-driven mode only, to read subsequent', | 
|---|
| 442 | +/,'    commands (or parameter definitions) from a different input' | 
|---|
| 443 | +,/,'    file. If no [unitno] is specified, reading reverts to the' | 
|---|
| 444 | +,/,'    previous input file, assuming that there was one.',/, | 
|---|
| 445 | +'    If [unitno] is specified, and that unit has not been opened,' | 
|---|
| 446 | +,/,'    then Minuit attempts to open the file [filename]} if a',/, | 
|---|
| 447 | +'    name is specified. If running in interactive mode and',/, | 
|---|
| 448 | +'    [filename] is not specified and [unitno] is not opened,',/, | 
|---|
| 449 | +'    Minuit prompts the user to enter a file name.',/, | 
|---|
| 450 | +'    If the word REWIND is added to the command (note:no blanks',/ | 
|---|
| 451 | +'    between INPUT and REWIND), the file is rewound before',/, | 
|---|
| 452 | +'    reading. Note that this command is implemented in standard',/ | 
|---|
| 453 | +'    Fortran 77 and the results may depend on the  system;',/, | 
|---|
| 454 | +'    for example, if a filename is given under VM/CMS, it must',/, | 
|---|
| 455 | +'    be preceeded by a slash.') | 
|---|
| 456 |  | 
|---|
| 457 | 11804 FORMAT(/,'   SET INTeractive',/, | 
|---|
| 458 | +'    Informs Minuit that it is running interactively.') | 
|---|
| 459 |  | 
|---|
| 460 | 11805 FORMAT(/,'   SET LIMits  [parno]  [lolim]  [uplim]',/, | 
|---|
| 461 | +'    Allows the user to change the limits on one or all',/, | 
|---|
| 462 | +'    parameters. If no arguments are specified, all limits are',/, | 
|---|
| 463 | +'    removed from all parameters. If [parno] alone is specified,', | 
|---|
| 464 | +/,'    limits are removed from parameter [parno].',/, | 
|---|
| 465 | +'    If all arguments are specified, then parameter [parno] will', | 
|---|
| 466 | +/,'    be bounded between [lolim] and [uplim].',/, | 
|---|
| 467 | +'    Limits can be specified in either order, Minuit will take',/, | 
|---|
| 468 | +'    the smaller as [lolim] and the larger as [uplim].',/, | 
|---|
| 469 | +'    However, if [lolim] is equal to [uplim], an error condition', | 
|---|
| 470 | +/,'    results.') | 
|---|
| 471 |  | 
|---|
| 472 | 11806 FORMAT(/,'   SET LINesperpage',/, | 
|---|
| 473 | +'     Sets the number of lines for one page of output.',/, | 
|---|
| 474 | +'     Default value is 24 for interactive mode') | 
|---|
| 475 |  | 
|---|
| 476 | 11807 FORMAT(/,'   SET NOGradient',/, | 
|---|
| 477 | +'    The inverse of SET GRAdient, instructs Minuit not to', | 
|---|
| 478 | +/,'    use the first derivatives calculated by the user in FCN.') | 
|---|
| 479 |  | 
|---|
| 480 | 11808 FORMAT(/,'   SET NOWarnings',/, | 
|---|
| 481 | +'    Supresses Minuit warning messages.') | 
|---|
| 482 |  | 
|---|
| 483 | 11809 FORMAT(/,'   SET OUTputfile  <unitno>',/, | 
|---|
| 484 | +'    Instructs Minuit to write further output to unit <unitno>.') | 
|---|
| 485 |  | 
|---|
| 486 | 11810 FORMAT(/,'   SET PAGethrow  <integer>',/, | 
|---|
| 487 | +'    Sets the carriage control character for ``new page'' to',/, | 
|---|
| 488 | +'    <integer>. Thus the value 1 produces a new page, and 0',/, | 
|---|
| 489 | +'    produces a blank line, on some devices (see TOPofpage)') | 
|---|
| 490 |  | 
|---|
| 491 |  | 
|---|
| 492 | 11811 FORMAT(/,'   SET PARameter  <parno>  <value>',/, | 
|---|
| 493 | +'    Sets the value of parameter <parno> to <value>.',/, | 
|---|
| 494 | +'    The parameter in question may be variable, fixed, or',/, | 
|---|
| 495 | +'    constant, but must be defined.') | 
|---|
| 496 |  | 
|---|
| 497 | 11812 FORMAT(/,'   SET PRIntout  <level>',/, | 
|---|
| 498 | +'    Sets the print level, determining how much output will be',/, | 
|---|
| 499 | +'    produced. Allowed values and their meanings are displayed',/, | 
|---|
| 500 | +'    after a SHOw PRInt command, and are currently <level>=:',/, | 
|---|
| 501 | +'      [-1]  no output except from SHOW commands',/, | 
|---|
| 502 | +'       [0]  minimum output',/, | 
|---|
| 503 | +'       [1]  default value, normal output',/, | 
|---|
| 504 | +'       [2]  additional output giving intermediate results.',/, | 
|---|
| 505 | +'       [3]  maximum output, showing progress of minimizations.',/ | 
|---|
| 506 | +'    Note: See also the SET WARnings command.') | 
|---|
| 507 |  | 
|---|
| 508 | 11813 FORMAT(/,'   SET RANdomgenerator  <seed>',/, | 
|---|
| 509 | +'    Sets the seed of the random number generator used in SEEk.',/ | 
|---|
| 510 | +'    This can be any integer between 10000 and 900000000, for',/, | 
|---|
| 511 | +'    example one which was output from a SHOw RANdom command of',/ | 
|---|
| 512 | +'    a previous run.') | 
|---|
| 513 |  | 
|---|
| 514 | 11814 FORMAT(/,'   SET STRategy  <level>',/, | 
|---|
| 515 | +'    Sets the strategy to be used in calculating first and second' | 
|---|
| 516 | +,/,'    derivatives and in certain minimization methods.',/, | 
|---|
| 517 | +'    In general, low values of <level> mean fewer function calls', | 
|---|
| 518 | +/,'    and high values mean more reliable minimization.',/, | 
|---|
| 519 | +'    Currently allowed values are 0, 1 (default), and 2.') | 
|---|
| 520 |  | 
|---|
| 521 | 11815 FORMAT(/,'   SET TITle',/, | 
|---|
| 522 | +'    Informs Minuit that the next input line is to be considered', | 
|---|
| 523 | +/,'    the (new) title for this task or sub-task.  This is for',/, | 
|---|
| 524 | +'    the convenience of the user in reading his output.') | 
|---|
| 525 |  | 
|---|
| 526 | 11816 FORMAT(/,'   SET WARnings',/, | 
|---|
| 527 | +'    Instructs Minuit to output warning messages when suspicious', | 
|---|
| 528 | +/,'    conditions arise which may indicate unreliable results.',/ | 
|---|
| 529 | +'    This is the default.') | 
|---|
| 530 |  | 
|---|
| 531 | 11817 FORMAT(/,'    SET WIDthpage',/, | 
|---|
| 532 | +'    Informs Minuit of the output page width.',/, | 
|---|
| 533 | +'    Default values are 80 for interactive jobs') | 
|---|
| 534 | *__________________________________________________________________ | 
|---|
| 535 | *-- | 
|---|
| 536 | *--  Command SHOW | 
|---|
| 537 | *--  ============ | 
|---|
| 538 | *. | 
|---|
| 539 | IF(CMD3.EQ.'SHO')THEN | 
|---|
| 540 | WRITE(LOUT,11900) | 
|---|
| 541 | WRITE(LOUT,11901) | 
|---|
| 542 | WRITE(LOUT,11902) | 
|---|
| 543 | WRITE(LOUT,11903) | 
|---|
| 544 | WRITE(LOUT,11904) | 
|---|
| 545 | GO TO 99 | 
|---|
| 546 | ENDIF | 
|---|
| 547 | 11900 FORMAT(' ***>SHOw  <option_name>',/, | 
|---|
| 548 | +'  All SET XXXX commands have a corresponding SHOw XXXX command.', | 
|---|
| 549 | +/,'  In addition, the SHOw commands listed starting here have no', | 
|---|
| 550 | +/,'  corresponding SET command for obvious reasons.') | 
|---|
| 551 |  | 
|---|
| 552 | 11901 FORMAT(/,'   SHOw CORrelations',/, | 
|---|
| 553 | +'    Calculates and prints the parameter correlations from the',/, | 
|---|
| 554 | +'    error matrix.') | 
|---|
| 555 |  | 
|---|
| 556 | 11902 FORMAT(/,'   SHOw COVariance',/, | 
|---|
| 557 | +'    Prints the (external) covariance (error) matrix.') | 
|---|
| 558 |  | 
|---|
| 559 | 11903 FORMAT(/,'   SHOw EIGenvalues',/, | 
|---|
| 560 | +'    Calculates and prints the eigenvalues of the covariance',/, | 
|---|
| 561 | +'    matrix.') | 
|---|
| 562 |  | 
|---|
| 563 | 11904 FORMAT(/,'   SHOw FCNvalue',/, | 
|---|
| 564 | +'    Prints the current value of FCN.') | 
|---|
| 565 | *__________________________________________________________________ | 
|---|
| 566 | *-- | 
|---|
| 567 | *--  Command SIMPLEX | 
|---|
| 568 | *--  =============== | 
|---|
| 569 | *. | 
|---|
| 570 | IF(CMD3.EQ.'SIM')THEN | 
|---|
| 571 | WRITE(LOUT,12000) | 
|---|
| 572 | GO TO 99 | 
|---|
| 573 | ENDIF | 
|---|
| 574 | 12000 FORMAT(' ***>SIMplex  [maxcalls]  [tolerance]',/, | 
|---|
| 575 | +' Performs a function minimization using the simplex method of',/ | 
|---|
| 576 | +' Nelder and Mead. Minimization terminates either when the',/, | 
|---|
| 577 | +' function has been called (approximately) [maxcalls] times,',/, | 
|---|
| 578 | +' or when the estimated vertical distance to minimum (EDM) is',/, | 
|---|
| 579 | +' less than [tolerance].',/, | 
|---|
| 580 | +' The default value of [tolerance] is 0.1*UP(see SET ERRordef).') | 
|---|
| 581 | *__________________________________________________________________ | 
|---|
| 582 | *-- | 
|---|
| 583 | *--  Command STANDARD | 
|---|
| 584 | *--  ================ | 
|---|
| 585 | *. | 
|---|
| 586 | IF(CMD3.EQ.'STA')THEN | 
|---|
| 587 | WRITE(LOUT,12100) | 
|---|
| 588 | GO TO 99 | 
|---|
| 589 | ENDIF | 
|---|
| 590 | 12100 FORMAT(' ***>STAndard',/, | 
|---|
| 591 | +' Causes Minuit to execute the Fortran instruction CALL STAND',/, | 
|---|
| 592 | +' where STAND is a subroutine supplied by the user.') | 
|---|
| 593 | *__________________________________________________________________ | 
|---|
| 594 | *-- | 
|---|
| 595 | *--  Command STOP | 
|---|
| 596 | *--  ============ | 
|---|
| 597 | *. | 
|---|
| 598 | IF(CMD3.EQ.'STO')THEN | 
|---|
| 599 | WRITE(LOUT,12200) | 
|---|
| 600 | GO TO 99 | 
|---|
| 601 | ENDIF | 
|---|
| 602 | 12200 FORMAT(' ***>STOP',/, | 
|---|
| 603 | +' Same as EXIT.') | 
|---|
| 604 | *__________________________________________________________________ | 
|---|
| 605 | *-- | 
|---|
| 606 | *--  Command TOPOFPAGE | 
|---|
| 607 | *--  ================= | 
|---|
| 608 | *. | 
|---|
| 609 | IF(CMD3.EQ.'TOP')THEN | 
|---|
| 610 | WRITE(LOUT,12300) | 
|---|
| 611 | GO TO 99 | 
|---|
| 612 | ENDIF | 
|---|
| 613 | 12300 FORMAT(' ***>TOPofpage',/, | 
|---|
| 614 | +' Causes Minuit to write the character specified in a',/, | 
|---|
| 615 | +' SET PAGethrow command (default = 1) to column 1 of the output' | 
|---|
| 616 | +,/,' file, which may or may not position your output medium to', | 
|---|
| 617 | +/,' the top of a page depending on the device and system.') | 
|---|
| 618 | *__________________________________________________________________ | 
|---|
| 619 | * | 
|---|
| 620 | WRITE(LOUT,13000) | 
|---|
| 621 | 13000 FORMAT(' Unknown MINUIT command. Type HELP for list of commands.') | 
|---|
| 622 | * | 
|---|
| 623 | 99  RETURN | 
|---|
| 624 | END | 
|---|