1 DEFINE
  Syntax: DEFINE name
   where: name  is the new command name

  `DEFINE' creates  interactively whole sets of  commands, where `name' is
  any name you like  except `ALL'. However, if  there already is a command
  of that `name' the new definition  will be ignored. Also, first standard
  Mn_Fit  commands  are  searched for and  then ones  made  with `DEFINE'.
  Therefore, if your new  command is ambiguous  with a Mn_Fit command, the
  Mn_Fit command  will always be  used. After giving  the command line you
  will see the prompt `DEFINE>' and  you give the defining commands one at
  a time. If you give the  command `ENDDEF', you  will revert to the usual
  prompt and are ready to use the new  command. `DEFINE' works both at the
  `MN_CMD>' and the `MINUIT>' level.

  If you want  to `DEFINE' a  command with  parameters  from inside a file
  then use the syntax `@@1, @@2' etc. This will be translated to `@1, @2,'
  etc and then you can use the  parameters within the `DEFINE' command. If
  you `DEFINE' a command  interactively, use the syntax `@1, @2,' etc. For
  more on the use of parameters see HELP EXECUTE.

2 Examples

!\begin{enumerate}
!\item
!^
  Example 1:
   Define the command LOOK:
    MN_CMD> DEFINE LOOK
    DEFINE> PRINTOUT -5
    DEFINE> SIMPLEX @1 50 @2
    DEFINE> MIGRAD @1 @2
    DEFINE> INFO
    DEFINE> ENDDEF

   If you then give:
    MINUIT> LOOK 5 3

   then you will execute:
    PRINTOUT -5
    SIMPLEX 5 50 3
    MIGRAD 5 3
    INFO

   If you give:
    MINUIT> LOOK

   then you will execute:
    PRINTOUT -5
    You will be prompted for the values of parameters @1 and @2.
    If you hit <CR> then you will execute:
    SIMPLEX 50
    MIGRAD
    INFO

!\item
!^
  Example 2:
   You can nest commands:
    MN_CMD> DEFINE FULL
    DEFINE> INQUIRE 1 'Give histogram id to fit'
    DEFINE> FIT @1
    DEFINE> 0
    DEFINE> LOOK @2 @3
    DEFINE> PRINTOUT -5
    DEFINE> MINOS 1000 @3
    DEFINE> PRINTOUT 1
    DEFINE> ENDDEF

  FULL will  invoke the just  defined LOOK  command. All  resulting actual
  commands will  be echoed on  the screen,  just so that  you know what is
  going on.  Also if  you have  not given  a  parameter when  invoking the
  command  you will  be  prompted for its  value the  first  time that the
  parameter is found.
!\end{enumerate}

