source: trunk/source/processes/hadronic/models/cascade/History @ 1326

Last change on this file since 1326 was 1315, checked in by garnier, 14 years ago

update geant4-09-04-beta-cand-01 interfaces-V09-03-09 vis-V09-03-08

File size: 52.0 KB
Line 
1$Id: History,v 1.90 2010/06/08 06:34:43 stesting Exp $
2-------------------------------------------------------------------
3
4     ==========================================================
5     Geant4 - an Object-Oriented Toolkit for Physics Simulation
6     ==========================================================
7
8            History file for hadronic/models/cascade
9            ----------------------------------------
10
11This file should be used to summarize modifications introduced in the
12code and to keep track of all tags.
13
14     ---------------------------------------------------------------
15     * Please list in reverse chronological order (last date on top)
16     ---------------------------------------------------------------
17
1808 June 2010 Gunter Folger  (hadr-casc-V09-03-42)
19-  trivial fix for compiler warning on gcc43 on empty body in for(...) in 
20    cascade/include/G4CascadeInterpolator.icc:67
21
2201 June 2010 Michael Kelsey (hadr-casc-V09-03-41)
23-------------------------------------------------
24- paraMaker.cc:  Fix vector initialization for Windows crash.
25
2626 May 2010 Dennis Wright (hadr-casc-V09-03-40)
27-----------------------------------------------
28- G4NucleiModel: remove conversion to fm, and conversion of cross
29  sections to fm**2
30
3121 May 2010 Michael Kelsey (hadr-casc-V09-03-39)
32------------------------------------------------
33Final tag for inclusion in GEANT 4.9.4-beta.  Will be validated internal and
34included in global Hadronics tag.
35
36- G4CascadeSampler.icc:  Activate time-saving checks on single bins.
37- G4ElementaryParticleCollider.cc:  Remove special case for nucleon elastic
38  scattering.
39
4021 May 2010 Michael Kelsey (kelsey-20100521c)
41---------------------------------------------
42- G4CascadeInterface, G4PreCompoundCascadeInterface, G4InuclEvaporation:
43  Simplify code: fetch G4DynamicParticle out of outgoing G4InuclParticles,
44  rather than creating new ones.  Remove all of the *Collider data members
45  (instantiated within G4InuclCollider).  Move final state rotations to
46  G4CollisionOutput.
47
48- G4InuclParticle:  Provide accessor to return G4DynamicParticle.
49
50- G4CollisionOutput:  Add function to apply LorentzRotation to both lists;
51  used by G4CascadeInterface.
52
53- G4ElementaryParticleCollider:  Avoid memory churn with G4LorentzVector
54  temporaries.
55
5621 May 2010 Michael Kelsey (kelsey-20100521b)
57---------------------------------------------
58- G4VCascadeCollider:  New base class for all Colliders.  Carries
59  verboseLevel data member and set-function.  ::collide() is pure virtual.
60  Additional protected member functions will be defined to include all code
61  shared across multiple Colliders.
62
63- Migrate all of the "Collider" factories to use new base class, removing
64  common member functions, and replace passed-in sibling colliders with
65  local data members (pointers for now).  Since none of these classes have
66  persistent (state preserving) data members, the cost of more than one
67  instantiation is minimal.
68
69        G4BigBanger
70        G4ElementaryParticleCollider
71        G4EquilibriumEvaporator
72        G4EvaporationInuclCollider
73        G4Fissioner
74        G4IntraNucleiCascader
75        G4InuclCollider
76        G4NonEquilibriumEvaporator
77        G4PreCompoundInuclCollider
78
79- G4CascadeInterface.cc, G4InuclEvaporation.cc,
80  G4PreCompoundCascadeInterface.cc:  Remove siblings from constructors for
81  the Colliders.
82
83- G4InteractionCase.hh:  Eliminate unnecessary copying of std::pair<>'s, use
84  initializers in ctors, add clear() function to reset to 0-0-0.  Move
85  evaluation of bullet vs. target to new set() function, replacing separate
86  bulletTargetSetter() in the colliders.  Add boolean accessors to avoid
87  hard-coding inter_case values.  Change code numbers so nucleus collisions
88  are negative, and positive codes refer to the "is" or "rtype" numbers.
89
90- G4ElementaryParticleCollider.cc:  Use G4InteractionCase to compute "is",
91  instead of hardwiring the meaning.
92
93- G4Collider.hh:  Remove empty and never-used file.
94
95- G4EvaporationInuclCollider.cc:  Eliminate unnecessary creation of
96  duplicate G4InuclNuclei: pass input through to G4EquilibriumEvaporator.
97
98- G4LorentzConvertor:  Add interfaces to pass G4InuclParticles directly.
99
10021 May 2010 Michael Kelsey (kelsey-20100521a)
101---------------------------------------------
102Replace hand-coded interpolation of arrays with use of G4CascadeInterpolator.
103In all cases, local arrays are replaced with static const, and the
104interpolator object itself is declared static, to reduce memory churn.
105
106        G4NucleiModel::totalCrossSection()
107        G4EquilibriumEvaporator::getQF()
108        G4InuclSpecialFunctions::paraMaker[Truncated]() (in paraMaker.cc)
109
110- G4CascadSpecialFunctions:  Remove. totalCrossSection() redundant with
111  G4NucleiModel.  Move absorptionCrossSection() to G4NucleiModel.
112
113- G4CascadeInterpolator.icc:  Bug fix to catch special case of exact upper
114  bin edge (occurs when !doExtrapolation).  If index == last + 0., just
115  return upper edge value, without calculation.
116
117- G4NucleiModel.cc:  Use G4Cascade{Pi*}Channel and G4Cascade{NN,NP,PP}Channel
118  classes to get total cross-sections for pi-N and N-N scattering.  Arrays
119  for kaon and hyperon scattering should be migrated as well, once binning
120  is resolved.  Move absorptionCrossSection() here from SpecialFunctions.
121
12220 May 2010 Michael Kelsey (kelsey-20100521)
123--------------------------------------------
124- G4CascadeInterpolator.icc:  Two bug fixes involving values at array edges.
125
12619 May 2010 Michael Kelsey, Dennis Wright
127-----------------------------------------
128- G4BertiniData.hh,.cc:  Remove unused and unnecessary class.
129- G4NucleiModel.cc: convert nuclear radii to fm and cross sections to
130    fm**2.  Use six-zone model for A > 99, and make alpha a 1-zone
131    nucleus.
132- G4CascadSpecialFunctions: convert pion absorption cross sections from
133    mb to fm**2, correct spelling of method absorptionCrossSection
134
13517 May 2010 Michael Kelsey (hadr-casc-V09-03-38)
136------------------------------------------------
137- paraMaker.cc (G4InuclSpecialFunctions::paraMaker[Truncated]):  Upper edge
138  of interpolation array not properly handled.  Should be "if (Z >= 70.0)".
139  This affects G4NonEquilibriumEvaporator output.
140
14117 May 2010 Michael Kelsey (hadr-casc-V09-03-37)
142------------------------------------------------
143Bug fixes for compiler warnings (not seen on MacOSX, even with g++ -Wall)
144
145- G4CascadeData.hh: Dummy arrays needed double-braces for initialization.
146
147- G4CascadeInterpolator.icc: Extraneous decimal point in "for (i=0.;".
148
149- G4CascadeKzeroBarNChannel.cc:  Left three "old" arrays in place during
150  conversion.
151
15214 May 2010 Michael Kelsey (hadr-casc-V09-03-36)
153------------------------------------------------
154Remove obsolete files following reorganization of two-body scattering
155lookup tables.
156
157        G4CascadeElasticInterface.hh,.cc
158        G4ElasticCascadeInterface.hh,.cc
159        G4FinalStateSampler.hh,.cc
160        G4NucleonSampler.hh,.cc
161        G4PionSampler.hh,.cc
162
163- G4CascadeChannel.hh,.cc:  All functionality removed, replaced with
164  namespace containing only getQnums and CheckQnums validation functions.
165
16614 May 2010 Michael Kelsey (hadr-casc-V09-03-35)
167------------------------------------------------
168Replace independent parallel samplers with templated base class and single
169implementation.  This completes the reorganization of the channel tables.
170
171- G4CascadeSampler:  Redefine as templated base, taking binning array as
172  constructor argument.  Move implementation file from .cc to .icc.
173  NOTE:  G4CascadeSampler.cc is removed, since not consistent with new .hh.
174
175- G4PionNucSampler:  Subclass of G4CascadeSampler<30>, replaces
176  G4FinalStateSampler, using bins array from there.
177
178- G4KaonNucSampler:  Sublcass of G4CascadeSampler<31>, replaces previous
179  G4CascadeSampler, using bins array from there.
180
181- G4Cascade*Channel.hh:  Change all typedefs to pass appropriate of two new
182  samplers in template.
183
184- G4ElementaryParticleCollider.cc: Replace long "if (is==)"-cascades with
185  switch blocks.  Move all getOutgoing calls (for pions and nucleons) into
186  one function, and call it from outside multiplicity checks.  Use
187  G4CascadeInterpolator for angular distributions.  Set modelID=3 in all
188  G4InuclParticle constructions.
189
19014 May 2010 Michael Kelsey (hadr-casc-V09-03-34)
191------------------------------------------------
192Extract lookup tables from G4PionSampler and G4NucleonSampler into
193individual "classes" defined and initialized with G4CascadeData.
194
195- G4CascadePi{Plus,Minus,Zero}{P,N}Channel.hh: Six new typedefs defined as
196  with the existing G4CascadeXXXChannel, to replace G4PionSampler.
197
198- G4CascadeT33piNChannel.cc: Lookup tables for both PiPlusP and PiMinusN,
199  implemented as with existing G4CascadeXXXChannel, from G4PionSampler.cc.
200
201- G4CascadeT31piNChannel.cc: Lookup tables for both PiMinusP and PiPlusN,
202  implemented as with existing G4CascadeXXXChannel, from G4PionSampler.cc
203
204- G4CascadeT11pizNChannel.cc: Lookup tables for both PiZeroP and PiZeroN,
205  implemented as with existing G4CascadeXXXChannel, from G4PionSampler.cc
206
207- G4Cascade{PP,NP,NN}Channel.hh: Three new typedefs defined as with the
208  existing G4CascadeXXXChannel, to replace G4NucleonSampler.
209
210- G4CascadeT1NNChannel.cc: Lookup tables for both p-p and n-n scattering,
211  implemented as with existing G4CascadeXXXChannel, from G4NucleonSampler.cc
212
213- G4CascadeT0npChannel.cc: Lookup tables for p-n scattering, implemented as
214  with existing G4CascadeXXXChannel, from G4NucleonSampler.cc
215
216- G4CascadeFunctions.hh, .icc: Pass std::vector as non-const argument to
217  getOutgoingParticleTypes() instead of returning internal buffer.
218
219- G4CascadeSampler.cc, G4FinalStateSampler.cc:  Add some checks in
220  findFinalStateIndex, fillSigmaBuffer, and sampleFlat(), such that
221  single-entry ranges don't go through the analysis, just return index 0.
222
223- G4ElementaryParticleCollider.cc: Follow change to getOutgoingParticleTypes()
224  in generateStrangeChannelPartTypes().  Replace all uses of G4PionSampler
225  and G4NucleonSampler with new channel "classes".
226
22714 May 2010 Michael Kelsey (hadr-casc-V09-03-33)
228------------------------------------------------
229Continue consolidation of two-body collision lookup tables.  Unify
230interfaces between pion/nucleon and kaon/hyperon samplers.
231
232- G4CascadeData: Many changes to support use as data class for both
233  kaon/hyperon and pion/nucleon tables (migration will be next tag):
234
235  1) Add new first argument to template with number of bins in energy
236     interpolation.  This replaces the (temporary) use of
237     G4CascadeSampler::energyBins within the class definition.
238
239  2) Add two additional template arguments, N8 and N9, with default values
240     of zero.  These will be used by the pion/nucleon tables, but not by the
241     existing kaon/hyperon tables.
242
243  3) Define additional arrays for 8- and 9-body final states, using
244     conditional dimensioning (e.g., if N8==0, use [1]).  Define second
245     9-body constructor to accept and initialize the new arrays.
246
247  4) Eliminate static intialization of index[], moving it into
248     initialize().  Template specialization can't be used with data!
249
250  5) Add separate "sum" (summed N-body cross-sections) and "tot" arrays
251     (measured inclusive xsec).  Latter is a const-ref, initialized to "sum"
252     if not provided as ctor argument, with two new ctors as needed.
253
254  6) Add accessor to return maximum multiplicity (NM+1).
255
256- G4CascadeFunctions.hh:  Add second template argument to specify which
257  "final state sampler" is the base class.  Use both T::data.tot and
258  T::data.sum in GetMultiplicity(), to support sum/tot comparisons in
259  pion/nucleon channels.  Extend GetOutputParticleTypes() to support up to
260  multiplicity 9.
261
262- G4CascadeFunctions.icc:  Implementations of template class functions.
263
264- G4CascadeXXXChannel.hh: Add "31," as initial template argument for Data.
265  Add G4CascadeSampler as second template argument in G4CascadeXXXChannel
266  typedef.
267
268
26914 May 2010 Michael Kelsey (hadr-casc-V09-03-32)
270------------------------------------------------
271Continue revisions to two-body collision lookup tables.  Make the kaon and
272hyperon channels compatible with the pion/nucleon samplers, before the next
273stage of unifying the structure.
274
275- G4CascadeSampler: NEW class, parallel to G4FinalStateSampler but with a
276  different energy binning.  Used as base class to G4CascadeFunctions<T>,
277  from which the cross-section and other arrays are passed.  Implement
278  findMultiplicity (cf. G4CascadeFunctions::getMultiplicity) to return the
279  true value, not the array index.
280
281  This class replaces functionality of G4CascadeChannel, which is redundant.
282
283- G4CascadeChannel: Remove all interpolation code, leaving only getQnums().
284
285- G4CascadeFunctions:  Inherit from G4CascadeSampler for interpolations,
286  except for final-state extraction (where FS type arrays are dealt with
287  locally, not passed).  Public static functions rely on private instantiated
288  version of class to do work, so that G4CascadeSampler gets instantiated.
289
290- G4CascadeData: Remove final template argument (total number of indices),
291  as redundant with simple sum of multplicity indices.  Use template args to
292  dimension data member arrays (const references), and to statically
293  initialize the start-stop index table.  Make large cross-sections table
294  G4double, not G4float.  Define ctor to pass in array refs for initialization.
295  Reduce index array to single dimension (start=index[i], stop=index[i+1]).
296
297- G4CascadeXXXChannel:  All of the initial-state channel "classes"
298  (typedef names) modified to follow G4CascadeData rewrite.  In .cc file,
299  the explicit lookup tables are static, and passed by const-ref to
300  G4CascadeData.  The "initializer" struct is dropped; with the static
301  "data" object initialized by ctor here.
302
303- G4ElementaryParticleCollider.cc:  In ::generateMultiplicity(), eliminate
304  extra "+2" and "-2" applied to local "mul" variables.  With change above,
305  all functions return return true multiplicity, not array index.
306
307- G4FinalStateSampler:  Add findFinalStateIndex() function, to make
308  interface match G4CascadeSampler exactly.  Reduce index array to single
309  dimension.
310
311- G4PionSampler.cc, G4NucleonSampler.cc:  Use new findFinalStateIndex()
312  function in GetFSPartTypesXXX() functions.  Reduce index array to single
313  dimension (start=index[i], stop=index[i+1]).
314
31514 May 2010 Michael Kelsey (hadr-casc-V09-03-31)
316------------------------------------------------
317Begin revisions to two-body collision lookup tables.  This will be a major
318reorganization, splitting the G4PionSampler and G4NucleonSampler into
319separate little "classes" (typedefs) for each initial state, in the same way
320that the kaon and hyperon states are done now.  The underlying templated and
321base classes will be unified across all of the channels.
322
323- G4CascadeInterpolator: NEW class to encapsulate interpolation procedure.
324  Uses C-style arrays passed by dimensioned reference, to allow compile-time
325  array bounds checking.  Template argument is array dimension, and array of
326  energy bins is saved by ctor.  User array to be interpolated is passed as
327  function argument.  Last value interpolated, along with result, is saved,
328  to allow fast multiple interpolations.
329
330  This class is substantially more lightweight than G4PhysicsVector.
331
332- G4FinalStateSampler: Replace manual interpolation with G4CascadeInterpolator.
333  Remove redundant sampleFlat(...) function with argument.  Rename member
334  functions in anticipation of merging with G4CascadeFunctions.
335
336- G4PionSampler.cc, G4NucleonSampler.cc: Follow use of G4CascadeInterpolator
337  above, and drop local caching of interpolation results.  Reduce offset
338  list for cross-sections to one dimension (start=index[i], stop=index[i+1]).
339
34011 May 2010 Michael Kelsey (hadr-casc-V09-03-30)
341------------------------------------------------
342Bug fixes in the two-body scattering code.
343
344- G4PionSampler.cc, G4NucleonSampler.cc:  Fix long-standing bug with offset
345  indices computed for cross-section tables.  XXXindex[m][0] (start) and
346  XXXindex[m][1] (stop) are computed in initChannels() as [start,stop]
347  inclusive range (i.e., "for (i=start; i<=stop; i++)"), but used with
348  G4FinalStateSampler::fillSigmaBuffer (and its predecessor code) as
349  [start,stop) exclusive range (i.e., normal C style "for (i=start; i<stop;
350  i++)").  This is fixed by properly setting XXXindex[m-1][1] =
351  XXXindex[m][0], and using the ranges consistently in initChannels().
352
353- G4ElementaryParticleCollider.cc:  In the six pion-nucleon scatters, the
354  two-body final state is incorrectly tested for charge-exchange.  All the
355  if statements check whether "particle_kinds[0]" is the initial nucleon,
356  but the outgoing baryon actually appears in particle_kinds[1].  Replace
357  the individual tests with the use of "finaltype", moved out of the
358  strangeness if-block.
359
36006 May 2010 Michael Kelsey (hadr-casc-V09-03-29, hadr-casc-V09-03-23-01)
361------------------------------------------------------------------------
362- G4Diproton.cc, G4Dineutron.cc, G4UnboundPN.cc:  After creating instance
363  of these "internal" particles, remove the pointer from G4ParticleTable.
364  This avoids an issue with the FTFP de-excitation code, which occasionally
365  picks up the diproton and puts it onto a final-state particle list.
366
367These three changes, and nothing else, are "backported" on top of -23 for
368continued validation tests.
369 
37030 Apr 2010 Dennis Wright (hadr-casc-V09-03-28)
371-----------------------------------------------
372- G4ElementaryParticleCollider:
373    improved pi-nucleon two-body angular distributions, and made
374    sampling of CM angle faster.  As a result, the methods
375    getElasticCase and adjustIntervalForElastic were made redundant
376    and removed.  Also removed array containing old angular distribution
377    parameters.
378   
379    Now use nucleon-nucleon angular distributions for hyperon-nucleon
380    scattering, and pi-nucleon dsitributions for kaon-nucleon scattering
381    (until specific kaon distributions are added).
382 
38329 Apr 2010 Michael Kelsey (hadr-casc-V09-03-27)
384------------------------------------------------
385- G4InuclPartcleNames.hh:  Long name "gamma" conflicts with math function.
386  Change back to "photon".
387
388- G4InuclElementaryParticle.cc, G4InuclEvaporation.cc,
389  G4NonEquilibriumEvaporator.cc, G4NucleiModel.cc, G4NucleonSampler.cc,
390  G4PionSampler.cc, G4PreCompoundCascadeInterface.cc,
391  G4PreCompoundInuclCollider.cc:  Replace "gamma" with "photon".
392
393- G4InuclElementaryParticle.hh:  Change "photon()" to "isPhoton()" to avoid
394  conflicts with names enum.  Use names enum internally as well.
395
396- G4ElementaryParticleCollider.cc, G4InuclCollider.cc,
397  G4PreCompoundInuclCollider.cc:  Change "photon()" to "isPhoton()".
398
39928 Apr 2010 Michael Kelsey (hadr-casc-V09-03-26)
400------------------------------------------------
401All changes below within "cascade/" subdirectory:
402
403- G4InuclParticleNames.hh:  Define enums for particle type codes, using both
404  "long" and "short" names copied from existing duplicated enums.  One
405  change is that "kp" and "km" are replaced by "kpl" and "kmi" respectively,
406  since "km" conflicts with GEANT4 "kilometers" unit.  Deploy in classes:
407
408        include/G4FinalStateSampler.hh
409        src/G4CascadeElasticInterface.cc
410        src/G4CascadeInterface.cc
411        src/G4ElasticCascadeInterface.cc
412        src/G4ElementaryParticleCollider.cc
413        src/G4InuclElementaryParticle.cc
414        src/G4InuclEvaporation.cc
415        src/G4NucleonSampler.cc
416        src/G4PionSampler.cc
417        src/G4PreCompoundCascadeInterface.cc
418
419- G4InuclElementaryParticle.cc:  Add Omega- and antinucleon partcles to lists.
420  No code uses these (yet).
421
42224 April 2010 Michael Kelsey (hadr-casc-V09-03-25)
423--------------------------------------------------
424Remove redundant classes, G4Ibertini and G4BertiniRegionModel.
425
42621 April 2010 Michael Kelsey (hadr-casc-V09-03-24)
427--------------------------------------------------
428- G4NucleiModel.hh,cc:  Eliminate last remaining hardwired baryon masses.
429
43018 April 2010 Michael Kelsey (hadr-casc-V09-03-23)
431--------------------------------------------------
432Final revisions to access std::vector<particle> via const-references:
433
434        G4CascadeInterface.cc
435        G4EquilibriumEvaporator.cc
436        G4IBertini.cc
437        G4InuclCollier.cc
438        G4NucleiModel.cc
439        G4PreCompoundCascadeInterface.cc
440
441- G4CollisionOutput:  Add new function to boost output lists to lab frame.
442
44314 April 2010 Michael Kelsey (hadr-casc-V09-03-22)
444--------------------------------------------------
445- G4CascadeInterface.cc, G4IBertini.cc, G4PreCompoundCascadeInterface.cc:
446  In ::ApplyYourself(), do the check on K0L/K0S _before_ passing G4PartDefn
447  to G4InuclElemPart::type().  This avoids unnecessary warning message.
448
44914 April 2010 Michael Kelsey (temporary: kelsey-memClean3)
450----------------------------------------------------------
451All changes below within "cascade/" subdirectory:
452
453- G4FinalStateSampler: Replace "sigma" argument for sampling with data
454  member, add functions to fill sigma buffer by passing in array references.
455  Provide typedef for interpolator, and function to apply interpolation.
456
457- G4PionSampler, G4NucleonSampler:  Follow changes to base class,
458  eliminating much of the copy-and-paste code blocks via function calls.
459  Replace G4float arrays with G4double, to support passing into functions.
460
46113 April 2010 Michael Kelsey (hadr-casc-V09-03-21)
462--------------------------------------------------
463All changes below within "cascade/" subdirectory:
464
465- G4InuclSpecialFunctions.hh, paraMaker.cc, paraMakerTruncated.cc:  Drop
466  return-by-value from paraMaker() and paraMakerTruncated().  Add second
467  argument with non-const reference to output buffer for return.
468
469- G4EquilibriumEvaporator.cc:  Follow changes above to paraMaker(), use
470  references to address parms.first and parms.second, instead of copying.
471
472- G4NonEquilibriumEvaporator.cc:  Follow changes above to
473  paraMakerTruncaed(), use references to address parms.first and
474  parms.second, instead of copying.
475
476- G4Dineutron, G4Diproton, G4UnboundPN:  Inherit from G4VShortLivedParticle,
477  per Kurashige.  Thought it would eliminate G4ElectronOccupancy churn, but
478  did not.
479
48012 April 2010 Michael Kelsey (hadr-casc-V09-03-20)
481--------------------------------------------------
482All changes below within "cascade/" subdirectory:
483
484- G4NucleiModel: Move function implementations from .hh to .cc.  Replace
485  manual sorting (inefficient O(N^2)) with std::sort() and simple
486  "less-than" function for std::pair<> "partners".
487
488- G4CollisionOutput: Move function implementations from .hh to .cc.  Use
489  std::vevtor<>::insert() to add vectors together.
490
491- Replace return-by-value G4CollisionOutput with non-const reference buffer
492  passed into xxx::collide(), in the following classes:
493        G4BigBanger
494        G4CascadeElasticInterface
495        G4CascadeInterface
496        G4ElasticCascadeInterface
497        G4ElementaryParticleCollider
498        G4EquilibriumEvaporator
499        G4EvaporationInuclCollider
500        G4Fissioner
501        G4IBertini
502        G4IntraNucleiCascader
503        G4InuclCollider
504        G4InuclEvaporation
505        G4NonEquilibriumEvaporator
506        G4NucleiModel
507        G4PreCompoundCascadeInterface
508        G4PreCompoundInuclCollider
509
510  Note that some places where internal G4CollisionOutput buffers are being
511  used (and their contents appended to the global output) have not been
512  cleaned up yet.  These will require some rearrangement of the algorithms,
513  or/and elimination of debugging output.
514
51509 April 2010 Michael Kelsey (hadr-casc-V09-03-16-01)
516-----------------------------------------------------
517This modification is included in a pseudo-patch of hadr-casc-V09-03-16,
518without brining in any of the -17 through -19 modifications.
519
520- G4LorentzVector.cc:  Protect two instances of sqrt() against tiny negative
521  arguments (due to tiny-tiny subtractions).
522
52309 April 2010 Michael Kelsey (hadr-casc-V09-03-19)
524--------------------------------------------------
525All changes below within "cascade/" subdirectory:
526
527- G4InuclParticle, G4InuclElementaryParticle, G4InuclNuclei:  Eliminate
528  unused G4String ctor argument, introduced in hadr-casc-V09-03-01.  Causes
529  a lot of pointless memory churn.
530
531- G4BigBanger.cc:  Fix type conversion warning I introduced by mistake.
532
53308 April 2010 Michael Kelsey (hadr-casc-V09-03-18)
534--------------------------------------------------
535All changes below within "cascade/" subdirectory:
536
537- G4PionSampler, G4NucleonSampler: For all ::GetFSPartTypes*() functions,
538  eliminate return-by-value std::vector<>, and pass in non-const reference
539  for filling in situ.  Buffer is cleared.
540
541- G4ElementaryParticleCollider.cc:  Follow changes above for Sampler calls.
542
54307 April 2010 Michael Kelsey (hadr-casc-V09-03-17)
544--------------------------------------------------
545All changes below within "cascade/" subdirectory:
546
547Replace return-by-value std::vector<> with either const-ref returns, or
548with use of an internal buffer which can be reused, to reduce memory
549churn due to copying, allocation, and resizing.
550
551- G4BigBanger:  Create data buffer for lists of secondaries and momenta.
552  Fill buffers in ::generateBangInSCM() and ::generateMomentumModules(),
553  which are now non-const.  Reference buffers in ::collide().
554
555- G4CascadeFunctions::getOutgoingParticleTypes():  Make "kinds" a static
556  variable (buffer), and return it by const-ref.
557
558- G4ElementaryParticleCollider:  Eliminate return-by-value std::vector<>
559  on the functions listed below, by creating data buffers for particles,
560  momenta, and particle types.  The functions become non-const and void:
561  ::generateSCMfinalState(), ::generateMomModules()
562  ::generateStrangeChannelPartTypes(), ::generateSCMpionAbsorption()
563
564  Also, in ::generateStrangeChannelPartTypes(), use a switch statement
565  instead of the long cascade of if-else-else.
566
567- G4NucleiModel: Several member functions have different modifications:
568
569  ::initializeCascad(bullet,target) -- Replace return value with a passed-in
570        (non-const reference) buffer to be filled.  The calling code can
571        pass in a data member, local variable, or whatever.
572
573  ::generateParticleFate() -- Replace local "thePartners" variable with data
574        member, filled below.  Move "outgouing_cparticles" to data member
575        (fix the spelling!), and return by const-ref.
576
577  ::generateInteractionPartners() -- Eliminate return value; fill data
578        member instead, to be used by ::generateParticleFate().
579
580- G4IntraNucleiCascader.cc:  Follow changes to initializeCascad() above.
581
582- G4NucleonSampler, G4PionSampler: ** DON'T KNOW WHAT TO DO HERE **
583
584- G4WatcherGun:  Return const-ref to list of watchers, instead of copy.
585
586Replace all uses of std::vector<>::resize(0) with ::clear().  The former
587causes deallocation/reallocation/resizing cycles, while clear() just removes
588content, preserving the allocated buffer.
589
590        include/G4CollisionOutput.hh
591        src/G4ElementaryParticleCollider.cc
592        src/G4NucleiModel.cc
593        src/G4WatcherGun.cc
594
59507 April 2010 Dennis Wright (hadr-casc-V09-03-16)
596-------------------------------------------------
597- fix negative energy bug in G4BigBanger, and switch to using
598  G4NucleiProperties::GetBindingEnergy
599
60007 April 2010 Michael Kelsey (hadr-casc-V09-03-15)
601--------------------------------------------------
602All changes below within "cascade/" subdirectory:
603
6041) Systematically replace pass-by-value function arguments with const-refs.
605This is the first step in reducing unnecessary memory churn, to be followed
606by replacing return-by-value std::vector<> with non-const argument buffers.
607
608        include/G4CascadeChannel.hh
609        include/G4FinalStateSampler.hh
610        include/G4InuclEvaporation.hh
611        include/G4NuclWatcher.hh
612        src/G4CascadeChannel.cc
613        src/G4FinalStateSampler.cc
614        src/G4InuclEvaporation.cc
615        src/G4NuclWatcher.cc
616
6172) Fix constness on some operator== and operator!= definitions.
618
619        include/G4CascadeElasticInterface.hh
620        include/G4CascadeInterface.hh
621        include/G4ElasticCascadeInterface.hh
622        include/G4IBertini.hh
623        include/G4PreCompoundCascadeInterface.hh
624
62507 Apr 2010 Michael Kelsey (hadr-casc-V09-03-14)
626------------------------------------------------
627- G4Dineutron.hh, G4Diproton.hh, G4UnboundPN.hh: 
628  Reset static "theInstance" pointer to zero in (now virtual) destructor.
629
630- G4Dineutron.cc, G4Diproton.cc, G4UnboundPN.cc:
631  Implement constructor to do the G4Ions initialization, rather than in
632  ::Definition().  Drop use of G4ParticleTable; just monitor static pointer.
633  Set "ShortLived" flag in G4Ions initialization, to avoid interactions with
634  ProcessManager.
635
636- G4InuclNuclei.cc:  In ::makeNuclearFragment(), set "ShortLived" flag for
637  G4Ions, to avoid interactions with ProcessManager.
638
63926 Mar 2010 Dennis Wright (hadr-casc-V09-03-13)
640-----------------------------------------------
641- G4EquilibriumEvaporator.cc: remove line #include "G4types.hh"
642  (file doesn't exist)
643
64420 Mar 2010 Michael Kelsey (hadr-casc-V09-03-12)
645------------------------------------------------
646All changes below within "cascade/" subdirectory:
647
648- G4EquilibriumEvaporator.cc:  Move subtraction of Q1[i] outside new
649  GetBindingEnergy() call.
650
651- G4InuclNuclei.cc::makeNuclearFragment():  Add message warning users about
652  non-physical creation.  Use new GetBindingEnergy() function here as well
653  (V09-03-05 didn't have this function, so wasn't included in migration).
654
65519 Mar 2010 Michael Kelsey (hadr-casc-V09-03-11)
656------------------------------------------------
657All changes below within "cascade/" subdirectory:
658
659- G4InuclSpecialFunctions:  Two new functions:
660
661::generateWithRandomAngles() to encapsulate random-direction generation.
662  This function and existing generateWithFixedTheta() take optional mass
663  argument to produce proper four-vector.
664
665  Replace duplicated random angle code with new function above, and use new
666  optional mass argument where available:
667
668        G4BigBanger.cc
669        G4ElementaryParticleCollider.cc
670        G4EquilibriumEvaporator.cc
671        G4Fissioner.cc
672        G4NonEquilibriumEvaporator.cc
673        G4NucleiModel.cc
674
675::G4cbrt():  Define cube-root in terms of log and exp, rather than pow().
676  Note that "cbrt()" can't be used, as it conflicts with <math.h> on Linux.
677
678  Eliminate unnecessary uses of std::pow() with fixed arguments.  For
679  example, "pow(x,3)" -> "x*x*x", "pow(x,1/3)" -> G4cbrt(x):
680
681        G4BertiniRegionModel.cc
682        G4EquilibriumEvaporator.cc
683        G4EvaporationInuclCollider.cc
684        G4Fissioner.cc
685        G4IntraNucleiCascader.cc
686        G4InuclCollider.cc
687        G4NonEquilibriumEvaporator.cc
688        G4NucleiModel.cc
689        G4PreCompoundInuclCollider.cc
690        G4RegionModel.cc
691        bindingEnergyAsymptotic.cc
692        bindingEnergyKummel.cc
693
694  WARNING!  In G4IntraNucleiCascader.cc, the Coulomb barrier was calculated
695  using "std::pow(A, 0.333)", rather than the "exact" 1./3.  This leads to
696  per-mil differences in the value, and occasional differences in wheter an
697  outgoing particle tunnels through.  The new code is exact to double
698  precision, and therefore fixes a bug.
699
700- Move "using" directive from all .hh files to corresponding .cc, along with
701  some unnecessary #includes:
702
703        G4BigBanger.hh, .cc
704        G4ElementaryParticleCollider.hh, .cc
705        G4EquilibriumEvaporator.hh, .cc
706        G4EvaporationInuclCollider.hh, .cc
707        G4Fissioner.hh, .cc
708        G4IntraNucleiCascader.hh, .cc
709        G4InuclCollider.hh
710        G4InuclNuclei.hh
711        G4NonEquilibriumEvaporator.hh, .cc
712        G4NucleiModel.hh, .cc
713        G4PreCompoundInuclCollider.hh, .cc
714
715- G4NuclWatcher.hh and .cc (new):  Move implementation code from .hh to .cc.
716
71718 March 2010 Michael Kelsey (hadr-casc-V09-03-10)
718--------------------------------------------------
719All changes below within "cascade/" subdirectory:
720
721Missed one bug in repairs below, found when testing 4 GeV pi -> Pb.
722
723- G4Fissioner.cc:  Replace incorrect G4LorentzVector ctor arguments
724  (G4ThreeVector,m) with call to G4LV::setVectM().
725
72617 March 2010 Dennis Wright (hadr-casc-V09-03-09)
727-------------------------------------------------
728Fix warning in G4InuclNuclei.cc: G4Ions:G4Ions was being called with
729a double (a) in its 13th argument, when an integer is required.  Use
730G4lrint to convert.
731
73216 March 2010 Michael Kelsey (hadr-casc-V09-03-08)
733--------------------------------------------------
734All changes below within "cascade/" subdirectory:
735
736Fix bugs introduced during migration from G4CascadeMomentum to
737G4LorentzVector (see hadr-casc-V09-03-03).  With these bug fixes, 2000
738events generated with "ppi4GeV" test executable are equivalent to production
739output (GEANT 4.9.3), allowing for differences in hardwired nucleon masses.
740When compared with hadr-casc-V09-03-02 (which uses G4ParticleDefinition for
741all the particle masses) the 2000-event results are identical within
742floating point precision.
743
744- G4BigBanger.cc:  Line 72, fix unit conversion bug, GeV/MeV vs. MeV/GeV.
745  Replace incorrectly introduced cross-product with original vector
746  manipulation, written with G4LorentzVector accessors.
747
748- G4CollisionOutput::selectPairToTune(): Test on "i3>0" not appropriate with
749  G4LorentzVector indexing.  Replace with failure-test on "i3<0".  Also
750  simplify final if-cascade for readability.
751
752- G4EquilibriumEvaporator.cc:  Replace incorrect G4LorentzVector ctor
753  arguments (px,py,pz,m) with call to G4LV::setVectM().
754
755- G4IntraNuclearCascader.cc:  Replace leftover momentum_out[0] with .e().
756
757- G4InuclNuclei.cc,hh:  Add new function ::makeNuclearFragment(a,z,exc),
758  which "manually" construct a G4Ions object for cases where A/Z is not a
759  valid stable or unstable nucleus.  These unphysical objects are passed
760  back from G4IntraNuclearCascader.cc and immediately passed to G4BigBanger
761  for conversion to nucleons.  A future change should move this action into
762  G4INCascader and eliminate the need for unphysical nuclei.
763
764- G4LorentzConvertor::toTheTargetRestFrame():  Remove local declaration of
765  scm_momentum, restoring access to data member with that name.
766
767- G4NucleiModel::generateQuasiDeutron(): Undo consolidation of dmom with
768  local variables for each of the nucleon momenta.  Stack corruption led to
769  differences in unbound p-n state relative to pp and nn states.
770
771Minor updates:  Changed all the "verboseLevel()" initializers to (0), via a
772shell script.  This allows making the code uniformly verbose or quiet.
773
774        include/G4NucleiModel.hh
775        src/G4Analyser.cc
776        src/G4CollisionOutput.cc
777        src/G4ElementaryParticleCollider.cc
778        src/G4FissionStore.cc
779        src/G4Fissioner.cc
780        src/G4IntraNucleiCascader.cc
781        src/G4NonEquilibriumEvaporator.cc
782        src/G4NucleiModel.cc
783        src/G4WatcherGun.cc
784
78516 March 2010 Michael Kelsey (hadr-casc-V09-03-DO-NOT-USE)
786--------------------------------------------------
787All changes below within "cascade/" subdirectory:
788
789Restore version hadr-casc-V09-03-05 to HEAD of CVS in order to apply bug
790fixes and re-deploy migration from G4CascadeMomentum to G4LorentzVector.
791This reversion is tagged as a checkpoint only, and should not be used for
792testing or running (since it restores the known bugs in V09-03-03).
793
794The update to G4InteractionCase.hh by Gabriele Cosmo in hadr-casc-V09-03-07
795is not touched by this reversion!
796
797The following CVS commands were used to perform the reversion:
798
799        cvs update -j1.13 -j1.12 cascade/include/G4CascadParticle.hh
800        cvs update -j1.4 -j1.3 cascade/include/G4CascadeMomentum.hh
801        cvs update -j1.15 -j1.14 cascade/include/G4CollisionOutput.hh
802        cvs update -j1.23 -j1.22 cascade/include/G4ElementaryParticleCollider.hh
803        cvs update -j1.9 -j1.8 cascade/include/G4InuclCollider.hh
804        cvs update -j1.19 -j1.18 cascade/include/G4InuclElementaryParticle.hh
805        cvs update -j1.12 -j1.11 cascade/include/G4InuclNuclei.hh
806        cvs update -j1.16 -j1.15 cascade/include/G4InuclParticle.hh
807        cvs update -j1.13 -j1.12 cascade/include/G4InuclSpecialFunctions.hh
808        cvs update -j1.13 -j1.12 cascade/include/G4LorentzConvertor.hh
809        cvs update -j1.4 -j1.3 cascade/include/G4ParticleLargerBeta.hh
810        cvs update -j1.9 -j1.8 cascade/include/G4ParticleLargerEkin.hh
811        cvs update -j1.20 -j1.19 cascade/src/G4BigBanger.cc
812        cvs update -j1.13 -j1.12 cascade/src/G4CascadParticle.cc
813        cvs update -j1.6 -j1.5 cascade/src/G4CascadeElasticInterface.cc
814        cvs update -j1.68 -j1.67 cascade/src/G4CascadeInterface.cc
815        cvs update -j1.18 -j1.17 cascade/src/G4CollisionOutput.cc
816        cvs update -j1.7 -j1.6 cascade/src/G4ElasticCascadeInterface.cc
817        cvs update -j1.6 -j1.5 cascade/src/G4EvaporationInuclCollider.cc
818        cvs update -j1.5 -j1.4 cascade/src/G4IBertini.cc
819        cvs update -j1.3 -j1.2 cascade/src/G4InuclElementaryParticle.cc
820        cvs update -j1.10 -j1.9 cascade/src/G4InuclEvaporation.cc
821        cvs update -j1.3 -j1.2 cascade/src/G4InuclNuclei.cc
822        cvs update -j1.4 -j1.3 cascade/src/G4InuclParticle.cc
823        cvs update -j1.17 -j1.16 cascade/src/G4InuclSpecialFunctions.cc
824        cvs update -j1.19 -j1.18 cascade/src/G4LorentzConvertor.cc
825        cvs update -j1.5 -j1.4 cascade/src/G4PreCompoundCascadeInterface.cc
826        cvs update -j1.4 -j1.3 cascade/src/G4PreCompoundInuclCollider.cc
827
828Intermediate versions below had bindingEnergy changes from -05 re-applied
829
830        cvs update -j1.23 -j1.21 cascade/src/G4EquilibriumEvaporator.cc
831        cvs update -j1.22 -j1.20 cascade/src/G4Fissioner.cc
832        cvs update -j1.29 -j1.27 cascade/src/G4IntraNucleiCascader.cc
833        cvs update -j1.24 -j1.22 cascade/src/G4InuclCollider.cc
834        cvs update -j1.23 -j1.21 cascade/src/G4NonEquilibriumEvaporator.cc
835        cvs update -j1.38 -j1.36 cascade/src/G4NucleiModel.cc
836
837G4ElementaryParticleCollider::particleSCMmomentumFor2to2:  Restore new
838parametrization of elastic scattering added by D.Write in hadr-casc-V09-03-06
839
840        cvs update -j1.47 -j1.45 cascade/src/G4ElementaryParticleCollider.cc
841        + editing
842
84305 Mar 2010 Gabriele Cosmo (hadr-casc-V09-03-07)
844------------------------------------------------
845- Reinstated fix in G4InteractionCase.hh for initialisation in constructor to
846  allow for porting on C++0x Standard.
847
84807 Feb 2010 Dennis Wright (hadr-casc-V09-03-06)
849-----------------------------------------------
850- back out changes from tags V09-03-00 to V00-03-05 by restoring HEAD
851  to V09-02-11, and keeping the di-nucleon classes
852- replace Bertini method bindingEnergy() with
853  G4NucleiProperties::GetBindingEnergy() in classes
854  G4IntraNuclearCascader, G4InuclCollider, G4NucleiModel, G4EquilibriumModel,
855  G4NonEquilibriumModel, G4Fissioner.  Note that G4Fissioner still uses the
856  Bertini method bindingEnergyAsymptotic.
857
858- G4ElementaryParticleCollider::particleSCMmomentumFor2to2
859  replace original (incorrect) pp, pn, nn 2-body to 2-body scattering angular
860  distributions with a new parameterization of elastic scattering data using
861  the sum of two exponentials
862
86302 Feb 2010 Dennis Wright (hadr-casc-V09-03-05)
864-----------------------------------------------
865- replace all uses of bindingEnergy (local Bertini method) with the
866  Geant4 standard G4NucleiProperties::GetBindingEnergy(A,Z)
867  files modified:
868    G4IntraNucleiCascader.cc
869    G4InuclCollider.cc
870    G4NucleiModel.cc
871    G4EquilibriumEvaporator.cc
872    G4NonEquilibriumEvaporator.cc
873    G4Fissioner.cc
874- note that G4Fissioner still uses Bertini method bindingEnergyAsymptotic
875 
87628 Jan 2010 Dennis Wright (hadr-casc-V09-03-04)
877-----------------------------------------------
878- fix unused variable warnings in G4InuclParticle.hh, .cc and
879  G4NonEquilibriumEvaporator.cc
880
88126 Jan 2010 Michael Kelsey (hadr-casc-V09-03-03)
882------------------------------------------------
883All changes below within "cascade/" subdirectory:
884
885- G4ParticleLargerBeta.hh:  Fix to use of CVS "Name" tag; no code changes.
886
887- G4CascadParticle: Replace the position std::vector<> with G4ThreeVector.
888
889- G4NucleiModel: Replace all std::vector<> coordinates with G4ThreeVector,
890  and use vector math for computations.
891
892Remove all use of G4CascadeMomentum (a simple container with a C-style
893four-element array) with G4LorentzVector.  This is a fairly invasive change,
894since G4CascMom was used for all of the three- and four-vector operations
895throughout the Bertini code:
896
897        include/G4CascadParticle.hh
898        include/G4CollisionOutput.hh
899        include/G4ElementaryParticleCollider.hh
900        include/G4InuclCollider.hh
901        include/G4InuclElementaryParticle.hh
902        include/G4InuclNuclei.hh
903        include/G4InuclParticle.hh
904        include/G4InuclSpecialFunctions.hh
905        include/G4LorentzConvertor.hh
906
907        src/G4BigBanger.cc
908        src/G4CascadParticle.cc
909        src/G4CascadeElasticInterface.cc
910        src/G4CascadeInterface.cc
911        src/G4CollisionOutput.cc
912        src/G4ElasticCascadeInterface.cc
913        src/G4ElementaryParticleCollider.cc
914        src/G4EquilibriumEvaporator.cc
915        src/G4EvaporationInuclCollider.cc
916        src/G4Fissioner.cc
917        src/G4IBertini.cc
918        src/G4IntraNucleiCascader.cc
919        src/G4InuclCollider.cc
920        src/G4InuclElementaryParticle.cc
921        src/G4InuclEvaporation.cc
922        src/G4InuclNuclei.cc
923        src/G4InuclParticle.cc
924        src/G4InuclSpecialFunctions.cc
925        src/G4LorentzConvertor.cc
926        src/G4NonEquilibriumEvaporator.cc
927        src/G4NucleiModel.cc
928        src/G4PreCompoundCascadeInterface.cc
929        src/G4PreCompoundInuclCollider.cc
930
931The new code is not yet entirely "correct," since Bertini also does a lot of
932operations by way of three-momentum, imposing masses (and hence energy
933conservation) separately, after the fact.
934
93520 Jan 2010 Gabriele Cosmo
936--------------------------
937- G4InteractionCase.hh:  Minor fix in initialisation in constructor to
938  allow for porting on C++0x Standard.
939
94020 Jan 2010 Michael Kelsey (hadr-casc-V09-03-02)
941------------------------------------------------
942- G4LorentzConvertor.hh:  Fix scm_momentum data member to be G4ThreeVector
943  (as used in previous versions) rather than G4LorentzVector.
944
945NOTE:  I have *retagged* cascade/include/G4LorentzConverter.hh and this
946       History file, rather than creating a new tag, since these are private
947       development only, not public releases.
948
94912 Jan 2010 Michael Kelsey (hadr-casc-V09-03-02)
950------------------------------------------------
951All changes below within "cascade/" subdirectory:
952
953- G4CascadeMomentum: Replace use of static G4LV variables within functions
954  with mutable data member of object; this does introduce more memory
955  thrashing, but the plan is to get rid of the whole thing anyway.  Improve
956  implicit casting and add assignment from G4LV.
957
958- G4LorentzConverter:  Change function signatures to accept G4LV as input,
959  using implicit cast to convert existing G4CascadeMomentum argument
960  passing.  Use G4LV internally throughout, again using implicit cast to
961  return G4CascMom values.  This substantially increases (temporarily!)
962  memory thrashing.  Simplify ::rotate() functions to use G4LV and
963  G4ThreeVec operations rather than array index gymnastics.  Move some
964  function implementations out of .hh file into .cc.
965
966- G4ParticleLargerEkin.hh: Fix use of CVS "Name" tag.  No code changes.
967
96812 Jan 2010 Michael Kelsey (hadr-casc-V09-03-01)
969------------------------------------------------
970All changes below within "cascade/" subdirectory:
971
972- G4ParticleLargerBeta, G4ParticleLargerEkin: Add additional operator()
973  which takes pointers (for future mods to reduce ctor/dtor cycling), and
974  fix ordering bug in beta sorting.  Add debugging printout togged with
975  preprocessor flag.
976
977- G4InuclParticle, G4InuclNuclei, G4InuclElementaryParticle:  Rewrite to
978  carry G4DynamicParticle data member, and to instantiate particle
979  properties via G4ParticleDefinition subclasses.  This is first stage in
980  eventually eliminating the G4InuclParticle stuff entirely in favor of
981  direct use of G4DynamicParticle for internal propagation.
982
983These changes have been testing using debugging output on the production
984(4.9.3) code compared to the above changes.  |diff| shows mostly identical
985results, with occasional ~1e-5 floating point differences.
986
98708 Jan 2010 Michael Kelsey (hadr-casc-V09-03-00)
988------------------------------------------------
989All changes below within "cascade/" subdirectory:
990
991- G4BertiniNuclearModel:  REMOVE this class from the HEAD, and hopefully all
992  future tags.  It is redundant with the G4NuclearModel class, and is not
993  used anywhere in the G4 distribtion; the latter is referenced in both
994  regular G4 code and in examples.
995
996- G4Diproton, G4Dineutron, G4UnboundPN:  New G4ParticleDefinition
997  subclasses, which implement the Bertini-specific dibaryon states.  These
998  are not used anywhere as yet, but will be used in future modifications to
999  the G4InuclParticle subclasses.
1000
1001- G4CascadeMomentum:  Add interface to create from and cast to
1002  G4LorentzVector.  Will be used (in future) by G4InuclParticle modifications,
1003  and provides a transition to eliminating this class entirely.
1004
10051 Dec 2009 Dennis Wright (hadr-casc-V09-02-11)
1006----------------------------------------------
1007- G4PionSampler, G4NucleonSampler: change loop variable in ctor from i to j
1008  in order to satisfy Windows compiler
1009 
101011 Nov 2009 Dennis Wright (hadr-casc-V09-02-10)
1011-----------------------------------------------
1012- G4CascadParticle, G4InuclElementaryParticle: add integer argument to ctor
1013  to indicate which generation cascade particle belongs to.
1014  Also change G4NucleiModel and G4BertiniNucleiModel to use this.
1015
1016 8 Oct 2009 Dennis Wright (hadr-casc-V09-02-09)
1017-----------------------------------------------
1018- G4PionSampler:  use charge exchange cross section for pi0-p, go back
1019   original Bertini pi0-p elastic partial cs.  Update pi0 total cross
1020   section accordingly.  Improve fits to pi-p partial cs and update
1021   pi- total cross sections.
1022- G4NucleiModel: update pi- and pi0 total cross sections
1023
102424 Sep 2009 Dennis Wright (hadr-casc-V09-02-08)
1025-----------------------------------------------
1026- add class G4NucleonSampler which replaces old pp, pn, and nn partial and
1027    total cross sections also modify other classes which use them
1028- move large arrays which are instantiated at every call of frequently
1029    used methods.  They are now initialized once in constructors.
1030- G4CascadSpecialFunctions: put copy of total cross section method
1031    in G4NucleiModel, also remove unneeded energy scale arrays
1032    (now replaced with a new one)
1033- G4CascadeInterface: move instantiation of various collider classes
1034    outside of loop, and put on stack instead of heap
1035- G4ElementaryParticleCollider: re-design to use G4NucleonSampler and
1036    remove instantiation of large arrays from within loops in code
1037- G4NucleiModel: remove instatiation of large arrays from with loops,
1038    add new total cross section sampling, remove use of all but one
1039    energy scale
1040
104117 Sep 2009 Dennis Wright (hadr-casc-V09-02-07)
1042-----------------------------------------------
1043- G4PionSampler: remove large static arrays
1044- G4FinalStateSampler: remove static array pointer to G4 particle types
1045- G4ElementaryParticleCollider: clean up
1046
10474 Sep 2009 Dennis Wright (hadr-casc-V09-02-06)
1048----------------------------------------------
1049- add assignment operator to class G4CollisionOutput
1050
105131 Aug 2009 Dennis Wright (hadr-casc-V09-02-05)
1052-----------------------------------------------
1053- add class G4FinalStateSampler which was accidentally omitted from
1054  the previous tag
1055
105625 Aug 2009 Dennis Wright (hadr-casc-V09-02-04)
1057-----------------------------------------------
1058- correct bug in particle ordering in G4PionSampler
1059- clean up dead code in G4NucleiModel and G4ElementaryParticleCollider
1060
106120 Aug 2009 Dennis Wright (hadr-casc-V09-02-03)
1062-----------------------------------------------
1063- create class G4PionSampler: samples partial cross sections, multiplicities
1064  and final state particle types required for pi+, pi- and pi0 scattering
1065  within a nucleus.  This class uses re-evaluated pion partial cross sections
1066  and includes production of strange particle pairs.
1067- G4CascadeSigmaPlusNChannel: correct sigma plus cross sections
1068- G4CascadSpecialFunctions:  move pion, kaon, hyperon total cross sections
1069  to this class
1070- G4ElementaryParticleCollider: re-write to use G4PionSampler class for
1071  cross sections and multiplicities, remove method reChargering (now redundant)
1072 
107315 Apr 2009 Dennis Wright (hadr-casc-V09-02-02)
1074-----------------------------------------------
1075- previous tag no longer used.  Bring hadr-casc-V09-02-00 back to
1076  HEAD and re-tag
1077
107821 Feb 2009 Dennis Wright (hadr-casc-V09-02-01)
1079-----------------------------------------------
1080- add printCrossSection method to G4CascadSpecialFunctions
1081- in GeElementaryParticleCollider, add high energy flag to distinguish
1082  "string-like" behavior
1083- G4IntraNucleiCascader.cc - allow secondaries from HE interaction to
1084  leave nucleus without interacting
1085- G4NucleiModel - get high_energy_interaction flag value from G4ElementaryParticleCollider
1086
108711 Feb 2009 V.Ivanchenko (hadr-casc-V09-02-00)
1088-----------------------------------------------
1089- set absorption coefficient 1.0 instead of 0.2 inside
1090  G4CascadSpecialFunctions (D.Wright)
1091
109225 Nov 2008 Dennis Wright (hadr-casc-V09-01-10)
1093-----------------------------------------------
1094- fix multiplicity sampling in G4ElementaryParticleCollider::generateMultiplicity().
1095  Now partial cross sections are normalized to the total cross section instead
1096  of just the sum of 2-body to 6-body final state cross sections.  Also fix
1097  2-body cross sections above 7 GeV where they were too small.
1098  Fix the same cross sections which appear in G4CascadSpecialFunctions.cc
1099
110021 Nov 2008 Dennis Wright (hadr-casc-V09-01-09)
1101-----------------------------------------------
1102- add some comments to cross section tables in G4CascadSpecialFunctions.cc
1103  and G4ElementaryParticleCollider.cc
1104
110524 Oct 2008 Dennis Wright (hadr-casc-V09-01-08)
1106-----------------------------------------------
1107- replace GetAtomicMass() with GetNuclearMass() in cascade/G4InuclEvaporation
1108  and evaporation/G4BertiniEvaporation
1109- V. Ivantchenko added name to G4CascadeInterface ("Bertini Cascade")
1110
111117 Oct 2008 Dennis Wright (hadr-casc-V09-01-07)
1112-----------------------------------------------
1113- added Coulomb barrier plus barrier penetration in G4IntraNucleiCascader.cc
1114
111527 Sep 2008 Dennis Wright (hadr-casc-V09-01-06)
1116-----------------------------------------------
1117- Fixed 4.3 compiler warnings for G4InuclElementaryParticle.hh by providing
1118  initializers for particle type and mass
1119- Remove unused variables totscm, totlab in G4BigBanger.cc,
1120  G4ElementaryParticleCollider.cc, and unused mom1 from G4InuclSpecialFunctions.cc
1121
112222 Sep 2008 Gabriele Cosmo (hadr-casc-V09-01-05)
1123------------------------------------------------
1124- Introduced simple wrapper class G4CascadeMomentum meant to replace usage
1125  of std::vector<double> in the cascade code, to reduce memory allocations.
1126  Courtesy of P.Elmer (princeton Univ.).
1127- Modified cascade code to make use of G4CascadeMomentum.
1128
1129 3 Sep 2008 Dennis Wright (hadr-casc-V09-01-04)
1130-----------------------------------------------
1131- G4ElementaryParticleCollider.cc: in method generateMultiplicity, remove
1132  large_cut which increases multiplicity from 3 to 4 abruptly at 4 GeV
1133  and above.   This caused a sharp drop-off in the single pion spectra from
1134  pH reactions.   The effect in heavier nuclei is small.
1135 
113629 Jun 2008 Dennis Wright (hadr-casc-V09-01-03)
1137-----------------------------------------------
1138- add changes made by M. Paterno, J. Kowalkowski, and M. Fischler (FNAL) 
1139  to speed up code.  All G4Cascade***Channel classes and related code changed.
1140
1141 5 May 2008 Dennis Wright (hadr-casc-V09-01-02)
1142-----------------------------------------------
1143- retag hadr-casc-V09-csbug as hadr-casc-V09-01-02
1144
114530 Apr 2008 Dennis Wright (hadr-casc-V09-csbug)
1146-----------------------------------------------
1147- fix cross section bug in G4CascadSpecialFunctions that returned
1148  low or zero total cross sections for pi-p, pi+n, np, and pi0
1149  interactions
1150
115129 Apr 2008 Dennis Wright (hadr-casc-V09-01-01)
1152-----------------------------------------------
1153- bring tag hadr-casc-V09-01-coula to HEAD, make official tag
1154
115522 Apr 2008 Dennis Wright (hadr-casc-V09-01-param)
1156--------------------------------------------------
1157- changed pp, nn total cross section parameterization in
1158  G4CascadSpecialFunctions to more closely reflect the PDG values (old one
1159  was off by as much as a factor of 3.
1160
11613 Apr 2008 Dennis Wright (hadr-casc-V09-01-coula)
1162-------------------------------------------------
1163- removed Coulomb barrier from G4IntraNucleiCascader.cc (causes unphysical spike)
1164
11653 Apr 2008 Dennis Wright (hadr-casc-V09-01-coul)
1166------------------------------------------------
1167- Added Coulomb barrier in G4EquilibriumEvaporator.cc, G4IntraNucleiCascader.cc
1168
116917 Nov 2007 Dennis Wright (hadr-casc-V09-00-02)
1170-----------------------------------------------
1171- Fix angular distribution for nucleon-nucleon elastic scattering
1172  above 2.8 GeV, by modifying G4ElementaryParticleCollider::getElasticCase
1173 
117425 May 2007 Dennis Wright for Aatos Heikkinen (hadr-casc-V08-03-00)
1175-------------------------------------------------------------------
1176- implemented interfaces for pre-equilibrium and equilbrium evaporation
1177  models
1178
117904 May 2007 Aatos Heikkinen (hadr-casc-V08-02-00)
1180-------------------------------------------------
1181
1182- Added protection in G4ElementaryParticleCollider against negative
1183  value to sqrt().
1184
118508 May 2006 Dennis Wright (hadr-casc-V08-00-00)
1186-----------------------------------------------
1187
1188- cascade: remove G4BERTINI_KAON conditional assembly flags.  Files
1189  affected:
1190  G4ElementaryParticleCollider.hh, cc
1191  G4InuclElementaryParticle.hh
1192  G4NucleiModel.hh, cc
1193  G4CascadeInterface.cc
1194  G4IntraNucleiCascader.cc
1195
1196- cascade (Pekka Kaitaniemi): G4ElasticCascadeInterface: derive
1197  from G4VIntraNuclearTransportModel instead of G4HadronElastic.
1198  Check for case when no elastic scattering occurs.  If so,
1199  return original bullet and target. 
1200
120124 Nov 2005 Dennis Wright (hadr-casc-V07-01-00)
1202----------------------------------------------
1203
1204- cascade (bertini-V07-01-00 by Aatos Heikkinen)
1205   elastic scattering interface added:
1206   G4ElasticCascadeInterface.hh, .cc added
1207   G4CascadeInterface.hh modified
1208
Note: See TracBrowser for help on using the repository browser.