forked from Geant4/geant4
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathBeta4.11.0-1.txt
1288 lines (1248 loc) · 67.6 KB
/
Beta4.11.0-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.0-beta-01 Release Notes
---------------------------------
25 June 2021
Migration Notes & Main New Features
-----------------------------------
o Requiring C++17 as minimum standard to compile Geant4.
Allowing also compilation against C++23 with CMake 3.20 and newer.
o Bumped minimum CMake version to 3.12.
o Updated external PTL module to version v2.0.0.
o Added Boolean parameter for enabling Spline in constructor of the
PhysicsVector classes.
o Removed deprecated classes: G4LPhysicsFreeVector, G4PhysicsLnVector
and G4PhysicsOrderedFreeVector.
o New G4SteppingVerboseWithUnits class, an alternative to G4SteppingVerbose
with printout of proper units. Simplified way of defining a user-specific
stepping verbose, that is now common to all sequential, MT and tasking
modes.
o Added maps for faster search based on name in solids, regions and
volumes stores.
o Extended cylindrical scoring mesh to tube and tube segment.
o Added new unit definitions for Time, Velocity and Momentum in G4UnitsTable.
o General code cleanup in EM modules; removed obsolete model and processes,
removed G4EmProcessOptions class.
o Introducing quantum entanglement of e+ annihilation. Currently implemented
only in G4eplusAnnihilation and G4LivermorePolarizedComptonModel.
o Updated EM integral approach by introduction of a cross-section shape type
including cross-section shape with 2 maxima.
o Updates to G4GammaGeneralProcess: exclude gamma-nuclear from the 2nd
energy area.
o Fixed model per region definition for all base processes G4VEmProcess,
G4VMultipleScattering, G4VEnergyLossProcess; removed sub-cut facility for
energy loss processes.
o New class G4OpticalMaterialProperties, a store for optical material
properties and allow use of predefined optical material properties.
o Added new IRT-syn model for DNA.
o General code clean-up in hadronic processes and models; removed obsolete
and deprecated classes; removed obsolete "rpg" model.
o Removed obsolete classes G4RadioactiveDecay and G4RadioactiveDecaymessenger.
o Introduced a new threshold parameter in radioactive-decay for analogue mode
to kill very long radioactive decays at rest of nuclides happening later
than such threshold.
o Updated physics lists to use a uniform approach for verbosity.
o G4RunManagerFactory: set default run manager type to be Tasking.
o Corrected way to count the number of events processed in a worker thread
when using G4TaskRunManager.
o Extended G4UIWin32 driver with new features.
o New ToolsSG (TSG) visualisation package based on g4tools, providing four
new (mutually exclusive) visualisation drivers: TOOLSSG_X11_GLES,
TOOLSSG_WINDOWS_GLES, TOOLSSG_XT_GLES and TOOLSSG_QT_GLE.
o Introducing G4Mesh, a light class that encapsulates and validates
visualisation of a nested parameterisation.
o Removed deprecated functions in visualization.
o Build option with VecGeom requires VecGeom-1.1.16 or higher.
Added new example demonstrating interface with VecGeom navigator.
o Requires CLHEP-2.4.4.2 for external CLHEP installation.
o New data set: G4EMLOW-7.17.
----------------------------------------------------------------------------
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 11.4, Apple LLVM/clang-12.0.5
+ Windows/10 with Visual C++ 14.28 (Visual Studio 2019)
o More verified configurations:
+ Linux, 9.3.0/10.2.0/11.1.0, clang-9.0/10.0/11.0.
+ Linux, Intel-icc 20.2.
+ MacOS 10.15 with Apple LLVM/clang-12.0.
o External dependencies
+ CLHEP-2.4.4.2, suggested for external installation of the CLHEP library.
+ VecGeom-1.1.16, for optional use of the VecGeom geometry primitives.
o New data sets:
+ G4EMLOW-7.17.
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 10.7.p02:
o Configuration:
-------------
+ CMake:
o Requiring C++17 as minimum standard to compile Geant4.
Allow compilation against C++23 with CMake 3.20 and newer.
Check for filesystem support in native or extension (GNU/Clang)
libraries.
o Implemented build/test script in Python to check for cycles in the
declared source module dependency graph.
o Added G4tools target to CMake/GNUmake configuration following its
migration from analysis to externals categories.
o Check for unparsed arguments in G4DeveloperAPI functions to
provide better validation against typos/etc in use.
o Store PUBLIC/PRIVATE/INTERFACE module usage requirements explicitly.
o Removed all references to Wt.
o Removed settings of deprecated PHP_AS_HP environmental variable.
o Added geant4.bat prototype.
o Hint to run geant4-config on Windows.
o Added preliminary support for sanitizers. Introduces new advanced
option GEANT4_BUILD_SANITIZER to allow selection of one of address,
thread, or undefined sanitizer. The default is no sanitization.
Adds appropriate flags to CMAKE_CXX_FLAGS.
o Added GEANT4_USE_PTL_LOCKS option to forward to internal PTL as
PTL_USE_LOCKS.
o Clarified use of Freetype for both analysis and visualization.
Removed use of no longer required imported target shim for build.
o Set GEANT4_BUILD_BUILTIN_BACKTRACE to ON to enable debug information on
segmentation faults in testing.
o Qualify geant4_add_feature descriptions with "G4_" to distinguish them
from CMake property descriptions.
o Added settings for enabling new TOOLSSG vis driver.
Four (mutually exclusive) options: TOOLSSG_X11_GLES,
TOOLSSG_WINDOWS_GLES, TOOLSSG_XT_GLES and TOOLSSG_QT_GLES.
o Added FindPythia8.cmake script.
o Removed obsolete -stdlib flag for AppleClang.
o Updated external PTL module to version v2.0.0.
o Bumped minimum CMake version to 3.12.
o Migrated all CMake scripts to modular CMake API.
o Updated version of data sets: G4EMLOW-7.17.
Updated tag-IDs for 11.0-beta.
+ GNUMake:
o Moved default to C++17 Standard.
o Updated compiler/link flags for migration of g4tools to externals
category.
o Added comctl32.lib to UI32LIBS for WIN32-VC configuration.
o binmake.gmk: removed include path to "rpg" hadronic model, now retired.
Removed include paths to "hadronic/models/management"
and "hadronic/models/util" modules, now retired.
o Analysis:
--------
+ Moved g4tools to externals category. Moved "fonts" directory and install
logic to g4tools package in externals, as prime interface to Freetype.
o Digits & Hits:
-------------
+ Extending cylindrical scoring mesh to tube and tube segment.
+ Make sure probe commands are not unnecessarily broadcasted to the worker
threads.
+ Code formatting.
o Environments
------------
+ G4Py:
o In TestEm0, use default EM physics in place of obsolete
G4EmProcessOptions.
o Error Propagation:
-----------------
+ Code formatting.
o Event:
-----
+ Use existing facility to find physical volume in store, rather than
looping through in G4SPSPosDistribution::ConfineSourceToVolume().
+ Use G4PhysicsFreeVector instead of deprecated G4PhysicsOrderedFreeVector
in G4AdjointPrimaryGenerator, G4SPSAngDistribution, G4SPSEneDistribution,
and G4SPSRandomGenerator.
o Externals:
---------
+ CLHEP:
o Synchronised with CLHEP-2.4.4.2.
o Added units: minute, hour, day, year and millielectronvolt.
Added constants: Bohr_magneton and nuclear_magneton.
o Fixed trivial compilation warnings on gcc-11 in Random headers.
+ g4tools:
o Updated to g4tools 5.4.0:
- Added "Windowing" code needed for G4/vis/tools_sg.
- Fixed compilation warnings on gcc-11.
- See History_tools for the complete list of modifications.
+ ptl:
o Updated PTL to version v2.0.0 which replaced raw pointers to tasks with
shared_ptrs for memory management improvements.
o Removed PTL custom task allocator classes.
o Fixed warnings about TBB task scheduler init.
o Improved thread safety.
o Fixed some memory issues.
o Fix to TaskRunManager::Terminate() + nullptr to m_thread_pool
responsible for segmentation-fault when ui/vis initialised, but not
run manager.
o Make PTL cmake options available in configuration, including:
PTL_USE_SANITIZER and PTL_USE_LOCKS, but hidden from clients building
Geant4; relevant Geant4 options forwarded to PTL: TBB, sanitizer, locks.
o Use CMAKE_CXX_STANDARD in place of GEANT4_BUILD_CXXSTD in CMake
configuration. Also, updated minimum CMake version requirements.
o Geometry:
--------
+ management:
o Added map for faster search based on name in G4SolidStore,
G4RegionStore, G4logicalVolumeStore and G4PhysicalVolumeStore.
Pointers to elements are stored in the map as buckets, grouping
elements with same name.
o G4UAdapter: added operator<<() to fix clash between similar methods
for G4VSolid and VecGeom UnplacedVolume.
+ navigation:
o G4Navigator: enabled use of alternative G4VoxelNavigation class.
Adds call to virtual method in ComputeStep(), LocateGlobalPointAndSetup()
for voxelised volumes. Controlled by ALTERNATIVE_VOXEL_NAV flag, turned
on by default.
Deleted experimental obsolete method RecheckDistanceToCurrentBoundary(),
also removed in G4SafetyHelper and G4PathFinder.
Cleaned up ComputeSafety().
o G4VoxelNavigation: simplify code of 'check' mode tests to avoid 2nd
code path. Added comments about method arguments.
o G4NavigationLogger: soften check of step vs distance (using tolerance).
+ solids/Boolean:
o In G4UnionSolid and G4SubtractionSolid, revised GetCubicVolume() method
to use cubic volume of constituent volume(s) and an intersection solid,
for more accurate measurement.
+ solids/CSG:
o G4Trap, G4Para and wrappers: added accessors to retrieve/calculate
original values for alpha, theta, phi.
+ solids/specific:
o Simplified implementation of CreatePolyhedron() in G4Polyhedra,
G4Polycone, G4GenericPolycone and related wrappers.
o Added missing accessor in G4UTet.
+ volumes:
o G4ReflectionFactory: added Clean() method for clearing the internal
maps on user request and removed problematic Reset() function.
o Global:
------
+ Removed deprecated classes: G4LPhysicsFreeVector, G4PhysicsLnVector
and G4PhysicsOrderedFreeVector.
+ G4PhysicsFreeVector, G4PhysicsLogVector, G4PhysicsLinearFreeVector:
in each constructor added extra Boolean parameter for enabling Spline;
needed for later removal of the SetSpline() method, required for
re-organisation of the code using templates.
+ G4PhysicsFreeVector: added to all constructors control on continuous
increase energy in the energy vector. Added accessor to allow user query
for use or not of Spline interpolation.
+ G4PhysicsVector: extended warning printout.
+ G4ConvergenceTester: fixed potential thread contention likely
responsible for crashes in ThreadSafe-Scorers example, observed in
system testing. Some code cleanup.
+ Updated G4SIUnits and G4PhysicalConstants to include new symbols
(minute, hour, day, year and millielectronvolt) and new constants
(Bohr_magneton and nuclear_magneton), based on CLHEP-2.4.4.2.
+ G4UnitsTable: added unit definitions for Velocity and Momentum.
+ New G4Filesystem header to support transparent use of C++ filesystem
whether it is in std:: or std::experimental namespaces.
+ G4ThreadLocalSingleton: added way to explicitly call Clear() for all
TLS singletons.
+ Reworked G4Backtrace to use fewer dynamic memory allocations when
printing backtrace in order to avoid overflowing the signal stack.
+ Modernised CMake script.
+ Changed date for release 11.0-beta.
o Graphics Representations:
------------------------
+ Reviewed HepPolyhedronPgon, HepPolyhedronPcon classes given by rz-contour.
+ HepPolyhedron: added TriangulatePolygon() and RotateContourAroundZ().
Fixed calculation of number of faces in a polyhedron object in method
RotateContourAroundZ(). In some cases, 'Nfaces' was computed incorrectly,
resulting in more memory being allocated than required; this did not
create problems for rendering, but used to generate warning messages
in some cases.
+ Removed deprecated G4VisAttributes::Invisible.
+ Added G4Colour::operator<(), useful for making a set or map based on
G4colour as a key.
+ G4VGraphicsScene: introduced new pure virtual function
AddCompound(const G4Mesh&).
+ G4VisAttributes: improved message in SetForceNumberOfCloudPoints().
+ Modernised CMake script.
o Intercoms
---------
+ G4UImanager: set LastCommandOutputTreated=false only for master thread.
Avoids inadvertent "highlighting" in G4UIQt on worker threads.
+ Fixed leak in G4ProfilerMessenger.
+ Modernised CMake script.
o Interfaces
----------
+ Modified G4UIExecutive::SelectSessionByFile() to ensure that in Windows
the Win32 OpenGL driver is selected as the second choice by default.
Based on GitHub PR#20.
+ Extended G4UIWin32 driver with new features, based on contribution
proposed in GitHub PR#23.
+ G4UIQt: deal properly with creation and deletion of viewer properties.
+ Removed obsolete Wt code from source and use in G4UIexecutive.
o Materials
---------
+ G4MaterialPropertiesTable: removed deprecated optical material properties.
Recalculate GROUPVEL if RINDEX is modified.
Addressing problem report #2313.
+ G4ExtDEDXTable, G4IonStoppingData: corrected initialisation of spline
flag.
+ G4NistMaterialBuilder: removed unused argument "isotopes" from all
methods where NIST materials are built.
+ G4NistManager: adopt modifications in method signatures of
G4NistMaterialBuilder but keep own method signatures unchanged.
+ G4MaterialPropertiesTable: added 'createNewKey' to AddProperty();
merged .icc into .cc; removed deprecated methods; applied clang-format.
+ G4OpticalMaterialProperties: added missing include.
+ G4MaterialPropertyVector: use G4PhysicsFreeVector instead of
obsolete G4PhysicsOrderedFreeVector.
+ New class G4OpticalMaterialProperties, a store for optical material
properties.
+ G4MaterialPropertiesTable: new AddProperty() method to allow use of
predefined optical material properties.
+ G4IonStoppingData, G4ICRU90StoppingData, G4ExtDEDXTable,
G4VIonDEDXTable: substituted G4LPhysicsFreeVector by G4PhysicsFreeVector.
+ G4Material, G4Element, G4Isotope, G4IonisParamElm,
G4IonisParamMat, G4NistMaterialBuilder, G4NistMessenger,
G4SandiaTable: minor clean-up.
+ Modernised CMake script.
o Particles:
---------
+ Fixed shadowing compilation warning in G4Triton.
o Persistency:
-----------
+ GDML:
o G4GDMLWriteMaterials: use G4PhysicsFreeVector instead of deprecated
G4PhysicsOrderedFreeVector.
o Physics Lists:
-------------
+ Removed dependencies on hadronic/model/util and hadronic/model/management
modules now retired.
+ Builders:
o Replaced G4HadronCaptureProcess with G4NeutronCaptureProcess
and G4HadronFissionProcess with G4NeutronFissionProcess in builders.
o Replaced particle-specific hadronic inelastic processes (that have
been deleted) with G4HadronInelasticProcess.
o G4PrecoNeutronBuilder, G4PrecoProtonBuilder, G4INCLXXNeutronBuilder,
G4QGSBinaryKaonBuilder: replaced obsoleted cross-sections
(that have been deleted) with better ones.
o G4BinaryDeuteronBuilder, G4BinaryTritonBuilder, G4BinaryHe3Builder,
G4BinaryAlphaBuilder: removed unused header files.
+ Constructors:
o electromagnetic:
- Updated all standard EM physics lists: removed local member "verbose" and
use uniform approach for verbosity via G4EmParameters; instantiate
NIEL process only if parameter MaxNIELEnergy is above zero; include
gamma linear polarization model to Opt0, Opt3, Opt4, SS, and
Livermore physics constructors if the parameter EnablePolarisation
is "true"; G4EmLivermorePolarizedPhysics fully inheriting from
G4EmLivermorePhysics.
- G4GammaGeneralProcess: updated interface in the Retrieve() method.
- G4EmDNAPhysics: updated configuration of standard physics for gamma
and positrons according to Opt3; updated particle list by addition
of G4Alpha; simplified ConstructProcess() method using
G4PhysicsListHelper.
- Updated G4EmLowEPPhysics physics model configuration
See https://arxiv.org/abs/2102.02721 for details.
- G4GammaGeneralProcess: exclude gamma-nuclear from the 2nd energy area,
because cross-section is zero; in the 4th energy interval include in
the vector value of 1 - p instead of p, where p is the cumulative
probability of a sub-process.
- G4EmDNAChemistry, _option1, _option2, _option3
added dissociation channel for electron-hole recombination.
- G4EmDNAChemistry_option3: changed pre-chemical model.
- DNA PhysicsLists: use SeEmModel() with correct signature.
- G4OpticalPhysicsList: removed deprecated optical commands.
- G4EmLivermorePolarizedPhysics: removed unused header,
- G4EmLivermorePhysics: use G4LivermorePolarizedComptonModel if
polarisation is enabled.
- Removed obsolete G4EmLEPTSPhysics, and code cleanup in G4EmDNAPhysics
and G4EmDNAPhysics_stationary.
- G4EmLivermorePhysics, G4EmPenelopePhysics_option1,
G4EmStandardPhysics_option3, G4EmStandardPhysics_option4,
G4EmLowEPhysics, G4EmStandardPhysicsSS: instantiate G4ePairProduction
process after ionisation and bremsstrahlung; does not change physics
but helps to have clearer debug printouts.
o gamma_lepto_nuclear:
- G4EmExtraPhysics, G4BertiniElectroNuclearBuilder,
G4LENDBertiniGammaElectroNuclearBuilder: replaced
G4PhotoNuclearProcess (now deleted) with G4HadronInelasticProcess.
o hadron_elastic:
- G4HadronDElasticPhysics, G4HadronHElasticPhysics: use inheritance
from G4HadronElasticPhysics; use G4HadProcesses, G4PhysListUtil and
G4HadParticles; implement cross-section factor.
- G4HadronHElasticPhysics: fixed problem of fully overlapping energy
transition between G4HadronElastic and G4ChipsElasticModel, using
now G4ChipsElasticModel only for Hydrogen element above 10 MeV.
- G4ChargeExchangePhysics: set explicitly the elastic cross-sections
according to the hadron type, given that the universal Gheisha
elastic cross-section has been now deleted.
- In all constructors, use verbosity level from G4HadronicParameters.
o hadron_inelastic:
- In all constructors: printouts are controlled by verbosity level of
G4HadronicParameters class; 'verboseLevel' member in base class is
not used; G4HadronicParameters singleton is initialized in all class
constructors; if the verbosity level is defined in class constructor,
it is propagated to G4HadronicParameters (user may change this level
using UI command before physics is initialized); check versus nullptr
is added in several places.
- Removed unused header files, and replaced when needed
G4HadronCaptureProcess with G4NeutronCaptureProcess.
+ lists:
o Replaced particle-specific hadronic inelastic processes
(that have been deleted) with G4HadronInelasticProcess in LBE.
Renamed G4HadronCaptureProcess as G4NeutronCaptureProcess.
o In all physics-lists, protected banners by verbosity level.
o G4PhysListFactory: added verbosity level to constructor and propagated
to constructed lists.
o Mirror changes to G4PhysListFactory constructor signature (taking a
default verbosity argument) in the G4PhysListFactoryAlt constructor.
o Electromagnetic Processes:
-------------------------
+ Adjoint:
o General code cleanup: applied clang-format style guidelines;
applied C++11 codewords to method declarations (virtual, override,
explicit); deleted unused variables and methods; started naming class
member variables with 'f'; use 'nullptr' instead of '0'; removed unused
headers; use constexpr for numbers. Use 'virtual' and 'override' methods
consistently; member variables start with f; shorten long names; removed
unused variables; make class variables local where appropriate; order
declarations of class variables; define class variables; removed unused
functions; marked copy/assignment operators as 'delete'; added
ProcessDescriptions; removed ChangeHistory from top of code;
use CLHEP::twopi instead of hardcoded value; removed more unused
headers.
o G4ContinuousGainOfEnergy: use updated signature for ion ionisation.
o Free resources in destructors.
+ DNA:
o Added IRT-syn model.
o Added new models: G4DNADiracRMatrixExcitationModel,
G4DNAQuinnPlasmonExcitationModel, G4DNARelativisticIonisationModel and
G4DNAPlasmonExcitation.
o Modified G4DNAELSEPAElasticModel for gold material.
o G4DNAElectronHoleRecombination: dissociation channel of electron-hole
recombination moved to G4EmDNAChemistry, _option1, _option2, _option3.
o G4DNAWaterDissociationDisplacer: added the fragment displacement for
new dissociation channel.
o Fixed dependency on g4tools, now moved to externals module.
o Updated PrintGeneratorInformation() method signature in G4DNABornAngle
and G4DNARuddAngle.
+ High Energy:
o G4eeToHadrons: updated integral type.
o Code clenup: clean-up of interfaces; removed unused headers;
improved initialisation.
o G4hBremsstrahlungModel: added header.
o G4hhIonisation: removed G4BohrFuluctuations.
+ Low Energy:
o G4LivermorePolarizedComptonModel: added quantum entanglement of e+
annihilation. If the photons have been "tagged" as "quantum-entangled",
for example by G4eplusAnnihilation for annihilation into 2 photons, they
are "analysed" if and only if both photons suffer Compton scattering.
Theoretical predictions from Pryce and Ward, Nature N.4065 (1947) p.435,
and Snyder et al, Physical Review 73 (1948) p.440. Experimental
validation in "Photon quantum entanglement in the MeV regime and its
application in PET imaging", D. Watts, J. Allison et al., Nature
Communications (2021)12:2646, https://doi.org/10.1038/s41467-021-22907-5.
Added data member 'fEntanglementModelIndex'.
The implementation of entanglement is described in extensive comments
in G4LivermorePolarizedComptonModel source.
o Migrate the Spline treatment for all physics vectors.
o General code cleanup: use G4 types; cleanup of headers and Penelope
models.
o Convert G4LPhysicsFreeVector into G4PhysicsFreeVector.
o Removed obsolete unused classes G4BremsstrahlungCrossSectionHandler,
G4BremsstrahlungParameters, G4eBremsstrahlungSpectrum, G4hSRIM2000p,
G4PhotoElectricAngularGeneratorSimple, G4MicroElecInelastic_new,
G4LivermorePolarizedPhotoElectricModel and
G4LivermorePolarizedPhotoElectricGDModel.
o G4MicroElecLOPhononModel: removed debug printout; rename member of
class.
o Improved management of array in G4PenelopeGammaConversionModel.
o Replaced std::map with static arrays in the G4Penelope models for
performance improvements
o Removed obsolete PrintInfo() methods and self defined process SubType.
o G4IonParametrisedLossModel: use updated signature for ion ionisation.
o Updated PrintGeneratorInformation() method signature for few angular
generators.
+ Muons:
o General code clean-up: use C++11 keywords, improved comments, format
files.
o G4EnergyLossForExtrapolator, G4ErrorEnergyLoss, G4TablesForExtrapolator:
provide thread-safe initialisation of internal tables; guarantee
initialisation only once; size of tables depend only on number of
materials.
o G4MuIonisation: removed obsolete G4BohrFluctuations header.
o G4MuPairProduction, G4MuBremsstrahlung, G4MuBremsstrahlungModel:
improved initialisation.
o Updated PrintGeneratorInformation() method signature in G4ModifiedMephi.
+ Polarisation:
o General code cleanup: name classes in logical manner; improved comments;
added ProcessDescription; ordered #includes and removed unused; disabled
copy and assignment operators with 'delete'; increased C++11 keyword
usage, especially override, explicit; renamed (most) class variables to
start with 'f'; make SCRN arrays the correct size; use constexpr for
numbers; applied clang-format style; use G4ExceptionDescription; avoid
implicit conversions between G4StokesVector and G4ThreeVector.
o G4PolarizedIonisationBhabhaXS: removed incorrect G4Exception.
o G4PolarizedAnnihilation, G4ePolarizedIonisation: improved initialisation
of assymetry tables.
o G4PolarizedAnnihilation, G4PolarizedCompton: updated use of the spline
flag.
+ Standard:
o G4eplusAnnihilation: introducing Quantum Entanglement. This is activated
by UI command "/process/em/QuantumEntanglement". For e+e- -> gamma gamma,
the gammas are "tagged" here and must be "analysed" in a Compton
scattering process - see, for example, G4LivermorePolarizedComptonModel.
Otherwise entanglement has no effect even if activated. Added data
member "fEntanglementModelIndex". Instantiate clipboard only if Quantum
Entanglement is requested.
o G4PAIModelData, G4eplusTo2GammaOKVIModel: corrected initialisation of
physics vectors.
o G4LindhardSorensenData: updated definition of spline flag.
o G4CoulombScattering, G4eBremsstrahlung, G4eplusAnnihilation: updated set
of flags for spline and the integral approach.
o G4BetheBlochModel: minor cleanup; more const variables.
o Removed obsolete classes G4BohrFluctuations and
G4HeatedKleinNishinaCompton.
o G4BetheBlochModel, G4BraggIonModel, G4LindhardSorensenIonModel,
G4ICRU73QOModel, G4AtimaIonIonisationModel: changed interface to ion
ionisation corrections.
o Code clean-up of ionisation, energy loss processes and models.
o Clean-up of gamma processes.
+ Utils:
o G4VEmProcess, G4VEnergyLossProcess, G4EmTableType, G4EmBiasingManager,
G4LossTableManager: updated integral approach by introduction of a
cross-section shape type and different actions depending on the type;
added cache for cross-section and range; removed unused methods;
attempt to reduce number of "if" operators at run time; integral and
spline flags are set to each process individually and not via
G4EmParameters class.
o G4VMultipleScattering: fixed problem observed by CMS for specific
physics list.
o G4EmCorrections, G4VEmProcess: updated use of the spline flag.
o G4EmCorrections, G4LossTableBuilder: substitute use of deprecated
G4LPhysicsFreeVector by G4PhysicsFreeVector.
o G4VEmProcess, G4VEnergyLossProcess, G4EmDataHandler: updated method
RetrievePhysicsTable().
o G4TableType: added extra enumerator for type of cross-section shape.
o G4OpticalParameters, G4OpticalParametersMessenger: removed deprecated
optical commands and parameters. Replaced CreateDir() with new
G4UIdirectory().
o G4VMultipleScattering: removed obsolete unused methods; reduced number
of operations at run time, use 'isIon' flag for scaling of energy
limits for all particles with mass >1 GeV.
o G4VEmModel removed "virtual" keyword for ComputeDEDX() method.
o General code cleanup; removed obsolete methods and members;
reorganized class members.
o G4VEmAngularDistribution: added virtual method
PrintGeneratorInformation().
o Fixed model per region definition for all base processes G4VEmProcess,
G4VMultipleScattering, G4VEnergyLossProcess; removed sub-cut facility
for energy loss processes; clean-up of parameters classes.
o G4VEmModel, G4VEnergyLossProcess, G4EmCalculator: optimised signature
of the CorrectionsAlongStep() method; use more constant variables;
minor code optimisation.
o G4VEmProcess, G4VEnergyLossProcess: fixed computation of cross-section
and range if base material approach is used.
o G4LossTableBuilder: fixed debug printout.
o G4VMscModel: improved printout.
o Code clean-up, including G4VEnergyLossProcess, G4LossTableManager
and messengers for EM parameters.
o Removed obsolete G4EmProcessOptions class.
+ Xrays:
o General code cleanup: removed commented out code; added
ProcessDescription() and DumpInfo(); organized order of headers,
removed and added as needed; use constexpr for numbers; replaced
G4PhysicsOrderedFreeVector with G4PhysicsFreeVector.
o G4Scintillation: removed deprecated optical commands.
o Generic Processes:
-----------------
+ Cuts:
o G4PhysicsTableHelper: updated interface to Retrieve() method.
+ Management:
o Introducing classes for implementation of quantum entanglement:
G4EntanglementAuxInfo, G4VEntanglementClipBoard and
G4eplusAnnihilationEntanglementClipBoard.
Currently, entanglement is implemented only in G4eplusAnnihilation
and G4LivermorePolarizedComptonModel.
+ Optical:
o G4OpBoundaryProcess: fixed initialisation of some local variables.
Addressing problem report #2364.
o G4OpRayleigh, G4OpWLS, G4OpWLS2: use G4PhysicsFreeVector instead
of deprecated G4PhysicsOrderedFreeVector.
+ Transportation:
o Enable setting of smooth curved trajectories to particle-change in
G4CoupledTransportation::AlongStepDoIt(), which was commented out by
mistake. Based on discussion in Geant4 Forum thread #4271.
o Hadronic Processes:
------------------
+ Removed deprecated 'rpg' model.
+ Merged 'models/management' module in 'management'.
+ Merged 'models/util' module in 'util'.
+ cross_sections
o G4MuNeutrinoNucleusTotXsc: new arrays for XS_eq and XS_in, now XS_tot
is a sum of XS_qe and XS_in with A, Z and A-Z factors.
o G4NeutronInelasticXS, G4NeutronElasticXS, G4NeutronCaptureXS,
G4ParticleInelasticXS, GammaNuclearXS : in the method BuildPhysicsTable(),
replaced loop over material-cut-couple with a direct loop over all
elements; partially move initialisation of local variables to headers.
o G4NeutronInelasticXS: in the method BuildPhysicsTable(), replaced
loop over material-cut-couple with a direct loop over materials
used in geometry.
o G4MuNeutrinoNucleusTotXsc: access and calculation of
fQEratio(Z,A) = XS_qe/XS_tot.
o Removed following obsolete classes:
G4IonsKoxCrossSection, G4IonsSihverCrossSection, G4IonsShenCrossSection,
G4TripathiCrossSection, G4TripathiLightCrossSection,
G4IonProtonCrossSection, G4GeneralSpaceNNCrossSection,
G4ProtonInelasticCrossSection G4NeutronInelasticCrossSection,
G4PiNuclearCrossSection, G4CrossSectionPairGG,
G4FastPathHadronicCrossSection, G4HadronCaptureDataSet,
G4HadronFissionDataSet, G4HadronElasticDataSet, G4HadronInelasticDataSet,
G4HadronCrossSections, G4IonsShenCrossSection, G4TripathiCrossSection,
G4TripathiLightCrossSection.
o G4HadronXSDataTable, G4ComponentSAIDTotalXS: updated creation and
handling of G4PhysicsVector.
o G4UPiNuclearCrossSection, G4ComponentSAIDTotalXS: substituted use of
deprecated G4LPhysicsFreeVector by G4PhysicsFreeVector.
o G4UPiNuclearCrossSection: disabled Spline interpolation.
+ management
o G4HadronicProcess: made public the method GetHadronicInteraction().
This can be useful for users to access at run-time some information
available from a hadronic final-state model.
o G4HadronInelasticProcess: added a new method to return the particle
definition (useful in practice to distinguish between baryons and
antibaryons, or between hadrons and ions).
o G4HadronInelasticProcess: removed old and unused header file
corresponding to the Gheisha inelastic cross-section (that has been
deleted).
o Moved G4HadronInelasticProcess class to hadronic/mangement module.
o Fixed TLS usage in G4HadronicProcessStore.
o Fixed loops in G4HadronicProcessStore::Clean().
o G4HadronicEPTestMessenger: removed deprecated commands.
o Removed unused class G4VCrossSectionBase.
+ models/cascade
o Fixed TLS usage in G4CascadeChannelTables and G4CascadeParameters.
+ models/coherent_elastic
o G4ChargeExchangeProcess: replaced Gheisha elastic cross-section
(that has been deleted) with G4ComponentGGHadronNucleusXsc.
o G4LEHadronProtonElastic, G4ChargeExchangeProcess: removed unused
headers.
+ models/fission
o G4LFission: removed unused headers.
+ models/im_r_matrix
o G4XnpElasticLowE, G4XNNElasticLowE, G4XnpTotalLowE: substituted use of
deprecated G4PhysicsLnVector with G4PhysicsLogVector; no functional
changes.
+ models/inclxx
o Updated comment in G4INCLXXInterface header.
+ models/lepto_nuclear
o G4NeutrinoNucleusModel: calculation of fQEratioA(Z,A,Enu) depending of
QE ratios for nucleons. Added accessors for XS_qe/XS_tot(A), fQEratioA
class member.
o Bug fixed in G4NeutrinoNucleusModel, updated calls for QE ratio of
muon/electron (anti-)neutrino.
+ models/particle_hp
o G4ParticleHPElementData, G4ParticleHPBGGNucleonInelasticXS: removed
old and unused header files corresponding to Gheisha cross-sections
(that have been deleted). Code cleanup.
o G4ParticleHPManager: removed deprecated environmental variables.
o G4ParticleHPData, G4ParticleHPJENDLHEData: replaced use of deprecated
G4LPhysicsFreeVector with G4PhysicsFreeVector.
o Updated build scripts according to new dependencies.
Clean-up of old directories no longer present.
+ models/qmd
o G4QMDReaction: replaced G4IonsShenCrossSection (that has been deleted)
with G4ComponentGGNuclNuclXsc. Replaced GetIsoCrossSection() with
GetElementCrossSection().
+ models/radioactive_decay
o G4RadioactiveDecayBase, G4RadioactiveDecayBaseMessenger: introduced
a new parameter for analogue mode to kill very long radioactive decays
at rest of nuclides happening later than this threshold parameter.
Its default value (10^27 ns) corresponds to more than twice the age of
the universe. The value of the threshold can be changed via a new UI
command, e.g. to set it to 1000 years:
"/process/had/rdm/thresholdForVeryLongDecayTime 3.1536e+10 second" .
This kind of cut has been introduced in order to avoid to account
energy depositions happening after many billions of years in ordinary
materials used in calorimetry, in particular Tungsten and Lead - via
their natural unstable, but very long lived, isotopes, such as
W183, W180 and Pb204. Note that the cut is not on the average, mean
lifetime, but on the actual sampled global decay time.
o Use existing facility to find logical volume in store, rather than
looping through in G4RadioactiveDecayBase::Select/DeselectAVolume().
o G4RadioactiveDecayBaseMessenger, G4RadioactivationMessenger: removed
deprecated commands.
o Remove obsolete classes G4RadioactiveDecay and
G4RadioactiveDecaymessenger.
o Updated build scripts and header includes.
+ models/theo_high_energy
o G4TheoFSGenerator: added accessors for the corresponding modifier
methods already existing. This can be useful for users to access
at run-time some information available from a hadronic final-state
model.
+ processes
o Added G4HadronInelasticProcess class from hadronic/management module.
o Renamed G4HadronCaptureProcess as G4NeutronCaptureProcess, as it is
applied only for neutron projectile.
o Removed use of deleted header file G4HadronicDeprecate.
o G4HadronCaptureProcess: removed old and unused header file
corresponding to the Gheisha capture cross-section (that has been
deleted).
o G4HadronFissionProcess: replaced Gheisha fission cross-section
(that has been deleted) with G4ZeroXS (which is a zero cross-section
everywhere).
o G4HadronElasticProcess, G4NeutrinoElectronProcess,
G4ElNeutrinoNucleusProcess, G4MuNeutrinoNucleusProcess: removed
old and unused header file corresponding to the Gheisha elastic
cross-section (that has been deleted).
o Removed the following deprecated inelastic processes:
G4AlphaInelasticProcess, G4AntiAlphaInelasticProcess
G4AntiDeuteronInelasticProcess, G4DeuteronInelasticProcess,
G4AntiHe3InelasticProcess, G4He3InelasticProcess,
G4AntiLambdaInelasticProcess, G4LambdaInelasticProcess,
G4AntiNeutronInelasticProcess, G4NeutronInelasticProcess,
G4AntiOmegaMinusInelasticProcess, G4OmegaMinusInelasticProcess,
G4AntiProtonInelasticProcess, G4ProtonInelasticProcess,
G4AntiSigmaMinusInelasticProcess, G4SigmaMinusInelasticProcess,
G4AntiSigmaPlusInelasticProcess, G4SigmaPlusInelasticProcess,
G4AntiTritonInelasticProcess, G4TritonInelasticProcess,
G4AntiXiMinusInelasticProcess, G4XiMinusInelasticProcess,
G4AntiXiZeroInelasticProcess, G4XiZeroInelasticProcess,
G4IonInelasticProcess, G4KaonMinusInelasticProcess,
G4KaonPlusInelasticProcess, G4KaonZeroLInelasticProcess,
G4KaonZeroSInelasticProcess, G4PionMinusInelasticProcess,
G4PionPlusInelasticProcess, G4PhotoCaptureProcess,
G4PhotoFissionProcess, G4PhotoNuclearProcess.
+ stopping
o Removed obsolete classes: G4AntiNeutronAnnihilationAtRest,
G4AntiSigmaPlusAbsorptionFritiof, G4SigmaMinusAbsorptionBertini,
G4AntiProtonAbsorptionFritiof, G4KaonMinusAbsorptionBertini,
G4PiMinusAbsorptionBertini.
+ util
o Removed unused classes: G4LightMedia, G4IsoResult, G4HadronicDeprecate,
G4GHEKinematicsVector, G4HadReentrentException, G4HadSignalHandler,
DumpFrame.
o Run
---
+ Optimised access to volumes and regions stores.
+ Minor C++11 review in use of iterators, initialisers, etc...
+ Removed obsolete ResetCuts() method in G4VUserPhysicsList.
+ Added new G4DNAStaticMoleculeReactionProcess in PhysicsListHelper
for DNA processes.
+ Removed call to physicsList->TerminateWorker() in G4WorkerRunManager
as this appears to cause errors at termination.
+ G4VPhysicsConstructor: fixed initialisation of hadronic parameters
avoiding uncontrolled override of verbosityLevel.
+ General code cleanup and formatting.
o Tasking
-------
+ Updated to PTL v2.0.0 with shared_ptr usage. Included some minor API
changes to direct async usage.
+ Fixes to TBB task-group usage.
+ Fix for G4FORCENUMBEROFTHREADS flag lookup.
+ G4RunManagerFactory: set default run manager type to be Tasking.
+ G4TaskRunManager: check for valid threadPool pointer in method
RequestWorkersProcessCommandsStack() to fix occasional segmentation
fault at exit.
o Track & Tracking
----------------
+ Correction to G4Track::operator=() to copy also touchable-handles.
This fixes a crash originated when running importance sampling in the
G4EventManager when the track got assigned the origin touchable handler
from its own touchable handle; the touchable handler was sometimes not
set.
+ Adjusted printout format in DumpInfo() for G4VParticleChange
and G4ParticleChange.
+ Introducing G4SteppingVerboseWithUnits, an alternative to
G4SteppingVerbose with printout of proper units and extended features.
Added explicit virtual keyword for virtual methods and destructor in
G4SteppingVerbose.
+ Export protected static symbols in G4VSteppingVerbose for DLL builds
on Windows.
+ G4SteppingVerbose, G4SteppingManager: added a switch to instantiate
G4SteppingVerboseWithUnits.
+ Simplified way of defining a user-specific stepping verbose, that
is now common to all sequential, MT and tasking modes.
+ Avoid unnecessary indirections when checking for regional stepping
action by reusing the value of current volume in stepping manager.
+ Use existing facility to find logical volume in store, rather than
looping through in G4AdjointCrossSurfChecker.
o Visualization:
-------------
+ Removed unused XXX module.
+ management:
o Introducing "Special Mesh Rendering", with new commands:
/vis/viewer/set/specialMeshRendering
/vis/viewer/set/specialMeshVolumes
Only available with OpenGL drivers at present.
o Implemented a default AddCompound(const G4Mesh&) method: just draws the
"container" volume and prints a G4Exception with guidance.
o Added new data members to view parameters.
o Exploit C++17 to parse saved files in /vis/viewer/interpolate,
to use <filesystem>.
o Introducing /vis/scene/add/localAxes and /vis/touchable/localAxes
commands.
o Removed deprecated G4VisManager::SetUserAction().
Use RegisterRunDurationUserVisAction or similar instead.
These functions represent quite an advanced use of visualisation
and are rarely used.
o "/vis/set/extentForField", "/vis/scene/add/electricField" and
magneticField: improved guidance to take note of change to
G4VFieldModel, namely that the number of data points is now calculated
on the basis of the extent, which can be set as above.
o Interrupt macro (vis.mac) if graphics system invalid/unavailable.
Issues "Batch is interrupted" and avoids long litany of further errors.
o /vis/scene/add/volume (and /vis/drawVolume): exploit
G4PhysicalVolumesSearchScene to streamline geometry tree searches.
Avoid calculating extent of a temporary physical volume when not
necessary.
The above does introduce a change of behaviour for the case that a user
names the volume(s) requested, e.g., "/vis/drawVolume Shape1". The user
will not normally see any difference - but it does avoid extravagant
computation in some circumstances.
o G4VisCommandsSet, G4VisCommandsTouchable and G4VisCommandsViewer:
added comment of explanation where using G4PhysicalVolumesSearchScene.
o Use existing facility to find logical volume in store, rather than
looping through in G4VisCommandSceneAddLogicalVolume::SetNewValue().
o G4VisManager: fixed cout destination for UI manager during deletion.
o G4VisExecutive: removed deprecated Wt driver.
+ modeling:
o Introducing G4Mesh, a light class that encapsulates and validates a
nested parameterisation, called a "mesh". If a valid mesh cannot be
created out of a G4VPhysicalVolume, it will have a type "invalid".
The overhead of an invalid attempt is expected to be small, all the
same it should only be invoked if the user specifies mesh rendering.
o G4ModelingParameters: added new data members and access functions.
o G4PhysicalVolumeModel: added code for special mesh rendering, under
control of user flag. If flag is set by the above commands, and if a
volume is a "mesh" (a container for a nested parameterisation), invoke
new method AddCompound(const G4Mesh&).
o G4PhysicalVolumeModel: moved fFullPVPath.push_back earlier, addressing
a bug in visualisation of touchables.
o Improved G4VModel; make SetTransform() virtual.
o G4ArrowModel, G4AxesModel and G4TextModel: implement SetTransform().
o Take care to apply to original model. For example, if SetTransform() is
called more than once it must apply to the original.
o G4PhysicalVolumeModel: for the resultant of clipping, set the
visualisation attributes of the original.
o G4VFieldModel: Change concept of choice of data points: this model
simply checked that a data point was within the extent.
Now it uses the extent to determine the datapoint spacing.
Note: if 'fExtentForField' is null, the used extent is that of the
current scene; otherwise it uses that supplied by the user.
o G4PhysicalVolumesSearchScene: allow user to limit the depth of descent
during a geometry tree search.
o G4PhysicalVolumeModel: if opacity (alpha) == 0 (completely transparent),
treat same as pVisAttribs->IsVisible().
G4PhysicalVolumeModel: simplified validation.
o Added G4Exception in default implementation of
G4PseudoScene::ProcessVolume().
+ externals/gl2ps:
o allow use of non-APPLE OpenGL on APPLE.
To use this, build with macro GL2PS_USE_GL_GL_H.
+ OpenGL:
o Implemented WindowProc() function in G4OpenGLWin32Viewer for the Win32
OpenGL driver (function that was commented out). It is now possible to
change the Zoom and the orientation using the mouse (like in the Qt
driver). Based on contribution in GitHub PR#20.
o Implemented AddCompound(const G4Mesh&) method: turns nested
parameterisations into polymarkers of dots - much improved speed.
o Enable extended WIN32 window in G4OpenGLWin32Viewer.
Based on contribution in GitHub PR#23.
o G4OpenGLQtViewer::addNonPVSceneTreeElement(): special case for markers,
use Info() if non-empty name appearing in Qt's scene tree. This allows
the user to design markers, e.g., a list of points, and give them a name
that relates to the providence of the points, e.g., a particular
material or geometry component.
o Removed deprecated Wt driver.
o G4OpenGLStoredQtViewer: moved fViewId<0 check to top of constructor to
pick up errors in base class construction.
o Removed deprecated "/vis/ogl/set/" commands.
o All commands connected with a time window. Use equivalent
"/vis/viewer/set/timeWindow" commands.
o "/vis/ogl/set/eventsDrawInterval <N>" is replaced by
"/vis/ogl/flushAt NthPrimitive <N>".
o G4OpenGLWin32Viewer: fixed occasional crash with G4UIWin32 when
creating viewer from UI command: avoid indirect call to DrawView()
while still within CreateMainWindow().
o Comment out makeCurrent() in G4OpenGLImmediate/StoredQtViewer
to prevent red-button crash.
+ OpenInventor:
o G4OpenInventorQtExaminerViewer: for tabbed viewer in UIQt, added a
Detach button to move the viewer to its own dedicated and resizable
window on the desktop. Added event handler for mouse wheel to fix the
non-intuitive behavior. Mouse-wheel-forward now zooms/dollys in.
Added viewer button to enable the "axis cross" (3d axes) feedback
mechanism.
o G4OpenInventorViewer: upgraded the group node sensor to process camera
movements, thus eliminating the need for the camera sensor. The node
sensor receives all camera notifications and is immune to changes in
the camera type.
o Force kernel visit if special mesh rendering parameters change.
o Code cleanup of OpenInventorQt classes.
+ Qt3D
o Improve overall protection of debug output with #ifdef G4QT3DDEBUG.
Moved debug code to G4Qt3DUtils header.
o Force kernel visit if special mesh rendering parameters change.
o Include some trial code (commented out) for text output.
+ ToolsGS:
o Introducing ToolsSG (TSG) drivers based on externals/g4tools.
o Providing four new (mutually exclusive) vis drivers: TOOLSSG_X11_GLES,
TOOLSSG_WINDOWS_GLES, TOOLSSG_XT_GLES and TOOLSSG_QT_GLE.
o Data Sets:
---------
+ G4EMLOW-7.17:
o Removed tabs in option4 cross-section files.
o Added new cross sections for electron transportation in gold
within Geant4-DNA.
o Added directories Elastic/ Inelastic/ and Structure/ for microelec
models.
o Fixed problem in file sigmadiff_cumulated_ionisation_e_RBEBV_Z79.dat.
o Examples:
--------
+ Updated reference outputs, macros, READMEs and scripts.
+ Replaced deprecated G4VisAttributes::Invisible by
G4VisAttributes::GetInvisible().
+ Bump required CMake version range to 3.12...3.20.
+ advanced/amsEcal
o Migrated to use G4RunManagerFactory and G4SteppingVerboseWithUnits.
+ advanced/brachytherapy
o Code cleanup: use C++11 keywords and patterns.
o Removed BrachyMaterial class; materials implemented now using NIST
material manager.
o Removed SetCuts() from the local PhysicsList.
+ advanced/composite_calorimeter
o Migrated to multi-threading, using G4RunManagerFactory.
o Introduced the action initializer.
o Split the definition of the sensitive part of the detector
from the detector construction itself. A new method,
sensitiveHandling(), has been introduced in the base class CCalG4Able.
o Made the following three classes thread-local singletons: CCalSDList,
CCalSensAssign and CCalSensitiveDetectors.
o Multi-threaded use of the G4AnalysisManager in the run action with the
merging of histograms and ntuple of all working threads at the end of
the run.
+ advanced/gammaray_telescope
o GammaRayTelHadronPhysics : replaced G4HadronCaptureProcess with
G4NeutronCaptureProcess, and G4HadronFissionProcess with
G4NeutronFissionProcess.
Replaced stopping processes that have been deleted.
Replaced old pion inelastic cross-sections (that have been deleted)
with G4BGGPionInelasticXS.
o GammaRayTelHadronPhysics, GammaRayTelIonPhysics: replaced
G4PhotoNuclearProcess (that has been deleted) with
G4HadronInelasticProcess.
o Removed dependency on G4EmProcessOptions.
o Removed SetCuts() from the local PhysicsList.
+ advanced/gorad
o Fixed potential shadowing compilation warnings in GRInitialization.
+ advanced/hadrontherapy
o Modified HadrontherapyLet for file generation.
o Removed dependency on G4EmProcessOptions.
o Geometry modification in CarbonBeamLine.
o Removed unncessary G4AutoDelete of StepProcessMax in physics list.
o Minor changes in macro files.
+ advanced/HGCal_testbeam
o SiliconPixelHit, SiPMHit: fixed problem in handling of NIEL energy
deposition.
o CMSHadronPhysicsFTFP_BERT: added class from CMS.
o Removed obsolete class CMSEmStandardPhysicsHcal.
o FTFPCMS_BERT_EMM: use correct combination of physics constructors.
o Removed use of obsolete RanecuEngine. Updated CMS EM physics.
+ advanced/ICRP110_HumanPhantoms
o Introduced ICRP110PhantomVisAction. Updated vis.mac which shows
how to activate it.
+ advanced/iort_therapy
o Removed dependency on G4EmProcessOptions.
o Removed SetCuts() from the local PhysicsList.
o Set cuts per region in ConstructProcess(). RegionStore is not available
when accessed from the constructor of the Physics List.
+ advanced/microbeam
o Added initialisation of 'fDose3DDose' and 'fMapVoxels' in the
constructor of the RunAction class.
o Use explicit constructors and "override" instead of "virtual" in
derived classes. Use G4 types in DetectorConstruction.
o In main() do not initialize run and number of threads, let
these be done in macro microbeam.mac.
o DetectorConstruction: use CLHEP::twopi. Avoid having 'fField' pointer
as class member, use G4AutoDelete registration instead.
o CellParameterisation: initilize all data members.
+ advanced/microelectronics
o Updated PhysicsList to new EM settings.