forked from Geant4/geant4
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathReleaseNotes4.10.7.html
2591 lines (2504 loc) · 130 KB
/
ReleaseNotes4.10.7.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.7 Release Notes</TITLE>
</HEAD>
<BODY BGCOLOR='F0F0F0'>
<P> </P>
<BR>
<P> </P>
<P ALIGN="Center">
<FONT SIZE="+4" COLOR="#238E23">
<B>Geant4 10.7 Release Notes</B>
</FONT>
<TABLE WIDTH="100%">
<TR><TD ALIGN="Right">
<FONT SIZE="-1" COLOR="#5C3317">
<B><I>December 4<SUP>th</SUP>, 2020</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>
</OL>
<P> </P>
<A NAME="1."></a>
<HR>
<!-- ============================================== -->
<H2>1. Supported and Tested Platforms</H2>
Platforms:
<UL>
<LI>Linux, gcc-4.9.3.<BR>
Tested on 64 bit architectures (Intel or AMD) with
CERN CentOS Linux 7 (CC7) (based on CentOS Linux 7).</LI>
<LI>MacOS 10.15 Catalina with Apple LLVM/Clang-12.0 (llvm/clang-10)</LI>
<LI>Windows-10 with Visual C++ 14.28 (Visual Studio 2019)</LI>
</UL>
More verified and tested configurations (64 bits):
<UL>
<LI>Linux, gcc-5.4/6.3/7.4/8.2/9.3/10.2, clang-8/9/10</LI>
<LI>Linux, Intel-icc 19.1</LI>
<LI>MacOS 10.14 Mojave with Apple LLVM/Clang-10/11</LI>
<LI>MacOS 11 Big Sur with Apple LLVM/Clang-12 (Intel chips only)</LI>
</UL>
<P> </P>
<A NAME="2."></A>
<HR>
<!-- ============================================== -->
<H2>2. Supported CLHEP and VecGeom 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.4.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.<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.8</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>Code using the G4MULTITHREADED preprocessor macro must include the
<TT>G4Threading.hh</TT> header before using the macro.</LI>
<LI>Minimum required version of CMake to build Geant4 is 3.8.
Allow specification of C++20 for CMake 3.12 and above.</LI>
</UL>
<P> </P>
<B>Geometry, Fields and Transportation</B>
<P> </P>
<UL>
<LI>The default integration method for field propagation in a pure magnetic
field is changed to use a templated stepper G4TDormandPrince45.
A speedup is expected.
Instead a slowdown can occur if a large fraction of 'long' steps
propagating in a vacuum or gas volume with a strong-enough magnetic field.
To restore the previous method used in Geant4 10.6. set <TT>nullptr</TT>
as third argument and the fourth argument <TT>stepperDriverId=4</TT> in
the relevant constructor of G4ChordFinder.</LI>
</UL>
<P> </P>
<B>Electromagnetic and optical physics</B>
<P> </P>
<UL>
<LI>Moved optical physics parameters to new G4OpticalParameters class.</LI>
<LI>Added new threshold for muon/hadron bremsstrahlung and e+e- pair production
allowing to stop a track when energy transfer exceeds the defined threshold
and makes a new vertex.</LI>
<LI>Added two extra sets of StepFunction parameters for light ions and generic
ions. Added corresponding UI commands allowing one to customise step
limitation for ions separately from step limits for electrons or hadrons.</LI>
</UL>
<P> </P>
<B>Hadronic physics</B>
<P> </P>
<UL>
<LI>The UI commands for Radioactive Decay are named <TT>/process/had/rdm/...</TT>.
The old commands <TT>/grdm/...</TT> are still valid, but deprecated,
and will be removed in the next major release, Geant4 11.</LI>
<LI>To enable building of ParticleHP as HP, use the new CMake option
<TT>-GEANT4_BUILD_PHP_AS_HP=ON</TT> when building Geant4.
The old environment variable <TT>PHP_AS_HP</TT> is still valid, but
deprecated, and will be removed in the next major release.</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-7.13, G4RadioactiveDecay-5.6,
G4PhotonEvaporation-5.7, G4ENSDFSTATE-2.3, G4PARTICLEXS-3.1,
G4RealSurface-2.2</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 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>Introducing new optional (Beta) tasking system, based on PTL
(Parallel Tasking Library), dedicated run manager (G4TaskRunManager) and
factory (G4RunManagerFactory), 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>Introduced general facilities based on GFlash implementation to facilitate
multiple hit (energy & position) creation from fast simulation models.</LI>
<LI>Updated SI constants, based on May 2019 redefinition of SI units.</LI>
<LI>Added G4Backtrace header for printing backtraces from raised signals.
Can be enabled by setting GEANT4_BUILD_BUILTIN_BACKTRACE option at
configuration.</LI>
<LI>New profiling settings for TiMemory which allow per-{run,event,track,step}
profiling when GEANT4_USE_TIMEMORY is enabled.</LI>
<LI>Extended CMake build system to support G4Py activation through
GEANT4_USE_PYTHON flag.</LI>
<LI>Simplified CMake builds to enable future modularisation of Geant4
libraries.</LI>
</UL>
<B>Analysis</B>
<UL>
<LI>Major upgrade of analysis module, including support for multiple files
and multiple output types in the same run; defeined new methods and
corresponding UI commands. The new functions are available through a new
G4GenericAnalysisManager class, and are demonstrated in the basic B5
example.</LI>
<LI>Enabled handling of automatic min/max axes values in case of log scale
in analysis tools.</LI>
</UL>
<B>Digitization, Hits & Scoring</B>
<UL>
<LI>Added layered mass geometry option for the new "probe" scoring mesh.</LI>
<LI>Introducing G4VPrimitivePlotter allowing the user to extend a primitive
scorer; added G4VScoreHistFiller and G4TScoreHistFiller, allowing scorers
to fill histograms defined through Geant4 Analysis tools.</LI>
</UL>
<B>Geometry and Field</B>
<UL>
<LI>Improved speed for detection of volume overlaps either through
UI commands or at geometry construction.</LI>
<LI>New templated field classes for equation and selected steppers
to avoid virtual call for field and equation respectively.
Non-virtual calls are expected to provide a direct speedup.
In addition key methods are made inline to enable compilers to
seek extra speedup by embedding them to avoid any function call.</LI>
<LI>New class G4DriverReporter to print progress of field drivers.</LI>
<LI>Enabled "check-mode" for G4PropagatorInField and G4VIntersectionLocator.</LI>
<LI>Enabled use of whiteboard for logging/debugging in G4MultiLevelLocator,
if "check-mode" in navigation is being activated through UI command.</LI>
</UL>
<B>Materials</B>
<UL>
<LI>Added two new public methods to add elements to a material:
AddElementsByNumberOfAtoms(...) and AddElementByMassFraction(...).</LI>
<LI>Added a new method ConstPropertyExists() to G4MaterialPropertiesTable.
Added new methods to access/add properties with G4String and std::vector.</LI>
<LI>Added new properties for scintillation allowing 3 time constants and a
second wavelength shifter in the same material in G4MaterialPropertiesTable
and G4MaterialPropertiesIndex.</LI>
</UL>
<B>Electromagnetic physics</B>
<UL>
<LI>Added two extra sets of StepFunction parameters for light ions and generic
ions. Added corresponding UI commands allowing one to customise step
limitation for ions separately from step limits for electrons or hadrons.</LI>
<LI>Introducing thermal model of positronium decay to two gammas.
In this model, the positronium acquires a mean kinetic energy on formation,
which contributes to a small non-collinearity of the gammas, detectable and
significant in PET.</LI>
<LI>Added new EM model for polarized gamma elastic scattering.</LI>
<LI>New class for handling the numerical Differential Cross-Sections(DCS) for
Coulomb scattering of e-/e+, and added new model, implementing single
Coulomb scattering for e-/e+.</LI>
<LI>Added new classes and models for micro-dosimetry simulation.</LI>
<LI>Added new threshold for muon/hadron bremsstrahlung and e+e- pair production
allowing to stop a track when energy transfer exceeds the defined threshold
and makes a new vertex.</LI>
<LI>Added a model for gamma-ray elastic interactions, able to account for
molecular interference effects, by using database or user-custom form
factors.</LI>
<LI>Implemented three time constants for G4Scintillation, and allow multiple
time constants to work with scintillation by particle type.
Added second wavelength shifting process within the same material.</LI>
</UL>
<B>Hadronic physics</B>
<UL>
<LI>For charm and bottom hadron-nuclear (elastic and inelastic)
cross sections, the Glauber-Gribov approach has been extended to
cover heavy hadrons.
For final-state elastic nuclear scattering of charm and bottom
hadron projectiles, a simple treatment is utilized.
For final-state inelastic nuclear scattering of charm and bottom
hadron projectiles, both Geant4 string models (FTF and QGS) have
been extended to deal with charm and bottom quarks and diquarks
carried by the heavy projectile hadron, as well as with the
possibility of creating charm-anti_charm and bottom-anti_bottom
pairs from the vacuum during the string fragmentation phase.
Cascade models are currently not applicable for heavy hadrons and
string models cannot handle them properly at very low energies:
below 100 MeV a dummy model that returns as final state the
initial state unchanged is utilized.
The decays of secondary heavy hadrons - charm and bottom hadrons
created by inelastic nuclear interactions of primary hadrons -
cannot be pre-defined by Monte Carlo event generators, therefore
a very simple approach is currently used: one single, fully hadronic
decay is defined for each "long"-lived charm and bottom hadron,
with a simple multi-body phase-space treatment of the decay
kinematics. </LI>
<LI>For the evaluation of systematic errors due to uncertainties in
the Geant4 hadronic cross sections we recommend to scale up and
down the cross sections, independently for elastic and inelastic
interactions, and independently for different types of hadrons.
Currently, this is possible for the following three categories of
hadrons: nucleons (i.e. proton and neutron together), pions (i.e.
pion+ and pion- together), all the rest of hadrons (i.e. kaons,
hyperons, anti-baryons, light ions, light anti-ions, charm and
bottom hadrons all together).
New public methods of the singleton class G4HadronicParameters
allow to enable the scaling of these cross sections (disabled by
default), and to set the scaling factors (by default 1.0).
Here are some rough, practical suggestions on the scaling of the
cross sections: +/- 10% variation for nucleons and pions;
+/- 15-20% variation for kaons; +/- 20-30% variation for other
hadrons. Moreover, bigger variations might be considered at low
energies to account for the challenge of describing the shapes
of cross sections in the threshold and resonance region. </LI>
<LI>New utility class to access hadronic processes, allowing to customise
hadronic cross-sections per particle type.</LI>
<LI>New UI messenger for hadronic physics, currently used for controlling
verbosity level: the UI command <TT>/process/had/verbose 0</TT> allows
to switch off the print-out at initialization of hadronic processes,
models and cross-sections (similar to the existing command
<TT>/process/em/verbose 0</TT> to switch off the print-out of
electromagnetic physics information).</LI>
<LI>New UI command to change the default upper energy limit
(default: 100 TeV): <TT>/process/had/maxEnergy ...</TT></LI>
<LI>New G4PARTICLEXS-3.1 dataset provides accurate fusion cross-sections
based on data, more accurate inelastic cross-sections for neutrons,
protons, light ions, and gamma for the full energy range.</LI>
<LI>Replaced where possible the use of environmental variables in hadronic
models with appropriate UI commands.</LI>
<LI>A new low-energy gamma-nuclear final-state model,
<TT>G4LowEGammaNuclearModel</TT>, based on precompound de-excitation
and providing isomer production and gamma transitions, is used in
<TT>G4EmExtraPhysics</TT>.</LI>
<LI>Improved treatment of antibaryon interactions in QGS.</LI>
<LI>Added handling of lepto-nuclear interactions for anti_nu_e, nu_e,
anti_mu_nu and mu_nu.</LI>
<LI>A new coalescence model, useful in particular for Cosmic Ray applications,
has been introduced. By considering the list of secondaries produced by a
string model, it forms deuterons and antideuterons from, respectively,
proton-neutron and antiproton-antineutron pairs with close momenta.
By default, the coalescence model is disabled; it can be switched on
via the UI command <TT>/process/had/enableCRCoalescence true</TT>.</LI>
</UL>
<B>Physics Lists</B>
<UL>
<LI>Enabled charm and bottom hadronic physics in nearly all physics lists,
in particular those of interest for HEP.
(The main exceptions are the following physics lists:
<TT>QGSP_BIC, QGSP_BIC_HP, QGSP_BIC_AllHP</TT>.)
The QGS-based physics lists use, as for other hadrons, QGSP for
charm and bottom inelastic interactions above 12 GeV, whereas FTFP
is used below 25 GeV. The other, FTF-based physics lists, use FTFP
at all energies, with a simplified approach below 100 MeV.</LI>
<LI>New physics-list builder classes have been introduced to allow
alternative builders for anti_proton, anti_neutron, hyperons and
anti-hyperons nuclear interactions at high energies with QGSP.</LI>
<LI>QGS-based physics lists use now QGS for hyperons, anti-hyperons,
anti_proton and anti_neutron projectiles at energies above 12 GeV.</LI>
<LI>Physics lists that include <TT>G4EmExtraPhysics</TT> use the new
low-energy gamma-nuclear model (<TT>G4LowEGammaNuclearModel</TT>)
below 200 MeV (while Bertini cascade is used above 199 MeV up to 6 GeV,
and QGSP above 3 GeV). The use of this model, its energy threshold and
the alternative cross section <TT>G4GammaNuclearXS</TT> can be
configured.</LI>
<LI>Extended EM physics-list configurator interface allowing application of
extra configuration on top of any available DNA constructor.</LI>
<LI>Cleanup destruction of physics processes at the end of job.
Reviewed ownership/deletion of physics models at the end of the run.</LI>
</UL>
<B>Visualization and Interfaces</B>
<UL>
<LI>Introduced new alpha-version of a Qt3D visualization driver, based
on native Qt rendering.</LI>
<LI>Added support for Open Inventor Qt visualisation driver to be built and
used in applications. The OpenInventor module can be built with either
the OIQt driver, or with the OIX/OIXE drivers, but not with both.
Enabled use of OIQt viewer with Qt UI.</LI>
</UL>
<B>Examples</B>
<UL>
<LI>New extended example showing how to use Geant4 as a generator for
simulating inelastic hadron-nuclear interactions.</LI>
<LI>New extended example demonstrating how to create multiple energy deposits
from the fast simulation model.</LI>
<LI>New extended example implementing the typical setup of a Small Angle
X-ray Scattering (SAXS) experiment. It is meant to illustrate the usage
of molecular interference (MI) of Rayleigh (coherent) scattering of photons
inside the matter.</LI>
<LI>New extended medical example (dna/chem6) providing scoring of the
radiochemical yield G as a function of time and LET.</LI>
<LI>New advanced example showing how to efficiently simulate particle transport
through aerosols containing billions of randomly-positioned droplets, using
an ordinary workstation.</LI>
<LI>New advanced example Gorad (Geant4 Open-sourced Radiation Analysis and
Design), a turn-key application for radiation analysis and spacecraft
design.</LI>
<LI>New advanced example HGCal_testbeam based on a Geant4 standalone application
for the CMS High Granularity Calorimeter (HGCal) studies, to demonstrate a
test beam setup used in HEP experiments, and as a base for the validation
studies and comparison with experimental data.</LI>
<LI>New advanced example modelling the ICRP110 reference computational human
phantoms and calculating the dose in individual voxels and entire
organs. The human male phantom is created from a whole-body
clinical CT image.</LI>
</UL>
<A NAME="5."></A>
<HR>
<!-- ============================================== -->
<H2>5. Expected effects on physics and computing performance</H2>
<B>General</B>
<UL>
<LI>Revision of G4PhysicsVector classes to use similar algorithm for bin
selection and adding checks on vectors length.</LI>
<LI>Code reorganisation and optimisations in G4Transportation has been
measured to provide a persistent reduction of instruction-TLB misses,
leading to some measurable CPU speedup.</LI>
</UL>
<B>Electromagnetic physics</B>
<UL>
<LI>Results are expected to be similar to release 10.6 for EM calorimeters.</LI>
<LI>Expected some measurable CPU speedup.</LI>
<LI>Expected improved angular distributions for e+e- pairs.</LI>
</UL>
<B>Hadronic physics</B>
<UL>
<LI>Hadronic showers remain similar to those of the latest patch release
10.6.p03, with the only expected difference of a few percent narrower
showers for FTF-based physics lists.
Comparing the hadronic showers of the two physics lists FTFP_BERT and
QGSP_BERT, the latter show sligthly higher response, larger energy
fluctuations, and longer and narrower shapes with respect to the
FTFP_BERT showers. </LI>
<LI>Expected more accurate cross-sections for light ions including fusion
reactions.</LI>
<LI>Expected slightly faster computation of hadronic cross-sections.</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, particularly
on Windows with Visual Studio, where warnings level has been raised when
building examples.
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><U>CMake</U>
<UL>
<LI>Added support for building PTL external module and introduced
GEANT4_USE_TBB option, enabling use of TBB as possible alternative
to builtin PTL tasking.</LI>
<LI>Added support for Open Inventor Qt visualisation driver to be built and
used in applications. The OpenInventor module can be built with either
the OIQt driver, or with the OIX/OIXE drivers, but not with both.
Added GEANT4_USE_XM to Open Inventor X11 driver code block to correct
Xm and Xt link order. Improved consistency of using XQuartz vs System
OpenGL on macOS. Removed obsolete FindInventor module.</LI>
<LI>Introduced configuration support for Qt3D visualization driver.
Qt3D driver optional based on find of required Qt5 modules.</LI>
<LI>Applied patch to allow compilation on Windows using Clang.</LI>
<LI>Removed requirement on presence of GLU library.
No longer save GLU related variables in the package cache.</LI>
<LI>Change shimmed imported target name to VecGeom::vecgeom to match
upstream usage and reliably use target when available from VecGeom.
Export VecCore_DIR to package cache when set so that Geant4 behaviour
is consistent. Co-works with VecGeom-1.1.8.</LI>
<LI>Updated functions to use G4expat{-static} as custom built targets.</LI>
<LI>Added GEANT4_BUILD_BUILTIN_BACKTRACE option to enable automatic
use of G4BackTrace signal handling in G4RunManager.</LI>
<LI>Importing new "target" style API for declaring and composing libraries
from modules of source code.</LI>
<LI>Propagate value of CMAKE_DISABLE_FIND_PACKAGE_ROOT down to tests
that optionally support Root to allow testing Geant4 with Root support
disabled. This is necessary when testing Geant4 with a different C++
standard than Root when it's installed. Avoid warnings from propagating
the flag down to tests.</LI>
<LI>New GEANT4_BUILD_PHP_AS_HP option to enable ParticleHP as HP in physics
processes. Replaces PHP_AS_HP environment variable. Added PHP_AS_HP
"feature" in Geant4Config.cmake/geant4-config to allow clients to
check availability.</LI>
<LI>Use STRINGS cache property for enum options and CMAKE_BUILD_TYPE to
give easier interface in (G)UIs.</LI>
<LI>Use "${FOO:-}" variable expansion and "-z" test to check for
undefined variables in Bourne Shell scripts. Prevents errors when
shell is in "set -u" mode. Addressing problem report
<A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2221">#2221</A>.</LI>
<LI>Handle install of G4clhep{-static} independently of main modules
due it being built outside the category system.</LI>
<LI>Renamed remaining internal "Geant4..." modules to "G4" convention.
Retain Geant4DefineModule and Geant4LibraryTargets until new
modularization scheme is in place.</LI>
<LI>Set CLHEP minimum required version to 2.4.4.0.</LI>
<LI>Set VecGeom-1.1.8 as minimum required version for optional build
with VecGeom.</LI>
<LI>Added possibility to download and install optional TENDL data set.</LI>
<LI>Updated data-sets versions.</LI>
</UL></LI>
<LI><U>GNUMake</U>
<UL>
<LI>Added setup for building and configuring new externals/ptl
and tasking modules. External installation of PTL can be enabled
by defining the installation through the environment variable
PTL_BASE_DIR.</LI>
<LI>Added -pthread to all builds in Linux targets.</LI>
<LI>Corrected setup for use of Open Inventor (Coin).</LI>
<LI>Added configuration for Qt3D visualization driver.</LI>
<LI>Added missing settings in G4UI_BUILD.gmk script for OIQt and use
of UI.</LI>
<LI>Removed deprecated G4USE_STD11 flag settings.</LI>
<LI>Removed dependency on GLU for all configurations, as no longer
necessary.</LI>
</UL></LI>
</UL>
<A NAME="ana-notes">
<H3><I>Analysis</I></H3></A>
<UL><LI><U>Analysis management & plotting</U>
<UL>
<LI>Major upgrade including the support for multiple files and multiple
output types.</LI>
<LI>New G4GenericAnalysisManager, G4GenericFileManager factory classes.</LI>
<LI>New G4VAnalysisManager functions to set file-names and corresponding
UI commands. While it is possible to mix output types for histogram
and profiles objects, only one output type is supported for ntuples.</LI>
<LI>Redesigned management classes to separate object file handling from
output specific analysis managers.</LI>
<LI>Updated G4PlotManager for use of new fonts.</LI>
<LI>Changes to allow overriding Root classes in g4mpi/analysis.</LI>
<LI>Removed redundant variable in G4RootNtupleFileManager::Reset().</LI>
<LI>Fixed the memory leak reported by Valgrind in deleting files.</LI>
<LI>Fixed text typos in printout. Problem report
<A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2285">#2285</A>
and <A HREF="https://github.com/Geant4/geant4/pull/15">GitHub PR#15</A>.</LI>
</UL></LI>
<LI><U>Ntuples</U>
<UL>
<LI>Implemented writing ntuples in multiple files of the same output type.
New G4VAnalysisManager function SetNtupleFileName(..) and UI commands:
"/analysis/ntuple/setFileName id fileName" and
"/analysis/ntuple/setFileNameToAll fileName"</LI>
<LI>Fix to add a null-pointer check to ntupleDescription->fNtuple in
G4RootPNtupleManager::Merge().</LI>
</UL></LI>
<LI><U>g4tools</U>
<UL>
<LI>Updated the g4tools version to g4tools-5.2.1.
<UL>
<LI>Corrections to handle automatic min/max axes values in case of log
scale. See History_tools in analysis module for all details.</LI>
<LI>Modifications in tools/hdf5 to use H5free_memory() instead free()
at some places (needed for HDF5/1.12.0).</LI>
<LI>Modifications in graphics to be in sync with the code in
inlib/exlib around Apple/Metal (no impact on offscreen plotting).</LI>
<LI>See History_tools for the complete list of modifications.</LI>
</UL></LI>
</UL></LI>
<LI>Updated granular dependencies in preparation for modularization.</LI>
<LI>Removed uneeded links to externals in factory.</LI>
</UL>
<A NAME="digits-notes">
<H3><I>Digitization & Hits</I></H3></A>
<UL>
<LI>Introducing G4VPrimitivePlotter allowing the user to extend a primitive
scorer. Use G4VPrimitivePlotter to allow scorers to directly fill
histograms. Added "/score/fill1D" command.</LI>
<LI>Introducing G4VScoreHistFiller and G4TScoreHistFiller, allowing scorers
to fill histograms defined through Geant4 Analysis tools.</LI>
<LI>Introducing a new scorer, G4PSVolumeFlux.</LI>
<LI>Added two ComputeSolid() method to G4VPrimitiveScorer, to consolidate
code.</LI>
<LI>Added Mutex lock to G4ScoringProbe::SetMaterial() to avoid race condition.</LI>
<LI>Fixed cases of comparison between int and size_t in templated classes
and some cleanup.</LI>
<LI>Fixed text typos in printout. Problem report
<A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2285">#2285</A>
and <A HREF="https://github.com/Geant4/geant4/pull/15">GitHub PR#15</A>.</LI>
</UL>
<A NAME="emstd-notes">
<H3><I>Electromagnetic Processes</I></H3></A>
<UL>
<LI><B>DNA</B>:
<UL>
<LI>Added classes for IRT; added features in management classes for IRT
(G4ITReaction, G4ITModelProcessor ...).</LI>
<LI>Added features in G4DNAMolecularReactionTable for GFDE.</LI>
<LI>Added molecules (Oxygen, O2, O3, HO2) from: Plante et al.(2017).</LI>
<LI>G4DNAMolecularMaterial: avoid deleting instance of the singleton;
removed commented lines.
Fixed thread contention on mutable data in G4DNAMolecularMaterial.
Some code cleanup.</LI>
<LI>G4MoleculeDefinition: copy constructor and assignment operator are not
allowed (as for G4ParticleDefinition). Now deleted.</LI>
<LI>Revised displacement of OH radicals of B1A1 dissociation based on
momentum conservation in G4DNAWaterDissociationDisplacer.</LI>
</UL></LI>
<LI><B>High Energy</B>
<UL>
<LI>G4hPairProductionModel: inherit ComputeDMicroscopicCrossSection()
from G4MuPairProductionModel to avoid code duplication.</LI>
<LI>G4hPairProductionModel, G4hBremsstrahlungModel, G4hPairProduction,
G4hBremsstrahlung: added definition of the energy threshold for
creation of a vertex when energy transfer is above the threshold.</LI>
</UL></LI>
<LI><B>Low Energy</B>
<UL>
<LI>Added new model for polarized gamma elastic scattering, provided by
the JAEA group. Updated existing process (G4JAEAElasticScattering) and
model (G4JAEAElasticScatteringModel) in order to comply with the new
data format. Changed initialisation of JAEA models.</LI>
<LI>Added new classes for micro-dosimetry simulation.</LI>
<LI>Added new class G4MicroElecSurface, a new boundary process for e-.</LI>
<LI>Removed obsolete G4MuElec* classes.</LI>
<LI>G4LivermorePhotoElectricModel: allow "Water" as a name of water
material for low-energy photo-effect.</LI>
<LI>Added G4LivermoreGammaConversion5DModel class. Reading EPICS2017 data.</LI>
<LI>Change in G4LivermoreGammaConversion to now derive from
G4PairProductionRelModel. Added missing method InitialiseForElement().</LI>
<LI>Added G4PenelopeRayleighModelMI model and ancillary class G4MIData.</LI>
<LI>Replaced std::log with G4Log in Penelope and Livermore models.</LI>
<LI>Use GetZasInt() in Penelope models, when applicable.</LI>
<LI>Fixed compilation warnings on clang-10.</LI>
</UL></LI>
<LI><B>Muons</B>
<UL>
<LI>G4MuPairProductionModel: optimised ComputeDMiscroscopicCrossSection()
to speedup initialization.</LI>
<LI>G4ModifiedMephi: new angular generator for muon/hadron Bremsstrahlung.</LI>
<LI>G4MuPairProductionModel, G4MuBremmstrahlungModel,
G4MuPairProduction, G4MuBremmstrahlung: updated sampling of
final state using G4ModifiedMephi; implemented check on energy transfer
and if beyond the threshold, kill primary particle and create a new
vertex.</LI>
</UL></LI>
<LI><B>Standard</B>
<UL>
<LI>G4eDPWAElasticDCS: new class that handles the numerical Differential
Cross-Sections(DCS) for Coulomb scattering of e-/e+, computed by Dirac
Partial Wave Analysis(DPWA) using ELSEPA.</LI>
<LI>G4eDPWACoulombScatteringModel: new class that implements single Coulomb
scattering model for e-/e+ based on the numerical DCS provided by the
above G4eDPWAElasticDCS class.</LI>
<LI>G4eplusAnnihilation: fixed problem seen in the rare case, when initial
energy is null; introducing thermal model of positronium decay to two gammas.
In this model, the positronium acquires a mean kinetic energy on
formation, which contributes to a small non-collinearity of the
gammas, detectable and significant in PET. To activate this model:
material->GetIonisation()->SetMeanEnergyPerIonPair(meanKE).
A mean kinetic energy of 5 eV produces a projected acollinearity
of about 0.5 degrees FWHM, as reported in:
K.Shibuya et al., IFMBE Proceedings Vol. 14/3 1667 (2007).</LI>
<LI>G4UniversalFluctuation: changed 'nmaxCont' from 16 to 8 for speedup.
Set value for 'a0' to 42 after optimisations. Minor C++ improvements.</LI>
<LI>G4UrbanMscModel: tuned 'tlimitmin' computation for e- (for e+ kept
unchanged) and changed parameterisation of 'stepmin'; added two private
inline methods to reduce code duplication.
Removed cache and introduced data struct precomputed at initialisation,
added e- range cut to the data structure.
Changed parameterisation of backscattering parameter <TT>doverra</TT>;
Changed computation of 'tlimit' in the step limitation algorithm
UseDistanceToBoundary(); affecting only Opt3 EM physics.</LI>
<LI>G4BetheHeitler5DModel: change "final" keyword by "override" for virtual
methods.</LI>
<LI>G4LindhardSorensenData: fixed few numbers in the data table.</LI>
<LI>G4eeToTwoGammaModel: code cleanup; added static flag, which identifies
if electron motion is taken into account for sampling of acollinearity,
when annihilation happens at rest; ensuring that by default no extra
computation is performed; also removed extra printout at initialisation
and extra data structure.</LI>
<LI>G4ICRU49NuclearStoppingModel, G4WentzelOKandVIxSection,
G4WentzelVIRelModel, G4SeltzerBergerModel, G4LindhardSorensenIonModel:
improved usage of locks; defined deletion of copy constructor and
assignment operator. Improved usage of locks. Defined standard deletion
of copy consructor and assignment operator.</LI>
<LI>G4SauterGavrilaAngularDistribution, G4DeltaAngle: code clean-up.</LI>
<LI>Fixed compilation warnings on clang-10.</LI>
<LI>Requires data-set G4EMLOW-7.13.</LI>
</UL></LI>
<LI><B>Utils</B>
<UL>
<LI>G4EmParameters, G4EmLowEParameters, G4EmLowEParametersMessenger: added
a new parameter - name of the sub-directory with data for Livermore
models with variants: "livermore" (default), "epics_2017".
Comes with G4EMLOW-7.10 data set and higher.</LI>
<LI>G4EmParameters, G4EmParametersMessenger, G4VMultipleScattering:
removed displacement-beyond-safety option, as may lead to crashes in
some circomstances, and wrong results in others.</LI>
<LI>G4EmParameters, G4EmParametersMessenger, G4EmExtraParametersMessenger,
G4VEnergyLossProcess: added two extra sets of StepFunction parameters
for light ions and generic ions. Added extra UI commands. Modified
interfaces accordingly. Removed old comments.</LI>
<LI>G4EmParameters, G4EmExtraParameters: added new flag defining type of
single scattering model.</LI>
<LI>G4EmParameters, G4EmParametersMessenger: added new flag threshold for
muon/hadron bremsstrahlung allowing to stop a track when high energy
bremsstrahlung is emitted.</LI>
<LI>G4OpticalParameters, G4OpticalParametersMessenger: added new files to
control optical parameters, as for G4EmParameters.</LI>
<LI>G4EmLowEParametersMessenger: extended number of DNA PhysicsList
options.</LI>
<LI>G4EmModelManager, G4VMscModel, G4VEmModel, G4VMultipleScattering: at
initialisation print extra line for all multiple-scattering models
instead of the common printout, needed when different models are
applied for regions. Minor code clean-up.
Addressing problem report
<A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2106">#2106</A>.</LI>
<LI>G4VEmProcess: removed old unused methods; DefinedMaterial() method is
now protected (needed for AtRest processes). Fixed setting of current
particle. Addressing problem report
<A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2277">#2277</A>,
affecting ion DNA physics.</LI>
<LI>G4LossTableManager: made ResetParameters() method public.
Make clean interface for electron and positron general process.</LI>
<LI>G4VAtomicDeexcitation: optimized arrays initialisation.</LI>
<LI>G4VEmAngularDistribution: added flag of polarisation and corrected
order of initialisation.</LI>
<LI>G4VEmModel: define flag of polarisation for an angular generator.</LI>
<LI>G4EmProcessSubType: added fSurfaceReflection.</LI>
<LI>Fixed text typos in printout. Problem report
<A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2285">#2285</A>
and <A HREF="https://github.com/Geant4/geant4/pull/15">GitHub PR#15</A>.</LI>
</UL>
<LI><B>Xrays</B>
<UL>
<LI>Implemented three time constants for G4Scintillation, and allow
multiple time constants to work with scintillation by particle type.
The existing material property names have FAST and SLOW in them, like
FASTTIMECONSTANT. This doesn't generalize well. Also YIELDRATIO as a
single value doesn't generalize to three time constants. Proposal is
to create new names SCINTILLATIONTIMECONSTANT1/2/3 and the same for
other parameters. The existing names are kept for backwards
compatibility, with the idea to remove them in the next major release.
There is a flag in G4Scintillation, with messenger command in the
OpticalPhysics list, to use the new method:
/process/optical/scintillation/setEnhancedTimeConstants true.
Results are unchanged if using same values.
Allow specifying SCINTILLATIONYIELD only (not requiring
SCINTILLATIONYIELD1) when only one scintillation channel is present.
Same for particle specific yields.
Set verbosity levels correctly.</LI>
<LI>G4Cerenkov, G4Scintillation: use new G4OpticalParameters to control
simulation parameters. Removed BuildThePhysicsTable().
Applied code formatting.</LI>
<LI>G4Cerenkov: make GetAverageNumberOfPhotons() method public.</LI>
<LI>G4VXTRenergyLoss: fixed destructor.</LI>
<LI>Code formatting.</LI>
</UL></LI>
</UL>
<A NAME="errprop-notes">
<H3><I>Error Propagation</I></H3></A>
<UL>
<LI>Fixed Coverity defects warnings in G4ErrorPropagator for unreachable code.
Implemented move assignment operators in G4ErrorSymMatrix, G4ErrorSymMatrix,
G4ErrorFreeTrajParam, G4ErrorTrajState and G4ErrorSurfaceTrajParam.</LI>
<LI>Fix to CMake script to support new CMake system.</LI>
</UL>
<A NAME="event-notes">
<H3><I>Event</I></H3></A>
<UL>
<LI>Introducing a new General Particle Source energy distribution option,
that generates flat energy distribution with track weights that
represent energy spectrum provided by /gps/hist/point commands.
This option can enhance, for example, higher energy tracks that are
rare but contribute to the scores.</LI>
<LI>Corrected logic in G4VPrimaryGenerator::CheckVertexInsideWorld() method.</LI>
<LI>G4GeneralParticleSourceMessenger: command structure clean-up.</LI>
<LI>Some code cleanup, formatting and C++11 revision.</LI>
<LI>Fixed CMake scripts to ensure G4_USESMARTSTACK pre-processor symbol
is properly propagated.</LI>
<LI>Added support for event profiler with TiMemory.</LI>
<LI>Removed obsolete and unused headers.</LI>
<LI>Fixed Coverity defect in G4GeneralParticleSourceMessenger.</LI>
<LI>Fixed text typos in printout. Problem report
<A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2285">#2285</A>.
</UL>
<A NAME="externals-notes">
<H3><I>Externals</I></H3></A>
<UL>
<LI><U>CLHEP</U>:
<UL>
<LI>Updated to CLHEP version 2.4.4.0.</LI>
<LI>Updated values in SystemOfUnits.h and PhysicalConstants.h for:
e_SI (electron charge), h_Planck (Planck constant), Avogadro
(Avogadro constant), k_Boltzmann (Boltzmann constant), based on
May 2019 redefinition of SI units, References -
[<A href="https://en.wikipedia.org/wiki/2019_redefinition_of_the_SI_base_units">wikipedia.org</A>],
[<A HREF="https://www.britannica.com/science/electron-charge">britannica.com</A>].</LI>
<LI>Use 32-bit internal seeds types coherently in MixMaxRng.
Addressing CLHEP JIRA ticket #156.</LI>
<LI>Removed obsolete #pragma interface/implementation in Vector classes.</LI>
<LI>Get rid of switch statement in operator()/operator[] of Hep3Vector
Replaced dx/dy/dz with operator[] in Hep3Vector.
Replaced private dx/dy/dz with public x()/y()/z() in Hep3Vector.</LI>
<LI>Added missing includes in Vector and Random classes for translation
unit encapsulation.</LI>
</UL></LI>
<LI><U>Expat</U>:
<UL>
<LI>Migrated build of G4expat to locally defined targets, allowing
cleaner specification of usage requirements.</LI>
</UL></LI>
<LI><U>PTL</U>:
<UL>
<LI>New module for PTL (Parallel Tasking Library), implementing a
lightweight C++11 multi-threading tasking system featuring thread-pool,
task-groups, and lock-free task queue.</LI>
</UL></LI>
<LI><U>ZLIB</U>:
<UL>
<LI>Added needed include directories to CMake script when using new
CMake system. Cleanup.</LI>
</UL></LI>
</UL>
<A NAME="g3tog4-notes">
<H3><I>G3toG4</I></H3></A>
<UL>
<LI>Cleanup CMake build, removing obsolete granular library options and
explicit include_directories.</LI>
</UL>
<A NAME="gen-notes">
<H3><I>General Processes</I></H3></A>
<UL>
<LI><B>Biasing</B>
<UL>
<LI>G4ImportanceProcess: added process type as fParallel.</LI>
<LI>Fixed Coverity defect warnings for data initialisation.</LI>
</UL></LI>
<LI><B>Cuts</B>
<UL>
<LI>Revision for use of c++11 constructs. Code cleanup and formatting.</LI>
</UL></LI>
<LI><B>Management</B>
<UL>
<LI>G4ProcessManagerMessenger: use cache pointer of selected particle
in the G4ParticleTable class.</LI>
<LI>G4ProcessTable: enabled deletion of all processes except
G4Transportation at the end of run.</LI>
<LI>Fixed Coverity warning for uninitialised data in G4VProcess.</LI>
<LI>C++11 revision and code cleanup/formatting.</LI>
</UL></LI>
<LI><B>Optical</B>
<UL>
<LI>Added second wavelength shifting process, G4OpWLS2, within the same
material.</LI>
<LI>Use new ConstPropertyExists(int) method rather than passing strings.</LI>
<LI>G4OpRayleigh, G4OpAbsorption, G4OpMieHG, G4OpWLS, G4OpWLS2: moved to
new G4OpticalParameters class to control simulation parameters.</LI>
<LI>G4OpRayleigh: avoid double deletion of property vectors.</LI>
<LI>G4OpBoundaryProcess: increase geometry tolerance to kCarTolerance.</LI>
<LI>Fixed reading of Davis LUT data out of bounds.
Addressing problem report
<A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2287">#2287</A>.</LI>
<LI>Code cleanup/formatting and improved readability.</LI>
</UL></LI>
<LI><B>Parameterisation</B>
<UL>
<LI>Introduced general facilities based on GFlash implementation to
facilitate multiple hit (energy & position) creation from fast
simulation models.</LI>
<LI>G4FastSimulationHelper: merged ActivateFastSimulation() calls for mass
and parallel geometry cases.</LI>
<LI>G4FastSimulationManager, G4VFastSimulationModel: removed redefinition
of G4Envelope type.</LI>
<LI>Added sanity check for root logical volumes in regions for
G4GlobalFastSimulationManager. UI command /param/showSetup works also
if no parallel world is present.</LI>
<LI>Fixed minor Coverity defect for uninitialised data in G4FastStep.</LI>
</UL></LI>
<LI><B>Scoring</B>
<UL>
<LI>G4ParallelWorldProcess, G4ParallelWorldScoringProcess: use new PDG
code for optical photon, "-22".</LI>
<LI>G4ParallelWorldProcess: make some private methods and data members
protected so that this class can be extendable.</LI>
</UL></LI>
<LI><B>Transportation</B>
<UL>
<LI>Substantial reorganisation of G4Transportation::AlongStepGPIL() to use
values already in cache, to reduce the number of branches, and to use
extra local variables for track properties to avoid indirections.
Resulting in a persistent reduction of instruction-TLB misses.</LI>
</UL></LI>
</UL>
<A NAME="geo-notes">
<H3><I>Geometry</I></H3></A>
<UL>
<LI><B>Magnetic field</B>
<UL>
<LI>New class G4DriverReporter to print progress of drivers.</LI>
<LI>New templated classes to avoid virtual calls for field, equation,
steppers (from Google Summer of Code 2014 project): equation of motion
is now templated on the field type; steppers are templated on the type
of equation and the number of integration variables.
These classes can be combined also with the templated drivers to avoid
virtual calls in all the levels up to the chord finder's call to
the integration driver. </LI>
<LI>The default integration method for field propagation in a pure magnetic
field is changed. The constructor of G4ChordFinder by default uses the
new templated stepper G4TDormandPrince45 in place of
G4DormandPrince745.</LI>
<LI>The types of templated steppers currently available include
the efficient, embedded Runge-Kutta intermediate order steppers:
<UL>
<LI>G4TDormandPrince45: based on G4DormandPrince745, embedded
5<SUP>th</SUP> order; the default.</LI>
<LI>G4TCashKarpRKF45: based on G4CashKarpRKF45, 5<SUP>th</SUP> order;
first embedded RK.</LI>
</UL>
These are the most advanced templated steppers.
G4TDormandPrince45 provides an endpoint derivative (FSAL) and can be
used with interpolation.</LI>
<LI>The second type of templated steppers are non-embedded of 4<SUP>th</SUP>
and 3<SUP>rd</SUP> order:
<UL>
<LI>G4TClassicalRK4: based on G4ClassicalRK4, 4<SUP>th</SUP> order;
robust and the old default;</LI>
<LI>G4TSimpleHeum: based on G4SimpleHeum, 3<SUP>rd</SUP> order; a
lower order alternative;</LI>
</UL>
which break up a step into half steps to estimate error, meaning
they need several additional field evaluation calls than embedded
steppers of the same order.
The reliability of their error estimation has different properties; so
it may be more robust in some cases.
Primarily for comparison and cross-checking of results.</LI>
<LI>The final available type of low order templated steppers are very low
order:
<UL>
<LI>G4TSimpleRunge: based on G4SimpleRunge, 2<SUP>nd</SUP> order;</LI>