Version 1.1.1 (01/11/06): Made some changes to the set of buttons that are disabled when an optimization scan is in progress. Version 1.1.0 (07/14/05): Made minor modifications to be compatible with use of this code by the new tabbed notebook version of 'imcagui'. Also modified the APS 17-BM beamline specific code to interlock with the new monochromator feedback system there. Version 1.0.0 (04/26/04): The old peak, step, and ramp fitting programs written in Perl have been replaced by new versions written in Python by Jim Fait. These new versions have the feature that the X-axis positions in the scan datafile no longer have to be equally spaced, which is necessary to correctly support using quick scans for optimization. Version 0.66.0 (08/15/03): The APS 17-BM version of optimize now distinguishes between 'user' and 'staff' mode. If invoked as 'optimize_staff', all optimization scans are available. However, if invoked as 'optimize', only monochromator optimization scan for 'omega' and 'chi' are available. Version 0.65.0 (04/01/03): Optimize has been modified for SER-CAT so that the motor move to a new position after an optimization scan of 'gs_hor' or 'gs_vert' will cause 'g_hor' or 'g_vert' to move to a known relative offset position. This modified behavior only occurs if the 'mx_beamline' database variable is set to 'ser22id', so the change should not affect anyone else. The old makefile variable INSTALL_DIR has been renamed to MX_INSTALL_DIR. Version 0.62.0 (12/03/02): Optimize has been modified to work with the new dynamically loaded version of MxTcl. A DND-CAT specific beamline script 'beamline/opt_dnd5id.tcl' is now bundled with Optimize. Minor bugfixes were made to the 'make install' makefile target. Version 0.60.1 (08/19/02): Optimize has been modified to make use of the MXTEST environment variable. If MXTEST is set to a non-zero value, optimize will read its Tcl scripts from the current directory. Made some requested changes in SER-CAT's version of optimize: 1. Disabled slit scans. Only the tune scan is now available. 2. Disabled 'Go To Fitted Maximum' button at the end of a scan. Now only 'Go To Measured Maximum' and 'Discard' are available. Version 0.56.1 (04/04/02): This version is a major revision to the 'optimize' code motivated by the addition of support for SER-CAT's 22-ID beamline. The code has now been restructured such that beamline specific code has been moved to a subdirectory called 'beamline' containing files such as 'beamline/opt_imca17bm.tcl' and 'beamline/opt_ser22id.tcl'. 'Optimize' has now been modified so that all of the optimization buttons on the main menu are disabled while an optimization scan is in progress. This prevents the user from accidentally starting an optimization scan while another optimization scan is in progress. The IMCA-CAT Sector 17-ID version of the program now has an additional button at the bottom which starts up the external 'adsc_table' program. The 'adsc_table' program provides a GUI for tweaking the ADSC table pseudomotors at 17-ID. Version 0.55.0 (12/18/01): Added "fit to step" functionality to the optimization scans. This is used to optimize the position of a motor to the halfway point of an edge in the beam. Such an edge would typically be caused by a slit or a collimator. At present, the fit to edge procedure merely finds the maximum and minimum intensities on either side of the edge and goes to the position corresponding to an X-ray intensity that is halfway between the maximum and minimum. There is also a partially completed "fit to ramp" function that tries to fit to a sloping ramp in intensity. This was not finished since the "fit to step" function was found to work well enough. It was left in the code since I might need to actually finish it someday, but it is not useable in its current state, so don't try it unless you plan to fix it. Renamed the Fortran helper programs to reduce the chance of name clashes with other programs. They are now called 'opt_differentiate', 'opt_fit_to_gaussian', 'opt_fit_to_ramp', and 'opt_fit_to_step'. Version 0.50.1 (10/22/01): Added the ability to optimize a gaussian to the derivative of the scan data. Modified the call of the initialize_hardware method in opt_func.tcl to include the new 'inithw_flags' argument added to MX and MxTcl. Version 0.50.0 (08/15/01): The source code for 'optimize' now untars into a subdirectory called 'optimize' rather than the current directory. This is for compatibility with the new source tree layout of MX 0.50.0. Version 0.27.3 (07/19/01): Made minor changes to the color scheme. For example, the buttons that start optimization scans are now green. Version 0.27.2 (02/19/01): Replaced the 'Accept' button in the dialog that appears after a fit is complete with two buttons: 'Go To Fitted Maximum', and 'Go To Measured Maximum'. The first button does the same thing as the old 'Accept' button, while the second button moves to the position corresponding to the maximum measured intensity. Modified the makefile such that it does not overwrite an existing 'optimize.dat' file. Version 0.27.1 (11/03/00): Added a vertical mirror optimization button and deleted the table optimization buttons. Version 0.26.4 (05/05/00): The package now includes a more recent version of the default 'optimize.dat' file. Version 0.26.2 (03/16/00): Modified the optimization GUI to use the new 'mxwish' program as its interpreter rather than the old 'mxtclwish' program. Version 0.25.1 (11/04/99): Added the ability to abort an optimization scan. Also added the ability to log the result of optimization scans using a database variable called 'optimization_log'. Version 0.25.0 (09/20/99): Updated the optimize GUI code to work with version 0.25.0 of MX. Version 0.23.4 (08/02/99): The optimize GUI now finds the center of the beam by performing a real Gaussian peak fit using the Levenberg-Marquardt algorithm. At the end of the fitting, the GUI now displays the fit overlayed on the experimental data and asks the user for permission to move to the fitted position. Version 0.23.2 (05/10/99): Permission has been granted by IIT to make the source code freely available on the Internet. Added IIT copyright messages to all the source code files. Version 0.23.0 (01/27/99): The optimize GUI now asks the user whether or not they want to accept the results of the fit performed at the end of the scan. If they choose not to accept it, the motor is moved back to the position it had before the start of the scan and an 'Optimization Discarded' message is displayed on the GUI. Version 0.22.7 (11/10/98): Errors during program startup are now caught with 'catch' so that the error messages can be seen in the message log window. When an optimize scan is performed, the start position of the scan is modified so that the scan is centered around the original position of the motor. Version 0.22.6 (10/29/98): This is the first version of the optimize GUI released to beamline staff and some users.