| [2403] | 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 | 
|---|