forked from Geant4/geant4
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathReleaseNotes.11.2.html
2746 lines (2659 loc) · 133 KB
/
ReleaseNotes.11.2.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.2 Release Notes</TITLE>
</HEAD>
<BODY BGCOLOR='F0F0F0'>
<P> </P>
<BR>
<P> </P>
<P ALIGN="Center">
<FONT SIZE="+4" COLOR="#238E23">
<B>Geant4 11.2 Release Notes</B>
</FONT>
<TABLE WIDTH="100%">
<TR><TD ALIGN="Right">
<FONT SIZE="-1" COLOR="#5C3317">
<B><I>December 8<SUP>th</SUP>, 2023</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, VecGeom and PTL 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-11.3.1.<BR>
Tested on 64 bit architectures (Intel or AMD) with
Alma Linux 9 (based on RedHat Linux Enterprise 9).</LI>
<LI>macOS 14.1.1 Sonoma with Apple LLVM/Clang-15.<BR>
Tested on 64 bit architectures (Intel or Apple Silicon).</LI>
<LI>Windows-10 with Visual C++ 14.36 (Visual Studio 2022).</LI>
</UL>
More verified and tested configurations (64 bits):
<UL>
<LI>Linux, gcc-9.4/10.3/11.3/12.1/13.2, clang-14/16/17</LI>
<LI>Linux, Intel-icx 2022.2</LI>
<LI>macOS 13.6 Ventura with Apple LLVM/clang-15</LI>
<LI>macOS 12.7 Monterey with Apple LLVM/clang-14</LI>
<LI>Windows/10 with Visual C++ 14.29 (Visual Studio 2019)</LI>
</UL>
<P> </P>
<A NAME="2."></A>
<HR>
<!-- ============================================== -->
<H2>2. Supported CLHEP, VecGeom and PTL versions</H2>
This release of Geant4 has been verified with
<A TARGET="ext" HREF="http://cern.ch/clhep/">CLHEP</A>, release <B>2.4.7.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.<BR>
VecGeom version <B>2.0.0-rc2</B> or <B>1.2.6</B> have been tested when using
such configuration.<BR>
PTL version <B>2.3.3</B> is required for external installation of the
<A HREF="https://github.com/jrmadsen/PTL">PTL tasking library</A>.<BR>
CMake <B>3.16</B> is the minimum version required to build Geant4.
<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>Added support for declaring headers of a source code module private.
Headers declared private are not installed. Partial refactoring of
modules.</LI>
<LI>Removed deprecated GNUmake scripts for libraries build.</LI>
</UL>
<P> </P>
<B>Geometry, Fields and Transportation</B>
<P> </P>
<UL>
<LI>The inheritance level for G4TouchableHistory has been removed, simplifying
touchables handling. G4VTouchable is now a simple typedef of
G4TouchableHistory, therefore forward declarations of G4VTouchable
in the code will have to be promoted to concrete inclusion of the
related header file.</LI>
<LI>Unused concrete touchable types G4GRSSolid and G4GRSVolume have been
retired and are no longer available.</LI>
</UL>
<P> </P>
<B>Electromagnetic and optical physics</B>
<P> </P>
<UL>
<LI>G4NeutrinoPhysics constructor is now added.</LI>
<LI>New dataset G4EMLOW-8.5 is required and should be used.</LI>
</UL>
<P> </P>
<B>Hadronic physics</B>
<P> </P>
<UL>
<LI>The default value of the time threshold for radioactive decays of ions -
above which these decays are ignored - has been changed, from
<TT>10^27 ns</TT> (i.e. about twice the age of the universe) to
<TT>1 year</TT>. For applications where radioactive decays of ions do
play an important role, it is recommended to increase the default time
threshold of these decays to a very high value, e.g. <TT>1.0e+60 years</TT>.
This can be done in either one of the following three ways:
<OL>
<LI>Via UI command, e.g.
<TT>/process/had/rdm/thresholdForVeryLongDecayTime 1.0e+60 year</TT>,
(command to be used after <TT>/run/initialization</TT>);</LI>
<LI>Via C++ interface, e.g.
<TT>G4HadronicParameters::Instance()->SetTimeThresholdForRadioactiveDecay( 1.0e+60*CLHEP::year )</TT>
(to be placed in the main program before run initialization);</LI>
<LI>Via the second parameter of the constructor of the class
G4RadioactiveDecay (for analogue mode only) or G4Radioactivation
(for both analogue or biased mode), e.g.
<TT>G4RadioactiveDecay( "RadioactiveDecay", 1.0e+60*CLHEP::year )</TT>
or <TT>G4Radioactivation( "Radioactivation", 1.0e+60*CLHEP::year )</TT>
(this is for custom physics lists, before run initialization).</LI>
</OL>
In the examples, the first method is adopted.</LI>
<LI>Renamed classes for capture from G4ParticleHPCapture to G4NeutronHPCapture.
Removed unused G4NeutronHP*.hh headers for elastic and inelastic.</LI>
</UL>
<P> </P>
<B>Persistency</B>
<UL>
<LI>The build of the persistency library, G4Persistency, has been split into
G4mctruth, G4geomtext and (optional) G4gdml libraries.</LI>
</UL>
<P> </P>
<B>Visualization and Modeling</B>
<P> </P>
<UL>
<LI>In order to allow support of Qt6, OGL is temporarily diverted to TSG by default.
If VTK is requested, due to compatibility issues, all other drivers that use OpenGL
- GLES "toolssg" drivers and all OpenGL drivers - are not registered automatically
by G4VisExecutive.</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.5, G4ABLA-3.3,
G4INCL-1.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.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>First implementation of G4SubEvent and related mechanism for registration
and merging in a run.</LI>
<LI>Reviewed/simplified stream buffer and I/O classes.</LI>
</UL>
<B>Analysis</B>
<UL>
<LI>Added new G4AnalysisManager functions for deleting selected histograms,
profiles and n-tuples, with related UI commands.</LI>
<LI>G4AnalysisManager functions <TT>GetNof[Hn|Pn|Ntuple]s()</TT> can be called
with a new, optional, Boolean argument <TT>onlyIfExist</TT>.</LI>
<LI>Added UI commands for creating n-tuple.</LI>
</UL>
<B>Geometry & Field</B>
<UL>
<LI>New Quantum State Simulation (QSS) integration method, an alternative
method of integration offering built-in interpolation capability and
enabling faster finding of the intersection of the trajectory with
surfaces.</LI>
<LI>Added new G4VNavigation common navigation interface class and streamlined
code in navigation classes to use the new common interface.</LI>
<LI>Added new G4SafetyCalculator class, auxiliary to G4Navigator; used in
G4Navigator in <TT>ComputeSafety()</TT> to avoid saving/restoring
state.</LI>
</UL>
<B>Materials</B>
<UL>
<LI>New G4ElementDataRegistry management class for shared data per element in
materials.</LI>
<LI>In G4MaterialPropertiesTable, improved building of vectors of material
property names.</LI>
<LI>In G4NistMaterialBuilder, all liquid materials are marked as
<TT>kLiquid</TT>.</LI>
</UL>
<B>Electromagnetic physics</B>
<UL>
<LI>Fixed single scattering per region, active inside the region
and disabled outside.</LI>
<LI>Removed most calls to environment variables in electromagnetic physics
classes</LI>
<LI>In G4UrbanMscModel, reduced number of re-computations of safety.</LI>
<LI>Reviewed initialisation of static data in G4SeltzerBergerModel and
G4eBremsstrahlungRelModel classes.</LI>
<LI>In G4LivermorePhotoElectricModel, updated initialisation of static tables
for thread safety and setting of shell cross-sections.</LI>
<LI>New process G4XrayReflection to describe X-ray surface scattering based
on data provided in <TT>G4EMLOW-8.5</TT>.</LI>
<LI>New class G4MicroElecCapture for better estimation of the non ionizing
energy deposition.</LI>
<LI>Rewritten G4DNARuddIonisationExtendedModel G4DNA model, applicable for
scaled energy interval from <TT>100 eV</TT> to <TT>100 MeV</TT>.</LI>
</UL>
<B>Hadronic physics</B>
<UL>
<LI>Introduced a new, alternative set of parameters for the Fritiof (FTF) string
model, meant to overcome the problem of too optimistic (i.e. narrow) pion
shower energy resolutions in ATLAS calorimeters with respect to test-beam
data. This new FTF tune is enabled only in the reference physics list
FTFP_BERT_ATL.</LI>
<LI>In G4RadioactiveDecay, changed default threshold for the time beyond
which radioactive decays are ignored, from twice the age of the
Universe to one year. The code has also been reviewed to use only one
table of radioactive decay channels and streamlined code for thread
safety.</LI>
<LI>Major extension of the INCLXX model to handle antiproton annihilation
at rest and in-flight. All INCLXX-based physics lists now use INCLXX for
the antiproton annihilation at rest.
Note that, for the time being, for in-flight antiproton annihilation, FTFP
is still used in all physics lists.</LI>
<LI>Implemented an accurate modeling of elastic resonant scattering in heavy
nuclei by the use of the Doppler Broadening Rejection Correction (DBRC)
algorithm. By default, this treatment is not activated; it can be switched
on via the UI command: <TT>/process/had/particle_hp/use_DBRC true</TT>.</LI>
<LI>Implemented interface allowing the coupling between Binary Cascade (BIC)
and ABLA, i.e. using BIC for the cascade and then ABLA for the nuclear
de-excitation.</LI>
<LI>Extended Bertini model to allow the use of ABLA as alternative post-cascade
nuclear de-excitation (the default de-excitation remains unchanged).</LI>
<LI>New cross-section class G4ChargeExchangeXS for charge exchange process.</LI>
<LI>Reviewed and updated the fermi_breakup model.</LI>
<LI>Safer initialisation of static data in hadronic cross-section classes.
Added new HP cross-section classes.</LI>
<LI>Added classes for QMD model optimised for light ions, recommended
for medical applications.</LI>
</UL>
<B>Particles</B>
<UL>
<LI>Particle properties have been updated according to PDG-2023.</LI>
</UL>
<B>Persistency</B>
<UL>
<LI>Added possibility to set alternative grammar for schema validation
while reading a GDML file.</LI>
</UL>
<B>Physics Lists</B>
<UL>
<LI>New physics list QGSP_BIC_HPT, similar to QGSP_BIC_HP, but with
special treatment of elastic scattering of thermal neutrons activated.</LI>
<LI>Added new physics lists to the physics factory, for <TT>HPT</TT> variants
(i.e. with special treatment of elastic scattering of thermal neutrons)
of physics lists with <TT>HP</TT> already present (FTFP_BERT_HPT,
QGSP_BERT_HPT, QGSP_BIC_HPT, QGSP_BIC_AllHPT, FTFP_INCLXX_HPT,
QGSP_INCLXX_HPT, Shielding_HPT, and ShieldingM_HPT).</LI>
<LI>Introduced new physics list names to the physics factory, Shielding_HP and
ShieldingM_HP, as alias of, respectively, Shielding and ShieldingM.</LI>
<LI>Used in the FTFP_BERT_ATL physics list a new, specific, FTF tune meant to
overcome the problem of too optimistic (i.e. narrow) pion shower energy
resolutions in ATLAS calorimeters with respect to test-beam data.
Note: for all other reference physics lists (e.g. FTFP_BERT), the default
set of FTF parameters is applied; in order to enable the new tune in these
physics lists, one can use, before initialization, either the UI command:
<TT>/process/had/models/ftf/selectTuneByName energy-resolution-tune2023-v0</TT>
or through C++ interface:
<TT>G4FTFTunings::Instance()->SetTuneApplicabilityState(4, 1)</TT>.</LI>
<LI>In INCLXX-based reference physics lists (e.g. FTFP_INCLXX, QGSP_INCLXX, etc.),
INCLXX is used for antiproton annihilation at rest (instead of FTFP as
before).
Note: in order to use INCLXX for antiproton annihilation at rest in other
physics lists, one need to modify the source code of the physics list by
replacing the class G4StoppingPhysics with G4StoppingPhysicsWithINCLXX.</LI>
<LI>Added new physics constructor for neutrino physics, G4NeutrinoPhysics,
and its messenger. New constructors G4ChargeExchangePhysics and
G4NeutrinoPhysics may be added on top of any modular Physics List.
Both constructors have messengers with UI commands allowing to configure
these new physics processes.</LI>
<LI>Added a Boolean parameter to the Shielding physics list constructor
which allows to use the new G4LightIonQMD model instead of the default
QMD model.
Note: the new model G4LightIonQMD provides more precise modelling than
QMD for medical applications; for other applications, e.g. shielding,
physics validation is needed to compare the two models.</LI>
<LI>New physics list QBBC_ABLA, behaving as QBBC, but using the ABLA model
for nuclear de-excitation, instead of precompound/de-excitation,
for charged pions and nucleons projectiles.
This is for testing, not yet recommended for physics studies.</LI>
</UL>
<B>Processes - General</B>
<UL>
<LI>New submodule <I>channeling</I>, implementing fast-simulation channeling
model in oriented crystals with Baier Katkov method for the calculation of
radiation probability, radiation point and parameters of photon production
as well as spectrum accumulation.</LI>
</UL>
<B>Visualization and Interfaces</B>
<UL>
<LI>First version of the TSG_[QT,X11,XT,WINDOWS]_ZB sub drivers, allowing for
interactive 3D rendering bypassing native graphics systems.</LI>
<LI>TSGQt driver temporarily enabled by default with OGL driver choice,
to allow support of Qt6.</LI>
<LI>Updated and extended Vtk visualization driver with new features and
fixes.</LI>
<LI>Supporting first implementation of a no-frills GUI-side scene tree
in the Qt GUI.</LI>
<LI>Implemented a more flexible way of choosing a graphics system for
visualisation, preserving the existing behaviour in all aspects.</LI>
<LI>Implemented <I>generic cutaways</I> in visualization. Clips, sections and
cutaways will now be available to *all* viewers (OpenGL still uses
OpenGL clip planes. Use another driver, e.g., TSG, to get "generic
cutaways").</LI>
<LI>Enabled first-level support for Qt6.
Fixed minimum supported version for Qt5 to be 5.9.</LI>
<LI>In G4UIQt, implemented right-click pop-up menu for touchables in new
scene tree.</LI>
</UL>
<B>Examples</B>
<UL>
<LI>New Geant4-FLUKA interface and two hadronic examples, providing access to
FLUKA-Cern hadron-nucleus inelastic physics.</LI>
<LI>New advanced example <TT>xray_TESdetector</TT> of the application of Geant4
in a space environment. It represents an x-ray detector derived from the
X-IFU, the X-ray spectrometer designed and developed by the European Space
Agency (ESA) for use on the ATHENA telescope</LI>
<LI>New advanced example <TT>xray_SiliconPoreOptics</TT>, demonstrating an
application of Geant4 in space environment. The geometry represents a
single reflective pore used to simulate on a smaller scale the effect
of the millions of pores forming the mirror of the ATHENA Silicon Pore
Optics (SPO).</LI>
<LI>New extended example <TT>radiobiology</TT>, realized for dosimetric and
radiobiological applications of proton and ion beams.</LI>
<LI>New advanced example <TT>dsbandrepair</TT>, a Geant4-DNA application for
evaluating the early radiation-induced DNA damage.</LI>
<LI>New Geant4-DNA example <TT>UHDR</TT> showing how to activate the mesoscopic
model in chemistry. It allows to simulate chemical reactions longtime
(beyond <TT>1 us</TT>) of post-irradiation.</LI>
<LI>New Geant4-DNA example <TT>dnadamage2</TT> providing scoring of plasmid DNA
strand breaks using the IRT method.</LI>
<LI>New extended Vtk specific example demonstrating new features only available
in the VTK viewer.</LI>
</UL>
<A NAME="5."></A>
<HR>
<!-- ============================================== -->
<H2>5. Expected effects on physics and computing performance</H2>
<B>Electromagnetic physics</B>
<UL>
<LI>Consistent with measurements obtained in Geant4 11.1 series.</LI>
</UL>
<B>Hadronic physics</B>
<UL>
<LI>The hadronic showers remain the same as in Geant4 11.1 series.</LI>
<LI>Physics results of HP-based physics lists are expected to remain unchanged
(i.e. the same as Geant4 11.1 series), regardless several technical code
improvements; the only exception is when using QGSP_BERT_HP, for which
there might be some changes in the physics results (validation is still
on-going).</LI>
</UL>
<B>PTL threading library</B>
<UL>
<LI>The <TT>PTL::ThreadPool::execute_thread()</TT> member function is compiled
unoptimised on Intel-based macOS systems to avoid GPFLT errors (see Bugzilla
ticket <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2564">#2564</A>).
No significant performance degradation is observed or expected.</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>Added support for declaring headers of a source code module private.
Headers declared private are not installed; geant4_module_check reports
an inconsistency if a private header is used non-privately.</LI>
<LI>Updated Qt MOC application for G4UI implementation in place of
G4UIbasic/G4UIcommon.</LI>
<LI>Streamlined VTK cmake components.</LI>
<LI>No longer link to QtPrintSupport, which is not used in the
toolkit.</LI>
<LI>Prefix ZLIB/EXPAT variables with "G4" to prevent clash with VTK's
own internal find of these packages.</LI>
<LI>Export QT_VERSION value to GNUmake setup script.</LI>
<LI>Support finding and use of Qt6 on request for beta testing.
Fixed minimum supported version for Qt5; requiring Qt5 >= 5.9 if Qt5
support is selected.
Find and refind Qt6OpenGLWidgets module in Qt6 for use by Qt/OpenGL
consumers. Find and refind Qt6OpenGLWidgets module in Qt6 for use
by Qt/OpenGL consumers.</LI>
<LI>Handling TOOLSSG_[X11,XT,WINDOWS,QT]_ZB vis drivers.</LI>
<LI>Export VTK_DIR and QtX_DIR to package cache to assist in refinding
both.</LI>
<LI>Updated VTK module dependencies for geometry IO and updated module
init.</LI>
<LI>Added new capabilities to geant4_module_check.py script: given a
module, print list of modules that depend on it; print all modules
sorted in descending order of the number of modules using them;
show which headers from linked modules are included by a module in
its usage requirements output.</LI>
<LI>Updated configuration scripts for splitting of G4persistency
library.</LI>
<LI>Removed setting of -D flags in Geant4Config to enable visualisation
drivers. Libraries now export compile definitions for what they
support to move to a <I>use on link</I> model.</LI>
<LI>Removed obsolete and confusing GEANT4_BUILD_TESTS option and
configuration.</LI>
<LI>Make linking a source code module to a final Geant4 library a
cmake-time error.</LI>
<LI>Allow source code modules to have an AUTOMOC property and promote
this to consuming target to remove hardcoding of Qt-using
modules.</LI>
<LI>Use FindPython in place of deprecated FindPythonInterp in
FindStatTest.</LI>
<LI>Print md5sum in coreutils format for compatibility with busybox.</LI>
<LI>Bump minimum VecGeom version to 1.2.6.</LI>
<LI>New data sets <TT>G4EMLOW-8.5</TT>, <TT>G4ABLA-3.3</TT>, and
<TT>G4INCL-1.2</TT>.</LI>
<LI>Updated tag-IDs for 11.2.</LI>
</UL></LI>
<LI><U>GNUMake</U>
<UL>
<LI>Removed deprecated GNUmake scripts for libraries build.</LI>
<LI>Updated UI/interfaces include paths to reflect new organization.</LI>
<LI>Updated system scripts for Qt settings: removed Qt4 and added Qt6.</LI>
<LI>Updated scripts for splitting of the G4persistency library.</LI>
<LI>No longer link to QtPrintSupport, which is not used in the
toolkit.</LI>
</UL></LI>
</UL>
<A NAME="ana-notes">
<H3><I>Analysis</I></H3></A>
<UL>
<LI>Added new G4AnalysisManager functions for deleting selected
histograms, profiles and n-tuples, with related UI commands:
<TT>/analysis/[hn|pn]/delete id [keepSetting]</TT>.</LI>
<LI>Added <TT>GetNtuple()</TT> functions in G4GenericAnalysisManager,
that in difference from output specific managers, returns n-tuple
booking, that is common to all output types.</LI>
<LI>Added UI commands for creating n-tuple:
<TT>/analysis/ntuple/create name title</TT>,
<TT>/analysis/ntuple/create[I|F|D|S]Column name</TT> and
<TT>/analysis/ntuple/finish</TT>.</LI>
<LI>Added clearing of file data in <TT>DeleteEmptyFiles()</TT>. This
prevents from deleting non-empty files created/filled in previous
runs but not used in new runs.</LI>
<LI><U>Internal changes</U>:
<UL>
<LI>Moved 'CompressionLevel' data/functions members from
G4AnalysisManagerState to G4BaseFileManager to make it available
in helper classes which do not have access to state. Compression
level (default 1) is now used also when writing a Root histogram
in an extra file and writing Hdf5 n-tuples.</LI>
<LI>Postpone creating G4HnMessenger after G4THnMessenger to get better
command ordering in the 'help' tree.</LI>
<LI>Moved <TT>setAxisLog</TT> command from G4THnMessenger to G4HnMessenger
as it applies to function defined in its associated class.</LI>
<LI>Moved <TT>kMaxDim</TT> constant from G4THnMessenger in
G4AnalysisUtilities as needed also at other places.</LI>
<LI>Moved <TT>kDimN</TT> constants from G4VAnalysisManger in
G4AnalysisUtilities and replaced all hard-wired literals '1', '2'
and '3' with these.</LI>
<LI>Moved <TT>Set/GetDefaultFileType()</TT> methods and UI command in
G4VAnalysisManager and G4AnalysisMessenger (from
G4GenericAnalysisManager/Messenger). This allows to support omitting
file extension also when setting file names to
histograms/profiles.</LI>
<LI>Removed G4GenericAnalysisMessenger.</LI>
<LI>Supressed warning from 'CreateTFile' when file is already
existing.</LI>
<LI>Changed verbosity level for "merge" information from 1 to 2.</LI>
<LI>Added warnings about failure in <TT>*HnFileManager::WriteExtra</TT>
where missing.</LI>
<LI>Use forward declarations for templated classes where suitable.</LI>
<LI>Use "G4" prefixed version of EXPAT/ZLIB CMake variables.</TT>
</UL></LI>
<LI><U>Fixes</U>:
<UL>
<LI>Do not create <TT>setAxis*</TT> commands for <TT>idim = 4</TT>.</LI>
<LI>Fixed implementation of set commands per dimension:
<TT>/analysis/hn|pn/setX|Y|Z</TT>. Addressing issue
reported in Geant4 forum.</LI>
</UL></LI>
</UL>
<A NAME="digits-notes">
<H3><I>Digitization & Hits</I></H3></A>
<UL>
<LI>Applied clang-tidy corrections and general code modernization.</LI>
<LI>Moved docstrings prior to function declarations for doxygen/IDE
compatibility.</LI>
</UL>
<A NAME="emstd-notes">
<H3><I>Electromagnetic Processes</I></H3></A>
<UL>
<LI><B>DNA</B>:
<UL>
<LI>Reorganised multiple material model of PTB. G4VDNAModel plays like a
data layer for multiple material models. The concrete models are
independent of G4DNAModelInterface.</LI>
<LI>G4DNARuddIonisationExtendedModel: rewrite of the model, applicable for
scaled energy interval from 100 eV to 100 MeV. If for an ion data is
not available, proton cross-section and effective charge are used,
sampling of delta-electron is done using the two regions regression
method. Sharing data between threads.</LI>
<LI>Improved equilibrium processes, introduced G4ChemEquilibrium.</LI>
<LI>Corrected scavenger counter for oxygen.</LI>
<LI>Introduced G4DNAMaterialManager to handle available DNA materials
and keep DNA cross-section data shared across threads.</LI>
<LI>Replaced string to material index and some code cleanup in PTB
models.</LI>
<LI>Added material pointer members for each concrete PTB models.</LI>
<LI>Code cleanup in G4DNAModelInterface for the model combination of
different materials.</LI>
<LI>Added PTB model data to G4DNAMaterialManager singleton.
Updated RegisterModel() function with new structure.</LI>
<LI>Added DNA cross-section to dna_option6.</LI>
<LI>Use analytical method for DNA material in option6, water is unchanged.
Minor correction for DNA material in option6.</LI>
<LI>Added time structure (pulsed beam) to water radiolysis
(G4VUserPulseInfo).</LI>
<LI>Corrected initial values of G4DNAEventScheduler.</LI>
<LI>Corrected 'fastercode' section for dna opt6.</LI>
<LI>Use analytical method for DNA material in option6, water is unchanged.
Minor correction for DNA material in option6.</LI>
<LI>Modified DNA cross-section file name, according to new data set.</LI>
<LI>In navigation classes, removed references to G4TouchableHistoryHandle,
which is now deprecated. Removed references to unused G4GRSSolid and
G4GRSVolume.</LI>
<LI>Applied core clang-tidy fixes, constructor/destructor modernization,
readability and logic for conditionals/Booleans.</LI>
<LI>Fixed Coverity defects for uninitialised scalar variables.</LI>
<LI>Fixed compilation warnings on macOS/XCode for implicit type
conversions.</LI>
<LI>Use G4FindDataDir to access data libraries in place of raw
<TT>getenv()</TT>.</LI>
</UL></LI>
<LI><B>High Energy</B>
<UL>
<LI>G4GammaConversionToMuons, G4AnnihiToMuPair: removed
<TT>using namespace std</TT> and applied cling-tidy base fixes.</LI>
</UL></LI>
<LI><B>Low Energy</B>
<UL>
<LI>In G4LivermorePhotoElectricModel and G4LivermoreRayleighModel removed
calls to environment variables and use G4EmParameters method instead.
Added lock for reading data on the fly; minor code formatting.</LI>
<LI>G4LivermoreGammaConversionModel, G4LivermoreGammaConversion5DModel:
fixed Spline interpolation by calling FillSecondDerivatives().</LI>
<LI>G4LivermorePhotoElectricModel: updated initialisation of static tables
and setting of shell cross-sections. Use logarithmic search of bin for
free vectors, updated use of G4ElementData.
ore accurate check on atomic number Z to fix Coverity reports.</LI>
<LI>In G4LivermoreBremsstrahlungModel, do not setup LPM flag.</LI>
<LI>G4LowEWentzelVIModel: updated according to Coulomb scattering
models.</LI>
<LI>Use access to G4LEDATA via G4EmParameters for G4LivermoreComptonModel,
G4LivermoreGammaConversion5DModel and
G4LivermoreGammaConversionModel.</LI>
<LI>New class G4MicroElecCapture for better estimation of the non ionizing
energy deposition.</LI>
<LI>Simplification of weakly bound electrons treatment in
G4MicroElecInelasticModel_new, handled now similarly to core electrons
with limitEnergy equivalent to binding energy.
Updated <TT>SampleSecondaries()</TT>, and
<TT>RandomizeEjectedElectronEnergyFromCumulatedDcs()</TT>.
Changed implementation of <TT>Interpolate()</TT> method to avoid
division by zero identified by Coverity.
Fixed potential problem at destruction.</LI>
<LI>G4MicroElecMaterialStructure: modification in <TT>GetLimitEnergy()</TT>
function to account for the changes in the treatment of weakly bound
electrons.</LI>
<LI>G4MicroElecSurface: removed repeated checks in <TT>Initilise()</TT>
method, addressing Coverity report.</LI>
<LI>G4MicroElecCapture, G4MicroElecSurface: fixed compilation warnings for
implicit type conversions on XCode. Minor code cleanup (removed tabs,
formatting, use of nullptr...).</TT>
<LI>Fixed trivial reported Coverity defects in G4MicroElecLOPhononModel
and G4MicroElecSurface.</LI>
<LI>Minor code cleanup in G4MicroElecLOPhononModel.</LI>
<LI>Use G4FindDataDir to access data libraries in place of raw
<TT>getenv()</TT>.</LI>
<LI>Applied clang-tidy and clang-format to Livermore code.</LI>
</UL></LI>
<LI><B>Muons</B>
<UL>
<LI>G4MuonToMuonPairProductionModel: updated usage of G4ElementData.</LI>
<LI>G4MuPairProductionModel, G4MuonToMuonPairProductionModel: updated
usage of G4ElementData; do not use <TT>IsMaster()</TT> to fill
sampling table; use only 5 2-D tables for sampling; code clean-up.</LI>
<LI>G4MuBremsstrahlungModel: moved filling of static data to constructor.</LI>
<LI>G4TablesForExtrapolator: define particle type when constructing muon
models. Do not delete intermediate G4VEmModels
created for initialisation.</LI>
</UL></LI>
<LI><B>Pii</B>
<UL>
<LI>Fixed few reported Coverity defects.</LI>
</UL></LI>
<LI><B>Standard</B>
<UL>
<LI>G4UrbanMscModel: check IsLocked() method before definition of lateral
displacement algorithm and positron correction; code optimisations and
formatting. Reduced number of re-computations of safety.
Tuned step limit parameterisation for the case of enabled optional
algorithm of lateral displacement. Default tracking unaffected.
Rewritten optional method <TT>SampleDisplacementNew()</TT>; this
method is not used so far in any EM physics configurations by default
but may be enabled via UI command and/or C++ interface.</LI>
<LI>G4ASTARStopping, G4PSTARStopping, G4IonICRU73Data: use logarithmic
search of bin for free vectors.</LI>
<LI>G4CoulombScattering: added SetCombined() method allowing the user to
configure the process; improved code formatting and initialisation.
Added constructor with changed signature, which uses flag
<TT>isCombined</TT> instead of process name.
Added extra constructor to address all existing cases;
for pure single scattering, integral method type is changed and Spline
interpolation is used. Addressing problem report
<A href="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2530">#2530</A>.</LI>
<LI>In G4VEmModel, do not delete G4ElementData; do not define LPM
flag.</LI>
<LI>Code cleanup in G4PAI* classes.</LI>
<LI>Removed use of std::getenv() from model classes, use G4EmParameters
instead.</LI>
<LI>G4eCoulombScatterinModel: improved initialisation and code
formatting.</LI>
<LI>G4BraggIonModel inherits from G4Bragg model; fixed stopping power
of heavy ions at moderate energies.</LI>
<LI>G4BraggModel, G4BraggIonModel: use proton stopping data for for all
ions except alpha; make data-sets pointers static.
Addressing problem report
<A href="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2532">#2532</A>.</LI>
<LI>In G4BetheBlochModel, G4BraggIonModel and G4BraggModel, updating
effective charge of an ion at each step of simulation or at each call
to G4EmCalculator.</LI>
<LI>G4LindhardSorensenIonModel: use G4BraggModel for preliminary
computation of DEDX at initialisation for G4GenericIon instead of
G4BraggIonModel, which fixes a problem of low-energy ion tracking
recently introduced.</LI>
<LI>G4BetheHeitlerModel, G4PairProductionRelModel,
G4eBremsstrahlungRelModel, G4SeltzerBergerModel: reorganized
initialisation. Initialisation of static element data is performed
only once for the first object independently on how many objects of
this kind is created in a thread.
Fixes to <TT>Initialise()</TT> method, to have thread safe check if
a model is the first instance of the class; set lock and perform
initilisation of all static data.
Results of simulation are identical. Addressing problem report
<A href="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2543">#2543</A>.</LI>
<LI>G4eBremsstrahlung, G4SeltzerBergerModel: avoid changing LPM flag at
initialisation; avoid repeating base class initialisation; improved
comments in code.</LI>
<LI>G4SeltzerBergerModel: use inheritance from G4VEmModel instead of
G4eBremsstrahlungRelModel; use 'applyOnce' approach to initialise
static data; code formatting.</LI>
<LI>G4eBremsstrahlungRelModel: use LPM flag from G4EmParameters and
improved comments in code. Use 'applyOnce' approach to initialise
static data. Fix for potential division by zero; use G4Pow.</LI>
<LI>G4WaterStopping, G4hIonisation: code clean-up.</LI>
<LI>G4ionIonisation: do not use G4WaterStopping; code clean-up.</LI>
<LI>Updated hadron/ion ionisation models; initialise stopping power data
once: PSTAR and ICRU90 in G4BraggModel, ASTAR in G4BraggIonModel,
ICRU73 and ICRU90 ion (Z>2) data in G4LindHardSorensenIonModel.</LI>
<LI>Use "G4" prefixed version of EXPAT/ZLIB CMake variables.</LI>
<LI>Requires data-set <TT>G4EMLOW-8.5</TT>.</LI>
</UL></LI>
<LI><B>Utils</B>
<UL>
<LI>G4EmParameters: added extra member and access method to
<TT>G4LEDATA</TT> path allowing checking of the environment variable
for the EM data only once. Added Get/Set method for a new integer
number used for logarithmic bin search in free vector.</LI>
<LI>G4EmParametersMessanger: added UI command
<TT>/process/em/nForFreeVector</TT>.
Also fixed UI command </TT>/process/eloss/setFluctModel</TT>, by
changing "eloss" to "eLoss".</LI>
<LI>G4VEnergyLossProcess: make more straightforward computation of ion
effective charge.</LI>
<LI>G4LossTableBuilder, G4VEnergyLossProcess: improved debug printout.</LI>
<LI>G4LossTableBuilder: define logarithmic search method for inverse range
table.</LI>
<LI>G4VEmModel: trigger computation of ion effective charge for
G4EmCalculator. Use LPM flag from G4EmParameters. Added warning
about use of obsolete method <TT>SetLPMFlag()</TT>.
Use <TT>std::size_t</TT> in all places. Fixed memory leak at exit.</LI>
<LI>G4ionEffectiveCharge: minor optimisation.</LI>
<LI>G4VEnergyLossProcess, G4VEmProcess, G4VMultipleScattering: use flag of
master thread from G4LossTableManager.</LI>
<LI>G4VEnergyLossProcess: added extra protection excluding negative range;
renamed class member; changed condition to stop low-energy ion, use
kinetic energy and not scaled energy.
Added extra protection for the case of negative range of low-energy
particles. Addressing problem report
<A href="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2542">#2542</A>.</LI>
<LI>G4LossTableManager: reserve memory for internal vectors; simplified
destructor; move a part of initialisation of class members to
header. Apply modified interface to G4LossTableBuilder.</LI>
<LI>G4EmCorrections: use <TT>const</TT> to variables where possible;
reduced number of <TT>if</TT> statements, replaced <TT>isMaster</TT>
flag with new flag <TT>isInitializer</TT>; use CLHEP prefix.
Code formatting; removed lock of threads, use flag from
G4LossTableManager instead.</LI>
<LI>G4EmSaturation: fixed possible incorrect calculatioon of effective
charge of a material. Addressing problem report
<A href="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2572">#2572</A>.</LI>
<LI>Added SingleScattering option to G4TransportationWithMsc.</LI>
<LI>Improved printout in G4EmCalculator.</LI>
<LI>G4OpticalParameters: set default verbosity to 1.
Removed unused scintillation declarations.</LI>
</UL></LI>
<LI><B>Xrays</B>
<UL>
<LI>First implementation of new process G4XrayReflection, using data
from <TT>G4EMLOW-8.5</TT>.</LI>
<LI>G4Scintillation: verbosity of 0 silences run-time warnings.
Allow different decay time constants for different particles, with
particle-dependent scintillation. Improved an error message.</LI>
<LI>G4GaussXTRadiator: fixed issue by renaming virtual function to prevent
clash between base and inherited classes.</LI>
<LI>G4XrayReflectivity: fixed reported Coverity defect.</LI>
</UL></LI>
</UL>
<A NAME="event-notes">
<H3><I>Event</I></H3></A>
<UL>
<LI>Introducing G4SubEvent and related classes.</LI>
<LI>Addressing to the new track status <TT>fSuspendAndWait</TT>.</LI>
<LI>In G4GeneralParticleSource, fixed <TT>ListSource</TT> command which was
failing to list the correct energy of the sources since they need to be
accessed as a monoenergetic source distribution, rather than the particle
energy.</LI>
<LI>Applied core clang-tidy fixes.</LI>
</UL>
<A NAME="externals-notes">
<H3><I>Externals</I></H3></A>
<UL>
<LI><U>CLHEP</U>:
<UL>
<LI>Updated to CLHEP version 2.4.7.1.</LI>
<LI>Optimised MixMax engine performance and class structure.
Fixes to resolve reproducibility issues. Removed obsolete and
unused coefficient files.</LI>
<LI>Fixed compilation warnings for implicit type conversions on
macOS/XCode 14.1 in Random and Evaluator code.</LI>
<LI>Fixed cases of C++20 deprecated arithmetics with unnamed enumerations
in Vector classes.</LI>
</UL></LI>
<LI><U>G4tools</U>:
<UL>
<LI>Updated to version 6.3.0</LI>
<LI>Added support for Qt6 in glarea.</LI>
<LI>Enabling Qt, Xt, X11, Windows viewers for the tools/zbuffer
rendering.</LI>
<LI>Fix in tools/wroot/file, in the constructor, for the streaming of
the root directory. Addressing problem report
<A href="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2570">#2570</A>.</LI>
</UL></LI>
<LI><U>ZLIB</U>:
<UL>
<LI>Updated to upstream zlib-1.2.13, retaining prior Geant4 patches.</LI>
</UL></LI>
</UL>
<A NAME="gen-notes">
<H3><I>General Processes</I></H3></A>
<UL>
<LI><B>Biasing</B>
<UL>
<LI>G4ImportanceProcess: added protection against potential null pointer
on world boundary in <TT>PostStepDoIt()</TT>. Addressing problem report
<A href="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=1991">#1991</A>.</LI>
<LI>Removed forward declarations to G4VTouchable.</LI>
</UL></LI>
<LI><B>Cuts</B>
<UL>
<LI>G4ProductionCutsTable: added method <TT>SetEnergyCutVector()</TT>
requested by ALICE; added method <TT>CreateCoupleTables()</TT>
separated from <TT>UpdateCoupleTable()</TT>, needed to prepare
class data.</LI>
</UL></LI>
<LI><B>Optical</B>
<UL>
<LI>G4OpBoundaryProcess: verbosity of 0 silences run-time warnings.</LI>
</UL></LI>
<LI><B>Parameterisation</B>
<UL>
<LI>In G4FastTrack, removed references to G4TouchableHistoryHandle,
which is now deprecated.</LI>
<LI>Define G4GlobalFastSimulationManager as a G4ThreadLocalSingleton
to avoid undeleted allocated object at exit.</LI>
<LI>Applied standard and extended clang-tidy fixes.</LI>
Applied standard clang-format-ing.</LI>
<LI>Mark empty/obsolete functions as deprecated.</LI>
<LI>Normal order accessors and docstrings.</LI>
</UL></LI>
<LI><B>Scoring</B>
<UL>
<LI>Make G4EnergySplitter a private implementation detail of the module.
Make dependency to 'intercoms' private.
Fixed Coverity reported defect in <TT>SplitEnergyInVolumes()</TT>.</LI>
<LI>Removed unnecessary forward declarations of G4VTouchable.</LI>
<LI>Applied core clang-tidy/format fixes.</LI>
</UL></LI>
<LI><B>Transportation</B>
<UL>
<LI>In G4TransportationParameters, added a method to set both warning and
important energies; added method to report lock errors.
Improved reporting of inconsistent changes of 'warning' & 'important'
energies (not only enforce <TT>warning_E < important_E</TT> but also
warn about violations).</LI>
</UL></LI>
</UL>
<A NAME="geo-notes">
<H3><I>Geometry</I></H3></A>
<UL>
<LI>Applied clang-tidy fixes (readability, modernization,
performance, ...).</LI>
<LI><B>Biasing</B>
<UL>
<LI>Use G4AutoLock in G4IStore and G4ImportanceAlgorithm instead of static
mutex data member.</LI>
</UL></LI>
<LI><B>Magnetic Field</B>
<UL>
<LI>Added new Quantum State Simulation (QSS) integration method, an
alternative method of integration which creates approximation functions
for each coordinate (x,p), changing the interpolation polynomials when
the deviation from exact solution is larger than a threshold value.
Offers built-in interpolation capability, enabling faster finding of
the intersection of the trajectory with surfaces.
Currently restricted to using only with a pure magnetic field.</LI>
</UL></LI>
<LI><B>Management</B>
<UL>
<LI>Removed inheritance level for G4TouchableHistory and making
G4VTouchable a simple typdef of G4TouchableHistory, therefore no
longer acting as base class.</LI>
<LI>Imported G4NavigationHistory, G4NavigationHistoryPool,
G4NavigationLevel and G4NavigationLevelRep classes and translation
units from <TT>volumes</TT> module.</LI>
<LI>Made G4TouchableHistoryHandle a typedef of G4TouchableHandle.</LI>
</UL></LI>
<LI><B>Navigation</B>
<UL>
<LI>Added new G4VNavigation common navigation interface class.
Updated existing navigators to make use of the new common
interface.</LI>
<LI>Added <TT>RelocateWithinVolume()</TT> method to G4VoxelNavigation
and to G4ParameterisedNavigation.</LI>
<LI>In G4Navigator, removed references to unused classes G4GRSSolid and
G4GRSVolume; use G4TouchableHandle in place of G4TouchableHistoryHandle
which is now deprecated. Same in G4MultiNavigator, G4DrawVoxels and
G4VIntersectionLocator.
Some code cleanup in G4Navigator and code formatting.</LI>
<LI>Added new G4SafetyCalculator class, auxiliary to G4Navigator; used in
G4Navigator in <TT>ComputeSafety()</TT> to avoid saving/restoring
state.</LI>
<LI>Removed use of forward declarations to G4VTouchable in phantom
parameterisation classes.</LI>
<LI>G4PropagatorInField: added parameters for big steps.