-
Notifications
You must be signed in to change notification settings - Fork 328
/
Copy pathReleaseNotes4.7.0.html
1185 lines (1110 loc) · 48.4 KB
/
ReleaseNotes4.7.0.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<HTML>
<HEAD>
<TITLE>Geant4 7.0 Release Notes</TITLE>
</HEAD>
<BODY BGCOLOR='F0F0F0'>
<P> </P>
<BR>
<P> </P>
<P ALIGN="Center">
<FONT SIZE="+4" COLOR="#238E23">
<B>Geant4 7.0 Release Notes</B>
</FONT>
<TABLE WIDTH="100%">
<TR><TD ALIGN="Right">
<FONT SIZE="-1" COLOR="#5C3317">
<B><I>December 17<SUP>th</SUP>, 2004</I></B>
</FONT>
</TD></TR>
</TABLE>
<BR><BR>
<HR ALIGN="Center" SIZE="7%">
<P>
The code and binary libraries for the supported systems are available
through our <A TARGET="ext" HREF="http://cern.ch/geant4">Source Code Web page</A>.
</P>
<P>
Please refer to the
<A TARGET="ext" HREF="http://cern.ch/geant4/G4UsersDocuments/Overview/html">Geant4
User Documentation</A> for further information about using Geant4.
</P>
<H2><I>Contents</I></H2>
<OL>
<LI><A HREF="#1.">Supported and Tested Platforms</A></LI>
<LI><A HREF="#2.">AIDA and CLHEP</A></LI>
<LI><A HREF="#3.">Compiler Specific Problems</A></LI>
<LI><A HREF="#4.">Known Run-Time Problems</A></LI>
<LI><A HREF="#5.">Compilation Warnings</A></LI>
<LI><A HREF="#6.">Known Run-Time Warnings</A></LI>
<LI><A HREF="#7.">Major items for migration of user code</A></LI>
<LI><A HREF="#8.">Detailed list of changes and fixes</A></LI>
</OL>
<P> </P>
<A NAME="1."></a>
<HR>
<!-- ============================================== -->
<H2>1. Supported and Tested Platforms</H2>
Official platforms:
<UL>
<LI>SUN Solaris 5.8, C++ CC-5.4 Patch 111715-02.</LI>
<LI>Linux, gcc 3.2.3.<BR>
This configuration was tested on <I>32 bits architectures</I> with
the Scientific Linux CERN 3 (SLC3) distribution (based on RedHat Linux
Enterprise 3) and also with RedHat 7.3.
Versions of Geant4 have also been compiled successfully on other
Linux distributions, like Debian, Suse or more recent RedHat systems.
The default RedHat compiler gcc-2.96 distributed in RedHat 7.X is NOT
supported. It has been verified that it produces incorrect binaries,
therefore is not reliable. See also <A HREF="#note-1">note below</A>.</LI>
<LI>Windows/XP and CygWin Tools with: Visual C++ 7.1 .NET</LI>
</UL>
More verified configurations:
<UL>
<LI>SUN Solaris 5.8, C++ CC-5.5.</LI>
<LI>Linux, gcc 3.4.3.</LI>
<LI>Linux, Intel-icc 8.0.</LI>
<LI>MacOS 10.3, gcc-3.3</LI>
</UL>
Platforms configured but not tested and not supported:
<UL>
<LI>AIX 4.3.2, xlC 6.0</LI>
<LI>DEC V4.0, cxx C++ V6.1-027</LI>
<LI>HP 10.20, aCC C++ B3910B A.01.23</LI>
<LI>SGI V6.5.5, CC 7.2.1</LI>
</UL>
<P> </P>
<A NAME="2."></A>
<HR>
<!-- ============================================== -->
<H2>2. AIDA and CLHEP</H2>
Geant4 7.0 requires the <A TARGET="ext"
HREF="http://cern.ch/clhep/INSTALLATION/clhep.html">installation
of CLHEP</A>.<BR>
Tests have been performed with <B>CLHEP-1.8.1.0</B><BR>
The software has been verified also with <B>CLHEP-1.9.1.2</B>.<BR>
<P> </P>
Geant4 7.0 examples with histogramming cowork with AIDA 3.2.1
implementations. These include:
<UL>
<LI><A TARGET="ext" HREF="http://cern.ch/PI">PI</A> and included components</LI>
<LI><A TARGET="ext" HREF="http://jas.freehep.org">JAS (Java Analysis Studio)</A></LI>
<LI><A TARGET="ext" HREF="http://www.lal.in2p3.fr/OpenScientist">Open Scientist</A></LI>
</UL>
AIDA headers can be downloaded from:
<A TARGET="ext" HREF="http://aida.freehep.org">http://aida.freehep.org</A>
<P> </P>
<A NAME="3."></A>
<HR>
<!-- ============================================== -->
<H2>3. Compiler Specific Problems</H2>
<UL>
<LI><A NAME="note-1"><B>Linux Red Hat 7.X, gcc-2.96</B></A>.
<UL>
<LI>The default compiler distributed by Red Hat since release 7.0 is
NOT supported and not considered reliable for running a Geant4-based
application. In more than one test case, binaries produced by gcc-2.96
have shown incorrect behavior, either due to wrong order of
initialisation of static data in memory or to bugs in the system
<TT>iostream</TT> classes, problems which apparently have all been
solved in more recent versions of the compiler (3.X series).<BR>
For information, gcc-2.96 is a compiler that has never been
officially released, nor supported by the GNU team itself and is not
considered reliable by the authors (for more information, see also
<A TARGET="ext" HREF="http://gcc.gnu.org/gcc-2.96.html">http://gcc.gnu.org/gcc-2.96.html</A>).</LI>
</UL></LI>
</UL>
<P> </P>
<A NAME="4."></A>
<HR>
<!-- ============================================== -->
<H2>4. Known Run-Time Problems and Limitations</H2>
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
<A TARGET="ext" HREF="http://cern.ch/geant4/problemreport">Geant4 Problem Reporting
System</A>.
<P> </P>
<A NAME="5."></A>
<HR>
<!-- ============================================== -->
<H2>5. Compilation Warnings</H2>
There may be compilation warnings on some platforms. We do not believe
that any will lead to incorrect run-time behaviour.
<P> </P>
<A NAME="6."></A>
<HR>
<!-- ============================================== -->
<H2>6. Known Run-Time Warnings</H2>
The following message can be written to error output while tracking.
We believe it does not give rise to incorrect behaviour.
<PRE>
G4PropagateInField: Warning: Particle is looping
- tracking in field will be stopped.
It has performed 1000 steps in Field while a maximum of 1000
are allowed.
</PRE>
<P> </P>
<A NAME="7."></A>
<HR>
<!-- ============================================== -->
<H2>7. Major items for migration of user code</H2>
Some migrations are necessary in different areas of the user code in
order to upgrade from release 6.2 to release 7.0,
a full recompilation and/or reinstallation of libraries and user
applications is moreover required.
<P> </P>
<B>Direct usage of <TT><cmath></TT> for standard mathematical functions</B>
<P> </P>
In this release the Geant4 code makes now direct usage of <TT><cmath></TT>
for standard mathematical functions. All direct/indirect inclusions of
<TT><math.h></TT> have been removed.<BR>
To be compliant with this migration, the user code should be modified as well,
by adopting either one of the following approaches:
<UL>
<LI>Put in front of the following standard mathematical functions the <TT>std::</TT>
prefix for the namespace:
<PRE>
pow(), exp(), sqrt(), log(), log10(), sin(), cos(), tan(),
sinh(), cosh(), tanh(), asin(), acos(), atan(), atan2(),
ceil(), floor(), fabs(), fmod(), frexp(), ldexp(), modf()
</PRE></LI>
<LI>Alternatively, for places where code readability is a concern, add in source
files (not headers or inline methods, and after the headers inclusions), the
statement:
<PRE>
using namespace std; </UL>
</PRE>
</UL>
As part of this migration also standard headers like:
<PRE>
<math.h>, <limits.h>, <stdlib.h>
</PRE>
are no longer indirectly included. This may require the user code to include
them if/where necessary.<BR>
To be noticed also that this migration involves also the <I>removal</I> of
usage of the ad-hoc template function originally defined in CLHEP:
<PRE>
T abs(T)
</PRE>
So the definition of this function will not be any longer available in a
indirect way. The standard mathematical function:
<PRE>
std::abs()
</PRE>
will have to be used instead.
<P> </P>
<B>New Installation procedure for the <TT>Configure</TT> script</B>
<P> </P>
The installation procedure of the kernel libraries using the <TT>Configure</TT> script
has changed. It is now required to specify the final area of installation for the
libraries and sources; libraries are now first built in the local directory
where the source has been downloaded and unpacked; and will be later-on installed
in the specified installation area (requiring <TT>root</TT> priviledges if
necessary).
See the <A href="http://cern.ch/geant4/G4UsersDocuments/UsersGuides/InstallationGuide/html">Installation
Guide</A> for the details.
<P> </P>
<B>Migration for usage of the <TT>G4VParticleChange</TT> class</B>
<P> </P>
An interface change to the class <TT>G4VParticleChange</TT> is implemented
in Geant4 7.0. Advanced users, who have implemented a physics process should
be aware that the following methods have been removed:
<PRE>
void SetTrueStepLength(G4double truePathLength);
void SetLocalEnergyDeposit(G4double anEnergyPart);
G4TrackStatus GetStatusChange() const;
void SetStatusChange(G4TrackStatus status);
void SetSteppingControl(G4SteppingControl StepControlFlag);
void SetParentWeight(G4double);
</PRE>
They have been replaced by the following methods, respectively:
<PRE>
void ProposeTrueStepLength(G4double truePathLength);
void ProposeLocalEnergyDeposit(G4double anEnergyPart);
G4TrackStatus GetTrackStatus() const;
void ProposeTrackStatus(G4TrackStatus status);
void ProposeSteppingControl(G4SteppingControl StepControlFlag);
void ProposeParentWeight(G4double);
</PRE>
For the detailed list of all interface changes involved in <TT>G4VParticleChange</TT>,
please consult:
<A HREF="http://cern.ch/geant4/source/source/migration_70.html">http://cern.ch/geant4/source/source/migration_70.html</A>.
<P> </P>
<B>Step limitation</B>
<P> </P>
A user now needs to change his/her code, in order to limit the step size of a
particle -- when using the class <TT>G4UserLimits</TT> to limit the step.
Up to the previous release, step limitation due to the maximum step length
of <TT>G4UserLimits</TT> was directly done by <TT>G4SteppingManager</TT>,
while all other limits (<TT>maxTrackLength</TT>, <TT>maxStepNumber</TT>,
<TT>MinKinEnergy</TT> and <TT>minRemainRange</TT>) were dealt by
<TT>G4UserSpecialCuts</TT> process. To solve this inconsistency,
to simplify the majority of applications which do not utilize the step limitation,
and to give more usability to the user, we introduce a new
process <TT>G4StepLimiter</TT> and move the step limitation procedure in
<TT>G4SteppingManager</TT> to this new process.
<UL>
<LI>The new process, <TT>G4StepLimiter</TT>, limits the step size specified by
<TT>G4UserLimits</TT>, but will not kill a track.</LI>
<LI><TT>G4UserLimits</TT> class is kept as it is, and can specify all limits as before.</LI>
<LI><TT>G4UserSpecialCuts</TT> is kept as it is. This process kills
a track once the track comes to a limit specified by <TT>G4UserLimits</TT> (as
it did previously). This provides the user the ability
to impose one or more kinds of "tracking cuts".</LI>
<LI>Given no process took place for max step length limitation in the old design,
<TT>G4StepPoint::GetProcessDefinedStep()</TT> method used to return <TT>NULL</TT>.
In the new scheme, if a step is limited by the maximum step
length limitation, this method now returns a valid pointer of <TT>G4StepLimiter</TT>
process.</LI>
</UL>
The user who is using the step length limitation MUST include the new <TT>G4StepLimiter</TT>
process in the physics-list explicitly. This new process may be assigned only to the
selected particle types (e.g. only to the charged particles) instead of setting it to
all particle types.<BR>
No change is required for the user who is NOT using <TT>G4UserLimits</TT> for the
purpose of maximum step limitation.
<!-- ---------------------------------------------- -->
<P> </P>
<B>Killing of a particle</B>
<P> </P>
An advanced user who has created a process with a continuous component
('AlongStep' action) that can kill or bring a particle to a rest will need to
review their process implementation.
Energy-loss processes no longer change the track status of a charged particle
as part of their <TT>AlongStepDoIt()</TT> action.
For a user-defined process with a "continuous" component,
in order to stop (and thus either kill or bring to a rest in an 'alive' state)
a particle in its <TT>AlongStepDoIt()</TT> method,
it is now necessary to propose zero kinetic energy for the particle.
Alternatively a process can contribute to the particle arriving at zero energy,
as a result of the action of two or more processes, e.g. energy loss and
propagation in an electric field (in the transportation process).
Once a particle has zero (or less) proposed energy, it is brought to a rest
and its energy is set exactly to zero.
If the particle can decay, can be annihilated or generally has one or more
'AtRest' actions, then another step will be performed that calls these;
else, the particle is killed.
The discrete component (or 'PostStep' action) of a process will not be
performed once the particle has come to a stop.<BR>
<I>Note</I>: the case of a particle that comes to a rest in a field and is
then re-accelerated, is not supported at this time.
<!-- ---------------------------------------------- -->
<P> </P>
<B>Future migration for <TT>G4GeneralParticleSource</TT> class</B>
<P> </P>
A 'tree-structured' command format is implemented in this release for
<TT>G4GeneralParticleSource</TT>. The old UI commands have been kept
for backward compatibility but will be removed in the future.<BR>
For more information, please consult:
<A HREF="http://reat.space.qinetiq.com/gps">http://reat.space.qinetiq.com/gps</A>.
<P> </P>
<A NAME="8."></A>
<HR>
<!-- ============================================== -->
<H2>8. Detailed list of changes and fixes</H2>
These are the main new features/fixes included in this release since the
last patched public release (for the detailed list of fixes/additions,
please refer to the related History files provided in most packages):
<P> </P>
<UL>
<LI>Implemented migration to <TT><cmath></TT> for standard mathematical
functions.</LI>
</UL>
<A NAME="conf-notes">
<H3><I>Configuration</I></H3></A>
<UL>
<LI><TT>Configure</TT> script: now installing libraries in specified
installation area. Installation happens now in two steps: libraries are
first built locally and later-on installed. Defined new commands:
<UL>
<LI><TT>Configure -build</TT>: to start the configuration process and
locally build the libraries.</LI>
<LI><TT>Configure -install</TT>: to install libraries and sources in
the specified installation area.</LI>
</UL></LI>
<LI>Archived setup for Windows/VC++6 and removed WIN32-VC7 G4SYSTEM tag,
now replaced by WIN32-VC, setup for VC++ .NET.</LI>
<LI>Relaxed compilation options for SUN-CC.</LI>
<LI>Darwin-g++.gmk:
<UL>
<LI>Added -lXi to X11LIBS.</LI>
<LI>Corrected options to build granular shared libs.
Have "-undefined define_a_way" instead of "-undefined error".</LI>
</UL></LI>
</UL>
<A NAME="dgt-notes">
<H3><I>Digitization & Hits</I></H3></A>
<UL>
<LI><TT>G4VDigi</TT>: added methods to store and retrieve HepRep attributes
in same manner as currently done for trajectories and hits.</LI>
</UL>
<A NAME="emlow-notes">
<H3><I>Electromagnetic Processes (Low-energy)</I></H3></A>
<UL>
<LI>Fixes to tables manipulation, effective charge, graphite problem and
Bremsstrhalung low energy edge of the spectrum.</LI>
<LI>Revision of G4LowEnergyPhotoelectric to allow for new development of
precise angular distributions.</LI>
<LI>Improved parameterised PIXE model based on Paul & Sacher review; it
becomes the default one.</LI>
<LI>Software improvement in G4PenelopeCompton.</LI>
<LI>Implemented migration of processes to new <TT>G4VParticleChange</TT>
interfaces.</LI>
</UL>
<A NAME="emstd-notes">
<H3><I>Electromagnetic Processes (Standard)</I></H3></A>
<UL>
<LI>Added new process: positron annihilation to pion pair (<TT>G4eeToHadrons</TT>).</LI>
<LI>Added new utility class: <TT>G4EmCalculator</TT>, to access/calculate dedx, range,
cross sections of EM processes.</LI>
<LI>Migrated to new scheme for store/retrieve Physics Tables:
new sequence of initialisation of EnergyLoss process: first PreparePhysicsTable,
then BuildPhysicsTable or RetreivePhysicsTable. Do not rebuild G4PhysicsVector if
cuts were not changed for given <TT>G4MaterialCutsCouple</TT>.</LI>
<LI>Restructured subdirectories: multiple-scattering and other concrete models have
been moved from utils to standard and a new package (<TT>highenergy</TT>) has been
created.</LI>
<LI>Migrated processes to new interface for <TT>G4VParticleChange</TT>.</LI>
<LI><B>Multiple Scattering</B>
<UL>
<LI>Changes in the angle distribution (slightly modified Highland formula for the
width of the central part, changes in the numerical values of some other
parameters) ---> approximately step independent distribution.</LI>
<LI>Correction in <TT>SampleCosineTheta</TT> in order to avoid numerical precision
problems at high energy/small step.</LI>
<LI>Fix precision problem for very high energy ions in gases (or with
small stepsize) has been solved in <TT>G4MscModel</TT>.</LI>
</UL></LI>
<LI><B>proton Ionization</B>
<UL>
<LI>Extended <TT>G4BraggModel</TT> below <TT>1 keV</TT></LI>
</UL></LI>
<LI><B>Ion Ionization</B>
<UL>
<LI>Decoupled <TT>G4ionIonisation</TT> process from proton ionisation,
use alpha stopping power tables for simulation of ion ionisation.</LI>
<LI>Added <TT>G4ionEffectiveCharge</TT> class needed to ion physics.</LI>
</UL></LI>
<LI><B>mu Ionization</B>
<UL>
<LI>Fixed a problem observed after deactivation of muon ionisation.</LI>
<LI>Provide a possibility to use the same EnergyLoss process class for
several particles (mu+ and mu-)</LI>
<LI>Changed process names: Mu -> mu.</LI>
</UL></LI>
<LI><B>PAIonization</B>
<UL>
<LI>Removed <TT>G4PAIonisation</TT>; provided two new models of PAI ionisation
and example <TT>TestEm8</TT> to demonstrate how to use these models. Provided
possibility to use PAI per region; any low cut should be established for
the PAI model.</LI>
<LI>Removed <TT>G4IonisationByLogicalVolume</TT>.</LI>
</UL></LI>
<LI><B>All EnergyLoss processes</B>
<UL>
<LI>Removed <TT>ProposeTrackStatus()</TT> from AlongStep for EnergyLoss processes,
this action becomes under responsibility of <TT>G4SteppingManager</TT>.</LI>
</UL></LI>
<LI><B>Pair production by muon</B>
<UL>
<LI>Fixed bug in calculation of cross section of pair production by muons.</LI>
</UL></LI>
<LI><B>eBremsstrahlung</B>
<UL>
<LI>Added a threshold for <TT>G4eBremsstrahlung</TT> process, if emitted gamma is
above the threshold, incoming track is killed and is added to the list of
secondary particles.</LI>
</UL></LI>
<LI><B>Compton Scattering</B>
<UL>
<LI>Improved <TT>totalCrossSection</TT> parameterisation below <TT>15 keV</TT>.</LI>
</UL></LI>
</UL>
<A NAME="evt-notes">
<H3><I>Event</I></H3></A>
<UL>
<LI>Made <TT>G4PrimaryTransformer</TT> a base class to allow for users to customize treatment
of particle types, especially those exotic to Geant4.</LI>
<LI>Added treatment of <TT>G4UnknownParticle</TT> to
<TT>G4PrimaryTransformer</TT>.</LI>
<LI><TT>G4GeneralParticleSource</TT>: added new features, focused beam and
multiple vertices.</LI>
</UL>
<A NAME="gen-notes">
<H3><I>General Processes, Parameterisation, Cuts, Decay, Optical</I></H3></A>
<UL>
<LI>Migrated processes to new interface for <TT>G4VParticleChange</TT>.</LI>
<LI><B>Cuts</B>:
<UL>
<LI>Added <TT>G4PhysicsTableHelper</TT> class in order to assist
implementation of new scheme of <TT>Store/RetrievePhysicsTable()</TT>
for processes.</LI>
<LI>Added <TT>G4MCCIndexConversionTable</TT> class and modified
<TT>G4ProductionCutsTable</TT> in order to extend functionality of
<TT>Store/RetrievePhysicsTable()</TT>.</LI>
</UL></LI>
<LI><B>Decay</B>:
<UL>
<LI>Introduced <TT>G4UnknownDecay</TT> class.
<LI>Added a new method <TT>GetRemainderLifeTime()</TT> to <TT>G4Decay</TT>.</LI>
</UL></LI>
<LI><B>Management</B>:
<UL>
<LI>Added <TT>PreparePhysicsTable()</TT> method in <TT>G4VProcess</TT>.</LI>
<LI>Added <TT>const</TT> cast for arguments in
<TT>Store/RetrievePhysicsTable()</TT>.</LI>
</UL></LI>
<LI><B>Optical</B>:
<UL>
<LI>Fixed bug in DielectricMetal only <TT>GetFacetNormal()</TT> for
LobeReflection.</LI>
</UL></LI>
<LI><B>Transportation</B>:
<UL>
<LI>Introduced <TT>G4StepLimiter</TT> to handle <TT>MaxAllowedStep</TT>
in <TT>G4UserLimits</TT>.</LI>
<LI>Added pointer to sensitive detector in <TT>G4ParticleChangeForTransport</TT>
and updated <TT>G4Transportation</TT> to make use of it.</LI>
<LI>Added protection in <TT>G4Transportation</TT> for specific case of
parameterised volumes by materials where no EM processes are defined.</LI>
<LI>Added threshold energy for not abandoning stuck particles quickly in
<TT>G4Transportation</TT>.</LI>
<LI><TT>G4UserSpecialCuts</TT>: apply tracking cut only if <TT>Rmin</TT> or
<TT>Emin > DBL_MIN</TT>.</LI>
</UL>
</UL>
<A NAME="geo-notes">
<H3><I>Geometry</I></H3></A>
<UL>
<LI><B>Magnetic Field</B>
<UL>
<LI>Added <TT>Set/GetAnomaly()</TT> methods in <TT>G4Mag_SpinEqRhs</TT>
equation of motion.</LI>
</UL></LI>
<LI><B>Management</B>
<UL>
<LI>Introduced abstract class <TT>G4VStoreNotifier</TT> to be optionally
associated to stores by the user for the notification of the registration
and deregistration of objects in the stores.</LI>
<LI>Added notification mechanism to volume, solid, and region stores.</LI>
<LI><TT>G4VTouchable</TT>: added <TT>GetCopyNumber()</TT> method, clone of
<TT>GetReplicaNumber()</TT>.</LI>
<LI>Introduced virtual method <TT>GetCubicVolume()</TT> to <TT>G4VSolid</TT>,
returning an estimation of the solid volume in internal units. This method
may be overloaded by derived classes to compute the exact geometrical
quantity for solids where this is possible, or anyway to cache the
computed value. By default it uses the new protected method
<TT>EstimateCubicVolume(stat, eps)</TT> with fixed statistics and error
accuracy, and does not cache the computed value.</LI>
<LI>Added <TT>GetPolyhedron()</TT> to <TT>G4VPhysicalVolume</TT>, a smart access
function that creates a <TT>G4Polyhedron</TT> on request and stores for
future access. A null pointer means "not available".</LI>
<LI><TT>G4LogicalVolume</TT>:
<UL>
<LI>Added method <TT>GetMass()</TT> to <TT>G4LogicalVolume</TT>, returning
the value in absolute units of the mass of the logical volume tree.
The mass is computed from the estimated geometrical volume of each solid
and material's density associated to the logical volume and its daughters.
The returned value is cached and can be used for successive calls (default),
unless recomputation is forced by providing <TT>true</TT> as the first boolean
argument in input. Computation should be forced if the geometry setup has
changed after the previous call. An optional argument to specify a material
is provided; it is implicitely used for geometrical parameterisations by
material.</LI>
<LI>Added method <TT>TotalVolumeEntities()</TT> to <TT>G4LogicalVolume</TT>,
returning the total number of physical volumes (placed or
replicated/parameterised) included in the tree represented by the current
logical volume.</LI>
<LI>Fix in <TT>UpdateMaterial()</TT> for checking the existance of
root-region pointer for logical-volume. Fixes report #684.</LI>
</UL></LI>
</UL></LI>
<LI><B>Navigation</B>
<UL>
<LI><TT>G4Navigator</TT>:
<UL>
<LI>Added new access method <TT>SeverityOfZeroStepping()</TT>.</LI>
<LI>Allow consecutive corrections for stuck tracks in <TT>ComputeStep()</TT>
up to 10 times before aborting the event.</LI>
</UL></LI>
<LI><TT>G4ReplicaNavigation</TT>: fix in <TT>DistanceToOutPhi()</TT> for the case
of phi sections on convex surfaces. Fixes problem report #651.</LI>
</UL></LI>
<LI><B>Solids</B>
<UL>
<LI>Added specific implementation for <TT>GetCubicVolume()</TT> wherever possible
and implemented caching of the computed value for all solids.</LI>
<LI>Added specific <TT>GetPolyhedron()</TT> to solids, a smart access function
that creates a <TT>G4Polyhedron</TT> on request and stores for future access.
A null pointer means "not available".</LI>
<LI><I>CSG solids</I>:
<UL>
<LI><TT>G4Trap</TT>: added check for X-centering in constructor by verteces.
Fixes problem report #687.</LI>
</UL></LI>
<LI><I>Specific solids</I>:
<UL>
<LI>Added new <TT>G4TwistedBox</TT> shape: a twisted box with twist angle
alpha, length a/2,b/2,L/2.</LI>
<LI>Added new <TT>G4TwistedTrap</TT> shape: a twisted trapezoid with twist
angle alpha and same trapezoidal caps.</LI>
<LI>Fixes in <TT>G4VSurface</TT>:
<UL>
<LI><TT>GetNeighbours()</TT>: corrected axiscode (was returning the wrong
neighbours).</LI>
<LI><TT>SetNeighbours()</TT>: fixed problem #685
(index out of range).</LI>
</UL></LI>
<LI>Fix in <TT>G4PolyconeSide::Inside()</TT> for points at radius = 0 for phi
slides solids with an inner radius. Addresses problem report #598.</LI>
</UL></LI>
</UL></LI>
<LI><B>Volumes</B>
<UL>
<LI><TT>G4ReflectionFactory</TT>: added automatic reflection for visualization
attributes, biasing weights and regions associated to the logical volume.</LI>
</UL></LI>
</UL>
<A NAME="glob-notes">
<H3><I>Global</I></H3></A>
<UL>
<LI>New implementation of <TT>G4Allocator</TT> based on a pool of memory-chunks.
The size of a single chunk is kept at 1Kb as for the old allocator.
This implementation replaces the old <TT>G4Allocator</TT> which was based on
pages and no longer portable on the gcc-3.4.X compilers.
The new allocator also supports the standard interface required for STL
containers, in case it will be used as alternative allocator instead of
the default <TT>std::allocator</TT>.<BR>
Added inclusion of <TT><cstddef></TT> to <TT>G4Allocator.hh</TT> to make the
header self-consistent.</LI>
<LI>Migrated code to use <TT>std</TT> namespace for mathematical functions
included from <TT><cmath></TT>. Removed explicit inclusion of <TT>CLHEP.h</TT> and
therefore also implicit inclusions of system headers <TT><math.h></TT>,
<TT><stdlib.h></TT> and <TT><limits.h></TT>.</LI>
<LI>Removed implicit inclusion of CLHEP's template function <TT>abs()</TT>, use
now standard function <TT>std::abs()</TT> instead.</LI>
<LI><TT>G4PhysicsTable</TT>:
<UL>
<LI>Added collection of flags and related methods. The collection of boolean
values will be used by physics processes to flag if recomputation will be
required or not.</LI>
<LI>Code cleanup and added <TT>Push_back()</TT> method.</LI>
</UL></LI>
<LI>Added global function <TT>G4RandomDirection()</TT> providing a random 3-vector
normalised in 4pi.</LI>
<LI>Cleared obsolete setup for min/max macros required for Windows/VC++6.</LI>
</UL>
<A NAME="greps-notes">
<H3><I>Graphical Representations</I></H3></A>
<UL>
<LI>Introduced forced auxiliary edge visible in <TT>G4VisAttributes</TT>.</LI>
<LI>Removed <TT>G4Polymarker::line</TT>. Use <TT>G4Polyline</TT> instead.</LI>
<LI><TT>HepPolyhedron</TT>, <TT>BooleanProcessor</TT>: replaced occurences of
<TT>HepStd</TT> with <TT>std</TT>.</LI>
</UL>
<A NAME="had-notes">
<H3><I>Hadronic Processes</I></H3></A>
<UL>
<LI>Migrated processes to new interface for <TT>G4VParticleChange</TT>.</LI>
<LI>Improved treatment of cross-sections, and neutrons to improve on the ATLAS/HEC
shower-shape description for the QGSP physics list.</LI>
<LI>cross_sections
<UL>
<LI>Updating pion cross-sections for copper, to be more closely consistent
with data.</LI>
</UL></LI>
<LI>management
<UL>
<LI>Changed the framework classes, so that the <TT>G4TouchableHandle</TT> from the
parent <TT>G4Track</TT> is now carried forward to the secondary tracks in
all cases.</LI>
</UL></LI>
<LI>stopping
<UL>
<LI>Changed process classes, so that the <TT>G4TouchableHandle</TT> from the parent
<TT>G4Track</TT> is now carried forward to the secondary tracks in all cases.</LI>
</UL></LI>
<LI>models/binary_cascade
<UL>
<LI>Resonance potentials now consistently treated under the assumption that
they are zero.</LI>
<LI>Introduced a new more selective system of debug printout steering.</LI>
<LI>Cleared debug run-time output.</LI>
</UL></LI>
<LI>models/cascade
<UL>
<LI>Fixed a memory fault, and some minor cleanup.</LI>
</UL></LI>
<LI>models/chiral_inv_phase_space/body
<UL>
<LI>Fixed unnecessary debug messages affecting unit-test.</LI>
<LI>Changed problem related print-out.</LI>
</UL></LI>
<LI>models/high_energy
<UL>
<LI>Removed a phi asymmetry in the high energy neutral pion distributions.</LI>
</UL></LI>
<LI>models/leading_particle
<UL>
<LI>Added clarification notice with respect to the nature of the code,
to be printed at start-up.</LI>
<LI>Corrected treatment of secondaries in the creation of particle change.</LI>
</UL></LI>
<LI>models/low_energy
<UL>
<LI>Fixed an energy non-conservation problem of few <TT>MeV</TT> size,
in relations to phase-space sampling.</LI>
</UL></LI>
<LI>models/muon_nuclear
<UL>
<LI>Changed process name to be consistent with other muon processes.</LI>
<LI>Changed memory allocation policy in the hadronic vertex to avoid a platform
dependency that can lead to a crash on exit.</LI>
</UL></LI>
<LI>models/radioactive_decay
<UL>
<LI>Added G4MshellECDecay class and changed <TT>G4RadioactiveDecay</TT>
accordingly.</LI>
<LI>Added better handling of incomplete data files.</LI>
<LI>Corrected treatment of metastables as initial tracks in VR mode.</LI>
<LI>Default decay window in VR model set to 9.9x109 - 1010 seconds.</LI>
<LI>Added individual time stamp for splitted isotope</LI>
<LI>Fixed problem reports #396 and #662.</LI>
<LI>Applying now atomic relaxation only to <TT>5 < z < 101</TT>.</LI>
<LI>No more fast/slow beta decay mode with a faster 3-body decay implementation.</LI>
<LI><TT>G4RIsotopeTable</TT>: no longer reset the excitation energy.</LI>
<LI>Added <TT>touchableHandle</TT> to secondary tracks.</LI>
</UL></LI>
</UL>
<A NAME="parmodels-notes">
<H3><I>Parameterisations</I></H3></A>
<UL>
<LI>New <B>gflash</B> submodule for fast shower parameterisation, contribution
of CMS and ATLAS.</LI>
<LI>Moved original TRD classes to <TT>trd_models</TT> submodule.</LI>
</UL>
<A NAME="part-notes">
<H3><I>Particles</I></H3></A>
<UL>
<LI>Introduced <TT>G4UnknownParticle</TT> class for bosons.</LI>
<LI>Introduced <TT>G4MuonDecayChannelWithSpin</TT> class.</LI>
<LI>Removed obsolete dependency to G4Material from <TT>G4ParticleDefinition</TT> and
related class.</LI>
</UL>
<A NAME="run-notes">
<H3><I>Run and Interfaces</I></H3></A>
<UL>
<LI><B>Interfaces</B>:
<UL>
<LI><TT>G4UIXm</TT>: define default resources in case <TT>XENVIRONMENT</TT>
is not set.</LI>
</UL></LI>
<LI><B>Run</B>:
<UL>
<LI>Temporarily allow the use of <TT>G4ParticleTable</TT> before the
construction of physics table.</LI>
<LI>Fixed wrong behaviour of <TT>G4RunManager</TT> when the user modifies the
geometry without replacing the world.</LI>
<LI>Moved ConstructParticle() and ConstructProcess() methods to 'public'.</LI>
<LI><TT>G4VUserPhysicsList</TT>:
<UL>
<LI>Modified <TT>BuildPhysicsTable()</TT> and <TT>PreparePhysicsTable()</TT>
for new scheme of <TT>Store/RetrievePhysicsTable()</TT> methods.</LI>
<LI><TT>ConstructParticle()</TT> and <TT>ConstructProcess()</TT> methods are
moved to 'public'.</LI>
</UL></LI>
</UL></LI>
</UL>
<A NAME="track-notes">
<H3><I>Track and Tracking</I></H3></A>
<UL>
<LI><B>Track</B>
<UL>
<LI>Removed obsolete interface methods from <TT>G4VParticleChange</TT>.</LI>
<LI>Modified <TT>G4ParticleChangeForDecay</TT>:
added <TT>thePolarizationChange</TT> and related methods.</LI>
<LI>Fixed problem in the destructor of <TT>G4VUserTrackInformation</TT>.</LI>
</UL></LI>
<LI><B>Tracking</B>
<UL>
<LI>Made <TT>G4SteppingVerbose</TT> a singleton.
<LI><TT>G4SteppingManager</TT>:
<UL>
<LI>Change the track status to <TT>StopAndKill</TT> when a track looses
all kinetic energy cumulatively while the AlongStep loop.</LI>
<LI>Now changing the track status to <TT>StopButAlive</TT> if the kinetic
energy becomes below zero while AlongStep loop.</LI>
<LI>Fix on interactive on/off for AtRest processes.</LI>
<LI>Do not issue <TT>G4Exception</TT> anymore also if no atRestDoit
processes exit.</LI>
</UL></LI>
<LI><TT>G4Trajectory</TT>, <TT>G4SmoothTrajectory</TT>:
added HepRep attribute for magnitude of momentum.</LI>
<LI>Fix in <TT>G4SteppingManager::InvokePSDIP()</TT> for completing migration
to new <TT>G4VParticleChange</TT> interface.
</UL></LI>
</UL>
<A NAME="vis-notes">
<H3><I>Visualization</I></H3></A>
<UL>
<LI><B>Management</B>
<UL>
<LI>Correction to guidance of <TT>vis/viewer/set/hiddenEdge</TT>.</LI>
<LI>Removed deprecated commands:
<PRE>
/vis/viewer/show (use /vis/viewer/update)
/vis/viewer/lightsThetaPhi (use /vis/viewer/set/lightsThetaPhi)
/vis/viewer/lightsVector (use /vis/viewer/set/lightsVector)
/vis/viewer/viewpointThetaPhi (use /vis/viewer/set/viewpointThetaPhi)
/vis/viewer/viewpointVector (use /vis/viewer/set/viewpointVector)
</PRE></LI>
<LI>Added auxiliary edge visible flag to <TT>G4ViewParameters</TT> and a new
command, <TT>/vis/viewer/set/auxiliaryEdge</TT>. (Auxiliary edges are not
genuine edges of the volume. They may be in a curved surface made
out of polygons, for example, or in plane surface of complicated
shape that has to be broken down into simpler polygons.
<TT>HepPolyhedron</TT> breaks all surfaces into triangles or quadrilaterals.
There will be auxiliary edges for any volumes with a curved surface,
such as a tube or a sphere, or a volume resulting from a Boolean
operation. Normally, they are not shown, but sometimes it is useful
to see them. In particular, a sphere, because it has no egdes, will
not be seen in wireframe mode in some graphics systems unless this
flag is turned on).
Implemented force auxiliary edge visible feature of
<TT>G4VisAttributes</TT>.</LI>
<LI>Refined forced wireframe algorithm: *always* force wireframe even
if hidden line removal is specified.</LI>
<LI>Rationalised vis command code (uses <TT>G4UIcommand</TT> static conversion
functions where possible).</LI>
<LI>Removed <TT>GetDrawingStyle()</TT> method. Instead, developer has to:
<UL>
<LI>Get vis attributes (pick up defaults if none):
<PRE>
const G4VisAttributes* pVA =
fpViewer -> GetApplicableVisAttributes (v.GetVisAttributes ());
</PRE>
where v is the visible object (polyline, circle, polyhedron, etc.).</LI>
<LI>Get view parameters that the user can force through the vis
attributes, thereby over-riding the current view parameter:
<PRE>
G4ViewParameters::DrawingStyle drawing_style = GetDrawingStyle (pVA);
G4bool isAuxEdgeVisible = GetAuxEdgeVisible (pVA);
</PRE>
Most developers do this anyway, so the removed routine was redundant
and resulting code is more efficient and transparent.<BR>
To get colour, the developer can pick up directly from the vis attributes,
pVA, obtained as above:
<PRE>
const G4Colour& c = pVA -> GetColour ();
</PRE>
or use a slightly less efficient method:
<PRE>
const G4Colour& c = GetColour (v);
</PRE>
where v is the visible object.<BR>
Note that for text, the developer must use a different procedure,
since the default text colour is determined by the default text vis
attributes, which may be specified independent of default vis attributes
of other types of visible objects. A function, <TT>GetTextColour()</TT>,
is provided and the recommended use is:
<PRE>
const G4Colour& c = GetTextColour (text);
</PRE>
which picks up the default if none.</LI>
</UL></LI>
<LI>Corrected mistake in <TT>/vis/viewer/set/*Vector</TT> commands.
<LI>Utilise smart method <TT>GetPolyhedron()</TT> for solids; greatly speeds 2nd
and subsequent drawings when kernel access is required.</LI>
<LI>Rationalised use of <TT>EstablishSpecials</TT>: functionality moved
to base class.</LI>
<LI>Removed use of obsolete <TT>G4Polymarker::line</TT>.</LI>
</UL></LI>
<LI><B>Modeling</B>
<UL>
<LI>Added <TT>G4PhysicalVolumeMassScene</TT> and improvements to
<TT>G4PhysicalVolumeModel</TT>.</LI>
</UL></LI>
<LI><B>ASCIITree</B>
<UL>
<LI><TT>verbosity >= 3</TT>: prints volume, density of all volumes in hierarchy.
<LI><TT>verbosity >= 4</TT>: calculates the mass of the complete geometry tree taking
into account daughters up to the depth specified for each physical
volume in the current scene. Culling is ignored so that all volumes
are processed. Uses <TT>G4PhysicalVolumeMassScene</TT>.</LI>
<LI>Added option to write to file (<TT>/vis/ASCIITree/set/outFile</TT>).</LI>
</UL></LI>
<LI><B>DAWN</B>
<UL>
<LI>Improved diagnostic on trapping non-regular polyhedra.</LI>
</UL></LI>
<LI><B>HepRep</B>
<UL>
<LI>Fixed a compilation problem in <TT>zlib</TT> for AMD64.</LI>
<LI>Upgraded to latest version C++ HepRep driver from FreeHEP.</LI>
<LI>Fixed GEANT-51, upgrade zlib to version 1.2.2 (for AMD64 compatibility).</LI>
</UL></LI>
<LI><B>OpenGL</B>
<UL>
<LI>Hidden line *and/or* hidden surface removal now work for OGL*X and OGL*Xm.</LI>
<LI>Trap non-regular polyhedra and other small changes.</LI>
<LI>Removed redundant <TT>fLastVP</TT> from <TT>G4OpenGLStoredSceneHandler</TT>.</LI>
<LI><TT>G4OpenGLWin32Viewer::ShowView()</TT>: correction in usage of glFlush to
allow proper visualization of trajectories.</LI>
</UL></LI>
<LI><B>OpenInventor</B>
<UL>
<LI>General code review of the driver.</LI>
<LI>Porting on Windows.</LI>
<LI>Corrected handling of transparent mode.</LI>
<LI>Forced culling off by default and solid mode. User will see
all of the requested geometry volume tree; can use pointer button
and CTRL-left-click to uncover (SHIFT-left-click to re-cover);
can use the hand button and right-click to get wireframe.</LI>
</UL></LI>
</UL>
<A NAME="lst-notes">
<H3><I>Physics lists</I></H3></A>
<UL>
<LI>Imported hadronic lists and electromagnetic lists from top-level
to new module <TT>physics_lists</TT>.
<UL>
<LI><B>electromagnetic</B>
<UL>
<LI>Instantiate processes only once for muons.</LI>
<LI>Use ionIonisation for GenericIon, alpha, He3.</LI>
</UL></LI>
<LI><B>hadronic</B>
<UL>
<LI>Added to build missing LHEP_BERT_HP & LHEP_BIC_HP lists.</LI>
<LI>Implemented migration to new <TT>G4VParticleChange</TT> interface.</LI>
<LI>Removed debug printout in <TT>G4HadronQEDBuilder</TT>.</LI>
</UL></LI>
</UL></LI>
</UL>
<A NAME="env-notes">
<H3><I>Environments</I></H3></A>
<UL>
<LI>New version of MOMO integrating GAG and Gain.</LI>
<LI>Added new example and removed obsolete files.</LI>
</UL>
<A NAME="ex-notes">
<H3><I>Examples</I></H3></A>
<UL>
<LI>Updated reference outputs.</LI>
<LI><B>advanced</B>
<UL>
<LI>air_shower
<UL>
<LI>New example for the simulation of an UV detection system (UVscope).</LI>
</UL></LI>
<LI>brachytherapy
<UL>
<LI>Improved analysis management and corrected initial seed setting.</LI>
</UL></LI>
<LI>composite_calorimeter
<UL>
<LI>Use new phys-lists structure.</LI>
</UL></LI>
<LI>cosmicray_charging
<UL>
<LI>Removed call by pointer of hadronics classes.</LI>
<LI>Added MuNuclear interaction.</LI>
<LI>Updated input macros for obsolete gps commands.</LI>
</UL></LI>
<LI>gammaray_telescope
<UL>
<LI>Code review.</LI>
</UL></LI>
<LI>hadrontherapy
<UL>
<LI>Correction to analysis classes.</LI>
</UL></LI>
<LI>lAr_calorimeter
<UL>
<LI>Use new phys-lists structure.</LI>
</UL></LI>
<LI>medical_linac
<UL>
<LI>Added MedLinacTrackingAction, MedLinacMLCDecorator