forked from Geant4/geant4
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathReleaseNotes4.10.4.html
2174 lines (2088 loc) · 100 KB
/
ReleaseNotes4.10.4.html
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
<HTML>
<HEAD>
<TITLE>Geant4 10.4 Release Notes</TITLE>
</HEAD>
<BODY BGCOLOR='F0F0F0'>
<P> </P>
<BR>
<P> </P>
<P ALIGN="Center">
<FONT SIZE="+4" COLOR="#238E23">
<B>Geant4 10.4 Release Notes</B>
</FONT>
<TABLE WIDTH="100%">
<TR><TD ALIGN="Right">
<FONT SIZE="-1" COLOR="#5C3317">
<B><I>December 8<SUP>th</SUP>, 2017</I></B>
</FONT>
</TD></TR>
</TABLE>
<BR><BR>
<HR ALIGN="Center" SIZE="7%">
<P>
The code and binary libraries for the supported systems are available
through our <A TARGET="ext" HREF="http://cern.ch/geant4/support/download.shtml">Source
Code Web page</A>.
</P>
<P>
<I>We are grateful for the efforts of Geant4 users who have provided
detailed feedback or comprehensive reports of issues.
We thank in particular those who have contributed corrections,
improvements or developments included in this release. </I>
</P>
<P>
Please refer to the
<A TARGET="ext" HREF="http://cern.ch/geant4/support/userdocuments.shtml">Geant4
User Documentation</A> for further information about using Geant4.
</P>
<H2><I>Contents</I></H2>
<OL>
<LI><A HREF="#1.">Supported and Tested Platforms</A></LI>
<LI><A HREF="#2.">Supported CLHEP version</A></LI>
<LI><A HREF="#3.">Items for migration of the user code</A></LI>
<LI><A HREF="#4.">New Developments and Capabilities</A></LI>
<LI><A HREF="#5.">Expected effects on physics and performance</A></LI>
<LI><A HREF="#6.">Known Run-Time Problems and Limitations</A></LI>
<LI><A HREF="#7.">Compilation Warnings</A></LI>
<LI><A HREF="#8.">Geant4 Software License</A></LI>
<LI><A HREF="#9.">Detailed list of changes and fixes</A></LI>
</OL>
<P> </P>
<A NAME="1."></a>
<HR>
<!-- ============================================== -->
<H2>1. Supported and Tested Platforms</H2>
Platforms:
<UL>
<LI>Linux, gcc-4.8.5.<BR>
Tested on 64 bit architectures (Intel or AMD) with
CERN CentOS Linux 7 (CC7) (based on CentOS Linux 7).</LI>
<LI>MacOSX 10.13 High-Sierra with clang-4.0 (Apple LLVM/Clang-9.0.0)</LI>
<LI>Windows-10 with Visual C++ 14.11 (Visual Studio 2017)</LI>
</UL>
More verified and tested configurations (64 bits):
<UL>
<LI>Linux, gcc-4.9.3, gcc-5.3.0, gcc-6.3.0, gcc-7.2.0, clang-3.9</LI>
<LI>Linux, Intel-icc 18.0</LI>
<LI>MacOSX 10.10, 11, 12 with clang-3.6, 3.7, 3.8</LI>
<LI>Windows-7, 10 with Visual C++ 14.0 (Visual Studio 2015)</LI>
<LI>Linux for Intel Xeon Phi with Intel-icc 16.0
(gcc-4.9 compatibility layer)</LI>
</UL>
Note: Windows platforms are supported/verified only for the sequential mode.
Multi-threading capability is not yet supported on Windows.
<P> </P>
<A NAME="2."></A>
<HR>
<!-- ============================================== -->
<H2>2. Supported CLHEP version</H2>
This release of Geant4 requires and has been verified with
<A TARGET="ext" HREF="http://cern.ch/clhep/">CLHEP</A>, release <B>2.4.0.0</B>.
Use of a different CLHEP version may cause incorrect simulation results.<BR>
NOTE: an internal module of the relevant CLHEP classes is provided and can be
used as alternative to an external CLHEP library installation.
<P> </P>
<A NAME="3."></A>
<HR>
<!-- ============================================== -->
<H2>3. Items for migration of the user code</H2>
Listed here is some relevant information on developments included in this
release.
Note that for all users a full re-installation of libraries (or a full
re-compilation) and a re-compilation of user applications is required.
<P> </P>
<B>General</B>
<P> </P>
<UL>
<LI>Minimum required version of CMake to build Geant4 is 3.3.</LI>
<LI>USolids specific flags have been fully replaced with VecGeom. From now on,
configurations requiring the optional USolids/VecGeom component, will
require to set VecGeom_DIR instead of USolids_DIR as path for the
installation of VecGeom.</UL>
<P> </P>
<B>Geometry</B>
<P> </P>
<UL>
<LI>A new minor release of the GDML schema, GDML-3.1.6, is used.
The new schema is fully compatible with old schema versions
and schema validation thorugh network is already activated against it.</LI>
</UL>
<P> </P>
<B>Particles</B>
<P> </P>
<UL>
<LI>Particle data is updated to PDG-2017.</LI>
</UL>
<P> </P>
<B>Electromagnetic and optical physics</B>
<P> </P>
<UL>
<LI>The new data sets G4EMLOW-7.3 and G4RealSurface-2.1 should be used.</LI>
<LI>New UI commands and parameters for electromagnetic physics
are added (see details in Application Development Manual).</LI>
<LI>New interfaces are added to G4MaterialPropertyTable providing
more CPU performant simulation for optical photon transport.</LI>
</UL>
<P> </P>
<B>Hadronic physics</B>
<P> </P>
<UL>
<LI>The new data sets <TT>G4PhotonEvaporation-5.2</TT>, <TT>G4ABLA-3.1</TT>,
<TT>G4RadioactiveDecay-5.2</TT> and <TT>G4ENSDFSTATE-2.2</TT>
should be used. Updated also the optional data-set <TT>G4TENDL-1.3.2</TT></LI>
</UL>
<P> </P>
<B>Analysis</B>
<P> </P>
<UL>
<LI>The <I>G4AnalysisManager::SetNtupleMerging()</I> function, applicable with
the ROOT output only, can take now four arguments instead of three.
This changes the meaning of the last two optional arguments: the third
one handles a selection of the merging mode (<I>rowWise/columnWise</I>)
and the fourth one the basket size value.</LI>
</UL>
<P> </P>
<P> </P>
<B>Data Sets</B>
<P> </P>
This release introduces new data set versions.
Please see the corresponding details in
<A href="#data-notes">Section 9</A> of this document.
<UL>
<LI>New data set versions: <TT>G4EMLOW-7.3, G4ENSDFSTATE-2.2,
G4RadioactiveDecay-5.2, G4PhotonEvaporation-5.2, G4ABLA-3.1,
G4RealSurface-2.1</TT>.</LI>
<LI>In order to use <TT>ParticleHP</TT> for charged particles
(protons, deuterons, tritons, He3 and alphas), an optional data
set <TT>G4TENDL-1.3.2</TT> is required, and should be downloaded in
addition from the
<A HREF="http://cern.ch/geant4/support/download.shtml">Geant4 web site</A>.</LI>
</UL>
<A NAME="4."></A>
<HR>
<!-- ============================================== -->
<H2>4. New Developments and Capabilities </H2>
<B>Analysis</B>
<UL>
<LI>Added support for the input/output in HDF5 format. It requires the HDF5
libraries installation and Geant4 libraries built with the
-DGEANT4_USE_HDF5=ON CMake option.</LI>
<LI>Preserving row-wise ntuple access when ntuple merging is activated with
the ROOT output in multi-threading mode. The optional column-wise merging
mode can be selected by the user via the SetNtupleMerging() call to
G4AnalysisManager.
</UL>
<B>Geometry</B>
<UL>
<LI>A configuration option allows an installation to use the
<A HREF="https://gitlab.cern.ch/VecGeom/VecGeom/">VecGeom Unified Solids Library</A>
primitives, to replace the original Geant4 solids, as in the
previous release. The path to an external installation of the VecGeom
library (VecGeom version <TT>v00.05.00</TT>) should be specified.
See the associated instructions file for configuration and installation.</LI>
<LI>A new stepper, G4DormandPrince457, is now set as the default stepper for
magnetic fields, if a driver/stepper is not explicitly specified. This is
the recommended stepper for any type of field, as it requires fewer
field evaluations per step, and provides higher accuracy than
G4ClassicalRK4, the old default.</LI>
<LI>A new construct, G4MultiUnion, is now available as native type. It
implements a multiple-union of several volumes, each of which is a solid
with a displacement and a rotation. As with simple unions, the resulting
volume is a solid filled with a single material.</LI>
</UL>
<B>Electromagnetic physics</B>
<UL>
<LI>New UI commands and parameters for electromagnetic physics
are added (see details in Application Development Manual).</LI>
<LI>Updated version of the Goudsmit-Saunderson model of multiple scattering
is available.</LI>
<LI>Revised version of the LivermorePhotoelectricModel is available.</LI>
<LI>A new interface allows user to define density effect
parameterisation for a material.</LI>
<LI>New interfaces are added to G4MaterialPropertyTable providing
more CPU performant simulation for optical photon transport.</LI>
<LI>Updated G4LivermorePhotoElectricModel from EPICS 2014.</LI>
<LI>New Geant4-DNA models from the CPA100 Monte Carlo code for electrons
in liquid water.</LI>
<LI>New Geant4-DNA cross sections for DNA related materials from PTB.</LI>
</UL>
<B>Hadronic physics</B>
<UL>
<LI>Introduced smearing of resonance masses in Fritiof (FTF) string model.</LI>
<LI>Extended INCLXX intranuclear cascade model to the strangeness sector, i.e.
treatment of primary kaons and hyperons, and production of secondary kaons
and hyperons.</LI>
<LI>New gamma-nuclear combined final-state model (G4LENDorBERTModel) that uses
LEND for low-energy (below 20 MeV) gammas, if data available, else BERT model;
the latter is also used for gammas above 20 MeV.
For cross-sections, LEND is used for gammas below 20 MeV if data available,
else the default G4PhotoNuclearCrossSection is used.</LI>
<LI>Production and transport of long-lived isomers is enabled in hadronic
models which use native de-excitation module (e.g. not in Bertini if
it is used with its own precompound/de-excitation).
Only isomers with a half-life above a time threshold are created:
by default it is set to 1000 seconds, unless radioactive decay is enabled
in which case this threshold is 1 microsecond.</LI>
<LI>Correlated gamma emission in radioactive decay is implemented but
disabled by default.</LI>
<LI>When radioactive decay is activated, atomic de-excitation
(in particular fluorescence and Auger emission) are switched on
by default (overriding any EM default settings).
<LI>Added an experimental, alternative implementation of muon stopping
using muonic atoms. Disabled by default.</LI>
</UL>
<B>Particles</B>
<UL>
<LI>Basic functionality of handling muonic atom is introduced.
To use this functionality, <I>G4MUATOMS_INUSE</I> option
has to be set at installation.</LI>
</UL>
<B>Physics Lists</B>
<UL>
<LI>The default EM physics includes the Livermore proto-electric model and
the Rayleigh scattering process.</LI>
<LI>Opt4 EM physics includes the Goudsmit-Saunderson model of multiple scattering.</LI>
<LI>FTFQGSP_BERT: new experimental physics list which is similar to FTFP_BERT, but
with QGS fragmentation of strings (instead of the Lund string fragmentation).</LI>
<LI>Added ShieldingLEND as a new physics list, which is similar to Shielding, but
with LEND for low-energy neutrons and gammas (below 20 MeV if data is available,
else BERT model is used).</LI>
</UL>
<B>Run</B>
<UL>
<LI>Most of thread-local objects including physics processes
are now properly deleted at the end of program.</LI>
</UL>
<B>Visualization and Interfaces</B>
<UL>
<LI><TT>/vis/scene/add/gps</TT>: shows Geant4 General Particle Source sources.
Consult guidance for details.</LI>
<LI><TT>/vis/drawOnlyKeptEvents</TT>: draws a selection at run time.
Consult guidance for details.</LI>
<LI>More colours from X11 (via g4tools).
Use <TT>/vis/list</TT> to see.</LI>
<LI>Improved picking for OGLSX and OGLQt.</LI>
<LI>Arbitrary size of Ray Tracer rendering.</LI>
</UL>
<B>Examples</B>
<UL>
<LI>A new set of extended examples, <I>physicslists</I>, is introduced to
demonstrate usage of Geant4 reference physics lists and physics builders.</LI>
</UL>
<A NAME="5."></A>
<HR>
<!-- ============================================== -->
<H2>5. Expected effects on physics and computing performance</H2>
<B>Geometry</B>
<UL>
<LI>Improvements in the computation of the extent of the geometrical
shapes and consequent more optimal organisation of the 3D voxels
structure for navigation, was measured to provide few percents
speedup on complex geometry setups. According to the complexity
and shapes composition, additional speedup may come from the revised
algorithms introduced in this release for basic shapes.</LI>
</UL>
<B>Electromagnetic physics</B>
<UL>
<LI>More accurate simulation of gamma transport with the default EM physics.</LI>
<LI>More accurate electron transport with Opt4 EM physics.</LI>
<LI>Small (~1%) speedup of gamma/electron transport for calorimeters.</LI>
<LI>Substantial speedup of optical photons transport.</LI>
</UL>
<B>Hadronic physics</B>
<UL>
<LI>Hadronic showers remain very similar to those of version 10.3.</LI>
</UL>
<P> </P>
<A NAME="6."></A>
<HR>
<!-- ============================================== -->
<H2>6. Known Run-Time Problems and Limitations</H2>
For a complete list of outstanding run-time problems and to submit any
problem you may find while running this version of Geant4, please refer
to the
<A TARGET="ext" HREF="http://cern.ch/geant4/problemreport">Geant4 Problem
Reporting System</A>.
<P> </P>
<A NAME="7."></A>
<HR>
<!-- ============================================== -->
<H2>7. Compilation Warnings</H2>
There may be a few compilation warnings on some platforms.
We do not believe that any of these lead to incorrect run-time behaviour.
<P> </P>
<A NAME="8."></A>
<HR>
<!-- ============================================== -->
<H2>8. Geant4 Software License</H2>
A Software License applies to the Geant4 code.
Users must accept this license in order to use it. The details and the list of
copyright holders is available at
<A href="http://cern.ch/geant4/license">http://cern.ch/geant4/license</A>
and also in the text file <TT>LICENSE</TT> distributed with the source code.
<P> </P>
<A NAME="9."></A>
<HR>
<!-- ============================================== -->
<H2>9. Detailed list of changes and fixes</H2>
These are the main new features/fixes included in this release since the
last patched public release (for more detailed lists of fixes/additions,
please refer to the corresponding History files provided in most packages):
<P> </P>
<A NAME="conf-notes">
<H3><I>Configuration</I></H3></A>
<UL>
<LI>CMake:
<UL>
<LI>Removed support for modulefile generation, as not used and generated
files not compatible with relocatability. It's expected that software
stack managers will generate a modulefile file according to their
requirements.</LI>
<LI>Added new module G4CMakeMain.cmake for refactoring core implementation.</LI>
<LI>Added new GEANT4_USE_HDF5 option (OFF by defaults), to allow user to
enable Hdf5 support in analysis library. Created a G4HDF INTERFACE target
for uniform access to HDF5 headers and libraries at build, test and install
time. Added check for HDF5 installation; requiring HDF5 >= 1.8.</LI>
<LI>Removed obsolete modules for interfaces provided by CMake built-in
tools CMakeParseArguments, GNUInstallDirs and commands.</LI>
<LI>Refactored core Configure/Build and client script modules for clarity
and cohesion.</LI>
<LI>Removed obsolete FindCLHEP.cmake module; updated internal/system
CLHEP selection; simplified location/setup of system CLHEP as CLHEP
(>= 2.3.3.0) now provides CLHEP_LIBRARIES set with appropriate
single/granular targets with full usage requirements.
Addressing enhancement request
<A HREF="http://bugzilla-geant4.kek.jp/show_bug.cgi?id=1934">#1934</A>.</LI>
<LI>Do not set or modify DYLD_LIBRARY_PATH in setup scripts on macOS.
Addressing problem report
<A HREF="http://bugzilla-geant4.kek.jp/show_bug.cgi?id=1960">#1960</A>.</LI>
<LI>Set INSTALL_RPATH for MacOS systems; loading dylibs in Python can lead to
resolution errors as they cannot locate each other. The option allows to
append "@loader_path" to the INSTALL_RPATH for all Geant4 libraries.</LI>
<LI>Updated minimum version for system expat package to be >= 2.0.1,
according to features required in the g4tools analysis package.
Addressing problem report
<A HREF="http://bugzilla-geant4.kek.jp/show_bug.cgi?id=2003">#2003</A>.</LI>
<LI>Added GEANT4_INSTALL_EXAMPLES advanced option, ON by default; for use
to disable/enable installation of examples code.
Removed GEANT4_BUILD_EXAMPLES option.</LI>
<LI>Modules/Geant4OptionalComponents.cmake: added CTUBS, HYPE and PARA flags
to enable wrapping of G4CutTubs, G4Hype and G4Para for VecGeom in
GEANT4_USOLIDS_SHAPES.</LI>
<LI>Replaced USolids specific flags with VecGeom. From now on
VecGeomConfig.cmake will be required and used instead of
USolidsConfig.cmake, as well as VecGeom_DIR instead of USolids_DIR.</LI>
<LI>Corrected setting of USOLIDS_BASE_DIR path for GNUmake setup.</LI>
<LI>Added new advanced build option GEANT4_BUILD_MUONIC_ATOMS_IN_USE, set to
OFF by default; when ON, adding G4MUTOMS_INUSE to compile definitions.</LI>
<LI>Restored reporting of C++ standard configuration.</LI>
<LI>Removed obsolete FindROOT module.</LI>
<LI>Updated data-sets versions.</LI>
</UL></LI>
<LI>GNUMake:
<UL>
<LI>binmake-gmk: added 'processes/solidstate' and
'processes/hadronic/models/gamma_nuclear' modules to include path.</LI>
<LI>geomconf.gmk: added selectors for G4GEOM_USE_UCTUBS, G4GEOM_USE_UHYPE
and G4GEOM_USE_UPARA flags, to enable wrapping of G4CutTubs, G4Hype
and G4Para for VecGeom. Updated flags for Scalar build of VecGeom.</LI>
<LI>In architecture.gmk, removed references to old USolids library;
just use VecGeom.</LI>
</UL></LI>
</UL>
<A NAME="ana-notes">
<H3><I>Analysis</I></H3></A>
<UL><LI><B>Profiles</B>
<UL>
<LI>Added GetP[1,2]Id(const G4String&) functions to the
G4AnalysisManager public interface. Addressing problem report
<A HREF="http://bugzilla-geant4.kek.jp/show_bug.cgi?id=1949">#1949</A>.</LI>
</UL>
<LI><B>Ntuples</B>
<UL>
<LI>Added rowWise option to G4RootAnalysisManager::SetNtupleMerging().</LI>
<LI>Moved common implementation from G4V[R]NtupleManager in new
G4Base[R]NtupleManager classes.</LI>
<LI>Introduced G4TRNtupleDescription, G4TRNtupleManager template classes.</LI>
<LI>Always create an ntuple from ntuple booking (removed usage of
ntuple::create_column).</LI>
</UL></LI>
<LI><B>Output types</B>
<UL>
<LI>Added full support for HDF5. Added optional directoryName argument
in Read[Hn][Pn][Ntuple] functions in G4VAnalysisReader (needed for HDF5).</LI>
</UL></LI>
<LI><B>Fixes</B>
<UL>
<LI>Fixed generation of file name on workers (adding _tN extension).
Addressing Hypernews post #537 in analysis Forum.</LI>
</UL></LI>
<LI><B>g4tools</B>
<UL>
<LI>Updated the g4tools version to g4tools-4.2.1.</LI>
<LI>Added support for HDF5, improved tests.</LI>
<LI>Updates in colorf, colors to make possible to use the tools/colors
color table in G4Colour class.</LI>
<LI>Changes in wroot, rroot in order to handle row wise ntuple in case
of MT or MPI.</LI>
<LI>See History_tools for the complete list of modifications.</LI>
</UL></LI>
</UL>
<A NAME="digits-notes">
<H3><I>Digitization & Hits</I></H3></A>
<UL>
<LI>Renamed G4THitsMap to G4VTHitsMap: although G4VTHitsMap is not a pure
virtual class, it has an additional template parameter for the map type,
so it is not intended to be used directly; made G4VTHitsMap more generic
in accepting the type of data stored (with more generic template overloads
not specific to G4double and G4StatDouble).
Fixed initialisation of G4StatDouble entries.</LI>
<LI>Added G4THitsMultiMap, which functions like G4THitsMap but all entries
are stored.</LI>
<LI>Added G4THitsUnorderedMap, which functions like G4THitsMap but uses an
unordered_map.</LI>
<LI>Added G4THitsUnorderedMultiMap, which functions like G4THitsMap but
stores all entries in an unordered multimap.</LI>
<LI>Typedefs for map_type, value_type, iterator, and const_iterator
for future generic usage.</LI>
<LI>Defined begin(), end(), cbegin(), cend() so now G4VTHitsMap can be used
in range-based loops.</LI>
</UL>
<A NAME="emstd-notes">
<H3><I>Electromagnetic Processes</I></H3></A>
<UL>
<LI>Requires data-set G4EMLOW-7.3.</LI>
<LI><B>Adjoint</B>
<UL>
<LI>Correction for FPE cases in G4AdjointForcedInteractionForGamma.</LI>
<LI>G4eAdjointMultipleScattering: changed index of the default according to
recent modifications in utils module.</LI>
</UL></LI>
<LI><B>DNA</B>:
<UL>
<LI>Added new CPA100 classes. Added new G4DNAPTB* classes and the structure
of the new material management system.</LI>
<LI>Added tagging of atomic de-excitation products in the ionisation models.</LI>
<LI>Extended upper energy limit of protons for
G4DNARuddIonisationExtendedModel.</LI>
<LI>Introducing G4PhysChemIO class.</LI>
<LI>Moved call to G4TrackList::Pop(track) from G4ITTrackingManager
to G4ITTrackHolder and make sure track status is set to fStopAndKill
when G4ITTrackHolder::PushToKill is called.</LI>
<LI>G4DNAMolecularMaterial: removed newly introduced methods; added fatal
exception if used. Added doxygen documentation.</LI>
<LI>Added new G4DNADummyModel and allow the combination of G4VEmModel and
G4VDNAModel in G4DNAModelInterface.</LI>
<LI>Updated G4DNAModelInterface to correctly use G4DNAMolecularMaterial.</LI>
<LI>G4DNAExcitation, G4DNAIonisation: make coherent model initialisation.</LI>
<LI>G4DNAEmfietzoglouIonisationModel: added protection for out of bound access.</LI>
<LI>Updated variable types in models.</LI>
</UL></LI>
<LI><B>High Energy</B>
<UL>
<LI>G4eeToHadrons, G4hhIonisation, G4mplIonisation: make coherent model
initialisation.</LI>
<LI>G4GammaConversionToMuons: changed parameterisation of nuclear elastic
form-factor; use integer Z; speeded-up sampling algorithm.</LI>
<LI>G4eeToHadrons, G4eeToHadronsMultiModel: implemented new method
StreamProcessInfo() instead of PrintInfo().</LI>
<LI>G4hBremsstrahlung, G4hPairProduction: updated process description text.</LI>
<LI>Added dummy StreamProcessInfo() for html doc.</LI>
</UL></LI>
<LI><B>Low Energy</B>
<UL>
<LI>G4LivermoreNuclearGammaConversionModel, G4BoldyshevTripletModel:
Added possibility of triplet production; use G4Log; code cleanup.</LI>
<LI>Extended coverage of shell ionisation models.</LI>
<LI>G4LivermorePhotoElectricModel:
new parameterisations using two intervals (in place of unique
parameterisation), using the new EPICS-2014 data.
The resulting data-sets are provided in the data directory
livermore/phot_epics2014.
Fixed resetting of pointer to nullptr, addressing problem report
<A HREF="http://bugzilla-geant4.kek.jp/show_bug.cgi?id=1980">#1980</A>.
Fixed diagnostic text in case of G4Exception.
Requires new data set G4EMLOW-7.3.</LI>
<LI>G4LivermoreRayleighModel: minor code cleanup and optimisations,
added process description text.</LI>
<LI>Added protection against (rare) infinite loops in
G4PenelopeOscillatorManager, which occurred for materials made of more
than 20 elements.</LI>
<LI>G4MicroElecElastic, G4MicroElecInelastic: improved coherence of model
initialisation.</LI>
<LI>G4LowECapture: added scaling of energy threshold for ions.</LI>
</UL></LI>
<LI><B>Muons</B>
<UL>
<LI>G4MuBremmstrahlungModel, G4MuPairProductionModel: make all data members
protected, allowing to reuse these classes as base for dark matter
photons.</LI>
<LI>G4MuIonisation, G4MuMultipleScattering, G4MuPairProduction,
G4ePairProduction: make coherent model initialisation.
Switched from ProcessDescription() to StreamProcessInfo() for html output.</LI>
</UL></LI>
<LI><B>Polarisation</B>
<UL>
<LI>G4PolarizedCompton, G4PolarizedGammaConversion, G4ePolarizedIonisation:
make coherent model initialisation.</LI>
</UL></LI>
<LI><B>Standard</B>
<UL>
<LI>G4GoudsmitSaundersonTable: new representation of the GS angular
distributions (data size reduced from 16MB down to 5 MB).
Fixed scattering power correction table.</LI>
<LI>G4GoudsmitSaundersonMscModel, G4GoudsmitSaundersonTable: added option to
apply Mott-correction to the default GS model.
The new class G4GSMottCorrection handles the Mott-correction to the angular
distributions as well as correction factors to elastic, mfp, first and
second moments.</LI>
<LI>G4MottCoefficients, G4ScreeningMottCrossSection,
G4eSingleCoulombScatteringModel: tuned performance of the model making
as fast as the default single scattering.</LI>
<LI>New form of PWA corrections in the Goudsmit-Saunderson multiple-scattering
model that is active now both for e- and e+; improved scattering power
correction computation in case of Mott-correction; changed step limit
flag conventions in the GS model.</LI>
<LI>G4PairProductionRelModel: fixed inconsistency in calculating the LPM
suppression for the pair-production model.</LI>
<LI>G4WentzelOKandVIxSection, G4WentzelVIRelXSection: added
"ScreeningFactor" parameter to study accuracy of scattering models.</LI>
<LI>G4SauterGavrilaAngularDistribution: introduced more efficient algorithm
of sampling using Penelope-2014 prescription; expected that simulation
will be faster.</LI>
<LI>G4UniversalFluctuation: added extra parameter in the model and improved
sampling for thin layers; added correction for small cuts.
Added corrections for better E_mp and FWHM in the case of small steps.</LI>
<LI>G4BetheHeitlerModel, G4PairProductionRelModel: minor change in angular
sampling. Use G4Pow in both classes instead of G4NistManager for fast
math computations.</LI>
<LI>G4BetheHeitlerModel, G4PairProductionRelModel: code cleanup and
optimisations; replaced remaining use of log, exp with G4Log and G4Exp.</LI>
<LI>G4eBremsstrahlungRelModel: use new interface to triplet model.
Added class members and cross-sections for sampling of electron recoil.</LI>
<LI>G4WentzelVIRelModel: fixed typo responsible for numerical crash.</LI>
<LI>G4WentzelOKandVIxSection, G4eCoulombScatteringModel, G4WentzelVIModel,
G4hCoulombScatteringModel: code and interface cleanup.
G4WentzelVIRelModel: use inheritance from G4WentzelVIModel.
G4WentzelVIRelXSection: use inheritance from G4WentzelOKandVIxSection.</LI>
<LI>G4UrbanMscModel: renamed and use flag for lateral displacement algorithm;
if its value is "true" then the old lateral displacment algorithm is
used, else a new one is applied. Cleanup of inline methods.</LI>
<LI>G4hIonisation: fixed energy intervals per EM model for super-heavy particles.
<LI>G4NuclearStopping: use activation limit for energy per nucleon.
Fixed initialisation.</LI>
<LI>G4PAIModel. G4PAIPhotModel: added implementation of virtual method
MinEnergyCut(), always return 25 eV, as PAI models are not applicable for
smaller energy transfers. Set MinEnergyCut() to 12.5 eV, based on results
study of gaseous detector simulations.</LI>
<LI>Switched from ProcessDescription() to StreamProcessInfo().
Added dummy ProcessDescription() to other processes.</LI>
<LI>Make coherent models initialisation.</LI>
<LI>Requires new data set G4EMLOW-7.3.</LI>
</UL></LI>
<LI><B>Utils</B>
<UL>
<LI>G4EmParameters: added method with more correct name AddPhysics()
in order to replace AddMsc in future (no change in functionality).
G4EmSaturation may be created at any moment (added mutex).
Fixed SetDeexcitationIgnoreCut() method.
Set lateral displacement algorithm to 9.6 version as the default,
Fixed typo in dump of parameters.</LI>
<LI>G4EmParametersMessenger, G4EmParameters: added parameter
"ScreeningFactor", related modifiers and UI command.
Allow atomic de-excitation commands in Init state.</LI>
<LI>G4VEmProcess: added DNA ionisation process to the list of discrete
processes, which have auger and fluo flags for secondary particles.
Added DNA ionisation process for hydrogen and helium to the list of
processes, which have auger and fluo flags.
Select models for ions by using energy per nucleon.
Added method StreamInfo() allowing to print in any stream.</LI>
<LI>G4VEmModel: added triplet model pointer and Get/Set methods.</LI>
<LI>G4EmCorrections: removed computation of nuclear stopping power.</LI>
<LI>G4EmDataHandler: new class to keep physics tables in easy way.</LI>
<LI>G4EmParametersMessenger, G4EmParameters: added parameters "DNAFast",
"DNAStationary" and "DNAMsc"; added Get/Set methods and UI command.</LI>
<LI>G4VMultipleScattering, G4VMscModel, G4VEnergyLossProcess, G4VEmProcess,
G4EmConfigurator, G4EmConfigurator: new scheme of model initialisation
in order to not create extra fake model objects and reduce number of
calls at run time. Added initialisation printout for DNA particles.
Code cleanup</LI>
<LI>G4EmParameters: changed to fully thread-safe singleton.</LI>
<LI>G4LossTableManager: added new method PrintHtml() to generate html doc.</LI>
<LI>G4VEnergyLossProcess, G4VEmProcess, G4VMultipleScattering: added new
protected method StreamProcessInfo() to be used by derived processes.
Modified doc outputs to set end-of-line string.</LI>
<LI>Fixed Coverity defects.</LI>
</UL>
<LI><B>Xrays</B>
<UL>
<LI>Changed material property keys by the enum (index) type defined in
G4MaterialPropertiesIndex.</LI>
</UL></LI>
</UL>
<A NAME="errprop-notes">
<H3><I>Error Propagation</I></H3></A>
<UL>
<LI>Precision correction in G4ErrorFreeTrajState.
Addressing problem report
<A HREF="http://bugzilla-geant4.kek.jp/show_bug.cgi?id=2010">#2010</A>.</LI>
<LI>Migrated code to use new types for G4(Mag)IntegrationDriver and use its
new GetEquation() method.</LI>
</UL>
<A NAME="event-notes">
<H3><I>Event</I></H3></A>
<UL>
<LI>G4SPSPosDistribution: added GetRotx,y,z() access functions and other
accessors for use by G4GPSModel for visualisation.</LI>
<LI>G4StackManager: added #ifdef protection for the case when a particle is a
muonic atom.</LI>
</UL>
<A NAME="externals-notes">
<H3><I>Externals</I></H3></A>
<UL>
<LI>Adapted CMake scripts to new configuration for internal/external
packages of CLHEP, expat and zlib.</LI>
<LI>Updated CLHEP module to version 2.4.0.0:
<UL>
<LI>Updated MixMaxRng class to include latest C++ revision based on
MixMax-2.0. Replaced skipping coefficients optional set for N=256
with N=240. Removed old C implementation files.
Set MixMax as the default random number generator in HepRandom.</LI>
<LI>Fix in HepRotation::axis() for proper treatment of degenerating cases.</LI>
<LI>Added missing DLL_API specification for static data member in
Transform3D class.</LI>
</UL></LI>
<LI>Zlib:
<UL>
<LI>Disabled warning on fallthrough in case statements on gcc-7.1.</LI>
</UL></LI>
</UL>
<A NAME="gen-notes">
<H3><I>General Processes</I></H3></A>
<UL>
<LI><B>Biasing</B>
<UL>
<LI>Fix in G4BiasingProcessInterface for wrong setting of first/last GPIL/DoIt
flags in case of charged particles, according to the fact that the multiple-
scattering is now a pure along step process.</LI>
<LI>Removed duplicate class definition G4TrackTerminator.hh, which
is part of the processes/transportation module.</LI>
</UL></LI>
<LI><B>Decay</B>
<UL>
<LI>Moved muonic atom files to hadronic stopping module.</LI>
<LI>Replaced DECAY_MuonicAtomDecay process type with DECAY_MuAtom.</LI>
<LI>Added ProcessDescription to decay process.</LI>
<LI>Use nullptr in place of NULL or 0.</LI>
</UL></LI>
<LI><B>Management</B>
<UL>
<LI>Added virtual method ProcessDescription(std::ostream& outfile) to G4VProcess
so that all processes can output a description to html documentation.</LI>
<LI>Use G4Log in G4VProcess.</LI>
</UL></LI>
<LI><B>Optical</B>
<UL>
<LI>Added DAVIS model for optical physics. Use the new model with
reflection and added capability of transmitting photons based on LUTs.
Requires new data set G4RealSurface-2.1.</LI>
<LI>Change material property keys by the enum type defined in
G4MaterialPropertiesIndex.</LI>
</UL></LI>
<LI><B>Solid State</B>
<UL>
<LI>New module including channeling and phonon modeling.</LI>
</UL></LI>
<LI><B>Transportation</B>
<UL>
<LI>G4Transportation, G4CoupledTransportation: obtain equation of motion using
dedicated method now provided through G4ProgatorInField.</LI>
<LI>Make appropriate setting/use of verbosity from base class G4VProcess,
instead of re-defining/using local verbosity flag in G4Transportation
and G4CoupledTransportation.
Addressing problem report
<A HREF="http://bugzilla-geant4.kek.jp/show_bug.cgi?id=1999">#1999</A>.</LI>
</UL></LI>
</UL>
<A NAME="geo-notes">
<H3><I>Geometry</I></H3></A>
<UL>
<LI><B>Magnetic field</B>
<UL>
<LI>Made G4DormandPrince457 the default stepper for magnetic fields in
G4ChordFinder, when a driver/stepper is not specified.</LI>
<LI>G4FieldManager: revised behaviour of SetDetector(); it now passes the
Field to the Equation, as is the natural user expectation.
The previous behaviour is possible, using extra argument 'failMode'
flag (values: 0 = silent; 1 (default) = warning; 2 or other = fatal
exception).
If the field is changed for an existing, working stepper it must be
propagated to the equation of motion.
Note: Error reporting behaviour of SetDetector is 'soft'. It does not
complain by default if G4ChordFinder is not (yet) set (the default
values of failMode is 0, i.e. quiet); if a chord-finder exists, it
will still warn for other errors.</LI>
<LI>Introduced G4VIntegrationDriver base class for any driver algorithm.
New concrete classes added: G4IntegrationDriver, implementation of
templated driver algorithm for non-FSAL explicit Runge-Kutta steppers;
G4FSALIntegrationDriver, implementation of driver algorithm for
FSAL explicit Runge-Kutta steppers. G4MagInt_Drv, the old class,
remains, and can be used with any Runge-Kutta stepper.</LI>
<LI>Added new steppers G4RK547FEq{1,2,3} which implement 7 stage embedded
Runge-Kutta pairing 4th and 5th order formulae, with: FSAL property
('First Same As Last' steppers return derivative at endpoint for use
in next step); stable equilibrium states (better stability in choosing
step sizes). Each one can be used with all existing Runge-Kutta drivers.
<LI>A reduction in the number of field evaluations can be realised
by using a FSAL steppers (including G4RK547FEq{1,2,3}) together with
G4FSALIntegrationDriver. This driver is the only one to reuse the
derivative of a successful step in a potential subsequent step.</LI>
<LI>Added G4FieldUtils utilities class, to extract data from arrays in
conventions of the magneticfield integration.</LI>
<LI>Renamed G4FieldManager::SetFieldChangesEnergy() method to
InitialiseFieldChangesEnergy() to clarify its utility.</LI>
<LI>Corrected destructor in G4FieldManagerStore and added simple accessor
to return singleton pointer.</LI>
<LI>Fixed initialisation of coefficients in G4FSALBogackiShampline45 in
method PrepareConstants() called by constructor.</LI>
<LI>Fixed significant memory leak in G4DormandPrinceRK56, in method
SetupInterpolate_low(); improved initialisation of data.</LI>
<LI>G4BogackiShampine23: fixed initialisation of data and suppressed duplicate
method isFSAL(), as existing in base class G4MagIntegratorStepper.
Made copy constructor and equal operator private and not unimplemented.</LI>
<LI>G4MagInt_Driver: added GetEquationOfMotion() method for enabling common
code with future development.</LI>
<LI>Fixed Coverity defects in several classes.</LI>
</UL></LI>
<LI><B>Management</B>
<UL>
<LI>Added adapter class G4UAdapter for interfacing G4U* wrappers with
VecGeom. Will replace G4USolid bridge class, and now deprecating
USolids API in favour of direct use of VecGeom signatures and removal
of one extra-level of indirection/inheritance.
Requires new version 0.5 for VecGeom external library.</LI>
<LI>Removed G4USolid base wrapper for USolids. Only native VecGeom
implementation through G4UAdapter is now supported.</LI>
<LI>Renamed ambiguous name Extent() in G4VSolid to BoundingLimits().
Modified G4ReflectedSolid accordingly. Change required in order to
avoid signature conflict with VecGeom in G4U* wrappers.</LI>
<LI>Moved few key methods to be inline in G4USolid.</LI>
<LI>Fixed static memory leak from G4LogicalVolume, G4VPhysicalVolume and
G4Region, for offsets allocated at initialisation.</LI>
<LI>Removed additional wrong lock in G4GeomSplitter for function
SlaveReCopySubInstanceArray().</LI>
<LI>Added simple accessor to return singleton pointer for G4GeometryManager.
Define IsGeometryClosed() as a static method, to avoid call to
GetInstance(). Made related Boolean flag thread-local.</LI>
<LI>Enabled deletion of solids in G4SolidsStore destructor also for MT mode.</LI>
<LI>Added methods TriangelAreaNormal(), QuadAreaNormal(),
PolygonAreaNormal(), ClosestPointOnSegment(), EllipsePerimeter(),
EllipticConeLateralArea(), comp_ellint_2() and
ClosestPointOnTriangle() to G4GeomTools.
Added PointInPolygon() function, to determine the position
of a point relative to a polygon in 2D.</LI>
<LI>Precision correction in G4ErrorPlaneSurfaceTarget.
Addressing problem report
<A HREF="http://bugzilla-geant4.kek.jp/show_bug.cgi?id=2011">#2011</A>.</LI>
</UL></LI>
<LI><B>Navigation</B>
<UL>
<LI>G4Navigator: loosened check on normal vector in GetGlobalExitNormal(),
whether it is a unit vector; set tolerance to 10^-3 (was 10^-6).
Improved clarity by using a constant 'perThousand' in this check.</LI>
<LI>Fix in G4PathFinder to cope with zero proposed step; the correction
ensures that the 'physical' length of a step is used in minimum, rather
than 'logical' value (i.e. kInfinity).
<LI>Modification in G4PathFinder, G4PropagatorInField and locator classes
to use GetEquationOfMotion() method from G4MagIntegratorDriver.</LI>
<LI>Correction in destructors of G4TransportationManager and G4PathFinder.
Avoid deletion of field-manager pointer in destructor of
G4TransportationManager, as it is being deleted by G4FieldManagerStore.
<LI>Added simple accessor (to return singleton pointer - and not create it
if has not already been instantiated) in G4PathFinder and
G4TransportationManager.</LI>
</UL></LI>
<LI><B>Solids (Boolean)</B>
<UL>
<LI>Added G4MultiUnion class, importing original implementation for a
multiple-union structure from the USolids library.
Removed the wrapper G4UMultiUnion, no longer necessary.</LI>
<LI>Revised SurfaceNormal() in G4UnionSolid, to correctly return average
normal if point is on common surface.</LI>
<LI>Renamed ambiguous name Extent() in all shapes to BoundingLimits().</LI>
<LI>Fixed minor Coverity defects in G4MultiUnion.</LI>
</UL></LI>
<LI><B>Solids (CSG)</B>
<UL>
<LI>Reviewed implementation of G4Box, G4Trap, G4Trd, G4Para and G4Orb;
revised to make them more compact and performant.</LI>
<LI>G4Trap: modified computation of side planes; bounding box/envelope
are computed directly from side planes. Added CheckParameters() and
MakePlanes(pt), simplified constructors and SetAllParameters().
In G4UTrap, bounding box/envelope are computed directly from side
planes as for G4Trap. Increased tolerance in the check of consistency
of bounding boxes in Extent().
Added private method GetVertices(), calculating vertices of the trap
from its side planes; removed private methods GetFaceArea() and
GetPointOnPlane(). Improved GetCubicVolume() and GetSurfaceArea();
calculation of the volume and surface area is now done by using
vertices calculated by GetVertices(). Improved/simplified other
methods: StreamInfo(), MakePlanes(), MakePlanes(pt), Extent() and
CalculateExtent(). Added more strict condition for trap definition
in case when YZ section is a rectangle.
Use specialization (fTrapType 3) for traps that could be also
defined as G4Trd, where isosceles trapeziod is in the XY section,
instead of XZ (faces at Xmin/Xmax symmetrical and have Z-component of
normals equal to zero). Factorised code with case statements for the
different specialisations.</LI>
<LI>Renamed ambiguous name Extent() in all solids and G4U* wrappers to
BoundingLimits().</LI>
<LI>Removed clone class G4OTubs no longer necessary and removed inheritance
from G4Tubs for G4CutTubs. Improved calculation of bounding-box in
G4CutTubs.</LI>
<LI>Use G4RandomRadiusInRing() in G4CSGSolid::GetRadiusInRing().</LI>
<LI>Enabled adapter for VecGeom shapes in G4U* wrappers for all wrapped
shapes. From now on, wrappers depends directly on VecGeom shapes
implementation. USolids API is deprecated and no longer supported.</LI>
<LI>Removed redundant overloaded implementation for StreamInfo() in G4UBox
wrapper.</LI>
</UL></LI>
<LI><B>Solids (Specific)</B>
<UL>
<LI>G4ExtrudedSolid: added specialised implementation for constructs
defining a convex or non-convex right prism.
Temporarly disabled G4UExtrudedSolid wrapper, pending implementation
of extruded solid in VecGeom.
<LI>Renamed G4SurfaceVoxelizer to G4Voxelizer and extended to support
voxelisation of shapes in 3D space. Adapted G4TessellatedSolid
accordingly.</LI>
<LI>G4TessellatedSolid: print also solid's name in StreamInfo().</LI>
<LI>Revised implementation of GetCubicVolume() and GetSurfaceArea() for
G4EllipticalTube, to return exact values.</LI>
<LI>G4EllipticalCone: reviewed implementation of Inside(), DistanceToIn/Out(p),
SurfaceNormal() and GetPointOnSurface(); made more compact and performant.
Addressing problem report
<A HREF="http://bugzilla-geant4.kek.jp/show_bug.cgi?id=1974">#1974</A>.
Improved GetPointOnSurface() to have uniform sampling of points, using
function G4RandomPointOnEllipse().
Revised implementation of GetSurfaceArea() to return exact value;
moved both GetCubicVolume() and GetSurfaceArea() to be not inline.</LI>
<LI>G4SolidsWorkspacePool: implemented CleanUpAndDestroyAllWorkspaces(),
to be called by worker threads. Removed declaration (i.e. not
implemented) of protected method ReleaseAndDestroyWorkspace().
Use DLL export flag for static thread-local symbol of the workspace.</LI>
<LI>Renamed ambiguous name Extent() in all solids and G4U* wrappers to
BoundingLimits().</LI>
<LI>Enabled adapter for VecGeom shapes in G4U* wrappers for: paraboloid,
polyhedra, polycone and GenericTrap. From now on, wrappers depends
directly on VecGeom shapes implementation. USolids API is deprecated
and no longer supported.</LI>
<LI>Temporarly disabled wrappers for G4Tet and G4GenericPolycone, pending
their corresponding implementation in VecGeom. Added VecGeom wrapper
G4UHype for G4Hype, not yet activated, pending fixes in VecGeom.</LI>
</UL></LI>
<LI><B>Volumes</B>
<UL>
<LI>G4GeometryWorkspacePool: implemented CleanUpAndDestroyAllWorkspaces(),
to be called by worker threads. Removed declaration (i.e. not
implemented) of protected method ReleaseAndDestroyWorkspace().
Use DLL export flag for static thread-local symbol of the workspace.</LI>
</UL></LI>
</UL>
<A NAME="glob-notes">
<H3><I>Global</I></H3></A>
<UL>
<LI>New structure for G4coutDestination functionality with division
between sink and filter.</LI>
<LI>Removed obsolete internal definition of abs() in templates.hh.</LI>
<LI>Added function G4RandomDirection(G4double cosTheta) to
G4RandomDirection.hh. Addressing enhancement request
<A HREF="http://bugzilla-geant4.kek.jp/show_bug.cgi?id=1961">#1961</A>.
Use more performant G.Marsaglia (1972) algorithm for G4RandomDirection.</LI>
<LI>G4TWorkspacePool: implemented CleanUpAndDestroyAllWorkspaces(),
and Recycle() to be called by worker threads.</LI>
<LI>Added G4RandomRadiusInRing(), G4RandomPointInEllipse(),
G4RandomPointOnEllipse() and G4RandomPointOnEllipsoid() to functions
collection in G4RandomTools utility class.</LI>
<LI>Updated date of release for 10.4.</LI>
</UL>
<A NAME="greps-notes">
<H3><I>Graphical Representations</I></H3></A>
<UL>
<LI>Added implementation of G4Colour::operator+=(), as required by RayTracer
in its use of G4THitsMap. Adding colours, without also taking brightness
into account, does not make sense, so made it synonymous with operator=(),
which is equivalent to covering the old colour with the new, like a coat
of paint.</LI>
<LI>Rationalised code for colour map: made map no longer thread-local, as not
needed, can be used from non-master threads; moved InitialiseColourMap()
from private to public.</LI>
<LI>G4Colour: added Set functions for components.</LI>
<LI>HepPolyhedron: reverted default number of line segments per circle, from
72 to 24 (72 lines per circle cause troubles in the Boolean Processor).</LI>
<LI>G4AttDefStore: made it shared (i.e., no longer thread-local).</LI>
<LI>Removed G4VisExtent::NullExtent.</LI>
</UL>
<A NAME="had-notes">
<H3><I>Hadronic Processes</I></H3></A>