-
Notifications
You must be signed in to change notification settings - Fork 330
/
Copy pathReleaseNotes.11.0.html
3404 lines (3289 loc) · 172 KB
/
ReleaseNotes.11.0.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 11.0 Release Notes</TITLE>
</HEAD>
<BODY BGCOLOR='F0F0F0'>
<P> </P>
<BR>
<P> </P>
<P ALIGN="Center">
<FONT SIZE="+4" COLOR="#238E23">
<B>Geant4 11.0 Release Notes</B>
</FONT>
<TABLE WIDTH="100%">
<TR><TD ALIGN="Right">
<FONT SIZE="-1" COLOR="#5C3317">
<B><I>December 10<SUP>th</SUP>, 2021</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">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/user_documentation">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 and VecGeom versions</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>
<LI><A HREF="#10.">Appendix</A></LI>
</OL>
<P> </P>
<A NAME="1."></a>
<HR>
<!-- ============================================== -->
<H2>1. Supported and Tested Platforms</H2>
Platforms:
<UL>
<LI>Linux, gcc-8.3.1.<BR>
Tested on 64 bit architectures (Intel or AMD) with
CERN CentOS Linux 8 (CC8) (based on CentOS Linux 8).</LI>
<LI>macOS 12.01 Monterey with Apple LLVM/Clang-13.<BR>
Tested on 64 bit architectures (Intel or Apple Silicon).</LI>
<LI>Windows-10 with Visual C++ 14.29 (Visual Studio 2019).</LI>
</UL>
More verified and tested configurations (64 bits):
<UL>
<LI>Linux, gcc-9.3/10.2/11.2, clang-9/10/11</LI>
<LI>Linux, Intel-icc 2021.4</LI>
<LI>macOS 10.15 Catalina with Apple LLVM/Clang-12</LI>
<LI>macOS 11.6 Big Sur with Apple LLVM/Clang-12</LI>
</UL>
<P> </P>
<A NAME="2."></A>
<HR>
<!-- ============================================== -->
<H2>2. Supported CLHEP and VecGeom versions</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.5.1</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.<BR>
A configuration option allows a Geant4 installation to use the
<A HREF="https://gitlab.cern.ch/VecGeom/VecGeom/">VecGeom Library</A>
primitives, to replace the original Geant4 solids. VecGeom version
<B>1.1.18</B> is required when using such configuration.
<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>Simplified G4String interfaces and implementation with C++11/17.
Removed obsolete/std::string synonym member functions and deprecated
non-std::string member functions, replacing with new free functions in
G4StrUtil namespace. Might require user code adaptation where G4String
functions are explicitly used; for details see
<A HREF="#string-migration-notes">Section 10</A> of this document.</LI>
<LI>Major update the G4PhysicsVector and related classes; introduced new public
access methods; removed obsolete unused methods; introduced possibility to
use different Spline methods.</LI>
<LI>Removed deprecated classes G4LPhysicsFreeVector and G4PhysicsLnVector;
redirect G4PhysicsOrderedFreeVector to G4PhysicsFreeVector.</LI>
<LI>New version of G4PhysicsModelCatalog, the catalog of physics models.
Introduced a modelID (a unique integer for each physics model, with close
values for similar/related physics models), besides an index (the position
in a vector) and the name (string) of the model. The main difference with
respect to the previous version is that the three identifiers of each
physics model - modelID, index and name - must stay constant and the same
for all applications, physics lists and future versions of Geant4.</LI>
<LI>C++17 is the minimum ISO C++ Standard required to compile Geant4 and all
applications using it.</LI>
<LI>Multithreading support is now enabled in the build of Geant4 by default.</LI>
<LI>CMake 3.16 is the minimum version required to build Geant4.</LI>
</UL>
<B>Analysis</B>
<UL>
<LI>Major revision in analysis classes. Migration to G4ThreadLocalSingleton
in all specific analysis manager and reader classes. The singleton instances
are now deleted by the Geant4 kernel; their explicit deletion in client code
has to be removed.</LI>
<LI>New G4AnalysisReader.hh header, defining G4AnalysisManager as
G4GenericAnalysisManager; G4GenericAnalysisManager can handle all supported
file formats, so file names should be provided with an extension (.csv,
.hdf5, .root or .xml). To continue using file names without extensions,
users can set the default file type using the new function
SetDefaultFileType(...). Output specific headers have been removed.</LI>
<LI>Also removed g4analysis.hh header with the G4Analysis::MasterInstance()
factory method.</LI>
<LI>Added new G4VAnalysisReader public function CloseFiles() to be called by
user before the end of program and its implementation for all readers.</LI>
</UL>
<P> </P>
<B>Geometry, Fields and Transportation</B>
<P> </P>
<UL>
<LI>Removed deprecated accessors in G4Sphere and G4Tubs.</LI>
<LI>G4[Partial]PhantomParameterisation: renamed Get/SetNoVoxel*() accessors
to Get/SetNoVoxels*() for coherence. Might imply user code migration.</LI>
</UL>
<P> </P>
<B>Electromagnetic and optical physics</B>
<P> </P>
<UL>
<LI>G4EmProcessOptions class has been removed. Adaptation of custom user made
physics-lists may be required.</LI>
<LI>Removed deprecated material properties for G4Scintillation. Now
the "enhanced" time constants of version 10.7 are the only way to specify
scintillation properties.</LI>
<LI>Added protection against typos in material property names. To create a
user-defined material property (or material constant property), add the
<TT>createNewKey=true</TT> argument to <TT>Add(Const)Property()</TT>.</LI>
<LI>Removed redundant optical UI commands.</LI>
</UL>
<P> </P>
<B>Hadronic physics configuration</B>
<P> </P>
<UL>
<LI>Constructors for inelastic processes have changed signature, as well
as for elastic and inelastic cross-sections.<BR>
This affects the internal configuration in physics-lists.
See the details in <A HREF="#hadronic-migration-notes">Section 10</A>
of this document, for the required adaptations in <I>custom</I>
physics-lists.</LI>
<LI>Deprecated environmental variables used in NeutronHP, ParticleHP and
Radioactive Decay have been removed: they have been replaced by equivalent
UI commands (already introduced in previous versions).</LI>
</UL>
<P> </P>
<B>Visualization and Modeling</B>
<P> </P>
<UL>
<LI>As of this release, the recommended and supported Open Inventor driver
will be the Qt-based one (OIQt viewer option). The Xt/Xm drivers (OIX,
OIXE) are still available but are deprecated and will be removed in the
next release.</LI>
<LI>Qt drivers require the Qt-5 platform. Qt-6 is not yet supported.</LI>
<LI>The G4VModel interface has been simplified. Responsibility for transformation
and extent has been delegated to individual models. For example, there is no
longer a method G4VModel::GetTransformedExtent(), the concrete model is
required to maintain the extent depending on the transformation (if any) and
a simple GetExtent() returns the current extent.</LI>
</UL>
<P> </P>
<B>Data Sets</B>
<P> </P>
<UL>
<LI>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-8.0, G4PARTICLEXS-4.0</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.4</TT> is required, and can be optionally
downloaded in addition.</LI>
</UL></LI>
</UL>
<A NAME="4."></A>
<HR>
<!-- ============================================== -->
<H2>4. New Developments and Capabilities </H2>
<B>General</B>
<UL>
<LI>Tasking system, based on PTL (Parallel Tasking Library) v2.0.0, is set
as default parallelism scheme for multi-threading. A dedicated run manager
(G4TaskRunManager) and factory (G4RunManagerFactory) are provided,
enabling use of tasks for the event loop.
The tasking system is fully compatible with Intel TBB, which can be
selected if GEANT4_USE_TBB=ON is specified when configuring CMake. The
default behavior for tasking is to submit the tasks to an internal
thread-pool and task-queue.</LI>
<LI>New G4SteppingVerboseWithUnits class, an alternative to G4SteppingVerbose
with printout of proper units. Simplified way of defining a user-specific
stepping verbose, that is now common to all sequential, MT and tasking
modes.</LI>
<LI>Introducing G4VTrackingManager, an interface for custom tracking
managers specialized for one or a small number of particle types.
Custom tracking manager is used in G4VUserPhysicsList, if registered.
G4EventManager hands over tracks to custom tracking manager, if registered
for the particle.</LI>
<LI>Added new Ranlux++ engine to the list of supported random engines.</LI>
<LI>G4String provides a new <TT>G4StrUtil</TT> namespace with functions for
simple string manipulation, including left/right stripping, case
conversion, and searching.</LI>
</UL>
<B>Analysis</B>
<UL>
<LI>New public functions G4VAnalysisManager::Reset() and Clear() allowing
resetting and deleting all allocated analysis objects and clearing
their collections.</LI>
<LI>Added support for n-tuple columns of string vectors via new public
functions in G4VAnalysisManager and G4VAnalysisReader</LI>
<LI>Implemented support for file system directories with Csv output. The
histogram and n-tuple files are saved in directories, if their names are
set and if the directories exist in the file system.</LI>
</UL>
<B>Digitization, Hits & Scoring</B>
<UL>
<LI>Extended cylindrical scoring mesh to tube and tube segment.</LI>
</UL>
<B>Geometry and Field</B>
<UL>
<LI>Added maps for faster search based on name in solids, regions and
volumes stores.</LI>
<LI>Enabled use of alternative G4VoxelNavigation class, allowing the possibility
to use alternative navigation algorithms for voxelised/optimised geometries.</LI>
<LI>Added new example demonstrating interface with VecGeom navigator (Beta).</LI>
</UL>
<B>Materials</B>
<UL>
<LI>Revised and updated G4Exceptions in G4Material, now providing more complete
information and better diagnostics.</LI>
<LI>Updated G4Material: use const pointers to G4Elements where needed.</LI>
<LI>New class G4OpticalMaterialProperties, a store for optical material properties
and allow use of predefined optical material properties.</LI>
<LI>In G4MaterialPropertiesTable, the use of <TT>std::vector</TT> for material
properties and material const properties, rather than <TT>std::map</TT>,
eliminates the need to find the map entry.</LI>
</UL>
<B>Electromagnetic physics</B>
<UL>
<LI>General code cleanup in EM modules; removed obsolete models and processes,
removed G4EmProcessOptions class.</LI>
<LI>Updates to G4GammaGeneralProcess: exclude gamma-nuclear from the 2<SUP>nd</SUP>
energy area.</LI>
<LI>Fixed model per region definition for all base processes G4VEmProcess,
G4VMultipleScattering, G4VEnergyLossProcess; removed sub-cut facility
for energy loss processes but left G4VSubCutProducer interface.</LI>
<LI>Updated EM integral approach by introduction of a cross-section shape type
including cross-section shape with 2 maxima.</LI>
<LI>Reviewed EM part of G4PhysicsModelCatalog to adopt new numbering convention.
Created new enum for low-energy electromagnetic process sub-types.</LI>
<LI>Updated G4UrbanMscModel to not apply energy correction at small steps
below 1% of a particle range.</LI>
<LI>G4VEmFluctuationModel: changed interface; both cut value and max energy
transfer are parameters of main methods.</LI>
<LI>In G4UniversalFluctuation, substantially simplified sampling algorithm
for faster computation.</LI>
<LI>Updated Livermore models to use EPICS2017 data.</LI>
<LI>Included new PIXE data libraries following ANSTO recommendations.</LI>
<LI>New data structure for ICRU73 and ICRU90 ion stopping power data shared
between threads and used in G4LinhardSorensenIonModel.</LI>
<LI>Implement and use base material approach only if base materials are defined,
this should bring a minor speedup of the code and little reduction of memory.</LI>
<LI>Enable synchrotron radiation only for electrons, positrons, muons, protons,
and anti-protons.</LI>
<LI>Introducing quantum entanglement of e+ annihilation. Currently implemented
only in G4eplusAnnihilation and G4LivermorePolarizedComptonModel.</LI>
<LI>New class G4OpticalMaterialProperties, a store for optical material
properties and allow use of predefined optical material properties.</LI>
<LI>Added new IRT-syn model for DNA.</LI>
</UL>
<B>Hadronic physics</B>
<UL>
<LI>General code clean-up in hadronic processes and models; removed obsolete
and deprecated classes; removed obsolete "rpg" model.</LI>
<LI>Introduced a new threshold parameter in radioactive-decay for analogue mode
to kill very long radioactive decays at rest of nuclides happening later
than such threshold.</LI>
<LI>Introduced six light hypernuclei and their corresponding antiparticles
(for the time being, only electromagnetic interactions of these particles
are available, but switched off by default).</LI>
<LI>Extended the interface of hadronic models for projectile hypernuclei and
anti-hypernuclei (but not yet hadronic physics for these particles).</LI>
<LI>Added implementation of hypercluster emission in INCLXX.</LI>
<LI>Extended interface of the Fritiof (FTF) string model to get the number of
projectile/target spectator nucleons, number of nucleon-nucleon collisions
and impact parameter (see example <TT>Hadr09</TT>).</LI>
</UL>
<B>Physics Lists</B>
<UL>
<LI>Updated physics lists to use a uniform approach for verbosity.</LI>
<LI>Electromagnetic physics for light hypernuclei (switched off by default)
can be enabled on top of any Physics Lists via C++ interface
(<TT>G4HadronicParameters::Instance()->SetEnableHyperNuclei(true)</TT>).</LI>
<LI>ANSTO data option for atomic de-excitation can be enabled on top of any
physics lists using C++ interface or better via UI command.</LI>
<LI>EPICS2017 parameterisations for Livermore gamma processes can be enabled.</LI>
<LI>Positron anihilation to the tau pair can be enabled.</LI>
<LI>LinhardSorensenIonModel is available with G4EmStandardPhysicsWVI
constructor.</LI>
</UL>
<B>Visualization and Interfaces</B>
<UL>
<LI>New ToolsSG (TSG) visualisation package based on g4tools, providing four
new (mutually exclusive) visualisation drivers: TOOLSSG_X11_GLES,
TOOLSSG_WINDOWS_GLES, TOOLSSG_XT_GLES and TOOLSSG_QT_GLE.</LI>
<LI>New VtkQt and VtkNative visualisation drivers.</LI>
<LI>Introducing in-app plotting with visualization and related UI command.</LI>
<LI>Introducing G4Mesh, a light class that encapsulates and validates
visualisation of a nested parameterisation.</LI>
<LI>Extended G4UIWin32 driver with new features.</LI>
<LI>Revised all visualisation models, to have G4PhysicalVolumeModel taking
care of the transformation of any primitives that it generates.</LI>
<LI>Removed obsolete network visualisation options for VRML driver
and FukuiRenderer driver.</LI>
<LI>Removed obsolete GAG/Gain/MOMO and HepRep(WIRED) modules/driver.</LI>
<LI>Removed deprecated functions in visualization.</LI>
</UL>
<B>Examples</B>
<UL>
<LI><B>CaTS</B> - New application implementing a flexible and extendable
framework for the simulation of calorimeter and tracking detectors.
It also demonstrates how to use
<A HREF="https://bitbucket.org/simoncblyth/opticks.git">Opticks</A>
for the creation and propagation of optical photons.</LI>
<LI><B>pythia/py8decayer</B> - New example demonstrating how to outfit
Pythia8-based decay features to those resonances in Geant4 where decay
tables are not implemented by default. In addition, it shows how to
replace existing Geant4 decay tables to such resonances as <TT>tau+/-</TT>
or <TT>B+/-</TT> with the Pythia8-based ones.</LI>
<LI><B>geometry/VecGeomNavigation</B> - New example demonstrating integration
of VecGeom navigation, based on the prototype package G4VecGeomNav, being
integrated in the example at build time.</LI>
<LI><B>hadronic/Hadr05</B> - New example demonstrating how to collect energy
deposition in a sampling calorimeter and how to survey energy flow.</LI>
<LI><B>hadronic/Hadr10</B> - New hadronic example aimed to exercise the decay
of tau leptons, as well as charmed and bottom hadrons.</LI>
<LI><B>parameterisations/Par04</B> - New example demonstrating how to use the
Machine Learning (ML) inference to create energy deposits as a fast
simulation model using ONNX runtime and LWTNN libraries.</LI>
<LI><B>runAndEvent/RE07</B> - New example demonstrating how to register
specialized tracking managers for a particle or a set of particles.</LI>
</LI><LI><B>dna/AuNP</B> - New example simulating the track-structure of electrons
in microscopic gold volume. Also simulating that in liquid water
medium surrounding the gold volume.</LI>
<LI><B>dna/scavenger</B> - New example showing how to activate the scavenging
process in chemistry using the deterministic treatment of the IRT
model.</LI>
<LI><B>visualization/movies</B> - New example illustrating how to make a movie
with <TT>/vis/viewer/save</TT> and <TT>/vis/viewer/interpolate</TT> UI
commands.</LI>
</UL>
<A NAME="5."></A>
<HR>
<!-- ============================================== -->
<H2>5. Expected effects on physics and computing performance</H2>
<B>Geometry</B>
<UL>
<LI>Use G4Allocator to dynamically allocate nodes and proxies for the voxels
optimisation structure. Should help reducing memory fragmentation.</LI>
</UL>
<B>Electromagnetic physics</B>
<UL>
<LI>Expected few % speed-up for EM simulations. Stable results for calorimeters
compared with the previous versions 10.6 or 10.7.</LI>
</UL>
<B>Hadronic physics</B>
<UL>
<LI>Stable results with respect to version 10.7 are expected in general for
all hadronic physics observables, in particular for hadronic showers
in calorimeters.</LI></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.<BR>
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><U>CMake</U>
<UL>
<LI>Updated minimum required CMake version to 3.16, with 3.16 to 3.21
as confirmed working range.</LI>
<LI>Updated default build settings, GEANT4_BUILD_MULTITHREADED is now
set ON by default.</LI>
<LI>Updated default build settings, GEANT4_BUILD_BUILTIN_BACKTRACE is now
set ON by default.</LI>
<LI>Deprecated use of GEANT4_BUILD_CXXSTD in favour of CMAKE_CXX_STANDARD
to choose C++ Standard to compile against.</LI>
<LI>Requiring C++17 as minimum standard to compile Geant4.</LI>
<LI>Added support for compilation against C++23 with CMake 3.20 and newer
(note that Geant4 is not yet tested or supported using C++23).</LI>
<LI>Removed obsolete -stdlib flag for AppleClang.</LI>
<LI>Added preliminary support for sanitizer builds with advanced option
GEANT4_BUILD_SANITIZER to allow selection of one of address, thread,
or undefined sanitizer. The default is no sanitization.
Adds appropriate flags to CMAKE_CXX_FLAGS.</LI>
<LI>Removed settings of deprecated PHP_AS_HP environmental variable.</LI>
<LI>Removed obsolete GEANT4_USE_SYSTEM_CLHEP_GRANULAR option.</LI>
<LI>Updated CLHEP minimum required version to 2.4.5.1.</LI>
<LI>Updated VecGeom minimum required version to 1.1.18 for optional
build with VecGeom solids.</LI>
<LI>Updated builtin PTL module to version v2.0.0.</LI>
<LI>Added GEANT4_USE_PTL_LOCKS option to configure builtin PTL with mutex
locking in task subqueues.</LI>
<LI>Added GEANT4_USE_TOOLSSG option for enabling new ToolsSG visualisation
driver and selecting the backend (X11, Motif, Qt, or Windows).</LI>
<LI>Added GEANT4_USE_VTK advanced option for enabling new experimental
VTK based visualisation driver.</LI>
<LI>Removed all references to obsolete Wt visualisation driver and
dependencies.</LI>
<LI>Removed obsolete options for VRML and FukuiRenderer network/sockets
visualisation drivers.</LI>
<LI>Added FindPythia8.cmake script for use in examples.</LI>
<LI>Removed obsolete FindAIDA.cmake module, no longer used in examples.</LI>
<LI>Added geant4.bat, geant4-config.cmd prototypes for setting up
environment variables and querying a Geant4 install on Windows.</LI>
<LI>Added XercesC library directory to Linux LD_LIBRARY_PATH for GNUmake.</LI>
<LI>Updated CPack source packaging, including standardisation of naming
following open source conventions and use XZ compression instead of
BZIP.</LI>
<LI>Updated data-sets versions.</LI>
</UL></LI>
<LI><U>GNUMake</U>
<UL>
<LI>Moved default to C++17 Standard.</LI>
<LI>Updated compiler/link flags for migration of g4tools to externals
category.</LI>
<LI>Added comctl32.lib to UI32LIBS for WIN32-VC configuration.</LI>
<LI>Updated default Qt5 include paths for Linux targets.</LI>
<LI>binmake.gmk: removed include path to "rpg" hadronic model, now retired.
Removed include paths to <TT>hadronic/models/management</TT>
and <TT>hadronic/models/util</TT> modules, now retired.</LI>
<LI>Removed obsolete network visualisation options for VRML driver
and FukuiRenderer driver.</LI>
<LI>Removed obsolete GAG/Gain configuration.</LI>
<LI>Removed no longer needed link to libXi in all configurations.</LI>
<LI>Check for existence of lib64 directory for Xerces-C on Linux.</LI>
<LI>Add 'c' flag to ar to suppress diagnostics going to stderr.</LI>
</UL></LI>
</UL>
<A NAME="ana-notes">
<H3><I>Analysis</I></H3></A>
<UL>
<LI>Migration to G4ThreadLocalSingleton in all specific analysis manager
and reader classes. The singleton instances are now deleted by the Geant4
kernel; their explicit deletion in client code has to be removed.</LI>
<LI>Added public function G4VAnalysisManager::Clear() that deletes all allocated
analysis objects and clears their collections. This function should be used
as a replacement for deleting the analysis manager in the applications that
allocate the analysis data in begin of run and deleted the analysis manager
in end of run.</LI>
<LI>Added public function G4VAnalysisManager::Reset(), needed when calling files
are closed without reset by calling CloseFile(false) from the analysis
manager, see <TT>basic/exampleB5</TT> with interactive plotting.</LI>
<LI>Added support for n-tuple columns of string vectors via new public
functions in G4VAnalysisManager and G4VAnalysisReader.
Added support for Xml, Hdf5 output types: added helper code for Xml
reader, no update needed for Hdf5.</LI>
<LI>Implemented support for file system directories with Csv output
as proposed in
<A HREF="https://github.com/Geant4/geant4/pull/32">GitHub PR #32</A>.</LI>
<LI>Fixed reading objects from files with directories (Root, Hdf5).</LI>
<LI>Implemented missing WriteOnAscii() for h2,h3,p1,p2.</LI>
<LI>Added new G4ToolsAnalysisManager::IsEmpty() function.
<LI>Added new G4VAnalysisReader public function CloseFiles() to be called by
user before the end of program and its implementation for all readers.</LI>
<LI>Replaced the explicit Write[Hn|Pn] functions in the analysis managers
by a common implementation in G4ToolsAnalysisManager::WriteImpl() and
Merge() using the new Hn file manager classes introduced for the generic
file manager. The same code is now used for writing histograms/profiles
by specific analysis managers and the generic analysis manager.</LI>
<LI>Replaced the explicit Read[Hn|Pn] functions in the analysis readers
by a common implementation in G4ToolsAnalysisReader using the newly
introduced Hn file manager classes for reading.</LI>
<LI>Separated Hn/Pn object file handling from output specific analysis readers
in Hn file manager classes for reading (G4XHnRFileManager).</LI>
<LI>Separated ReadNtuple functions from the analysis readers in
the RNtuple manager classes.</LI>
<LI>Added G4ToolsAnalysisMessenger that implements "get" commands
<TT>/analysis/hn|pn/get id</TT>.</LI>
<LI>Reimplemented utility functions GetBaseName(), GetExtension() using
<TT>filesystem</TT> library.</LI>
<LI>Removed 'isMaster' argument from managers/reders constructors, and retrieve
this info from G4Threading where needed.</LI>
<LI>Simplified calls to G4Exceptions: added G4Analysis::Warn() and changed the
calls to G4Exception in all analysis classes (except accumulables); reduced
exception classification to: Analysis_F001 (Fatal exceptions) and
Analysis_W001 (Warnings).</LI>
<LI>Simplified verbosity messages, plus more simplifications in warning calls.</LI>
<LI>Use fonts from tools in G4PlotManager.</LI>
<LI>Use G4StrUtil functions replacing deprecated G4String member functions.</LI>
<LI>Removed CMake -DTOOLS_USE_EXPAT definition, no longer needed.</LI>
<LI>Removed <TT>default</TT> in switch for GetMergeFunction() to prevent
accidental fall through on Windows.</LI>
<LI>Code clean-up: review of static data members; changed <TT>static const</TT>
to <TT>static constexpr</TT> where possible or <TT>inline static const</TT>
otherwise (for G4String); declare static data members inline and moved
their initialization in header file. Removed redundant includes and
consistency fixes. Moved data members initialization in header files;
added deleted default constructor where appropriate; added <TT>explicit</TT>
keyword to one argument constructors where missing and removed from
constructors with more than 1 parameters; use brace data members
initialization everywhere. Replaced some constants with <TT>constexpr</TT>.
Replaced G4Analysis::make_unique with <TT>std::make_unique</TT>.
Using more shared pointers. Using <TT>[[maybe_unused]]</TT> where
appropriate. Fixed Coverity issues.</LI>
<LI>Applied clang-tidy performance fixes: use of <TT>const auto&</TT>,
<TT>std::move</TT> where appropriate; revisited passing by
<TT>std::shared_ptr</TT>. Use <TT>make_unique, nullptr, auto,
emplace_back, using</TT>; use of <TT>default</TT> for disabled constructors
and destructors and <TT>delete</TT> for private member functions not
implemented.</LI>
<LI>Removed deprecated g4csv.hh, g4hdf5.hh, g4root.hh, g4xml.hh headers.</LI>
<LI>Reduced output specific type definitions in g4xyz_defs.hh to ntuple end
rntuple types.</LI>
<LI>Removed g4analysis.hh with the G4Analysis::MasterInstance() factory method.</LI>
<LI>Removed the default value ("root") for the default file type in
G4GenericAnalysisManager; the default must be set by user if using fileNames
without extensions.</LI>
<LI>Moved g4tools to externals category. Moved "fonts" directory and install
logic to g4tools package in externals, as prime interface to Freetype.</LI>
<LI>Fix in G4MPIToolsManager: do not call Receive() twice.</LI>
<LI>Fixed compilation errors in G4CsvAnalysisReader and G4XmlAnalysisReader
occurring with C++20 enabled.</LI>
<LI>Fixed evaluation of result of deleting empty file in G4RootAnalysisManager,
causing wrong warnings.</LI>
<LI>Minor fixes: do not issue same log messages from generic analysis manager
and generic file manager; do not call SetIsEmpty() twice in Hdf5.</LI>
<LI>Fixed G4*RFileManager destructors.</LI>
<LI>Implemented handling directories in Generic analysis manager.</LI>
</UL>
<A NAME="digits-notes">
<H3><I>Digitization & Hits</I></H3></A>
<UL>
<LI>Extending cylindrical scoring mesh to tube and tube segment.
Fixed indexing of cylindrical scoring mesh commands;
addressing problem report
<A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2418">#2418</A>.</LI>
<LI>Make sure probe commands are not unnecessarily broadcasted to the worker
threads.</LI>
<LI>Updated G4TScoreHistFiller according to changes in the analysis category;
removed deletion of the analysis manager, now done by the Geant4 kernel.</LI>
<LI>G4VScoringMesh: corrected warning messages when the size or number of
bins have already been set but tried to change.</LI>
<LI>Updated G4TScoreNtupleWriter according to changes in the analysis category;
removed deletion of the analysis manager, now done by the Geant4 kernel.
Added default type and its setter.</LI>
<LI>Use <TT>std::string</TT> member functions from G4String in place of synonyms.
Use G4StrUtil functions replacing deprecated G4String member functions.</LI>
<LI>Code formatting.</LI>
</UL>
<A NAME="emstd-notes">
<H3><I>Electromagnetic Processes</I></H3></A>
<UL>
<LI><B>Adjoint</B>:
<UL>
<LI>General code cleanup: applied clang-format style guidelines;
applied C++11 codewords to method declarations (virtual, override,
explicit); deleted unused variables and methods; started naming class
member variables with <TT>f</TT>; use <TT>nullptr</TT> instead of
<TT>0</TT>; removed unused headers; use constexpr for numbers.
Use <TT>virtual</TT> and <TT>override</TT> methods consistently; member
variables start with <TT>f</TT>; shorten long names; removed
unused variables; make class variables local where appropriate; order
declarations of class variables; define class variables; removed unused
functions; marked copy/assignment operators as <TT>delete</TT>; added
ProcessDescriptions; removed ChangeHistory from top of code;
use <TT>CLHEP::twopi</TT> instead of hardcoded value; removed more unused
headers.</LI>
<LI>G4AdjointForcedInteractionForGamma: improved forced interaction for
gamma reverse tracking in thick shielding.</LI>
<LI>G4AdjointhIonisationModel: updated weight correction to limit
dependence of proton dose results on cut in range.</LI>
<LI>G4ContinuousGainOfEnergy: use updated signature for ion ionisation.</LI>
<LI>G4AdjointCSManager: updated interfaces to G4PhysicsVector.</LI>
<LI>Fixed coverity warnings in G4AdjointCSManager and G4VEMAdjointModel.</LI>
<LI>Free resources in destructors.</LI>
</UL></LI>
<LI><B>DNA</B>:
<UL>
<LI>Added IRT-syn model.</LI>
<LI>Added new models: G4DNADiracRMatrixExcitationModel,
G4DNAQuinnPlasmonExcitationModel, G4DNARelativisticIonisationModel and
G4DNAPlasmonExcitation.</LI>
<LI>Added G4VDNAMolecularGeometry, a virtual class for DNA geometry.</LI>
<LI>Added new mesoscopic model for DNA chemistry.</LI>
<LI>Updates in G4DNAIRT, G4DNAIRTMoleculeEncounterStepper,
G4ITModelProcessor, G4Scheduler and G4DNAMolecularReactionTable
classes, and fixed sub-modules dependencies.</LI>
<LI>Modified G4DNAELSEPAElasticModel for gold material.</LI>
<LI>G4DNAElectronHoleRecombination: dissociation channel of electron-hole
recombination moved to G4EmDNAChemistry, _option1, _option2, _option3.</LI>
<LI>G4DNAWaterDissociationDisplacer: added the fragment displacement for
new dissociation channel.</LI>
<LI>Replaced hardwired process-sub-types with enum values introduced in the
new class G4LowEnergyEmProcessSubType.</LI>
<LI>Updated PrintGeneratorInformation() method signature in G4DNABornAngle
and G4DNARuddAngle.</LI>
<LI>G4DNABohrExcitationModel2, G4DNABohrIonisationModel2, G4VLEPSModel:
updated interfaces to G4PhysicsVector.</LI>
<LI>Fixed initialization error in G4DNAELSEPAElasticModel.</LI>
<LI>Fixed compilation error in G4ITMultiNavigator when compiling with C++20
enabled.</LI>
<LI>Fixed dependency on g4tools, now moved to externals module.</LI>
</UL></LI>
<LI><B>High Energy</B>
<UL>
<LI>G4eeToHadrons: updated integral type.</LI>
<LI>Code clenup: clean-up of interfaces; removed unused headers;
improved initialisation.</LI>
<LI>G4hBremsstrahlungModel: added header.</LI>
<LI>G4hhIonisation: removed G4BohrFluctuations.</LI>
<LI>G4AnnihiToMuPair: return DBL_MAX if below threshold energy; keep pointer
to G4LossTableManager for correct de-registration in the MT mode; added
option of tau+tau- pair production; optimized computation of
cross-sections in compounds; added process sub-type via enumerator.</LI>
<LI>G4mplIonisationModel, G4mplIonisationWithDeltaModel: updated according to
change of G4VEmFluctuationModel signature.</LI>
</UL></LI>
<LI><B>Low Energy</B>
<UL>
<LI>Updated Livermore models to use EPICS2017 data.</LI>
<LI>Included new PIXE data libraries following ANSTO recommendations.
Added new classes to model the ANSTO ECPSSR cross-sections for protons
and alpha particles. Added option to activate the ANSTO fluorescence
radiation yield (<TT>Z < 93</TT>).</LI>
<LI>G4LivermorePolarizedComptonModel: added quantum entanglement of e+
annihilation. If the photons have been "tagged" as "quantum-entangled",
for example by G4eplusAnnihilation for annihilation into 2 photons, they
are "analysed" if and only if both photons suffer Compton scattering.
Theoretical predictions from: Pryce and Ward, Nature N.4065 (1947) p.435,
and Snyder et al, Physical Review 73 (1948) p.440. Experimental
validation in: "Photon quantum entanglement in the MeV regime and its
application in PET imaging", D. Watts, J. Allison et al., Nature
Communications (2021)12:2646.
The implementation of entanglement is described in extensive comments
in G4LivermorePolarizedComptonModel source.</LI>
<LI>Migrated Spline treatment for all physics vectors.</LI>
<LI>G4LivermorePolarizedRayleighModel: read data from $G4LEDATA/livermore
directory. Code clean-up.</LI>
<LI>Removed unused classes G4LivermoreGammaConversionModelRC and
G4LivermoreComptonModifiedModel.</LI>
<LI>Convert G4LPhysicsFreeVector into G4PhysicsFreeVector.</LI>
<LI>Removed obsolete unused classes G4BremsstrahlungCrossSectionHandler,
G4BremsstrahlungParameters, G4eBremsstrahlungSpectrum, G4hSRIM2000p,
G4PhotoElectricAngularGeneratorSimple, G4MicroElecInelastic_new,
G4LivermorePolarizedPhotoElectricModel and
G4LivermorePolarizedPhotoElectricGDModel.</LI>
<LI>G4MicroElecLOPhononModel: removed debug printout; rename member of
class.</LI>
<LI>G4MicroElecSurface: replaced hardwired process-sub-type 25 with (already
existing) <TT>fSurfaceReflection</TT>.</LI>
<LI>G4MicroElecElastic, G4MicroElecLOPhononScattering, G4MicroElecInelastic:
replaced hardwired process-sub-types 51 and 53 with new enum values
<TT>fLowEnergyElastic</TT> and <TT>fLowEnergyIonisation</TT>.</LI>
<LI>Improved management of array in G4PenelopeGammaConversionModel.</LI>
<LI>Replaced std::map with static arrays in the G4Penelope models for
performance improvements.</LI>
<LI>Removed obsolete PrintInfo() methods and self defined process SubType.</LI>
<LI>G4IonParametrisedLossModel: use updated signature for ion ionisation.</LI>
<LI>Updated PrintGeneratorInformation() method signature for few angular
generators.</LI>
<LI>G4PenelopeBremsstrahlungAngular, G4PenelopeBremsstrahlungFS,
G4PenelopeCrossSection, G4JAEAElasticScatteringModel,
G4JAEAPolarizedElasticScatteringModel: use optimal methods of
G4PhysicsVector.</LI>
<LI>G4LivermorePolarizedComptonModel: migrated to the new version of
G4PhysicsModelCatalog.</LI>
<LI>G4AugerData: removed dead code.</LI>
<LI>G4VCrossSectionHandler, G4eIonisationParameters: use const pointers to
G4Element.</LI>
<LI>General code cleanup: use G4 types; cleanup of headers and Penelope
models.</LI>
</UL></LI>
<LI><B>Muons</B>
<UL>
<LI>General code clean-up: use C++11 keywords, improved comments, format
files.</LI>
<LI>G4EnergyLossForExtrapolator, G4ErrorEnergyLoss, G4TablesForExtrapolator:
provide thread-safe initialisation of internal tables; guarantee
initialisation only once; size of tables depend only on number of
materials.</LI>
<LI>G4MuIonisation: removed obsolete G4BohrFluctuations header.</LI>
<LI>G4MuPairProduction, G4ePairProduction, G4MuBremsstrahlung: disabled
Spline interpolation by default.</LI>
<LI>G4MuPairProduction, G4MuBremsstrahlung, G4MuBremsstrahlungModel:
improved initialisation.</LI>
<LI>Updated PrintGeneratorInformation() method signature in G4ModifiedMephi.</LI>
</UL></LI>
<LI><B>Pii</B>
<UL>
<LI>Use const pointer to G4Element according to recent changes in materials.</LI>
</UL></LI>
<LI><B>Polarisation</B>
<UL>
<LI>General code cleanup: name classes in logical manner; improved comments;
added ProcessDescription; ordered #includes and removed unused; disabled
copy and assignment operators with <TT>delete</TT>; increased C++11 keyword
usage, especially <TT>override</TT>, <TT>explicit</TT>; renamed (most)
class variables to start with <TT>f</TT>; make SCRN arrays the correct size;
use <TT>constexpr</TT> for numbers; applied clang-format style; use
G4ExceptionDescription; avoid implicit conversions between G4StokesVector
and G4ThreeVector.</LI>
<LI>G4PolarizedIonisationBhabhaXS: removed incorrect G4Exception.</LI>
<LI>G4PolarizedAnnihilation, G4ePolarizedIonisation: improved initialisation
of assymetry tables.</LI>
<LI>G4PolarizedAnnihilation, G4PolarizedCompton: updated use of the Spline
flag.</LI>
</UL>
<LI><B>Standard</B>
<UL>
<LI>G4eplusAnnihilation: introducing Quantum Entanglement. This is activated
by UI command <TT>/process/em/QuantumEntanglement</TT>. For e+e- -> gamma
gamma, the gammas are "tagged" here and must be "analysed" in a Compton
scattering process - see, for example, G4LivermorePolarizedComptonModel.
Otherwise entanglement has no effect even if activated.
Instantiate clipboard only if Quantum Entanglement is requested.</LI>
<LI>G4PAIModelData, G4eplusTo2GammaOKVIModel: corrected initialisation of
physics vectors.</LI>
<LI>G4LindhardSorensenData: updated definition of Spline flag.</LI>
<LI>G4CoulombScattering, G4eBremsstrahlung, G4eplusAnnihilation: updated set
of flags for Spline and the integral approach.</LI>
<LI>Removed obsolete classes G4BohrFluctuations and
G4HeatedKleinNishinaCompton.</LI>
<LI>G4BetheBlochModel, G4BraggIonModel, G4LindhardSorensenIonModel,
G4ICRU73QOModel, G4AtimaIonIonisationModel: changed interface to ion
ionisation corrections.</LI>
<LI>G4BraggModel, G4BraggIonModel: set lowest energy to <TT>0.25 keV</TT>;
added protection to limit cut value by the lowest energy.</LI>
<LI>G4BraggIonModel, G4BetheBlochModel, G4ionIonisation clean-up. Improved
implementation of corrections to ion stopping powers: do not apply
corrections at the last step of an ion; do not apply corrections to
alpha.Addressing problem report
<A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2440">#2440</A>.</LI>
<LI>G4PairProductionRelModel: reduced upper limit of parameterisation
cross-section from 80 to 30 <TT>GeV</TT>.</LI>
<LI>G4LindhardSorensenIonModel: use G4BraggIonModel, G4BetheBlochModel and
G4IonICRU73Data, do not apply corrections at the last step of an ion.</LI>
<LI>G4IonICRU73Data: new data structure for ion ionisation data.</LI>
<LI>G4LinhardSorensenIonModel, G4ICRU73QOModel: added protection to limit cut
value by the lowest energy.</LI>
<LI>G4eplusAnnihilation: migrated to the new version of G4PhysicsModelCatalog.</LI>
<LI>G4PAIModelData: use optimal methods to access G4PhysicsVector.</LI>
<LI>G4UniversalFluctuation, G4IonFluctuations, G4AtimaFluctuations, G4PAIModel,
G4PAIPhotModel: updated according to new G4VEmFluctuationModel signature.
Minor optimisation and code clean-up in G4UniversalFluctuation.</LI>
<LI>G4UrbanMscModel: do not apply energy correction at small steps below 1% of
a particle range. Use random arrays instead of flat() method to speedup the
code; use more const variables.</LI>
<LI>G4UniversalFluctuation: substantially simplified sampling algorithm,
smaller number of parameters, faster computations; results are in
statistical agreement with the previous version of the code.</LI>
<LI>G4PEEffectFluoModel: optimised cross-section computation with reciprocals
and Horners scheme.</LI>
<LI>G4BraggIonModel: fixed computation of dedx for alpha if
ICRU90 data are used. Improved method signatures and code cleanup.</LI>
<LI>G4hIonisation, G4ionIonisation: He3 dedx derived from alpha dedx;
pi, K, proton, pbar, GenericIon have their own dedx and other tables;
other hadrons derived from K, protons, pbar; ions derived from GenericIon.</LI>
<LI>G4ionIonisation: use G4WaterStopping with Spline enabled.
Minor code clean-up.</LI>
<LI>G4ASTARStopping: improved method signatures.</LI>
<LI>G4BetheBlochModel, G4ESTARStopping, G4AtimaEnergyLossModel,
G4LindhardSorensenIonModel: fixed Coverity warnings by initialising all
variables in class constructors.</LI>
<LI>Removed obsolete G4alphaIonisation class.</LI>
<LI>Code clean-up of ionisation, energy loss processes and models.</LI>
<LI>Clean-up of gamma processes.</LI>
<LI>Requires data-set G4EMLOW-8.0.</LI>
</UL></LI>
<LI><B>Utils</B>
<UL>
<LI>G4VEmProcess, G4VEnergyLossProcess, G4EmTableType, G4EmBiasingManager,
G4LossTableManager: updated integral approach by introduction of a
cross-section shape type and different actions depending on the type;
added cache for cross-section and range; removed unused methods;
attempt to reduce number of <TT>if</TT> operators at run time; integral
and Spline flags are set to each process individually and not via
G4EmParameters class.</LI>
<LI>G4VEmProcess, G4VEnergyLossProcess, G4VMultipleScattering,
G4LossTableBuilder, G4VEmModel, G4VMscModel, G4LossTableManager:
implement and use base material approach only if base materials are defined,
this should bring a minor speedup of the code and little reduction of memory;
fixed problems for the case when materials are changed between runs.</LI>
<LI>G4VEmProcess, G4VEnergyLossProcess, G4VAtomDeexcitation, G4LossTableBuilder:
implemented updated numbering scheme for secondary particle production;
deprecated duplicate printout of processes and models; moved list of EM
parameters printout before printout on processes; improved code format.</LI>
<LI>G4VMultipleScattering: fixed problem observed by CMS for specific
physics list.</LI>
<LI>G4EmCorrections, G4VEmProcess: updated use of the Spline flag.</LI>
<LI>G4EmCorrections: do not use Spline in various internal vectors, as
correction values are small and smooth. Cleanup of ion correction
computations.</LI>
<LI>G4EmCorrections, G4LossTableBuilder: substitute use of deprecated
G4LPhysicsFreeVector by G4PhysicsFreeVector.</LI>
<LI>G4VEmProcess, G4VEnergyLossProcess, G4EmDataHandler: updated method
RetrievePhysicsTable().</LI>
<LI>G4TableType: added extra enumerator for type of cross-section shape.</LI>
<LI>G4EmProcessSubType: added new type for annihilation to tau pair.</LI>
<LI>G4LowEnergyEmProcessSubType: added new enum values, corresponding
to numerical values used in G4PhysicsListHelper.</LI>
<LI>G4LowEnergyEmProcessSubType: created new enum for low-energy
electromagnetic process sub-types.</LI>
<LI>G4EmElementSelector: change computation for upper energy limit, fixing
occasional crashes in some applications.</LI>
<LI>G4EmParameters: added ANSTO options for the atomic de-excitation; removed
obsolete AugerCascade() method.</LI>
<LI>G4EmParameters, G4EmParametersMessenger: removed obsolete methods; added
protection agains duplicate printout.</LI>
<LI>G4EmLowEParameters, G4EmLowEParametersMessenger: added ANSTO flag and UI
commands.</LI>
<LI>G4OpticalParameters: removed deprecated function declarations.</LI>
<LI>G4OpticalParameters, G4OpticalParametersMessenger: removed deprecated
optical commands and parameters. Replaced CreateDir() with new
G4UIdirectory(). Apply clang-format style guidelines.</LI>
<LI>G4VMultipleScattering: removed obsolete unused methods; reduced number
of operations at run time, use <TT>isIon</TT> flag for scaling of energy
limits for all particles with mass <TT>>1 GeV</TT>.</LI>
<LI>G4VEmModel removed "virtual" keyword for ComputeDEDX() method.</LI>
<LI>G4EmCalculator: fixed computation of dedx for He3 and alpha.
In G4VEnergyLossProcess, exclude ion corrections only from d, t, alpha.
Addressing problem report
<A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2440">#2440</A>.</LI>
<LI>G4ionEffectiveCharge: return back limit on effective charge from
0.5 to 1 as used in previous releases.</LI>
<LI>G4VEmAngularDistribution: added virtual method
PrintGeneratorInformation().</LI>
<LI>Fixed model per region definition for all base processes G4VEmProcess,
G4VMultipleScattering, G4VEnergyLossProcess; removed sub-cut facility
for energy loss processes; clean-up of parameters classes.</LI>
<LI>G4VEmModel, G4VEnergyLossProcess, G4EmCalculator: optimised signature
of the CorrectionsAlongStep() method; use more constant variables;
minor code optimisation.</LI>
<LI>G4VEmProcess, G4VEnergyLossProcess: fixed computation of cross-section
and range if base material approach is used.</LI>
<LI>G4VEmFluctuationModel: changed interface; both cut value and max energy
transfer are parameters of main methods.
Addressing problem report
<A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2390">#2390</A>.</LI>
<LI>G4VEnergyLossProcess, G4EmModelManager: adopted above interface change.</LI>
<LI>G4VEmProcess, G4VEnergyLossProcess, G4VAtomDeexcitation: migrated
to the new version of G4PhysicsModelCatalog.</LI>
<LI>G4LossTableBuilder: base material flag may be disabled.
Use updated interface to G4PhysicsVector.</LI>
<LI>G4EmElementSelector: change computation for corner cases.</LI>
<LI>G4EmParametersMessenger: correct default value for 'GeomFactor'.</LI>
<LI>Changed ANSTO parameters in UI interface commands.</LI>
<LI>Removed obsolete G4EmProcessOptions class.</LI>
<LI>G4LossTableBuilder: fixed debug printout.</LI>
<LI>G4VMscModel: improved printout.</LI>
<LI>G4VEnergyLossProcess: code cleanup for ions.</LI>
<LI>General code cleanup; removed obsolete methods and members;
reorganized class members.</LI>
</UL>
<LI><B>Xrays</B>
<UL>
<LI>General code cleanup: removed commented out code; added
ProcessDescription() and DumpInfo(); organized order of headers,
removed and added as needed; use <TT>constexpr</TT> for numbers; replaced
G4PhysicsOrderedFreeVector with G4PhysicsFreeVector.</LI>
<LI>G4Cerenkov, G4Scintillation, G4SynchrotronRadiation, G4ForwardXrayTR,
G4SynchrotronRadiationInMat, G4VXTRenergyLoss: set the creator model ID
for the secondaries, using the new version of G4PhysicsModelCatalog.</LI>
<LI>G4Cerenkov, G4Scintillation: update G4OpticalParameters when process
parameters updated directly. Addresses problem report
<A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2425">#2425</A>.</LI>
<LI>G4Cerenkov: do not use obsolete methods to access G4PhysicsVector data.</LI>
<LI>G4Scintillation: removed deprecated optical commands.</LI>
</UL></LI>
</UL>
<A NAME="errprop-notes">
<H3><I>Error Propagation</I></H3></A>
<UL>