--------------------------------------------------------------- Go4 Release Package v6.0.0 (build 60000) October-2019 --------------------------------------------------------------- The GSI Online Offline Object Oriented (Go4) Project Experiment Data Processing at EE department, GSI --------------------------------------------------------------- Authors: Joern Adamczewski-Musch (1999-) Mohammad Al-Turany (2000-2004) Sven Augustin [Python] (2015-) Denis Bertini (2001-2004) Hans Georg Essel (1999-2010) Marc Hemberger (1999-2000) Sergey Linev (2002-) --------------------------------------------------------------- Copyright (C) 2000- Gesellschaft f. Schwerionenforschung, GSI Planckstr. 1, 64291 Darmstadt, Germany Contact: http://Go4.gsi.de --------------------------------------------------------------- This software can be used under the license agreements as stated in Go4License.txt file which is part of the distribution. --------------------------------------------------------------- Changes in Go4 v6.0.0 (October 2019) 1. Support web-based ROOT6 canvas in the view panel. Requires ROOT v6.16, compiled with options cmake -Droot7=ON -DCMAKE_CXX_STANDARD=14 -Dqt5web=ON 2. Let configure sorting order for created folders (default off) 3. First implemention of Go4 eventstore into hdf5 file format. Needs to specifiy HDF5INSTALL directory when compiling go4 installation. Supports simple datatypes, std::vectors, and arrays of these. Also supports Go4 composite events with unlimited sublevels. 4. New Condition class TGo4ListCondition. Handles tests of a variable against a list of "good" values: if any of these matches the value, the condition becomes true (whitelist condition, invert condition to get a blacklist). New analysis api functions MakeListCond(...) are provided. Implementation idea by Sven Augustin. 5. New class TGo4RollingGraph. Implements a trending plot as TMultiGraph with variable size and averaging. Added corresponding creation methods MakeRollingGraph to analysis API. It also provides now methods MakeGraph() for given point arrays, and for a given TF1 function. Adopted from existing code of the TRemi (reaction microscope) analysis (thanks to Sven Augustin) 6. First implementation of Go4 eventsource from hdf5 file format. Needs to specifiy HDF5INSTALL directory when compiling go4 installation. Such hdf5 files can be read into the input event which have been produced by the corresponding Go4 HDF5 store only. Supports simple datatypes, std::vectors, and arrays of these. Also supports Go4 composite events with unlimited sublevels. 7. Add nox11 build flag. Automatically enables withweb flag. Used on Mac platform by default. 8. Provide support of modern Mac platform. Required latest ROOT with qt5web option build. 9. Remove force32 build option, was only used for old Mac platforms 10.Fix problem with closing view panel via File/Close menu. Now works! Changes in Go4 v5.3.2 (October 2018) 1. Add Output of current filename to GUI log indow in case of MBS listmode list event source. 2. GUI local command execution: Provide catching std exceptions from ROOT in case of errors. Added possibility to float histogram results in local macro divhistos.C 3. Bugfixes in Thread class and interpreter mutex locking (SetProcessLineLock defaults) for ROOT > v6.12 4. Bugfix in TGo4BufferQueue dtor cleanup, inconsistent for ROOT 6.14/04 5. Bugfix in TGo4BroswerProxy concerning sumw2 warnings Changes in Go4 v5.3.0 (March 2018) 1. Go4 GUI (Qt4/5): Optional timestamp output in analysis terminal window before each text buffer. This feature can be toggled by GUI menu "Settings/Terminal/PrintTimestamp". The format string (QDateTime) can be defined by menu "Settings/Terminal/Timestamp Format..." dialog. Both properties are stored in go4 settings. Other properties of Analysis Terminal such history and font, also appear as "Settings/Terminal" submenus now. Thanks Sven Augustin for this idea. 2. Store "Apply to all" flag of the viewpanel in the hotstart. 3. Provide "Auto zoom" flag for the viewpanel. If set, all histograms will be automatically zoomed into non-zero range. Useful with monitoring, also preserved in hotstart file. 4. One can specify GO4EXTRAINCLUDE shell variable, which automatically add to gInterpreter->AddIncludePath when starting go4analysis. This required when user classes should be used in ACLiC with ROOT6. 5. Bugfix: Display of TGraph like objects in GUI will update also the TF1 functions contained in the graph, like fitter results. Previously the first TF1 fetched was never changed again. 6. Number of contour levels for histogram can be configured from "Color tools" 7. Fix error in http server browsing when folders names are similar list "Ch1" and "Ch11" Changes in Go4 v5.2.0 (January 2017) 1. Handle mouse wheel events in QtRoot interface, used in ROOT zooming 2. Bugfix in parameter Editor: format string precision for Float_t, Double_t, and Double32_t was reduced to defaults. Now it supports full range of data type and exponential formatting. 3. Qt4 GUI: new toolbar for Analysis Command Buttons: Provides 9 buttons C1...C9 that can be freely configured by the user with commands to be executed in the analysis process interpreter. Supports ROOT, go4 and Python macros. Default shortcuts Ctrl-1 ... Ctrl-9 allow fast keyboard interaction. 4. Qt4 GUI: improvement in main window status message: Ratemeter will clear message when updating, no message display timeout anymore. Solves problem of gui messages still visible behind ratemeter counters. 5. Qt4/5 GUI: Modified qtroot interface and gui viewpanel to take into account optional Qt5 high dpi scaling factors set by QT_SCALE_FACTOR environment variable (Qt> 5.6.x only). 6. Qt4/5 GUI: Improved display of 1:1 coordinate ration for 2d histograms. Aspect ratio of the selected pad will be automatically re-adjusted when resizing the viewpanel. Beside, the histogram borders will be expanded to use maximum margins of the pad. 7. Qt5 GUI: added HighDPI Scale factor to Preferences. Can be adjusted via Settings/Preferences Menu Requires GUI Restart. Qt Version > 5.6 only! 8. Added Execution timer for Analysis Command button toolbar. Any user defined command that is checked in toolbar can be executed frequently by a timer with adjustable period. This allows for example to clear histograms frequently by defining command '@ClearObjects("Histograms")' 9. Redesign of Analysis Command button toolbar: Icons instead of text labels (text labels showed some problems with redefined keyboard shortcuts at Qt5!). Added Configuration window for commands, tooltips, and timer execution state. Checkboxes in toolbar were replaced by red or green button icon colors to indicate which command is frequently executed by timer. 10. Qt4 GUI: Added preferences flag to supress background colors of pads and frames when exporting the canvas with the Viewpanel "File/SaveAs.." Menu to various image and print formats. This mode can be set by main window menu "Settings/PanelDefaults/"White canvas for saved images". Changes in Go4 v5.1.2 (May 2016) 1. Let configure default line width for objects draw. Useful for 4K monitors, where default line width (=1) is too tiny. 2. Bugfix - when creating hotstart, TLatex object was added to picture specials twice, which leads to crash when such picture need to be deleted. 3. When running go4analysis, one could specify alternative (newer) JSROOT version like go4analysis -random -jsroot http://jsroot.gsi.de/latest/ 4. Fix problem with ROOT6 - it requires exact location of go4 include files when running GUI or analysis. Especially important when doing "make install" 5. Preserve frame position in the hotstart, do not reset frame with every update. 6. New Viewpanel feature: double click on histogram pad does unzoom of axes. For subpads, still another viewpanel with the subpad is opened. 7. Bugfix in viewpanel redrawing: in v5.1.0 statistic and label boxes could disappear or be scrambled when mouse was moved over them. This was an unwanted side-effect of the previous TGraph/polygon condition crash bugfix. 8. Changed default test lmd file names of examples to $GO4SYS/data/test.lmd instead /GSI/lea/gauss.lmd. New method TGo4Analysis::GetDefaultTestFileName() that delivers the actual path to this file in the current installation. 9. Added panel defaults for 1d histogram draw fill color and style. Like the default line width, this is included in go4 settings. 10. Python support: restructured the whole module: moved things that are not interesting for a user, i.e., implementation details (ExpMem is in expmem.py) and helper modules (e.g. facade.py) into the go4py.internals namespace/subfolder. Added nicer error message if go4init is imported outside Go4. Changes in Go4 v5.1.0 (March 2016) 1. One can register Start/Stop/Clear commands in any place of THttpServer hierarchy. Such commands recognized by the GUI and used when pressing Start/Stop analysis buttons or Clear analysis objects button 2. Allow to use graphics in analysis. With "-gr" or "-graphics" option one enable ROOT graphics. User can create and update canvas or any other TG... object. 3. Support Python Scripting in analysis, either by GUI Analysis terminal command line or in compiled code: A leading '$' in command line will execute python script of given name, occasonally TGo4Analysis object is bound as go4 symbol. New Methods ExecuteLine and ExecutePython in TGo4Analysis and TGo4EventProcessor to invoke regular interpreter commands and python scripts,resp, from compiled code. File search dialog of Analysis terminal in GUI will provide also file filters for *.py macros. Thanks to Sven Augustin, MPI Heidelberg, for this idea and code support. 4. Support Python Scripting in GUI command line (TGo4AbstractInterface binding). File search dialog of GUI commandline tool will provide also file filters for *.py macros. 5. Analysis terminal window: added button to scroll down to end of output text. 6. Web GUI: Implemented analysis terminal window with macro command line (requires ROOT>=5.34.34) 7. TGo4Style Color Tool: Added selection menu to provide new ROOT6 named palettes. New entry "Settings/Panel defaults/Palette settings" to specify minimum and maximum valid ROOT palette indices for spinbox, and default palette index. 8. GUI: Added shaped condition class to "Create new condition" tool. 9. Provided "1:1 Coordinate ratio" display for histograms as pad option for TGo4Picture. So this property can be saved and recovered with hotstart script, or predefined in analysis code by method TGo4Picture::SetXYRatioOne(bool). Moved corresponding entry in viewpanel from Edit to Options menu, can be toggled now. 10. Bug fix in monitoring of polygon conditions: moving condition object with mouse during monitoring refresh could cause severe memory corruptions and a crashing GUI, due to temporary static arrays in ROOT painters not treated correctly when redrawing the objects. Changes in Go4 v5.0.0 (June 2015) 1. GUI Settings/Preferences: Added configurable window resize/move mode ("rubberband" outline or full repaint). Reduces window flickering with current Qt5.x versions due to non compressed X-events 2. Workarounds in qtroot interface for Qt5: to avoid known bug with non compressed X mouse events (https://bugreports.qt.io/browse/QTBUG-40889), introduced 100ms time limit for processing mouse move events in QRootCanvas. This improves canvas interaction performance significantly. 3. GUI can connect to go4analysis with either HTTP server or go4 sockets with "Connect to server" button. HTTP server provides same functionality as Go4 sockets connection and besides shows remote terminal output in the analysis window. Access to web server (controller/observer roles) can be controlled by htdigest accounts and password 4. GUI can start go4analysis as HTTP server with Launch Analysis button. This provides now an alternative mode to the established Go4 sockets analysis server. 5. TGo4FileStore: implement to change tree flush threshold (autosave interval) in GUI configuration. Set default tree flush threshold to 10000 events. Due to changed ROOT API, positive numbers indicate number of events, negative number of bytes to flush tree into file. Was historically set to a large number (of bytes) so practically tree was never flushed until end of analysis. 6. Add doxygen documentation generation to Makefile. Now "make docs" will produce doxygen html output in subdirectory docs/doxygen. Changes in Go4 v4.7.1 1. Implement TGo4Parameter::UpdateFromUrl() method to be able change parameter values via HTTP server. 2. Provide several shortcuts in web interface for commands like: "Start", "Stop", "Clear", "Resubmit" 3. In batch mode do not account events in non-running mode, reduce cpu load with sleep in non-running mode. 4. Introduce go4.js with go4-related JavaScript code 5. Provide html-based condition and parameter editors 6. Support access to ROOT-based http server from go4 GUI. Just when staring go4, specify: [shell] go4 http://localhost:8080 7. Added new condition type TGo4ShapedCond. This is subclass of TGo4Polycond with properties to create ellipse/circle/box-shaped polygon region from center/radius/tilt parameters. Supported by new registration methods MakeEllipseCond, MakeCircleCond, MakeBoxCond in TGo4Analysis and TGo4EventProcessor. Condition editor in qt4 GUI has a tab to manipulate these conditions interactively. Thanks to Sven Augustin, MPI Heidelberg, for this idea. 8. When file opened in Go4, sub-directory will be read only after actively clicked. Allow read large ROOT files. Changes in Go4 v4.7.0 1. Store main window geometry and toolboxes settings in hotstart (only qt4). Makes possible to reproduce exactely view of the main panel. 2. In go4-config script provide --cflags, --libs and --glibs option. This should allow to build libraries and executables, which are using go4 libraries. 3. When taking ROOT objects from DABC-based application, also request and unpack list of streamer infos. This allow to browse and display objects with different class version. 4. Improve handling of superimposed graphs and histograms: support time axis, correctly set colors, adjust size of legends box. 5. Use MSG_NOSIGNAL option when send/recv data via socket (only for Unix). Allows to correctly terminate analysis when socket corrupted or broken. 6. Activate graphics editor (TGedEditor) when called via context menu. Was not working due to recent ROOT changes. 7. In web-browser allow to explore parameter and events objects, registered in the analysis. Hide unsupported types. 8. Add support of fastcgi. Now go4 can deliver its data to standard web server (like Apache or lighttpd). This allows to control access rights and security with usual methods, provides by web-servers. 9. Use QMdiArea instead of obsolete QWorkspace, solves several small problems in window management. 10.To provide full support of ROOT6 one dictionary per go4 library will be created. Exclude dictionary generation for gui classes while no libraries with qt classes exists. 11.Mostly complete porting to ROOT6 and Qt5. 12.Introduce UserPreLoop() and UserPostLoop() methods in TGo4EventProcessor. One can use such methods without creation of specialized analysis class. 13.Implement TGo4Analysis::GetInputFileName() - returns currently processed file name. Automatically reset TGo4Analysis::IsNewInputFile() at the end of event processing. 14.Introduce Go4ExampleDabc, which shows usages of DABC functionality in Go4. Example shows how one can regularly submit commands to running MBS. 15.Support -std=c++11, which is now used in ROOT6. 16.By default all objects appear in gui with monitor flag. Only monitoring should be started to get any histogram/graph monitored. 17.Bugfix concerning autoscale in multipad viewpanel. 18.Changed some histogram definitions in Go4ExampleUserSource, added angular distribution. Now covers different scenarios of multiple scattering simulation SCATT2014. Changes in Go4 v4.6.0 (November 2013) 1. Start implementation of new communication interfaces in Go4. Therefore change of version number. Aim to make fast 4.6 release and than 5.0 till end of 2013. 2. Start implementing direct channel to DABC. For the moment only optional. 3. With use of DABC classes http server to go4analysis is introduced. Just add "-http 8090" arguments to start web server, which can deliver all go4 objects to browser! 4. Also with DABC classes provide possibility to optionally connect with DABC master node, which can export go4 data via http server. By this data from many go4 analysis can be agregated in the same server! 5. To get different DABC functionality to go4, one need to compile go4 with "make withdabc=1" flag. One should use newest dabc version from repository. 6. Provide go4 analysis view in web browser like in go4gui. 7. In analysis Launch Panel one can specify arguemtns to start http server or to connect with master DABC application. 8. In Go4ExampleAdvanced show possibility to recreate histograms with different ranges. It could be used when only when in running analysis one could decide which histograms ranges should be created. 9. In TGo4FitSlot add possibility to clear object. Necessary when old object was already destroyed - older TGo4FitSlot::SetObject method tried to cast old object. Use it when set histograms or graphs to slot objects. 10.Provide configurable timeout in hotstart script for time when alalysis configuration is submited. It can be longer as default 20 sec, which now can be changed. 11.Add possibility to refresh names list after analysis configuration. Can be used if shortly after analysis start new histograms are created, whcih should be shown in the gui. For that one need to add following lines to the hitstart: go4->Wait(10); go4->RefreshNamesList(); First wait defines how long one need to guarantee, that analysis starts. 12.Fix problem with zoom selection - at some time in ROOT TAxis::SetRangeUser was modified, which leads to zoom shift on one bin every histogram update. Fixed for qt4 version of GUI. 13.In all go4 source files use std:: prefix for standard libraries. 14.Small adjustments for newest ROOT 5.99 version. 15.Introduce TGo4AnanlysisSniffer class, which could obtain some Go4 events like ratemeter update or status message sending. Use in Go4Dabc sniffer to provide such information to the browser. 16.Provide all status messages to TGo4AnanlysisSniffer to be able show all of them in the browser. 17.TGo4Log can deliver all messages to special sniffer object. This message is used in TGo4DabcSniffer to record and provide debug output of any go4 analysis 18.Provide in preference menu possibility to set "draw once" flag. Means every histogram can only be drawn once when double-clicked in the browser. 19.Provide in gui script possibility to request item name, drawn in the panel. Method name is go4->GetDrawnItemName(panel, cnt = 0). Can be useful in some gui scripts. Done for qt3/qt4. 20.Fix problem with TGo4FileSource and newest ROOT - SetBranchAddress was not working correctly. 21.Special proxy created for access to running dabc application via dabc socket. Idea to have similar look and fill like web-based interface, but with native ROOT graphics. 22.Support of connection to dabc in gui and hotstart (qt4) 23.When TGraph with time on X axis drawn for the first time, it will be correctly recognized in the view panel. 24.Add commands like start/stop analysis and clear histograms into web interface. Changes in Go4 v4.5.5 1. Adjust different macros to use together with ROOT 5.99 2. Implement auto-zoom functionality for 1/2/3-dim histogram (qt3/qt4). Automatically adjust range selection to non-zero content of the histogram. Can be actiavted also with Ctrl * keys combinations. Thanks to Mixael Traxler for nice idea. Changes in Go4 v4.5.3 (devel Summer 2012)/ v4.5.4 (Release November 2012) 1. Added macro fft.C for fast fourier transform of histograms into gui command line. 2. Adjustments for new root versions >5.99 (wrapper go4iostream.h) 3. Added some keyboard shortcuts for histogram display manipulation: Ctrl-Left/Ctrl-Right: Expand/Unexpand range on x axis Left/Right: Move Histogram left/right on x axis (only if range was expanded) Up/Down: Expand/Unexpand range on y axis (toggles autoscale off) Shift-Up/Shift-Down: Move Histogram up/down on y axis (only if range was expanded) Ctrl-End/Ctrl-Home: Expand/Unexpand range on z axis (toggles autoscale off) Shift-Home/Shift-End: Move Histogram up/down on z axis (only if range was expanded) Ctrl-Minus: Unzoom ranges totally Ctrl-Plus: Show/hide range settings window Ctrl-Page Up: Y axis in logarithmic scale Ctrl-Page Down: Y axis in linear scale F5: Refresh display of all remote Histograms Shift-C: Clear all remote Histograms _remotely_ Shift-M: Start monitoring timer Shift-N: Stop monitoring timer Note: All these shortcuts do work only if the corresponding toolboxes (zoom tools, browser options, short histogram draw options) are active! 4. Added shortcut F1 to display the Go4 Introduction Manual as Help. 5. Added shortcuts F6,F7,F8 to toggle visibility of browser, logger, and mbs monitor dock windows (F9 for DABC monitor if compiled with DIM) 6. GUI analysis status ratemeter: Tooltip of runtime seconds this time as hour:minute:seconds representation. Bugfix: "rotating go4 logo" in statusbar when analysis is running was not working in Qt3 7. Graphical Markers and Conditions: Added possibility to define a "printf style" format string in for the float number display in marker/condition label box (default is %.4E). When selecting the marker/the condition display on TPad via mouse button, the ROOT context menu provides method SetNumFormat(const char*) to change the settings of current marker. Context menu function SaveLabelStyle() will set current format as default for all markers/conditions. MainWindow menu "Settings/Panel Defaults/MarkerLabels..." also has new field to set this format string. These defaults can be saved to go4 settings. 8. Add full-screen mode for main window (F11). Both for qt3 and qt4 9. New printout option for go4analysis: "go4analysis -print bhead fhead" will print lmd buffer and/or file headers together with the event headers. Additionally, most recent time string from buffer header is printed together with event header 10. Disable SIGPIPE signal for go4 sockets. Signal was generated when oposite communication side stopped or breaked irregulary without sockets closing. In this case signal was generated and was not treated properly by the framework. 11. Workaround for ROOT feature in go4analysis - at some point gSystem pointer can be set by 0 and can lead to analysis crash. Now this checked and go4 stops immediately. 12. Allow to specify port number for any MBS source (beside file) in form name:port like calling "go4analysis -stream node:6543". Same can be done in gui. 13. Add ExecuteScript() method to analysis and event processor. Simplifies usage of macros in user code. Changes in Go4 v4.5.2 (April 2012) 1. Bugfix in gui shutdown: circular deletion of mainwindow and timer could lead to crash on suse 12.1. Also changed details of shutdown mechanism, hope to fix the "hanging analysis with 99% cpu" problems (this may happen when gui terminates before analysis was properly disconnected). 2. Adjusted Makefile.config for suse 12.1 3. Add in MakeParameter method possibility to execute setup macro 4. In GetParameter method one could optionally specify class name, which will be verified 5. Adjust savecond.C and saveparam.C macros 6. Add possibility to change default position of stat box (only for qt4 gui) 7. Add support of composite events in dynamic list editor (qt3/qt4) 8. Add retry counter for some MBS sources - let reconnect server if it was down for some time. Useful for online analysis when server can be switched off/on very often for short time. Implemented in MBS source class, can be configured in go4analysis, qt3/at4 gui, hotstart. 9. Fix error in event selection of MBS sources like stream server, make more compact event source selection in the gui (qt4 only) 10.Fix error in fitgui - in wizard mode model assignment to the data component was not working (problem only in qt4 version) 11.Allow to use TArrayI and TArrayD in the TGo4Parameter and parameter editor. Now parameter elements of such classes can be edited and store in script 12.Allow to specify several files in row as argument of command "go4analysis -file ..." It is very useful in the case when wildcard characters are used. Shell automatically expands all wildcards itself and therefore previous go4 versions get errors. Now following command is valid: "go4analysis -file *.lmd". Make debug output of the analysis more clear when processing many files. 13.Add -rate argument to the go4analysis executable. Enables output of current rate in batch mode. 14.Force loop-back address (127.0.0.1) as gui host name for connection from analysis to gui when running analysis with exec mode or with ssh localhost mode. Solves problem to run go4 without properly configured network. Changed only in etc/go4.prefs file, can be adjusted by user. Changes in Go4 v4.5.1 (November 2011) 1. Add force32=true flag to the Makefile, done to force 32 bit compilation and linking on 64-bit platform. Done to support such kind of MacOS machine, not tested (probably, not required) on Linux. 2. Correctly treat "fetch when drawing" option in all cases. Before in some situations (like double-click on multipad panel or drag-and-drop) object was fetched even if flag was disabled. Fixed in qt3/qt4 versions. 3. Adjust init scripts and README how to compile go4 in Windows. 4. Bugfix in composite event: When reading from TTree, setting the branch addresses to the subcomponents failed in case that more subcomponents were in file than preallocated. Now we store the complete length of TObjArray with composite event and ensure that array is not re-allocated during the tree read. 5. Bugfix/change in default TGo4EventElement::Fill() - valid flag was always set depending on BuildEvent() return value, did overrule user settings. Disabled this. 6. Bugfix in gui - user source port number, specified in analysis configuration gui, was not delivered to the user source constructor 7. New feature - possibility to specify optional port number for any MBS servers. Necessary for working with DABC where port number can be changed freely. Useful for virtual machines, where ports around 6000 are blocked. 8. Added support for x-axis time display in TGraph and TH1. New Items in Viewpanel Options menu: "X-Axis displays time" and "Set xaxis time format" 9. Adjusted build system for gcc 4.6.1 (Ubuntu 10.11) 10. Bugfix in Qt4 GUI: on MacOs and gnome desktops, window menus were all put to screen system menu. This caused main window menu to disappear after opening first viewpanel. 11. Introduced event processor API methods SetKeepInputEvent() and SetKeepOutputEvent() to provide "1 to n" and "n to 1" event building functionality. To be used if input event contains several output event data sets, or vice versa if several input events must be processed to gain one output event. Each time these methods are called in event processor, the next analysis cycle will skip all previous, or all subsequent analysis steps, resp, and will reprocess the input, or continue filling the output event data, resp. 12. Changed Go4LockGuard: do not use TThread::Exists() anymore. Because of ROOT internal mutex, this call will not save any mutex lock, but introduce additional one. Changes in Go4 v4.5.0 (August 2011) 1. Fix problem with Ctrl-C handler. Now in batch in all cases analysis will be stopped correctly. 2. Significant changes in event classes. Reincarnation of TGo4CompositeEvent. It is now can be used again as output/input of any step. Many errors are fixed. 3. Add possibility to hide TGo4EventElement members from tree viewer and event viewer. This makes look of data structures, especially in composite events, much more clean. Default is off, can be changed via Settings->Preferences menu. Implemented for both qt3 and qt4 version. 4. Correctly display structure of composite event in the analysis browser. 5. Added composite event example in Go4ExampleAdvanced 6. Bugfix in help window display: Sometimes QProcess did not launch pdf viewer script correctly. Workaround: use detached QProcess 7. Bugfix/workaround in MBS monitor: sometimes it appeared that timer was skipped, resulting in wrong data/event rates as calculated by Go4. Introduced check of real time against timer period to correct rate and trend histogram if necessary. Changes in Go4 v4.4.3 (March 2011) 1. Implement proper Ctrl-C handler for Windows platform 2. Fix several problems with settings savings. There is known issue with dockable widgets (http://bugreports.qt.nokia.com/browse/QTBUG-16252), therefore qt4.7.0 and 4.7.1 has a problem to correctly restore browser/logger position. 3. Adjust to Miscrosoft Visual Studio 2010. 4. Bugfix in dabc monitor: table of DAQ nodes were set up with sorting enabled. Added some flags to protect table rendering 5. Extension of TGo4LockGuard class to force locking even when no ROOT thread exists. Important when race condition code shall be protected against foreign pthreads (e.g. DIM) 6. Adjusted to new version of gSTORE RFIO/ lmd event input 7. Implement -print argument for go4analysis program. This allows to print any kind of event on the terminal - even without actual user analysis. For instance: go4analysis -stream r4-4 -number 10 -print will print 10 events from MBS stream server r4-4. Print also works with user source. 8. Implement TGo4FileStore::SetMaxTreeSize method to let configure size of created tree. Add -maxtreesize argument to go4analysis to change value in batch. 9. Use gStyle->GetStatFormat() for formatting of fitter parameters output. Add possibility to configure this format from GUI via Settings/Panel defaults/Printf menu. Implemented in qt3/qt4 versions. 10.Add possibility to display/monitor TLatex object from analysis (qt3/qt4). Changes in Go4 v4.4.2 (October 2010) 1. Fix analysis crash when autosave file cannot be created in specified locations. 2. Add handling of event timeout exception to analysis, running in batch mode. Prevents unexpectable break of analysis due to low data rate. 3. Improve Ctrl-C handling in analysis, which runs under gui control. Now after first Ctrl-C analysis will try normally finish event loop and exit. After second Ctrl-C it tries immediately store autosave file and exit. All consequent Ctrl-C will just terminate analysis. 4. Add in go4analysis event source exception handling, display more info with MBS source errors. 5. Small fixes in fitpanel - info pad displays FWHM of the line, list of models in wizard is navigated correctly 6. Solve problem that after loading of user library, classes from it was not available automatically to the gui. Now one again can use custom histogram classes in the gui if appropriate library is loaded. 7. Support of new RFIO v6.0. 8. Check with gcc 4.5.0 9. Fix error with user source example under Windows. 10. Added possibility that output event of first analysis step can be declared as MbsEvent and just save the incoming mbs event into ROOT tree without copying the data: added method TGo4MbsEvent::AssignReference() allows to use TGo4MbsEvent as a "reference" to another TGo4MbsEvent; added constructor TGo4MbsEvent(const char*) to use it with standard factory 11. Bugfix in TGo4MbsEvent: memory leak in subevent array when reading back from TTree 12. Bug fix: when loading analysis preference file, check all appropriate keys in the file. Before analysis object name was fixed and name of status object also was fixed. 13. Feature fix. When autosave file had complex directory structure, it took sometimes minutes just to open it during analysis start. Normally analysis reads histograms in the beginning (when autosave enabled) and file was opened in "update" mode. When closing such file, ROOT writes complete directory structure back to the file, which may takes minutes. Therefore, for reading autosave will be opened in "read", when writing "recreate" will be used. 14. Use 64-bit integer for analysis loop count. Display correctly number of processed events in gui. 15. Add possibility to select font in analysis window. Sometime it is useful to set fixed-size font there to see better formatted output from analysis. 16. When closing GUI with running analysis, sometimes analysis was hanging with 100% CPU consumption. In most cases it happens when running analysis in qt terminal. Now GUI suggest to wait more time that analysis can shutdown normally or user can kill analysis and exit immediately. 17. Analysis configuration window: automatic clear of eventsource names when switching type of source. Bugfix: filename filter for listmode files did not work. 18. Bugfix: when disconnecting analysis task, added Quit() method in analysis client which closes analysis first to avoid hanging analysis thread (see 16.) Changes in Go4 v4.4.1 (May 2010) 1. Default implementation for TGo4Parameter methods are provided. Now Clear(), PrintParameter() and UpdateFrom() methods has meaningful functionality and can be used as is in user derived classes. Thus, it is possible to declare user parameter class without any additional methods. See Go4ExampleSimple and Go4Example1Step. 2. Add support of arbitrary objects in TGo4Picture::AddSpecialObject, show real picture size in the browser 3. Add possibility to specify wildcard in TGo4EventSource class - allow to treat many subsequent root files, improve wildcard treatment in TGo4MbsFile, provide wildcard functionality for Windows 4. Fix (implement) "-source" argument for go4analysis 5. Fix problem with TASImage zooming, allow to switch palette on/off in asimage mode 6. Improvements in fitpanel, that it can correctly display fitters, produced by examples 7. Keep and restore panel name in hotstart file. 8. Support UserGUI in Win32, solve windows export/import problems 9. Allow to configure default draw options for classes like TH1/2/3, TGraph 10.Support of MacOS X (Darwin) 11.Add to TGo4Analysis static methods IsBatchMode(), IsClientMode(), IsServerMode(), returning running mode of the analysis. Variable set in go4analysis program and therefore methods can be used already in user analysis constructor. 12.Provide meaningful implementation for TGo4Analysis::SendObjectToGUI method. Now user can send any registered object (histogram, graph, condition) to gui, where it will be automatically updated. If object displayed, viewpanel will be updated. This allows do histogram monitoring without activating monitoring mode. 13.Bugfix in shutdown of analysis server (did crash or deadlock sometimes due to fast disconnect of guis) 14.Optional polygon condition in projection macros. Changes in Go4 v4.4.0 (November 09) 1. Add clear histogram and conditions button in gui 2. System configuration tested once and stored in $GO4SYS/build/Makefile.gener file. This simplifies compilation of user analysis and excludes misconfiguration. 3. Makefile logic improved to be able work with system-wide installed ROOT version - ROOTSYS no longer required to be set. Instead root-config script should be always available via PATH variable. 4. ROOT/Qt/Go4 library paths directly specified in all go4 executables (go4, user analysis). This speeds up start time and allows to run gui and analysis without any login scripts. To disable this compilation option, during compilation call "make rpath=false" 5. Introduce standard go4analysis executable, which can be used to launch any user analysis, loading it from the user (typically libGo4UserAnalysis) library. Minimum changes (if any) required to old user code. ExampleSimple, Example1Step, Example2Step adjusted to this scheme. 6. Introduced go4-config utility, which provide possibility to use go4 without setting environment variables like GO4SYS or LD_LIBRARY_PATH. The only requirement is that go4-config should be accessible via PATH variable or should be placed in one of the standard locations. Will be the main point to provide go4 install feature. 7. New install capability in makefile. One can compile complete go4 with command "make prefix=/usr/local", where prefix variable defines installation directory. After compilation completed, "make install" command will copy binaries in bin/, libraries in lib/, includes in /include/go4 and other additional staff in share/go4/ subdirectories. After installation it is enough just provide PATH variable to bin/ subdirectory to be able fully use go4 GUI and compile user analysis. To use such installation in old makefiles, GO4SYS variable should be defined and point to share/go4/ subdirectory. Or one can slightly modify old makefile, specifying there GO4SYS=$(shell go4-config --go4sys) - see standard examples. 8. go4 gui can be started with "-observer", "-controller", "-admin" arguments, followed by optional hostname [localhost], port number [5000] and access password [none] which defines running analysis server. This simplify gui handling when running analysis from other shell. Especially useful when running analysis with go4analysis executable like: "go4analysis -server -stream mbshost" 9. From gui one can launch analysis without remote shell (ssh or rsh), but just with simple exec command. This solves problem, when ssh requires running DNS even when launching analysis on the same node. This also allows to launch analysis from windows gui. 10.Logic how analysis started from the gui is completely changed. Instead of two intermediate shell scripts analysis executable called directly. All shell/terminal/initialization settings for such command collected in etc/go4.prefs file. User allowed to create its own go4.prefs file in current directory to redefine some settings. With conditional syntax one can define host/os specific configuration how is analysis started. This approach allows run go4 analysis on the nodes with completely different OS/software settings. Old scheme (via AnalysisStart.sh scripts) can be activated by setting export GO4OLDLAUNCH=yes variable before gui start. 11.Allow to run analysis, compiled into library, from the gui. From this point on it is no longer necessary to have MainUserAnalysis executable at all - it is removed from all examples. 12.Signal handler is used to normally stop analysis by Ctrl-C pressing from the user - stop processing, close connections, save autosave file. 13.Support TGraphPolar in draw options selection. 14.Make default location for gui settings account wide, one should define export GO4SETTINGS=LOCAL to store/use gui settings in current directory. 15.Simplify event source handling in user code. It is no longer required that event class 'knows' all its possible sources - only source itself decides which event class and how it fills. Cleanup all sources class in go4 and examples. Old code will work as is. 16.go4analysis executable search user library for new classes and create user analysis instance, using predefined signatures: (const char*) or (int, char**). Constructor signature (int, char**) like for main() function allows to deliver arbitrary arguments to user code (see Example2Step). If standard signature not found, any non-default constructor will be tried - most old examples and codes should work. Alternatively, one can define CreateUserAnalisys(const char*) function to create analysis instance. 17.Improve saveparam.C and savecond.C macros - better readable code. SavePrimitive() methods are used, implemented for parameter and condition classes. New saveall.C macro to store all conditions and parameters in single macro file. Changes in Go4 v4.3.1 (August 09) 1. Fix error with connecting DABC/MBS servers second time 2. Fix error (introduced in v4.3.0) with using autosave files - object was not found correctly there 3. Set green/red color in analysis status monitor widget 4. In qt3 version exclude all 3 gui libraries, integrating code in executable (similar to qt4) 5. Suppress symbolic links in user gui library to avoid compilation problem on DOS partitions, where links are not supported 6. Set in gStyle pad frame color white 7. Workaround for TCutG API changes in ROOT 5.25.1 and further Changes in Go4 v4.3.0 (June 09) 1. Remove Q3Support classes completely - now Qt4 based GUI is pure Qt4 application. This solves many side effects like crash by style changing or blinking during resize of main window. From this version on Qt4 GUI is default. 2. rootmap files are generated per library - this simplifies make procedure significantly, old user makefiles are still working 3. Go4 makefile now can better recognize standard installed Qt version without QTDIR set. 'make WITHQT=3' or 'make WITHQT=4' forces usage of specified Qt version. 4. Fix problem with drawing of THStack from canvas or file. 5. Add proxy for THStack to be able browse into THStack and draw single histograms from it 6. Better autoscale of THStack class 7. Ensure that drawing of histogram first time done only once, in case of 2D histograms doubles the performance 8. When running GUI, one can specify one or several root files, which will be loaded automatically 9. BUGFIX: GUI was hanging when non-existing hotstart file was specified. 10.New MakeTH1, MakeTH2, MakeWinCond, MakePolyCond, MakeParameter methods in TGo4EventProcessor class are implemented. They provide easy way to produce analysis objects or take them from the autosave file. See analysis examples how these methods can be used. 11.Examples only have Makefile, no Module.mk any more. 12.Make "COL" as default option for 2-D histogram, improves significantly speed for large histograms, one can always goes back to scatter plot 13.Analysis, running inside GUI, runs without DISPLAY variable set (ssh -x). If any graphics required in analysis, one should run it in separate xterm/konsole application, where ssh -X is done. 14.After Go4 built, one can call "make clean-bin" to remove all object and dependency files, but executables and libraries will remain. Useful for installation. Now one can compile (but not run) Go4 without Go4SYS set. 15.Histogram title position is now preserved and restored when histogram is updated. 16.Solve problem with flickering widgets in Qt4 GUI. 17.Make Go4ExampleSimple really simple - no more complex parameters or initialization. Main executable is now more flexible when specifying command line arguments. 18.When new view panel is created, it should always fit into current main window - before one can get view panel which two time larger. 19.Go4 event loop optimization - simple analysis with GUI runs 10-20% faster than before. 20.Configuration of Qt4 GUI is stored by default in current directory in Go4.conf file. One can do "export GO4SETTINGS=ACCOUNT" to store GUI settings in account-wide location. 21.Replace "disable" by "enable" check boxes in analysis configuration - makes configuration more intuitive. Shortcut of each step configuration can be seen together with step name on the top of analysis configuration panel. 22.Provide better log output when Go4 open/change/closes lmd/root files in analysis. End of ROOT file no longer results in ERROR exception, but in End of File exception. 23.Automatic stop after specified number of events For all MBS event sources an event count can be set in configuration panel after which the analysis is stopped and can be continued for the next number of events. The current values for files specify start and end event number as found in the event data. Often this event number starts not from 0 and is even rather unknown. In addition it does not allow for stepping through a file. Note that an event function can stop the loop by throwing TGo4EventEndException(this) (TGo4EventEndException.h must be included). 24.For multiple plots he canvas division is taken from the values given in the canvas widget. If these values do not fit, take defaults as now. 25.Tree browser: Several enhancements make usage much better: 1. After dragging an item into the tree viewer field, focus is set into that field, because most probably one has to modify the index. 2. A RET in that field triggers the browser. 3. Dragging a field and RET accumulates over all indices. 4. TABs move to next input field 5. Histograms can be cleared in workspace. 26.BUGFIX: Adding histograms to an superimpose enabled canvas changed color only once to red, all following black. Selecting histograms and superimpose in new plot showed different colors as expected. Fixed. Changes in Go4 v4.02.00 (April 09) 1. Merge Go4 version 3 with Go4 version 4 together - now same package can be compiled either with Qt 3.3 or Qt 4.4.x. Version of Qt can be selected by setting proper QTDIR path. If QTDIR is not set, default version will be used (if any) 2. Replace html documents by pdf, use external pdf viewer for them. 3. Reduce usage of qt3support classes in Qt4 part of GUI. 4. Add in Go4Example2Step example of TGo4Fitter usage 5. Few more options can be set in TGo4Picture: SetStatsAttr(xLeft,yBottom,xRight,yTop,101); (bottom < top) SetAxisTitleFontSize(axis, size, 0); axis=0,1,2 SetAxisLabelFontSize(axis, size, 0); size 0.01...0.1 SetTitleAttr(xLeft,yBottom,xRight,yTop); Changes in Go4 v4.01.01 (November08) 1. Maintenance: code adjustments for compilers gcc 4.3.x 2. Bugfix for Qt problem: QProcess was put into infinite loop after first stderr output to Go4 analysis window. Workaround: redirect stderr to stdout in analysis startup script. 3. Bugfix: counter overflow in TGo4MbsSource would stop taking events from mbs connections and let process last read event multiple times 4. Several small bugfixes. Changes in Go4 v4.01.00 (October08) 1. New toolwindow DABC Monitor: Allows to inspect all info services registered to any DIM server. Any DABC ratemeter service running on DABC or MBS nodes may be monitored and filled into trending and statistic histograms. This tool is build optionally if environment $DIMDIR is set and DIM is installed there. 2. Bugfix: MbsAPI streamserver connection timeout was not working correctly (leads to hangup of analysis control when no data is delivered from streamserver). 3. Bugfix: Viewpanel canvas was not working with Qt >= 4.4.x (empty widget with grey background) because Qt workspace may change X-window id at runtime. Improved Go4QtRoot interface classes to reset winId dynamically on resize. Modified rendering of TQRootCanvas to avoid unnecessary Qt double buffering. 4. Bugfix: Viewpanel embedded TGedEditor was sometimes not displayed at startup. Improved Go4QtRoot interface to avoid extra Resize() in TQRootWindow::paintEvent which may lose coordinates of primary editor tab. 5. Bugfix: "Settings/Style" menu would crash GUI sometimes due to unresolved problems in QtApplication::setStyle when called at application runtime. Workaround: menu will select style for Go4 settings, style is no sooner activated than on next startup. 6. Bugfix: "Settings/Fonts..." menu would crash GUI sometimes due to unresolved problems in QtApplication::setFont when called at application runtime. Workaround: menu will select font for Go4 settings, font is no sooner activated than on next startup. 7. Bugfix: QGo4Settings is not working correctly anymore with Qt>4.4 due to modifications in QSettings API and Qt settings location. Now general settings must always be kept at $HOME/.config/GSI/.Go4.conf and can not vary for different directories in the same account. However, the main window toolbar setup may still be saved locally (at $PWD/.config/GSI/Go4toolsrc, default), or account specific (at $HOME/.config/GSI/Go4toolsrc). This is selected as before by setting environment variable Go4SETTINGS="ACCOUNT". Changes in Go4 v4.00.03 (June08) 1. Viewpanel menu: "File/Produce Graph From Markers" will generate new TGraph in local workspace containing the points of all Go4markers set in the current pad. May be used to fit function to manually selected positions. 2. Bugfix: Fitpanel range display in expert mode. Changes in Go4 v4.00.02 (May08) 1. Support of Solaris with CC 5.x (without RFIO) 2. Modifications in makefiles - now only in one place in Makefile.config one should specify platform - Linux, Solaris or Win32. Other small changes in makefiles 3. Fixes different warnings from Solaris CC compiler 4. Bugfix: GUI TreeViewer swapped x/y/z coordinates, convention is TTree::Draw("z:y:x")) 5. Bugfix: GUI Viewpanel: "Produce Picture" did not save all draw options to picture Changes in Go4 v4.00.01 (Mar08) 1. Bugfix: Adjustments for modifications in ROOT signal-slot mechanism syntax (ROOT >=5.19/02); this caused viewpanel crash. 2. Bugfix: Mismatch between Go4 viewpanel range (full visible range) and ROOT user range (referring to low edges of bins) could cause slight shift of x axis range on canvas refresh. Changes in Go4 v4.00.00 (Feb08) 1. Ported the Go4 GUI for Qt Version 4. This includes the main Go4GUI, the Go4UserGUI example, and the GSI qtroot interface with the Go4 extensions. Notes: ------ a) Go4 v4 REQUIRES Qt3support libraries of Qt4 installation (should be configure default). b) Go4 v4 needs to disable the XInitThreads() in ROOT TGClient initialization to avoid conflicts between ROOT X11 graphics and Qt4. This is only possible for new ROOT versions that support to switch the X11.XInitThread resource by environment settings (thanks to Fons Rademakers!). => Go4 v4 REQUIRES ROOT VERSION > 5.19/01 c) Go4 v4 will not work anymore with Qt Versions 3.x. To use Go4 with Qt3, please install Go4 versions 3.03.0x which will still be supported in parallel. 2. Improvements in Mbs event library: Added new event types for future GSI data acquisition framework DABC. Some minor bugfixes. 3. Bugfix in TGo4Browser. Arrays fVisibleColumns and fIndexes has 1 item less than required. 4. Bugfix in QRootApplication. In constructor numc argument must be delivered as reference. 5. Minor bugfix in TGo4MBSViewer - status record must be cleared in constructor. Changes in Go4 v3.03.01 (Nov07) 1. Correct work of marker class in case of superimposed histograms. Now newly created marker will be assigned to currently selected histogram. 2. Bugfix in fit package concerning parameters handling when some parameters are fixed. 3. In FitGui in Wizard and Expert mode there is now possibility to clone existing model component. Especially usefull in case of TGo4FitModelFunction and TGo4FitModelFormula classes, which are require a number of different settings. 4. Bugfix in MbsAPI, f_stccomm.c file. Fixes problem with connecting 64 bit machine to MBS events/stream/trasnport server. False usage of select() function. 5. Small adjustments for the new ROOT (5.17.05) browser. 6. Two ROOT libraries (libTree and libGpad) added to Go4 rootmap file that user Go4 analysis library can be loaded in CINT session. 7. ThreadManager workaround for ROOT bug in TThread::Delete() (ROOT bug report 31085): for some compilers, Go4 GUI crashed when shutting down or disconnecting analysis. Changes in Go4 v3.03.00 (May07) 1. Added missing includes for , required by some compilers. 2. Viewpanel and marker editor: A point- or region marker and its label will pop to the pad foreground when it is selected with left mouse button. Additionally, selection of a marker in the combo box of the editor will let it appear frontmost. 3. Viewpanel: In superimpose mode selected histogram can be moved on the top of complete histogram stack via new menu command "Select/show histo on top". 4. GUI commandline: added macro template "Scale X" (scalex.C) to scale x axis of 1D histogram with linear calibration function. 5. Some Makefile and build script improvements 6. Bugfix for changes in ROOT>v5.14 pad cleanup: Viewpanel with Go4 markers on subpads crashed when closed or cleared. 7. Bugfixes concerning 64 bit compatibility (pointer arithmetics, avoid gcc builtin malloc()) 8. Adjustments to suppress gcc 4.1 warnings about casting pointers to dereferenced structure members Changes in Go4 v3.02.7 (Feb07) 1. Fitpanel improvement: keep y-scaling when fitting on x subrange of histogram 2. Autoscale checkbox as shortcut on top of each viewpanel Changes in Go4 v3.02.6 (Feb07) 1. Due to changes in ROOT in many Go4 files includes like "TROOT.h", "TMath.h", "TList.h" are missing. Sometimes user should also include these files in user code. 2. In latest ROOT TBuffer class becomes abstract, therefore one cannot use it directly in the code. Instead, TBufferFile class should be used. To support different ROOT version, TGo4Buffer definition was introduced. For old ROOT versions, it is directly TBuffer, for newer - from TBufferFile. TGo4Buffer.h file should be included only at the place, where new object is created, for all other places TBuffer class should be used. 3. Zoom toolbar: added buttons for scaling z-axis of 2d histograms. 4. New icons for zoom toolbar and draw options toolbar. 5. New additional draw options toolbar to select commonly used drawing options by buttons (lin/log, line, histo, some 2d styles). The new toolbar is displayed via the RMB options pull down menu. 6. 1-d histogram drawing. Due to some features of ROOT histogram painter several draw options (lin, barchart and others) not working after TH1::SetSumw2() is called - in there Sumw2 array sum of squares of weights is accumulated. Modification in Go4 code were done to avoid Sumw2 arrays when it not necessary. 7. Improvment in speed of view panel redraw (up to factor of 2). Changes in Go4 v3.02.5 (Dec06) 1. Bugfix in Go4Socket library (missing include) because of changes in ROOT version 5.14-00 2. Improvement in TGo4MbsFile for partial read of lmd file: Corrected mismatch between first event index and real event number (before: index=event number-1). 3. New example macro scalex.C to scale x-axis of histogram with linear calibration function Changes in Go4 v3.02.4 (Oct06) 1. Adjustment of Makefile because of changes in default libraries for ROOT >= 5.13/04(separated libSpectrum.so) 2. Viewpanel draw options enhanced: support for TGraph draw modes and TGraphErrors error style. Reorganization of draw options for TH1/TH2. New draw options tool for line, marker, and fill colors of histograms and graphs. 3. Viewpanel menu "Select" to chose active object from superimposed histograms and graphs. 4. Settings menu: "Show event status" selectable as default pad option. 5. Settings menu: "Statistics Box..." dialog to define default pad options for histogram statistics. 6. TGo4Picture: new method AddSpecialObject() to add any ROOT graphical object (text labels, markers) to the picture 7. TGo4MbsFile: now can also read listmode data of old event formats type 4,1 and 4,2. Event will be converted implicitely into format 10,1 for further processing: User unpack processor gets TGo4MbsEvent with one TGo4MbsSubevent that contains all event data. Changes in Go4 v3.02.3 (Sep06) 1. Bugfix: Problems with viewpanel scaling functionality when build with gcc4.0.x compiler (FC5); fixed. 2. GUI command interface TGo4AbstractInterface. Added methods: - GetViewPanelName() - returns viewpanel name - SetViewPanelName() - changes viewpanel name Changes in Go4 v3.02.2 (Sep06) 1. GUI command interface TGo4AbstractInterface. Added methods: - RedrawPanel() - updates viewpanel view - RedrawItem() - updates all views of specified items - FindViewPanel() - searchs for viewpanel of specified name - GetActiveViewPanel() - returns currently active viewpanel 2. Adjusted Go4ThreadManager package due to changes in TTimer copy constructor for ROOT versions > 5.12.00 3. Some bugfixes concerning compilation against old ROOT versions 4.08 Changes in Go4 v3.02.0 (July06) 1. Analsis framework: TGo4EventElement now implements default method Fill() that calls virtual function TGo4EventSource::BuildEvent(). As a consequence, for a simple analysis the user only has to implement TXXXUnpackProc::BuildEvent(); there is no need to develop a user output event class. Even if output event structure shall be used, methods Fill() and Init() are not necessarily needed for a standard analysis. Go4ExampleSimple and Go4Example1Step were changed accordingly. 2. Macro usage: Analysis sets define __Go4ANAMACRO__ on startup, to be used in any Go4 analysis script to check the current environment. In GUI, the define __Go4MACRO__ can be checked analogously. 3. Parameter editor offers popup menu "GetFromFitPanel" for embedded fitters to update fitter settings from the current fit editor. Useful for calibration parameters that should be fitted interactively to spectra (see Go4Example2Step). 4. Bugfix: Access to RFIO root files from Go4 GUI browser was not possible (at gsi), since internal functions of libRFIO.so were shadowed by functions of gsi event lib with same names. Solved by separating Go4 event library package into different modules for analysis and GUI task. 5. Bugfix: Analysis server executed UserPostLoop() every time a GUI client was disconnected. Disabled. 6. Rebin in GUI. Now when histogram will be rebined via right-mouse menu or via ROOT graphical editor, rebining will be kept when histogram will be updated next time from analysis. Many viewews of the same histogram with different binning is possible. Binning also kept in hotstart file. TGo4Picture has new SetRebinX(), SetRebinY() methods to configure rebinning of displayed histogram. 7. Condition Editor: New tab "Cut" for direct editing of polygon condition coordinates Changes in Go4 v3.01.2 (June06) 1. Some adjustments of project files to build under SuSe Linux 10.1 2. Start client dialog selects correct analysis directory when chosing the analysis executable 3. All Go4 macros put into new subfolder $Go4SYS/macros. This directory should be added to entry Unix.*.Root.MacroPath in .rootrc setup file 4. Bugfix: Several changes concerning the cleanup mechanism in GUI object manager 5. Bugfix: AnalysisClient in CINT mode showed thread deadlock for ROOT versions> 5.02-00 Changes in Go4 v3.01.0 (May06) 1. New script command line widget for GUI: Allows execution of ROOT commands or macros within Go4 GUI task. Moreover, Go4 hotstart scripts may be invoked here at any time. The widget offers a file dialog to search for *.C and *.hotstart files. It also has a selector dialog of preloaded commodity functions for histogram manipulation (rebin, addition, projection, etc.). These function template calls may be completed with exisiting histogram names by dragging histogram items from the browser and dropping them on the empty command argument. The history of the command line may be saved to the current Go4 settings file .Go4/Go4localrc and is then restored on next startup. 2. New GUI command interface class TGo4AbstractInterface. It can be accessed by handle "Go4->" in GUI command line. This makes it possible to interact with Go4 GUI views and browser objects in a ROOT/Go4 script. Additionally, all remote analysis control commands are available here, like in the hotstart scripts. Method reference of TGo4AbstractInterface is available in the Go4 help viewer (type "help" in GUI command line, or use "Help/GUI commandline" menu of Go4 main window). Example scripts using this interface are at $Go4SYS/macros (definitions of the preloaded command line histogram functions) 3. New general marker label settings dialog. In main window menu "Settings/Panel Defaults/Markel labels...", a checkbox dialog offers to switch all label properties of the region and point markers (visibility and information displayed in the label). These settings have effect on all new markers of the viewpanel marker editor. They are saved in the Go4 preferences file .Go4/Go4localrc. 4. New settings feature "Settings/Preferences/Fetch when saving". If enabled, the "save browser / save memory" button of the file toolbar will refresh all browser item objects from analysis before saving. Thus the ROOT file will contain a snapshot of all analysis objects. Otherwise, only the already fetched objects are saved. 5. Zoom tools "set scale" dialog upgraded to non modal MDI widget. This will appear always on top of workspace widgets and refers to currently selected viewpanel pad. Changes include some bugfixes concerning the range settings of 2d histograms, and the autoscale property. 6. FitPanel settings are saved/restored in Go4 settings file 7. Viewpanel superimpose mode improvements: - is not changed anymore after superimposed draw of FitPanel results, i.e. fitter data histogram can now be replaced just by drag and drop on the viewpanel - existing axis labels of first histogram are kept - Bugfix: histogram title could not be switched off in superimpose mode 8. Bugfix: crash when FitPanel histogram under work was replaced or deleted in viewpanel. 9. Bugfix: Workaround for ROOT crash in histogram rebin editor: Selecting a histogram in viewpanel for rebin with the ROOT attributes editor lead to segmentation violation when original histogram was replaced or deleted. 10. Bugfix: crash in Go4 markers/conditions when histogram in viewpanel was replaced by drag and drop. Changes in Go4 v3.00.2 (Mar06) 1. Adjustments of includes due to changes in new ROOT version 5.10 2. Bugfix: Update of histogram in GUI failed when histogram dimensions (ranges) were changed in analysis Changes in Go4 v3.00.1 (Jan06) 1. Mbs monitor tool: If monitoring on, calculation of rates now done in Go4, averaged over update time. Parameters of mbs monitor are stored in Go4 settings file. 2. Position and size of histogram statistic label may now be saved in Go4 picture objects. Thus these properties can be restored on Go4 hotstart. 3. TGo4Interface: new method ExecuteLine to remotely do CINT call from Go4 master process in the remote slave process 4. Bugfix in viewpanel: crash on closing last non-minimized window 5. Bugfix in fitter: problem with empty TGraph as data source 6. Fit GUI: Enhanced draw styles for TGraph 7. Improvements in make files Changes in Go4 v3.00.0 (Nov05) 1. Redesign of the GUI with new internal object manager. Decoupling of controlling functionality from the Qt graphics layer. Effects many of the following features. 2. New Go4 browser. Instead of several tabs for remote analysis, local memory, monitoring list, now one browser with subbranches for different data sources, such as remote analysis, histogram servers, root files, is used. Supports local memory workspace folder with copy and paste by drag and drop, clipboard, and renaming. All controls available via rightmouse button context menu. Switchable columns for object properties. Filter for monitored, fetched, and all objects. 3. New viewpanel. Improved marker editor with lightweight condition editor. Additional options to display date and time of refresh, and full object path. Can display same object with different draw styles and ranges simultaneuously. May store current setup as Go4 picture. 4. New condition editor: More compact layout, shares functionality with viewpanel marker editor. 5. Improved parameter editor: May display user parameter structure without loading the user analysis library into the GUI. Suppresses display of unknown components. 6. New dynamic list editor: More compact layout. Automatic resolving of event name and data member name when dragging and dropping from analysis event structure, in case of pointer entry. Dito for tree name and draw expression in case of tree entry. 7. New dockwindow for analysis terminal. If analysis is started in external shell, functionality of analysis output window (macro execution, etc.) shrinks to dockwindow. 8. Improved dialogs for analysis startup and connection. 9. Decoupling of libraries from GUI. GUI does not require all analysis libraries anymore due to changes in command pattern and dependency rearrangements. Will speed up GUI startup time and may reduce memory consumption. 10. Status monitor for remote MBS node. New dockwindow offering connection to the mbs status port. Frequently update of daq rates and status possible. Trending histograms in browser workspace. Full printout of mbs status and setup structures possible. 11. Go4 analysis status bar improved. Animated Go4 logo shows true running state of analysis, independent of current event rate. Current event source of first active step displayed per name in text field. 12. Remote control of Go4 analysis from regular ROOT session. Command interface to connect and control analysis process from CINT. Inspecting and retrieving Go4 objects with extended root TBrowser possible. 13. Optional release package for MsWindowsXP (without Qt graphics). Required minor modifications in Go4 threadmanager for correct canceling of win threads. Changes in Go4 v2.10.0 (Jun05) 1. Go4TaskHandler redesign: Decouple client and server tasks from master and slave role. This implies that analysis can run in the network both asserver or client task (as in previous Go4 versions). Vice versa, GUI can run either as client or as server (previous behavior). Additionally, TGo4AnalysisClient class now inherits TGo4Slave (previously TGo4ClientTask), and TGo4Display inherits TGo4Master (previously TGo4ServerTask). One analysis server can be connected by many Go4 GUIs (one controller/administrator GUI, and several observer GUIs). 2. Go4TaskHandler redesign: Password for login of master client to slave server with accounts for administrator, controller, and observer roles. Additionally, some Go4 commands are forbidden if master is logged in with a low priority account (observer e.g. may not reconfigure analysis, but only request objects for display). Default passwords may be changed in MainUserAnalysis code. 3. Go4GUI prepared to run with analysis server: Command Go4 -client will start the GUI master task in client mode. In this case, the Launch analysis dialogue requests for login account, password, node and connection port of the analysis server. Moreover, a client GUI may first launch a new analysis server in an xterm and connect to it afterwards. 4. Example of analysis server in package Go4Example2Step: MainUserAnalysis may be started from command line with option -server as third argument (first arguments like batch), thus starting the analysis as server. Processing starts immediately (no submit from GUI necessary). Command line parameters of this example will set additional boolean arguments (servermode, autorun) of TGo4AnalysisClient constructor appropriately. 5. ROOT macro execution with Go4 analysis server: A Go4 environment and analysis server can be started from any ROOT session in the background (.x Go4Init.C). Go4 GUIs may connect to this server and request data from running analysis macros, or control macro via Start/Stop buttons. New methods TGo4Analysis::WaitForStart() to poll for the Go4 environment running state, and TGo4Analysis::Process() to invoke the Go4 analysis loop explicitely from ROOT macro (checks also for STOP). Example macros hsimple.C, hsimpleGo4.C and treedrawGo4.C 6. Analysis: UserPreLoop() and UserPostLoop() are only executed once when analysis running state is changing. In previous versions, each press on Start, or Stop button, respectively, would execute the corresponding method another time. Bugfix: postloop was called twice if analysis client was terminated in running state. 7. Bugfix: MbsAPI/f_evt.c (close of streamserver). 8. Bugfix: Labels for conditions and markers were not drawn correctly in logscale anymore for ROOT v>4.03/02. 9. Bugfix: Monitoring list reset after disconnect. Monitoring entries were sometimes deactivated after reconnecting analysis. 10. Fixed several small memory leaks. New features in Go4 v2.9.1 (Apr05) 1 . Bugfix: Adjusted reallocation behaviour in TGo4Socket and TGo4Buffer to changed definition of TBuffer::kIsOwner flag for ROOT versions>4.03/02 2. Fixed several small memory leaks. New features in Go4 v2.9 (Feb05) 1. Keyboard shortcuts for many functions. 2. Settings for Go4 GUI are now saved in the current directory by default in $PWD/.Go4/Go4localrc and $PWD/.Go4/Go4toolsrc, respectively. So different settings for the same login account are possible now. If the current directory does not contain a Go4 settings file on Go4 GUI startup, it will be created using the global account preferences at $HOME/.qt. Settings behavior can be changed using environment variable Go4SETTINGS. If this is set, the GUI preferences are used from directory $Go4SETTINGS. If Go4SETTINGS contains keyword ACCOUNT, the Go4 settings at $HOME/.qt are used (like in previous Go4 versions). 3. New context sensitive menus (right mouse button popup) for all GUI browsers. 4. Root object editor TGedEditor will show up in view panel side frame instead of top-level X-window. To implement this, the Go4 QtRoot interface has a new widget TQRootWindow which embeds a root TGCompositeFrame into a QWidget. 5. Superimposed drawn histograms, THStack objects and TMultiGraph will show a TLegend box in view panel. The legend box can be switched on or off by view panel menu. 6. View panel marker editor: Added polygon shaped regions (TCutG). 7. File browser: Added "Open remote file" functionality to read objects from TNetFile/XRootd (root:), TWebFile (http:), and tape library (rfio:). 8. Analysis browser: Objects may be protected against Clear() (histogram reset to 0), and against deletion in the analysis. Browser shows protection state in 3rd column as "C" and "D" symbols, respectively. Objects created from analysis code are always protected against deletion, objects created from GUI may be deleted from GUI again. Protection against clear may be changed using the browser's right mouse button menu. The protection state is persistent in the auto save file. 9. Analysis: Histograms associated with Go4 picture objects will not appear anymore in the analysis Pictures folder, but only in the Histograms folder. 10. Analysis macro: New analysis macro MainUserAnalysisMacro.C in directory Go4ExampleSimple. It needs a .rootmap file for automatically loading all necessary libraries.This file is created by the new files Makefile and Module.mk from the example. One can copy both files from the example, or modify existing files if they contain application specific changes. Look for map- expressions! 11. New Method TGo4Analysis::Print() to print the current setup of the analysis and the steps. 12. Multiple input file (metafile) for TGo4MbsFile may contain lines with CINT commands preceded by an "@" character. Commands, e.g. root macro execution like ".x setup.C", are performed in between change of event source. 13. Metafiles should have suffix .lml. Then they are recognized without@. The main programs in the examples have been modified not to add a .lmd to a .lml file name (update your main program accordingly!). 14. TGo4FileSource: Partial IO functionality - name of the input event defines name of the tree branch to be read. Additionally, improved read performance for full event. 15. New Example Go4ExampleMesh to show how to setup an analysis with non-subsequent analysis steps. May use partial input from tree branch. 16. Reorganisation of Go4 make files and installation. Reduced number of Go4 libraries. Removed unnecessary root dictionary information from libraries. Go4 may be installed without libASImage.so if this is not supported on the system. 17. Implemented .rootmap mechanism to auto-load required Go4 libraries in macros. 18. Bugfix: Preview panel options menu apply to all did not work for histogram statistics property. 19. Bugfix: Double click in Go4 GUI browsers was not always working, because of conflict with drag and drop mode. 20. Bugfix: When Submit was called without stopping the analysis before, references set in UserPreLoop() were not updated. Now UserPreLoop() is called also in this case. Additionally, UserPostLoop() is not called when analysis stops after initialization has failed. 21. Bug fixes: A set of use cases has been set up to test the GUI functionality. Several bugs have been found and fixed performing these use cases. The test procedure has improved the stability of the GUI. It will be extended and used for all future Go4 updates. New features in Go4 v2.8 (Sep04) 1. Marker editor in view panel allows for marking channels or windows. Labels and arrows can be created. All marker elements can be saved/restored. 2. New ROOT graphical editor can be called from view panel. The editor dynamically adjusts to the graphical object selected by LMB. 3. Viewpanel window title: can optionally be set by user and may be kept constant. If a TGo4Picture is displayed, the picture name defines the viewpanel title. 4. Condition editor: the cursor mode has been removed because the functionality is now provided by the markers 5. Condition, markers and labels: Implemented correct root streamer (bugfix), i.e. saving and loading these objects in root files is possible with fully recovered functionality and graphical properties. Support of pad display in lin/log scale (bugfix). Additional controls in RMB menu root (set ranges, location, save default properties, reset). Default label setup stored with Go4 GUI settings. 6. Polygon condition: Implemented statistics functions for work histogram under the cut (integral, mean, rms, etc.). Enabled "InsertPoint/RemovePoint" function in RMB menu (bugfix). 7. Fit GUI: Selection between sigma and FWHM (default) by Settings->Recalculate gauss width. Fit results may be printed to terminal or Go4 logfile output. 8. 1D drawing: ROOT "L" (line) "C" (curve) "B" (bar chart) "P0" (poly-marker) line styles supported. 9. Histograms: re-binning, projections, and profiles supported (standard ROOT methods with RMB). Automatic "synchronize with memory" on pad click to get newly created histograms. 10. Histogram client: monitoring implemented (auto-update). Drag and drop support. Display error message when server connection is not available (bugfix). Store server specification in Go4 settings. 11. File store: Storing objects into a ROOT file a title is prompted. This title can be seen in the Go4 browser and the ROOT browser. 12. UserObjects folder: With AddObject(...) histograms, parameters and conditions can be put into folders of the UserObjects folder. They can be located there by the standard Get methods, e.g. GetHistogram. Editors work also with objects in these folders. Note: object names must be unique! 13. Log window: Empty messages are now suppressed (bug fix). 14. QtROOT interface: bug fix concerning initialization order of X11 system (ROOT init now before Qt init). Lead to crash of the main GUI on newer linux systems when using Qt versions > 3.1 (FEDORA2, SuSe9.1) 15. Thread manager: bug fix: adjusted default exception handling to work with newer libpthread.so that uses one process for all threads (e.g. FEDORA2). This lead to a crash when Go4 threads were canceled (shutdown of the Go4 GUI). 16. Analysis Framework: bug fix: analysis without analysis step (UserEventFunc only) again possible. 17. Client startup script: full PATH and LD_LIBRARY_PATH of the Go4 GUI environment is passed to the analysis process. New features in Go4 v2.7 1. Keyboard shortcuts ("Alt-1" to "Alt-5") to select browser tabs (disk, monitor, remote, memory, histogram client). Items are selectable with arrow keys (left-right to unfold and shrink subfolders). Return key acts as doubleclick. 2. MbsEvent classes improvements: Method to check TGo4MbsSuvevent if it was filled in the previous mbsevent build. MbsEvent iterator NextSubEvent() by default delivers newly filled subevents only, suppressing exisiting subevents in list of non used ids. Subevent data field re-uses the memory allocated by libgsievent instead of copying it to own buffers. New method SetPrintEvent to set verbose mode for the next n events. Format changes in TGo4MbsEvent::PrintEvent(). 3. Performance improvements of analysis framework in step manager, dynamic list and mbsevent 4. New EventInfo toolwindow to control printout of an event sample in remote or local terminal. Optionally the user implemented PrintEvent method, or the root TTree::Show output may be used. May control the arguments of TGo4MbsEvent::SetPrintEvent(). Supports drag and drop for event names from remote browser. 5. Scale values dialog window extended by zmin and zmax fields. Allows setting minimum and maximum thresholds for channel contents of 2d histograms when autoscale is off. 6. Display total memory consumption of histograms and conditions at the end of PrintHistograms() and PrintConditions() execution, respectively. 7. TCanvas support in disk browser improved: Histograms saved inside a TCanvas in a root file will appear in memory browser whenever this canvas is displayed 8. Analysis Terminal window: Limitation of text history buffer to 100kb by default, may be changed in settings menu. Disabled textwrapping in output for scrollbars. 9. Bugfix: Doubleclick on histogram in divided viewpanel did pop up this histogram magnified in a new viewpanel, but did not initialize viewpanel colors and crosshair settings correctly. New features in Go4 v2.6.1 (consolidation release): 1. Conservation of TLateX textfields when changing draw style/histogram statistics 2. Disk browser open file dialog allows multiple file selection 3. Superimpose of histograms with same name from different files possible if overwrite mode is deselected in memory browser. Histograms will be copied to memory browser with cycle numbers added to names. 4. Superimpose THStack does not crash anymore when deleting histograms 5. Bugfix: Crash after closing and re-opening viewpanel for same histogram with different subpad divisions 6. Bugfix: Analysis did stop when an analysis step without event processor is disabled 7. Browser items (disk, monitor, remote, memory) selectable with keyboard (after mousefocus or tab), return acts as doubleclick 8. Bugfix: histogram bound to condition was not fetched from analysis when doubleclicking on remote condition icon New features in Go4 v2.6: 1. New Go4 Hotstart: The current setup of the GUI (analysis name and settings, viewpanel geometry, objects in memory and monitor browser, displayed objects in pads) may be saved to a hotstart script file (postfix ".hotstart") from the "Settings->Generate hotstart" menu. The script name may be passed as argument on next Go4 GUI startup (e.g. "Go4 mysetup"), which will launch the analysis and restore the settings (e.g. from file "mysetup.hotstart"). 2. New class TGo4ExportManager transforms and saves root objects into other formats. Currently supported: plain ASCII (*.hdat, *.gdat) and Radware/gf3 (*.spe). An export filter is available in the GUI memory browser to save selected objects. 3. Example macro Go4Example2Step/convertfile.C converts all histograms and graphs from root file into ascii files, conserving the subfolder hierarchy. 4. New TGo4StepFactory class can be used as standard step factory to simplify the setup of analysis steps for small analyses. New example package Go4Example1Step shows the usage. 5. The TGo4Analysis class can now be used as standard analysis class. New example package Go4ExampleSimple shows the usage. 6. New viewpanel has size of previously active viewpanel. Default viewpanel starting size is stored in settings and recovered on next Go4 startup. 7. Viewpanel: Switch on/off histogram title display in options menu. 8. Viewpanel: Switch on/off crosshair for each pad in options menu. Default crosshair mode can be selected in main window settings menu and is saved/restored by Go4 settings. Crosshair mode button in condition editor has been removed. 9. Viewpanel: Default background color can be selected in main window settings menu and is saved/restored by Go4 settings. 10.New draw option TASImage for 2 dim histograms in Go4GUI. May improve rendering speed for large maps when updating and resizing the canvas. Offers own palette editor in right mouse button popup menu. 11.Parameter editor: Added column to display the sourcecode comments for each parameter class member as description. 12.Condition editor: General editor has button to create a new condition. New condition is defined in a dialog window and is put into general editor. May be send to analysis for registration, or saved into a file then. All types of new conditions (window, polygon, array of these with variable size) are supported. 13.Histogram and Condition info windows: Object size now takes into account real data size on heap. 14.New analysis toolbar button for "re-submit and start" shortcut. Useful when file shall be re-read from the beginning after changing something in the setup. 15.Autosave may be disabled completely from analysis configuration GUI. 16.New mode for TGo4MbsFile (*.lmd) wildcard/metafile input: Auto-save file may change its name whenever input file is changed. Name is automatically derived from input filename. Old behaviour (one auto-save summing up all inputs) is still possible. This can be switched with method TGo4Analysis::SetAutoSaveFileChange(bool ). 17.End of .lmd file input gives informational message instead of error message. 18.Bugfix: avoid log-file crash when Go4 is started in directory without write access. 19.Some adjustements to work with ROOT versions > 4.00 in Go4Fit and qtroot packages New features in Go4 v2.5.5 (intermediate installation): 1. TCanvas objects in analysis task may be send and displayed on GUI. Works both for memory and monitoring list. 2. Support of TMultigraph objects in analysis and GUI (display, memory and monitoring list update). 3. Bugfix in Go4 Mainwindow exit dialog. Exit via window "x" icon works properly now, too. 4. Redesign of Go4 Auto-save mechanism. Subfolders are mapped as TDirectories in TFile now, thus improving performance for large number of objects. Auto-save file is closed after each write, avoiding invalid file states in case of analysis crash. Dynamic list entries are saved as independent objects. 5. Object editors (condition, parameter, dynamic list) may save and load objects from/to root files. 6. Support of dynamic list entries in disk browser: Editor opens on double click. 7. Status messages of object editors appear in bottom status line of Go4 main window. New features in Go4 v2.5 1. Histograms may be bound to conditions by method TGo4Conditions::SetHistogram(). The bound histogram will be fetched automatically in GUI whenever condition is edited. 2. TGo4Picture can contain conditions together with histogram objects. 3. General condition editor in addition to the condition specific editors. Supports drag and drop of condition icons and conditions linked to TGo4Pictures. 4. Warning label for unsaved changes in condition editor, and in dynamic list editor. 5. Condition editor cursor tab can make copies of the current cursor marker. For printouts with multiple markers. 6. Analysis log window in GUI displays date and time of last refresh. 7. New histogram status window, and condition status window in GUI. 8. Redesign of GUI object management: Added drag and drop support of TGraph, TGo4Picture from all browsers. Bugfix and improvements in histogram superimpose mode. 9. Monitoring list supports TGraph, TGo4Picture, and THStack. 10.Logfile mechanism for GUI actions. Log output configurable in Settings menu. Logging output on demand from condition editor, histogram and condition status windows. 11.View panel can turn on or off histogram statistics box. 12.View panel supports fix/auto scale modes for TH1, THStack, and TGraph objects. 13.View panel resize speed improved (redraw only at the end of resize action). View panel does not start in full screen mode anymore. 14.Analysis terminal: New buttons for clearing the terminal, PrintHistograms, PrintConditions. Command line has shortcut "@" for "TGo4Analysis::Instance()->". "KillAnalysis" button buffered with confirmation dialog window. 15."Quit Go4" button buffered with confirmation dialog window. 16.Dynamic list editor can change the global dynamic list interval for analysis. 17.Reorganisation of GUI icons. 18.Performance improvements in TTimers of Go4 kernel: Removed TurnOn/Off statements. 19.New method TGo4Analysis::NextMatchingObject() for search in analysis objects with wildcard expression. 20.Analysis: PrintHistograms(), PrintConditions() supports wildcard expressions for output list selection. 21.New methods: TGo4Analysis::StoreParameter, StoreCondition, StoreFitter, StoreFolder to write these objects into event store of an analysis step. Event number will be appended to object keys for parameter logging. 22.Consistency checks of analysis steps can be disabled by new method TGo4Analysis::SetStepChecking(bool). For setting up of non serial type analysis steps with own user management. 23.TGo4MBSEvent::PrintEvent() extended to display headers and also data field contents of subevents. 24.New methods: TGo4MbsEvent::GetMbsBufferHeader(), TGo4MbsSource::GetBufferHeader() to access the buffer headers of list mode files. Implemented example in Go4Example2Step. 25.Go4 GSI histogram server also exports TGraph objects as histograms (if possible). 26.Implementation of TGo4Condition::Paint() to display Go4 conditions in regular root environment. Conditions may be drawn on TPad which already contains a histogram. New classes for condition painters and condition views. 27.Reorganisation of the distribution Makefiles. New features in Go4 v2.4: 1. New Package Go4Log to handle all messages and logfile. This replaces the old package Go4Trace. Static method TGo4Log::Message(char*, ...) can be called everywhere to display text on terminal and optionally write to logfile. Modified Go4 message prompt. 2. Header information of mbs listmode data files accessible by new methods s_filhe* TGo4MbsSource::GetInfoHeader() and s_filhe* TGo4MbsEvent::GetMbsSourceHeader() 3. Eventsource TGo4MbsRandom to deliver random spectra into mbs events without connection to mbs node or reading listmode file. Matches event structure of standard example Go4Example2Step. 4. TGo4Picture objects can be used in the monitoring list. 5. Changes in Analysis configuration window: Number of events, start/stop/skip events may be specified; tagfile name and optional socket timeout. Filebrowser for eventsource files. Autosave interval now re-fers to time (seconds) instead number of events. Modified layout. 6. Dynamic list editor with button to PrintAll dynamic list entries on analysis terminal. 7. Improved postscript print dialog in Viewpanel menu. 8. Histogram client API supports conversion into Radware format. 9. Go4 histogram server supports float histograms. 10.Execution of ROOT interpreter commands / macros in the analysis task possible by command line in analysis terminal window. 11.Re-design of condition editor: a. Display all conditions of array in different colors or hide them optionally. Visibility in editor is property of TGo4Condition and stored in autosave file. b. Working viewpanel pad and reference histogram of condition may be changed at any time. c. Clear counters button applies clearing to analysis condition immediately and refreshes editor from analysis. d. Statistics inside window condition limits (integral, maximum, mean, rms, etc) are calculated; these values are displayed in editor and may be drawn in labels on working pad. Methods to calculate statistical quantities belong to TGo4WindowCondition class and may be used in analysis, too. e. Cursor panel with crosshair mode and optional marker to pick values from displayed histogram. Cursor may be set by mouse click, by moving the graphical marker object, or by defining cursor position in the text fields. Cursor values may be drawn in label on working pad f. Extension of polygon condition/TCutG is calculated and shown like the borders of the window condition. g. Improved creation of new TCutG functionality. Assignment to current polygon condition may be canceled. Handles pads with multiple TCutGs. 12.Added class TXXCalibPar to Go4Example2Step. Shows a procedure how to calibrate spectra using the Go4 fitter in connection with the parameter mechanism and an ascii file database of line energies. 13.Make full screen default for new viewpanels. 14.When updating objects in memory folder, a redraw is done automatically. Keyboard shortcut "Alt r" for refresh of local objects from analysis. 15. When monitor updates a Viewpanel, the pads are updated without blocking the GUI (not yet for picture). 16. Button besides zoom buttons to enter display limits by values. 17. Drag pictures from analysis pad to viewpanel possible. 18. Some buttons/icons on the browser pads have been rearranged. On memory browser pad the icons for "update local objects" and "synchronize with directory" have been exchanged to be consistent with analysis pad. New features in Go4 v2.3: 1. TGraph objects can be registered and displayed correctly. Reset of TGraph (clear all points) by "eraser" button from GUI possible. 2. Reset/clear complete folders by selecting them in remote browser and eraser button. New method ClearObjects("Histograms") to reset all objects of named folder, e.g. all histograms at once. 3. Print button to printout histogram and condition lists with statistics in analysis terminal. These buttons are located in the dynamic list editor. 4. Parameter classes may contain TGo4Fitter* references or arrays of these. Fit GUI can be used to edit fitter from within parameter editor. Framework provides new class TGo4FitterEnvelope as example parameter. Example put into TXXXAnalysis. 5. User defined event source is possible. New class TGo4UserSourceParameter to be checked in analysis step factory for any kind of input. Example package Go4ExampleUserSource shows usage. 6. New class TGo4Picture to define layout of canvas with histograms. Pictures are registered in Go4 Pictures folder and stored in autosave file like histograms; they can be displayed in any viewpanel. Example added in TXXXAnalysis. 7. Possibility to register complete TCanvas objects in Go4 Canvases folder to be saved within autosave file. Switch TGo4Analysis into ROOT batchmode to suppress drawing actions in analysis client while canvas is set up. 8. Go4 GUI can display and compare objects from different files in the same view panel now. New features in Go4 v2.2: 1. Possibility to select rsh or ssh and analysis output in Xterm or GUI window. 2. Wildcard in input lmd file names. 3. Input file name beginning with @ is interpreted as text file containing lmd file names. 4. An autosave file can be written on demand (button in configuration menu). 5. Parameter editor. User parameter objects (subclasses of TGo4Parameter) registered in the analysis can be edited in the GUI by double click in the browser. Currently supported members are the primary data types and arrays of these. 6. New environment variable Go4USERLIBRARY can be set to a colon separated list of ROOT user libraries which are loaded automatically in the GUI. This is needed for editing parameter objects. 7. Dynamic lists. A dynamic list editor can be used to create/specify dynamic entries. A dynamic entry consists of a histogram (can be created new) and a member of an event object which shall be histogrammed. Optionally a condition can be added. The condition also can be created new. The event structure is expanded in the browser. Drag&drop is provided to select members. 8. The condition editor has been improved. Arrays are now handled properly. TCutGs for polygon conditions can be created new. 9. TGraph objects are supported like histograms. 10.In the Go4 view panel, the ROOT "event status" (cursor position) can be displayed. 11.The new fit GUI is available. It includes three different peak finders, a simple fitter, a wizard, and full access to all fitter components. Fitters can be stored/retrieved to/from files or memory. 12.User Makefile: the user executable need to be linked against the makefile variable $(Go4LIBS) only, as defined in the Makefile.config of the framework (see Makefile of example Go4Example2Step). ________________________________________________________________________