forked from Geant4/geant4
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathReleaseNotes4.10.0.html
2825 lines (2738 loc) · 141 KB
/
ReleaseNotes4.10.0.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<HTML>
<HEAD>
<TITLE>Geant4 10.0 Release Notes</TITLE>
</HEAD>
<BODY BGCOLOR='F0F0F0'>
<P> </P>
<BR>
<P> </P>
<P ALIGN="Center">
<FONT SIZE="+4" COLOR="#238E23">
<B>Geant4 10.0 Release Notes</B>
</FONT>
<TABLE WIDTH="100%">
<TR><TD ALIGN="Right">
<FONT SIZE="-1" COLOR="#5C3317">
<B><I>December 6<SUP>th</SUP>, 2013</I></B>
</FONT>
</TD></TR>
</TABLE>
<BR><BR>
<HR ALIGN="Center" SIZE="7%">
<P>
The code and binary libraries for the supported systems are available
through our <A TARGET="ext" HREF="http://cern.ch/geant4/support/download.shtml">Source
Code Web page</A>.
</P>
<P>
<I>We are grateful for the efforts of Geant4 users who have provided
detailed feedback or comprehensive reports of issues.
We thank in particular those who have contributed corrections,
improvements or developments included in this release. </I>
</P>
<P>
Please refer to the
<A TARGET="ext" HREF="http://cern.ch/geant4/support/userdocuments.shtml">Geant4
User Documentation</A> for further information about using Geant4.
</P>
<H2><I>Contents</I></H2>
<OL>
<LI><A HREF="#1.">Supported and Tested Platforms</A></LI>
<LI><A HREF="#2.">Supported CLHEP version</A></LI>
<LI><A HREF="#3.">Items for migration of the user code</A></LI>
<LI><A HREF="#4.">New Developments and Capabilities</A></LI>
<LI><A HREF="#5.">Expected effects on physics and performance</A></LI>
<LI><A HREF="#6.">Known Run-Time Problems and Limitations</A></LI>
<LI><A HREF="#7.">Compilation Warnings</A></LI>
<LI><A HREF="#8.">Geant4 Software License</A></LI>
<LI><A HREF="#9.">Detailed list of changes and fixes</A></LI>
</OL>
<P> </P>
<A NAME="1."></a>
<HR>
<!-- ============================================== -->
<H2>1. Supported and Tested Platforms</H2>
Officially tested platforms:
<UL>
<LI>Linux, gcc-4.4.7.<BR>
Tested on 64 bit architectures (Intel or AMD) with
Scientific Linux CERN 6 (SLC6) (based on Red Hat Linux Enterprise 6.</LI>
<LI>MacOSX 10.8 with gcc-4.2.1 and clang-3.3</LI>
<LI>Windows7 with Visual C++ 11.0 (Visual Studio 2012)</LI>
</UL>
More verified configurations (64 bits):
<UL>
<LI>Linux, gcc-4.7.2, gcc-4.8.2</LI>
<LI>Linux, Intel-icc 14.0</LI>
<LI>MacOSX 10.9 with gcc-4.2.1 and clang-3.3</LI>
<LI>Windows7 with Visual C++ 9.0, 10.0, 12.0</LI>
</UL>
Note: Windows platforms are supported/verified only for the sequential mode.
Multi-threading capability of this release does not support Windows.
<P> </P>
<A NAME="2."></A>
<HR>
<!-- ============================================== -->
<H2>2. Supported CLHEP version</H2>
This release of Geant4 has been verified with
<A TARGET="ext" HREF="http://cern.ch/clhep/">CLHEP</A>, release <B>2.1.4.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.
<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, some of which may require migrations in order to upgrade from
release 9.x series to 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>Multi-threading:
<UL>
<LI>This release includes support for multi-threaded Geant4 applications.
Parallelism is achieved at the event level, with events dispatched to
different threads. To use multi-threading it is necessary to build
and install Geant4 with the option of multi-threading ability activated.</LI>
<LI>The default build of Geant4 is sequential. </LI>
<LI>Existing (or new sequential)
applications can be built and run without code changes, on either a
sequential and a multi-threading capable installation of Geant4 - provided, of course,
that mandatory changes are made to address other migration issues.</LI>
<LI>To enable event level-paralellism first configure a build of Geant4 using the cmake switch
GEANT4_BUILD_MULTITHREADED=ON (default is OFF); then build the Geant4 libraries and
instantiate a G4MTRunManager (or a user-derived class) in place of G4RunManager
in the relevant function of the program (e.g. the main function).</LI>
</UL>
</LI>
<li>Migrating applications to Multi-threading:</li>
<UL>
<LI>The steps required to migrate an existing application to multi-threading is
summerized in the
<A HREF="https://twiki.cern.ch/twiki/bin/view/Geant4/QuickMigrationGuideForGeant4V10">
TWiki migration page</A>.</LI>
<LI>Migrated examples for demonstrating use of multi-threading are:
<UL>
<LI><I>basic</I>: B1, B2 , B3, B4, B5;</LI>
<LI><I>extended</I>: AnaEx01, B02, B03, GB01, GB02, TestEm1, TestEm2, TestEm4,
TestEm5, TestEm11, exgps, Hadr00, Hadr04, Hadr05, DICOM,
electronScattering2, field01, field02, field03, field04,
LXe, OpNovice, wls, gflash, Par01, P03, RE01, RE02, RE03,
RE04, RE05, RE06;</LI>
<LI><I>advanced</I>: air_shower, brachytherapy, dnaphysics, gammaknife,
human_phantom, microbeam, microdosimetry, nanobeam,
radioprotection.</LI>
</UL>
</LI>
<LI>Even if Geant4 library is compiled with multi-thread support, legacy sequential
application can run. </LI>
</UL></LI>
<LI>Removed from Geant4 headers the implicit inclusions of SystemOfUnits and PhysicalConstants headers of CLHEP .
This may trigger compilation errors in user's code. This will require making the user
code self-consistent, by explicitly including these missing headers files.</LI>
<LI>Introduced checks for variable/parameters shadowing. Compilation warnings
may show up in user code in case it is also compiled using the Geant4 build setup, or using the same compiler flags.</LI>
<LI>The old GNUMake build system is no longer supported. It is strongly
recommended to adopt CMake for the installation.</LI>
</UL>
<P> </P>
<B>Geometry</B>
<P> </P>
<UL>
<LI>Archived GeomTest* classes for overlaps checking through grid/cylinder
lines. UI commands are replaced with calls to built-in overlaps checking
based on random points located in surface. User's scripts relying on old
UI commands may require migration accordingly.</LI>
<LI>The <TT>G4Polycone</TT> solid no longer supports the case in which
either the outer or the inner surface has more than one cone or tube
section over a finite interval of Z values. These shapes must use the
new class <TT>G4GenericPolycone</TT> instead. The general constructor
of <TT>G4Polycone</TT>, which uses a series of vertices, includes a
check whether the vertices are monotonic along Z for its inner and
outer surfaces, and issues an error if not.</LI>
<LI>Removed deprecated BREPs module and obsolete classes G4VCellScorer and
G4VCellScorerStore.</LI>
</UL>
<P> </P>
<B>Electromagnetic and optical physics</B>
<P> </P>
<UL>
<LI>A single <TT>G4UrbanMscModel</TT> class provides the improved tuning of the Urban
multiple-scattering model. It replaces all previous variants of
the Urban model (Urban90, 93, 95 and 96), which have been removed.</LI>
<LI><TT>G4MuElec*</TT> processes and models for microdosimetry in silicon have
been renamed as <TT>G4MicroElec*</TT> processes and models.</LI>
<LI>Instead of <TT>G4PAIPhotonModel</TT> of ionisation, it is recommended to use
<TT>G4PAIPhotModel</TT>.</LI>
</UL>
<P> </P>
<B>Hadronic physics</B>
<P> </P>
<UL>
<LI>The CHIPS package, the parameterized (Gheisha-like) models LEP/HEP
and the isotope_production module have been removed.</LI>
<LI>GetIon() and FindIon() methods are removed from G4ParticleTable
class. These methods have moved to G4IonTable class with some
enhancements.</LI>
</UL>
<P> </P>
<B>Physics Lists</B>
<P> </P>
<UL>
<LI>Physics lists based on the CHIPS package (e.g. CHIPS, QGSC_BERT)
or on the parameterized (Gheisha-like) models LEP/HEP (e.g. LHEP)
have been removed.</LI>
<LI>Physics lists that used LEP in a restricted energy range have been
retained but revised: LEP has now been replaced by Fritiof and/or
Bertini models.
Typical of this case was the use of LEP modesl to bridge the gap
between QGS and the intra-nuclear cascade model, in particular
over the region of 9.5-25 GeV in QGSP_BERT which was replaced
by use of the FTF/Fritiof model.</LI>
</UL>
<P> </P>
<B>Data Sets</B>
<P> </P>
This release introduces new data set versions.
Please see the corresponding details in
<A href="#data-notes">Section 10</A> of this document.
<UL>
<LI>New data set versions: <TT>G4EMLOW-6.35, G4NDL-4.4, G4NEUTRONXS-1.4,
G4RadioactiveDecay-4.0, G4PhotonEvaporation-3.0, G4ABLA-3.0,
G4ENSDFSTATE-1.0</TT>.</LI>
</UL>
<P> </P>
<A NAME="4."></A>
<HR>
<!-- ============================================== -->
<H2>4. New Developments and Capabilities </H2>
<B>General</B>
<UL>
<LI>Geant4 Version 10.0 supports (optional) event-level parallelism.
In a multi-threaded application, at the end of first kernel initialization,
worker threads are started and initialized. These worker threads are
responsible for simulating events.</LI>
<LI>Event each thread is tasked is in first_come_first_served basis,
so that event numbers each thread has are not sequential, and order of
finished events are not sequential. </LI>
<LI>The objects that consume the largest fraction of memory
(geometry and Electromagnetic physics tables) are shared among threads, while
all other objects (in particular user-action and sensitive detectors) are thread-private.</LI>
<LI>If the user employs built-in command-based scorers or makes use of g4tools histogramming
facitlities, the reduction of results is performed automatically at the end of a run.
To accumulate user-specified quantities, the user has to implement his/her own Run
class derived from <TT>G4Run</TT> base class to implement the reduction.</LI>
<LI>More information:
<UL>
<LI>Geant4 multi-threading capabilities are based on POSIX standards
(pthreads) and on <I>Thread Local Storage</I> (TLS) extension.</LI>
<LI>Several aspects of threading model can be customized by user.
This includes the possibility to use an external library or package
(e.g. TBB) to achieve paralelization. See the
<I>examples/extended/parallel</I> directory and its content.</LI>
<LI>A <A HREF="https://twiki.cern.ch/twiki/bin/view/Geant4/MultiThreadingTaskForce">dedicated
Twiki page</A> contains up-to-date information of multi-threading with
Geant4 including links to relevant documentation.</LI>
</UL></LI>
</UL>
<B>Geometry</B>
<UL>
<LI>A new module for geometrical primitives, whose classes
are imported from the
<A HREF="https://aidasoft.web.cern.ch/USolids">AIDA Unified Solids Library</A>,
is available.
It includes alternative implementations for several shapes, aiming to
provide CPU speed improvement in most cases. The shapes currently included are:
Box, Cons, GenericPolycone, Orb, Polycone, Polyhedra, Sphere, Tet, Trd,
Tubs. </LI>
<LI>This module can be used in two modes. The first mode is available in a standard
installation; a USolid can be used as an alternative implementation of a shape,
using a different name. This provides the opportunity to test the implementations
one by one, e.g. <TT>G4UPolycone</TT> which has shown significant speedup.</LI>
<LI>In the second mode they can replace the default implementations of the
corresponding solids - this requires a special build and must be enabled
at configuration/build time, by adopting the dedicated compiler flag
<TT>G4GEOM_USE_USOLIDS</TT>.</LI>
</UL>
<B>Materials</B>
<UL>
<LI>The NIST material Manager and related classes always
create an isotope vector for each element, using natural abundances.</LI>
</UL>
<B>Electromagnetic physics</B>
<UL>
<LI>The model of electron-positron pair production by muons and hadrons
has been updated to use more detailed grid in tabulation of differential
cross-sections.</LI>
<LI>The PAI and PAI-photon models were cleaned up and can be used for very
low (down to zero) cut values.</LI>
<LI>A new angular generator model is added <TT>G4DeltaAngle</TT> which
may be optionally used by any ionisation model. It is used by default by PAI models.</LI>
<LI>Magnetic monopole ionisation models were upgraded to be applicable
for non-relativistic case for any material.</LI>
</UL>
<B>Hadronic physics</B>
<UL>
<LI>The Fritiof (FTF) model has been retuned, based on an enlarged set of
thin-target data, and the modelling of nucleon-nucleon diffraction
has been improved. <BR>
The Fritiof model can now handle nucleus-nucleus collisions.</LI>
<LI>The Bertini-like (BERT) model has been improved, in particular
in the two-body angular distributions and in multibody phase space,
and it can handle muon capture.
</LI>
<LI>Long-lived meta-stable isotopes (isomers) are now produced
in hadronic interactions. By default, only isomers with half-lives
above 1 microsecond are considered. However, an enlarged set of
isomers can be activated by setting the environmental variable
G4ENSDFSTATEDATA to point to the new (optional) data set of
nuclei properties from the Evaluated Nuclear Structure Data File,
G4ENSDFSTATE-1.0.</LI>
<LI>The isomers that are produced can be decayed by activating the
RadioactiveDecay module (which is not used by default in physics
lists, with the only exception of Shielding). </LI>
<LI>The new data libraries G4PhotonEvaporation-3.0 and G4RadioactiveDecay-4.0
are required. </LI>
<LI>The neutron high-precision (HP) model is now capable of reading
compressed data files, and this allowed to reduced significantly
the size of the G4NDL library.<LI>A new verbosity control allows the
suppression of warning messages.</LI>
<LI>A new fission fragments generator (Wendt) has been introduced.</LI>
</UL>
<B>Phonon Physics</b>
<UL>
<LI>A new minimal framework for low-temperature
phonon physics has been introduced, with acoustic phonon particle types
(<Code>G4PhononLong, G4PhononTransSlow, G4PhononTransFast</Code>),
container classes for lattice dynamical constants, and processes for
propagation and scattering of phonons, and anharmonic downconversion.</LI>
<LI>The associated example
(<Code>examples/extended/exoticphysics/phonons</Code> has been migrated to
use the new toolkit classes.</LI>
</UL>
<B>Generic Biasing</b>
<UL>
<LI>A new biasing capability has been introduced to allow physics-based biasing
--process interaction occurence biasing, process final state production biasing--
and non-physics-based biasing --e.g. splitting, killing-- to be handled through
a set of common classes: <Code>G4VBiasingOperator, G4VBiasingOperation</Code>.</LI>
<LI>The <Code>G4VBiasingOperation</Code> class is to represent an 'atomic' biasing
operation (occurence biasing, final state biasing, splitting, killing, etc.).</LI>
<LI>The <Code>G4VBiasingOperator</Code> class is to pilot the biasing, it selects
the biasing operations to be applied in the current step.<BR>A biasing operator
may also delegate the biasing operation choices to an other operator.</LI>
<LI>Biasing operations are applied by a third class <Code>G4BiasingProcessInterface</Code>
which provides the interface between the tracking and the biasing. It collects the
biasing operations to be applied from the current biasing operator.<BR>
It can act as a wrapper class, controlling an underneath physics process on top
of which it applies the biasing operations selected by the operator; it provides
the statistical weight computation for the case of the occurence biasing.
<BR>It can also be free of physics process, in what case it collects and applies
non-physics-based biasing operations.</LI>
<LI>A biasing operator is attached to a <Code>G4LogicalVolume</Code> inside which,
and only inside which, it is active. Outside, the standard tracking goes.</LI>
<LI>Two examples have been created:<BR>
<Code>examples/extended/biasing/GB01</Code> shows how to bias process cross-sections,<BR>
<Code>examples/extended/biasing/GB02</Code> shows how to use an MNCP-like
'force collision' operator implemented within the present scheme (this 'force collision'
consists of a track entering a volume which is cloned, one copy making a forced
collision inside the volume, the other copy flying though with no interaction).</LI>
</UL>
<B>Physics Lists</B>
<UL>
<LI>In all physics lists, the neutron capture process has been
significantly improved, both for the cross section (replacing
Gheisha with G4NeutronCaptureXS) and the final-state modelling
(now using G4NeutronRadCapture instead of G4LCapture).
This affects the response and lateral width of hadronic showers
in tungsten-based simplified calorimeters. </LI>
<LI>The more accurate inelastic cross section G4NeutronInelasticXS is used
for the simulation of low-energy neutrons (i.e. below 20 MeV) in all
physics lists which do not contain the precise neutronHP models.
This replaces the Barashenkov cross-sections. The NeutronXS cross-sections
are average in bins of kinetic energy derived from neutronHP data.
They are meant as an approximated, fast approach similar to the
multi-group approach of other Monte Carlo radiation transport tools.</LI>
<LI>The fission process has been removed in physics lists without
the precise neutronHP models. For the HP-based physics
lists, the parameterized model G4LFission is kept and used only
above 19.9 MeV.</LI>
<LI>Fritiof and/or Bertini models are now used in all physics lists
to replace the parameterized (Gheisha-like) model LEP/HEP,
which were used in several physics lists. This is neccesary
for the QGS-based physics lists,
since the QGS model has not been extended to as low energies (currently
it is used above 12 GeV) as the FTF model (which can be used above 3 GeV).</LI>
<LI>Three new physics lists (all making use of the intranuclear cascade
INCLXX) have been introduced: QGSP_INCLXX_HP, FTFP_INCLXX,
FTFP_INCLXX_HP.</LI>
<LI>All the six electromagnetic variants of the physics lists:
_EMV, _EMX, _EMY, _EMZ, _LIV, _PEN <BR>
are available only by using the physics list factory
G4PhysListFactory. This option can be specified as part of the physics
list name. As before, the name string must be either an argument of a
particular method of the factory, or else provided in the environmental
variable PHYSLIST.</LI>
<LI>The following obsolete physics lists have been removed:
CHIPS, CHIPS_HP, QGSC_BERT, QGSC_CHIPS, QGSP_BERT_CHIPS, LHEP, LHEP_EMV,
QGSP, QGSP_QEL, QGSP_BERT_TRV, QGSP_BERT_95, QGSP_BERT_95XS,
QGSP_FTFP_BERT_95, QGSP_FTFP_BERT_95XS.</LI>
</UL>
<B>Visualization</B> and <B>Interfaces</B>
<UL>
<LI>Visualization now supports multi-threading with basically the same feel as
in sequential mode. Note however that if your application includes special
visualization behaviors involving direct C++ calls to specific visualization
draw methods, these parts of your visualization will only appear in sequential mode.</LI>
<LI>Added command to display magnentic field: /vis/scene/add/magneticField.
For details, see the command guidance.</LI>
</UL>
<A NAME="5."></A>
<HR>
<!-- ============================================== -->
<H2>5. Expected effects on physics and computing performance</H2>
<B>Electromagnetic physics</B>
<UL>
<LI>About 5% speedup is expected mainly due to migration from
std::log, std::exp to G4Log and G4Exp functions.</LI>
</UL>
<B>Hadronic physics</B>
<UL>
<LI>Simulated hadronic showers with the recommended physics list
FTFP_BERT remain similar to those obtained with Geant4 9.6,
except for tungsten-based calorimeters, where the energy response
becomes lower, and lateral shape narrower, mainly due to the
improved simulation of neutron capture.</LI>
<LI>Slight (few percent) CPU improvement for the simulation of
hadronic showers with FTFP_BERT physics list with respect
to Geant4 9.6.</LI>
<LI>Possible larger variations (for both observables and CPU speed)
for the simulation of hadronic showers with other physics lists
(e.g. QGSP_BIC) with respect to Geant4 9.6, mainly due to the
replacement of parameterized (Gheisha-like) model LEP/HEP with
Fritiof and/or Bertini models.</LI>
</UL>
<B>Sequential application with multi-threaded Geant4 library</B>
<UL>
<LI>If a Sequential application is linked with the Geant4 library
that is compiled in multi-threaded mode, a small performance
overhead (~1%) may be observed.</LI>
</UL>
<P> </P>
<A NAME="6."></A>
<HR>
<!-- ============================================== -->
<H2>6. Known Run-Time Problems and Limitations</H2>
For a complete list of outstanding run-time problems and to submit any
problem you may find while running this version of Geant4, please refer
to the
<A TARGET="ext" HREF="http://cern.ch/geant4/problemreport">Geant4 Problem
Reporting System</A>.
<P> </P>
<A NAME="7."></A>
<HR>
<!-- ============================================== -->
<H2>7. Compilation Warnings</H2>
There may be a few compilation warnings on some platforms.
We do not believe that any of these lead to incorrect run-time behaviour.
<P> </P>
<A NAME="8."></A>
<HR>
<!-- ============================================== -->
<H2>8. Geant4 Software License</H2>
A Software License applies to the Geant4 code.
Users must accept this license in order to use it. The details and the list of
copyright holders is available at
<A href="http://cern.ch/geant4/license">http://cern.ch/geant4/license</A>
and also in the text file <TT>LICENSE</TT> distributed with the source code.
<P> </P>
<A NAME="9."></A>
<HR>
<!-- ============================================== -->
<H2>9. Detailed list of changes and fixes</H2>
These are the main new features/fixes included in this release since the
last patched public release (for more detailed lists of fixes/additions,
please refer to the corresponding History files provided in most packages):
<P> </P>
<A NAME="conf-notes">
<H3><I>Configuration</I></H3></A>
<UL>
<LI>CMake:
<UL>
<LI>Added 'multithreaded' component to indicate if Geant4 is built with
multithreading. If requested, and the build is multithreaded, append
the -DG4MULTITHREADED compile definitions.
Added build option GEANT4_BUILD_MULTITHREADED set to OFF by default.
Use -pthread flag for clang and gcc compilers.</LI>
<LI>Added patch for self-location to C-shell template generation.
Addressing problem report
<A HREF="http://bugzilla-geant4.kek.jp/show_bug.cgi?id=1399">#1399</A>.</LI>
<LI>Enabled option GEANT4_USE_SYSTEM_ZLIB to locate system zlib if
requested and otherwise use internal version.
Addressing probem report
<A HREF="http://bugzilla-geant4.kek.jp/show_bug.cgi?id=1322">#1322</A>.</LI>
<LI>Added build mode dependent compiler definition to the build of each
target in the form GEANT4_DEVELOPER_[CONFIG] where [CONFIG] is the
uppercased build mode. Addressing problem report
<A HREF="http://bugzilla-geant4.kek.jp/show_bug.cgi?id=1353">#1353</A>.</LI>
<LI>Added build option GEANT4_BUILD_TPMALLOC (defaults to OFF) which can
be enabled on UNIX platforms to optionally allow through LD_PRELOAD
the use of tpmalloc in place on system malloc in multi-threaded mode.
Modality currently disabled.</LI>
<LI>Corrected output of "--has-feature" for CLHEP feature.
Addressing problem report
<A HREF="http://bugzilla-geant4.kek.jp/show_bug.cgi?id=1477">#1477</A>.</LI>
<LI>Added FindTBB.cmake module for Intel Threading-Building-Blocks library.</LI>
<LI>Fix in FindROOT.cmake script to remove "/usr/include" from list of
include directories passed to rootcint when generating dictionaries.
Workaround for a bug experienced in rootcint.</LI>
<LI>Set variables GEANT4_USE_BUILTIN_{CLHEP,EXPAT,ZLIB} when the builtin
versions of these packages are used. This is to assist the generation
of Geant4Config.cmake using simple expansion variables.</LI>
<LI>Tidy up layout in scripts and removed obsolete files and documentation.</LI>
<LI>Removed GEANT4_INSTALL_EXAMPLES option. Always install 'example' directory.</LI>
<LI>Suppress error messages from FindAIDA module for informative options.
Addressing problem report
<A HREF="http://bugzilla-geant4.kek.jp/show_bug.cgi?id=1485">#1485</A>.</LI>
<LI>Corrected check for clang version. Fixes problem with being unable to
change C++ Standard for clang when using latest version.</LI>
<LI>Disabled granular libraries build model issue fatal error if
GEANT4_BUILD_GRANULAR_LIBS variable is set.</LI>
<LI>Added FindXvfb checking if fake X server Xvfb is installed in system.</LI>
<LI>When building in multithreaded mode on a UNIX system, added verification
check for support of thread local storage.</LI>
<LI>Implemented new export function for datasets.
Added new '--datasets' argument to print out space separated dataset
name, envvar name and path, with information for each dataset on a
separate line. Implemented new --check-datasets and --install-datasets
tasks; the former checks that the known datasets are installed in the
configured location, reporting status; the latter is a stub for
implementing post-install download and unpack of datasets.</LI>
<LI>Fixed bug in configuration of binary directory PATH which resulted in
G4INCLUDE being overwritten.</LI>
<LI>Added support for use of experimental USolids module through the compiler
flag G4GEOM_USE_USOLIDS. Marked as advanced option.</LI>
<LI>Fixes in geant4-config.in to add core compiler flags to cflags and
added support for export of multithreading variables.
Implemented post-install of datasets. Supplying the --install-data flag
will perform a download and install of all datasets to the configured data
directory.</LI>
<LI>Fix bug in checking of status of Xmu include path and library variables
that resulted in no error being emitted if these were not found.</LI>
<LI>Added FindTBB to exported modules.</LI>
<LI>Added section for support of Wt and new FindWt.cmake module.</LI>
<LI>Provided scripts for support of Qt5 external libraries.</LI>
<LI>Set compilation flags for MT mode on Intel compiler to
"-ftls-model=initial-exec -pthread" as for GNU and Clang.</LI>
<LI>Updated references to data libraries version for 10.0.</LI>
</UL></LI>
<LI>GNUMake:
<UL>
<LI>No longer supported, only for development/testing use.</LI>
</UL></LI>
</UL>
<A NAME="ana-notes">
<H3><I>Analysis</I></H3></A>
<UL>
<LI>Added file compression in Root manager. Added use of zlib needed for
compression.</LI>
<LI>Extended analysis managers for handling more than one ntuple.
Updated manager classes updated for MT; added data members and functions
for mergings histograms (Root, Xml) from worker to master:<BR>
<TT>void AddH1Vector(std::vector<tools::histo::h1d*>& h1Vector);</TT><BR>
<TT>void AddH2Vector(std::vector<tools::histo::h2d*>& h2Vector);</TT><BR>
These functions are automatically called on Worker::Write().
Added ThreadId to ntuple file names when processing on workers.<BR>
Introduced managers per object types (H1, H2, Ntuple, File) and
re-implemented G4VAnalysisManager as a composite of the objects managers;
removed enum G4VAnalysisManager::ObjectType and replaced related methods
with methods per object type.</LI>
<LI>Fix in G4RootAnalysisManager::WriteOnAscii().
Addressing problem report
<A HREF="http://bugzilla-geant4.kek.jp/show_bug.cgi?id=1473">#1473</A>.</LI>
<LI>Improved handling of files: empty files are now removed in CloseFile().
Moved generation of file name in G4VAnalysisManager.</LI>
<LI>Fixed deleting fNtuple in G4RootNtupleDescription (the ntuple is deleted
with Root file). Fixed the problem in Root files clean-up.</LI>
<LI>Introduced subdirectories: csv, g4tools, hntools, management, root, xml.
Updated build scripts accordingly.</LI>
<LI>Adapted to use new interface with namespace for functions in G4Threading.</LI>
<LI>Added possibility to define logarithmic binning for H1 and H2.</LI>
<LI>Reorganized messenger classes per objects: they are now associated
with the public interface (G4VAnalysisManager).</LI>
<LI>Fixed incorrect setting of the list of free blocks in the Root file.
Addressing problem report
<A HREF="http://bugzilla-geant4.kek.jp/show_bug.cgi?id=1523">#1523</A>.</LI>
<LI>Fixed saving binScheme in H2 information.</LI>
<LI>Adapted to new namespace interface from G4Threading.
Use thread Id (now available) in generating file names instead
of thread Pid.</LI>
<LI>Do not call WriteH1[2]() when no histograms are defined. This allows to
run application which uses only ntuples without a master instance of the
analysis manager.</LI>
<LI>Removed static G4AnalysisManager::Create(bool) function; the master/worker
is now identified automatically.</LI>
<LI>Reimplemented G4AnalysisManagerState::IsMT() with use of G4Threading
functions.</LI>
<LI>Removed virtual declaration for GetH1, GetH2, GetNtuple functions
in manager classes (to follow NVI pattern).</LI>
<LI>Updated histogramming tools to g4tools-1.7.0.</LI>
</UL>
<A NAME="digits-notes">
<H3><I>Digitization & Hits</I></H3></A>
<UL>
<LI>Added Merge() methods to G4ScoringManager and G4VScoringMesh, needed
for multi-threading.</LI>
<LI>Changed method names in G4VScoringMesh and derived classes.</LI>
<LI>Added missing options in command-based scorers in G4ScoreQuantityMessenger
and G4ScoreQuantityMessengerQCmd.</LI>
<LI>Added protoype cloning mechanism for sensitive-detectors, needed for
multi-threaded mode.</LI>
<LI>The pointer is now overwritten if a detector of same name is registered
to G4SDManager. Issuing warning from G4SDStructure whene same detector name
is used, if verbose level is set to 1 or higher..</LI>
<LI>Issuing warning message if G4VReadOutGeometry is used. Readout geometry
is no longer supported in version 10.0.</LI>
<LI>Replaced deprecated calls to G4Sphere accessor methods in scorer classes.</LI>
</UL>
<A NAME="emstd-notes">
<H3><I>Electromagnetic Processes</I></H3></A>
<LI><B>Adjoint</B>:
<UL>
<LI>G4AdjointPhotoElectricModel: use G4PEEffectFluoModel instead of
obsolete G4PEEffectModel.</LI>
<LI>Modifications for limitation of convergence peak.</LI>
<LI>G4AdjointBremsstrahlungModel: biased the gamma->e.- reverse brem CS
by factor 100.</LI>
<LI>G4AdjointComptonModel: biased the CS by a factor 0.1.</LI>
<LI>G4ContinuousGainOfEnergy: changed interface to G4VEmFluctuation.</LI>
<LI>G4AdjointhMultipleScattering: use G4UrbanMscModel instead of Urban95.</LI>
</UL></LI>
<LI><B>DNA</B>:
<UL>
<LI>Promoted to thread-global storage following classes:
G4DNAGenericIonManager, G4DNAMolecularMaterial and
G4DNAMolecularReactionTable.</LI>
<LI>G4DNASmoluchowskiReactionModel: enhanced exception description.</LI>
<LI>G4ITTrackingInteractivity: added Initialize() method to simplify
initialization of daughter classes.</LI>
<LI>G4DNAChemistryManager: added AddEmptyLineInOuputFile() method.</LI>
<LI>Added G4KDMap utility class.</LI>
<LI>Requires new data-set G4EMLOW version 6.35.</LI>
<LI>Added G4DNAIons. Adapted G4DNAGenericIonsManager to use of G4DNAIons.
<LI>Fix in G4VITProcess to not override SubtractNumberOfInteractionLengthLeft()
method from G4VProcess, as no longer a virtual methood since release 9.6.</LI>
<LI>Enhanced G4DNAChemistryManager to be the main interface exposed to user.</LI>
<LI>Removed G4VERBOSE testing in G4DNABrownianTransportation::BuildPhysicsTable().</LI>
<LI>Improved MT compatibility.</LI>
</UL></LI>
<LI><B>High Energy</B>
<UL>
<LI>G4mplIonisationModel, G4mplIonisationWithDeltaModel: changed interface
to G4VEmFluctuations.</LI>
<LI>G4hPairProductionModel: substituted SetCurrentElement() by SetElement()
to avoid clash with the base class method.</LI>
<LI>G4hBremsstrahlung: use inheritence of G4MuBremsstrahlung; removed
unused headers.</LI>
<LI>G4hPairProduction: use inheritence of G4MuPairProduction; removed
unused headers; lowestEnergy limit should not be lower than 8*mass
because in that case the model is not applicable.</LI>
<LI>G4hPairProductionModel: do not call obsolete SetElement() method;
use G4Log and G4Exp.</LI>
<LI>G4hBremsstrahlungModel: use G4Log.</LI>
<LI>G4mplIonisationModel, G4mplIonisationWithDeltaModel: fixed electron
gas ionisation part; before models were working correctly for
very heavy monopoles in Silicon and not accurate for other media.</LI>
</UL></LI>
<LI><B>Low Energy</B>
<UL>
<LI>G4IonDEDXHandler, G4LivermoreGammaConversionModel,
G4IonParametrisedLossModel, G4PenelopeBremsstrahlungAngular: moved
call to SetSpline(true) to be always after vector is filled; only in
that case Spline interpolation is enabled, according to the most
recent version of G4PhysicsVector.</LI>
<LI>G4LowEPComptonModel: fixed numerical problem detected with FPE.
Withdrawn dependency on G4HadTmpUtil.</LI>
<LI>Fixed Mi shell cross-section computation in G4teoCrossSection.</LI>
<LI>G4AtomicDeexcitation is cloned from G4UAtomicDeexcitation.</LI>
<LI>Added protection for MT mode in G4PenelopeRaylModel.</LI>
<LI>G4LivermoreRayleighModel, G4LivermoreGammaConversionModel,
G4LivermorePhotoElectricModel: migration to MT. Sharing of internal tables
between threads; added two new methods InitialiseLocal() and
InitialiseForElement().</LI>
<LI>Migrated G4LivermoreComptonModel and G4LivermoreBremsstrahlungModel to MT.
Migrated to MT Penelope Bremsstrahlung and e+ annihilation.models; the
angular generator of Penelope Bremsstrahlung is kept thread-local.
Migrated to MT Penelope Compton asnd Ionisation models and related
helper classes (including Penelope PIXE).
Migrated to MT G4PenelopePhotoElectricModel, G4PenelopeRayleighModel
and G4PenelopeGammaConversionModel.
Enforce const for G4PenelopeBremsstrahlungFS methods used by the workers.</LI>
<LI>G4IonDEDXScalingICRU73: removed GetIon() for reference Fe and Ar, but use
G4IonTable::GetIonMass() instead to prevent unnecessary instantiation of
ion objects for individual threads.</LI>
<LI>Improved CPU performances of G4PenelopePhotoElectricModel.</LI>
<LI>G4LivermoreComptonModel, G4LivermoreGammaConversionModel,
G4RayleighAngularGenerator: use G4Log, G4Exp.</LI>
<LI>Fixed Exception on G4PenelopeOscillatorManager for specific materials.</LI>
<LI>Adopt G4Cache in G4PenelopeBremsstrahlungFS, to better dynamic allocation
in a MT-mode. Avoid deletion of physics-vectors in destruction of Livermore
and Penelope models.</LI>
<LI>G4LivermoreGammaConversionModel, G4LivermoreRayleighModel,
G4LivermorePhotoElectricModel, G4LivermoreComptonModel: more accurate read
of data from file at run time. Do not upload data in SampleSecondaries()
method in G4LivermorePhotoElectricModel, instead kill the gamma.</LI>
<LI>Added G4MicroElec* processes and models in replacement of G4MuElec*.</LI>
<LI>Fixed Coverity defects.</LI>
</UL></LI>
<LI><B>Muons</B>
<UL>
<LI>G4MuPairProductionModel: extended grid of differential cross-section
tables (from 8 to 40 points in muon energy);
Added check on max energy to reduce number of bins in muon energy.
Providing different initialisation for master and worker threads,
sharing element selectors. Added protection and warning message
if 'p1=p2' in SampleSecondaries().
Changed signature of the method MinPrimaryEnergy().
Replaced calls to pow() with G4Pow.
Reimplemented sampling table as G4ElementData with 2D-tables per
atomic number; rewritten sampling algorithm, data fully shared
between threads. Fixed bining to 1000 for internal sampling table.
Perform common initialisation
of internal variables for all threads; fixes remaining cases of event
non-reproducibility in MT mode.
Merged SetElement() and MaxSecondaryEnergy() methods into one
MaxSecondaryEnergyForElement() to improve performance and event
reproducibility.
Fixed problem with the end of the spectra by cleanup initialisation of
sampling table.</LI>
<LI>G4MuMultipleScattering: G4UrbanMscModel is now the default.</LI>
<LI>G4MuBremsstrahlungModel: removed 'partialSubSigma' data structure,
use G4ElementSelectors instead; providing different initialisation for
master and worker threads sharing element selectors.</LI>
<LI>G4MuBremsstrahlungModel: Reduced 'minThreshold' from 1 keV to 0.9 keV to avoid extra warning
printout.
Fix to avoid unnecessary repeated initialisation of element selectors
if model is shared between particle and anti-particle.</LI>
<LI>G4MuPairProductionModel, G4MuBremsstrahlungModel: added
MinPrimaryEnergy() method implementation (all cross-section tables
will start from the reaction threshold).</LI>
<LI>G4MuBremsstrahlung: changed signature of method MinPrimaryEnergy().</LI>
<LI>G4MuPairProduction: removed unused headers; lowestEnergy limit
should not be lower than 8*mass because the model is not applicable.
Improved initialisation printout.</LI>
<LI>G4MuBremsstrahlungModel, G4EnergyLossForExtrapolator, G4MuBetheBlochModel:
use G4Log and G4Exp.</LI>
<LI>G4EnergyLossForExtrapolator: substitute G4eBremsstrahlungModel with
G4SeltzerBergerModel. Use cut DBL_MAX to avoid creation of
G4EmSelectors in lazy initialisation.</LI>
<LI>G4MuBremsstrahlungModel: set lowest energy to 1 GeV.</LI>
</UL></LI>
<LI><B>Polarisation</B>
<UL>
<LI>G4ePolarizedBremsstrahlungModel: substitute G4eBremsstrahlungModel with
G4SeltzerBergerModel.</LI>
<LI>Corrected destrucor for G4ePolarizedIonisation, G4PolarizedCompton and
G4eplusPolarizedAnnihilation.</LI>
</UL></LI>
<LI><B>Standard</B>
<UL>
<LI>G4ModifiedTsai, G4PairProductionRelModel, G4WentzelOKandVIxSection,
G4WentzelVIRelXSection: removed obsolete methods and headers.</LI>
<LI>G4WentzelVIModel: more clean logic of sampling for single scattering
mode.</LI>
<LI>G4UrbanMscModel: copied from G4UrbanMscModel96 and make become default
for G4eMultipleScattering and G4hMultipleScattering.
Modified format of warning about big scatterings.
Modification in SampleCosineTheta() to provide higher stability versus step size.
Modified to use G4Pow.</LI>
<LI>Removed obsolete models: G4UrbanMscModel90, G4UrbanMscModel92, G4UrbanMscModel93,
G4UrbanMscModel95, G4UrbanMscModel96, G4eBremsstrahlungModel and
G4PEEffectModel.</LI>
<LI>G4PEEffectFluoModel: changed interface to SandiaTable allowing
materials to be shared between threads. Use const pointers to access
Sandia table array; changed access to G4SandiaTable in
ComputeCrossSectionPerAtom() by using pointer of G4MaterialCutsCouple
(before static method was used).</LI>
<LI>G4SeltzerBergerModel, G4PAIxSection, G4PAIySection,
G4GoudsmitSaundersonTable, G4GoudsmitSaundersonMscModel: removed
end-line in printout from G4ExceptionDescription.</LI>
<LI>G4SeltzerBergerModel: increased 'elowlimit' in method
SamplingSecondaries() from 10 to 20 keV in order to fix problem of
majoranta exceeded in heavy media. Reduced limit on number of warning
printouts. Changed interface to use read-only G4Physics2DVector.</LI>
<LI>Fixes issue of zero step length for eIoni, eBrem and annihilation in
flight. Added new geometrical limit 0.01 nm to allow scattering in very
small steps. Use G4Pow in compute transport cross section.</LI>
<LI>G4eplusAnnihilation: use G4VParticleChange interface to add
secondary track for more clean weight update; cleanup headers.</LI>
<LI>G4eCoulombScatteringModel, G4hCoulombScatteringModel,
G4eSingleCoulombScatteringModel: use G4IonTable::GetIon() instead
of G4ParticleTable interface to create a recoil ion.</LI>
<LI>G4KleinNishinaModel: added protection and warning against possible
energy non-conservation due to inconsistency in shell energies.</LI>
<LI>G4PEEffectFluoModelL use binding energy from G4LEDATA and not from
G4AtomicShell class in the case when fluoresence is enabled in order
to provide energy balance.</LI>
<LI>G4PEEffectFluoModel, G4KleinNishinaModel: correction to ensure energy
conservation when fluorescence is on.</LI>
<LI>G4WaterStopping: enable Spline after vector with data is filled,
according to last G4PhysicsVector modifications.</LI>
<LI>G4eCoulombScatteringModel: do not use ElementSelectors for ions.</LI>
<LI>G4hIonisation: added special treatment for ions.</LI>
<LI>G4ScreeningMottCrossSection: fixed numerical problem for very small
scattering angles.</LI>
<LI>G4PAIModel, G4PAIySection: fixed initialisation.
Added G4SandiaTable as a class member in G4PAIModel.
G4PAIPhotonModel: added extra methods.</LI>
<LI>G4BohrFluctuations, G4IonFluctuations, G4PAIModel, G4PAIPhotonModel,
G4UniversalFluctuation: changed interface to G4VEmFluctuation; in
SampleFluctuations() G4Material pointer is substituted by
G4MaterialCutsCouple pointer.</LI>
<LI>G4PAIModel: corrected usage of indexes.</LI>
<LI>G4IonFluctuations, G4UniversalFluctuations: use G4Pow for log(), exp(),
pow() in run time methods; expected slightly improve CPU performance.</LI>
<LI>G4PAIModelData: new class to handle PAI internal data.</LI>
<LI>G4PAIModel: data handling extracted to G4PAIModelData, data class may be
shared between threads. Code cleanup.</LI>
<LI>G4BetheBlochModel, G4BraggIonModel: returned back method MinEnergyCut()
in order to protect from cases reported in problem report
<A HREF="http://bugzilla-geant4.kek.jp/show_bug.cgi?id=1481">#1481</A>.</LI>
<LI>G4BetheHeitlerModel, G4KleinNishinaCompton, G4KleinNishinaModel,
G4PairProductionRelModel, G4eBremParametrizedModel: implemented
InitialiseLocal() method in order to share element selectors between threads.</LI>
<LI>G4DeltaAngle: angular generator for delta-electrons taking into account
electron motion. Use it in G4PAIModel.</LI>
<LI>G4SeltzerBergerModel: sanity check for MT mode when loading data.</LI>
<LI>G4BraggModel, G4BraggIonModel, G4BetheBlochModel, G4MollerBhabhaModel:
added possibility to use an angular generator.</LI>
<LI>Added new classes G4DeltaAngleFreeScat, G4PAIPhotModel and G4PAIPhotData.</LI>
<LI>G4ESTARStopping: added reading from G4LEDATA. Added ESTAR stopping power
data.</LI>
<LI>G4WentzelVIModel: added GetWVICrossSection() access method.</LI>
<LI>General cleanup of many classes: use G4Log and G4Exp.
Replaced use of std::pow(x,y) with G4Exp(G4Log(x)*y).
Moved 'static const' data initialisations to source to simplify MT setup.
Significant speedup of initialisation and some speedup at run time.</LI>
<LI>G4IonCoulombScatteringModel, G4eCoulombScatteringModel,
G4eSingleCoulombScatteringModel, G4hCoulombScatteringModel: if primary
particle is below low-energy threshold and is killed add its energy to
energy deposition and not to recoil energy; no effect on ordinary
simulation results.</LI>
<LI>Avoid deletion of physics-vector at destruction in G4ASTARStopping,
G4ESTARStopping, G4PSTARStopping, G4PAIModelData, G4PAIPhotData,
G4PAIModelData, G4PAIPhotData, G4PAIPhotonModel.</LI>
<LI>G4eBremsstrahlungRelModel, G4eCoulombScatteringModel: implemented
MinPrimaryEnergy() method needed to set low-energy limit for cross-section
tables.</LI>
<LI>G4PAIxSection, G4PAIySection: fixed problem of division by zero.</LI>
</UL></LI>
<LI><B>Utils</B>
<UL>
<LI>G4VMultipleScattering: reduced geometrical limit from 1 um to 0.01 um;
fixed list of models per multiple-scattering process for ions.</LI>
<LI>Removed obsolete classes G4VEnergyLoss, G4VBremAngularDistribution.</LI>
<LI>G4VEmProcess, G4VMultipleScattering: removed obsolete methods
SetModel() and Model(). Removed calls to obsolete methods in
G4LossTableManager.</LI>
<LI>G4VEmProcess: fixed CrossSectionPerVolume() method, use extra 'tablePrim'
for high energy if this table is defined.</LI>
<LI>G4ionEffectiveCharge: static array become "const G4double".</LI>
<LI>G4LossTableManager, G4EmModelManager: removed end-line from description
of exceptions.</LI>
<LI>G4VEnergyLossProcess, G4VEmProcess: clean up filling of secondary
particles to particle change; use AddSecondary() from G4VParticleChange
in all cases; little performance improvement expected.
Density factor correction array is assigned to a process in
BuildPhysicsTable() instead of PreparePhysicsTable() in order to get
correct pointers in worker threads.</LI>
<LI>G4VEnergyLossProcess: avoid unnecessary deletion of tables between
runs. Fixed CrossSectionPerVolume() method.
Make ion initialisation assuming that each ion may have an individual
process. Do not destroy old tables in worker thread for the new run.
Added local cache inside GetRangeForLoss() method.</LI>
<LI>G4VEmModel: added extra methods needed for MT: InitialiseLocal(),
InitialiseForMaterial(), InitialiseForElement(), GetElementSelectors().
Take into account reaction threshold when initialising
G4EmElementSelectors; set smallest number of bins to 3 (was 5) and
fixed initialisation. Fixed SetCrossSectionTable() method.</LI>
<LI>G4VEnergyLossProcess, G4VEmProcess, G4VEmModel, G4VMscModel: introduced
cache for indexes in tables to restore CPU performance after change
made to G4PhysicsVector, now read-only.</LI>
<LI>G4EmCalculator: added call to InitialiseForMaterial() to give
possibility to a model to read data in any thread.</LI>
<LI>G4LossTableBuilder: optimized number of bins for tables built for
models.</LI>
<LI>G4LossTableManager: added new method to provide correct copy and setup
process parameters in MT mode. Optimisation for MT mode; do not insert
concrete ions into particle/energy loss process map, only G4GenericIon
is inserted; added LocalPhysicsTables() method to copy pointers of
G4PhysicsTables from master to local threads.</LI>
<LI>G4LossTableManager, G4VEnergyLossProcess, G4VMultipleScattering,
G4VEmModel, G4VMscModel: implemented copy of transport cross-sections
tables from master to worker threads; implemented a possibility to copy
element selectors from master to worker threads (model may use or not
this feature).</LI>
<LI>G4VEmFluctuationModel changed interface in SampleFluctuations() method;
G4Material pointer is substituted by G4MaterialCutsCouple pointer.
Change required by PAI model
Changed interface to G4VEmFluctuationModel in G4VEnergyLossProcess.</LI>
<LI>G4EmModelManager: check MinEnergyCut() method.
Addressing probkem report
<A HREF="http://bugzilla-geant4.kek.jp/show_bug.cgi?id=1481">#1481</A>.</LI>
<LI>G4VEmProcess, G4LossTableManager: added master/worker initialisation
to discrete processes.</LI>
<LI>G4VEnergyLossProcess, G4VMultipleScattering: use GetMasterProcess()
method in PreparePhysicsTable() and BuildPhysicsTable() methods.</LI>
<LI>G4VEmAngularDistribution: added extra virtual method
SampleDirectionForShell().</LI>
<LI>G4VMultipleScattering: increased lowestLimit from 1 eV to 10 eV.
Added Get/Set methods for this parameter. Urban multiple-scattering model
cannot handle low-energy e- below 10 eV.</LI>
<LI>G4EmModelManager: fixed control on cut value per G4Region, the problem was
observed when PAI model is used in a some region with very low cut.</LI>
<LI>G4VEmProcess, G4VEnergyLossProcess, G4VAtomDeexcitation: added model ID
for secondary tracks (allows to user code to distingwish secondary gamma
and electrons generated by atomic de-excitation model).</LI>
<LI>G4VEmModel: added extra flag 'useAngularGenerator' and Get/Set methods.
Added extra method SelectRandomAtomNumber().
Fixed bug in Fano-Cavity test: element selectors are created even if cut
value is high.</LI>
<LI>G4EnergyLossMessenger, G4EmProcessOptions: added UI command and interface
to set verbose level for worker thread.</LI>
<LI>New class G4AngleDirect, dummy angular generator.</LI>
<LI>G4ionEffectiveCharge: use G4Log, G4Exp, G4Pow.</LI>
<LI>Adopt G4ThreadLocalSingleton in definition of G4LossTableManager.
Avoid deletion of physics-vector at destruction in G4VEmProcess,
G4VEnergyLossProcess and G4VEmModel.</LI>
<LI>G4VEmProcess, G4VEnergyLossProcess: fixed bug in GPIL computation when a
particle enters a volume in which current EM model has different activation
energy range than in previous region (due to this bug interation happens
on the boundary of G4Region in microdosimetry advanced example).</LI>
<LI>G4VEmModel: improved definition of min and max energy for element selectors.</LI>
<LI>Fixed Coverity defects.</LI>
</UL>
<LI><B>Xrays</B>
<UL>
<LI>G4Scintillation: for consistency, give the 'YieldRatio' priority in
cases when the 'ExcitationRatio' is both 0.0 or 1.0.
Fixed bug in 'ScintillationYieldByParticleType' mode to correctly
produce photons for nonlinear scintillators, accounting for variable
particle step size in the scintillator (dependent on tracking and
production cuts) and attempting to best simulate photon density along
the particle track.
Fixed incorrect call to GetMaxValue() with GetMaxEnergy().</LI>
<LI>G4Cerenkov, G4Scintillation: added BuildPhysicsTable() method which is
doing initialisation as before but at the moment when material list is
fully defined; it is assumed that the list of materials is not changed
for the next runs.</LI>
<LI>G4VXTRenergyLoss, G4StrawTubeXTRadiator: use const declaration to
array of G4SandiaTable values.</LI>