forked from Geant4/geant4
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathReleaseNotes4.3.0.txt
529 lines (452 loc) · 22.1 KB
/
ReleaseNotes4.3.0.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
Geant4 3.0 Release Notes
------------------------
15th December 2000
These are the main new features/fixes included in this release (for the
detailed list of fixes/additions, please refer to the related History files):
o Analysis
--------
- New module for analysis/histogramming management and concrete
drivers interfaces through AIDA: JAS, Lizard, OpenScientist.
o Configuration:
-------------
- Added unsupported configuration WIN32-g++
for Windows/NT/9X and Cygwin with g++ compiler.
- Introduced changes to handle analysis module.
- Incorporated building of shared libraries into .gmk files
(NOTE: tests on shared libraries currently perfomed only on
Linux-g++ and SUN-CC platforms)
o Introduced new variables steering the building of shared/static
libraries (static still default): G4LIB_BUILD_SHARED and
G4LIB_BUILD_STATIC.
o Introduced new variable (G4LIB_USE_GRANULAR) to force using of
granular libraries.
- Added rules for "includes" gmake target, to copy all header files
in a single location specified by $G4INCLUDE path.
- Introduced SUN-CC5 G4SYSTEM architecture for SUN CC 5.1 compiler.
o Event:
-----
- Added new Set methods to G4PrimaryVertex and G4PrimaryParticle.
- Introduced ParticleGun for Ions and weights for primary vertex
and particle:
o G4ParticleGun: added Set/GetParticleCharge methods for ions.
o G4ParticleGunMessenger: added new command of /gun/ion;
modified command of /gun/particle.
o G4PrimaryParticle: add Set/GetCharge methods, added weight.
o G4PrimaryVertex: added weight.
o G4PrimaryTransformer: use G4PrimaryParticle::GetCharge to give
dynamic charge in G4DynamicParticle; set weight of G4Track.
- Introduced G4GeneralParticleSource and related classes.
G4GeneralParticleSource is an alternative primary source
generator to G4ParticleGun. It has all the functions of
G4ParticleGun plus many options for specifying the primary
event particle and vertex.
o Electromagnetic Processes (Low-energy):
--------------------------------------
- Bug fix to G4hLowEnergyIonisation, relevant for particles
with absolute charge value greater than 1.
- Bug fix on electron energy loss fluctuations.
- New features on antiproton ionisation, extending the model for
application to generic materials.
- Modifications in hadron classes (renaming of classes).
- Bug fix related to the charge dependence of ion fluctuations.
- Fixes to G4LowEnergyUtilities to replace the obsolete HepString
with G4String.
- Bug fixes for problems found on setting cuts.
- Bug fix for nuclear stopping table name, improvements in
code quality and added comments for the Software Reference Manual.
o Electromagnetic Processes (Standard):
------------------------------------
- G4eBremsstrahlung : new cross section and energy-loss parametrisation.
- Update to G4VhEnergyLoss.cc, G4VhEnergyLoss.hh, G4hIonisation.cc
in order to simulate energy losses of ions; correction to cross
section for particles with spin 1.
- Removed class G4ionIonisation.
- Fix in G4VhEnergyLoss and G4ionIonisation in AlongStepDoIt
for particles with Charge^2 > 1.
- Stopped very low energy photons in photo electric effect.
- Moved ElossMessenger to G4VEnergyLoss.
- Bug fix in G4Cerenkov and G4Scintillation: corrected usage of
the 'step length' to position the origins of secondaries.
- Corrections on Polarized Compton:
o Sampling of Phi
o Depolarization probability
- G4IeBremsstrahlung:
o new cross section/en.loss parametrisation, LPM flag.
o corrections in the LPM implementation.
- Changed signature in GetLossWithFluct.
- G4EnergyLossMessenger: created subdirectory /process/eLoss.
Added class description for Software Reference Manual.
- EnergyLossTable: use "const G4Material*" where required.
- Introduced correction to G4Cerenkov to fix a problem when
an optical medium has refraction indices all equal to 1.
o General Processes, Parameterisation, Decay, Optical:
---------------------------------------------------
- Bug fix in G4Decay to avoid direct modification of G4Track by
the Decay process.
- Fixed bugs in G4ProcTblElement::operator=
- Removed destruction of processes in G4ProcessTable destructor.
- Implemented full STL migration in G4ProcessVector.
- Added thePILfactor and GPIL methods in G4VProcess.
- Added Store/RetrievePhysicsTable() methods.
o Geometry:
--------
QA code cleanup. Cleanup warnings issued by "-Wall -ansi -pedantic"
g++ compiler options.
- Boolean solids:
o G4SubtractionSolid.cc: relaxed behavior in SurfaceNormal(p),
where it is now allowed for a point to be inside the solid.
A message is thrown to cerr instead of a G4Exception.
o Added new set methods for matrix/vectors to G4DisplacedSolid:
SetTransform(G4AffineTransform&),
SetDirectTransform(G4AffineTransform&),
SetFrameRotation(const G4RotationMatrix&),
SetFrameTranslation(const G4ThreeVector&),
SetObjectRotation(const G4RotationMatrix&),
SetObjectTranslation(const G4ThreeVector&).
- BREPS solids:
o Fix in G4Ellipse::Project() for computation of u as function
of atan2().
o Changed return value to be "const" pointer to functions:
- G4BREPSolid::GetPlace()
- G4BREPSolid::GetBBox()
o G4Assembly: fix in destructor, added call to clearAndDestroy().
o G4BREPSolid: changed method NumberOfFaces() to GetNumberOfFaces().
o G4Curve: fixed obsolete workaround for XlC compiler.
o G4OsloMatrix: changed internal class "Matrix" to "G4PointMatrix"
and updated classes making use of it.
o G4ThreeMat:removed unused overloaded operators =, +, -, +=, -=, *.
- CSG solids
o Fix to G4Tubs and G4Cons in DistanceToIn/DistanceToOut:
+ fixes to DistanceToOut(p,v,...) to make roots of quadratic
equations more stable.
+ added check against negative distance returned.
o Fixes to G4Cons:
+ corrected condition on conical surface to consider a real
projection of the conical surface thickness on XY plane
(0.5*kCarTolerance*secRMin instead of 0.5*kCarTolerance),
when dealing with cons with large opening angle.
+ fix in constructor to check if one of the Rmin different than 0,
to avoid degenerated cones.
o G4Torus: introduced Newton-based numerical method for computing
roots of equations in DistanceToIn() and DistanceToOut().
o Bug fixed in G4Tubs::Inside(p) for analysis of phi positioning
when on +-fDz surface.
o Fix in G4Tubs::DistanceToOut(p,v,...): initialised sr and sphi to
kInfinity and re-introduced additional condition on check for
Rmin intersection (t2 >= 0).
- Specific solids:
o Fix in G4IntersectingCone.cc: the check for a zero radical has been
adjusted to be less sensitive to round off error in LineHitsCone1(),
LineHitsCone2().
- STEP
o dirobj.h: protected from missing definition of MAXNAMLEN, S_IFMT
and S_IFDIR originally defined in /usr/include/sys/stat.h.
- STEPinterface
o Added GetInstanceManager() method to G4GeometryCreator.
o Changed return value to "const char*" to method Name() and made
post-const in all creator classes.
o Fix in G4Axis2Placement3dCreator::CreateSTEPGeometry(void*).
- Magnetic Field
o Fix in G4FieldManager: added check on existence of allocated
fChordFinder in CreateChordFinder(G4MagneticField*) method.
o Changed return value to be "const" pointer to functions:
+ G4EquationOfMotion::GetFieldObj()
+ G4FieldManager::GetDetectorField()
+ G4MagIntegratorDriver::GetStepper()
o Fixed and corrected signature to G4MagIntegratorDriver::SetHmin().
- Management
o Fixed bug in destructor of G4SolidStore. Memory corruption at
application exit was occuring when Boolean solids were involved.
o Fix in G4VSolid::CalculateClippedPoligonExtent():
removed assumption that pMin<pMax by eliminating "else"
condition.
- Volumes
o Changed return value to be "const" pointer to functions:
- G4LogicalBorderSurface::GetVolume1()
- G4LogicalBorderSurface::GetVolume2()
- G4LogicalSkinSurface::GetLogicalVolume()
o Global:
------
- Moved G4VStateDependent and G4StateManager classes into
global/management from intercoms.
- Added "Abort" state is added G4ApplicationState.
- Modified G4Exception to change Geant4 status to "Abort".
- Bug fix of "double deleting" in the destructor of G4StateManager.
- Defined G4RandGauss to invoke CLHEP's RandGaussQ,
needed to fix general events' reproducibility problem.
- Added STL wrapper for in management/include/g4std.
- QA code cleanup from Code-Wizard and warnings issued by
"-Wall -ansi -pedantic" g++ compiler options.
o Hadronic Processes:
------------------
- General update of source code documentation.
- management
o Introduced the possibility for cross-section biasing.
- util
o Added G4Pair class as utility (to be replaced with stl in due course)
o Added protection to G4ReactionDynamics in case no secondary has been
created.
- high_energy
o Fixed bug causing energy non-conservation in pion interactions.
o Code cleanup.
- neutron_hp
o Added several protections against non-physical cross-section values
removed 'const' in operator+ of G4NeutronHPVector to work around
compiler inconsistencies.
o Removed 'const' in GetXsec(G4int i) of G4NeutronHPVector to work
around compiler inconsistencies.
o Introduced self-hashing has table to optimize initialization and
run-time performance (factor 4 in init, 2 at run-time)
o Introduced correct treatment of compound cross-sections
full event by event correlations in Capture below 100 keV regardless
the data quality
o Correction of a Q-value miscalculation in exceptional conditions in
Capture
o Added Protections in case no photon energies given in the capture
data.
o Fixed error in accessing gamma level 49 in n->ngamma inelastic channel
o Added recoil production to several inelastic channels
o Added protections in cases interpolations between expansions in terms
of legendre polynomials lead to non-physical cross-section integrals.
- radiative_decay
o Fix to const-ness of G4DynamicParticle to co-work with latest changes
in 'track' module.
o Code correction in integration of Fermi beta functions.
- diffractive_string
o Updated sampling of impact parameter for re-use.
- kinetic_model
o Fixed a memory leak
o Added protection in case to pre-compound phase was registered
- management(gen)
o Added impact parameter sampling possibility to G4V3DNucleus.
- quark_gluon_string
o Fixed memory leak in G4SPBaryon and G4SPBaryonTable
o Introduced improved of low energy cut-off for string creation
o Updated sampling of impact parameter for re-use
- string_fragmentation
o Design iteration to allow for use of quark molecular dynamics.
- util
o Updated G4Parton to allow for use of quark molecular dynamics.
o Bug-fix in Lorentz boost in G4Fancy3DNucleus
o Added protection of G4Fragment against negative excitation energies
o Fixed memory leaks in G4KinetiTrack
- pre_equilibrium
o Design iteration
o Update of barrier penetration factors
- string_common
o Design iteration to allow for usage of quark molecular dynamics.
NOTE: the consistent data sets for photon evaporation and radio-active
decay (derived from the same version of the ENSDF data) are
provided from Web in the source download area. A previous version
of photon evaporation data is also provided.
o Interfaces:
----------
- Modified G4UIterminal, G4VUIshell, G4UIcsh and G4UItcsh to display
the break status as a prompt characters.
- Minor fixes in G4VInteractorManager and G4VUIShell.
o Materials:
---------
- Fixed initialization of pointers in G4SandiaTable constructor
and corrected deletion of fPhotoAbsorptionCof in destructor.
o Parameterisations
-----------------
- New top category for specific parameterisation models:
G4FoamXrayTRmodel, G4GamDistrXrayTRmodel, G4IrregularXrayTRmodel,
G4PAIclusterModel, G4PhotoClusterModel, G4PlateIrrGasXrayTRmodel,
G4RegularXrayTRmodel, G4VClusterModel, G4VXrayTRmodel.
o Particles:
---------
- Added const to G4DynamicParticle::GetPreAssignedDecayProducts.
- Added method G4IonTable::GetElementNumber.
- Added neutron life time.
- Fixed stable flag for G4PionMinus.
o Run and Intercoms:
-----------------
- Modified G4RunManager and G4RunMessenger: eliminated
G4StateManager::Pause().
- Made G4UImanager state dependent.
- Added Retrieve/StorePhysicsTable() and related methods in
G4VUserPhysicsList and modified BuildPhysicsTable() method.
- Added store/retreivePhysicsTable command in
G4UserPhysicsListMessenger.
- Moved default place for storing random number status out of main
directory.
- Added G4VModularPhysicsList and G4VPhysicsConstructor
to modularize UserPhysicsList.
- Fixed bug in G4VUserPhysicsList::StorePhysicsTable().
o Tracking & Track:
----------------
- Added protection when PiMinusAbsorptionAtRest and Decay processes
are deactivated.
- Bug fixes in copy constructor of G4ParticleChange.
- Added "const" to G4DynamicParticle pointer of returned value of
G4Track::GetDynamicParticle
o Visualization:
-------------
- Fixed bug in /vis/lights/direction to not refresh view.
- G4PhysicalVolumeModel: added protection against volumes without
material.
- Removed /vis/viewer/update from compound commands /vis/drawVolume
and /vis/specify.
o G4toG4 Tool:
-----------
- Moved tests clGeometry and cltog4 from source/g3tog4/test to
examples/extended/g3tog4. Default build mechanism is now used.
- Bug-fix in destructor for G3RotTable.
- Added handling of ELTU (Elliptical Tube) solid.
- Fixed initialisation of pDPhi for CONS in G3toG4MakeSolid.cc.
- G4PhysicalVolumeModel: added protection against volumes without
material.
- Added protection against multiple positiong of the same physical
volume and added methods ClearG3PosCopy(G4int) and ClearDivision()
in G3VolTableEntry .
- Removed useless G3toG4Debug global method and file.
Replaced verbosity by G3G4DEBUG flag.
- Removed obsolete class/files G3CalcParams[.hh.cc].
- Examples:
--------
o New "advanced" examples for specific applications:
xray_telescope, brachyterapy and gammaray_telescope.
Notes:
o Geant4 3.0 is based on STL and can be installed with strict
ISO/ANSI C++ compliant setup or not. See notes below.
The code and some binary libraries are available through our "Source
Code" Web page:
- see our Geant4 Home Page (http://cern.ch/geant4).
Please refer to the Geant4 User Documentation
(http://cern.ch/geant4/G4UsersDocuments/Overview/html)
for further information about using Geant4.
Updates to the documentation for Geant4 3.0 are expected to be published as
usual within three weeks from the release date.
Contents
--------
1. Supported and Tested Platforms
2. ANAPHE and CLHEP
3. The Standard Template Library (STL)
4. Persistency
5. Compiler Specific Problems
6. Known Run-Time Problems
7. Compilation Warnings
8. Known Run-Time Warnings
1. Supported and Tested Platforms
---------------------------------
o SUN Solaris 5.6/5.7, C++ 4.2 Patch 104631-04, C++ 5.1 Patch 109490-01.
o HP 10.20, aCC C++ B3910B A.01.23
o Linux 2.2.12-20, gcc C++ egcs-2.91.66 (egcs 1.1.2).
This configuration was tested with the RedHat 6.1 distribution, but
versions of Geant4 have also been compiled successfully on Debian
and Suse distributions.
o NT 4.0 with Service Pack 4 and Cygnus Tools b20 with:
Visual C++ 6.0 Service Pack 2
Platforms also tested but giving rise to some problems - see below:
o DEC V4.0, cxx C++ V6.1-027.
Platforms configured but not tested and not supported:
o SGI V6.5.5, CC 7.2.1 with ObjectSpace
o AIX 4.3.2, xlC compiler with ObjectSpace
2. ANAPHE and CLHEP
-------------------
Geant4 3.0 requires the installation of CLHEP.
See CLHEP (http://cern.ch/clhep/INSTALLATION/clhep.html).
Tests have been performed with CLHEP 1.6.0.0.
By default, the CLHEP installation scripts will activate ISO/ANSI C++ features
if the compiler is capable. You need to explicitly disable CLHEP settings in
case you wish non-ISO/ANSI setup on specific compilers (for example, DEC).
Geant4 3.0 coworks with ANAPHE 3.2.0 and components included therein:
Objectivity 5.2.1
ObjectSpace 2.1
HepODBMS 0.3.1.4
CLHEP 1.6.0.0
For more information about ANAPHE see: http://cern.ch/anaphe
3. The Standard Template Library
--------------------------------
The following versions of STL have been tested:
ObjectSpace STL on
DEC, HP and SUN (CC 4.2).
See ObjectSpace (http://www.objectspace.com).
"Native" STL on: Windows/NT, Linux, HP, DEC and SUN (CC 5.1).
This is selected at installation/compile time by the environment variable
G4USE_OSPACE in the case of the former - see documentation.
NOTES:
- Be aware that by default, the installation scripts will expect to use
the native STL implementation. You must set the G4USE_OSPACE variable
in the environment in order to select the ObjectSpace implementation.
- Platform specific setup:
o DEC: ObjectSpace is required in non ISO/ANSI setup.
Native STL is required for ISO/ANSI setup.
o HP: either ObjectSpace or native STL can be used (non ISO/ANSI setup).
o SUN: ObjectSpace is required in non ISO/ANSI setup (CC 4.2).
Native STL is required for ISO/ANSI setup (CC 5.1 only).
o Linux: Native STL is required (non ISO/ANSI setup).
o NT: Native STL and ISO/ANSI setup required.
In the interest of stability, part of the code in Geant4 3.0 still makes use
of the "STL Interface" wrapper classes, used for allowing the migration from
Rogue Wave Tools.h++ container library. For these the emphasis has remained
on correct behaviour, rather than performance.
4. Persistency
--------------
Platform
--------
Persistency in Geant4 3.0 release is tested on the following
platforms:
G4SYSTEM OS C++ compiler HepODBMS Objectivity
--------- ----------- ------------ --------- -----------
SUN-CC SunOS 5.6 CC 4.2 0.3.1.4 5.2.1
SUN-CC5 SunOS 5.7 CC 6.0 0.3.2.3 (*) 6.0 (*)
Linux-g++ RedHat 6.1 egcs-2.91.66 0.3.1.4 5.2.1
(*) HepODBMS header files must be prepared with "ooddlx -noline" option.
See below.
Known Problems
--------------
- There are several warning messages on some platforms during the
installation of the libraries and the compilation of the examples.
Most of them can be safely ignored. It is annoying but hard to get
rid of them due to various reasons.
- A warning message "Could not find naming root directory" appears at
runtime of the persistency examples. It is generaged by HepDbApplication
in HepODBMS. It can be ignored.
- On Solaris7 (SUN-CC5), persistent header files has to be generated by
ooddlx with "-noline" option to work around a bug in C++ compiler.
This workaround applies not only to Geant4 Persistency category but
also to HepODBMS, and the user defined ddl files as well. This option
removes the "#line" directive of the file name and the line number of
the original ddl file. As a consequences, C++ compiler no longer
"tell" the correct file name and the line number of the ddl file if
compiler error occurs. Try to identify the compiler error by first
looking into the header file generated by ooddlx, and then locate the
source of the problem by looking into the ddl file.
A patch to the compiler is expected from Sun.
5. Compiler Specific Problems
-----------------------------
o DEC V4.0, cxx C++ V6.1-027.
- We have found cases of mis-compilation of min and max templates
on DEC. We have traced those which cause serious malfunction
but there is no guarantee that there are no other cases.
Detailed inspection of assembler output suggests that this
problem might not be confined to min and max. This has been
reported to DEC/Compaq. We understand a new version 6.2 of the
compiler is now available. However we cannot guarantee correct
execution of Geant4 on DEC with the current version of the
compiler.
- A bug in cin.getline() system function causes an anomalous
behavior when running in interactive-mode on DEC-cxx 6.1 in
ISO/ANSI mode. We tested the bug has been fixed in more recent
versions of the compiler.
6. Known Run-Time Problems and Limitations
------------------------------------------
For a complete list of outstanding run-time problems and to submit any
problem you may find running this version of Geant4, please refer to the
Geant4 Problem Reporting System, available on the Web at this address:
http://cern.ch/geant4/problemreport
7. Compilation Warnings
-----------------------
There are compilation warnings on some platforms. We do not believe
that any will lead to incorrect run-time behaviour, but we are working
on reducing them.
8. Known Run-Time Warnings
--------------------------
The following messages can be written to error output while tracking. We
believe none give rise to incorrect behaviour.
o G4PropagateInField: Warning: Particle is looping
- tracking in field will be stopped.
It has performed 10000 steps in Field while a maximum of 10000
are allowed.