-
Notifications
You must be signed in to change notification settings - Fork 2
/
CHANGES.txt
1912 lines (1566 loc) · 95.5 KB
/
CHANGES.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
---------------------------------------------------------------
Go4 Release Package v6.3.0 (build 60300)
January 2024
---------------------------------------------------------------
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.4
1. Support ES6 modules, requires non yet released ROOT
2. GUI: Add histogram import functionality for ASCII (go4 exported) and Ortec MCA formats
3. Bugfix: display and update result functions of ROOT fitter together with original histogram in GU
Changes in Go4 v6.3 (January 2024)
1. Adoption to win64
2. Skip support of old ROOT version older than 6.24
3. Remove TGo4Buffer.h - one can use TBufferFile class directly
4. Require at least c++11 - as ROOT6
5. Fully delete out-of-date qt3 part
6. Remove support of Qt4 - either qt5 or qt6 can be used for compilation
7. Supports MBS Version 7.0 and 7.1 for status strutcture monitoring
Changes in Go4 v6.2.0 (April 2022)
1. Provide workaround for same ROOT script execution twice.
In current ROOT there is problem to unload script which uses Go4 libraries. Therefore if same
script executed in analysis configuration phase, analysis cannot be reconfigured and crashes because of that.
To solve this, script loaded and parsed only once by ROOT interpreter and just function called again.
If script modified in between, go4 loads that script again, manipulate function name and call this function.
Not all kinds of scripts may work this way, bat all standard go4 scripts should be working
Changes in Go4 v6.1.4 (October 2021)
1. Bugfix in TGo4BufferQueue: use again native TBuffer::Expand() for queue of streamed objects
instead of custom implementation. Avoids byte count warnings when transferring parameters objects
2. Support correct update of TProfile and TProfile2D objects, add them to Go4Example1Step
3. Bugfix in release package: compilation of webgui with older ROOT versions <6.22
4. Code cleanups: Suppress warnings for new compilers
Changes in Go4 v6.1.2 (June 2021)
1. Bugfix in MbsAPI: new polling mode for remote event server connection could lead to instable stream server socket
2. Small adjustment of build system for certain configurations
Changes in Go4 v6.1.0 (May 2021)
1. Added docker container for Go4 V6.0 on OpenSuse Leap 15.0 Linux. Go4 is build with ROOT 6.18/04, Qt5 webcanvas and HDF5 support.
Docker files are located in subfolder $GO4SYS/docker. Such container may be executed with a docker server on any Linux,
or using the Docker Desktop/Docker Toolbox environment on Windows or MacOS. Please see docker/go4v6.0_leap_15.0/README.txt
for further information. Many thanks to Michael Wiebusch (m.wiebusch@gsi.de) for creating the full Go4/DABC/trb3 docker
that has been used as template!
2. Provide preliminary cmake files for compilation of Go4 and user analysis
3. Fully remove out-of-date DIM component for DABC v1.0 monitoring
4. Provide example for user-defined event store - Go4ExampleUserStore.
It demonstrates how arbitrary event store can be implemented.
Add support of user-defined store in go4analysis, GUI and hotstart.
5. Fix problems of "Remote Event Server" usage together with http/fastcgi servers.
In case of low data rates servers were not responsive, now should be fixed.
6. Code fully ported to qt6, but without webwidgets while qt6 does not provide them yet
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 implementation of Go4 eventstore into hdf5 file format. Needs to specify 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 specify 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 window 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 suppress 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, occasionally 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 corruption 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 aggregated 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 arguments 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 submitted. 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, which should be
shown in the gui. For that one need to add following lines to the hotstart:
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 activated 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 opposite
communication side stopped or break irregularly 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 (November 08)
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 (October 08)
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 (June 08)
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 (May 08)
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 (Mar 08)
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 (Feb 08)
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 (Nov 07)
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 (May 07)
1. Added missing includes for <math.h>, 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 (Feb 07)
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 (Feb 07)
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. Improvement in speed of view panel redraw (up to factor of 2).
Changes in Go4 v3.02.5 (Dec 06)
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 (Oct 06)
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 implicitly 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 (Sep 06)