-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathBeta4.11.1-1.txt
1083 lines (1045 loc) · 60 KB
/
Beta4.11.1-1.txt
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
Geant4 11.1-beta-01 Release Notes
---------------------------------
30 June 2022
Migration Notes & Main New Features
-----------------------------------
o Added ability to optionally check for overlaps in parallel geometries
through the "/geometry/run/test" UI command.
o Improved computation of surface area and cubic volume in specific solids.
o Revised implementation of G4CoupledTransportation: now inheriting from
G4Transportation and removed duplicated variables and methods.
o Provided choice of the model of fluctuations with the default
G4UrbanFluctuation, alternative G4UniversalFluctuation (more accurate for
thin targets), and G4LossFluctuationDummy (no fluctuations); new UI command
defines model of fluctuations for the full setup; inside user physics lists
it is possible to configure different fluctuation models per G4Region.
o In G4UrbanMscModel, moving safety computation before step limitation
algorithms in order to save few instructions; should not affect results.
o New G4TransportationWithMsc specialised tranportation process combined with
multiple-scattering, enabled by default with G4EmStandardPhysics_option1.
May be enabled for any EM physics via the new UI command. Added also
possibility to enable internal stepping.
o In EM processes, updated methods to access cross-sections at run time.
o In G4EmStandardPhysics_option3, use options providing more accurate
simulation without loss of CPU performance; significantly improving
fanoCavity results.
o Use G4LinhardSorensenIonModel for GenericIon in physics-lists for
G4EmStandardPhysics_option3, G4EmStandardPhysics_option4,
G4EmPenelopePhysics and G4EmLivermorePhysics.
o G4EmStandardPhysics_option4: use Penelope ionisation model for e- below
100 keV.
o Set EPICS2017 cross sections to be the default for Livermore gamma processes.
o New utility class G4EmDNABuilder, providing instantiation of standard
and DNA processes/models in physics lists. Made G4EmDNAPhysics the base
class for DNA physics constructors. Optimised IRT-syn DNA model.
o Added parameters in DNA including the chemical molecules and reaction
list involved in the radiolysis.
o In G4DNA, incorporated model based on RPWBA to transport protons at
100-300 MeV and updated data structure to improve performance of the
mesoscopic model.
o Added flush() method to the fast simulation models, allowing to process the
input buffer of the fast simulation model before the end of an event;
triggered inside the event loop of G4EventManager, when the stack is empty.
o Added a new utility method to access a process via sub-type.
o New integral method for hadronic processes.
o Extended cross-sections for computation of light anti-nuclei on hydrogen.
o In G4Evaporation and G4UnstableFragmentBreakUp, completed fix about
production of unphysical fragments.
o In hadronic de_excitation, added limitation (A < 30) on decay of unphysical
fragment, allowing for removal of light unphysical states and providing
improved isotope production for the spallation fragments.
o Improved FTF fragmentation to better describe the production of strange
mesons and baryons in proton-proton interactions, as measured by the
NA61/SHINE Collaboration.
o Added option to G4HadronicParameters to control the diffraction
dissociation for nucleon projectile on target nucleus with baryon number
greater than 10: by default, both projectile and target diffraction are
switched off (but they are both active in the case of target nucleus with
baryon number below or equal to 10; if instead the flag is set to "true",
then both projectile and target diffraction are activated regardless of
the target nucleus).
o Added temporary check and protection in G4HadronicProcess against anomalous
condition leading to rare crashes recently observed with neutronHP and
fixed also rare reproducibility problems in particleHP.
o Implemented Twinkling in visualization, i.e, the rhythmic variation of
brightness of given touchables.
o Introducing 'FALLBACK' visualisation drivers for TSGQt and VTKQt and new
commands to facilitate the drawing of plots at the end of a run.
o Retired "tasking" module and merged contents in "global" and "run"
categories.
o New meshing features in visualization. Allowing for multiple meshes in
a single screen; relevant for special mesh rendering. Improved graphics
representation.
o Use standard install location for CMake installation scripts, now being
installed in $CMAKE_INSTALL_PREFIX/lib/cmake/Geant4.
o Added required configuration to be able to generate DEB/RPM packages
with CPack.
o Dataset environment variables are now optional in CMake builds.
Consistently use G4FindDataDir() in place of std::getenv() in code for
accessing data-sets.
o Added support for Intel-icpx/icx compiler.
o Preliminary configuration support for Qt5 and Qt6.
o New set of extended examples, implementing different setups showing how
to score particle fluences.
o Updated tasking system to upstream PTL version 2.3.3.
o Build option with VecGeom requires VecGeom-1.2.0 or higher.
o Requires CLHEP-2.4.5.3 for external CLHEP installation.
o New data sets: G4EMLOW-8.1, G4NDL-4.7.
----------------------------------------------------------------------------
Technical Notes
---------------
o Tested platforms:
+ Linux, gcc-8.3.1.
Tested on 64 bit architectures (Intel or AMD) with Linux CentOS8.
Versions of Geant4 have also been compiled successfully on other
Linux distributions, Ubuntu, Debian, Suse or other RedHat systems.
+ MacOS 12.4, Apple LLVM/clang-13.1.6 (Intel or Apple Silicon).
+ Windows/10 with Visual C++ 14.31 (Visual Studio 2022)
o More verified configurations:
+ Linux, with gcc-9.3/10.3/11.2/12.1, clang-10/11.
+ Linux, with Intel-icc 2022.1, Intel-icx 2022.1.
+ MacOS 11.6 and 10.15, with Apple LLVM/clang-12.
+ Windows/10 with Visual C++ 14.29 (Visual Studio 2019)
o External dependencies
+ CLHEP-2.4.5.3, suggested for external installation of the CLHEP library.
+ VecGeom-1.2.0, for optional use of the VecGeom geometry primitives.
+ PTL-2.3.3, for external installation of the PTL tasking library.
o New data sets:
+ G4EMLOW-8.1, G4NDL-4.7.
Please refer to the Geant4 User Documentation:
http://cern.ch/geant4/support/user_documentation
for further information about using Geant4.
----------------------------------------------------------------------------
List of features and fixes included in this Beta release since 11.0.p02:
o Configuration:
-------------
+ CMake:
o Added support for Intel-icpx/icx compiler and updated compilation flags
for all Intel compilers.
o Enable ToolsSG and backends based on use of external libraries (Qt, X11,
Xm, Win32). Backends made non-mutally exclusive; removed
GEANT4_USE_TOOLSSG public CMake option.
o Avoid setting LD_LIBRARY_PATH configuration on MacOS; adding paths to
DLL into PATH on Windows.
o Corrected logic error in checking whether module is already composed.
o Deprecated tags `geant4_define_module`, `geant4_global_library_target`;
decouples the source code organisation and the module/library
composition commands; implementation reduced to emitting a CMake
warning message on what to replace with.
o Updated CMake build scripts in all modules, by replacing
`geant4_global_library_target` with direct file inclusion and call to
`geant4_add_category` to define library build from source modules.
o Reorganised DLL import/export flags for single-module categories.
o Set default value of GEANT4_BUILD_BUILTIN_BACKTRACE to OFF.
o Do not use CMAKE_VERBOSE_MAKEFILE when building tests.
o Rationalized declaration and use of internal builds of required
externals CLHEP, zlib, expat, PTL and tools libraries.
o Support declaration and composition of header-only modules and libraries.
o Adding geant4_module_sources command to enable appending of
headers/sources to a module after creation.
o Providing GEANT4_BUILD_ENABLE_ASSERTIONS option to enable assert() in
all release build modes (Release, RelWithDebInfo, MinSizeRel).
o Forward `CMAKE_<LANG>_FLAGS[_<MODE>]` flags to `geant4_add_test` so that
a consistent set is used through the project.
o Removed retired "tasking" module and library from configuration files.
o Removed deprecated functions in G4DeveloperAPI and fixed typo that
prevented installation of headers.
o Allow library composition to be overriden in developer builds.
o Do not use "readlink -f" to support pre-Monterey macOS systems.
o Adding -Og to GNU/Clang default debug flags.
o Copy .clang-tidy file to build directory to assist run-clang-tidy
reporting.
o In G4ConfigurePkgConfigHelpers.cmake, geant4-config.in for geant4-config
generation: adding new flag "--features" (add vtk and qt3d features);
allow use of md5sun if openssl missing; canonicalise prefix path.
o Added options --sh and --csh to geant4-config script.
o In G4ConfigureGNUMakeHelpers.cmake for geant4.[c]sh, geant4.bat
generation: allow full path source in zsh, sh; unset local variables at
the end; introducing GEANT4_DATA_DIR, with all data-set paths relative
to this.
o Added commands for working with categories analagous to module commands.
o Preliminary configuration support for Qt5 and Qt6.
o Added required configuration to be able to generate DEB/RPM packages
with CPack.
o Use more standard install location for CMake files.
o Remove version from default installation directories.
o Rationalised interlinked PTL/TBB build options.
o G4ConfigureGNUMakeHelpers.cmake (geant4.[c]sh, geant4.bat generation):
use the environment variable GEANT4_DATA_DIR as top data directory; the
environment variables for individual dataset commented in scripts.
o Added source validation exception for G4FindDataDir generated header.
o New data set G4EMLOW-8.1 and G4NDL-4.7 with new TermalScattering data.
o Updated tag-IDs for 11.0-beta.
+ GNUMake:
o Added Linux-icx.gmk configuration for Intel OneAPI DPC++ compiler.
Updated compilation flags for Intel icc/icx compilers.
o Enable -pthread only for MT builds in other configurations.
o Retired "tasking" category and library from build.
o Analysis:
--------
+ Added UI commands for visualization: '/analysis/hn|pn/getVector'.
+ Changed namespace for g4tools code from "tools" to "toolx" for externals.
+ Use geant4_category_modules in CMake script to optionally add G4hdf5
module to category.
o Digits & Hits:
-------------
+ Canonicalise implementations of custom new() and delete() operators that
use G4Allocator. Removed un-needed/duplicated checks on static allocator
creation in member functions.
o Event:
-----
+ Added call to G4GlobalFastSimulationManager::Flush() method in the event
loop.
+ Canonicalise implementations of custom new() and delete() operators that
use G4Allocator.
o Externals:
---------
+ Rationalising externals builds to decouple them from the core
module/category definitions.
+ CLHEP:
o Synchronised with CLHEP-2.4.5.3.
+ g4tools:
o Updated to g4tools 6.0.1:
- Fixed compilation warnings on Intel compiler and Coverity defects.
- Use thread-safe version of gl2ps-1.4.2.
In gl2psPrintPostScriptPixmap(): pass greyscale, nbit in arguments
to avoid a dead code issue; in gl2psPDFgroupListInit(), fixed issue
for uninitialized pointer read; removed commented out code.
- sg/text: corrections in update_sg() due to copy-paste error.
- Moved g4tools code externals from "tools" to "toolx" module.
Concerns code related to Qt, Windows, X11, Xt, OpenGL, hdf5, expat,
mpi, zlib.
o In toolx/X11/base_session, check in show_window() that the window is
not already mapped.
+ ptl:
o Updated to upstream PTL version v2.3.3:
- New/improved support for initialization and finalization routines
in ThreadPool.
- Threading: fix in GetNumberOfPhysicalCpus(), to never return zero.
- Fixed verbose message to cerr to be protected within verbosity level.
- Fixes for C++20 compilation warnings and updates to build scripts.
- Removed outdated TiMemory implementation.
- Code formatting.
o Minor fixes for macOS/Clang and use as a subproject.
o Updated CMake install directory for PTL to match recent changes
in default install directories in Geant4.
o Use any existing value of PTL_SANITIZER_TYPE to set the cache value
to prevent override.
o Geometry:
--------
+ management:
o Get rid of heap allocations in G4BoundingEnvelope.
o G4ReflectedSolid: added GetCubicVolume(), GetSurfaceArea().
+ navigation:
o The "/geometry/run/test" UI command can now check for overlaps in
parallel worlds if "/geometry/run/check_parallel" is set to 'true'.
o G4Navigator: minor code improvements in ComputeSafety(), ComputeStep(),
and LocateGlobalPointAndSetup().
o Added constant 'kMassNavigatorId' in G4TransportationManager and make
use of it in G4SafetyHelper.
+ solids/Boolean:
o G4DisplacedSolid: added GetCubicVolume(), GetSurfaceArea().
+ solids/specific:
o G4GenericTrap: implemented calculation of volume using analytical
expression in GetCubicVolume(); in GetSurfaceArea(), improved
calculation of the area of lateral faces; removed private function
GetFaceCubicVolume(); private functions GetFaceSurfaceArea(),
GetTwistedFaceSurfaceArea() replaced with private function
GetLateralFaceArea().
o G4Ellipsoid: in LateralSurfaceArea(), enhanced calculation of the
lateral surface area.
o G4VTwistedFaceted, G4TwistedBox, G4TwistedTrd: optimised calculation
of volume and surface area.
o G4VTwistedFaceted: fCubicVolume, fSurfaceArea made protected;
GetCubicVolume() and GetSurfaceArea() no longer inlined and moved to
source.
o G4TwistedTubs: implemented GetSurfaceArea() based on analytical
expressions; added private functions GetLateralArea(), GetPhiCutArea().
o G4Hype: use analytical expression in GetCubicVolume() and
GetSurfaceArea().
o G4VTwistedFaceted: use numerical evaluation of a single integral to
calculate lateral face surface area.
o G4ExtrudedSolid, G4UExtrudedSolid: added default values for parameters
in the constructor with two z-sections. Added default constructor to
ZSection.
o Global:
------
+ Define G4lrint as std::lrint; removed unused G4lint and G4rint.
+ Imported from "Tasking" module all core interfaces that only depend on PTL.
+ Corrected G4ErrorPropagatorData destructor.
+ Commented out debug printout in G4ThreadLocalSingleton constructor.
+ Make dataset environment variables optional in CMake builds.
+ G4FindDataDir: correction for windows runtime, G4MULTITHREADED flag.
Use the environment variable GEANT4_DATA_DIR as top data dir.
+ Removed obsolete CMakeLists.txt script in "management" module.
Declare "HEPGeometry" dependencies as INTERFACE as the module is
header-only. Removed dependency on TBB which is not a direct dependency
of the global category.
+ Changed date for release 11.1-beta.
o Graphics Representations:
------------------------
+ HepPolyhedron, G4Polyhedron: added new constructors taking vertices and
faces; added derived classes HepPolyhedronTetMesh, G4PolyhedronTetMesh;
added SetVertex(), SetFacet() functions and made SetReferences() and
InvertFacets() public methods. Implemented JoinCoplanarFacets() function,
move constructor and move assignment operator.
+ Implemented faster version of HepPolyhedronTetMesh.
+ Revised HepPolyhedronEllipsoid, fixed visibility of edges in case of cut
ellipsoid.
+ G4Visible: added "user" data member 'fInfo' from G4VMarker, with access
and operator<<() functions, intended to offer the user/developer a way
of communicating information.
+ G4VisExtent: in Transform(), use 'const auto&' to avoid copying.
o Intercoms
---------
+ Applied set of clang-tidy modernize, readability and performance fixes.
o Interfaces
----------
+ G4InteractorMessenger: prevent propagation of "/gui/*" commands to workers.
+ Fixed compilation warning on Intel compiler for shadowing data.
+ Preliminary build support for Qt5 and Qt6.
+ Use geant4_module_sources to add optional sources in CMake script.
Added required G4VIS_USE_VTK_QT flag here instead of "Vtk" visualization
module. Added dependency on Qt5 Widgets to "common" sub-module CMake
script.
o Materials
---------
+ G4MaterialPropertyVector, G4OpticalMaterialProperties: organise material
property vectors in increasing order of energy.
Modified from GitHub PR#42 (https://github.com/Geant4/geant4/pull/42).
+ Corrected G4UCNMicroRoughnessHelper destructor.
+ Applied set of clang-tidy modernize, readability and performance fixes.
+ G4NistManager, G4NistMaterialBuilder, G4NistElementBuilder: use G4AutoLock
for code simplification.
+ Replaced getenv() calls for data variables with G4FindDataDir() in
G4IonStoppingData, G4MicroElecMaterialStructure and G4OpticalSurface.
+ G4Material: fixed trivial Coverity warnings.
o Parameterisations:
-----------------
+ Added flush() method to the fast simulation models. This method allows to
process the input buffer of the fast simulation model before the end of an
event. It is used when particles are grouped together before the
processing. The 'flush' is triggered inside the event loop of
G4EventManager, when the stack is empty. The fast simulation model may
add secondaries to the stack, which will then be processed by Geant4.
o Particles:
---------
+ In G4NuclieTable, replaced getenv() calls for data variables with
G4FindDataDir().
+ Minor code formatting.
o Physics Lists:
-------------
+ Constructors:
o Replaced getenv() calls for data variables with G4FindDataDir() in data
readers.
o electromagnetic:
- G4EmModelActivator: fixed mechanism to define PAI model per region.
- In G4EmStandardPhysics_option3, G4EmStandardPhysics_option4,
G4EmPenelopePhysics, G4EmStandardPhysicsSS, and G4EmLivermorePhysics
use G4LinhardSorensenIonModel for GenericIon.
- Adding possibility to enable new G4TransportationWithMsc for
multiple-scattering. Enabled by default in G4EmStandardPhysics_option1.
- G4EmBuilder: enable internal stepping in G4TransportationWithMsc
if requested.
- G4EmLivermorePhysics, G4EmPenelopePhysics, G4EmStandardPhysics_option4:
adopt identical configuration for msc, muon, hadron, and ion physics.
- G4EmLivermorePhysics, G4EmPenelopePhysics, G4EmStandardPhysics_option4,
G4EmStandardPhysics: selection of the model for energy loss
fluctuation is included in ionisation processes according to the type
defined in G4EmParameters.
- G4EmStandardPhysics, G4EmStandardPhysics_option3,
G4EmStandardPhysics_option4: use G4GammaGeneralProcess by default.
- G4GammaGeneralProcess: implemented new method GetCreatorProcess().
- G4EmStandardPhysics_option4: use Penelope ionisation model for e-
below 100 keV.
- G4EmBuilder: use check on process sub-type, do not substitute
G4CoupledTransportation with G4TransportationWithMsc.
- G4EmDNABuilder: new utility class, which provides instantiation of
standard and DNA processes/models; this reduces code duplication for
DNA physics, energy intervals for DNA models are defined in one place.
Added option2,3,4,6,8 configurations.
Added extra utility methods to find or to build electron processes.
- Made G4EmDNAPhysics the base class for DNA physics constructors.
Added interface to G4EmDNABuilder.
- G4EmDNABuilder, G4EmDNAPhysicsActivator: make consistent the
configuration of DNA physics on top of standard physics.
- Simplified code in G4EmDNAPhysics_option1, G4EmDNAPhysics_stationary,
G4EmDNAPhysics_option5 and G4EmDNAPhysics_stationary_option4.
- G4EmDNAPhysics_option6, G4EmDNAPhysics_option8: use "fast" option.
- G4EmDNAPhysics_option7, G4EmDNAPhysics_stationary_option6,
G4EmDNAPhysics_option3, G4EmDNAPhysics_stationary_option2: simplified
code.
- Added G4DNABrownianTransportation, SBS and IRT_syn models in
G4EmDNAChemistry_option3.
o gamma_lepto_nuclear:
- G4EmExtraPhysics, G4EmMessenger: use C++11 keywords; suppressed
broadcasting of UI commands.
o limiters:
- G4SpecialCuts: added setting of process type 'fGeneral' and sub type.
- G4MinEkineCuts: removed setting of process type 'fUserDefined'.
- Moved G4UserSpecialCuts class from "transportation" module.
+ util:
o G4PhysListUtil: added new utility method to access a process via
sub-type, simplified methods to access hadron processes.
Use dynamic_cast instead of static_cast.
o Electromagnetic Processes:
-------------------------
+ Adjoint:
o G4AdjointComptonModel, G4AdjointCSManager: use updated interface
to cross-section from G4VEmProcess.
o G4AdjointBremsstrahlungModel: use updated interface to G4EmModelManager.
+ DNA:
o Added G4DNAPolyNucleotideReactionProcess and G4VDNAHitModel classes for
DNA damage applications.
o Prefer pointer to 'const G4Material' where possible.
Removed useless 'const_cast' of G4VSensitiveDetector.
o Optimised IRT-syn model, use reaction radius and reaction type from the
reaction table.
o Deleted G4VReactionType, G4DNAReactionTypeManager, G4DNAIRT_geometries,
G4DNATotallyDiffusionControlled and G4DNAPartiallyDiffusionControlled.
o G4ITTransportation: Make PrepareState() more function-like, expect
semicolon.
o G4DNAPolyNucleotideReactionProcess: moved 'PrepareState' and 'State'
macros in source file; made PrepareState() more function-like, expect
semicolon; moved variable 'pMoleculeA' under G4VERBOSE.
o Added condition of water material for the OUTSIDE_OF_MOTHER_VOLUME
warning in G4DNAMolecularDissociation::DecayIt().
o Added protection in G4DNACPA100IonisationModel for cumulative
cross-section interpolation.
o Added flag 'OctreeFinder' in IRT_syn's Initialize() method.
o Added parameters including the chemical molecules and reaction list
involved in the radiolysis.
o Modified the macro in G4Molecule and G4ITType for linker problems on
Windows.
o Save local instances for recurrent access to particle definition in
G4DNAMillerGreenExcitationModel, G4DNARuddIonisationExtendedModel and
G4DNARuddIonisationModel.
o Revised code to use G4Pow and G4Log consistently.
o In G4DNARuddIonisationExtendedModel, do not include ions that are not
defined in G4DNAGenericIonsManager.
o Fix in G4KDTree algorithm. Addressing problem report #2235.
Minor code cleanup.
o Added G4VUserBrownianAction class, used in G4DNABrownianTransportation
and in G4DNAMolecularDissociation.
o Use int64_t for molecules width integer types.
o Added 'fResetScavenger' data member in G4SchedulerMessenger.
o Incorporation of model based on RPWBA to transport protons
at 100-300 MeV.
o Added G4DNARPWBAExcitationModel and G4DNARPWBAIonisationModel.
o Updated data structure to improve performance of the mesoscopic model.
o Change scavenging filter of the IRT beyond 1 us.
o Use thread-local flag in G4VMoleculeCounter.
o Replaced std::getenv() calls for data variables with G4FindDataDir()
in data readers.
o Corrected DNA ion definitions in G4DNARuddIonisationExtendedModel.
o Added missing headers inclusions for self-consistency.
+ Low Energy:
o G4LivermoreGammaConversionModel, G4LivermorePhotoElectricModel and
G4LivermoreGammaConversion5DModel: set Spline interpolation for EPDL97.
o Fixed use of potential uninitialised pointer in
G4AtomicDeexcitation::GenerateParticles(..).
o Replaced getenv() calls for data variables with G4FindDataDir() in data
readers.
o Removed Latin-1 characters from description in banners.
+ Muons:
o G4MuIonisation: added selection of the model for energy loss
fluctuations. Use G4MuBetheBloch model above 0.2 MeV.
o G4MuBremsstrahlungModel: moved low energy limit from 1 GeV to 100 MeV.
o G4MuPairProductionModel: moved low energy limit from 1 GeV to 850 MeV.
Some code cleanup: formatting, removed extra space lines.
+ Polarisation:
o Prefer pointer to 'const G4Material' where possible.
+ Standard:
o G4UrbanMscModel: moving safety computation before step limitation
algorithms in order to save few instructions; should not affect results.
Added two extra class members. Improved code comments.
Extended cache data with 5 variables for positrons;
removed unused headers; minor saving of instructions.
o G4eIonisation, G4hIonisation, G4ionIonisation: added selection of the
model for energy loss fluctuations.
o G4PairProductionRelModel, G4eBremsstrahlungRelModel,
G4PairProductionRelModel and G4eBremsstrahlungRelModel: added inclusion
of headers of G4Exp, G4Pow to to make translation unit self-consistent.
o In G4WentzelVIRelModel, G4WentzelOKandVIxSection,
G4LindhardSorensenIonModel and G4ICRU49NuclearStoppingModel, use
G4AutoLock.
o G4BetheHeitler5DModel: do not instantiate G4MuonPlus, G4MuonMinus inside
the model to allow usage of this class in physics lists without muons.
o G4eBremsstrahlung, G4hIonisation: improved initialisation.
o G4eBremsstrahlungRelModel, G4eBremParametrizedModel: code cosmetics.
o Run clang-tidy, use nullptr, default and auto keywords; removed unneeded
nullptr checks when deleting.
o Replaced getenv() calls for data variables with G4FindDataDir() in data
readers.
+ Utils:
o New G4TransportationWithMsc specialised tranportation process; added
related flag to G4EmParameters.
o G4EmConfigurator implemented model per region for
G4TransportationWithMsc. Updated interfaces.
o G4EmTableType: added 3d peak energy in the data structure needed for
Bremsstrahlung.
o G4VEnergyLossProcess: fill data structure for Bremsstrahlung type of
cross-section only in the master thread; do not repeat in each thread;
removed ineffective cache from run time computation of cross-section.
o G4EmParametersMessenger: improved instantion order of UI directories;
directories are created only in the master thread.
o G4EmModelManager: updated interface to Initialise() method;
removed obsolete method Update().
o G4VEmProcess, G4VEnergyLossProcess, G4VMultipleScattering: use updated
method of G4EmModelManager.
o G4EmParametersMessenger: restored UI command "/process/em/integral".
o G4VEmProcess: updated methods to access cross-section at run time;
implemented new virtual method GetCrossSection(); removed unused methods.
o G4EmCalculator: use updated method from G4VEmProcess.
Fixed variable shadowing.
o G4EmUtility: a new utility class.
o G4VMultipleScattering: updated arguments for AddEmModel(..),
SetEmModel(..), and EmModel(..) methods from G4VEmModel* to
G4VMscModel*.
o G4LowEnergyEmProcessSubType: added sub-type ID (66) for DNAScavenger
process.
o G4EmTableUtil: new utility to perform common computations at
initialisation.
o G4VEmModel, G4EmCalculator, G4EmConfigurator: use G4EmUtility.
o G4VEmModel, G4VEmProcess, G4VEnergyLossProcess, G4VMultipleScattering
and G4LossTableManager: use new utiity methods; updated sampling of
random elements in compounds and random isotopes; code cleanup.
o G4EmLowEParameters: change default photon database to EPICS2017.
o G4VEmProcess, G4VEnergyLossProcess: for integral method, use master
thread cross-section type and pointers directly; simplifying
initialisation.
o G4EmParameters: update flag to tri-state for enabling it.
Added extra parameter: type of fluctuation model.
o G4EmExtraParametersMessenger: fixed typo.
Addressing problem report #2492.
o G4VEnergyLossProcess: moved out common computations to G4EmTableUtil;
use G4EmDataHandler and removed unused headers/methods. Fixed trivial
Coverity warnings.
o G4VEnergyLossProcess, G4EmDataHandler: improved StorePhysicsTable(..)
method and debug printouts.
o G4EmParametersMessenger: added extra UI command to define fluctuations
model.
o Code cleanup with clang-tidy: use default constructors; nullptr, auto
and using keywords.
+ Xrays:
o Code cleanup with clang-tidy: use default constructors; nullptr and
auto keywords.
o Generic Processes:
-----------------
+ Management:
o G4VDiscreteProcess: added virtual method GetCrossSection()
needed for integral approach both in hadronics and EM modules.
Added virtual method MinPrimaryEnergy(..).
o G4VProcess: introduced new virtual method GetCreatorProcess().
+ Optical:
o Prefer pointer to 'const G4Material' where possible.
o Code cleanup with clang-tidy: use default constructors; auto keyword;
remove 'void' function argument; don't check for nullptr before delete;
use operator==() for string comparisons.
+ Parameterisation:
o Added flush() method to the fast simulation models. This method allows
to process the input buffer of the fast simulation model before the end
of an event. It is used when particles are grouped together before the
processing. The 'flush' is triggered inside the event loop of
G4EventManager, when the stack is empty. The fast simulation model may
add secondaries to the stack, which will then be processed by Geant4.
+ Solids State:
o In G4LatticeReader, replaced getenv() calls for data variables with
G4FindDataDir().
+ Transportation:
o Revised implementation of G4CoupledTransportation: now inheriting from
G4Transportation and removed duplicated variables and methods; use new
constant 'kMassNavigatorId' from G4TransportationManager.
o G4CoupledTransportation: set flags from G4Transportation: replaced
'fFirstStepInAnyVolume' with 'fFirstStepInVolume'; replaced
'fAnyGeometryLimitedStep' with 'fGeometryLimitedStep'; removed wrong
check in case of zero steps.
o G4Transportation: removed wrong check in case of zero steps; set step
status on volume boundary. Removed non-working check for any field.
o Moved G4UserSpecialCuts to "physics_lists/constructors/limiters" module.
o Removed useless 'const_cast' of G4VSensitiveDetector.
o Hadronic Processes:
------------------
+ Replaced getenv() calls for data variables with G4FindDataDir() in data
readers.
+ cross_sections
o G4CrossSectionDataStore, G4VCrossSectionDataSet: preparation for
integral method; removed unused methods.
+ management
o G4HadronicProcess: temporary check and protection against anomalous
condition leading to rare crashes recently observed with neutronHP; when a
secondary particle has a huge kinetic energy (i.e. higher than the max
energy allowed - by default 100 TeV), throw a warning exception and
neglect the particle concerned (i.e. corresponding G4Track object is not
created). Propagate the information on parent resonance (in the
FillResults() method, from G4HadSecondary to G4Track).
o G4HadronicProcess: implemented integral method.
o G4HadXSTypes, G4HadXSHelper: new helper classes.
+ models/binary_cascade
o G4GeneratorPrecompoundInterface, G4BinaryCascade: propagate the
information on parent resonance (in the ApplyYourself() method, from
G4ReactionProduct to G4HadSecondary; in other methods, from
G4KineticTrack to G4ReactionProduct).
+ models/cascade
o Fixed wrong comparison between two arrays in findCrossSection(..) for
G4CascadePPChannel, G4CascadeNPChanneland G4CascadeNNChannel.
+ models/de_excitation
o G4Evaporation, G4UnstableFragmentBreakUp: completed fix about production
of unphysical fragments; improved debug printout.
Addressing problem report #2355.
o G4EvaporationChannel, G4Evaporation: added limitation (A < 30) on decay
of unphysical fragment, allowing for removal of light unphysical states
and providing improved isotope production for the spallation fragments.
o G4EvaporationChannel, G4EvaporationProbability, G4VEmissionProbability,
G4VCoulombBarrier, G4CoulombBarrier: use new method from G4Fragment.
o G4VEvaporationChannel, G4EvaporationChannel, G4VEmissionProbability
and G4EvaporationProbability: improved inverse cross-section
parameterisation at threshold.
o G4PhotonEvaporation: fixed situation when excited fragments are created
with excitation energy not corresponding to level energies from
G4LEVELGAMMADATA. Addressing problem report #2434.
Also fixing event non-reproducibility for the case when radioactive
decay is enabled on top of any physics list.
Simplified handling of floating levels. For floating levels check if
levels with the same energy can be used for sampling transitions;
code clean-up.
o G4EvaporationProbability: reduced usage of cache.
o G4ExcitationHandler: use IsLongLived() flag from G4Fragment to decide
if de-excitation of the fragment should be stopped.
o G4VEmissionProbability: limit number of bins for numerical integration
to 50.
o G4VEmissionProbability: updated sampling of the emitted fragment energy
needed. Addressing proble report #2443.
Fixed sampling of tail of distribution; added numerical protections.
More strong limit on accuracy of integrated probability; improved debug
printout.
o G4CoulombBarrier: tuned parameters.
o G4LevelManger, G4NuclLevel: removed verbose printouts; code clean-up.
o G4NuclearLevelData: use G4AutoLock.
o Use G4BestUnit in G4DeexPrecoParameters::StreamInfo().
o Code cleanup.
+ models/em_dissociation
o G4EMDissociation: updated according to G4Fragment modifications.
+ models/inclxx
o G4INCLParticle, G4INCLEventInfo, G4INCLNucleus, G4INCLDeltaDecayChannel,
G4INCLXXInterface: set and propagate the information on parent resonance.
o G4INCLPiNElasticChannel: erase the information on parent resonance in
the case of charge exchange.
o G4INCLPiNToDeltaChannel, G4INCLPiNToOmegaChannel, G4INCLPiNToEtaChannel,
G4INCLPiNToMultiPionsChannel, G4INCLNpiToLKpiChannel,
G4INCLNpiToLK2piChannel, G4INCLNpiToNKKbChannel, G4INCLNpiToSK2piChannel,
G4INCLNpiToSKpiChannel, G4INCLNpiToSKChannel, G4INCLNpiToLKChannel,
G4INCLNpiToMissingStrangenessChannel: erase the information on parent
resonance in inelastic channels (where the nucleon and pion initial-state
objects are re-used for the final state).
+ models/lend
o Fixed potential use of pointer after free in nf_utilities/nfu_realloc(..)
function.
+ models/particle_hp
o G4ParticleHPContAngularPar: added protections against evaluations of
arrays at negative index (-1), fixing rare reproducibility problems and
rare crashes that have been recently observed.
o G4ParticleHPContEnergyAngular: fixed Coverity report. Expected no effect.
o G4ParticleHPThermalScatteringNames: updated to use new ThermalScattering
data in G4NDL-4.7.
+ models/parton_string
o Allow control of diffraction for baryon number greater than 10 in
G4FPFParameters. The option comes from G4HadronicParameters and the
default behaviour remains the same (i.e. off).
o Fixes to get isotropic distributions in annihilations at rest: in
G4DiffractiveSplitableHadron, set proper parton index.
In G4DiffractiveExcitation, in the CreateStrings() method, take into
account that strings are created in G4FTFAnnihilation; by default, the
method CreateStrings() creates a string from a wounded nucleon/hadron,
but this is not needed in the case of annihilation.
In G4FTFAnnihilation, removed splitting of hadron; fixed bugs in the
calculations of kinematical properties; set quark momenta at string ends,
to properly account for string order on rapidity.
o G4HadronBuilder: added a new argument in constructor, and a new data
member to the class. This is needed to set a special mixing of
pseudo-scalar and vector mesons for s-sbar mesons. Introduced to
describe phi-meson production in proton-proton interactions measured
by NA61/SHINE.
o G4VLongitudinalStringDecay: tuned the probability of pseudo-scalar meson
production, to describe K*0 meson production in proton-proton
interactions according to NA61/SHINE data. Introduced also a new
parameter (probability of pseudo-scalar meson production in s-sbar
mesons) to increase the phi-meson yield in proton-proton interactions.
Fixed a bug in mixing eta_prime and phi mesons in the quark systems
d-dbar, u-ubar and s-sbar.
o G4LundStringFragmentation: introduced few changes for special treatment
of the last string decay in the case of ss-q or ss-qq, ss-sbar sbar last
string decay. This improves the yield of anti-Xi hyperons in
proton-proton interactions according to the NA61/SHINE data.
o G4VSplitableHadron: changed the method Splitting() from "protected" to
"public" (needed to change the status of SplitableHadron in
G4FTFAnnihilation, to get isotropic distributions in annihilations at
rest).
+ models/radioactive_decay
o Cosmetics in G4RadioactiveDecay::StreamInfo().
+ models/theo_high_energy
o G4TheoFSGenerator: propagate the information on parent resonance (in
the ApplyYourself() method, from G4ReactionProduct to G4HadSecondary).
+ processes
o Prefer pointer to 'const G4Material' where possible.
+ util
o G4Fragment: added 'IsLongLived' flag and Get/Set methods needed for the
de-excitation module; clean-up inline methods.
Fixed computation of binding energy for hypernuclei; added
a new private method to recompute ground state mass, excitation energy
and to check consistency of input; left inlined only simple methods;
added new methods SetZAandMomentum(..) and RecomputeGroundStateMass();
improved comments and warning messages.
o G4HadronicParameters: added flags for switching on/off the integral
approach for hadron elastic and, independently, inelastic processes;
by default, it is enabled for inelastic.
Moved G4Threading header to source.
o Added option to G4HadronicParameters to control the diffraction
dissociation for nucleon projectile on target nucleus with baryon
number greater than 10: by default, both projectile and target
diffraction are switched off (but they are both active in the case
of target nucleus with baryon number below or equal to 10; if instead
the flag is set to "true", then both projectile and target diffraction
are activated regardless of the target nucleus).
o G4KineticTrack, G4HadSecondary, G4ReactionProduct, G4DecayKineticTracks,
G4DecayStrongResonances: propagate the information on parent resonance.
o Run
---
+ Imported implementations of task-based interfaces/implementations from
the "Tasking" module. See History.tasking file for History of tasking
code.
+ Added new G4DNAScavenger in PhysicsListHelper for DNA processes.
o Tasking
-------
+ Retired module. Contents merged in "global" and "Run" categories.
o Track & Tracking
----------------
+ In G4ParticleChangeForTransport, simplified UpdateStepForAlongStep(),
assuming that transportation is always the first process.
Apply proposed step length; further simplified UpdateStepForAlongStep()
method, assuming that transportation is always the first process.
+ Only set step status of 'fGeomBoundary' when on volume boundary.
+ In G4SteppingManager, refactor and simplify processing of secondaries;
use new virtual method GetCreatorProcess() when processing secondaries.
Corrected 'ProcessDefinedStep' for AtRest case.
Removed check on cuts and removed dependence of tracking from EM physics;
real implementation of ApplyCut() is done within EM physics classes.
Merged G4SteppingManager translation units.
+ G4Track: added methods to get/set information on (short-lived) parent
resonance.
o Visualization:
-------------
+ Updated build scripts and internal dependencies.
+ Preliminary build support for Qt5 and Qt6.
+ management:
o Implemented Twinkling, i.e, the rhythmic variation of brightness of
given touchables: in G4VVisCommand added Twinkle() method; exploit
twinkling in UI commands in G4VisCommandsTouchable and
G4VisCommandsViewer.
o Re-worked and rationalised special mesh rendering utilities.
The idea is that these are "standard" functions that are optional.
They are optimised for OpenGL but they also work fine for ToolsSG and
Qt3D. An attempt to draw a mesh with any other driver will result in a
warning and only the container will be drawn. Other drivers will have to
implement their own AddCompound(...G4Mesh...) function or choose to use
the standard functions or some thereof.
o Take advantage of recent developments in HepPolyhedron for rendering:
conversion of tetrahedra to enclosing polyhedron removing inner surfaces;
conversion of boxes to enclosing polyhedron removing inner surfaces.
Also take advantage of developments in G4PhysicalVolumeModel:
when a mesh has been found, an artificial node is created and added
to the PVPath whose physical volume points to the parameterisation.
It is used in G4VSceneHandler to transmit the material name so that,
for example, the Qt viewer scene tree shows items by material. In the
case of a medical phantom, the materials are usually given the name
of the organ, so users can select on them.
o G4VisCommandsViewer: "/vis/viewer/centreOn" and "centreAndZoomInOn":
only fly and twinkle if 'KernelVisitElapsedTimeSeconds < 0.1'. It is
not feasible for complex scenes; in that case go straight to requested
volume without flying and twinkling.
Introducing "/vis/viewer/resetCameraParameters" UI command, resetting
*only* the camera parameters (view direction, etc.).
o G4VSceneHandler: added utility function Draw3DRectMeshAsDots(..); for a
rectangular 3-D mesh, draw as coloured dots, one dot randomly placed in
each visible cell. Tidy Draw3DRectMeshAsDots().
Allow for multiple meshes in a single screen; relevant for special mesh
rendering. Renamed 'PseudoSceneFor3DRectMeshAsDots' to
'PseudoSceneFor3DRectMeshPositions'; serves both dots and surfaces.
Added 'Draw3DRectMeshAsSurfaces'.
Make sure dots (markers) are treated as "hidden", i.e., use the z-buffer
like other primitives (the default is "non-hidden").
Make sure dots and vertices are in local coordinate system and ask the
rendering train to transform them to world coordinates in the normal
way through BeginPrimitives(..).
Replaced 'NameAndColour' by 'NameAndVisAtts'.
Exploit move operator when creating polyhedra for Special Mesh Rendering.
Numerous improvements to comments and messaging.
o Introducing drawing of parameterised tetrahedral mesh.
G4VSceneHandler::DrawTetMeshAsDots(): default tet mesh drawing.
o Ensure X-geometry string is copied correctly to a new viewer.
o G4VisCommandsCompound: improved command guidance of "/vis/open".
o G4VisCommandsViewer: improved command guidance of "/vis/viewer/create".
o G4VisParameters: added new accessors IsWindowLocationHintX/YNegative().
o G4VisCommandsTouchable: augment "/vis/touchable/draw", added Boolean
argument: if true, draw the extent (bounding box); Default false.
In "/vis/touchable/dump", fix missing dump of vis attributes.
o G4VViewer: added data member and access method for
'KernelVisitElapsedTimeSeconds'. This is measured in ProcessView().
o In G4VisExecutive, introducing 'FALLBACK' drivers for TSGQt and VTKQt.
A FALLBACK vis driver is selected if the user chooses a UI session that
is not compatible with the requested driver. For example, if the user
has built Geant4 with Qt, the TSGQt driver will be available and be
the "default" driver, so "/vis/open TSG" will attempt to open TSGQt. But
if the user has chosen a dumb terminal session, the vis manager selects
TSGX11, for example, instead.
o Improved messaging for the case that a driver is not found in the
candidate list.
o Introduced compound command: "/vis/plot <h1|h2> <id>".
This is the first part of a programme to facilitate the drawing of
plots (if any have been registered with the analysis manager) at the
end of a run. At the moment only the ToolsSG vis driver can offer this,
so the vis manager issues appropriate messages.
Later, we hope to introduce something like "/vis/reviewPlots", which
will allow the user to view all available plots in sequence.
o G4VisManager: added access method: IsEnabled(). Register the new
commands. In EndOfEvent(), protect view checking with mutex lock
in MT mode, and deal better with the case of scene requesting no kept
events (greatly speeds plotting).
Only print list of available histograms if more than one per category.
Fixed crash in G4VisManager::GeometryHasChanged() observed in example
AnaEx01. GeometryHasChanged() is a method that is called by the run
manager. Sometimes the user chooses to delete the existing geometry
tree and ask the run manager to construct a new detector geometry.
Previously existing vis models of the geometry become invalid and the
vis manager had to pick up the new geometry.
The vis manager removes invalid models from the vis scenes and now adds
the new version of the world back in. Other types of models, trajectory
drawing, for example, if specified in the original scene, are kept in
the new version of the scene.
o G4VisCommandsSceneAdd: new command "/vis/scene/add/plotter", to add
G4PlotterModel to end-of-run list.
Adapted "/vis/scene/add/volume" UI command to new
G4PhysicalVolumesSearchScene.
o G4VisCommandsCompound: introducing "/vis/plot <h1|h2> <id>" command.
o G4Scene: redefined IsEmpty().
o G4VisCommandsViewerSet: improved messaging for
"/vis/viewer/set/lineWidth"; this simply prints a message saying
how *actually* to change line width.
o Introducing "/vis/viewer/set/specialMeshRenderingOption <dots|surfaces>"
UI command; "dots" draw one dot per mesh point; "surfaces" group mesh
points by colour and material and compute the outer surface or envelope,
removing internal shared faces. So far, only the "dots" option is
implemented for some drivers.
o Introducing "/vis/viewer/set/lineWidth" UI command, a do-nothing command
that tells how to change line width.
o Implemented "/vis/reviewPlots" UI command.
o G4PlotterManager: removed not used inclusion of <tools/xml/xml_style>.
o G4VisCommandsSceneAdd: changed the default width of axes added to the
scene with automatic length and width determination.
+ modeling:
o G4Mesh: augmented available data for 3D rectangular mesh.
Programmed for parameterised tetrahedron mesh.
Simplified algorithm: now finding 1-deep rectangular meshes such as
G4PhantomParameterisation. Added 'fpParameterisedVolume' pointer and
accessor.
o G4PhysicalVolumeModel: added 'LocalExtent' and 'GlobalExtent' to method
GetAttDefs(). In TouchableProperties, added 'fTouchableFullPVPath'.
Added modifiers; for AddCompound(mesh), provide an artificial node as
an (optional) hook for anything that might be generated.
o Migrated G4PhysicalVolumesSearchScene and G4TouchablePropertiesScene
to use 'fTouchableFullPVPath'.
o Retired G4BoundingSphereScene and G4PhysicalVolumeSearchScene.
G4BoundingSphereScene accumulated bounding spheres and often
overestimated the extent of the scene; it is now superseded by
G4BoundingExtentScene. G4BoundingExtentScene deals directly with
extents, which makes it neater and more tightly estimates the overall
extent of the scene.
o G4PhysicalVolumeSearchScene is superseded by
G4PhysicalVolumesSearchScene. G4PhysicalVolumesSearchScene finds all
occurrences of a physical volume and returns a "findings vector".
Removed last ambiguous and misleading argument in the constructor.
o G4PseudoScene: added AddCompound(const G4Mesh&) method; if special mesh
rendering is set, this catches mesh candidates (certain types of
parameterisations) and avoids descending into the parameterisations.
o G4PhysicalVolumeModel: added SetSpecialMeshRendering(true) to avoid
traversing (certain types of) parameterisations (see above).
Eliminated goto statements.
o Allow arrow proportions to be greater than 1/100. Produces more visible
arrows for field visualisation and also obeys the input parameters more
closely.
+ externals/gl2ps:
o Fixed Coverity warnings in gl2ps.
+ gMocren:
o G4GMocrenFileSceneHandler: removed redundant header inclusion.
+ OpenGL:
o G4OpenGLSceneHandler: in AddCompound(..), use base class utility
G4VSceneHandler::Draw3DRectMeshAsDots(..); for parameterised tetrahedron
mesh, call default G4VSceneHandler::DrawTetMeshAsDots(); added missing
return statement for unimplemented cases; code tidy.
o Retired display list re-use and display list limit.
o Added G4gl2ps, a class frontend to tools/gl2ps intended to be used by
OpenGL and OpenInventor; does not depend directly of OpenGL.
o Have G4OpenGLViewer use the thread safe tools/gl2ps.
o Use StandardSpecialMeshRendering(mesh).
+ OpenInventor:
o G4OpenInventorViewer: removed misleading obsolete comment regarding
kernel visit in the case of a change in vis attribute modifiers.
o G4OpenInventorQtExaminerViewer: fixed compilation warning on Intel
compiler for shadowing data.
o Have G4OpenGLOpenInventorViewer and SoGL2PSAction using the thread safe
tools/gl2ps.
+ Qt3D
o G4Qt3DViewer: re-implemented wheelEvent() for perspective projection;
now taking into account the extent of the scene.
o G4Qt3DSceneHandler:in AddCompound(..), use base class utility
G4VSceneHandler::Draw3DRectMeshAsDots(..).
o G4Qt3DSceneHandler::AddCompound(): for parameterised tetrahedron mesh,
call default G4VSceneHandler::DrawTetMeshAsDots().
o G4Qt3DSceneHandler: updated AddPrimitive(..) to current usage.
Commented out line elimination in AddPrimitive(..), as too expensive for
a large polyhedron; allow the graphics-reps utilities to optimise this.
Use StandardSpecialMeshRendering(mesh).
o Fixed compilation warnings about shadowing.
+ ToolsGS:
o G4ToolsSGViewer: reimplement wheel_rotate() for perspective projection;
now taking into account the extent of the scene.
Currently, the ToolsSG viewer cannot draw trajectories in MT mode, so
in function SwitchToMasterThread() we draw any events that have been
kept by the vis manager. It fixes an issue where plots were being drawn
twice.
o Reactivate G4ToolsSGQtGLES::IsUISessionCompatible(), paves way for
permitted instantiation of multiple TSG drivers.
o Access G4VVisCommand::G4VisManager pointer through static function
GetVisManager() to prevent DLL issues on Windows.
o G4ToolsSGSceneHandler: in AddPrimitive(), define dots as a single pixel;
Use GetMarkerSize() for circles and squares.
In AddCompound(): for parameterised tetrahedron mesh, call default
G4VSceneHandler::DrawTetMeshAsDots().
Adding warning message if plot cannot be found.
In SetPlotterHistograms(), suppressed "/control/verbose" messages for
"/analysis/*/get*" commands.
In AddPrimitive(..), comment out common line elimination, as too
expensive for a large polyhedron; allow the graphics-reps utilities to
optimise this. Use StandardSpecialMeshRendering(mesh).
o Changed namespace for g4tools code from "tools" to "toolx" for externals.
+ Vtk:
o Moved setting of G4VIS_USE_VTK_QT flag to "interfaces" module.
o Data Sets:
---------
+ G4EMLOW-8.1:
o Added DNA files for the RPWBA models.
+ G4NDL-4.7:
o Updated "ThermalScattering" component, obtained from thermal scattering
data from JEFF-3.3, and adding the ENDF/BVIII-0 materials not in
JEFF-3.3, coupled to JEFF-3.3 nuclear cross-sections.
o Examples:
--------
+ Updated reference outputs, macros, READMEs and scripts.
+ advanced/air_shower
o Define all material properties in order of increasing energy.
+ advanced/amsEcal
o Prefer pointer to 'const G4Material' where possible.
+ advanced/brachytherapy
o Migration to C++11/14/17 features.
+ advanced/ChargeExchangeMC
o CexmcHadronicProcess: disabled integral method, as not applicable to
this example.
+ advanced/eRosita
o Replaced getenv() calls for data variables with G4FindDataDir().
+ advanced/hadrontherapy
o Prefer pointer to 'const G4Material' where possible.
+ advanced/ICRP110_HumanPhantoms
o Use special mesh rendering.
o Corrected error in reading the first voxels (in x=0, y=0).
o Migration to C++11/14/17 features.
+ advanced/iort_therapy
o Simplified calls to SetProductionCut().
+ advanced/microbeam
o Moved back to original switching field value.
+ advanced/STCyclotron
o Removed no-op lines; simplified calls to SetProductionCut().
+ basic/B3
o Set new analysis file name for the second run in run2.mac to avoid
overwriting the output from the first run.
+ extended/electromagnetic/TestEm3