Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/processes/hadronic/models/cascade/History

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

  1 # Category hadr-casc History
  2 
  3 See `CONTRIBUTING.rst` for details of **required** info/format for each entry,
  4 which **must** added in reverse chronological order (newest at the top).
  5 It must **not** be used as a substitute for writing good git commit messages!
  6 
  7 -------------------------------------------------------------------------------
  8 
  9 ## 2024-08-21 Gabriele Cosmo (hadr-casc-V11-02-04)
 10 - Fixed reported Coverity defect in G4NucleiModel for use of std::move().
 11 
 12 ## 2024-08-14 Gabriele Cosmo (hadr-casc-V11-02-03)
 13 - Fixed reported Coverity defect in G4NucleiModel for unitialised data.
 14 
 15 ## 2024-01-29 Dennis Wright (hadr-casc-V11-02-02)
 16 - G4CascadeFinalStateAlgorithm::GenerateCosTheta() 
 17     For 4-body and higher-body generation of cosTheta, use direct sampling
 18     of exp(1 - cosTheta) instead of previously used rejection method on
 19     sinTheta * exp(-sinTheta). This removes the reflection about cosTheta = 0
 20     that caused a symmetric double bump in the Feynman-x distribution.
 21 
 22 ## 2024-01-24 Dennis Wright (hadr-casc-V11-02-01)
 23 - G4InuclSpecialFunctions::inuclRndm() is just a wrapper of G4UniformRand()
 24     remove method from class G4InuclSpecialFunctions and replace all
 25     occurrences of inuclRndm() with G4UniformRand() in files
 26     G4BigBanger.cc
 27     G4CascadeFinalStateAlgorithm.cc
 28     G4EquilibriumEvaporator.cc
 29     G4Fissioner.cc
 30     G4IntraNucleiCascader.cc
 31     G4InuclParamAngDst.cc
 32     G4InuclSpecialFunctions.cc
 33     G4NonEquilibriumEvaporator.cc
 34     G4NucleiModel.cc
 35 
 36 ## 2023-12-11 Dennis Wright (hadr-casc-V11-02-00)
 37 - improved calculation of di-nucleon density using Levinger quasi-deuteron
 38   model proposed by Einar Elen (Lund) and Natalia Toro (SLAC) : 
 39     - add method G4NucleiModel::setDinucleonDensityScale() to calculate
 40       correction factor to be applied to dinucleon densities
 41     - modify method G4NucleiModel::getCurrentDensity() to apply this factor 
 42 
 43 ## 2023-11-17 Vladimir Ivantchenko (hadr-casc-V11-01-03)
 44 - G4CascadeParamMessenger - fixed memory leak at exit and simplified the code.
 45 
 46 ## 2023-04-17 Alberto Ribon (hadr-casc-V11-01-02)
 47 - G4BigBanger : added protection in the method  G4BigBanger::generateBangInSCM
 48   to avoid very rare cases of unphysical negative energy of one of the
 49   secondaries produced by the Bertini model.
 50   (Note: this problem was never reproduced in our tests, but was reported by
 51          ATLAS with Geant4 10.6; the secondaries with negative - both total
 52    and kinetic - energy were always neutrons, produced by the internal
 53    Bertini nuclear de-excitation, after the intra-nuclear cascade.
 54    Many thanks to Mihaly Novak for providing detailed debugging
 55    information!)
 56 
 57 ## 2023-04-05 Dennis Wright (hadr-casc-V11-01-01)
 58 - Fix coverity bug 60840: incorrect integer divide in fission part of 
 59   G4EquilibriumEvaporator::deExcite.  Changed RHS to G4double.
 60 
 61 ## 2023-03-14 Alberto Ribon (hadr-casc-V11-01-00)
 62 Extended Bertini model to allow the use of Abla as alternative post-cascade
 63 nuclear de-excitation (the default de-excitation remains unchanged).
 64 There are two ways to set Abla as de-excitation for Bertini:
 65 via C++ interface, by calling G4CascadeInterface::useAblaDeexcitation();
 66 via environmental variable, by setting G4CASCADE_USE_ABLA=1.
 67 - G4AblaDeexcitation : new class that does the nuclear de-excitation,
 68   after the Bertini cascade, by using the Abla model, and then tranform
 69   the secondaries in Bertini objects.
 70 - G4CascadeInterface : added the new method  useAblaDeexcitation()  which sets
 71   Abla as nuclear de-excitation; this method can be called directly by the
 72   user, or automatically in the constructor of the class when the flag
 73   G4CascadeParameters::useAbla() is enabled.
 74 - G4InuclCollider : added new method  useAblaDeexcitation()  which creates
 75   an instance of the new class G4AblaDeexcitation.
 76 - G4CascadeParameters : added a boolean flag that enables the Abla
 77   de-dexcitation model in the case that the new environmental variable
 78   G4CASCADE_USE_ABLA is set.
 79 
 80 ## 2022-11-26 Gabriele Cosmo (hadr-casc-V11-00-05)
 81 - Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1.
 82 
 83 ## 2022-11-13 Alberto Ribon (hadr-casc-V11-00-04)
 84 (Two bug-fixes found and suggested by Sven Menke)
 85 - G4NumIntTwoBodyAngDst.hh : corrected the incomplete initialization of the
 86   vector angDist (fixing bug #2515).
 87 - G4TwoBodyAngularDist.cc : corrected the charge exchange reaction of pion+ on
 88   neutron producing in the final state pion0 and proton (fixing bug #2516)
 89 
 90 ## 2022-08-26 Gabriele Cosmo (hadr-casc-V11-00-03)
 91 - Attempt to fix compilation warning on gcc-12.1 for
 92   G4CascadeParamMessenger::CreateDirectory().
 93 
 94 ## 2022-05-23 Gabriele Cosmo (hadr-casc-V11-00-02)
 95 - Fixed wrong comparison between two arrays in findCrossSection(..)
 96   for G4CascadePPChannel, G4CascadeNPChanneland G4CascadeNNChannel.
 97 
 98 ## 2022-02-09 Gabriele Cosmo (hadr-casc-V11-00-01)
 99 - Fixed compilation warnings on Intel compilers for unused variables.
100 - Use const iterator in G4InuclEvaporation::BreakItUp(..).
101 
102 ## 2021-12-10 Ben Morgan (hadr-casc-V11-00-00)
103 - Change to new Markdown History format.
104 
105 ---
106 
107 # History entries prior to 11.0
108 
109  4 August 2021 Alberto Ribon (hadr-casc-V10-07-04)
110 --------------------------------------------------
111 - G4CascadeInterface : set the creator model ID for the secondaries
112   produced by Bertini model using the new version of G4PhysicsModelCatalog
113 
114 29 June 2021 Gabriele Cosmo (hadr-casc-V10-07-03)
115 -------------------------------------------------
116 - Fixed compilation warnings occurring when c++20 is enabled.
117 
118 17 May 2021 Jonathan Madsen (hadr-casc-V10-07-02)
119 -------------------------------------------------
120 - Fixed TLS usage of G4CascadeChannelTables and G4CascadeParameters
121 
122 16 April 2021  Ben Morgan (hadr-casc-V10-07-01)
123 --------------------------------------------------
124 - Migrate build to modular CMake API
125 
126 13 April 2021  Alberto Ribon    (hadr-casc-V10-07-00)
127 -----------------------------------------------------
128 - GNUmakefile, sources.cmake : removed the subdirectories
129   hadronic/models/management and hadronic/models/util
130   (that have been now deleted, with their classes moved to
131    hadronic/util and hadronic/management).
132   Removed also the useless dependency to hadronic/process.
133 
134  5 May 2020  Gunter Folger      (hadr-casc-V10-06-04)
135 -----------------------------------------------------
136  - Fix for clang10: confusing indentation caused by if
137     add {} around statements
138 
139 26 February 2020  Dennis Wright (hadr-casc-V10-06-03)
140 -----------------------------------------------------
141 - G4LightTargetCollider::collide() : avoid frequent energy conservation warning
142   from G4HadronicProcess by setting up "no interaction" final state below
143   threshold
144 
145 13 January 2020  Dennis Wright (hadr-casc-V10-06-02)
146 ----------------------------------------------------
147 - G4CascadeInterface.cc: fix memory leak by deleting ltcollider in class
148   dtor
149 
150 10 January 2020  Michael Kelsey (hadr-casc-V10-06-01)
151 -----------------------------------------------------
152 - G4CascadeParamMessenger.cc: Ensure that Bertini-specific commands get
153   added to /process/had/cascade/ directory, instead of /process/had.
154   Requires resetting cmdDir=0 between CreateDirectory() calls.
155 
156 16 December 2019  Vladimir Ivanchenko (hadr-casc-V10-06-00)
157 -----------------------------------------------------------
158 - G4CascadeCheckBalance: fixed outstanding problem of the interface
159   with native pre-compound model, which happens since in the
160   default de-excitation internal electron conversion become
161   enabled
162 
163  7 November 2019  Dennis Wright (hadr-casc-V10-05-02)
164 -----------------------------------------------------
165 - G4LightTargetCollider: fix crash when gamma energy below deuteron
166   disintegration threshold and improve exception handling
167 
168  5 November 2019  Dennis Wright (hadr-casc-V10-05-01)
169 -----------------------------------------------------
170 - new class G4LightTargetCollider to more accurately handle collisons
171   on p, d, t, 3He.  Currently only gamma on protons and deuterons is
172   implemented.
173 
174 29 May 2019  Dennis Wright (hadr-casc-V10-05-00)
175 ------------------------------------------------
176 - fix bug found in biasing/B03 example due to FPE from unprotected sqrt
177   of pperp2 + qv - p1r*p1r in G4NucleiModel::boundaryTransition
178 
179 19 November 2018  Dennis Wright (hadr-casc-V10-04-12)
180 -----------------------------------------------------
181 - fix bug # 2096: non-conservation in precompound interface
182  Four problems fixed:
183 
184  G4PreCompoundDeexcitation::deExcite: do not use const reference as
185  input to theDeExcitation->DeExcite(G4Fragment) because G4PreCompound
186  can change the fragment and upset the energy balance
187 
188  G4CollisionOutput::getTotalCharge: subtract electron charges in case
189  of internal conversion in G4PreCompound
190 
191  G4CascadeCheckBalance::collide(const G4Fragment& fragment,
192                                 G4CollisionOutput& output):
193  Convert fragment momentum given in MeV to GeV (Bertini units)
194  and remove electrom masses from energy balance when internal conversion
195  occurs
196 
197 09 November 2018  Gabriele Cosmo (hadr-casc-V10-04-11)
198 ------------------------------------------------------
199 - Fixed few printout typos.
200 
201 25 October 2018  Makoto Asai (hadr-casc-V10-04-10)
202 --------------------------------------------------
203 - G4CascadeParamMessenger.cc : add description to /process/had/
204   directory. Addressing to bug report #2020.
205 
206 27 September 2018  Dennis Wright  (hadr-casc-V10-04-09)
207 -------------------------------------------------------
208 - G4NucleiModel::boundaryTransition : fix by Natalia Toro (SLAC) to
209   prevent glancing incidence at shell boundaries from reflecting too
210   many times
211 
212 19 September 2018  Dennis Wright  (hadr-casc-V10-04-08)
213 -------------------------------------------------------
214 - G4CascadeT11pizNChannel.cc, G4CascadeT31piNChannel.cc,
215   G4CascadeT33piNChannel.cc : re-order particle types in final state
216     arrays so that pion is first and nucleon is second.  Two body final
217     state methods assume this.
218 
219 - G4CascadeKminusNChannel.cc, G4CascadeKminusPChannel.cc,
220   G4CascadeKplusNChannel.cc, G4CascadeKplusPChannel.cc,
221   G4CascadeKzeroBarNChannel.cc, G4CascadeKzeroBarPChannel.cc,
222   G4CascadeKzeroNChannel.cc, G4CascadeKzeroPChannel.cc :
223     same as above but re-order only for two- and three-body final states.
224 
225 - G4CascadeT1GamNChannel.cc : re-order final state particle types so that
226   mesons are first in two- and three-body cases
227 
228 17 September 2018  Dennis Wright  (hadr-casc-V10-04-07)
229 -------------------------------------------------------
230 - G4NucleiModel: replace Kossov parameterization of gammaQDxsec with new
231   values coming from smooth line through deuteron photo-disintegration
232   data which include 2004 JLab data up to 3 GeV.
233 
234  6 July 2018  Vladimir Ivanchenko (hadr-casc-V10-04-06)
235 ------------------------------------------------------
236 - G4GDecay3 - fixed problem reported by CMS due to wrong kinematics
237     in the final state by removing loop check; adding protection
238     for low value of mother mass
239 
240  7 June 2018  Dennis Wright  (hadr-casc-V10-04-05)
241 --------------------------------------------------
242 - G4CascadePPChannel, G4CascadeNPChannel, G4CascadeNNChannel: extend strange
243     pair production channels to 6, 7, 8 and 9-body final states
244 
245 - G4CascadeT11pizNChannel.cc : fix qnum conservation problem in 8-body final
246     states
247 
248  2 May 2018  Dennis Wright  (hadr-casc-V10-04-04)
249 -------------------------------------------------
250 - G4ElementaryParticleCollider
251    methods generateSCMpionAbsorption and
252    generateSCMmuonAbsorption did not produce correct nucleon pairs when
253    pion or muon was absorbed - both methods now re-written
254 
255    quantum number conservation test added to method
256    collide(G4InuclParticle* bullet, G4InuclParticle* target,
257            G4CollisionOutput& output)
258 
259  20 March 2018  Julia Yarba  (hadr-casc-V10-04-03)
260 ---------------------------------------------------
261 - Fix implementation of nuclear_rad_2par configurable key (G4CascadeParamMessenger.cc)
262 
263  6 March 2018  Dennis Wright  (hadr-casc-V10-04-02)
264 ---------------------------------------------------
265 - G4CascadeT11pizNChannel.cc: extend strange pair production channels to
266   6,7,8 and 9 body final states
267 
268 27 February 2018  Alberto Ribon (hadr-casc-V10-04-01)
269 -----------------------------------------------------
270 -  G4NucleiModel : replaced obsolete std::bind2nd with std::bind .
271 
272  2 February 2018  Dennis Wright (hadr-casc-V10-04-00)
273 -----------------------------------------------------
274 - Add strange pair production channels to list of 6, 7, 8 and 9-body
275   final states in classes G4CascadeT31piNChannel and G4CascadeT33piNChannel.
276   Modify template values accordingly in
277     G4CascadePiMinusNChannel.hh
278     G4CascadePiMinusPChannel.hh
279     G4CascadePiPlusNChannel.hh
280     G4CascadePiPlusPChannel.hh
281 
282 27 November 2017  Dennis Wright (hadr-casc-V10-03-06)
283 -----------------------------------------------------
284 - G4CascadeInterface::createBullet, G4CascadeInterface::ApplyYourself:
285   rotation to z-axis unnecessary and may
286   cause irreproducibility.  Remove it according to bug report #1990.
287 
288 20 October 2017  Tatsumi Koi (hadr-casc-V10-03-05)
289 ------------------------------------------------
290 - G4CascadeParameters.cc FERMI_SCALE and RAD_TRAILING are added to changeable parameters from HDP
291 Lower and upper limits of changeable parameters form HDP are registered
292 
293 6 October 2017  Tatsumi Koi (hadr-casc-V10-03-04)
294 ------------------------------------------------
295 - G4CascadeParameters.cc Remove protection for using G4HadronicDeveloperParameters
296 
297 5 October 2017  Tatsumi Koi (hadr-casc-V10-03-03)
298 ------------------------------------------------
299 - Adding comment for BEST_PAR in G4CascadeParameters and test/README
300 
301 22 May 2017  Dennis Wright (hadr-casc-V10-03-02)
302 ------------------------------------------------
303 - G4ElementaryParticleCollider::generateSCMmuonAbsorption: fix rare seg fault
304   spotted and diagnosed by Ralf Ehrlich (mu2e/Virgina).  Added line
305       particles.clear();
306   if GetThreeBodyMomenta() returns no momenta.
307 
308 1 May 2017  Tatsumi Koi (hadr-casc-V10-03-01)
309 ---------------------------------------------------
310 - G4CascadeParameters.cc: Use G4HadronicDeveloperParameters as a tool
311 for sharing parameters between developers and experienced users.
312 Need to set environment variable of "TEST_HDP" for testing the tool.
313 
314 13 April 2017  Michael Kelsey (hadr-casc-V10-03-00)
315 ---------------------------------------------------
316 - G4CascadeCoalescence:  Remove clusterHash() function and triedClusters
317   registry.  Drop redundant calls of tryCluster() with subcombinatorics; all
318   combinations are handled, uniquely, in main loop over indices.  Eliminates
319   significant memory usage seen with high-energy applications of BERT.
320 
321 - test/clusterComb.cc, test/GNUmakefile:  New standalone test to exercise
322   combinatoric behaviour of G4CascadeCoalescence (used in testing above
323   changes).
324 
325 29 November 2016  Dennis Wright (hadr-casc-V10-02-05)
326 -----------------------------------------------------
327 - G4InuclCollider::photonuclearOkay(): fix segfault reported by Daren Sawkey
328   in bug report #1883
329 
330  6 October 2016  Dennis Wright (hadr-casc-V10-02-04)
331  ---------------------------------------------------
332 - G4EquilibriumEvaporator::deExcite: replace sampling of evaporation spectrum
333    with original Dostrovsky method
334 - paraMaker.cc: add comments
335 
336  3 October 2016  Dennis Wright (hadr-casc-V10-02-03)
337  ---------------------------------------------------
338   Mike Kelsey added the lines
339     process->PreparePhysicsTable(*part);
340     process->BuildPhysicsTable(*part);
341   in unit test cascade/test/cascade.cc to configure RunManager event loop
342 
343 30 September 2016  Dennis Wright (hadr-casc-V10-02-02)
344 ------------------------------------------------------
345 - add 8- and 9-body final states to K-, K0 and K0b induced reactions.
346   Classes affected: G4CascadeKminusNChannel, G4CascadeKminusPChannel,
347                     G4CascadeKzeroBarNChannel, G4CascadeKzeroBarPChannel,
348                     G4CascadeKzeroNChannel, G4CascadeKzeroPChannel
349 
350 14 March 2016  Dennis Wright (hadr-casc-V10-02-01)
351 --------------------------------------------------
352 - G4InuclCollider.cc: re-instate getenv for photonuclearOkay().  This
353   method causes significant performance degradation and the physics needs
354   to be improved before it can made default
355 
356 25 January 2016  Michael Kelsey (hadr-casc-V10-02-00)
357 -----------------------------------------------------
358 - G4InuclCollider.cc:  Remove envvar which enables "photonuclearOkay()"
359   test.  This test will now be used by default, improving the match for
360   production of neutrons and protons in the GDR region.
361 
362 6 November 2015  Dennis Wright (hadr-casc-V10-01-13)
363 ----------------------------------------------------
364 - G4CascadeKplusNChannel: extend to 9-body final states and 32 GeV using same
365   energy bins as G4CascadeKplusPChannel
366 
367 16 October 2015  V.Ivanchenko (hadr-casc-V10-01-12)
368 ---------------------------------------------------
369 - G4CascadeCoalescence.hh:  Add #include "G4InuclElementaryParticle.hh", to
370   address compiler error from Cray (see Config HN 1764).
371 
372 19 August 2015  V.Ivanchenko (hadr-casc-V10-01-11)
373 --------------------------------------------------
374 - G4NucleiModel.cc - Randomize.hh header is included
375 
376 13 July 2015  M. Kelsey (hadr-casc-V10-01-10)
377 ---------------------------------------------
378 - G4KaonSampler:  Per D. Wright, modify to 30 bins, finely divided up to 1.5
379   GeV, very coarsely grained above 10 GeV.  Binning optimized to isolate
380   various resonances in Kp and Kn spectra.
381 
382 - G4CascadeKplusPChannel:  Per D. Wright, use new G4KaonSampler binning,
383   with final states tabulated up to 9-body.  Should dramatically improve
384   match to data.
385 
386 26 June 2015  M. Kelsey (hadr-casc-V10-01-09)
387 ---------------------------------------------
388 - G4CascadeCheckBalance.cc:  Address Coverity #60845-60850, with incorrect
389   logical expression in diagnostic output.
390 
391 22 June 2015  M. Kelsey (hadr-casc-V10-01-08)
392 ---------------------------------------------
393 Follow new G4cbrt(int) by moving powers of Z and A out of argument.  Lookup
394 table only covers real nuclei (up to about 300 or so).
395 
396   G4EquilibriumEvaporator.cc
397   G4Fissioner.cc
398   bindingEnergyAsymptotic.cc
399 
400 22 June 2015  M. Kelsey (hadr-casc-V10-01-07)
401 ---------------------------------------------
402 Per request from G. Cosmo and A. Dotti, migrate the five "TLS" local buffers
403 to use the new G4AutoDelete mechanism.  This removes them as spurious memory
404 leaks at end of job.
405 
406   G4InuclSpecialFunctions.cc
407   G4NucleiModel.cc
408 
409 19 June 2015  M. Kelsey (hadr-casc-V10-01-06)
410 ---------------------------------------------
411 Per request from A. Ribon, migrate few remaining instances of std::pow,
412 std::log, and std::exp to Geant4's VDT equivalents (G4Pow, G4Log, G4Exp).
413 Only G4Pow is problematic, requiring use of singleton pointer instead of
414 direct replacement.
415 
416   G4CascadeFinalStateAlgorithm.cc
417   G4FissionStore.cc
418   G4Fissioner.cc
419   G4IntraNucleiCascader.cc
420 
421 - G4InuclSpecialFunctions:  As above, and define G4cbrt(G4int) which uses
422   G4Pow::Z13() with lookup table for integer arguments (e.g. Z, A, N).
423 
424 8 June 2015  M. Kelsey (hadr-casc-V10-01-05)
425 --------------------------------------------
426 Per request from A. Ribon and ATLAS, mark every while loop in code with
427 special comment string authenticating that it terminates.
428 
429   G4BigBanger.cc
430   G4CascadeFinalStateAlgorithm.cc
431   G4CascadeInterface.cc
432   G4ElementaryParticleCollider.cc
433   G4EquilibriumEvaporator.cc
434   G4FissionStore.cc
435   G4Fissioner.cc
436   G4GDecay3.cc
437   G4IntraNucleiCascader.cc
438   G4InuclCollider.cc
439   G4InuclNuclei.cc
440   G4InuclParamAngDst.cc
441   G4NonEquilibriumEvaporator.cc
442   G4NucleiModel.cc
443 
444 23 March 2015  M. Kelsey (hadr-casc-V10-01-04)
445 ----------------------------------------------
446 - G4CascadeInterface.cc:  Call static Initialize() function in constructor,
447   for sequential builds or master thread.  Requires global-V10-01-08.
448 
449 23 April 2015  A. Ribon (hadr-casc-V10-01-03)
450 ---------------------------------------------
451 - G4PreCompoundDeexcitation: delete precompound products (i.e.
452   G4ReactionProduct objects) before cleaning and deleting their
453   vector container.
454 
455 23 March 2015  M. Kelsey
456 ------------------------
457 - G4KaonSampler, G4HyperonSampler:  NEW Copies of G4KaonHypSampler, which
458   will eventually diverge with different energy binning, in order to extend
459   kaon and hyperon final state tables to ~30 GeV.
460 
461 23 February 2015  M. Kelsey (hadr-casc-V10-01-02)
462 -------------------------------------------------
463 - G4InuclCollider:  Speed up new photonuclearOkay() filter by checking final
464   state nucleus vs. target directly, instead of looping over secondaries.
465   Filter is still disabled behind G4CASCADE_CHECK_PHOTONUCLEAR envvar.
466 
467 2 February 2015  M. Kelsey (hadr-casc-V10-01-01)
468 ------------------------------------------------
469 - G4InuclCollider:  Add special end-of-cascade test to require low-energy
470   photo-nuclear and lepto-nuclear events to produce at least one non-gamma
471   secondary.  Currently hidden behind G4CASCADE_CHECK_PHOTONUCLEAR envvar.
472   Will address bug #1680 to increase neutron yield around the giant dipole
473   resonance, without model changes.
474 
475 11 December 2014  M. Kelsey (hadr-casc-V10-01-00)
476 -------------------------------------------------
477 - G4CascadeParameters, G4CascadeParamMessenger:  Make G4CASCADE_PIN_ABSORPTION
478   a double, specifying a probability for absorption.  Requirement is
479   less-than, not less-than-or-equal, so 0. suppresses aborption in all
480   cases.
481 
482 - G4ElementaryParticleCollider.cc:  Use PIN_ABSORPTION value as probability.
483   Fix boosting of pion-nucleon absorption; recoil nucleus should not be
484   involved in boost.
485 
486 11 December 2014  M. Kelsey
487 ---------------------------
488 - G4CollisionOutput:  Move "hard tuning" from setOnShell() to separate
489   function.  Add code in setOnShell() to do "hard tuning" of quasi-elastic,
490   recomputing momentum for single particle and nuclear recoil directly.
491 
492 11 December 2014  M. Kelsey
493 ---------------------------
494 - G4IntraNucleiCascader:  Add function to identify non-interacting particles
495   (e.g., neutrinos); in generateCascade(), move such particles directly to
496   output list, rather than transporting them through the nucleus.  This
497   deals with the "trapped neutrino" case (below) more efficiently.
498 
499 1 December 2014  M. Kelsey (hadr-casc-V10-00-20)
500 ------------------------------------------------
501 - G4CascadParticle.cc:  For stopped particles (zero path length), if at core
502   of nucleus switch "movingIn" flag to false to particle will be forced to
503   escape.  Protects against very rare infinite loop in mu- capture (nu_mu
504   produced with tiny momentum, gets stuck in nucleus zone 0).
505 
506 1 December 2014  M. Kelsey (hadr-casc-V10-00-19)
507 ------------------------------------------------
508 - G4ElementaryParticleCollider.cc:  In muon absorption, check return from
509   G4GDecay3 for null vector; report no-collision status and return.
510 
511 - G4GDecay3.cc:  Fix typo in error report to use correct class name.
512 
513 21 November 2014  M. Kelsey (hadr-casc-V10-00-18)
514 -------------------------------------------------
515 Per A. Dotti, introduce G4AutoDelete for all singleton classes to avoid
516 end-of-job memory leaks:
517 
518   G4CascadeChannelTables.cc,.hh (also make dtor public)
519   G4CascadeParameters.cc
520   G4MultiBodyMomentumDist.cc
521   G4TwoBodyAngularDist.cc
522 
523 21 November 2014  M. Kelsey (hadr-casc-V10-00-17)
524 -------------------------------------------------
525 - G4PreCompoundDeexcitation.cc:  Per V.I., fix memory leak on exit by passing
526   excitation handler through to PreCompound.
527 
528 19 November 2014  M. Kelsey (hadr-casc-V10-00-16)
529 -------------------------------------------------
530 - G4CascadeInterface.cc:  Fix parentheses in retryInelasticNucleus()
531   expression for conditional-compilation flag (does not affect defaults).
532 
533 18 November 2014  M. Kelsey (hadr-casc-V10-00-15)
534 -------------------------------------------------
535 - G4CascadeInterface.cc:  Fix possible infinite-loop condition where (nTries
536   >= maxTries) and momentum balance fails, by regrouping conditions in
537   retryInelasticNucleus().
538 
539 11 November 2014  M. Kelsey (hadr-casc-V10-00-14)
540 -------------------------------------------------
541 - G4CascadeParameters.cc:  Revert default changes in V10-00-12 tag:  turn
542   off phase-space, trailing-effect, and PreCompound.
543 
544 - G4InuclCollider.cc:  Replace G4Fragment::GetA() with GetA_asInt().
545 
546 - G4ElementaryParticleCollider.cc:  Improve optional pion-nucleon
547   absorption.  NOTE:  This is DISABLED by default; used for studies of pion
548   stopping.
549 
550 - G4NucleiModel.cc:  Initialize local p1r variable in declaration.
551 
552 30 October 2014  M. Kelsey (hadr-casc-V10-00-13)
553 ------------------------------------------------
554 - G4CascadeParameters, G4CascadeParamMessenger:  Add flag to enable
555   absorbing pion on a single nucleon.  See G4EPCollider below for details.
556 
557 - G4ElementaryParticleCollider:  Add support for absorbing a pion with a
558   single nucleon (via a charge exchange interaction, e.g. pi- p -> n), with
559   momentum conservation handled by recoiling against the nucleus.  This is
560   intended to improve the match to data for pi- capture.
561 
562 - G4NucleiModel.cc:  In boundaryTransition(), switch sign of "dv" so that
563   particle sees a barrier (next_zone potential > current potential) as
564   positive.  In generateParticleFate(), pass (A,Z) to EPCollider for
565   possible nuclear-recoil calculations.
566 
567 - G4CascadeCheckBalance.cc:  Per V.Ivantchenko, use G4Fragment::GetZ_asInt(),
568   GetZ_asInt().  Should have been done long ago.
569 
570 1 October 2014  M. Kelsey (hadr-casc-V10-00-12)
571 -----------------------------------------------
572 - G4CascadeCheckBalance:  Change ctor arg from "const char*" to "const
573   G4String&" to avoid memory deallocation problems.
574 
575 - G4CascadeColliderBase:  Change ctor arg from "const char*" to "const
576   G4String&" to avoid memory deallocation problems.
577 
578 - G4CascadeInterface.cc:  Call both usePreCompoundDeexcitation() and
579   useCascadeDeexcitation() in ctor, with if-else.
580 
581 - G4CascadeParameters.cc:  Make PreCompound, phase space, trailing effect,
582   and light-ion clustering active by default.  User must set envvars to "0"
583   to disable.
584 
585 - G4InuclCollider.cc:  Make PreCompound the default in ctor.
586 
587 - G4VCascadeCollider:  Change ctor arg from "const char*" to "const
588   G4String&" to avoid memory deallocation problems.
589 
590 - G4VCascadeDeexcitation.hh:  Change ctor arg from "const char*" to "const
591   G4String&" to avoid memory deallocation problems.
592 
593 27 June 2014  M. Kelsey (hadr-casc-V10-00-11)
594 ---------------------------------------------
595 - G4CascadeFinalStateAlgorithm.cc:  Address bug #1558, using ".c_str()" in
596   diagnostic outputs, to avoid IBM XL compiler error.
597 
598 23 May 2014  M. Kelsey (hadr-casc-V10-00-10)
599 --------------------------------------------
600 - G4InuclNuclei.cc:  Avoid FPE in setExcitationEnergy() for zero Ekin.  This
601   must be backported to 9.6 and 10.0.
602 
603 9 May 2014  M. Kelsey (hadr-casc-V10-00-09)
604 -------------------------------------------
605 - G4PreCompoundDeexcitation.cc: Fix mistake in copying example code; created
606   a local copy instead of filling the data member.
607 
608 9 May 2014  M. Kelsey (hadr-casc-V10-00-08)
609 -------------------------------------------
610 - 4PreCompoundDeexcitation.cc:  Per V.Ivanchenko, attempt to use shared
611   instance of PreCompound by fetching from hadronic registry.  Only if that
612   fails should a local instance be created.
613 
614 9 April 2014  M. Kelsey (hadr-casc-V10-00-07)
615 ---------------------------------------------
616 - G4IntraNucleiCascader.cc:  Use const G4PD*.
617 - G4InuclEvaporation.cc:  Remove temporary const_cast<G4PD*> (see 10 Mar).
618 
619 12 March 2014  M. Kelsey (hadr-casc-V10-00-06)
620 ----------------------------------------------
621 - G4CascadeParameters:  Copy Gabriele's version of the singleton here, from
622   the 9.6-patch-03 branch.
623 
624 10 March 2014  M. Kelsey (hadr-casc-V10-00-05)
625 ----------------------------------------------
626 - G4CollisionOutput.cc:  Use const G4PD* for G4HadronicProduct secondaries.
627 
628 - G4InuclParticle:  Apply "const G4PD*" everywhere for consistency with
629   hadr-util updates.
630 
631 - G4InuclElementaryParticle:  Apply "const G4PD*" everywhere for consistency
632   with hadr-util updates.
633 
634 - G4InculEvaporation.cc:  TEMPORARY:  Use const_cast<G4PD*> to access ctor
635   of G4Fragment, until new hadr-util code is public.
636 
637 10 March 2014  M. Kelsey (hadr-casc-V10-00-04)
638 ----------------------------------------------
639 - G4IntraNucleiCascader.cc:  Fix bug #1584, memory leak in secondaries.
640 
641 10 March 2014  M. Kelsey (hadr-casc-V10-00-03)
642 ----------------------------------------------
643 - G4CascadeParameters.cc:  Restore original 10.0 version, because January
644   mods caused unexpected side effects in build, which aren't being fixed.
645 
646 29 January 2014  G.Folger  not tagged
647 -------------------------------------
648 - Removed cascade/utils from cascade/sources.cmake
649 
650 16 January 2014  M.Kelsey (hadr-casc-V10-00-02)
651 -----------------------------------------------
652 - G4CascadeInterface:  Move static member into const data, initialize in
653   ctor.  This avoids calling G4CascadeParameters::Instance() before main().
654 
655 - G4CascadeCoalescence:  Move static members into const data, initialize in
656   ctor.  This avoids calling G4CascadeParameters::Instance() before main().
657 
658 - G4NucleiModel:  Move static members which use envvars into const data,
659   initialize in ctors (with copy-and-paste code blocks).  This avoids
660   calling G4CascadeParameters::Instance() before main().
661 
662 7 January 2014  Dennis Wright (hadr-casc-V10-00-01)
663 ---------------------------------------------------
664 - added new pi-nucleon 2-body angular distributions:
665   G4PipP2PipPAngDst, G4PimP2PimPAngDst, G4Pi0P2Pi0PAngDst and G4PimP2Pi0NAngDst.
666   Below 2.6 GeV, distributions taken from SAID phase shift calculations with
667   Coulomb phase removed.  Above 2.6 GeV, taken from data.
668 - also modified: G4TwoBodyAngularDist, sources.cmake
669 
670 6 January 2014  M.Kelsey (hadr-casc-V10-00-00)
671 ----------------------------------------------
672 - G4CascadeParameters.cc:  Improve singleton initialization by moving static
673   instance to pointer in file scope (anon namespace), check for null pointer
674   in Instance() call.  Drop use of messenger (temporarily) since it's not
675   thread safe.  This change needs to be backported to 9.6 and 10.0.
676 
677 2 October 2013  V.Ivanchenko (hadr-casc-V09-06-52)
678 ----------------------------------------------------
679 - G4NonEquilibriumEvaporator.hh - added forward declaration of G4Pow,
680     because after the revision of G4Pow cascade is not compiling anymore
681 
682 1 October 2013  Michael Kelsey (hadr-casc-V09-06-51)
683 ----------------------------------------------------
684 - G4NucleiModel:  Make gammaQDinterp a regular data member, to avoid data
685   race condition with shared (const but mutable) object.
686 
687 - G4EquilibriumEvaporator:  Make QFinterp a regular data member, to avoid data
688   race condition with shared (const but mutable) object.
689 
690 25 September 2013  Michael Kelsey (hadr-casc-V09-06-50)
691 -------------------------------------------------------
692 - G4NucleiModel:  Remove G4Pow introduced below; replace usage with simple
693   "*= 2" inside loop.
694 
695 24 September 2013  Michael Kelsey (hadr-casc-V09-06-49)
696 -------------------------------------------------------
697 Replace usage of std::log, std::exp, and std::pow with GEANT4 internal
698 functions with faster polynomial implementations.
699 
700   G4BigBanger.cc
701   G4CascadeFinalStateAlgorithm.cc
702   G4EquilibriumEvaporator.cc
703   G4InuclParamMomDst.cc
704   G4InuclSpecialFunctions.cc
705   G4NonEquilibriumEvaporator.cc
706   G4NonEquilibriumEvaporator.hh
707   G4NucleiModel.cc
708   G4NucleiModel.hh
709   G4NumIntTwoBodyAngDst.icc
710   G4ParamExpTwoBodyAngDst.icc
711 
712 29 August 2013  Michael Kelsey (hadr-casc-V09-06-48)
713 ----------------------------------------------------
714 Address Coverity #52158 and 52161.
715 
716 - G4InuclSpecialFunctions.hh:  Add copy action declarations to paraMaker.
717 
718 8 August 2013  Michael Kelsey (hadr-casc-V09-06-47)
719 ---------------------------------------------------
720 More thread-safety fixes:
721 
722 - G4InuclSpecialFunctions.hh:  Replace paraMaker[Truncated] functions with
723   class object, in order to use thread-locally within evaporators.
724 
725 - paraMaker.cc:  Move function code into new class member functions.
726 
727 - G4*EquilibriumEvaporator:  Add data member for new "paraMaker" object.
728 
729 Per A. Dotti, move local statics to file scope to avoid thread collisions:
730 
731 - G4CascadeDeexciteBase.cc:  Move zero vector.
732 
733 - G4InuclParticle.cc:  Move "G4DynamicParticle empty".
734 
735 - G4NucleiModel.cc:  Move static G4InuclElementaryParticle constructions to
736   data members.
737 
738 4 August 2013  Michael Kelsey (hadr-casc-V09-06-46)
739 ---------------------------------------------------
740 - G4CascadeInterface.cc:  Fix bug #1513, replacing "Z=1" with "Z==1" in
741   boolean ternary operation.
742 
743 18 July 2013  Michael Kelsey (hadr-casc-V09-06-45)
744 --------------------------------------------------
745 - G4CascadeDeexciteBase.cc:  Address Coverity #51934, unitialized data
746   members.
747 
748 - Added use of "Id" and "Name" keywords to many new files which were missing
749   them.
750 
751 11 July 2013  Michael Kelsey
752 ----------------------------
753 - G4CascadeFinalStateAlgorithm: Replace name "difr_const" with "oneOverE".
754 
755 5 July 2013  Michael Kelsey (hadr-casc-V09-06-44)
756 -------------------------------------------------
757 - G4InuclParticleNames.hh:  Provide particle identification functions,
758   equivalent to those in G4InuclElementaryParticle, for direct use of type
759   codes.
760 
761 - G4InuclElementaryParticle.hh:  Replace identification functions with calls
762   through to new G4InuclParticleNames functions.
763 
764 3 July 2013  Michael Kelsey (hadr-casc-V09-06-43)
765 -------------------------------------------------
766 - G4CascadeFinalStateAlgorithm:  Add Kopylov N-body phase space generation,
767   with function code copied from G4HadPhaseSpaceKopylov.  Use with runtime
768   envvar flag (G4CASCADE_USE_PHASESPACE) in place of multi-parameter 3-body
769   and 4-body generators.  Two-body distributions are not changed.
770 
771 - G4CascadeParameters, G4CascadeParamMessenger: Add new envvar,
772   G4CASCADE_USE_PHASESPACE, and associated functions, to switch between
773   multiparameter and Kopylov N-body generators.
774 
775 2 July 2013  Michael Kelsey
776 ---------------------------
777 - G4NucleiModel.cc:  Minor tweaks:  generateInteractionLength() now returns
778   "large" (1000.) instead of input path length when calculations fail; this
779   eliminates the effect of "spath < path" vs. "spath <= path" comparisons.
780   For dibaryon absorption, use sum of invMFPs, not average.  Small
781   improvements to some diagnostic messages.
782 
783 28 June 2013  Michael Kelsey (hadr-casc-V09-06-42)
784 --------------------------------------------------
785 PROBLEM:  Code committed below did not include last round of changes to
786 support multiple G4Fragments from G4Fissioner.  Those were lost accidentally
787 during directory manipulation on my local disk.
788 
789 - G4CascadeDeexciteBase:  Add makeFragment() without momentum for at-rest
790   nuclei.
791 
792 - G4Fissioner:  Remove local G4InuclNuclei vector; create fission fragments as
793   G4Fragments directly into output buffer.
794 
795 - G4CollisionOutput:  Replace single recoil fragment with list; apply
796   associated changes throughout support functions.
797 
798 - G4EquilibriumEvaporator.cc: Use G4Fragments output from G4Fissioner.
799 
800 - G4CascadeDeexcitation.cc: Add printing of intermediate outputs from each
801   de-excitation stage.
802 
803 28 June 2013  Michael Kelsey (hadr-casc-V09-06-41)
804 --------------------------------------------------
805 Reorganize de-excitation modules to use G4Fragment throughout process.  Only
806 final ground-state nucleus will be instantiated as a G4InuclNuclei object.
807 This should substantially reduce the load on G4IonTable in MT operations.
808 
809 - G4CascadeCheckBalance: Replace interface for "G4Fissioner" with version
810   which takes G4Fragments for target and output.
811 
812 - G4CascadeColliderBase: Move explosion() functions and G4Fragment-related
813   valiateOutput() functions to new G4CascadeDeexciteBase.
814 
815 - G4CascadeDeexciteBase: NEW concrete subclass of G4VCascadeDeexcitation.
816   Takes over "operational" support from G4CascadeColliderBase, including
817   explosion() functions, local copy of G4CascadeCheckBalance, and
818   conservation checking functions.  Provides utilities to extract common
819   data from input G4Fragment for all modules, and to construct a G4Fragment.
820 
821 - G4CascadeDeexcitation: Inherit from G4CascadeDeexciteBase.
822 
823 - G4PreCompoundDeexcitation: Inherit from G4CascadeDeexciteBase.
824 
825 - G4VCascadeDeexcitation: Inherit directly from G4VCascadeCollider.
826 
827 - G4ExitonConfiguration:  Add interface to copy from G4Fragment.
828 
829 - G4EvaporationInuclCollider, G4NonEquilibriumEvaporator,
830   G4BigBanger, G4Fissioner, G4EquilibriumEvaporator: Move all to inherit
831   from G4CascadeDeexciteBase, replace collide() with deExcite(), use
832   G4Fragment in place of G4InuclNuclei everywhere except final ground-state
833   output.
834 
835 - sources.cmake:  Add G4CascadeDeexciteBase.hh and .cc.
836 
837 28 June 2013  Michael Kelsey (hadr-casc-V09-06-40)
838 --------------------------------------------------
839 Improve encapsulation of pion and muon absorption through dibaryons.
840 
841 - G4NucleiModel:  Add optional argument to useQuasiDeuteron() (fixed spelling)
842   to take dibaryon code, validate charge-exchange interactions.
843 
844 - G4ElementaryParticleCollider:  Add function to split dibaryon into
845   component particle types; use G4NM::useQuasiDeuteron() for sanity checks
846   instead of nested if-blocks.
847 
848 28 June 2013  Michael Kelsey (hadr-casc-V09-06-39)
849 --------------------------------------------------
850 Address Coverity 37230 and 37385.
851 
852 - G4CascadeInterface.hh:  Add unimplemented declarations for copy operations.
853 
854 27 June 2013  Michael Kelsey (hadr-casc-V09-06-38)
855 --------------------------------------------------
856 - G4NucleiModel.cc:  Minor tweak: change "spath==0." test to "path==0.", to
857   check actual path length (equivalent to zero-momentum), rather than
858   generated random value.
859 
860 - G4InuclParticleNames:  Add functions to convert enum values to strings,
861   for diagnostic messages.  New .cc file required for implementation.
862 
863 - G4CascadeData.icc:  For diagnostics, use new enum-to-string function, add
864   explicit space between xsec values, and print only 10 values per line.
865 
866 - G4CascadeInterpolator.icc:  For diagnostics, change output to setw(6), and
867   print only 10 values per line.
868 
869 - sources.cmake:  Add G4InuclParticleNames.cc.
870 
871 21 June 2013  Michael Kelsey (hadr-casc-V09-06-37)
872 --------------------------------------------------
873 - G4VCascadeDeexcitation: Disable collide() interface, with implementation
874   which throws exception when called.  Subclasses will use deExcite()
875   interface, with a const-reference, directly (creating a G4InuclNuclei only
876   if necessary).
877 
878 - G4CascadeDeexcitation:  Remove collide() interface.  Move code into
879   deExcite(), and create temporary G4InucleNuclei (with reusable buffer) as
880   needed.  Add verbosity setting function.
881 
882 - G4PreCompoundDeexcitation:  Remove collide() interface; code uses
883   G4Fragment directly via deExcite().
884 
885 - G4CascadeCheckBalance:  Add interface to take G4Fragment initial state.
886 
887 - G4CascadeColliderBase:  Change explosion() to take const-ref G4Fragment.
888   Use new CheckBalance(G4Fragment) interface in validateOutput().
889 
890 - G4EquilibriumEvaporator.hh:  Change explosion() call-through to take
891   const-ref G4Fragment.
892 
893 - G4InuclCollider.cc:  Use G4Fragment interface to de-excitation modules and
894   validateOutput().
895 
896 21 June 2013  Michael Kelsey (hadr-casc-V09-06-36)
897 --------------------------------------------------
898 - G4CascadeParameters:  Add new flag to perform internal conservation checks,
899   replacing compile-time G4CASCADE_CHECK_ECONS preprocessor directive.
900 
901 - G4CascadeParamMessenger:  Add macro commands for USE_3BODYMOM and CHECK_ECONS
902   parameter flags.
903 
904 - G4CascadeColliderBase:  Remove doConservationChecks flag.  Use run-time
905   flag (above) to conditionally instantiate CheckBalance, test pointer
906   before use.
907 
908 - G4EquilibriumEvaporator:  Remove turning-off of conservation checks after
909   fission.  Follows removal of flag from G4CascadeColliderBase.
910 
911 - GNUmakefile:  Remove G4CASCADE_CHECK_ECONS preprocessor directive.  Envvar
912   will be mapped to run-time parameter (above).
913 
914 20 June 2013  Michael Kelsey (hadr-casc-V09-06-35)
915 --------------------------------------------------
916 Address numerous Coverity warnings which have build up since November 2011.
917 No modifications to working code were required.
918 
919   G4BigBanger.hh      G4InuclCollider.hh
920   G4CascadeCheckBalance.hh  G4InuclNuclei.cc
921   G4CascadeColliderBase.hh  G4InuclParticle.cc
922   G4CascadeDeexcitation.hh  G4MultiBodyMomentumDist.hh
923   G4CascadeInterface.cc   G4NonEquilibriumEvaporator.hh
924   G4CascadeRecoilMaker.hh   G4NumIntTwoBodyAngDst.hh,.icc
925   G4ElementaryParticleCollider.hh G4ParamExpTwoBodyAngDst.icc
926   G4EquilibriumEvaporator.hh  G4PreCompoundDeexcitation.hh
927   G4EvaporationInuclCollider.hh G4TwoBodyAngularDist.hh
928   G4Fissioner.hh      G4VCascadeCollider.hh
929   G4GDecay3.cc      G4VCascadeDeexcitation.hh
930   G4IntraNucleiCascader.hh
931 
932 19 June 2013  Michael Kelsey (hadr-casc-V09-06-34)
933 --------------------------------------------------
934 - G4TwoBodyAngularDist.hh, G4MultiBodyMomentumDist.hh:  Replace use of
935   "theInstance" with calls to "GetInstance()" to ensure instantiation in MT
936   environment.
937 
938 19 June 2013  Michael Kelsey (hadr-casc-V09-06-33)
939 --------------------------------------------------
940 - G4TwoBodyAngularDist, G4MultiBodyMomentumDist:  Fix thread collisions
941   in MT operation by changing singleton instances from "static const" to
942   "static G4ThreadLocal" pointers.  GetInstance() instantiates the pointer
943   on first call (per thread).  C.f. G4CascadeChannelTables.
944 
945 19 June 2013  Alberto Ribon  (hadr-casc-V09-06-32)
946 --------------------------------------------------
947 - G4NucleiModel.cc: fixed rare cases of non-reproducibility in the
948   method generateParticleFate. The members current_nucl1 and
949   current_nucl2 were not properly initialized in the case that
950   the interaction-partners list has one single element.
951 
952 12 June 2013  Michael Kelsey (hadr-casc-V09-06-31)
953 --------------------------------------------------
954 Bug fix for validation problems seen leading up to 10.0-beta release.
955 
956 - G4NucleiModel.cc: Undo change to test "spath<=path" (V09-06-25); this
957   caused all tested nucleons to be accepted for interaction, incorrectly.
958   Replace with explicit test on "spath==0." to address at-rest particles.
959 
960 - G4CascadeFinalStateAlgorithm:  Split FillDirections() into separate
961   functions for three- and many-body states, to restore old algorithm.
962   Three body throws the _last_ particle's direction, then computes recoils,
963   while many-body throws the first N-2 directions.
964 
965 04 June 2013  Alberto Ribon (hadr-casc-V09-06-30)
966 -------------------------------------------------
967 - G4InuclNuclei.cc: Fix access to ions via the IonTable class.
968 
969 24 May 2013  Michael Kelsey (hadr-casc-V09-06-29)
970 -------------------------------------------------
971 - G4NucleiModel:  Continue trying to resolve FPE errors with inf and NaN.
972   Improve bounds checking on zone value passed to inverseMFP; move "large"
973   and "small" cutoffs to static const, set globally.
974 
975 23 May 2013  Michael Kelsey (hadr-casc-V09-06-28)
976 -------------------------------------------------
977 - G4NucleiModel.cc:  Fix initialization of dummy_convertor after setting
978   bullet and target momenta.  For stopped particle outside nucleus, reset
979   "zone" value to outermost zone (avoid out-of-bounds accesses).
980 
981 22 May 2013  Michael Kelsey (hadr-casc-V09-06-27)
982 -------------------------------------------------
983 - G4ElementaryParticleCollider.cc:  Add protection if N-body generator fails
984   after too many retries.  On Windows, out-of-bounds error was (correctly)
985   thrown.
986 
987 - G4ParticleLargerEkin.hh, G4ParticleLargerBeta.hh:  Change ">=" to ">" in
988   both cases, to avoid error in (extremely rare) case that both inputs are
989   identical.  With floats, this is a ~2^-64 probability, but a Windows test
990   job managed to catch it.
991 
992 21 May 2013  Michael Kelsey (hadr-casc-V09-06-26)
993 -------------------------------------------------
994 - sources.cmake:  Added G4PP2PPAngDst.
995 
996 20 May 2013  Dennis Wright
997 --------------------------
998 - added class G4PP2PPAngDst, which contains elastic pp and nn angular
999   distributions generated from numerically integrated SAID cross sections
1000   and pp scattering data.  Below 2.75 GeV SAID calculations were used with
1001   Coulomb interactions turned off.  Above 2.75 GeV pp scattering data is used.
1002 
1003   Files modified: G4TwoBodyAngularDist.hh, .cc
1004 
1005 11 May 2013  Michael Kelsey (hadr-casc-V09-06-25)
1006 -------------------------------------------------
1007 - G4NucleiModel.cc: Protections for at-rest particles (muon capture):  In
1008   choosePointAlongTraj() set phat=(0,0,1); in generateInteractionPartners()
1009   apply zero-path exit only for finite momentum.  Move choosePointAlongTraj
1010   up to initializeCascad(), rather than waiting for propagation.  Change
1011   tests on "spath < path" to <= so that at-rest particles still interact (in
1012   these cases, spath and path will both be zero).  Hide "zone 0 transition"
1013   message behind verbosity.
1014 
1015 - G4ElementaryParticleCollider.cc: Skip neutrinos silently in ::collide().
1016 
1017 10 May 2013  Michael Kelsey
1018 ---------------------------
1019 - G4NucleiModel.hh:  Protect getPotential() from leptons, by checking for
1020   ityp<0.
1021 
1022 9 May 2013  Michael Kelsey (hadr-casc-V09-06-24)
1023 ------------------------------------------------
1024 - G4CascadeFinalStateAlgorithm.cc: Fix bugs where two-body and three-body
1025   momentum vectors were not properly rotated before return; caused energy
1026   and momentum violations in hydrogen target cases.  Improvided diagnostic
1027   messages to match output from old G4EPCollider version.
1028 
1029 8 May 2013  Dennis Wright/Michael Kelsey
1030 ----------------------------------------
1031 Introduce muon-capture handling, with new particle types and three-body
1032 muon-dibaryon interactions.
1033 
1034 Modified files: G4InuclElementaryParticle.hh,.cc
1035     G4InuclParticleNames.hh
1036     G4CascadeChannelTables.cc
1037     G4CascadeInterface.cc
1038     G4ElementaryParticleCollider.hh,.cc
1039     G4NucleiModel.hh,.cc
1040     sources.cmake
1041 
1042 New files:  G4CascadeMuMinusPChannel.hh,.cc
1043     G4GDecay3.hh,.cc
1044 
1045 1 May 2013  Michael Kelsey (hadr-casc-V09-06-23)
1046 ------------------------------------------------
1047 - G4CascadeInterface:  Add static function Initialize() to create shared
1048   objects in master thread, to avoid cross-thread collisions.  Currently the
1049   final-state lookup tables and quasideuteron particles are created.
1050 
1051 - G4Dineutron, G4Diproton, G4UnboundPN:  Remove "G4ThreadLocal" from static
1052   pointer, to make it shared across threads.  Modify initialization to get
1053   G4ParticleTable "readiness" flag, and restore saved value.
1054 
1055 22 April 2013  Michael Kelsey (hadr-casc-V09-06-22)
1056 ---------------------------------------------------
1057 - G4CascadeChannelTables:  Convert to thread-local singletons, to avoid
1058   thread collisions inside "fillSigmaBuffer()" calls within tables (since
1059   that mutable vector is shared across all threads).
1060 
1061 22 April 2013  Michael Kelsey (hadr-casc-V09-06-21)
1062 ---------------------------------------------------
1063 NOTE:  Requires hadr-mod-util-V09-06-04.
1064 
1065 - G4ElementaryParticleCollider:  Replace all kinematics generation, except
1066   for pion-dibaryon absorption, with G4CascadeFinalStateGenerator.  Simplify
1067   ::collide(), eliminating nested if-blocks, moving replicated code outside
1068   of if-blocks, adding returns on failure tests.
1069 
1070 22 April 2013  Michael Kelsey (hadr-casc-V09-06-20)
1071 ---------------------------------------------------
1072 NOTE:  Requires hadr-mod-util-V09-06-04.
1073 
1074 New interface for momentum and angular distribution generators, subclasses
1075 of (new) models/util/G4VHadDecayAlgorithm.  These are intended to be
1076 "temporary" implementations, reproducing G4ElementaryParticleCollider
1077 behaviour.  G4EPCollider will be migrated to use GENBOD or another true
1078 phase-space generator.
1079 
1080 - G4CascadeFinalStateGenerator: Subclass of G4HadDecayGenerator, which
1081   provides a "Configure" function to take Bertini-specific inputs (bullet,
1082   target, and list of particle types) to set up distributions.
1083 
1084 - G4CascadeFinalStateAlgorithm: Subclass of G4VHadDecayAlgorithm, used by
1085   G4CascadeFSGenerator to reproduce G4EPCollider kinematics.  Momentum
1086   moduli are generated separately from angular distributions, then merged
1087   together and tested for consistency.
1088 
1089 - G4VThreeBodyAngDst.hh:  Subclass of G4VTwoBodyAngDst, which provides
1090   interface to generate polar angle for hN -> XYZ or NN -> XYZ states,
1091   currently handled internally to G4EPCollider.
1092 
1093 - G4InuclParamAngDst:  Subclass of G4VThreeBodyAngDst which implements the
1094   parametrized "abn[2][4][4]" arrays in G4EPCollider.  This is exactly
1095   analogous to the recently introduced G4InuclParamMomDst.
1096 
1097 - G4HadNucl3BodyAngDst:  Instance of G4InuclParamAngDst for (h,Y,g)N -> XYZ
1098   interactions.
1099 
1100 - G4NuclNucl3BodyAngDst:  Instance of G4InuclParamAngDst for N N -> XYZ
1101   interactions.
1102 
1103 - G4TwoBodyAngularDist:  Add interface to access three-body distributions.
1104 
1105 - sources.cmake:  Add all new source files to lists.
1106 
1107 22 April 2013  Michael Kelsey (hadr-casc-V09-06-19)
1108 ---------------------------------------------------
1109 Minor code cleanup before deploying some major revisions.
1110 
1111 - G4CascadeCoalescence:  Replace _TLS_ local variable with mutable data member.
1112 
1113 - G4NucleiModel.cc:  Reduce number of scoping levels by adding exit returns
1114   at strategic points.
1115 
1116 - G4VTwoBodyAngDst.hh:  Remove unnecessary #include <vector>.
1117 
1118 21 March 2013  Dennis Wright  (hadr-casc-V09-06-18)
1119 ---------------------------------------------------
1120 - sources.cmake:  Add new G4NP2NPAngDst class.
1121 
1122 21 March 2013  Dennis Wright  (hadr-casc-V09-06-17)
1123 ---------------------------------------------------
1124 - created class G4NP2NPAngDst to handle np and pn elastic scattering
1125   by sampling histograms taken directly from data
1126 - added above class to G4TwoBodyAngularDist, replacing old np, pn
1127   sampling
1128 
1129 14 March 2013  Michael Kelsey (hadr-casc-V09-06-16)
1130 ---------------------------------------------------
1131 - G4CascadeCoalescence.cc, G4InuclSpecialFunctions.cc, G4NucleiModel.cc:
1132   Undo some of the changes made in hadr-casc-V09-06-01 (29 Jan 2013) per
1133   recent guidance from Andrea.  Specifically, TLS pointers cannot be
1134   initialized with "new", but must be initialized null, then instantiated
1135   with an if-block.
1136 
1137 - G4InuclNuclei.cc:  Replace TLS local variable in makeNuclearFragment()
1138   (static function) with a file-scoped non-const static map.  Incorporate
1139   thread-locking (mutex) around all accesses to the shared map, since STL is
1140   inherently not thread safe.
1141 
1142 11 March 2013  Michael Kelsey (hadr-casc-V09-06-15)
1143 ---------------------------------------------------
1144 - G4HadNucl4BodyMomDst.cc:  Fix comment describing function as ">= 4-body".
1145 
1146 - G4MultiBodyMomentumDist.cc:  Use envvar (G4CASCADE_USE_3BODYMOM) to enable
1147   separate 3-body momentum generators.
1148 
1149 - G4CascadeParameters:  Add G4CASCADE_USE_3BODYMOM envvar.
1150 
1151 - G4InuclSpecialFunctions:  Add new "randomInuclPowers()" function to
1152   compute power expansion of random value for momentum and cos(theta)
1153   distributions.
1154 
1155 - G4ElementaryParticleCollider.cc:  Move INUCL-style calculation (powers of
1156   Ekin and random S) to G4InuclSpecialFunctions.
1157 
1158 - G4InuclParamMomDst.cc:  Move INUCL-style calculation (powers of
1159   Ekin and random S) to G4InuclSpecialFunctions.
1160 
1161 8 March 2013  Michael Kelsey
1162 ----------------------------
1163 - G4VMultiBodyMomDst.hh, G4VTwoBodyAngDst.hh:  Add GetName() function to
1164   return name string, for use with diagnostic utilities.
1165 
1166 Add SVN use of 'Id' keyword to all new source files.
1167 
1168 7 March 2013  Michael Kelsey (hadr-casc-V09-06-14)
1169 --------------------------------------------------
1170 Introduce multi-body final state momentum distribution classes and factory,
1171 modelled on the two-body angular distribution system.  Leaf classes
1172 implement functionality of G4EPCollider::getMomModuleFor2toMany(), split by
1173 initial state and multiplicity.
1174 
1175 - G4VMultiBodyMomDst:  Abstract base class for all multi-body final state
1176   momentum generators.  Subclasses may cover one or several categories.
1177 
1178 - G4InuclParamMomDst:  Intermediate base class implementing parametrization
1179   in G4EPCollider, derived from original INUCL Fortran code, with power
1180   expansions in Ekin and random fraction.  Subclasses provide coeffient
1181   arrays for specific initial state and multiplicity, with subarrays for
1182   different final-state particles.
1183 
1184 - G4NuclNucl3BodyDst:  Leaf class for pp,pn,nn 3-body final state from INUCL.
1185 - G4NuclNucl4BodyDst:  Leaf class for pp,pn,nn >= 4-body final state from INUCL.
1186 - G4HadNucl3BodyDst:  Leaf class for Xp,Xn 3-body final state from INUCL.
1187 - G4HadNucl4BodyDst:  Leaf class for Xp,Xn >= 4-body final state from INUCL.
1188 
1189 - G4MultiBodyMomentumDist:  Factory class to select individual generators
1190   above from initial-state code and multiplicity.
1191 
1192 - G4ElementaryParticleCollider.cc:  Replace getMomModuleFor2toMany() with
1193   call to G4MultiBodyMomentumDist factory and constituent generators.
1194 
1195 7 March 2013  Michael Kelsey
1196 ----------------------------
1197 - G4ElementaryParticleCollider: Reverse order of indices for rmn[][][] array
1198   used for multibody momentum selection, and abn[][][] used for three-body
1199   angular distribution.  This allows direct grouping by initial state, so
1200   functionality can be refactored later.
1201 
1202 6 March 2013  Michael Kelsey
1203 ----------------------------
1204 - G4CascadeChannelTables:  Implement global Print() function which dumps all
1205   tables registered in map.
1206 
1207 - G4ElementaryParticleCollider:  Remove printFinalStateTables() function,
1208   do work directly in G4CascadeChannelTables.  Replace numeric values of
1209   particle-type checks with enums.  Add detailed comments explaining array
1210   indices for momentum arrays.
1211 
1212 6 March 2013  Michael Kelsey (hadr-casc-V09-06-13)
1213 --------------------------------------------------
1214 Remove obsolete directories evaporation/ and utils/.
1215 
1216 - GNUmakefile, CMakeLists.txt:  Remove references to obsolete
1217   subdirectories and their corresponding libraries.
1218 
1219 NOTE:  This tag requires changes at the top level of processes/CMakeLists.txt
1220        and must not be used independently of those changes.
1221 
1222 6 March 2013  Michael Kelsey (hadr-casc-V09-06-12)
1223 --------------------------------------------------
1224 - G4CascadeHistory.cc:  Cast calls to "getCharge()" to G4int to avoid
1225   compiler warnings.
1226 
1227 5 March 2013  Michael Kelsey (hadr-casc-V09-06-10, -11)
1228 --------------------------------------------------
1229 - G4CascadeHistory:  Support "reabsorbed" cascade particles (excitons and
1230   trapped decays) using "-1 daughters" as a flag.  Add heading with legend
1231   to output.
1232 
1233 - G4IntraNucleiCascader.cc:  Add exciton and trapped-decay info to history.
1234   Move history reporting outside of "itry" loops (only shows final version).
1235 
1236 4 March 2013  Michael Kelsey (hadr-casc-V09-06-09)
1237 --------------------------------------------------
1238 - G4CascadeHistory:  NEW container class to collect all secondaries, along
1239   with generated daughters, and report cascade structure hierarchically.
1240 
1241 - G4CascadParticle:  Add new index data member for use with G4CascadeHistory.
1242 
1243 - G4CascadeParameters:  Add new G4CASCADE_SHOW_HISTORY envvar to activate
1244   use of G4CascadeHistory.
1245 
1246 - G4CascadeParamMessenger:  Add macro command for G4CASCADE_SHOW_HISTORY.
1247 
1248 - G4IntraNucleiCascader:  Add option G4CascadeHistory data member, created
1249   and used only if G4CASCADE_SHOW_HISTORY envvar is set.
1250 
1251 - sources.cmake:  Add G4CascadeHistory.hh and .cc.
1252 
1253 3 March 2013  Michael Kelsey (hadr-casc-V09-06-08)
1254 --------------------------------------------------
1255 Re-tag with subdirectories "utils" and "evaporation" (excluded by mistake).
1256 
1257 2 March 2013  Michael Kelsey (hadr-casc-V09-06-07)
1258 --------------------------------------------------
1259 - G4NucleiModel:  Encapsulate forcing decision in forceFirst() function,
1260   apply to photons only, not hadrons.
1261 
1262 27 February 2013  Michael Kelsey (hadr-casc-V09-06-06)
1263 ------------------------------------------------------
1264 - G4NucleiModel:  Modify choosePointAlongTraj() to use mean free path to
1265   bias point selection non-uniformly in each zone.  Make member functions
1266   protected (instead of private) to allow external testing.
1267 
1268 - G4BarashenkovTwoBodyAngDst: RENAME to G4ParamExpTwoBodyAngDst; previous
1269   name was a misattribution.
1270 
1271 - sources.cmake:  Follow renaming above.
1272 
1273 - G4GammaNuclAngDst, G4HadNElastic1AngDst, G4HadNElastic2AngDst,
1274   G4NuclNuclAngDst, G4PiNInelasticAngDst:  Follow renaming of base class.
1275 
1276 25 February 2013  Michael Kelsey
1277 --------------------------------
1278 - G4RegionModel, G4BertiniElasticCollision, G4BertiniHydrogenCollision:
1279   REMOVE obsolete, unused code.
1280 
1281 - sources.cmake:  Remove obsolete code above.
1282 
1283 23 February 2013  Michael Kelsey (hadr-casc-V09-06-05)
1284 ------------------------------------------------------
1285 - G4NucleiModel.cc: Spurious character got into .cc file during save/commit.
1286 
1287 23 February 2013  Michael Kelsey (hadr-casc-V09-06-04)
1288 ------------------------------------------------------
1289 - G4NucleiModel.cc: Fix zone-density weighting in choosePointAlongTraj.  Now
1290   done correctly, if not with optimal code efficiency: more points will be
1291   chosen in core of nucleus than in outer shell.  Work needed to reduce
1292   vector arithmetic, move std:vector<>'s out to class data members, etc.
1293 
1294 21 February 2013  Michael Kelsey
1295 --------------------------------
1296 - G4VTwoBodyAngDst: Bug fix: Data member "theName" should be a local copy of
1297   the ctor input string, not a reference to it.  When literals are passed
1298   in, a _temporary_ object is created for the ctor which then goes out of
1299   scope, leaving an undefined reference behind.  This causes segfaults when
1300   running with verbosity.
1301 
1302 - G4CascadParticle:  Move ctor body to .cc file, use global envvar to set
1303   initial verbosity (no other code changes verbosity of cparticles).
1304 
1305 - G4NucleiModel:  Add function to select random point along particle's
1306   trajectory, use with incident photons at initial step to nucleus.
1307   Selection is weighted by average nucleon density in each zone.  Code uses
1308   mutliple local G4ThreeVector and std::vector buffers, which need to be
1309   made class members or static-local to reduce memory churn.
1310 
1311 21 February 2013  Michael Kelsey (hadr-casc-V09-06-03)
1312 ------------------------------------------------------
1313 - G4TwoBodyAngularDist:  NEW Factory singleton containing all of the
1314   angular-distribution generators created below.  Code from G4EPCollider to
1315   choose generator based on initial and final states moved here, accessed
1316   through static function.
1317 
1318 - G4ElementaryParticleCollider:  Angular distribution generators moved to
1319   new singleton factory.  Access to factory is through a static function, so
1320   it can be shared across MT threads.
1321 
1322 20 February 2013  Michael Kelsey
1323 --------------------------------
1324 - G4VTwoBodyAngDst:  Add Id string.
1325 
1326 - G4NumIntTwoBodyAngDst:  Convert to templated, using array dimensions as
1327   template arguments (c.f. G4CascadeSampler).  Pass references to C-style
1328   arrays as ctor arguments, use to initialize C-style array const
1329   references.  Add local C-style array as reuable buffer for interpolation.
1330   Add Id string.  Move .cc file to .icc, referenced from .hh, as required
1331   for template instantiation.
1332 
1333 - G4GamP2NPipAngDst, G4GamP2PPi0AngDst: Follow change of base to templated
1334   form, passing arrays as base ctor args, move array initializations to
1335   namespace with "static const".  Add Id string.
1336 
1337 Extract parametrized two-body angular distribution code from
1338 G4ElementaryParticleCollider to new subclasses of G4VTwoBodyAngDst.  These
1339 subclasses will likely be replaced over time with numerically-integrated
1340 CDFs as above.
1341 
1342 - G4BarashenkovTwoBodyAngDst:  Templated base class for double-exponential
1343   two-body parametrizations, extracted from G4EPCollider.
1344 
1345 - G4GammaNuclAngDst, G4NuclNuclAngDst, G4PiNInelasticAngDst,
1346   G4HadNElastic1AngDst, G4HadNElastic2AngDst: Sublcasses of
1347   G4BarashenkovTwoBodyAngDst, with parameter arrays and energy bins
1348   extracted G4EPCollider.
1349 
1350 - sources.cmake:  Follow filename changes to G4NumIntTwoBodyAngDst.cc -> .icc,
1351   add new parametrized angular distribution classes.
1352 
1353 31 January 2013  Dennis Wright (hadr-casc-V09-06-02)
1354 ----------------------------------------------------
1355 Add detailed two-body final state angular distributions for (gamma,p) and
1356 (gamma,n) reactions, using tables of numerical integrals to sample cos(theta)
1357 
1358 - created base classes G4VTwoBodyAngDst and G4NumIntTwoBodyAngDst, and concrete
1359   classes G4GamP2NPipAngDst and G4GamP2PPi0AngDst to hold the tables
1360 
1361 - added these channels to G4ElementaryParticleCollider::
1362 
1363 - added new cross section data to G4CascadeT1GamNChannel
1364 
1365 29 January 2013  Michael Kelsey (hadr-casc-V09-06-01)
1366 -----------------------------------------------------
1367 In consultation with Andrea Dotti, revert or modify many of the automatic
1368 code changes (below) for improved MT performance.
1369 
1370 - G4Cascade*Channel.hh,cc:  Restore "static const" declarations of all final
1371   state arrays, eliminate use of "initialize()" function.  In all of the .hh
1372   files, declare "static const data_t data;" to allow sharing across threads.
1373 
1374 - G4CascadeFunctions.hh,cc:  Restore DATA::data as simple object, not
1375   pointer.
1376 
1377 - G4NucleiModel.hh,cc:  Move function-static arrays and interpolator for
1378   gamma-quasideuteron cross sections to be class members with file-scope
1379   initialization.  Eliminates need to use TLS pointers.
1380 
1381 - G4Fissioner.hh,cc:  Make two-element std::vector for nuclear fragments
1382   class data member; use G4InuclNuclei::fill() to change contents.
1383 
1384 - G4InuclSpecialFunctions.cc, G4CascadeCoalescence.cc: Collapse TLS pointer
1385   initializtion to eliminate unncessary if-blocks.
1386 
1387 - G4EquilibriumEvaporator.hh,cc, G4ElementaryParticleCollider.hh,cc: Move
1388   function-static interpolators and arrays to be class members with
1389   file-scope initialization.  Eliminates need to use TLS pointers.
1390 
1391 25 January 2013  Andrea Dotti et al.
1392 ------------------------------------
1393 Apply automatic conversion to all code for Geant4-MT thread-safe operation.
1394 
1395 20 December 2012  Michael Kelsey
1396 --------------------------------
1397 - G4ElementaryParticleCollider.cc:  Add Omega tables to printout function,
1398   remove line referring to gamma-N as "preliminary."
1399 
1400 06 December 2012  Michael Kelsey (hadr-casc-V09-06-00)
1401 ------------------------------------------------------
1402 - G4IntraNucleiCascader.cc:  For rescattering, set generation number of
1403   new secondaries to '1' instead of '0' (so they aren't identified as
1404   projectiles).
1405 
1406 - G4NucleiModel.cc:  In generateParticleFate() set generation number of
1407   interaction daughters to one more than the parent secondary.  Eliminate
1408   complex isProjectile() code in favor of checking for generation==0.
1409 
1410 20 October 2012  Michael Kelsey (hadr-casc-V09-05-26)
1411 -----------------------------------------------------
1412 - G4CascadePPChannel.cc, G4CascadeNNChannel.cc, G4CascadeNPChannel.cc:  For
1413   continuous low-energy functions, add cutoff in K.E. to match zero-energy
1414   cross-section value, and avoid divide-by-zero divergence.
1415 
1416 19 October 2012  Dennis Wright
1417 ------------------------------
1418 - for classes G4CascadePPChannel, G4CascadeNNChannel, G4CascadeNPChannel
1419   use Stepanov's functions to fill in total and elastic cross section arrays
1420   at all energy bins from 10 to 320 MeV inclusive.  Below 10 MeV use
1421   Stepanov's continuous functions to generate cross section.
1422 
1423 15 October 2012  Dennis Wright (hadr-casc-V09-05-25)
1424 ----------------------------------------------------
1425 - replace SAID cross sections with in-medium cross sections of
1426   Li & Machleidt for incident energies below 420 MeV.  Classes
1427   changed: G4CascadePPChannel, G4CascadeNNChannel, G4CascadeNPChannel.
1428 - method findCrossSection removed from G4CascadePPChannel and G4CascadeNPChannel
1429   since no Coulomb is included in L&M cross sections
1430 
1431 9 October 2012 Michael Kelsey (hadr-casc-V09-05-24)
1432 ---------------------------------------------------
1433 - G4ExitonConfiguration: Add empty() function to test exciton state, reduce
1434   printout to single line.
1435 
1436 - G4InuclNuclei.cc:  Report non-empty exciton configuration in print().
1437 
1438 - G4NonEquilibriumEvaporator.cc:  Add additional diagnostic messages.
1439 
1440 - G4EquilibriumEvaporator.cc:  Add additional diagnostic messages.
1441 
1442 - G4CascadeCollisionOutput:  Add calculations of net strangeness.
1443 
1444 - G4CascadeCheckBalance:  Add reporting of strangeness conservation (but do
1445   not require validation).
1446 
1447 1 October 2012 Michael Kelsey (hadr-casc-V09-05-23)
1448 ---------------------------------------------------
1449 - sources.cmake:  Add G4CascadeOmegaMinus*Channel.hh and .cc.
1450 
1451 1 October 2012 Dennis Wright, M. Kelsey (hadr-casc-V09-05-22)
1452 -------------------------------------------------------------
1453 - G4CascadeChannelTables.cc: Add "om*pro" and "om*neu" to LoadTables.
1454 
1455 - create classes G4CascadeOmegaMinusPChannel and G4CascadeOmegaMinusNChannel
1456   containing partial cross sections for omega- p and omega- n reactions
1457 
1458 25 September 2012 Gabriele Cosmo (hadr-casc-V09-05-21)
1459 ------------------------------------------------------
1460 - Explicitly use inclusion of headers for system of units and physical
1461   constants, in plan to remove implicit inclusion from globals.hh.
1462 
1463 18 September 2012 Michael Kelsey (hadr-casc-V09-05-20)
1464 ------------------------------------------------------
1465 - G4CascadeParamMessenger.cc:  Fix complier warning from ctor initializers.
1466 
1467 13 September 2012 Michael Kelsey (hadr-casc-V09-05-19)
1468 ------------------------------------------------------
1469 - G4CascadeParamMessenger:  NEW class to define UI macro commands for
1470   setting the G4CascadeParameters (string) values, as an alternative to
1471   environment variables.
1472 
1473 - G4CascadeParameters:  Add new G4CascadeParamMessenger (with friendship)
1474   to fill envvar-mapped parameters (const char*) from UI interface.
1475 
1476 - sources.cmake:  Add G4CascadeParamMessenger.hh,cc, add dependences on
1477   G4intercoms (libraries and include dirs).
1478 
1479 - GNUmakefile:  Add -I.../intercoms/include.
1480 
1481 9 September 2012 Michael Kelsey (hadr-casc-V09-05-18)
1482 -----------------------------------------------------
1483 - G4CascadePPChannel.hh, G4CascadeNPChannel.hh: Replace 'typedef' with
1484   subclass of templated base.  Declare overridden findCrossSection()
1485   function.
1486 
1487 - G4CascadePPChannel.cc, G4CascadeNPChannel.cc: Implement overrrided
1488   findCrossSection() function to apply analytic (parametrized) function for
1489   very low energy projectiles, falling back to base interpolation otherwise.
1490 
1491 7 September 2012 Michael Kelsey (hadr-casc-V09-05-17)
1492 -----------------------------------------------------
1493 - sources.cmake:  Forgot to change list of source files to match renaming.
1494 
1495 4 September 2012 Michael Kelsey (hadr-casc-V09-05-16)
1496 -----------------------------------------------------
1497 Per Dennis, rename all three nucleon-nucleon channel files to remove the
1498 isospin designation.  Files now match corresponding .hh files:
1499 
1500   G4CascadeT1ppChannel.cc -> G4CascadePPChannel.cc
1501   G4CascadeT1nnChannel.cc -> G4CascadeNNChannel.cc
1502   G4CascadeT0npChannel.cc -> G4CascadeNPChannel.cc
1503 
1504 4 September 2012 Michael Kelsey
1505 -------------------------------
1506 - G4CascadeT0npChannel.cc:  Fix misplaced semicolon in exclusive xsec list.
1507 
1508 3 September 2012 Dennis Wright
1509 ------------------------------
1510 - G4CascadeT1ppChannel.cc, G4CascadeT1nnChannel.cc, G4CascadeT0npChannel.cc:
1511   Use SAID calculations for total and elastic cross-sections up to 320 MeV.
1512 
1513 31 August 2012 Michael Kelsey
1514 -----------------------------
1515 - G4CascadeT1NNChannel.cc:  REMOVE.  Split into separate pp and nn files.
1516 - G4CascadeT1ppChannel.cc:  NEW.  Only proton-proton part of T1NNChannel.
1517 - G4CascadeT1nnChannel.cc:  NEW.  Only neutron-neutron part of T1NNChannel.
1518 - sources.cmake:  Remove T1NNChannel, add T1ppChannel and T1nnChannel.
1519 
1520 22 August 2012 Michael Kelsey (hadr-casc-V09-05-15)
1521 ---------------------------------------------------
1522 Consolidate all user-configurable environment variables into singleton
1523 container class, instead of having them local to the code which uses them.
1524 This will provide a way to query and report on values in a consistent way.
1525 
1526 - G4CascadeParameters:  NEW singleton container class to hold and evaluate
1527   any user-configured environment variables.  Default values for parameters
1528   are provided, with code moved from original locations (see below).  Three
1529   new envvars are also defined:
1530 
1531   G4CASCADE_VERBOSE
1532   Pre-set verbosity in G4CascadeInterface constructor,
1533   passes down to all constituent modules.
1534 
1535   G4CASCADE_USE_PRECOMPOUND
1536   Select use of PreCompoundModel in G4CascadeInterface constructor.
1537 
1538   G4NUCMODEL_USE_BEST
1539   Pre-set all defaults for nuclear model with physical units.
1540 
1541 - G4CascadeInterface.hh: Add new function for dumping configuration.
1542 
1543 - G4CascadeInterface.cc: Replace environment variable usage with calls to
1544   G4CascadeParameters.  Add pre-setting of verbosity and PreCompoundModel.
1545   Implement configuration dump as call-through to G4CascadeParameters.
1546 
1547 - G4CascadeCoalescence.cc: Replace environment variable usage with calls to
1548   G4CascadeParameters.
1549 
1550 - G4IntraNucleiCascader.cc: Replace environment variable usage with calls to
1551   G4CascadeParameters.
1552 
1553 - G4NucleiModel.cc: Replace environment variable usage with calls to
1554   G4CascadeParameters.
1555 
1556 - sources.cmake: Add G4CascadeParameters.hh,.cc.
1557 
1558 -----
1559 NOTE:  Tag hadr-casc-V09-05-14 and changes to G4CascadeInterface.cc were
1560        lost due to SVN repository incident.
1561 -----
1562 
1563 3 July 2012 Michael Kelsey (hadr-casc-V09-05-13)
1564 ------------------------------------------------
1565 - G4CascadeCoalescence.cc:  Bug fix: list of clusters already tried was not
1566   cleared at start of new event, so entries from previous events prevented
1567   formation of valid clusters.  Also improve diagnostic messages somewhat.
1568 
1569 8 June 2012 Michael Kelsey (hadr-casc-V09-05-12)
1570 ------------------------------------------------
1571 Address compiler warnings about variable-shadowing (local variable has same
1572 name as data member or global variable) which appear when "-Wshadow" is used.
1573 
1574   G4InuclSpecialFunctions.hh
1575   G4CascadeSampler.icc
1576   G4CascadeData.icc
1577   G4InuclElementaryParticle.hh
1578   G4InuclEvaporation.cc
1579   G4EquilibriumEvaporator.cc
1580   G4InuclElementaryParticle.cc
1581   G4NonEquilibriumEvaporator.cc
1582   G4NucleiModel.cc
1583   G4CascadeInterface.cc
1584   G4InuclSpecialFunctions.cc
1585   G4ElementaryParticleCollider.cc
1586   G4BigBanger.cc
1587   (evaporation) G4BENeutronChannel.cc
1588   (evaporation) G4BEChargedChannel.cc
1589   (evaporation) G4BertiniEvaporationChannel.cc
1590 
1591 25 May 2012 Michael Kelsey (hadr-casc-V09-05-11)
1592 ------------------------------------------------
1593 - G4Dineutron.cc, G4Diproton.cc, G4UnboundPN.cc:  Add code to protect
1594   against warning messages from G4ParticleTable::Remove(), introduced with
1595   particles-V09-05-03.
1596 
1597 - G4CascadeCheckBalance.cc:  Lower verbosity level for energy-conservation
1598   reports, change violation rules to allow relative OR absolute passing,
1599   consistent with new process-level checks.
1600 
1601 - G4CascadeInterface.cc:  Check for small negative projectile energy and
1602   force to zero, to protect against occasional G4HadFinalState exceptions.
1603 
1604 23 May 2012 Michael Kelsey (hadr-casc-V09-05-10)
1605 ------------------------------------------------
1606 - G4CascadeInterface:  Add local implementation of IsApplicable(), both the
1607   base class (track,nucleus) and one using G4ParticleDefinition.  Returns
1608   true only if interaction tables are defined for projectile.
1609 
1610 21 May 2012 Alberto Ribon (hadr-casc-V09-05-09)
1611 -----------------------------------------------
1612 - G4IntraNucleiCascader.cc:  Specify mass when decay trapped particle.
1613   This fixes reproducibility violations when hyperons are forced to
1614   decay inside the nucleus.
1615 
1616 17 May 2012 Alberto Ribon (hadr-casc-V09-05-08)
1617 -----------------------------------------------
1618 - G4Fissioner.cc:  Removed static in local vectors AL1 and BET1 in the
1619   method G4Fissioner::collide, to ensure reproducibility.
1620 
1621 4 April 2012  Michael Kelsey (hadr-casc-V09-05-07)
1622 --------------------------------------------------
1623 - G4CascadeCoalescence.cc:  Use std::ostream_iterator<size_t> to report
1624   cluster indices, to avoid compiler warning.
1625 
1626 21 March 2012  Michael Kelsey (hadr-casc-V09-05-06)
1627 ---------------------------------------------------
1628 - G4NucleiModel.cc:  Add check in isProjectile() for single-zone nuclei, and
1629   ignore "movingInward" flag in that case.
1630 
1631 20 March 2012  Michael Kelsey (hadr-casc-V09-05-05)
1632 ---------------------------------------------------
1633 - G4NucleiModel.cc:  Fill zone_volumes buffer for single-zone case.
1634 
1635 14 March 2012  Michael Kelsey
1636 -----------------------------
1637 - test/: Tagged all existing, obsolete code as "OLD_Validation_Suite" for
1638   future recovery if desired.  Remove all code and files from active use, to
1639   be replaced with our separate "ppi4GeV" utility program, suitably renamed.
1640 
1641 9 March 2012  Michael Kelsey
1642 ----------------------------
1643 - G4CascadeSigmaMinusPChannel.cc: Change zero-bin cross-sections for
1644   Lambda-n and Sigma0-n, based on data from M. Goossens et al. measurements
1645   of Sigma- capture (per J. Yarba).
1646 
1647 - G4NucleiModel.cc:  Add scale factor, set via envvar, for gamma absorption.
1648 
1649 8 March 2012  Michael Kelsey
1650 ----------------------------
1651 - G4NucleiModel.cc:  In absorptionCrossSection() add binned spectrum derived
1652   from Mikhail Kossov's gamma-D absorption data, for use with photons.
1653 
1654 - G4ElementaryParticleCollider.cc:  Modify sanity checks on dibaryon targets
1655   to allow both photons and gamma to interact; gammas split the dibaryons
1656   the same way pi0's do.
1657 
1658 7 March 2012  Michael Kelsey
1659 ----------------------------
1660 - G4NucleiModel: In generateInteractionPartners() and
1661   absorptionCrossSection(), allow photons to be absorbed via dibaryon
1662   (quasideuteron) excitation.  Simplify and encapsulate path-length
1663   computations in generateInteractionPartners(), with several new internal
1664   functions, and a buffer to store the zone-by-zone shell volumes.
1665 
1666 5 March 2012  Michael Kelsey
1667 ----------------------------
1668 - G4CascadParticle.hh:  Add public accessor for cumulative path length.
1669 
1670 - G4NucleiModel.cc:  In generateInteractionPartners(), check to see if
1671   CParticle is incident projectile (inbound from outside nucleus, not
1672   created in outer zone).  If so, force interaction to be attempted rather
1673   than cutting on mean free path.
1674 
1675 - G4CascadeKminusPChannel.cc:  Modify two-body cross-section values in
1676   zero-energy bin, to reflect stopping data from Julia Yarba.
1677 
1678 25 January 2012  Michael Kelsey (hadr-casc-V09-05-04)
1679 -----------------------------------------------------
1680 - G4CascadeInterface.cc: Check for no-interaction in retryInelasticProton,
1681   both in return value and in debugging report.
1682 
1683 25 January 2012  Michael Kelsey (hadr-casc-V09-05-03)
1684 -----------------------------------------------------
1685 - G4NucleiModel.hh:  In getPotential() add test for ip==9 (photon) to return
1686   zero potential.  Otherwise it will return the 7 MeV flat pion potential,
1687   which is not correct.
1688 
1689 20 January 2012  Vladimir Ivantchenko (hadr-casc-V09-05-02)
1690 -----------------------------------------------------------
1691 - G4PreCompoundDeexcitation.cc: Do not delete pre-compound model and excitation
1692   handler to avoid double deletion
1693 
1694  6 January 2012  Dennis Wright (hadr-casc-V09-05-01)
1695 ----------------------------------------------------
1696 - G4ElementaryParticleCollider.cc:  add angular distributions for elastic and
1697   inelastic 2-body final states of gamma p and gamma n reactions.
1698 
1699 19 December 2011  Michael Kelsey (hadr-casc-V09-05-00)
1700 ------------------------------------------------------
1701 - G4ElementaryParticle.cc:  Expand diagnostics in getMomModuleFor2toMany(),
1702   in generateSCMfinalState(), defer "particles.resize()" action until after
1703   final-state properties have been validated.  In case no final state can be
1704   generated, this ensures that the failure propagates back up the calling
1705   chain, instead of simply looping forever.
1706 
1707 - G4NucleiModel.cc:  If G4ElementaryParticle::collide() returns empty
1708   output, stop propagating.
1709 
1710 7 November 2011  Michael Kelsey (hadr-casc-V09-04-41)
1711 -----------------------------------------------------
1712 - G4NucleiModel.cc:  Due to some validation discrepancies, revert structure
1713   parameters to old non-physical values.
1714 
1715 - G4ElementaryParticleCollider.cc:  In sampleCMmomentumFor2to2(), hide
1716   message about unrecognized initial-state behind verbosity flag.
1717 
1718 3 November 2011  Dennis Wright  (hadr-casc-V09-04-40)
1719 -----------------------------------------------------
1720 - G4CascadeInterface.hh, .cc: switch from Description() to ModelDescription()
1721 
1722 27 October 2011  Gabriele Cosmo (hadr-casc-V09-04-39)
1723 -----------------------------------------------------
1724 - Added workaround to use 'this' pointer for internal calls in
1725   G4CascadeFunctions.hh/.icc, to allow for compilation on Xcode on MacOX Lion.
1726 
1727 18 October 2011  Michael Kelsey (hadr-casc-V09-04-38)
1728 -----------------------------------------------------
1729 - G4CascadParticle.cc:  In getPathToTheNextZone(), check for zero momentum
1730   (pp < 1e-9) and return zero path-length; this will support capture at rest.
1731 
1732 - G4NucleiModel.cc:  Change kaon potential to be positive, not negative, so
1733   slow kaons will occasionally be captured.
1734 
1735 7 October 2011  Dennis Wright, Michael Kelsey
1736 ---------------------------------------------
1737 - sources.cmake:  Add new channel files below.
1738 
1739 - G4CascadeGamNChannel.hh, G4CascadeGamPChannel.hh, G4CascadeT1GamNChannel.cc:
1740   NEW final state tables for gamma-nucleon interactions, with final states
1741   up to 9-body, using the same energy binning as pion-nucleon.
1742 
1743 - G4CascadeChannelTables.cc:  Add new gamma-nucleon interaction states to
1744   LoadTable() switch block.
1745 
1746 - G4ElementaryParticleCollider.cc:  Add printing of gamma-nucleon tables.
1747 
1748 - G4EquilibriumEvaporator.cc:  Replace hardwired particle codes with enums.
1749 
1750 - G4InuclParticleNames.hh:  Change photon code to '9', to avoid initial
1751   state conflict between piMinus-n (= 5*2 = 10) and gamma-p (= 10*1 = 10).
1752 
1753 4 October 2011  Michael Kelsey (hadr-casc-V09-04-37)
1754 ----------------------------------------------------
1755 - G4IntraNucleiCascader.cc, G4ElementaryParticleCollider.cc,
1756   G4InuclCollider.cc:  Prepare for gamma-N interactions by checking for
1757   existence of final-state tables, rather than for "isPhoton()".
1758 
1759 28 September 2011  Michael Kelsey (hadr-casc-V09-04-36)
1760 -------------------------------------------------------
1761 - evaporation/src/G4BertiniEvaporation.cc: Migrate to integer A&Z.  This
1762   code is moribund; migration is to avoid compilation errors.
1763 
1764 27 September 2011  Michael Kelsey (hadr-casc-V09-04-35)
1765 -------------------------------------------------------
1766 - G4CascadeCoalescence.cc: BUG FIX for Windows: Replace strtof() with strtod().
1767 
1768 27 September 2011  Michael Kelsey (hadr-casc-V09-04-34)
1769 -------------------------------------------------------
1770 - G4CascadeCoalescence.cc: BUG FIX for GCC>4.2: Add missing #include <iterator>.
1771 
1772 26 September 2011  Michael Kelsey (hadr-casc-V09-04-33)
1773 -------------------------------------------------------
1774 - G4ElementaryParticleCollider.cc:  Protect against non-physical arguments
1775   and FPE in two-body angular distributions.
1776 
1777 - G4IntraNucleiCascader.cc:  Replace compiler flag with one-time envvar
1778   access in ctor to enable clustering.
1779 
1780 23 September 2011  Michael Kelsey (hadr-casc-V09-04-32)
1781 -------------------------------------------------------
1782 - sources.cmake:  Add G4CascadeChannel.cc.
1783 
1784 - G4CascadeChannel:  Add optional stream& argument to printTable(), and new
1785   stream operator<<, calling virtual printTable().
1786 
1787 - G4CascadeChannelTables:  Add optional stream& argument to printTable().
1788 
1789 - G4CascadeData, G4CascadeFunctions, G4CascadeSampler,
1790   G4CascadeInterpolator:  Add optional stream& argument to print()
1791   functions, and pass through to members.
1792 
1793 - G4ElementaryParticleCollider:  Add optional stream& argument to
1794   printFinalStateTables(), pass through to printing tables.
1795 
1796 22 September 2011  Michael Kelsey
1797 ---------------------------------
1798 - sources.cmake:  Add G4ExitonConfiguration.cc, G4FissionConfiguration.cc
1799 
1800 - G4CascadeInterface.cc:  Modify throwNonConservationFailure() to be ready
1801   to use G4ExceptionDescription, once G4HadronicException supports it.
1802 
1803 Replace most G4cout-specific print() functions with stream operators, in
1804 order to anticipate supporting G4ExceptionDescription streams.
1805 
1806 - G4CascadParticle: Add ostream& to print(), without trailing endl.  Define
1807   operator<<, calling virtual print().  Affects two classes:
1808 
1809   G4IntraNucleiCascader.cc  G4NucleiModel.cc
1810 
1811 - G4CollisionOutput:  Add optional ostream& to printCollisionOutput(), with
1812   G4cout as the default.  No clients affected.
1813 
1814 - G4ExitonConfiguration, G4FissionConfiguration:  Replace print() with
1815   stream operator<<, defined in new .cc files.  Affects G4FissionStore.cc.
1816 
1817 - G4InuclParticle, G4InuclNuclei, G4InuclElementaryParticle:  Add ostream&
1818   to printParticle(), renamed as print(), without trailing endl.  Define
1819   operator<< only in base class, calling virtual print().  Affects 12 classes:
1820 
1821   G4BigBanger.cc      G4CascadParticle.cc
1822   G4CascadeCoalescence.cc   G4CascadeInterface.cc
1823   G4CollisionOutput.cc    G4ElementaryParticleCollider.cc
1824   G4EquilibriumEvaporator.cc  G4EvaporationInuclCollider.cc
1825   G4Fissioner.cc      G4IntraNucleiCascader.cc
1826   G4NonEquilibriumEvaporator.cc G4NucleiModel.cc
1827 
1828 22 September 2011  Michael Kelsey
1829 ---------------------------------
1830 - G4CascadeCoalescence:  Add list of clusters already attempted, check list
1831   at top of tryClusters() to reduce combinatorial explosion (factor of >10).
1832 
1833 22 September 2011  Michael Kelsey (hadr-casc-V09-04-31)
1834 -------------------------------------------------------
1835 - G4CascadeCoalescence.cc:  Create light ions without excitation energy.
1836   This will violate energy conservation, but is necessary since the excess
1837   from momentum exceeds the binding energy.
1838 
1839 - G4IntraNucleiCascader.cc:  Recompute recoil fragment after clustering, to
1840   account for E-violation (above).
1841 
1842 20 September 2011  Michael Kelsey
1843 ---------------------------------
1844 - G4CascadeCoalescence.cc:  Relative momenta computed in c.m. frame of
1845   nucleon pair, not in event frame.  Add environment variables for cuts:
1846   DPMAX_2CLUSTER, DPMAX_3CLUSTER, DPMAX_4CLUSTER.  Clean up interfaces
1847   to use cluster as argument instead of polymorphic lists.  Improve
1848   combinatorics.
1849 
1850 19 September 2011  Michael Kelsey
1851 ---------------------------------
1852 - G4CascadeCoalescence:  NEW factory class to implement conversion of
1853   final-state nucleon "clusters" into light ions.  Uses LAQGSM algorithm
1854   (Sec. 2.3, http://lib-www.lanl.gov/la-pubs/00818645.pdf).
1855 
1856 - G4IntraNucleiCascader:  Add final-state clustering as OPTIONAL facility,
1857   controlled through compile-time flag G4CASCADE_DO_COALESCENCE.  Clustering
1858   is done during cascade finalization.
1859 
1860 - G4InuclNuclei.cc:  Allow A=0,Z=0 to produce null definition pointer.
1861 
1862 - G4InuclParticle:  Add Coalescence to list of model IDs; move setDefinition
1863   to .cc file and allow passing null pointer.
1864 
1865 - GNUmakefile:  Add G4CASCADE_DO_COALESCENCE flag.
1866 
1867 16 September 2011  Michael Kelsey (hadr-casc-V09-04-30)
1868 -------------------------------------------------------
1869 - G4CascadeChannelTables:  Add load-on-demand via GetTable().  Move static
1870   implementations to .cc file (Windows compatibility issue).
1871 
1872 -   G4CascadeFunctions.icc:  Remove self-registration from ctor.
1873 
1874 - G4Cascade*Channel.cc:  Remove all namespace self-instantiations;
1875   initialization is inconsistent across platforms.
1876 
1877 31 August 2011  Michael Kelsey
1878 ------------------------------
1879 - G4CascadeInterface.cc:  Undo copying of G4V3DNucleus; creates incorrect
1880   PDG codes for proton and neutron.
1881 
1882 31 August 2011  Michael Kelsey (hadr-casc-V09-04-29)
1883 ----------------------------------------------------
1884 - G4NucleiModel.cc:  Make "best guess" parameters defaults for structure model,
1885   leave "old" versions in place with C-style comments on each line.
1886 
1887 - G4CascadParticle.cc:  Add protection against negative radicand.
1888 
1889 29 August 2011  Michael Kelsey
1890 ------------------------------
1891 - G4InuclNuclei:  Add constructor to copy G4V3DNucleus.
1892 - G4CascadeInterface.cc:  Use new G4InuclNuclei ctor in ::Propagate()
1893 - G4IntraNucleiCascader.cc:  Fill excitation state with holes determined
1894   from input G4V3DNucleus "hits".
1895 
1896 25 August 2011  Michael Kelsey (hadr-casc-V09-04-28)
1897 ----------------------------------------------------
1898 - G4EquilibriumEvaporator.cc:  Remove unprotected diagnostic statement.
1899 
1900 25 August 2011  Michael Kelsey (hadr-casc-V09-04-27)
1901 ----------------------------------------------------
1902 - G4NucleiModel:  Remove obsolete local cross-section arrays; use standard
1903   tables, which are numerically equivalent.  Add comment block with "best
1904   guess" values for converting model to physical units (these will hopefully
1905   become the defaults).
1906 
1907 9 August 2011  Michael Kelsey (hadr-casc-V09-04-26)
1908 ---------------------------------------------------
1909 - G4CascadParticle:  Add ::fill() function with ctor args to allow loading
1910   vectors by "assignment," rather than with temporaries.
1911 
1912 - G4BigBanger.cc, G4ElementaryParticleCollider.cc:
1913   Reduce memory churn by using resize() and array assignment instead of
1914   push_back() with temporaries where appropriate.
1915 
1916 - G4NucleiModel:  Move return buffer from generateParticleFate to non-const
1917   input argument, eliminating unnecessary copy.
1918 
1919 - G4IntraNucleiCascader.cc:  Move "new_cascad_particles" to be argument to
1920   generateParticleFate(), for filling instead of copying.
1921 
1922 - G4EquilibriumEvaporator.cc:  Improve building final-state particles to
1923   reduce creation of temporaries.
1924 
1925 9 August 2011  Michael Kelsey
1926 -----------------------------
1927 - G4CascadeInterface.cc:  Clean up Description() implementation somewhat.
1928 - G4EquilibriumEvaporator:  Move foutput to data member, use reference access.
1929 
1930 9 August 2011  Dennis Wright
1931 ----------------------------
1932 - G4CascadeInterface:  Add Description() function for autogenerated HTML.
1933 
1934 3 August 2011  Michael Kelsey (hadr-casc-V09-04-25)
1935 ---------------------------------------------------
1936 - G4PreCompoundDeexcitation.cc:  Add diagnostic output when processing results.
1937 - G4CollisionOutput.cc:  Add diagnostics for copying G4ReactionProducts, and
1938   fix bug with momentum units (must convert to Bertini GeV).
1939 
1940 2 August 2011  Michael Kelsey
1941 -----------------------------
1942 - G4CascadeChannel.hh:  Add ctor and virtual dtor (with no action) to fix
1943   Coverity report #29838.
1944 
1945 2 August 2011  Michael Kelsey (hadr-casc-V09-04-24)
1946 ---------------------------------------------------
1947 - G4CascadeInterface.cc:  Use new G4DecayKineticTracks in Propagate to
1948   handle short-lived inputs.  Requires hadr-mod-util-V09-04-01.
1949 
1950 1 August 2011  Michael Kelsey (hadr-casc-V09-04-23)
1951 ---------------------------------------------------
1952 - G4InuclElementaryParticle:  Add fill() functions to reuse existing object,
1953   reducing memory churn due to creating temporaries.
1954 
1955 - G4CascadeInterface.cc:  Update local buffers to use G4InuclEP::fill().
1956 
1957 - G4CollisionOutput.cc:  Use resize() and set/fill to eliminate temporary
1958   copies in addOutgoingParticles(G4ReactionProductVector*).
1959 
1960 - G4IntraNucleiCascader:  Add local buffers for rescattering target, use
1961   fill to reduce memory churn, and eliminate memory leak!
1962 
1963 31 July 2011  Michael Kelsey
1964 ----------------------------
1965 - G4CascadeInterface: Add local buffers for bullet and target possibilities,
1966   assign pointers to buffer addresses as appropriate.  Reduces per-event
1967   memory churn for each particle.
1968 
1969 - G4EquilibriumEvaporator: Move "parms" buffer (pair<vector<>,vector<>>) to
1970   data member, pre-allocate known size, to reduce per-event memory churn.
1971 
1972 - G4FissionConfiguration.hh:  Make ::print() const.
1973 
1974 - G4FissionStore: Move "probs" vector to data member, reducing memory churn.
1975 
1976 - G4Fissioner: Use C-style arrays as arguments to potentialMinimization,
1977   since size is fixed.  Reduces memory churn.
1978 
1979 29 July 2011  Michael Kelsey
1980 ----------------------------
1981 - G4CascadParticle.hh:  Add functions to explicitly set all data members,
1982   including initial path and generation, to support changes below.  Re-order
1983   member functions in set/get pairs.
1984 
1985 - G4IntraNucleiCascader:  Replace convertKineticToCascade() with
1986   processSecondary(), which writes directly to G4CascadParticle "buffer" in
1987   processing list.  Eliminates new/delete cycling and memory churn.
1988 
1989 29 July 2011  Michael Kelsey (hadr-casc-V09-04-22)
1990 --------------------------------------------------
1991 - G4CascadeChannelTables.cc:  Use FindTable() to determine if table has been
1992   created already or not.  Add "clear()" to ctor to initialize empty map
1993   (GCC 4.1.2 segfaults on first insertion otherwise).  Add diagnostic
1994   messages hidden with G4CASCADE_DEBUG_SAMPLER compiler flag.
1995 
1996 28 July 2011  Michael Kelsey
1997 ----------------------------
1998 Fix, or flag as "Ignore," all outstanding Coverity reports.
1999 
2000 20228 G4CascadeFunctions.icc:  Fix bug, compare (mult > maxMult) and set to
2001   max on true.  Otherwise, mult can overflow array dimension.
2002 
2003 20230 G4CascadeInterpolator.icc:  Remove "recursive" #include of .hh file.
2004 
2005 20231 G4CascadeSampler.icc:       Remove "recursive" #include of .hh file.
2006 
2007 22951 G4EquilibriumEvaporator.cc:  Check for icase<0 after assignment loop,
2008   to avoid invalid array subscript.
2009 
2010 22954 G4CascadeData.icc:          Remove "recursive" #include of .hh file.
2011 
2012 22955 G4CascadeFunctions.icc:      Remove "recursive" #include of .hh file.
2013 
2014 23843 G4EvaporationInuclCollider:  Add dtor to delete EquilibriumEvaporator.
2015 
2016 28776 G4InuclEvaporation.cc:  Remove return following throw.
2017 
2018 27 July 2011  Michael Kelsey (hadr-casc-V09-04-21)
2019 --------------------------------------------------
2020 - G4CascadeInterface.cc:  Simplify NoInteraction() per V.Ivantchenko.  No
2021   particles are returned, but "SetEnergyChange" is used to communicate to
2022   tracking that real track should be stopped and deposit all its energy.
2023 
2024 - G4NucleiModel:  Compared local kaon/hyperon cross-section tables with
2025   sum-of-exclusive tables from G4Cascade*Channel.cc; all bin values below 10
2026   GeV are identical.  The channel tables have a somewhat more realistic
2027   treatment of high energy projectiles (a logarithmic decrease rather than
2028   flat).  Remove the local arrays, using channel table lookup for everything.
2029 
2030 25 July 2011  Michael Kelsey (hadr-casc-V09-04-20)
2031 --------------------------------------------------
2032 Make cross-section tables self-registering at job initialization.  No switch
2033 blocks needed any longer:  new initial-state tables become usable without
2034 any code modification.
2035 
2036 - G4CascadeData:  Add data member storing initial state argument.
2037 
2038 - G4CascadeFunctions:  Move constructor implementation to .icc file, where
2039   registration to lookup table is done.
2040 
2041 - G4CascadeChannelTables:  Change from namespace back to class, with
2042   std::map as data member.  Add public function to register new table in
2043   map, and return null pointer if lookup fails (i.e., no create-on-demand).
2044 
2045 - G4Cascade*Channel.cc:  Add local instance of each cross-section table,
2046   used solely to trigger auto-registration in base class ctor.  The
2047   corresponding .hh files no longer appear anywhere else in Bertini code.
2048 
2049 25 July 2011  Michael Kelsey (hadr-casc-V09-04-19)
2050 --------------------------------------------------
2051 - sources.cmake:  Update HEADERS and SOURCES list with new code added 20
2052   July 2011.  This must be done manually.
2053 
2054 22 July 2011  Michael Kelsey (hadr-casc-V09-04-18)
2055 --------------------------------------------------
2056 - G4CascadeInterface.cc:  In makeDynamicParticle(), allow invalid type codes
2057   in order to process, e.g., resonances from Propagate() input.
2058 
2059 - G4InuclNuclei.hh:  Fix bug in ctor (mom,A,Z,Eexc,model) -- failed to set
2060   excitation energy; causes energy non-conservation in de-excitation code.
2061 
2062 22 July 2011  Michael Kelsey (hadr-casc-V09-04-17)
2063 --------------------------------------------------
2064 - G4IntraNucleiCascader:  Deprecate local "output_particles" list in favor
2065   of using "output" (G4CollisionOutput) buffer directly.  This will support
2066   handling light ions and unrecognized particles for rescattering.
2067 
2068 - G4CascadeCheckBalance:  Replace std::vector<G4InuclEP> argument with
2069   G4CollisionOutput in version of ::collide() for G4IntraNucleiCascader.
2070 
2071 - G4CascadeRecoilMaker:  Replace std::vector<G4InuclEP> argument with
2072   G4CollisionOutput in version of ::collide() for G4IntraNucleiCascader.
2073 
2074 21 July 2011  Michael Kelsey
2075 ----------------------------
2076 - G4IntraNucleiCascader:  For pre-cascade rescattering, put resonances, or
2077   any particle which cannot be propagated by Bertini, directly onto output,
2078   without decaying.  Requires G4InuclEP constructor which takes G4PartDef
2079   directly, avoiding possibly undefined type codes.
2080 
2081   NOTE:  The ::rescatter() process doesn't generate a proper recoil nucleus
2082   because outgoing_particles is used, rather than output.
2083 
2084 - G4InuclParticle:  Modify all constructors to take the model code as an
2085   optional argument, so that subclasses don't have to set it manually.
2086 
2087 - G4InuclNuclei:  Modify constructors to pass model code to base (as above),
2088   instead of calling SetModel() explicitly.
2089 
2090 - G4InuclElementaryParticle: Modify constructors to pass model code to base
2091   (as above), instead of calling SetModel() explicitly.  Add new constructor
2092   which takes G4ParticleDefinition* argument instead of type code.  Allows
2093   client code to create objects without a valid (enumerated) type, e.g. for
2094   passing pre-cascade resonances through to output.
2095 
2096 21 July 2011  Michael Kelsey (hadr-casc-V09-04-16)
2097 --------------------------------------------------
2098 - G4ElementaryParticleCollider.cc:  Hide "mult" argument to
2099   getMomModule2toMany(), as it is no longer used (V. Uzhinsky's fix).  Fixes
2100   compilation warning from hadr-casc-V09-04-15.
2101 
2102 - G4CascadeInterface.cc:  In NoInteraction(), only projectile should be
2103   copied to final state, not target nucleus.
2104 
2105 - G4CascadeT1NNChannel.cc:  Fix final 9-body final-state list for both nn
2106   and pp:  existing entries violate charge.
2107 
2108 20 July 2011  Michael Kelsey
2109 ----------------------------
2110 - G4CascadeInterface:  Drop local copy of G4HadFinalState (theResult),
2111   available directly from base class (theParticleChange).  Add NoInteraction()
2112   to copy input particle directly to return in case of problems.
2113   Modify createBullet() to leave pointer null if not a valid particle; in
2114   ApplyYourself(), check for both null bullets and bullet types without
2115   interaction tables and return NoInteraction() in those cases.  Fix bug in
2116   reporting charge violation.
2117 
2118 - G4CascadeChannel.hh:  Repurpose this as non-template base class for all
2119   cross-section tables, specifying public interface (pure virtual).  Used
2120   with multiple inheritance for G4CascadeFunctions<> to allow instantiation
2121   and pointer return (below).
2122 
2123 - G4CascadeChannel.cc:  DELETE code from previous version of name.
2124 
2125 - G4CascadeFunctions:  Add inheritance from G4CascadeChannel, replace
2126   static functions with virtual; must create instance from now on.
2127 
2128 - G4CascadeChannelTables:  NEW namespace with function to return
2129   cross-section tables by pointer based on two-body initial state.
2130 
2131 - G4ElementaryParticleCollider.cc:  Remove all switch-blocks, replace with
2132   calls to G4CascadeChannelTables; in PrintFinalStateTables, use convenience
2133   funciton directly in G4CascadeChannelTables.
2134 
2135 - G4NucleiModel.cc:  Remove use of G4CascadeXXXChannel in switch block;
2136   under "default:", make calls to G4CascadeTables.
2137 
2138 19 July 2011  Michael Kelsey (hadr-casc-V09-04-15)
2139 --------------------------------------------------
2140 - G4CascadeInterface.cc:  If accept/reject loop fails (maximum retries),
2141   return initial state untouched rather than last generated cascade.  This
2142   avoids exposing an elastic scattering event under any circumstances.
2143 
2144 19 July 2011  Michael Kelsey (hadr-casc-V09-04-14)
2145 --------------------------------------------------
2146 - G4ChannelData:  Add new ctor argument "initialState", to specify the
2147   product of the hadrons (e.g., for KminusP, the value is "kmi*pro").  This
2148   argument is used to find the elastic channel cross-sections to be
2149   subtracted from tot[] to get inelastic[] (other two-body channels,
2150   including the quasi-elastic charge exchange, are treated as inelastic).
2151 
2152 - G4Cascade*Channel.cc:  Add new ctor argument for all cross-section tables.
2153 
2154 18 July 2011  Michael Kelsey (hadr-casc-V09-03-91) ***BRANCH TAG***
2155 --------------------------------------------------
2156 - G4LorentzConvertor.cc:  Copy HEAD version, which includes protections for
2157   ::rotate() applied to at-rest system (i.e., z-axis ~ (0,0,0)), and
2158   simplifies calculations to avoid similar errors elsewhere.
2159 
2160 NOTE:  Changes below not included in branch tag.
2161 
2162 18 July 2011  Michael Kelsey (hadr-casc-V09-04-13)
2163 --------------------------------------------------
2164 - G4ChannelData:  Add new "inelastic" array, filled in initialize() to the
2165   sum of 3-body and higher multiplicity cross-sections.
2166 
2167 - G4CascadeInterface.cc:  Change an error message to not show "ApplyYourself"
2168 
2169 - G4ElementaryParticleCollider.cc:  Per V. Uzhinskiy, remove special
2170   "mult==3" case from getMomModule2toMany().  Replace magic numbers in
2171   switch blocks with particle-name enums.
2172 
2173 1 July 2011  Michael Kelsey
2174 ---------------------------
2175 - G4NucleiModel.hh/.cc, G4InuclPartice.hh, G4InuclElementaryParticle.hh:
2176   Copy minor comment changes applied to 9.4-ref-06 and 9.5-beta to HEAD.
2177 
2178 17 June 2011  Michael Kelsey
2179 ----------------------------
2180 - G4NucleiModel.cc:  Change "R_nucleon" (trailing effect nucleon radius) to
2181   be adjustable parameter using G4NUCMODEL_RAD_TRAILING.  Also apply radius
2182   scaling factor to numerical value.  This code should NOT be proposed for
2183   builds until tested with thick-target models.
2184 
2185 2 June 2011  Michael Kelsey (hadr-casc-V09-04-12)
2186 -------------------------------------------------
2187 - G4LorentzConvertor:  Drop most "intermediate" kinematic parameters used in
2188   rotate, in favor of somewhat more direct vector operations.  Change test
2189   for "degenerated" to use "small" rather than "small*small".
2190 
2191 25 May 2011  Michael Kelsey (hadr-casc-V09-04-11)
2192 -------------------------------------------------
2193 - G4LorentzConvertor.cc:  Add diagnostic messages in both ::rotate().
2194 
2195 - G4NucleiModel.cc:  Revert length scales to pre-V09-04-04 ("2.82" factor);
2196   see 18 March 2011 notes below.  Should undo visible-energy and angular
2197   distribution effects seen in GEANT4 9.4-ref-04 testing.
2198 
2199 19 May 2011  Michael Kelsey (hadr-casc-V09-04-10)
2200 -------------------------------------------------
2201 - G4CollisionOutput.cc:  Drop unused "p2" from selectPairToTune().
2202 - G4NucleiModel.cc:  Use computed value "rho" instead of recomputing twice.
2203 
2204 - G4CascadeInterface: Add support for capturing random-engine state to user
2205   file (specified with environment variable G4CASCADE_RANDOM_FILE) at each
2206   ApplyYourself() or Propagate() invocation.  This will allow (hopefully!)
2207   easier reproduction of crashes in complex applications.
2208 
2209 3 May 2011  Michael Kelsey
2210 --------------------------
2211 - G4LorentzConvertor.cc:  Add a couple of diagnostic messages to ::rotate().
2212 
2213 27 April 2011 Michael Kelsey (hadr-casc-V09-04-09)
2214 --------------------------------------------------
2215 - G4InuclNuclei.cc:  Remove preface about "non-standard PDGencoding," since
2216   particles-V09-04-01 has removed the corresponding warning messages.
2217 
2218 15 April 2011 Michael Kelsey
2219 ----------------------------
2220 - G4ParticleLargerEkin.hh, G4ParticleLargerBeta.hh: Add interfaces to do
2221   sorting of G4CascadParticles, needed for initial setup of ::Propagate().
2222 
2223 - G4IntraNucleiCascader.cc:  In ::copySecondaries(), sort list by kinetic
2224   energy.
2225 
2226 13 April 2011 Michael Kelsey (hadr-casc-V09-04-08, hadr-casc-V09-03-88)
2227 -----------------------------------------------------------------------
2228 - G4ElementaryParticleCollider.cc:  For 2-body scattering, adjust test to term1
2229   to avoid divide-by-zero errors (see 19 Jan 2011, tag -00).
2230 
2231 13 April 2011 Michael Kelsey
2232 ----------------------------
2233 - G4NucleiModel:  Encapsulate trailing effect test in ::passTrailing().
2234 
2235 13 April 2011 Michael Kelsey (hadr-casc-V09-04-07)
2236 --------------------------------------------------
2237 Deploying operational rescattering.  This code requires modifications to
2238 G4VIntraNuclearTransportModel.hh and G4TheoFSGenerator.hh which are included
2239 in the geant4-09-04-ref-03 build.
2240 
2241 NOTE:  In testing, some input cascades lead to nuclei with excessive
2242 excitation energy; this code should not be used in production.
2243 
2244 - G4CascadeInterface.cc: Add construction of bullet from cached copy of
2245   original projectile, saved by G4TheoFSGenerator.
2246 
2247 - G4InuclCollider.cc:  Adjust diagnostic messages in ::rescatter() to match
2248   those in ::collide().
2249 
2250 - G4IntraNucleiCascader.cc:  Reduce number of retries from 1000 to 100.
2251 
2252 28 March 2011 Michael Kelsey
2253 ----------------------------
2254 - G4CascadeCheckBalance.hh:  Add non-limit ctor and explicit limit setting.
2255 - G4CascadeInterface.cc:  Set internal E/p limits to match Gunter's below
2256   (currently 5% and 10 MeV, want to make them tighter).
2257 
2258 28 March 2011 Gunter Folger
2259 ----------------------------
2260 - Set up for E/p checking by G4HadronicProcess in ctor of G4CascadeInterface.
2261 
2262 24 March 2011 Michael Kelsey
2263 ----------------------------
2264 - G4NucleiModel:  Add optional argument to reset() with list of collision
2265   points, for copying cascade state when rescattering.
2266 
2267 - G4IntraNucleiCascader:  Add list of hit-nucleon locations, filled by
2268   copyWoundedNucleus() for initialization of G4NucleiModel (above).
2269 
2270 24 March 2011 Dennis Wright (hadr-casc-V09-04-06)
2271 -------------------------------------------------
2272 - G4NucleiModel - add trailing effect
2273 
2274 23 March 2011 Michael Kelsey
2275 ----------------------------
2276 - G4CollisionOutput.hh:  Add non-const accessors for lists.
2277 
2278 21 March 2011 Michael Kelsey (hadr-casc-V09-04-03-01, -V09-04-05)
2279 --------------------------------------------------
2280 Fixes for compiler warnings (and one error on Windows).  The -03-01 tag
2281 backs out change to G4NucleiModel.cc in -04 tag, which will be restored to
2282 the HEAD.
2283 
2284 - G4InuclElementaryParticle:  Make getStrangeness() and getStrangeness(type)
2285   both return G4int.
2286 - G4CascadeColliderBase.hh:  Hide names of arguments to rescatter().
2287 - G4NucleiModel.cc:  Replace strtof() with strtod().
2288 
2289 18 March 2011 Michael Kelsey (hadr-casc-V09-04-04)
2290 --------------------------------------------------
2291 - G4NucleiModel.cc:  Change internal length scale to use femtometers
2292   directly (instead of apparent 2.8197 fm), and internal cross-section scale
2293   to use fm^2 (instead of millibarns).
2294 
2295 17 March 2011 Michael Kelsey (hadr-casc-V09-04-03)
2296 --------------------------------------------------
2297 Tag all revisions for deployment in next reference build.
2298 
2299 1)  Implement most of rescattering capability (G4CascadeInterface::Propagate
2300     and dependent code).  Substantial factoring of ::collide() functions to
2301     allow functional reuse by ::rescatter().  Not operational without code
2302     to capture and use primary projectile.
2303 
2304 2)  Simplify cascade test-and-repeat loops; do four-momentum balancing with
2305     nuclear fragment, now used exclusively as G4Fragment, at end of cascade,
2306     not after de-excitation.
2307 
2308 16 March 2011 Michael Kelsey
2309 ----------------------------
2310 More improvements to rescattering code.  Not yet functional without code to
2311 construct "bullet" from original projectile.
2312 
2313 - G4CascadeInterface: Simplify target-construction functions by moving
2314   active code to one with simple (A,Z) arguments.
2315 
2316 - G4CollisionOutput.cc:  Add reset() at start of trivialize().
2317 
2318 - G4IntraNucleiCascader:  Add functions to convert single G4KineticTrack to
2319   G4CascadParticle (move out of preloadCascade()), and to decay G4KT
2320   hadronic resonances in situ.  Improve diagnostic messages.
2321 
2322 - G4InuclElementaryParticle.cc:  Move K0S/K0L "mixing" to K0/K0bar into type().
2323 
2324 11 March 2011 Michael Kelsey
2325 ----------------------------
2326 - G4CollisionOutput:  Include G4Fragment as part of final state for
2327   setOnShell() (including computing totalOutputMomentum).  Note that the
2328   four-momentum in G4Fragment is in GEANT4 units (MeV), not Bertini units!
2329 
2330 - G4IntraNucleiCascader.cc:  Reorganize post-cascade handling to do
2331   setOnShell() check for all cases, allowing G4Fragment to be adjusted.
2332   This should leave final state fully balanced before InuclCollider sees it.
2333 
2334 - G4InuclCollider.cc:  Simplify de-excitation handling (fragment test is in
2335   deexcite() function).  Suppress momentum-conservation check on de-excitation
2336   unless G4CASCADE_CHECK_ECONS compiler flag was used, as all functions have
2337   been confirmed to conserve four-momentum.
2338 
2339 8 March 2011 Michael Kelsey
2340 ---------------------------
2341 - G4InuclCollider:  Move post-cascade (deexcitation) block out of collide()
2342   to separate function.  Pass G4Fragment instead of G4InuclNuclei.
2343 
2344 - G4IntraNucleiCascader.cc:  Don't put recoil "nucleus" onto output list.
2345 
2346 - G4CollisionOutput.cc, G4InuclNuclei.cc:  Follow additions to G4Fragment
2347   interface to store and access charged and neutral holes separately.
2348 
2349 4 March 2011 Michael Kelsey (kelsey-20110304)
2350 ---------------------------------------------
2351 Continue development of rescattering infrastructure.  All executable
2352 functionality should be in place, BUT no "bullet" is available yet, so code
2353 (especially conservation checks) will crash with segmentation fault.
2354 
2355 - G4CascadeColliderBase.hh:  Add ::rescatter() interface with null body, to
2356   enforce common interface in all (both) affected colliders.
2357 
2358 - G4CascadeInterface:  Move conversion functions used by ::Propagate() from
2359   here down to G4IntraNucleiCascader.  Just pass input arguments through.
2360   Convert cascade results to G4ReactionProducts for ::Propagate() output.
2361 
2362 - G4IntraNucleiCascader:  Move conversion functions used by ::Propagate() to
2363   here from G4CascadeInterface.  Replace ::rescatter() interface to take
2364   arguments from ::Propagate and do conversion locally.  Remove unnecesary
2365   "itry" arguments from cascade functions.
2366 
2367 - G4InuclCollider:  Follow ::rescatter() interface change above, passing
2368   arguments from G4CascadeInterface through to G4IntraNucleiCascader.
2369 
2370 - G4NucleiModel.hh:  Add optional arguments to reset() to force values of
2371   neutron and proton counts (default behaviour is unchanged).
2372 
2373 3 March 2011 Michael Kelsey
2374 ---------------------------
2375 - G4CascadeInterface:  Change name of "bulletList" to "inputFragments".
2376 
2377 - G4CascadeRecoilMaker.cc:  Add diagnostic message to ::wholeEvent().
2378 
2379 - G4IntraNucleiCascader:  Add function to copy input cascade particles to
2380   local list for propagation, move clearing functions to separate action.
2381 
2382 - G4NucleiModel.hh:  Add accessors for radius (including zone radii),
2383   mapping radial position to zone index, and converting radius units.
2384 
2385 - G4NucleiModel.cc:  Add a couple of FIXME messages about binding_energies[].
2386 
2387 3 March 2011 Michael Kelsey (kelsey-20110303)
2388 ---------------------------------------------
2389 - G4CascadeDeexcitation.cc:  Don't do conservation check at end of process.
2390 - G4CascadeInterface.cc:  Rearrange messages for G4CASCADE_DEBUG_INTERFACE.
2391 - G4CascadeOutput.cc:  Fix diagnostic message reporting initial momentum.
2392 - G4IntraNucleiCascader.cc:  Move model->printModel() call to G4NucleiModel.
2393 - G4NucleiModel.cc:  Put printModel() call at end of generateModel().
2394 - G4CascadeRecoilMaker.cc:  Add diagnostics to goodNucleus().
2395 - G4CollisionOutput.cc:  Move ini_mom calculation to fix diagnostic output.
2396 
2397 28 February 2011 Michael Kelsey (kelsey-20110228)
2398 -------------------------------------------------
2399 Continue infrastructure development for rescattering.
2400 
2401 - G4CascadeInterface:  New ::copyPreviousCascade() to transfer rescattering
2402   into to Bertini particles, along with data buffers for the converted list.
2403   New ::makeReactionProduct() for conversion of internal to external
2404   hadronic-tracks.  New ::makeCascadParticle() for conversion of pre-cascade
2405   G4KineticTrack to Bertini type.
2406 
2407 - G4InuclCollider.cc:  Set verbosity when de-excitation module is changed.
2408 
2409 25 February 2011 Michael Kelsey (kelsey-20110225b)
2410 --------------------------------------------------
2411 Develop infrastructure to support using Bertini as a "rescattering" model
2412 for the output of the FTF simulation.
2413 
2414 - G4CascadeColliderBase:  Add ::setVerboseLevel() function which passes
2415   verbosity through to G4CheckBalance data member.
2416 
2417 - G4CascadeInterface:  Add ::createTarget(G4V3DNucleus*).  Move setVerboseLevel
2418   implementation to .cc file, and propagate verbosity to member objects.
2419   Move conservation checking to separate function.  Begin to populate Propagate
2420   function.
2421 
2422 - G4IntraNucleiCascader:  Split ::collide() into separate utility functions
2423   to handle different stages of cascade process (initialization, cascade
2424   development, final state).  Add new ::rescatter() function which takes a
2425   list of pre-existing secondaries as input to "seed" the processing.  Add
2426   setVerboseLevel implementation, and propagate verbosity to member objects.
2427 
2428 - G4InuclCollider:  Add ::rescatter() function which calls through to
2429   G4IntraNucleiCascader(), and setVerboseLevel implementation.
2430 
2431 NOTE:  G4InuclCollider above was accidentally commited to kelsey-20110225a
2432 
2433 25 February 2011 Michael Kelsey (kelsey-20110225a)
2434 --------------------------------------------------
2435 Infrastructure improvements to support modifying output particle lists
2436 
2437 - G4CollisionOutput:  Add ::removeXXX() interfaces to take particles off of
2438   lists.
2439 
2440 - G4InuclParticle.hh, G4InuclNuclei.hh, G4ExitonConfiguration.hh:  Add
2441   equality and inequality operators.  NOTE: Sorting (operator<) NOT SUPPORTED.
2442 
2443 23 February 2011 Michael Kelsey (hadr-casc-V09-04-02)
2444 -----------------------------------------------------
2445 - G4NucleiModel:  Bring changes for parametrizing "rescaled" nuclear model
2446   parameters from orphaned CVS tag kelsey-20101020b into HEAD of SVN.  The
2447   scale factors are set specifically to reproduce the existing production
2448   code, but will be adjusted to give the model "natural units" (fm lengths
2449   and millibarn cross sections).  Use environment variables to set scale
2450   factors:
2451 
2452   G4NUCMODEL_RAD_SCALE  (3.3836/1.2 ~ 2.8197)
2453   Internal length scale (conversion from femtometers).  All of the
2454   lengths in G4NucleiModel are larger by this factor than one would
2455   expected from the literature.  To do all of the model parameter
2456   calculations in fm, this scale factor should be set to 1.
2457 
2458   G4NUCMODEL_RAD_2PAR   (not defined)
2459   The current model computes the nuclear radius as a one-parameter
2460   function of mass: 1.2*cbrt(A) (multiplied by the length scale
2461   above).  A better parametrization is 1.16*cbrt(A) - 1.3456/cbrt(A);
2462   setting this environment variable chooses that parametrization.
2463 
2464   G4NUCMODEL_RAD_SMALL  (8.0/G4NUCMODEL_RAD_SCALE)
2465   For nuclei below A=5 (alphas, tritons, etc.), instead of the
2466   mass-dependent scaling, a constant radius is used.  In the current
2467   model, a value of 8.0 (corresponding to 2.83 fm) is set; published
2468   data suggests 1.992 fm instead.
2469 
2470   G4NUCMODEL_RAD_ALPHA  (0.70)
2471   This scale factor multiplies G4NUCMODEL_RAD_SMALL to account for the
2472   anomalous binding energy of alphas compared to nearby light nuclei.
2473   Published data suggests a value of 0.84 instead.
2474 
2475   G4NUCMODEL_FERMI_SCALE (0.685)
2476   This factor converts from the length scale (cbrt(volume)) to the
2477   Fermi momentum for each nuclear species.  Published data suggests a
2478   value of 0.61 GeV/fm instead.
2479 
2480   G4NUCMODEL_XSEC_SCALE (1.)
2481   Scaling factors for total cross-sections.  The current code has all
2482   the cross sections in millbarns.  If we are able to migrate to a
2483   length scale in femtometers, this factor will change to 10. to
2484   convert mb to fm^2.
2485 
2486 14 February 2011 Michael Kelsey (hadr-casc-V09-04-01)
2487 -----------------------------------------------------
2488 - G4InuclParticle:  Continue migration to enumerator Model.  Replace
2489   previous enum word "default" with "DefaultModel", add "PreCompound".
2490 
2491 - G4InuclNuclei, G4InuclElementaryParticle:  Follow G4InuclParticle::Model
2492   migration, and drop use of "generation."
2493 
2494 - G4CascadeRecoilMaker:  Replace integer model with G4InuclParticle::Model.
2495 
2496 - G4BigBanger.cc, G4CollisionOutput.cc, G4ElementaryParticleCollider.cc,
2497   G4EqulibriumEvaporator.cc, G4Fissioner.cc, G4NonEquilibriumEvaporator.cc,
2498   G4PreCompoundDeexcitation.cc:  Replace integer model code with
2499   G4InuclParticle::Model enumerator values.
2500 
2501 31 January 2011 Michael Kelsey
2502 ------------------------------
2503 - G4IntraNucleiCascader.cc:  Move "momentum_in" calculation inside verbosity.
2504 
2505 - G4InuclElementaryParticle.hh: Change getStrangeness() to return int, use
2506   as pseudo-bool in hyperon() implementation.  Drop local "generation" data
2507   member, not used anywhere.
2508 
2509 - G4InuclParticle.hh:  Change "modelId" to enumerated type.  Will require
2510   numerous changes throughout code.
2511 
2512 19 January 2011 Michael Kelsey (hadr-casc-V09-04-00)
2513 ----------------------------------------------------
2514 - G4ElementaryParticleCollider.cc: In sampleCMcosFor2to2(), protect against
2515   divide-by-zero by testing for term1==0. before other computations.
2516   Addresses ~10^-7 FPE rate reported by A. Dotti.
2517 
2518 16 January 2011 Michael Kelsey
2519 ------------------------------
2520 - G4InuclParticleNames.hh:  Add enumerator values for some light ions as
2521   "elementary particles," and names for antibaryons and light antinuclei.
2522   These will support upcoming developments, but are not currently used.
2523 
2524 - G4InuclElementaryParticle.hh:  Add antinucleon() and antibaryon() flags
2525   (the latter will cover the light-ion cases).
2526 
2527 - G4InuclElementaryParticle.cc:  Add switch cases for new particles above.
2528 
2529 24 November 2010 Michael Kelsey (hadr-casc-V09-03-87)
2530 -----------------------------------------------------
2531 - G4InuclCollider.cc:  Delete local "zbullet" before exiting.  Fixes memory
2532   leak reported for 9.4 cand-01.
2533 
2534 19 November 2010 Michael Kelsey (hadr-casc-V09-03-86)
2535 -----------------------------------------------------
2536 - G4NucleiModel.cc:  Put messages related to negative-path-length and
2537   zero-interaction-partners behind verbosity flag.
2538 
2539 29 October 2010 Michael Kelsey (hadr-casc-V09-03-85)
2540 ----------------------------------------------------
2541 - G4NucleiModel:  Bring tagged version kelsey-20101020 (refactoring) to HEAD
2542   and tag for 9.4 release.  This is the last substantive modification to be
2543   included; validated by direct |diff|ing of output vs. V09-03-84 code.
2544 
2545 22 October 2010 Michael Kelsey (hadr-casc-V09-03-84)
2546 ----------------------------------------------------
2547 - G4WatcherGun.cc: Change first numeric argument to G4NuclWatcher to int.
2548 
2549 NOTE:  Only this change is include in tag.
2550 
2551 20 October 2010 Michael Kelsey (kelsey-20101020b)
2552 -------------------------------------------------
2553 - G4NucleiModel:  Add scaling factors ("units") for nuclear radii and
2554   cross-sections, in order to adapt calculations to the literature.
2555 
2556 20 October 2010 Michael Kelsey (kelsey-20101020a)
2557 -------------------------------------------------
2558 - G4NucleiModel:  Re-activate changes in worthToPropagate() to use existing
2559   nuclear potential values for kaons and hyperons to decide on trapping.
2560 
2561 20 October 2010 Michael Kelsey (kelsey-20101020)
2562 ------------------------------------------------
2563 - G4NucleiModel:  Clean up some bugs in refactoring generateModel().  Back
2564   out changes (28 Sep) in worthToPropagate() in order to compare refactored
2565   to production code.
2566 
2567 20 October 2010 Michael Kelsey (hadr-casc-V09-03-83)
2568 ----------------------------------------------------
2569 - G4CascadParticle.cc:  Remove debugging output left in by accident.
2570 
2571 NOTE:  Tag does not include reorganization of G4NucleiModel (5 Oct 2010)
2572 
2573 19 October 2010 Michael Kelsey
2574 ------------------------------
2575 G4FissionStore, G4FissionConfiguration: Undo migration to integer A and Z.
2576 
2577 19 October 2010 Michael Kelsey
2578 ------------------------------
2579 Clean up CoVerity software analysis reports (three are ignored from obsolete
2580 code):
2581   G4Analyser.cc
2582   G4CascadeCheckBalance.cc
2583   G4CascadeInterpolator.icc
2584   G4CascadeSampler.icc
2585   G4CollisionOutput.cc
2586   G4ElementaryParticleCollider.cc
2587   G4InuclCollider.cc
2588   G4NuclWatcher.cc
2589   G4NucleiModel.hh,cc
2590   G4RegionModel.cc
2591 
2592 14 October 2010 Michael Kelsey
2593 ------------------------------
2594 - G4NucleiModel.cc:  Fix misspelled "G4doulbe" -> G4double.
2595 
2596 Pick up several missed bits of the "integer A and Z migration," mostly in
2597 test and diagnostic code:
2598 
2599   G4Analyser.hh,cc
2600   G4FissionConfiguration.hh
2601   G4FissionStore.hh,cc
2602   G4NuclWatcher.hh,cc
2603 
2604 14 October 2010 Michael Kelsey (hadr-casc-V09-03-82)
2605 ----------------------------------------------------
2606 - G4CascadParticle.cc:  Add protection in getPathToTheNextZone() so that d2
2607   is always computed non-negative.  Avoids 10^-5 FPEs.
2608 
2609 05 October 2010 Michael Kelsey
2610 ------------------------------
2611 - G4NucleiModel:  Major reorganization of generateModel() code.
2612   1) Rename integration functions from "volNumInt[1]" to "zoneIntegralxxx"
2613      with "xxx" = "WoodsSaxon" or "Gaussian".
2614   2) Move hardwired constants out to static data members, give clear names.
2615   3) Split function into separate pieces to set binding energies, zone
2616      radii, volume/density values, and potential heights.
2617   4) Within new functions, simplify if-cascades where possible, eliminate
2618      duplicated code.
2619   5) Move std::vector<> buffers out to data members.
2620 
2621   Also, modify worthToPropagate() to use non-nucleon potential heights to
2622   terminate propagation.  Previously, non-nucleons could never fail, as the
2623   "getFermiKinetic" always returned zero.
2624 
2625 28 September 2010 Michael Kelsey (hadr-casc-V09-03-81)
2626 ------------------------------------------------------
2627 - G4BigBanger:  Missed some integer A/Z migrations, which caused a bus error
2628   in test47.
2629 
2630 26 September 2010 Michael Kelsey (hadr-casc-V09-03-80)
2631 ------------------------------------------------------
2632 - G4VCascadeDeexcitation.hh:  NEW abstract base class for post-cascade
2633   processing.  Some common activities will be implemented here from the two
2634   actual modules.
2635 
2636 - G4CascadeDeexcitation, G4PreCompoundDeexcitation:  Use new base class
2637   above, reorganize code in collide() to use new deExcite(G4Fragment*) where
2638   appropriate.
2639 
2640 - G4InuclCascader.hh:  Reference new base class for de-excitation modules.
2641 
2642 25 September 2010 Michael Kelsey
2643 --------------------------------
2644 - G4CascadeColliderBase:  Add explosion(G4Fragment*) and explosion(A,Z,Eexc).
2645   Move implementation to latter, and write others as call-throughs.  Add
2646   Z==0 condition for explosion, regardless of A.
2647 
2648 - G4EquilibriumEvaporator.hh:  Remove explosion(G4InuclNuclei*), as
2649   unnecessary.  Existing explosion(A,Z,E) now overrides base class.
2650 
2651 - G4CollisionOutput:  Add function to process G4ReactionProducts from
2652   PreCompound.
2653 
2654 - G4PreCompoundDeexcitation.cc:  Move G4ReactionProducts loop to
2655   G4CollisionOutput.
2656 
2657 24 September 2010 Michael Kelsey
2658 --------------------------------
2659 - G4IntraNucleiCascader.cc:  Minor shuffle of post-cascade recoil checking,
2660   in preparation for moving fragment construction and processing away.
2661 
2662 - G4CollisionOutput.cc:  Replace names "TargetFragment*" and "NucleiFragment*"
2663   with "OutgoingNuclei" and "OutgoingNucleus" for consistency with
2664   "OutgoingParticles" names.  This affects the following source files, all
2665   of which are modified to match (using |sed|):
2666 
2667   cascade/include/G4Analyser.hh
2668   cascade/include/G4CollisionOutput.hh
2669   cascade/src/G4Analyser.cc
2670   cascade/src/G4CascadeCheckBalance.cc
2671   cascade/src/G4CascadeDeexcitation.cc
2672   cascade/src/G4CascadeInterface.cc
2673   cascade/src/G4CollisionOutput.cc
2674   cascade/src/G4EquilibriumEvaporator.cc
2675   cascade/src/G4Fissioner.cc
2676   cascade/src/G4IntraNucleiCascader.cc
2677   cascade/src/G4InuclCollider.cc
2678   cascade/src/G4InuclEvaporation.cc
2679   cascade/src/G4NonEquilibriumEvaporator.cc
2680   cascade/src/G4PreCompoundDeexcitation.cc
2681 
2682 - G4CollisionOutput:  Add new G4Fragment data member, with get() and add()
2683   accessors.  This fragment is *not* used by setOnShell() or by any of the
2684   event-total calculations.  It will be filled by G4IntraNucleiCascader for
2685   use by de-excitation modules.  Include G4Fragment in diagnostic output if
2686   not empty.
2687 
2688 - G4CascadeRecoilMaker.cc:  Remove G4Fragment::SetExcitationEnergy() call.
2689 
2690 - G4InuclNuclei:  Add new constructor to create from G4Fragment input, and
2691   new makeG4Fragment() to spit out a G4Fragment.  Also provide a casting
2692   operator for the latter.
2693 
2694 24 September 2010 Michael Kelsey (hadr-casc-V09-03-79)
2695 ------------------------------------------------------
2696 Fix numerous compilation warnings on Linux (not seen on MacOSX) left over
2697 from migration to integer A and Z (-73 tag).
2698 
2699   G4BigBanger.cc
2700   G4CascadeCheckBalance.hh
2701   G4CascadeColliderBase.cc
2702   G4CascadeRecoilMaker.cc
2703   G4EquilibriumEvaporator.hh,cc
2704   G4ExitonConfiguration.hh
2705   G4Fissioner.cc
2706   G4InuclCollider.cc
2707   G4NonEquilibriumEvaporator.cc
2708   G4NucleiModel.cc
2709 
2710 - G4PreCompoundDeexcitation.cc:  Drop "G4int" casts as no longer required.
2711 
2712 23 September 2010 Michael Kelsey (hadr-casc-V09-03-78)
2713 ------------------------------------------------------
2714 - G4CascadeInterface, G4InuclCollider:  change user selection function name
2715   to usePreCompoundDeexcitation(), per Julia Yarba.
2716 
2717 - G4PreCompoundCascadeInterface.hh,.cc, G4PreCompountInuclCollider.hh,.cc:
2718   REMOVE THESE CLASSES.  These were copied and modified versions of the
2719   standard versions, in order to test the new pre-compound de-excitation.
2720   That has been integrated with runtime flags, so the parallel versions are
2721   not required.
2722 
2723 23 September 2010 Michael Kelsey
2724 --------------------------------
2725 - G4InuclElementaryParticle.cc:  Drop warning message when converting
2726   G4ParticleDefinition to type code.
2727 
2728 - G4CascadeInterface:  Add functions for user selection of which
2729   post-cascade module to use for de-excitation of the residual nucleus.
2730   These call through to the equivalent G4InuclCollider functions.
2731 
2732 - G4InuclCollider:  Add functions for user selection of which
2733   post-cascade module to use for de-excitation of the residual nucleus.
2734   These delete and re-instantiate the appropriate de-excitation "collider".
2735 
2736 - G4PreCompoundDeexcitation:  Remove convertFragment() function, remove
2737   pass-by-value std::vector<> from getDeExcitedFragments() (use data member
2738   instead).  Clean up some obsolete code usage.
2739 
2740 - G4CascadeRecoilMaker:  Change fragment-making interface:
2741   makeRecoilNuclei() now returns G4InuclNuclei* for standard Bertini colliders.
2742   makeRecoilFragment() returns G4Fragment* for external PreCompound models.
2743   addExcitonConfiguration() sets local copy of excitons, needed in order to
2744     call the individual G4Fragment->Setxxx() functions.
2745 
2746 - G4IntraNucleiCascader.cc:  Follow renaming RecoilMaker::makeRecoilNuclei(),
2747   use new addExcitonConfiguration().
2748 
2749 - G4CascadeRecoilMaker:  Change fragment-making interface:
2750   makeRecoilNuclei() now returns G4InuclNuclei*.
2751   makeRecoilFragment() returns G4Fragment*.
2752   addExcitonConfiguration() sets local copy of excitons, needed in order to
2753     call the individual G4Fragment->Setxxx() functions.
2754 
2755 - G4IntraNucleiCascader.cc:  Follow renaming RecoilMaker::makeRecoilNuclei(),
2756   use new addExcitonConfiguration().
2757 
2758 22 September 2010 Michael Kelsey
2759 --------------------------------
2760 - G4CascadeMomentum.hh:  This should have been removed from the package long
2761   ago.  Apologies for the oversight.
2762 
2763 22 September 2010 Julia Yarba
2764 -----------------------------
2765 Added 1st prototype of interface between Bartini cascade and PreCompound model
2766 (post-cascade de-excitation).
2767 
2768 Changes only to:
2769 /geant4/source/processes/hadronic/models/cascade/cascade
2770 
2771 New developments are those G4PreCompound* classes; the GNUmakefile adapted to
2772 include necessary links.
2773 
2774 The PreComp wrapper is G4PreCompundDeexcitation class.
2775 
2776 The logic, loops, conditions, etc., in the event processing are the same as in
2777 the "native" Bertini code. I actually copied it over from G4CascadeInterface,
2778 and started from there.
2779 
2780 However, there're a few technical changes that I'd like to mention.
2781 
2782 1. G4PreCompoundInterface inherits directly from G4HadronicInteraction.
2783 I felt that we'd not need G4VIntra..., because its only advantage is a pointer
2784 (and related access methods) to G4VPreCompoundModel.
2785 This has now moved to the de-excitation wrapper.
2786 
2787 2. In the Collider itself, I've made the data member to be
2788  G4CascadeColliderBase* theDeexcitation
2789 This way, it can be transparently set to the native one or the PreComp one
2790 (both inherit from G4CascadeColliderBase).
2791 
2792 3. There's a setDeExcitation(...) methond in the collider, and also in the interface
2793 (which will pass it down to the collider).
2794 
2795 19 September 2010 Michael Kelsey (hadr-casc-V09-03-77)
2796 ------------------------------------------------------
2797 - G4CascadeInterface.cc:  Bug fix to logic in retryInelasticNucleus()
2798 
2799 17 September 2010 Michael Kelsey (hadr-casc-V09-03-76)
2800 ------------------------------------------------------
2801 - G4CascadeInterface:  Add support to pass nucleus projectiles into
2802   collider.  Not tested or guaranteed to work, but G4IntraNucleiCascader is
2803   supposed to deal with them.
2804 
2805 16 September 2010 Michael Kelsey
2806 --------------------------------
2807 - G4CascadeInterface:  Extensive reorganization, moving most
2808   functionality out of ApplyYourself and into small member functions.
2809   Complicated end-of-loop conditions encapsulated.  Data members made into
2810   pointers to hide dependences from outside world.
2811 
2812 16 September 2010 Michael Kelsey (hadr-casc-V09-03-75)
2813 ------------------------------------------------------
2814 - G4CascadeInterface.cc:  Add parentheses in end-of-while block to fix
2815   compilation warning in GCC 4.3.
2816 
2817 - G4IntraNucleiCascader.cc:  In decayTrappedParticle(), check for photon
2818   daughters and put them directly onto output list.
2819 
2820 16 September 2010 Michael Kelsey
2821 --------------------------------
2822 - G4CascadParticle.hh:  Make getGeneration() const.
2823 
2824 - G4CascadeDeexcitation.hh:  Fix compiler warning about order of data members.
2825 
2826 - G4IntraNucleiCascader:  Intercept hyperons which are "trapped" in nuclear
2827   potential, and decay them immediately to produce usable secondaries.  This
2828   resolves problem with sub-MeV final-state hyperons (reported by A. Dotti),
2829   but is not entire correct.  Properly, the hyperon should be incorporated
2830   into a hypernucleus fragment.
2831 
2832 - G4InuclElementaryParticle.hh:  Add hyperon() identification function, and
2833   constructor to take G4DynamicParticle directly.
2834 
2835 - G4InuclParticle.hh, G4InuclNuclei.hh:  Add constructor to take
2836   G4DynamicParticle directly.
2837 
2838 15 September 2010 Michael Kelsey (hadr-casc-V09-03-74)
2839 ------------------------------------------------------
2840 - G4CascadeDeexcitation:  NEW collider to handle post-cascade processing of
2841   nuclear fragment.  Encapsulates BigBanger and Evaporators.  Eventually
2842   will have alternative (configurable or #ifdef) implementation using G4
2843   external "pre-compound" models instead of Bertini factories.
2844 
2845 - G4InuclCollider:  Remove post-cascade colliders (BigBanger, Evaporators),
2846   replace with new G4CascadeDeexcitation.
2847 
2848 - G4LorentzConverter:  Move construtor implementations to .cc file, and make
2849   sure all constructors have initializers for all data members.
2850 
2851 14 September 2010 Michael Kelsey (hadr-casc-V09-03-73)
2852 ------------------------------------------------------
2853 Migrate to integer A and Z values for nuclear configurations.  Includes both
2854 explicit arguments for G4InuclNuclei, and function arguments, computational
2855 parameters involved in nuclear configurations, breakup, etc.
2856 
2857   G4CascadeCheckBalance.cc
2858   G4CascadeInterface.cc
2859   G4CascadeRecoilMaker.hh
2860   G4Fissioner.hh,cc
2861   G4InuclEvaporation.cc
2862   G4InuclNuclei.hh,cc
2863   G4InuclSpecialFunctions.hh
2864   G4NonEquilibriumEvaporator.hh,cc
2865   G4NucleiModel.hh,cc
2866   G4PreCompoundCascadeInterface.cc
2867   bindingEnergy.cc
2868   bindingEnergyAsymptotic.cc
2869   nuclearLevelDensity.cc
2870   paraMaker.cc
2871 
2872 - G4InuclSpecialFunctions.hh:  Eliminate bindingEnergy functions which are
2873   no longer used, along with their .cc files:
2874 
2875   bindingEnergyKummel
2876   bindingEnergyExact
2877 
2878 Migration validated using 100 events (20 GeV pi+ on lead) with verbose==4.
2879 Entire log files (9.6M lines, 433 MB) identical before and after migration.
2880 
2881 13 September 2010 Michael Kelsey
2882 --------------------------------
2883 - G4InuclElementaryParticle:  Move printParticle() implementation to .cc,
2884   and add printing of particle name to output.
2885 
2886 - G4InuclNuclei.cc:  Move base-class printing to first line of output, to
2887   match G4InuclEP.
2888 
2889 10 September 2010 Michael Kelsey (hadr-casc-V09-03-72)
2890 ------------------------------------------------------
2891 - G4CascadeRecoilMaker:  Add new goodNucleus() function with functionality
2892   from G4IntraNucleiCascader::goodCase().  Add parameter to set "rounding
2893   tolerance" for small/negative mass differences.  Drop getRecoilFragment()
2894   in favor of user calling makeRecoilFragment() directly (instead of doing
2895   it collide()), which returns a non-const pointer.
2896 
2897 - G4IntraNucleiCascader: Remove previously introduced getResidualMass() and
2898   makeResidualFragment() functions, along with G4InuclNuclei object.
2899   Replace with new RecoilMaker utility.  Move goodCase() to RecoilMaker, and
2900   begin to simplify end-of-cascade processing.
2901 
2902 - G4ExitonConfiguration.hh:  Add function to reset values to zero.
2903 
2904 - G4InuclNuclei:  Add function to zero out exciton configuration, and use
2905   it in fill() functions.
2906 
2907 9 September 2010 Michael Kelsey
2908 -------------------------------
2909 - G4CascadeCheckBalance:  Add new collide() interface to take lists of both
2910   G4InuclElementaryParticles and G4CascadParticles; supports use by
2911   G4IntraNucleiCascader and G4CascadeRecoilMaker.
2912 
2913 - G4CascadeRecoilMaker:  NEW pseudo-Collider class to compute the nuclear
2914   recoil kinematics of a cascade, either in process or completed.  To be
2915   used by G4IntraNucleiCascader; uses G4CascadeCheckBalance to do work.
2916 
2917 6 September 2010 Michael Kelsey (hadr-casc-V09-03-71)
2918 -----------------------------------------------------
2919 - G4NucleiModel:  Add protections in generateInteractionPartners() so that
2920   nucleon and quasideuteron interactions are only selected if there are
2921   "enough" nucleons of the necessary type still available (xxxNumberCurrent).
2922 
2923 - G4InuclNuclei:  Add fill() functions which overwrite the entire particle
2924   structure, with same argument lists as constructors.  Will be used mainly
2925   by G4IntraNucleiCascader::makeResidualFragment().
2926 
2927 - G4IntraNucleiCascader:  Hide non-physical nucleus message behind verbose
2928   flag.  Add function and data member to build recoil nucleus (fragment) at
2929   end of every iteration; will eventually replace functionality of
2930   getResidualMass().
2931 
2932 2 September 2010 Michael Kelsey (hadr-casc-V09-03-70)
2933 -----------------------------------------------------
2934 - G4NucleiModel.cc:  Restore hadr-casc-V09-03-68 revision 1.71, and remove
2935   the two resize(3) actions.
2936 
2937 NOTE:  The exercise below has (finally) resolve the cross-section
2938 discrepancy reported by Sunanda Banerjee back in July.  It turns out that my
2939 use of "resize(3)" to pre-allocate the qdeutron and acsec buffers on each
2940 interaction was incorrect.  This doesn't just reserve memory, it fills the
2941 vectors with three elements, so that subsequent push_back()'s fill [3], [4],
2942 etc.
2943 
2944 2 September 2010 Michael Kelsey
2945 -------------------------------
2946 - G4NucleiModel.cc: Reverted to hadr-casc-V09-03-38 revision 1.45, and
2947   interface changes incorporated.  See NOTE below from 28 July 2010.
2948   Cross-section changes have not been resolved or validated.  Since -38
2949   revision has better data/MC matching (ratio near 1), it is restored as the
2950   baseline version, and changes will be re-done incrementally.
2951 
2952   Each increment after (0) is tagged "kelsey-20100902x", x=a,b,c,d etc.
2953 
2954   0)  Implement new ctor and generateModel() calls
2955       Make cross-section tables statically initialized
2956       Include absorptionCrossSection definition
2957   1)  Use lookup tables for cross-sections, and new interpolator
2958       Change CHC_CHECK to G4CASCADE_DEBUG_CHARGE
2959   2)  Use this package's bindingEnergy() function
2960   3)  Update diagnostic messages and verbosity levels;
2961       Add missing initializers to all constructors;
2962       Use data-member buffer for G4CollisionOutput
2963   4)  Use generateWithRandomAngles() everywhere appropriate;
2964       Collapse if-cascades to use if-return where possible
2965   5)  Make generateModel() re-usable with data-member buffers
2966   6)  Energy-momentum conservation checking;
2967       Implement generateNucleonMomentum;
2968       Remove extraneous semicolons and blank lines
2969   7)  Use local variables in passFermi();
2970       Fix some minor LorentzVector calculations;
2971       Use generateNucleonMomentum() for quasi-deuterons
2972   8)  Use data-member buffers for quasideuterons, coords, mom.
2973   9)  Use enum labels for quasideuteron codes
2974   10) Restore Dennis' improved potential (6-zone) calculations
2975 
2976 4 August 2010 Michael Kelsey (hadr-casc-V09-03-69)
2977 --------------------------------------------------
2978 - G4CascadeData:  Add name data member and optional ctor argument, use
2979   when printing tables.
2980 
2981 - G4CascadeFunctions.icc:  Pretty-up printing output using name string.
2982 
2983 - G4Cascade*Channel.cc:  Add name string to data() ctor, use central part of
2984   class name, e.g., "PiMinusP" for G4CascadePiMinusPChannel.
2985 
2986 - G4ElementaryParticleCollider.cc:  Add printing of all final-state tables,
2987   one time only, protected by G4CASCADE_DEBUG_SAMPLER.
2988 
2989 - GNUmakefile:  Add G4CASCADE_DEBUG_SAMPLER preprocessor flag.
2990 
2991 3 August 2010 Michael Kelsey (hadr-casc-V09-03-68)
2992 --------------------------------------------------
2993 - G4CascadeData.hh: Add print() and printXsec() functions to dump tables.
2994 - G4CascadeData.icc:  Move implementations out of G4CascadeData.hh file.
2995 
2996 - G4CascadeFunctions.hh,icc: Add printTable() to dump tables.
2997 
2998 - G4CascadeInterpolator.hh,icc: Add printBins() to dump energy bin edges.
2999 
3000 - G4CascadeSampler.hh,icc: Add print() to call through to interpolator.
3001 
3002 NOTE:  This should be the last set of functional changes for a while.
3003 Sunanda Bannerjee reported substantial changes in validation plots for the
3004 Bertini cascade between 4.9.3-ref-05 (hadr-casc-V09-03-23-01) and
3005 4.9.3-ref-06/4.9.4-beta-01 (hadr-casc-V09-03-43).
3006 
3007 28 July 2010 Michael Kelsey (hadr-casc-V09-03-67)
3008 -------------------------------------------------
3009 - G4NucleiModel.cc:  Set deuteron arrays to fixed length (3).  Add A/Z
3010   values to generateModel diagnostic message.
3011 
3012 - G4EquilibriumEvaporator.cc:  Change some fixed length std::vector<> to
3013   simple C arrays.
3014 
3015 - G4Fissioner.cc:  Move G4FissionStore to class data member for reuse.
3016 
3017 - G4FissionStore:  Add ::clear() function to support reuse, move addConfig()
3018   implementation to .cc file.
3019 
3020 - G4IntraNucleiCascader:  Move G4NucleiModel to class-level data member
3021   (pointer) so it can be reused across collisions.
3022 
3023 26 July 2010 Michael Kelsey
3024 ---------------------------
3025 - G4Analyzer.cc:  Use const-refs for particle lists.
3026 
3027 - G4BigBanger, G4ElementaryParticleCollider:  Move std::vector<> buffers to
3028   .hh file to allow reuse.
3029 
3030 - G4NucleiModel.cc:  Simplify buffers used in generateModel() to reduce
3031   G4double allocations.
3032 
3033 23 July 2010 Michael Kelsey (hadr-casc-V09-03-66)
3034 -------------------------------------------------
3035 - G4CascadeInterface:  Move G4CollisionOutput to .hh file for reuse between
3036   events.
3037 
3038 - G4IntraNucleiCascader:  Move buffers for cascade output to .hh file, so
3039   they can be reused between events.
3040 
3041 - G4NucleiModel:  Move G4CollisionOutput to .hh file for reuse; use
3042   references for bullet and target args to G4EPCollider.
3043 
3044 21 July 2010 Michael Kelsey (hadr-casc-V09-03-65)
3045 -------------------------------------------------
3046 - GNUmakefile:  Add new G4CASCADE_CHECK_ECONS to turn off all of the
3047   internal conservation checks (reduce std::vector<> memory churn!).
3048 
3049 - G4CascadeColliderBase.cc:  Use G4CASCADE_CHECK_ECONS to set the default
3050   value of "doConservationChecks": true if defined, false if not defined.
3051   This is done with #ifdef-else-endif block, NOT some fancy macro.
3052 
3053 - G4CascadeInterface.cc:  Use G4CASCADE_SKIP_ECONS to toggle reporting
3054   violations before end of loop (don't need to call balance.okay() twice!).
3055 
3056 - G4ElementaryParticleCollider.cc:  Put verbosity check before call to
3057   validateOutput() to avoid unnecessary vector manipulations.
3058 
3059 - G4IntraNucleiCascader.cc:  Set doConservationChecks = true
3060   unconditionally; used to reject bad cascades.
3061 
3062 - G4NucleiModel.cc:  Use G4CASCADE_CHECK_ECONS to hide balance.collide().
3063 
3064 20 July 2010 Michael Kelsey (hadr-casc-V09-03-64)
3065 -------------------------------------------------
3066 - G4CascadeColliderBase: Make G4CascadeCheckBalance a pointer member, move
3067   ctor and dtor to .cc file.  Change balance tolerances to 1 per mil and 1
3068   MeV.
3069 
3070 - G4InuclCollder:  Make all colliders pointer members.
3071 
3072 - G4IntraNucleiCascader:  Make EPCollider a pointer member, and call
3073   G4CollisionOutput::setOnShell() to balance energy-momentum for null fragments.
3074 
3075 - G4InuclNuclei.cc:  Preserve momentum magnitude when setting excitation
3076   energy by setting mass and kinetic energy.
3077 
3078 19 July 2010 Michael Kelsey (hadr-casc-V09-03-63)
3079 -------------------------------------------------
3080 - G4CascadeCheckBalance.cc:  Change zero-tolerance to 10 keV (1e-5) from
3081   1 keV (1e-6).
3082 
3083 - G4CollisionOutput.hh:  Fix capitalization of "numberOfOutgoingParticles".
3084 
3085 - G4EquilibriumEvaporator.cc:  Remove duplicate EEXS setting.
3086 
3087 - G4InuclNuclei:  Change implementation of setExitationEnergy() to adjust
3088   mass while keeping momentum vector constant.  Currently done with
3089   "expensive" LorentzVector manipuation.  Should be done by recomputing
3090   kinetic energy given new mass value.
3091 
3092 - G4NonEquilibriumEvaporator.cc:  Modify particle-creation block to work as
3093   G4EquilibriumEvaporator now does.  Simplify some if-blocks.
3094 
3095 16 July 2010 Michael Kelsey (hadr-casc-V09-03-62)
3096 -------------------------------------------------
3097 - G4CollisionOutput:  Add interfaces to handle G4CascadParticles.
3098 
3099 - G4IntraNucleiCascader:  Eliminate local "inter_case" data member and
3100   function.  Use base class G4InteractionCase directly.  Add functionality
3101   to test for conservation and recoil before exiting "itry" loop, and redo
3102   cascade if unbalanced recoil fragment.
3103 
3104 - G4{PreCompound}InuclCollider.cc:  Drop "setInteractionCase()" function.
3105 
3106 15 July 2010 Michael Kelsey (hadr-casc-V09-03-61)
3107 -------------------------------------------------
3108 - G4CollisionOutput:  New ::add() function to combine two objects.  New
3109   accessors to get total charge and baryon number.
3110 
3111 - G4CascadeCheckBalance:  Make tempOutput data member, for thread-safety,
3112   rather than static variables.  Use new G4CollisionOutput accessors.
3113 
3114 - G4IntraNucleiCascader.cc:  Move local output buffers outside while loop,
3115   use std::vector<>::insert() for copying.
3116 
3117 - G4InuclCollider.cc:  Use new G4CollisionOutput::add() interface.
3118 
3119 - G4NucleiModel.cc:  Hide conservation checks behind verbose>2.  Otherwise
3120   log files get too big
3121 
3122 15 July 2010 Michael Kelsey (hadr-casc-V09-03-60)
3123 -------------------------------------------------
3124 - G4CascadeCheckBalance:  Add layer of protection in relativeX() (check
3125   initial values) to avoid divide-by-zero errors.  Add another interface to
3126   accept list of G4CascadParticles, for use with G4NucleiModel.  Add check
3127   of momentum direction balance, not just magnitudes.
3128 
3129 - G4IntraNucleiCascader.cc:  Rearrange end-of-loop if-blocks to allow for
3130   conservation checking prior to return.  Add reporting of both too-low and
3131   too-high residual energy (at verbose=2) for single-nucleon fragments.
3132 
3133 - G4InuclCollider.cc:  Remove re-named conservation checks, now all done by
3134   colliders themselves.
3135 
3136 - G4InuclParticle.hh:  Add setKineticEnergy() function to simplify handling
3137   of some kinematics.
3138 
3139 - G4NucleiModel:  Add G4InuclNuclei data member (created in generateModel()),
3140   for use with conservation checks.  Do check at end of generateParticleFate().
3141 
3142 15 July 2010 Michael Kelsey (hadr-casc-V09-03-59)
3143 -------------------------------------------------
3144 - G4InuclNuclei:  Use G4DynamicParticle::theDynamicalMass to carry around
3145   excitation energy (== theDynamicalMass-thePDGMass).  This allows
3146   excitation to be changed on the fly, with all kinematics handled
3147   correctly.  It also allows ONLY the ground state nucleus to be created as
3148   a G4Ions object (whether global or private), reducing the number of such
3149   objects by a factor of thousands.
3150 
3151 14 July 2010 Michael Kelsey (hadr-casc-V09-03-58)
3152 -------------------------------------------------
3153 - G4CollisionOutput.cc:  For initial four-momentum adjustment, skip over
3154   particles which would acquire negative energy after "correction."
3155 
3156 - G4ElementaryParticleCollider.cc: Bug fix for two-body final states.
3157   Kinematics should not require "rescaling."  That was driven by states
3158   which were kinematically forbidden, with m1+m2 > etot_scm (e.g., pi0 p ->
3159   pi+ n with just 5 MeV kinetic energy).  Now those states are caught and
3160   rejected.
3161 
3162 - G4CascadeInterface.cc, G4InuclCollider.cc:  Improve diagnostics reporting
3163   number of retries.
3164 
3165 - G4EquilibriumEvaporator.cc:  When computing residual excitation
3166   (EEXS_new), original thrown energy, S, should be used, not reboosted
3167   particle after recoil.  Simplify evaporation kinematics to conserve
3168   four-momentum automatically (PEX -= mom).
3169 
3170 14 July 2010 Michael Kelsey (hadr-casc-V09-03-57)
3171 -------------------------------------------------
3172 - G4CascadeColliderBase: New subclass of G4VCascadeCollider, which takes
3173   over all of its concrete functionality, and adds conservation checker
3174   (G4CascadeCheckBalance) as data member.  Wrapper functions and control
3175   flag allow colliders to user it transparently.
3176 
3177 - G4VCascadeCollider:  Move concrete functionality to new base class.
3178 
3179 - All colliders:  Change base class to new G4CascadeColliderBase.  Remove
3180   local copies of conservation-checker, using new base function instead.
3181 
3182   cascade/include/G4BigBanger.hh
3183   cascade/include/G4ElementaryParticleCollider.hh
3184   cascade/include/G4EquilibriumEvaporator.hh
3185   cascade/include/G4EvaporationInuclCollider.hh
3186   cascade/include/G4Fissioner.hh
3187   cascade/include/G4IntraNucleiCascader.hh
3188   cascade/include/G4InuclCollider.hh
3189   cascade/include/G4NonEquilibriumEvaporator.hh
3190   cascade/include/G4PreCompoundInuclCollider.hh
3191   cascade/src/G4BigBanger.cc
3192   cascade/src/G4ElementaryParticleCollider.cc
3193   cascade/src/G4EquilibriumEvaporator.cc
3194   cascade/src/G4EvaporationInuclCollider.cc
3195   cascade/src/G4Fissioner.cc
3196   cascade/src/G4IntraNucleiCascader.cc
3197   cascade/src/G4InuclCollider.cc
3198   cascade/src/G4NonEquilibriumEvaporator.cc
3199   cascade/src/G4PreCompoundInuclCollider.cc
3200 
3201 - G4EquilibriumEvaporator:  Use new functionality (above) to turn off
3202   conservation checks when evaporating fission products.
3203 
3204 - G4CascadeInterface.cc:  Report number of retries in verbose messages.
3205 
3206 - G4IntraNucleiCascader.cc:  Remove sanity check on afin/zfin vs. model.
3207 
3208 13 July 2010 Michael Kelsey (hadr-casc-V09-03-56)
3209 -------------------------------------------------
3210 - G4CascadeCheckBalance:  Add zero protection (needed for momentum ratio)
3211   using a static tolerance parameter.
3212 
3213 - G4EquilibriumEvaporator.cc:  Add dumping of G4CollisionOutput before exit,
3214   some fixes for "PEX" adjustments as EEXS changes.
3215 
3216 - G4NonEquilibriumEvaporator.cc:  Add conservation checking, dump of output,
3217   some fixes for "PEX" adjustments as EEXS changes.
3218 
3219 - G4Fissioner.cc:  Add conservation checking, remove addition of excitation
3220   energy to input nucleus mass, since already included.
3221 
3222 13 July 2010 Michael Kelsey
3223 ---------------------------
3224 - G4CascadeCheckBalance.cc:  Hide violation reports behind verbose == 1.
3225 
3226 - G4ElementaryParticleCollider.cc:  Bump ::collide() message to verbose > 1.
3227 
3228 - G4EquilibriumEvaporator.cc:  Add conservation checking, collapse if-cascades
3229   by doing failure tests and exits up front, add sanity check on eex_real.
3230 
3231 - G4IntraNucleiCascader.cc:  Add diagnostic messages and some FIXME
3232   comments, validate afin/zfin against G4NucleiModel result.
3233 
3234 - G4InuclCollider.cc:  Move conservation check outside verbosity flag.  This
3235   adds to CPU usage, so may need #ifdef protection later.  Adjust a few
3236   verbosity levels.
3237 
3238 - G4LorentzConvertor.cc:  Bump all diagnostic messages to verbose > 2.
3239 
3240 - G4NucleiModel.cc:  Simplify main if-block to put failure up front; add
3241   debugging messages when decrementing proton or neutron counts.
3242 
3243 11 July 2010 Michael Kelsey
3244 ---------------------------
3245 - G4CascadeCheckBalance:  Add ctor argument with name of parent class; use
3246   this name when reporting results.  Add interface for nuclear fragment
3247   list.  Allow parent class name to be changed dynamically.
3248 
3249 - G4BigBanger.cc, G4CascadeInterface.cc, G4ElementaryParticleCollider.cc,
3250   G4InuclCollider.cc, G4NucleiModel.cc:  Pass name to G4CascadeCheckBalance.
3251 
3252 - G4Fissioner.cc:  Use G4CascadeCheckBalance to test energy conservation.
3253 
3254 - G4InuclNuclei.hh:  Add model ID as optional ctor argument.
3255 
3256 - G4InuclCollider.cc:  Move balance checks on evaporators outside verbosity.
3257   Adjust name of G4CascadeCheckBalance for clear reporting.
3258 
3259 - G4VCascadeCollider.hh:  Add protected function to change name dynamically.
3260 
3261 6 July 2010 Dennis Wright (hadr-casc-V09-03-55)
3262 -----------------------------------------------
3263 - G4IntraNucleiCascader.cc: add to final particle list those cascade
3264   particles which were formerly abandoned at cascade termination;
3265 - G4IntraNucleiCascader.cc: allow meson excitons to pass out of nucleus
3266   since they are not proper excitons, and would be lost otherwise
3267 
3268 4 July 2010 Dennis Wright (hadr-casc-V09-03-54)
3269 -----------------------------------------------
3270 - tag changes up to now
3271 
3272 2 July 2010 Michael Kelsey
3273 --------------------------
3274 - G4BigBanger.cc:  Moving "generateMomentumModules()" inside loop.  For
3275   three-body decays, the angles are not ajustable (so always fails).
3276 
3277 - G4CascadeInterface.cc:  Set verbosity on G4CollisionOutput.
3278 
3279 - G4EquilibriumEvaporator.cc:  Simplify if-cascades to reduce nesting (test
3280   for errors and exit up front, rather than in else-blocks).
3281 
3282 - G4InuclCollider.cc:  Set verbosity on G4CollisionOutput.
3283 
3284 - G4IntraNucleiCascader.cc:  Throw away casacde which leaves "negative energy
3285   recoil" (i.e. rest-frame energy of recoil less than mass of nucleus or
3286   nucleon).
3287 
3288 1 July 2010 Michael Kelsey
3289 --------------------------
3290 - G4InuclCollider.cc:  Used wrong input target for conservation-law checking
3291   subsequent to G4EquilibriumEvaporator.
3292 
3293 - G4EquilibriumEvaporator.cc, G4NonEquilibriumEvaporator.cc:  Handle
3294   excitation energy differently with new G4InuclNuclei interface.  Compute
3295   updated values correctly, by taking nuclear mass difference then
3296   subtracting energy of evaporated particle.
3297 
3298 - G4InuclNuclei:  Reorganization to properly incorporate excited states.
3299   Excitation energy included in mass in all cases.  setExcitationEnergy() now
3300   replaces G4PartDefn pointer with new excited state.  getNucleiMass() takes
3301   (optional) excitation, calls G4NucleiProperties to get mass value.  For
3302   weird fragments, multiple isomers allowed, assigned unique non-standard
3303   PDG codes.  Include particle name in printout (now in .cc file).
3304 
3305 - G4CollisionOutput.cc:  Do not include nuclear excitation energy in output
3306   sum; now included with nuclear mass automatically (and properly).
3307 
3308 - G4CascadeCheckBalance.cc:  Do not include nucler excitation energy in input
3309   sum; now inluded with nuclear mass automatically (and properly).
3310 
3311 - G4IntraNucleiCascader.cc:  For recoil nuclear fragments, treat excitation
3312   energy properly: compute as difference between recoil "mass" (recoil-frame
3313   energy) and ground-state A/Z mass, and pass into G4InuclNuclei ctor.
3314   After the cascade, add some recoil energy checks to deal with both
3315   floating-point round-off, and quasi-elastic scatters (which change the
3316   bullet direction, and leave the nucleus with "missing" energy).
3317 
3318 - G4BigBanger.cc:  Simplify boost to "target" nucleus, using "boostVector"
3319   instead of G4LorentzConvertor machinery.
3320 
3321 30 June 2010 Michael Kelsey
3322 ---------------------------
3323 - G4BigBanger.cc:  Improve handling of excitation energy as part of nuclear
3324   mass, deal with two-body explosion properly (x=0.5, not random).  Some
3325   tweaks to diagnostic messages.
3326 
3327 - G4CascadeCheckBalance:  Add excitation energy to total energy for bullet
3328   and target nuclei.  This is done in G4CollisionOutput for secondaries.  It
3329   is NOT relativistically correct (should add to mass, not energy), but is
3330   consistent.
3331 
3332 - G4CollisionOutput.cc:  Use "getExitationEnergyInGeV()" instead of "0.001*".
3333 
3334 - G4IntraNucleiCascader.cc:  More diagnostic messages, improve the afin/zfin
3335   sanity check by requiring A>=Z.
3336 
3337 28 June 2010 Michael Kelsey
3338 ---------------------------
3339 - G4CascadeCheckBalance:  Report violations on G4cerr always, regardless
3340   of verbosity level.  Add collide(...,<vector>) interface to allow use
3341   from within G4ElementaryParticleCollider.
3342 
3343 - G4ElementaryParticleCollider.cc:  Add conservation checks within ::collide().
3344 
3345 - G4IntraNucleiCascader.cc:  Add more diagnostic messages.  Test for
3346   negative values of afin, zfin, and try again.  Set round-off limit (1e-6),
3347   and test nuclear recoil energy for bound (setting to zero) before doing
3348   energy-violation test.
3349 
3350 - G4InuclNuclei.cc:  Abort job if passed negative Z or A argument.
3351 
3352 28 June 2010 Michael Kelsey
3353 ---------------------------
3354 - G4BigBanger.cc:  Missed one instance of GetBindingEnergy().
3355 
3356 26 June 2010 Dennis Wright
3357 --------------------------
3358 - G4InuclNuclei:  Fix bug in calculation of PDG code.
3359 
3360 25 June 2010 Michael Kelsey (hadr-casc-V09-03-53)
3361 -------------------------------------------------
3362 - G4ElementaryParticleCollider.cc:  MAJOR BUG FIX:  Three different places
3363   in generating N-body momenta had incorrect "recoil" calculations.  The
3364   Nth four-vector was computed as simply -total, which produced negative
3365   energy states (obviously).  The correct calculation should have been
3366   N = G4LV(0,0,0,etot) - (total) in each instance.
3367 
3368 24 June 2010 Michael Kelsey (hadr-casc-V09-03-52)
3369 -------------------------------------------------
3370 - G4CascadeCheckBalance.cc:  Bug fixes to limit checks; should be using
3371   std::abs(), or negative violations don't get caught!  Also did some
3372   cleanup for compiler warnings see on Linux.
3373 
3374 23 June 2010 Michael Kelsey
3375 ---------------------------
3376 - G4CascadeInterface.cc:  Fix infinite-loop bug with energy-violation; must
3377   check for (nTries>maxTries) outside parenthetical, with balance.okay()
3378   inside.  Do conservation checks all the time, not just with flag set.  If
3379   e-violation is "infinite loop", dump last generated event and abort job.
3380 
3381 - G4CascadeCheckBalance:  Add checks on baryon number, charge, and kinetic
3382   energy.  "Global" sanity check (::okay() function) does not include K.E.
3383 
3384 23 June 2010 Michael Kelsey (hadr-casc-V09-03-51)
3385 -------------------------------------------------
3386 - bindingEnergy.cc:  Replace entire function with call-through to
3387   G4NucleiProperties.  Copy test for valid A/Z from there, and return
3388   0. directly on failure; suppresses warning message in 9.4-beta.
3389 
3390 - G4EquilibriumEvaporator.cc, G4Fissioner.cc, G4IntraNucleiCascader.cc
3391   G4InuclNuclei.cc, G4NonEquilibriumEvaporator.cc, G4NucleiModel.cc
3392   G4VCascadeCollider.cc:  Restore calls to local "bindingEnergy()" to
3393   get wrapper function above; suppresses warning messages in 9.4-beta.
3394 
3395 - G4NucleiModel.cc:  Make class re-usable (had been assumed in -47 tag, but
3396   was not true!), by clearing all parameter vectors in generateModel().
3397   Values of A,Z are tested first, and previous data kept if same nucleus is
3398   being modelled.
3399 
3400 23 June 2010 Michael Kelsey
3401 ---------------------------
3402 - G4CascadeInterface.cc:  Minor fix to rationalize version jumpings.
3403 - G4NucleiModel.cc:  Fix bug in partners list termination mods below, and
3404   remove reflection-recoil from boundaryTransition().
3405 
3406 
3407 21 June 2010 Michael Kelsey (MHK-20100621)
3408 ------------------------------------------
3409 - G4CascadeInterface.cc:  Bring MHK-20100620 version back to HEAD, make same
3410   parenthesis fix for GCC 4.5 compilation.
3411 
3412 - G4IntraNucleiCascader.cc:  Bug fix nuclear recoil kinematics introduced in
3413   MHK-20100620.
3414 
3415 - G4NucleiModel.cc:  Bring MHK-20100620 version back to HEAD, apply ctor
3416   argument fix.  Eliminate creating temporaries for terminal "partners" on
3417   list; default ctor will take care of it.  Hide negative path-length report
3418   behind verbose flag, and don't return an empty list.
3419 
3420   Add block of code in ::boundaryTransition() which recoils the nucleus when
3421   the secondary is reflected off the potential, to balance the momentum
3422   transfer.  This is implemented by computing the boost for the full nucleus
3423   using the computed three-momentum transfer, and applying that boost to the
3424   secondary.
3425 
3426 23 June 2010 Michael Kelsey (hadr-casc-V09-03-50)
3427 -------------------------------------------------
3428 - G4IntraNucleiCascader.cc:  Restore G4NucleiModel as local data member.
3429   Not well designed for reuse.
3430 
3431 21 June 2010 Michael Kelsey (hadr-casc-V09-03-49)
3432 -------------------------------------------------
3433 NOTE:  Changes below were version jumped into V09-03-48.  Tag above ONLY
3434        includes these two changes!
3435 
3436 - G4CascadeInterface.cc:  Add parentheses in main iteration loop to support
3437   mixed && and || (reported by gcc-4.5).
3438 
3439 - G4NucleiModel.cc:  Fix mistake in passing ctor args to generateModel().
3440 
3441 20 June 2010 Michael Kelsey (MHK-20100620)
3442 ------------------------------------------
3443 - G4CascadeCheckBalance:  New utility class to do energy and momentum
3444   conservation testing.  Implemented as a "collider" to resue interface.
3445 
3446 - G4CascadeInterface.cc:  Use new G4CascadeCheckBalance for energy
3447   conservation.
3448 
3449 - G4CollisionOutput:  Add setVerboseLevel() function, diagnostic reports in
3450   ::setOnShell(), and collapse if-cascades to use "if (!xxx) return" instead
3451   of multiple nestings.
3452 
3453 - G4ElementaryParticleCollider.cc: Collapse if-cascade to use "if (!xxx)
3454   return" instead of multiple nestings.
3455 
3456 - G4IntraNucleiCascader.cc:  Improve diagnostic messages, change some G4cout
3457   to G4cerr.
3458 
3459 - G4InuclCollider:  Make output buffers data members to reduce churn;
3460   simplify if-cascades to use "if (!xxx) return" instead of nesting; add
3461   energy-conservation checks at each stage of cascade.
3462 
3463 - G4NucleiModel.cc:  Improve diagnostics, collapse if-cascades to use "if
3464   (!xxx) return" instead of multiple nestings.
3465 
3466 18 June 2010 Michael Kelsey (hadr-casc-V09-03-48)
3467 -------------------------------------------------
3468 - G4CascadeInterface.cc:  Add check on energy conservation between initial
3469   and final states; more than 5% imbalance triggers repeat generation of
3470   cascade.  This check may be disabled with flag G4CASCADE_SKIP_ECONS.  Also
3471   did some minor cleanup of the code.
3472 
3473 - cascade/GNUmakefile:  Add support for new flag above.
3474 
3475 17 June 2010 Michael Kelsey (hadr-casc-V09-03-47)
3476 -------------------------------------------------
3477 - G4CascadeInterface, G4PreCompoundCascadeInterface:  Make G4InuclCollider a
3478   local data member, pass verbosity to it in ::ApplyYourself().
3479 
3480 - G4InuclCollider, G4ElementaryParticleCollider, G4IntraNucleiCascader,
3481   G4EquilibriumEvaporator, G4BigBanger: Make all sub-colliders local data
3482   members, pass verbosity to each of them.
3483 
3484 - G4NucleiModel:  Add ctors and generateModel() signatures so both can do
3485   particle or A/Z initialization.  Add setVerboseLevel() function.
3486 
3487 17 June 2010 Michael Kelsey (hadr-casc-V09-03-46)
3488 -------------------------------------------------
3489 - cascade/GNUmakefile: Add series of "ifneq (,...)" blocks to map
3490   environment variables for debugging onto "-D..." compiler flags:
3491 
3492   G4CASCADE_COULOMB_DEV
3493   G4CASCADE_DEBUG_CHARGE
3494   G4CASCADE_DEBUG_INTERFACE
3495   G4CASCADE_DEBUG_SORT
3496   G4CASCADE_WATCHER_HIGHZ
3497 
3498 - G4CascadeInterface.cc: Replace preprocessor flags "debug_G4...Interface"
3499   with G4CASCADE_DEBUG_INTERFACE, and "BERTDEV" with G4CASCADE_COULOMB_DEV.
3500   Fix bug with information access in debugging block.
3501 
3502 - G4EquilibriumEvaporator.cc, G4IntraNucleiCascader.cc,
3503   G4NonEquilibriumEvaporator.cc:  Eliminate preprocessor flag RUN and all
3504   code contained in "#else" blocks.
3505 
3506 - G4LorentzConverter.cc:  Add diagnostic output with different levels:  All
3507   " >>>" entry messages done for verboseLevel >= 1; all numeric reports for
3508   verboseLevel > 2.
3509 
3510 - G4NucleiModel: Replace preprocessor flag "CHC_CHECK" with
3511   G4CASCADE_DEBUG_CHARGE.
3512 
3513 - G4PreCompoundCascadeInterface.cc: Replace preprocessor flag
3514   "debug_G4...Interface" with G4CASCADE_DEBUG_INTERFACE.  Fix bug with
3515   information access in debugging block.
3516 
3517 - G4WatcherGun.cc: Replace preprocessor flag "PB" with G4CASCADE_WATCHER_HIGHZ.
3518 
3519 16 June 2010 Michael Kelsey
3520 ---------------------------
3521 - G4CascadeInterface.hh:  Add setVerboseLevel() function.
3522 
3523 - G4IntraNucleiCascader.cc:  Add reporting of momentum content for residual
3524   nuclear fragment, list of final-state particles, some cleanup of momentum
3525   balancing code.
3526 
3527 - G4LorentzConvertor:  Add reporting of bullet and target four-vectors.
3528 
3529 - G4NucleiModel.cc:  Add diagnostic output for partner-list generation,
3530   replace one random-angle code block with generateWithRandomAngles().
3531 
3532 15 June 2010 Michael Kelsey (hadr-casc-V09-03-45)
3533 -------------------------------------------------
3534 - G4CascadeInterface.cc, G4PreCompoundCascadeInterface.cc:  When converting
3535   output particles from K0/K0bar to K0S/K0L, convert kinetic energy from
3536   Bertini internal units (GeV) to GEANT4 units (MeV).
3537 
3538 - G4VCascadeCollider:  Make two separate ctors, name and name+verbose, with
3539   no default values.  All subclasses *must* provide a literal name string.
3540 
3541 12 June 2010 Michael Kelsey (hadr-casc-V09-03-44)
3542 -------------------------------------------------
3543 - G4CascadeT33piNChannel.cc:  Swapped 8-body final state tables for pipP
3544   vs. pimN.
3545 
3546 11 June 2010 Michael Kelsey (hadr-casc-V09-03-43)
3547 -------------------------------------------------
3548 - G4CascadeData.hh:  Equally trivial fix for compiler warking on Intel ICC
3549   for index[] array bounds in ::initialize().  Dimension array as [9], and
3550   set all values.
3551 
3552 08 June 2010 Gunter Folger (hadr-casc-V09-03-42)
3553 ------------------------------------------------
3554 -  trivial fix for compiler warning on gcc43 on empty body in for(...) in
3555     cascade/include/G4CascadeInterpolator.icc:67
3556 
3557 01 June 2010 Michael Kelsey (hadr-casc-V09-03-41)
3558 -------------------------------------------------
3559 - paraMaker.cc:  Fix vector initialization for Windows crash.
3560 
3561 26 May 2010 Dennis Wright (hadr-casc-V09-03-40)
3562 -----------------------------------------------
3563 - G4NucleiModel: remove conversion to fm, and conversion of cross
3564   sections to fm**2
3565 
3566 21 May 2010 Michael Kelsey (hadr-casc-V09-03-39)
3567 ------------------------------------------------
3568 Final tag for inclusion in GEANT 4.9.4-beta.  Will be validated internal and
3569 included in global Hadronics tag.
3570 
3571 - G4CascadeSampler.icc:  Activate time-saving checks on single bins.
3572 - G4ElementaryParticleCollider.cc:  Remove special case for nucleon elastic
3573   scattering.
3574 
3575 21 May 2010 Michael Kelsey (kelsey-20100521c)
3576 ---------------------------------------------
3577 - G4CascadeInterface, G4PreCompoundCascadeInterface, G4InuclEvaporation:
3578   Simplify code: fetch G4DynamicParticle out of outgoing G4InuclParticles,
3579   rather than creating new ones.  Remove all of the *Collider data members
3580   (instantiated within G4InuclCollider).  Move final state rotations to
3581   G4CollisionOutput.
3582 
3583 - G4InuclParticle:  Provide accessor to return G4DynamicParticle.
3584 
3585 - G4CollisionOutput:  Add function to apply LorentzRotation to both lists;
3586   used by G4CascadeInterface.
3587 
3588 - G4ElementaryParticleCollider:  Avoid memory churn with G4LorentzVector
3589   temporaries.
3590 
3591 21 May 2010 Michael Kelsey (kelsey-20100521b)
3592 ---------------------------------------------
3593 - G4VCascadeCollider:  New base class for all Colliders.  Carries
3594   verboseLevel data member and set-function.  ::collide() is pure virtual.
3595   Additional protected member functions will be defined to include all code
3596   shared across multiple Colliders.
3597 
3598 - Migrate all of the "Collider" factories to use new base class, removing
3599   common member functions, and replace passed-in sibling colliders with
3600   local data members (pointers for now).  Since none of these classes have
3601   persistent (state preserving) data members, the cost of more than one
3602   instantiation is minimal.
3603 
3604   G4BigBanger
3605   G4ElementaryParticleCollider
3606   G4EquilibriumEvaporator
3607   G4EvaporationInuclCollider
3608   G4Fissioner
3609   G4IntraNucleiCascader
3610   G4InuclCollider
3611   G4NonEquilibriumEvaporator
3612   G4PreCompoundInuclCollider
3613 
3614 - G4CascadeInterface.cc, G4InuclEvaporation.cc,
3615   G4PreCompoundCascadeInterface.cc:  Remove siblings from constructors for
3616   the Colliders.
3617 
3618 - G4InteractionCase.hh:  Eliminate unnecessary copying of std::pair<>'s, use
3619   initializers in ctors, add clear() function to reset to 0-0-0.  Move
3620   evaluation of bullet vs. target to new set() function, replacing separate
3621   bulletTargetSetter() in the colliders.  Add boolean accessors to avoid
3622   hard-coding inter_case values.  Change code numbers so nucleus collisions
3623   are negative, and positive codes refer to the "is" or "rtype" numbers.
3624 
3625 - G4ElementaryParticleCollider.cc:  Use G4InteractionCase to compute "is",
3626   instead of hardwiring the meaning.
3627 
3628 - G4Collider.hh:  Remove empty and never-used file.
3629 
3630 - G4EvaporationInuclCollider.cc:  Eliminate unnecessary creation of
3631   duplicate G4InuclNuclei: pass input through to G4EquilibriumEvaporator.
3632 
3633 - G4LorentzConvertor:  Add interfaces to pass G4InuclParticles directly.
3634 
3635 21 May 2010 Michael Kelsey (kelsey-20100521a)
3636 ---------------------------------------------
3637 Replace hand-coded interpolation of arrays with use of G4CascadeInterpolator.
3638 In all cases, local arrays are replaced with static const, and the
3639 interpolator object itself is declared static, to reduce memory churn.
3640 
3641   G4NucleiModel::totalCrossSection()
3642   G4EquilibriumEvaporator::getQF()
3643   G4InuclSpecialFunctions::paraMaker[Truncated]() (in paraMaker.cc)
3644 
3645 - G4CascadSpecialFunctions:  Remove. totalCrossSection() redundant with
3646   G4NucleiModel.  Move absorptionCrossSection() to G4NucleiModel.
3647 
3648 - G4CascadeInterpolator.icc:  Bug fix to catch special case of exact upper
3649   bin edge (occurs when !doExtrapolation).  If index == last + 0., just
3650   return upper edge value, without calculation.
3651 
3652 - G4NucleiModel.cc:  Use G4Cascade{Pi*}Channel and G4Cascade{NN,NP,PP}Channel
3653   classes to get total cross-sections for pi-N and N-N scattering.  Arrays
3654   for kaon and hyperon scattering should be migrated as well, once binning
3655   is resolved.  Move absorptionCrossSection() here from SpecialFunctions.
3656 
3657 20 May 2010 Michael Kelsey (kelsey-20100521)
3658 --------------------------------------------
3659 - G4CascadeInterpolator.icc:  Two bug fixes involving values at array edges.
3660 
3661 19 May 2010 Michael Kelsey, Dennis Wright
3662 -----------------------------------------
3663 - G4BertiniData.hh,.cc:  Remove unused and unnecessary class.
3664 - G4NucleiModel.cc: convert nuclear radii to fm and cross sections to
3665     fm**2.  Use six-zone model for A > 99, and make alpha a 1-zone
3666     nucleus.
3667 - G4CascadSpecialFunctions: convert pion absorption cross sections from
3668     mb to fm**2, correct spelling of method absorptionCrossSection
3669 
3670 17 May 2010 Michael Kelsey (hadr-casc-V09-03-38)
3671 ------------------------------------------------
3672 - paraMaker.cc (G4InuclSpecialFunctions::paraMaker[Truncated]):  Upper edge
3673   of interpolation array not properly handled.  Should be "if (Z >= 70.0)".
3674   This affects G4NonEquilibriumEvaporator output.
3675 
3676 17 May 2010 Michael Kelsey (hadr-casc-V09-03-37)
3677 ------------------------------------------------
3678 Bug fixes for compiler warnings (not seen on MacOSX, even with g++ -Wall)
3679 
3680 - G4CascadeData.hh: Dummy arrays needed double-braces for initialization.
3681 
3682 - G4CascadeInterpolator.icc: Extraneous decimal point in "for (i=0.;".
3683 
3684 - G4CascadeKzeroBarNChannel.cc:  Left three "old" arrays in place during
3685   conversion.
3686 
3687 14 May 2010 Michael Kelsey (hadr-casc-V09-03-36)
3688 ------------------------------------------------
3689 Remove obsolete files following reorganization of two-body scattering
3690 lookup tables.
3691 
3692   G4CascadeElasticInterface.hh,.cc
3693   G4ElasticCascadeInterface.hh,.cc
3694   G4FinalStateSampler.hh,.cc
3695   G4NucleonSampler.hh,.cc
3696   G4PionSampler.hh,.cc
3697 
3698 - G4CascadeChannel.hh,.cc:  All functionality removed, replaced with
3699   namespace containing only getQnums and CheckQnums validation functions.
3700 
3701 14 May 2010 Michael Kelsey (hadr-casc-V09-03-35)
3702 ------------------------------------------------
3703 Replace independent parallel samplers with templated base class and single
3704 implementation.  This completes the reorganization of the channel tables.
3705 
3706 - G4CascadeSampler:  Redefine as templated base, taking binning array as
3707   constructor argument.  Move implementation file from .cc to .icc.
3708   NOTE:  G4CascadeSampler.cc is removed, since not consistent with new .hh.
3709 
3710 - G4PionNucSampler:  Subclass of G4CascadeSampler<30>, replaces
3711   G4FinalStateSampler, using bins array from there.
3712 
3713 - G4KaonNucSampler:  Sublcass of G4CascadeSampler<31>, replaces previous
3714   G4CascadeSampler, using bins array from there.
3715 
3716 - G4Cascade*Channel.hh:  Change all typedefs to pass appropriate of two new
3717   samplers in template.
3718 
3719 - G4ElementaryParticleCollider.cc: Replace long "if (is==)"-cascades with
3720   switch blocks.  Move all getOutgoing calls (for pions and nucleons) into
3721   one function, and call it from outside multiplicity checks.  Use
3722   G4CascadeInterpolator for angular distributions.  Set modelID=3 in all
3723   G4InuclParticle constructions.
3724 
3725 14 May 2010 Michael Kelsey (hadr-casc-V09-03-34)
3726 ------------------------------------------------
3727 Extract lookup tables from G4PionSampler and G4NucleonSampler into
3728 individual "classes" defined and initialized with G4CascadeData.
3729 
3730 - G4CascadePi{Plus,Minus,Zero}{P,N}Channel.hh: Six new typedefs defined as
3731   with the existing G4CascadeXXXChannel, to replace G4PionSampler.
3732 
3733 - G4CascadeT33piNChannel.cc: Lookup tables for both PiPlusP and PiMinusN,
3734   implemented as with existing G4CascadeXXXChannel, from G4PionSampler.cc.
3735 
3736 - G4CascadeT31piNChannel.cc: Lookup tables for both PiMinusP and PiPlusN,
3737   implemented as with existing G4CascadeXXXChannel, from G4PionSampler.cc
3738 
3739 - G4CascadeT11pizNChannel.cc: Lookup tables for both PiZeroP and PiZeroN,
3740   implemented as with existing G4CascadeXXXChannel, from G4PionSampler.cc
3741 
3742 - G4Cascade{PP,NP,NN}Channel.hh: Three new typedefs defined as with the
3743   existing G4CascadeXXXChannel, to replace G4NucleonSampler.
3744 
3745 - G4CascadeT1NNChannel.cc: Lookup tables for both p-p and n-n scattering,
3746   implemented as with existing G4CascadeXXXChannel, from G4NucleonSampler.cc
3747 
3748 - G4CascadeT0npChannel.cc: Lookup tables for p-n scattering, implemented as
3749   with existing G4CascadeXXXChannel, from G4NucleonSampler.cc
3750 
3751 - G4CascadeFunctions.hh, .icc: Pass std::vector as non-const argument to
3752   getOutgoingParticleTypes() instead of returning internal buffer.
3753 
3754 - G4CascadeSampler.cc, G4FinalStateSampler.cc:  Add some checks in
3755   findFinalStateIndex, fillSigmaBuffer, and sampleFlat(), such that
3756   single-entry ranges don't go through the analysis, just return index 0.
3757 
3758 - G4ElementaryParticleCollider.cc: Follow change to getOutgoingParticleTypes()
3759   in generateStrangeChannelPartTypes().  Replace all uses of G4PionSampler
3760   and G4NucleonSampler with new channel "classes".
3761 
3762 14 May 2010 Michael Kelsey (hadr-casc-V09-03-33)
3763 ------------------------------------------------
3764 Continue consolidation of two-body collision lookup tables.  Unify
3765 interfaces between pion/nucleon and kaon/hyperon samplers.
3766 
3767 - G4CascadeData: Many changes to support use as data class for both
3768   kaon/hyperon and pion/nucleon tables (migration will be next tag):
3769 
3770   1) Add new first argument to template with number of bins in energy
3771      interpolation.  This replaces the (temporary) use of
3772      G4CascadeSampler::energyBins within the class definition.
3773 
3774   2) Add two additional template arguments, N8 and N9, with default values
3775      of zero.  These will be used by the pion/nucleon tables, but not by the
3776      existing kaon/hyperon tables.
3777 
3778   3) Define additional arrays for 8- and 9-body final states, using
3779      conditional dimensioning (e.g., if N8==0, use [1]).  Define second
3780      9-body constructor to accept and initialize the new arrays.
3781 
3782   4) Eliminate static initialization of index[], moving it into
3783      initialize().  Template specialization can't be used with data!
3784 
3785   5) Add separate "sum" (summed N-body cross-sections) and "tot" arrays
3786      (measured inclusive xsec).  Latter is a const-ref, initialized to "sum"
3787      if not provided as ctor argument, with two new ctors as needed.
3788 
3789   6) Add accessor to return maximum multiplicity (NM+1).
3790 
3791 - G4CascadeFunctions.hh:  Add second template argument to specify which
3792   "final state sampler" is the base class.  Use both T::data.tot and
3793   T::data.sum in GetMultiplicity(), to support sum/tot comparisons in
3794   pion/nucleon channels.  Extend GetOutputParticleTypes() to support up to
3795   multiplicity 9.
3796 
3797 - G4CascadeFunctions.icc:  Implementations of template class functions.
3798 
3799 - G4CascadeXXXChannel.hh: Add "31," as initial template argument for Data.
3800   Add G4CascadeSampler as second template argument in G4CascadeXXXChannel
3801   typedef.
3802 
3803 
3804 14 May 2010 Michael Kelsey (hadr-casc-V09-03-32)
3805 ------------------------------------------------
3806 Continue revisions to two-body collision lookup tables.  Make the kaon and
3807 hyperon channels compatible with the pion/nucleon samplers, before the next
3808 stage of unifying the structure.
3809 
3810 - G4CascadeSampler: NEW class, parallel to G4FinalStateSampler but with a
3811   different energy binning.  Used as base class to G4CascadeFunctions<T>,
3812   from which the cross-section and other arrays are passed.  Implement
3813   findMultiplicity (cf. G4CascadeFunctions::getMultiplicity) to return the
3814   true value, not the array index.
3815 
3816   This class replaces functionality of G4CascadeChannel, which is redundant.
3817 
3818 - G4CascadeChannel: Remove all interpolation code, leaving only getQnums().
3819 
3820 - G4CascadeFunctions:  Inherit from G4CascadeSampler for interpolations,
3821   except for final-state extraction (where FS type arrays are dealt with
3822   locally, not passed).  Public static functions rely on private instantiated
3823   version of class to do work, so that G4CascadeSampler gets instantiated.
3824 
3825 - G4CascadeData: Remove final template argument (total number of indices),
3826   as redundant with simple sum of multplicity indices.  Use template args to
3827   dimension data member arrays (const references), and to statically
3828   initialize the start-stop index table.  Make large cross-sections table
3829   G4double, not G4float.  Define ctor to pass in array refs for initialization.
3830   Reduce index array to single dimension (start=index[i], stop=index[i+1]).
3831 
3832 - G4CascadeXXXChannel:  All of the initial-state channel "classes"
3833   (typedef names) modified to follow G4CascadeData rewrite.  In .cc file,
3834   the explicit lookup tables are static, and passed by const-ref to
3835   G4CascadeData.  The "initializer" struct is dropped; with the static
3836   "data" object initialized by ctor here.
3837 
3838 - G4ElementaryParticleCollider.cc:  In ::generateMultiplicity(), eliminate
3839   extra "+2" and "-2" applied to local "mul" variables.  With change above,
3840   all functions return return true multiplicity, not array index.
3841 
3842 - G4FinalStateSampler:  Add findFinalStateIndex() function, to make
3843   interface match G4CascadeSampler exactly.  Reduce index array to single
3844   dimension.
3845 
3846 - G4PionSampler.cc, G4NucleonSampler.cc:  Use new findFinalStateIndex()
3847   function in GetFSPartTypesXXX() functions.  Reduce index array to single
3848   dimension (start=index[i], stop=index[i+1]).
3849 
3850 14 May 2010 Michael Kelsey (hadr-casc-V09-03-31)
3851 ------------------------------------------------
3852 Begin revisions to two-body collision lookup tables.  This will be a major
3853 reorganization, splitting the G4PionSampler and G4NucleonSampler into
3854 separate little "classes" (typedefs) for each initial state, in the same way
3855 that the kaon and hyperon states are done now.  The underlying templated and
3856 base classes will be unified across all of the channels.
3857 
3858 - G4CascadeInterpolator: NEW class to encapsulate interpolation procedure.
3859   Uses C-style arrays passed by dimensioned reference, to allow compile-time
3860   array bounds checking.  Template argument is array dimension, and array of
3861   energy bins is saved by ctor.  User array to be interpolated is passed as
3862   function argument.  Last value interpolated, along with result, is saved,
3863   to allow fast multiple interpolations.
3864 
3865   This class is substantially more lightweight than G4PhysicsVector.
3866 
3867 - G4FinalStateSampler: Replace manual interpolation with G4CascadeInterpolator.
3868   Remove redundant sampleFlat(...) function with argument.  Rename member
3869   functions in anticipation of merging with G4CascadeFunctions.
3870 
3871 - G4PionSampler.cc, G4NucleonSampler.cc: Follow use of G4CascadeInterpolator
3872   above, and drop local caching of interpolation results.  Reduce offset
3873   list for cross-sections to one dimension (start=index[i], stop=index[i+1]).
3874 
3875 11 May 2010 Michael Kelsey (hadr-casc-V09-03-30)
3876 ------------------------------------------------
3877 Bug fixes in the two-body scattering code.
3878 
3879 - G4PionSampler.cc, G4NucleonSampler.cc:  Fix long-standing bug with offset
3880   indices computed for cross-section tables.  XXXindex[m][0] (start) and
3881   XXXindex[m][1] (stop) are computed in initChannels() as [start,stop]
3882   inclusive range (i.e., "for (i=start; i<=stop; i++)"), but used with
3883   G4FinalStateSampler::fillSigmaBuffer (and its predecessor code) as
3884   [start,stop) exclusive range (i.e., normal C style "for (i=start; i<stop;
3885   i++)").  This is fixed by properly setting XXXindex[m-1][1] =
3886   XXXindex[m][0], and using the ranges consistently in initChannels().
3887 
3888 - G4ElementaryParticleCollider.cc:  In the six pion-nucleon scatters, the
3889   two-body final state is incorrectly tested for charge-exchange.  All the
3890   if statements check whether "particle_kinds[0]" is the initial nucleon,
3891   but the outgoing baryon actually appears in particle_kinds[1].  Replace
3892   the individual tests with the use of "finaltype", moved out of the
3893   strangeness if-block.
3894 
3895 06 May 2010 Michael Kelsey (hadr-casc-V09-03-29, hadr-casc-V09-03-23-01)
3896 ------------------------------------------------------------------------
3897 - G4Diproton.cc, G4Dineutron.cc, G4UnboundPN.cc:  After creating instance
3898   of these "internal" particles, remove the pointer from G4ParticleTable.
3899   This avoids an issue with the FTFP de-excitation code, which occasionally
3900   picks up the diproton and puts it onto a final-state particle list.
3901 
3902 These three changes, and nothing else, are "backported" on top of -23 for
3903 continued validation tests.
3904 
3905 30 Apr 2010 Dennis Wright (hadr-casc-V09-03-28)
3906 -----------------------------------------------
3907 - G4ElementaryParticleCollider:
3908     improved pi-nucleon two-body angular distributions, and made
3909     sampling of CM angle faster.  As a result, the methods
3910     getElasticCase and adjustIntervalForElastic were made redundant
3911     and removed.  Also removed array containing old angular distribution
3912     parameters.
3913 
3914     Now use nucleon-nucleon angular distributions for hyperon-nucleon
3915     scattering, and pi-nucleon dsitributions for kaon-nucleon scattering
3916     (until specific kaon distributions are added).
3917 
3918 29 Apr 2010 Michael Kelsey (hadr-casc-V09-03-27)
3919 ------------------------------------------------
3920 - G4InuclPartcleNames.hh:  Long name "gamma" conflicts with math function.
3921   Change back to "photon".
3922 
3923 - G4InuclElementaryParticle.cc, G4InuclEvaporation.cc,
3924   G4NonEquilibriumEvaporator.cc, G4NucleiModel.cc, G4NucleonSampler.cc,
3925   G4PionSampler.cc, G4PreCompoundCascadeInterface.cc,
3926   G4PreCompoundInuclCollider.cc:  Replace "gamma" with "photon".
3927 
3928 - G4InuclElementaryParticle.hh:  Change "photon()" to "isPhoton()" to avoid
3929   conflicts with names enum.  Use names enum internally as well.
3930 
3931 - G4ElementaryParticleCollider.cc, G4InuclCollider.cc,
3932   G4PreCompoundInuclCollider.cc:  Change "photon()" to "isPhoton()".
3933 
3934 28 Apr 2010 Michael Kelsey (hadr-casc-V09-03-26)
3935 ------------------------------------------------
3936 All changes below within "cascade/" subdirectory:
3937 
3938 - G4InuclParticleNames.hh:  Define enums for particle type codes, using both
3939   "long" and "short" names copied from existing duplicated enums.  One
3940   change is that "kp" and "km" are replaced by "kpl" and "kmi" respectively,
3941   since "km" conflicts with GEANT4 "kilometers" unit.  Deploy in classes:
3942 
3943   include/G4FinalStateSampler.hh
3944   src/G4CascadeElasticInterface.cc
3945   src/G4CascadeInterface.cc
3946   src/G4ElasticCascadeInterface.cc
3947   src/G4ElementaryParticleCollider.cc
3948   src/G4InuclElementaryParticle.cc
3949   src/G4InuclEvaporation.cc
3950   src/G4NucleonSampler.cc
3951   src/G4PionSampler.cc
3952   src/G4PreCompoundCascadeInterface.cc
3953 
3954 - G4InuclElementaryParticle.cc:  Add Omega- and antinucleon partcles to lists.
3955   No code uses these (yet).
3956 
3957 24 April 2010 Michael Kelsey (hadr-casc-V09-03-25)
3958 --------------------------------------------------
3959 Remove redundant classes, G4Ibertini and G4BertiniRegionModel.
3960 
3961 21 April 2010 Michael Kelsey (hadr-casc-V09-03-24)
3962 --------------------------------------------------
3963 - G4NucleiModel.hh,cc:  Eliminate last remaining hardwired baryon masses.
3964 
3965 18 April 2010 Michael Kelsey (hadr-casc-V09-03-23)
3966 --------------------------------------------------
3967 Final revisions to access std::vector<particle> via const-references:
3968 
3969   G4CascadeInterface.cc
3970   G4EquilibriumEvaporator.cc
3971   G4IBertini.cc
3972   G4InuclCollier.cc
3973   G4NucleiModel.cc
3974   G4PreCompoundCascadeInterface.cc
3975 
3976 - G4CollisionOutput:  Add new function to boost output lists to lab frame.
3977 
3978 14 April 2010 Michael Kelsey (hadr-casc-V09-03-22)
3979 --------------------------------------------------
3980 - G4CascadeInterface.cc, G4IBertini.cc, G4PreCompoundCascadeInterface.cc:
3981   In ::ApplyYourself(), do the check on K0L/K0S _before_ passing G4PartDefn
3982   to G4InuclElemPart::type().  This avoids unnecessary warning message.
3983 
3984 14 April 2010 Michael Kelsey (temporary: kelsey-memClean3)
3985 ----------------------------------------------------------
3986 All changes below within "cascade/" subdirectory:
3987 
3988 - G4FinalStateSampler: Replace "sigma" argument for sampling with data
3989   member, add functions to fill sigma buffer by passing in array references.
3990   Provide typedef for interpolator, and function to apply interpolation.
3991 
3992 - G4PionSampler, G4NucleonSampler:  Follow changes to base class,
3993   eliminating much of the copy-and-paste code blocks via function calls.
3994   Replace G4float arrays with G4double, to support passing into functions.
3995 
3996 13 April 2010 Michael Kelsey (hadr-casc-V09-03-21)
3997 --------------------------------------------------
3998 All changes below within "cascade/" subdirectory:
3999 
4000 - G4InuclSpecialFunctions.hh, paraMaker.cc, paraMakerTruncated.cc:  Drop
4001   return-by-value from paraMaker() and paraMakerTruncated().  Add second
4002   argument with non-const reference to output buffer for return.
4003 
4004 - G4EquilibriumEvaporator.cc:  Follow changes above to paraMaker(), use
4005   references to address parms.first and parms.second, instead of copying.
4006 
4007 - G4NonEquilibriumEvaporator.cc:  Follow changes above to
4008   paraMakerTruncaed(), use references to address parms.first and
4009   parms.second, instead of copying.
4010 
4011 - G4Dineutron, G4Diproton, G4UnboundPN:  Inherit from G4VShortLivedParticle,
4012   per Kurashige.  Thought it would eliminate G4ElectronOccupancy churn, but
4013   did not.
4014 
4015 12 April 2010 Michael Kelsey (hadr-casc-V09-03-20)
4016 --------------------------------------------------
4017 All changes below within "cascade/" subdirectory:
4018 
4019 - G4NucleiModel: Move function implementations from .hh to .cc.  Replace
4020   manual sorting (inefficient O(N^2)) with std::sort() and simple
4021   "less-than" function for std::pair<> "partners".
4022 
4023 - G4CollisionOutput: Move function implementations from .hh to .cc.  Use
4024   std::vevtor<>::insert() to add vectors together.
4025 
4026 - Replace return-by-value G4CollisionOutput with non-const reference buffer
4027   passed into xxx::collide(), in the following classes:
4028   G4BigBanger
4029   G4CascadeElasticInterface
4030   G4CascadeInterface
4031   G4ElasticCascadeInterface
4032   G4ElementaryParticleCollider
4033   G4EquilibriumEvaporator
4034   G4EvaporationInuclCollider
4035   G4Fissioner
4036   G4IBertini
4037   G4IntraNucleiCascader
4038   G4InuclCollider
4039   G4InuclEvaporation
4040   G4NonEquilibriumEvaporator
4041   G4NucleiModel
4042   G4PreCompoundCascadeInterface
4043   G4PreCompoundInuclCollider
4044 
4045   Note that some places where internal G4CollisionOutput buffers are being
4046   used (and their contents appended to the global output) have not been
4047   cleaned up yet.  These will require some rearrangement of the algorithms,
4048   or/and elimination of debugging output.
4049 
4050 09 April 2010 Michael Kelsey (hadr-casc-V09-03-16-01)
4051 -----------------------------------------------------
4052 This modification is included in a pseudo-patch of hadr-casc-V09-03-16,
4053 without brining in any of the -17 through -19 modifications.
4054 
4055 - G4LorentzVector.cc:  Protect two instances of sqrt() against tiny negative
4056   arguments (due to tiny-tiny subtractions).
4057 
4058 09 April 2010 Michael Kelsey (hadr-casc-V09-03-19)
4059 --------------------------------------------------
4060 All changes below within "cascade/" subdirectory:
4061 
4062 - G4InuclParticle, G4InuclElementaryParticle, G4InuclNuclei:  Eliminate
4063   unused G4String ctor argument, introduced in hadr-casc-V09-03-01.  Causes
4064   a lot of pointless memory churn.
4065 
4066 - G4BigBanger.cc:  Fix type conversion warning I introduced by mistake.
4067 
4068 08 April 2010 Michael Kelsey (hadr-casc-V09-03-18)
4069 --------------------------------------------------
4070 All changes below within "cascade/" subdirectory:
4071 
4072 - G4PionSampler, G4NucleonSampler: For all ::GetFSPartTypes*() functions,
4073   eliminate return-by-value std::vector<>, and pass in non-const reference
4074   for filling in situ.  Buffer is cleared.
4075 
4076 - G4ElementaryParticleCollider.cc:  Follow changes above for Sampler calls.
4077 
4078 07 April 2010 Michael Kelsey (hadr-casc-V09-03-17)
4079 --------------------------------------------------
4080 All changes below within "cascade/" subdirectory:
4081 
4082 Replace return-by-value std::vector<> with either const-ref returns, or
4083 with use of an internal buffer which can be reused, to reduce memory
4084 churn due to copying, allocation, and resizing.
4085 
4086 - G4BigBanger:  Create data buffer for lists of secondaries and momenta.
4087   Fill buffers in ::generateBangInSCM() and ::generateMomentumModules(),
4088   which are now non-const.  Reference buffers in ::collide().
4089 
4090 - G4CascadeFunctions::getOutgoingParticleTypes():  Make "kinds" a static
4091   variable (buffer), and return it by const-ref.
4092 
4093 - G4ElementaryParticleCollider:  Eliminate return-by-value std::vector<>
4094   on the functions listed below, by creating data buffers for particles,
4095   momenta, and particle types.  The functions become non-const and void:
4096   ::generateSCMfinalState(), ::generateMomModules()
4097   ::generateStrangeChannelPartTypes(), ::generateSCMpionAbsorption()
4098 
4099   Also, in ::generateStrangeChannelPartTypes(), use a switch statement
4100   instead of the long cascade of if-else-else.
4101 
4102 - G4NucleiModel: Several member functions have different modifications:
4103 
4104   ::initializeCascad(bullet,target) -- Replace return value with a passed-in
4105   (non-const reference) buffer to be filled.  The calling code can
4106   pass in a data member, local variable, or whatever.
4107 
4108   ::generateParticleFate() -- Replace local "thePartners" variable with data
4109     member, filled below.  Move "outgouing_cparticles" to data member
4110     (fix the spelling!), and return by const-ref.
4111 
4112   ::generateInteractionPartners() -- Eliminate return value; fill data
4113   member instead, to be used by ::generateParticleFate().
4114 
4115 - G4IntraNucleiCascader.cc:  Follow changes to initializeCascad() above.
4116 
4117 - G4NucleonSampler, G4PionSampler: ** DON'T KNOW WHAT TO DO HERE **
4118 
4119 - G4WatcherGun:  Return const-ref to list of watchers, instead of copy.
4120 
4121 Replace all uses of std::vector<>::resize(0) with ::clear().  The former
4122 causes deallocation/reallocation/resizing cycles, while clear() just removes
4123 content, preserving the allocated buffer.
4124 
4125   include/G4CollisionOutput.hh
4126   src/G4ElementaryParticleCollider.cc
4127   src/G4NucleiModel.cc
4128   src/G4WatcherGun.cc
4129 
4130 07 April 2010 Dennis Wright (hadr-casc-V09-03-16)
4131 -------------------------------------------------
4132 - fix negative energy bug in G4BigBanger, and switch to using
4133   G4NucleiProperties::GetBindingEnergy
4134 
4135 07 April 2010 Michael Kelsey (hadr-casc-V09-03-15)
4136 --------------------------------------------------
4137 All changes below within "cascade/" subdirectory:
4138 
4139 1) Systematically replace pass-by-value function arguments with const-refs.
4140 This is the first step in reducing unnecessary memory churn, to be followed
4141 by replacing return-by-value std::vector<> with non-const argument buffers.
4142 
4143   include/G4CascadeChannel.hh
4144   include/G4FinalStateSampler.hh
4145   include/G4InuclEvaporation.hh
4146   include/G4NuclWatcher.hh
4147   src/G4CascadeChannel.cc
4148   src/G4FinalStateSampler.cc
4149   src/G4InuclEvaporation.cc
4150   src/G4NuclWatcher.cc
4151 
4152 2) Fix constness on some operator== and operator!= definitions.
4153 
4154   include/G4CascadeElasticInterface.hh
4155   include/G4CascadeInterface.hh
4156   include/G4ElasticCascadeInterface.hh
4157   include/G4IBertini.hh
4158   include/G4PreCompoundCascadeInterface.hh
4159 
4160 07 Apr 2010 Michael Kelsey (hadr-casc-V09-03-14)
4161 ------------------------------------------------
4162 - G4Dineutron.hh, G4Diproton.hh, G4UnboundPN.hh:
4163   Reset static "theInstance" pointer to zero in (now virtual) destructor.
4164 
4165 - G4Dineutron.cc, G4Diproton.cc, G4UnboundPN.cc:
4166   Implement constructor to do the G4Ions initialization, rather than in
4167   ::Definition().  Drop use of G4ParticleTable; just monitor static pointer.
4168   Set "ShortLived" flag in G4Ions initialization, to avoid interactions with
4169   ProcessManager.
4170 
4171 - G4InuclNuclei.cc:  In ::makeNuclearFragment(), set "ShortLived" flag for
4172   G4Ions, to avoid interactions with ProcessManager.
4173 
4174 26 Mar 2010 Dennis Wright (hadr-casc-V09-03-13)
4175 -----------------------------------------------
4176 - G4EquilibriumEvaporator.cc: remove line #include "G4types.hh"
4177   (file doesn't exist)
4178 
4179 20 Mar 2010 Michael Kelsey (hadr-casc-V09-03-12)
4180 ------------------------------------------------
4181 All changes below within "cascade/" subdirectory:
4182 
4183 - G4EquilibriumEvaporator.cc:  Move subtraction of Q1[i] outside new
4184   GetBindingEnergy() call.
4185 
4186 - G4InuclNuclei.cc::makeNuclearFragment():  Add message warning users about
4187   non-physical creation.  Use new GetBindingEnergy() function here as well
4188   (V09-03-05 didn't have this function, so wasn't included in migration).
4189 
4190 19 Mar 2010 Michael Kelsey (hadr-casc-V09-03-11)
4191 ------------------------------------------------
4192 All changes below within "cascade/" subdirectory:
4193 
4194 - G4InuclSpecialFunctions:  Two new functions:
4195 
4196 ::generateWithRandomAngles() to encapsulate random-direction generation.
4197   This function and existing generateWithFixedTheta() take optional mass
4198   argument to produce proper four-vector.
4199 
4200   Replace duplicated random angle code with new function above, and use new
4201   optional mass argument where available:
4202 
4203   G4BigBanger.cc
4204   G4ElementaryParticleCollider.cc
4205   G4EquilibriumEvaporator.cc
4206   G4Fissioner.cc
4207   G4NonEquilibriumEvaporator.cc
4208   G4NucleiModel.cc
4209 
4210 ::G4cbrt():  Define cube-root in terms of log and exp, rather than pow().
4211   Note that "cbrt()" can't be used, as it conflicts with <math.h> on Linux.
4212 
4213   Eliminate unnecessary uses of std::pow() with fixed arguments.  For
4214   example, "pow(x,3)" -> "x*x*x", "pow(x,1/3)" -> G4cbrt(x):
4215 
4216   G4BertiniRegionModel.cc
4217   G4EquilibriumEvaporator.cc
4218   G4EvaporationInuclCollider.cc
4219   G4Fissioner.cc
4220   G4IntraNucleiCascader.cc
4221   G4InuclCollider.cc
4222   G4NonEquilibriumEvaporator.cc
4223   G4NucleiModel.cc
4224   G4PreCompoundInuclCollider.cc
4225   G4RegionModel.cc
4226   bindingEnergyAsymptotic.cc
4227   bindingEnergyKummel.cc
4228 
4229   WARNING!  In G4IntraNucleiCascader.cc, the Coulomb barrier was calculated
4230   using "std::pow(A, 0.333)", rather than the "exact" 1./3.  This leads to
4231   per-mil differences in the value, and occasional differences in wheter an
4232   outgoing particle tunnels through.  The new code is exact to double
4233   precision, and therefore fixes a bug.
4234 
4235 - Move "using" directive from all .hh files to corresponding .cc, along with
4236   some unnecessary #includes:
4237 
4238   G4BigBanger.hh, .cc
4239   G4ElementaryParticleCollider.hh, .cc
4240   G4EquilibriumEvaporator.hh, .cc
4241   G4EvaporationInuclCollider.hh, .cc
4242   G4Fissioner.hh, .cc
4243   G4IntraNucleiCascader.hh, .cc
4244   G4InuclCollider.hh
4245   G4InuclNuclei.hh
4246   G4NonEquilibriumEvaporator.hh, .cc
4247   G4NucleiModel.hh, .cc
4248   G4PreCompoundInuclCollider.hh, .cc
4249 
4250 - G4NuclWatcher.hh and .cc (new):  Move implementation code from .hh to .cc.
4251 
4252 18 March 2010 Michael Kelsey (hadr-casc-V09-03-10)
4253 --------------------------------------------------
4254 All changes below within "cascade/" subdirectory:
4255 
4256 Missed one bug in repairs below, found when testing 4 GeV pi -> Pb.
4257 
4258 - G4Fissioner.cc:  Replace incorrect G4LorentzVector ctor arguments
4259   (G4ThreeVector,m) with call to G4LV::setVectM().
4260 
4261 17 March 2010 Dennis Wright (hadr-casc-V09-03-09)
4262 -------------------------------------------------
4263 Fix warning in G4InuclNuclei.cc: G4Ions:G4Ions was being called with
4264 a double (a) in its 13th argument, when an integer is required.  Use
4265 G4lrint to convert.
4266 
4267 16 March 2010 Michael Kelsey (hadr-casc-V09-03-08)
4268 --------------------------------------------------
4269 All changes below within "cascade/" subdirectory:
4270 
4271 Fix bugs introduced during migration from G4CascadeMomentum to
4272 G4LorentzVector (see hadr-casc-V09-03-03).  With these bug fixes, 2000
4273 events generated with "ppi4GeV" test executable are equivalent to production
4274 output (GEANT 4.9.3), allowing for differences in hardwired nucleon masses.
4275 When compared with hadr-casc-V09-03-02 (which uses G4ParticleDefinition for
4276 all the particle masses) the 2000-event results are identical within
4277 floating point precision.
4278 
4279 - G4BigBanger.cc:  Line 72, fix unit conversion bug, GeV/MeV vs. MeV/GeV.
4280   Replace incorrectly introduced cross-product with original vector
4281   manipulation, written with G4LorentzVector accessors.
4282 
4283 - G4CollisionOutput::selectPairToTune(): Test on "i3>0" not appropriate with
4284   G4LorentzVector indexing.  Replace with failure-test on "i3<0".  Also
4285   simplify final if-cascade for readability.
4286 
4287 - G4EquilibriumEvaporator.cc:  Replace incorrect G4LorentzVector ctor
4288   arguments (px,py,pz,m) with call to G4LV::setVectM().
4289 
4290 - G4IntraNuclearCascader.cc:  Replace leftover momentum_out[0] with .e().
4291 
4292 - G4InuclNuclei.cc,hh:  Add new function ::makeNuclearFragment(a,z,exc),
4293   which "manually" construct a G4Ions object for cases where A/Z is not a
4294   valid stable or unstable nucleus.  These unphysical objects are passed
4295   back from G4IntraNuclearCascader.cc and immediately passed to G4BigBanger
4296   for conversion to nucleons.  A future change should move this action into
4297   G4INCascader and eliminate the need for unphysical nuclei.
4298 
4299 - G4LorentzConvertor::toTheTargetRestFrame():  Remove local declaration of
4300   scm_momentum, restoring access to data member with that name.
4301 
4302 - G4NucleiModel::generateQuasiDeutron(): Undo consolidation of dmom with
4303   local variables for each of the nucleon momenta.  Stack corruption led to
4304   differences in unbound p-n state relative to pp and nn states.
4305 
4306 Minor updates:  Changed all the "verboseLevel()" initializers to (0), via a
4307 shell script.  This allows making the code uniformly verbose or quiet.
4308 
4309   include/G4NucleiModel.hh
4310   src/G4Analyser.cc
4311   src/G4CollisionOutput.cc
4312   src/G4ElementaryParticleCollider.cc
4313   src/G4FissionStore.cc
4314   src/G4Fissioner.cc
4315   src/G4IntraNucleiCascader.cc
4316   src/G4NonEquilibriumEvaporator.cc
4317   src/G4NucleiModel.cc
4318   src/G4WatcherGun.cc
4319 
4320 16 March 2010 Michael Kelsey (hadr-casc-V09-03-DO-NOT-USE)
4321 --------------------------------------------------
4322 All changes below within "cascade/" subdirectory:
4323 
4324 Restore version hadr-casc-V09-03-05 to HEAD of CVS in order to apply bug
4325 fixes and re-deploy migration from G4CascadeMomentum to G4LorentzVector.
4326 This reversion is tagged as a checkpoint only, and should not be used for
4327 testing or running (since it restores the known bugs in V09-03-03).
4328 
4329 The update to G4InteractionCase.hh by Gabriele Cosmo in hadr-casc-V09-03-07
4330 is not touched by this reversion!
4331 
4332 The following CVS commands were used to perform the reversion:
4333 
4334   cvs update -j1.13 -j1.12 cascade/include/G4CascadParticle.hh
4335   cvs update -j1.4 -j1.3 cascade/include/G4CascadeMomentum.hh
4336   cvs update -j1.15 -j1.14 cascade/include/G4CollisionOutput.hh
4337   cvs update -j1.23 -j1.22 cascade/include/G4ElementaryParticleCollider.hh
4338   cvs update -j1.9 -j1.8 cascade/include/G4InuclCollider.hh
4339   cvs update -j1.19 -j1.18 cascade/include/G4InuclElementaryParticle.hh
4340   cvs update -j1.12 -j1.11 cascade/include/G4InuclNuclei.hh
4341   cvs update -j1.16 -j1.15 cascade/include/G4InuclParticle.hh
4342   cvs update -j1.13 -j1.12 cascade/include/G4InuclSpecialFunctions.hh
4343   cvs update -j1.13 -j1.12 cascade/include/G4LorentzConvertor.hh
4344   cvs update -j1.4 -j1.3 cascade/include/G4ParticleLargerBeta.hh
4345   cvs update -j1.9 -j1.8 cascade/include/G4ParticleLargerEkin.hh
4346   cvs update -j1.20 -j1.19 cascade/src/G4BigBanger.cc
4347   cvs update -j1.13 -j1.12 cascade/src/G4CascadParticle.cc
4348   cvs update -j1.6 -j1.5 cascade/src/G4CascadeElasticInterface.cc
4349   cvs update -j1.68 -j1.67 cascade/src/G4CascadeInterface.cc
4350   cvs update -j1.18 -j1.17 cascade/src/G4CollisionOutput.cc
4351   cvs update -j1.7 -j1.6 cascade/src/G4ElasticCascadeInterface.cc
4352   cvs update -j1.6 -j1.5 cascade/src/G4EvaporationInuclCollider.cc
4353   cvs update -j1.5 -j1.4 cascade/src/G4IBertini.cc
4354   cvs update -j1.3 -j1.2 cascade/src/G4InuclElementaryParticle.cc
4355   cvs update -j1.10 -j1.9 cascade/src/G4InuclEvaporation.cc
4356   cvs update -j1.3 -j1.2 cascade/src/G4InuclNuclei.cc
4357   cvs update -j1.4 -j1.3 cascade/src/G4InuclParticle.cc
4358   cvs update -j1.17 -j1.16 cascade/src/G4InuclSpecialFunctions.cc
4359   cvs update -j1.19 -j1.18 cascade/src/G4LorentzConvertor.cc
4360   cvs update -j1.5 -j1.4 cascade/src/G4PreCompoundCascadeInterface.cc
4361   cvs update -j1.4 -j1.3 cascade/src/G4PreCompoundInuclCollider.cc
4362 
4363 Intermediate versions below had bindingEnergy changes from -05 re-applied
4364 
4365   cvs update -j1.23 -j1.21 cascade/src/G4EquilibriumEvaporator.cc
4366   cvs update -j1.22 -j1.20 cascade/src/G4Fissioner.cc
4367   cvs update -j1.29 -j1.27 cascade/src/G4IntraNucleiCascader.cc
4368   cvs update -j1.24 -j1.22 cascade/src/G4InuclCollider.cc
4369   cvs update -j1.23 -j1.21 cascade/src/G4NonEquilibriumEvaporator.cc
4370   cvs update -j1.38 -j1.36 cascade/src/G4NucleiModel.cc
4371 
4372 G4ElementaryParticleCollider::particleSCMmomentumFor2to2:  Restore new
4373 parametrization of elastic scattering added by D.Write in hadr-casc-V09-03-06
4374 
4375   cvs update -j1.47 -j1.45 cascade/src/G4ElementaryParticleCollider.cc
4376   + editing
4377 
4378 05 Mar 2010 Gabriele Cosmo (hadr-casc-V09-03-07)
4379 ------------------------------------------------
4380 - Reinstated fix in G4InteractionCase.hh for initialisation in constructor to
4381   allow for porting on C++0x Standard.
4382 
4383 07 Feb 2010 Dennis Wright (hadr-casc-V09-03-06)
4384 -----------------------------------------------
4385 - back out changes from tags V09-03-00 to V00-03-05 by restoring HEAD
4386   to V09-02-11, and keeping the di-nucleon classes
4387 - replace Bertini method bindingEnergy() with
4388   G4NucleiProperties::GetBindingEnergy() in classes
4389   G4IntraNuclearCascader, G4InuclCollider, G4NucleiModel, G4EquilibriumModel,
4390   G4NonEquilibriumModel, G4Fissioner.  Note that G4Fissioner still uses the
4391   Bertini method bindingEnergyAsymptotic.
4392 
4393 - G4ElementaryParticleCollider::particleSCMmomentumFor2to2
4394   replace original (incorrect) pp, pn, nn 2-body to 2-body scattering angular
4395   distributions with a new parameterization of elastic scattering data using
4396   the sum of two exponentials
4397 
4398 02 Feb 2010 Dennis Wright (hadr-casc-V09-03-05)
4399 -----------------------------------------------
4400 - replace all uses of bindingEnergy (local Bertini method) with the
4401   Geant4 standard G4NucleiProperties::GetBindingEnergy(A,Z)
4402   files modified:
4403     G4IntraNucleiCascader.cc
4404     G4InuclCollider.cc
4405     G4NucleiModel.cc
4406     G4EquilibriumEvaporator.cc
4407     G4NonEquilibriumEvaporator.cc
4408     G4Fissioner.cc
4409 - note that G4Fissioner still uses Bertini method bindingEnergyAsymptotic
4410 
4411 28 Jan 2010 Dennis Wright (hadr-casc-V09-03-04)
4412 -----------------------------------------------
4413 - fix unused variable warnings in G4InuclParticle.hh, .cc and
4414   G4NonEquilibriumEvaporator.cc
4415 
4416 26 Jan 2010 Michael Kelsey (hadr-casc-V09-03-03)
4417 ------------------------------------------------
4418 All changes below within "cascade/" subdirectory:
4419 
4420 - G4ParticleLargerBeta.hh:  Fix to use of CVS "Name" tag; no code changes.
4421 
4422 - G4CascadParticle: Replace the position std::vector<> with G4ThreeVector.
4423 
4424 - G4NucleiModel: Replace all std::vector<> coordinates with G4ThreeVector,
4425   and use vector math for computations.
4426 
4427 Remove all use of G4CascadeMomentum (a simple container with a C-style
4428 four-element array) with G4LorentzVector.  This is a fairly invasive change,
4429 since G4CascMom was used for all of the three- and four-vector operations
4430 throughout the Bertini code:
4431 
4432   include/G4CascadParticle.hh
4433   include/G4CollisionOutput.hh
4434   include/G4ElementaryParticleCollider.hh
4435   include/G4InuclCollider.hh
4436   include/G4InuclElementaryParticle.hh
4437   include/G4InuclNuclei.hh
4438   include/G4InuclParticle.hh
4439   include/G4InuclSpecialFunctions.hh
4440   include/G4LorentzConvertor.hh
4441 
4442   src/G4BigBanger.cc
4443   src/G4CascadParticle.cc
4444   src/G4CascadeElasticInterface.cc
4445   src/G4CascadeInterface.cc
4446   src/G4CollisionOutput.cc
4447   src/G4ElasticCascadeInterface.cc
4448   src/G4ElementaryParticleCollider.cc
4449   src/G4EquilibriumEvaporator.cc
4450   src/G4EvaporationInuclCollider.cc
4451   src/G4Fissioner.cc
4452   src/G4IBertini.cc
4453   src/G4IntraNucleiCascader.cc
4454   src/G4InuclCollider.cc
4455   src/G4InuclElementaryParticle.cc
4456   src/G4InuclEvaporation.cc
4457   src/G4InuclNuclei.cc
4458   src/G4InuclParticle.cc
4459   src/G4InuclSpecialFunctions.cc
4460   src/G4LorentzConvertor.cc
4461   src/G4NonEquilibriumEvaporator.cc
4462   src/G4NucleiModel.cc
4463   src/G4PreCompoundCascadeInterface.cc
4464   src/G4PreCompoundInuclCollider.cc
4465 
4466 The new code is not yet entirely "correct," since Bertini also does a lot of
4467 operations by way of three-momentum, imposing masses (and hence energy
4468 conservation) separately, after the fact.
4469 
4470 20 Jan 2010 Gabriele Cosmo
4471 --------------------------
4472 - G4InteractionCase.hh:  Minor fix in initialisation in constructor to
4473   allow for porting on C++0x Standard.
4474 
4475 20 Jan 2010 Michael Kelsey (hadr-casc-V09-03-02)
4476 ------------------------------------------------
4477 - G4LorentzConvertor.hh:  Fix scm_momentum data member to be G4ThreeVector
4478   (as used in previous versions) rather than G4LorentzVector.
4479 
4480 NOTE:  I have *retagged* cascade/include/G4LorentzConverter.hh and this
4481        History file, rather than creating a new tag, since these are private
4482        development only, not public releases.
4483 
4484 12 Jan 2010 Michael Kelsey (hadr-casc-V09-03-02)
4485 ------------------------------------------------
4486 All changes below within "cascade/" subdirectory:
4487 
4488 - G4CascadeMomentum: Replace use of static G4LV variables within functions
4489   with mutable data member of object; this does introduce more memory
4490   thrashing, but the plan is to get rid of the whole thing anyway.  Improve
4491   implicit casting and add assignment from G4LV.
4492 
4493 - G4LorentzConverter:  Change function signatures to accept G4LV as input,
4494   using implicit cast to convert existing G4CascadeMomentum argument
4495   passing.  Use G4LV internally throughout, again using implicit cast to
4496   return G4CascMom values.  This substantially increases (temporarily!)
4497   memory thrashing.  Simplify ::rotate() functions to use G4LV and
4498   G4ThreeVec operations rather than array index gymnastics.  Move some
4499   function implementations out of .hh file into .cc.
4500 
4501 - G4ParticleLargerEkin.hh: Fix use of CVS "Name" tag.  No code changes.
4502 
4503 12 Jan 2010 Michael Kelsey (hadr-casc-V09-03-01)
4504 ------------------------------------------------
4505 All changes below within "cascade/" subdirectory:
4506 
4507 - G4ParticleLargerBeta, G4ParticleLargerEkin: Add additional operator()
4508   which takes pointers (for future mods to reduce ctor/dtor cycling), and
4509   fix ordering bug in beta sorting.  Add debugging printout togged with
4510   preprocessor flag.
4511 
4512 - G4InuclParticle, G4InuclNuclei, G4InuclElementaryParticle:  Rewrite to
4513   carry G4DynamicParticle data member, and to instantiate particle
4514   properties via G4ParticleDefinition subclasses.  This is first stage in
4515   eventually eliminating the G4InuclParticle stuff entirely in favor of
4516   direct use of G4DynamicParticle for internal propagation.
4517 
4518 These changes have been testing using debugging output on the production
4519 (4.9.3) code compared to the above changes.  |diff| shows mostly identical
4520 results, with occasional ~1e-5 floating point differences.
4521 
4522 08 Jan 2010 Michael Kelsey (hadr-casc-V09-03-00)
4523 ------------------------------------------------
4524 All changes below within "cascade/" subdirectory:
4525 
4526 - G4BertiniNuclearModel:  REMOVE this class from the HEAD, and hopefully all
4527   future tags.  It is redundant with the G4NuclearModel class, and is not
4528   used anywhere in the G4 distribtion; the latter is referenced in both
4529   regular G4 code and in examples.
4530 
4531 - G4Diproton, G4Dineutron, G4UnboundPN:  New G4ParticleDefinition
4532   subclasses, which implement the Bertini-specific dibaryon states.  These
4533   are not used anywhere as yet, but will be used in future modifications to
4534   the G4InuclParticle subclasses.
4535 
4536 - G4CascadeMomentum:  Add interface to create from and cast to
4537   G4LorentzVector.  Will be used (in future) by G4InuclParticle modifications,
4538   and provides a transition to eliminating this class entirely.
4539 
4540 1 Dec 2009 Dennis Wright (hadr-casc-V09-02-11)
4541 ----------------------------------------------
4542 - G4PionSampler, G4NucleonSampler: change loop variable in ctor from i to j
4543   in order to satisfy Windows compiler
4544 
4545 11 Nov 2009 Dennis Wright (hadr-casc-V09-02-10)
4546 -----------------------------------------------
4547 - G4CascadParticle, G4InuclElementaryParticle: add integer argument to ctor
4548   to indicate which generation cascade particle belongs to.
4549   Also change G4NucleiModel and G4BertiniNucleiModel to use this.
4550 
4551  8 Oct 2009 Dennis Wright (hadr-casc-V09-02-09)
4552 -----------------------------------------------
4553 - G4PionSampler:  use charge exchange cross section for pi0-p, go back
4554    original Bertini pi0-p elastic partial cs.  Update pi0 total cross
4555    section accordingly.  Improve fits to pi-p partial cs and update
4556    pi- total cross sections.
4557 - G4NucleiModel: update pi- and pi0 total cross sections
4558 
4559 24 Sep 2009 Dennis Wright (hadr-casc-V09-02-08)
4560 -----------------------------------------------
4561 - add class G4NucleonSampler which replaces old pp, pn, and nn partial and
4562     total cross sections also modify other classes which use them
4563 - move large arrays which are instantiated at every call of frequently
4564     used methods.  They are now initialized once in constructors.
4565 - G4CascadSpecialFunctions: put copy of total cross section method
4566     in G4NucleiModel, also remove unneeded energy scale arrays
4567     (now replaced with a new one)
4568 - G4CascadeInterface: move instantiation of various collider classes
4569     outside of loop, and put on stack instead of heap
4570 - G4ElementaryParticleCollider: re-design to use G4NucleonSampler and
4571     remove instantiation of large arrays from within loops in code
4572 - G4NucleiModel: remove instatiation of large arrays from with loops,
4573     add new total cross section sampling, remove use of all but one
4574     energy scale
4575 
4576 17 Sep 2009 Dennis Wright (hadr-casc-V09-02-07)
4577 -----------------------------------------------
4578 - G4PionSampler: remove large static arrays
4579 - G4FinalStateSampler: remove static array pointer to G4 particle types
4580 - G4ElementaryParticleCollider: clean up
4581 
4582 4 Sep 2009 Dennis Wright (hadr-casc-V09-02-06)
4583 ----------------------------------------------
4584 - add assignment operator to class G4CollisionOutput
4585 
4586 31 Aug 2009 Dennis Wright (hadr-casc-V09-02-05)
4587 -----------------------------------------------
4588 - add class G4FinalStateSampler which was accidentally omitted from
4589   the previous tag
4590 
4591 25 Aug 2009 Dennis Wright (hadr-casc-V09-02-04)
4592 -----------------------------------------------
4593 - correct bug in particle ordering in G4PionSampler
4594 - clean up dead code in G4NucleiModel and G4ElementaryParticleCollider
4595 
4596 20 Aug 2009 Dennis Wright (hadr-casc-V09-02-03)
4597 -----------------------------------------------
4598 - create class G4PionSampler: samples partial cross sections, multiplicities
4599   and final state particle types required for pi+, pi- and pi0 scattering
4600   within a nucleus.  This class uses re-evaluated pion partial cross sections
4601   and includes production of strange particle pairs.
4602 - G4CascadeSigmaPlusNChannel: correct sigma plus cross sections
4603 - G4CascadSpecialFunctions:  move pion, kaon, hyperon total cross sections
4604   to this class
4605 - G4ElementaryParticleCollider: re-write to use G4PionSampler class for
4606   cross sections and multiplicities, remove method reChargering (now redundant)
4607 
4608 15 Apr 2009 Dennis Wright (hadr-casc-V09-02-02)
4609 -----------------------------------------------
4610 - previous tag no longer used.  Bring hadr-casc-V09-02-00 back to
4611   HEAD and re-tag
4612 
4613 21 Feb 2009 Dennis Wright (hadr-casc-V09-02-01)
4614 -----------------------------------------------
4615 - add printCrossSection method to G4CascadSpecialFunctions
4616 - in GeElementaryParticleCollider, add high energy flag to distinguish
4617   "string-like" behavior
4618 - G4IntraNucleiCascader.cc - allow secondaries from HE interaction to
4619   leave nucleus without interacting
4620 - G4NucleiModel - get high_energy_interaction flag value from G4ElementaryParticleCollider
4621 
4622 11 Feb 2009 V.Ivanchenko (hadr-casc-V09-02-00)
4623 -----------------------------------------------
4624 - set absorption coefficient 1.0 instead of 0.2 inside
4625   G4CascadSpecialFunctions (D.Wright)
4626 
4627 25 Nov 2008 Dennis Wright (hadr-casc-V09-01-10)
4628 -----------------------------------------------
4629 - fix multiplicity sampling in G4ElementaryParticleCollider::generateMultiplicity().
4630   Now partial cross sections are normalized to the total cross section instead
4631   of just the sum of 2-body to 6-body final state cross sections.  Also fix
4632   2-body cross sections above 7 GeV where they were too small.
4633   Fix the same cross sections which appear in G4CascadSpecialFunctions.cc
4634 
4635 21 Nov 2008 Dennis Wright (hadr-casc-V09-01-09)
4636 -----------------------------------------------
4637 - add some comments to cross section tables in G4CascadSpecialFunctions.cc
4638   and G4ElementaryParticleCollider.cc
4639 
4640 24 Oct 2008 Dennis Wright (hadr-casc-V09-01-08)
4641 -----------------------------------------------
4642 - replace GetAtomicMass() with GetNuclearMass() in cascade/G4InuclEvaporation
4643   and evaporation/G4BertiniEvaporation
4644 - V. Ivantchenko added name to G4CascadeInterface ("Bertini Cascade")
4645 
4646 17 Oct 2008 Dennis Wright (hadr-casc-V09-01-07)
4647 -----------------------------------------------
4648 - added Coulomb barrier plus barrier penetration in G4IntraNucleiCascader.cc
4649 
4650 27 Sep 2008 Dennis Wright (hadr-casc-V09-01-06)
4651 -----------------------------------------------
4652 - Fixed 4.3 compiler warnings for G4InuclElementaryParticle.hh by providing
4653   initializers for particle type and mass
4654 - Remove unused variables totscm, totlab in G4BigBanger.cc,
4655   G4ElementaryParticleCollider.cc, and unused mom1 from G4InuclSpecialFunctions.cc
4656 
4657 22 Sep 2008 Gabriele Cosmo (hadr-casc-V09-01-05)
4658 ------------------------------------------------
4659 - Introduced simple wrapper class G4CascadeMomentum meant to replace usage
4660   of std::vector<double> in the cascade code, to reduce memory allocations.
4661   Courtesy of P.Elmer (princeton Univ.).
4662 - Modified cascade code to make use of G4CascadeMomentum.
4663 
4664  3 Sep 2008 Dennis Wright (hadr-casc-V09-01-04)
4665 -----------------------------------------------
4666 - G4ElementaryParticleCollider.cc: in method generateMultiplicity, remove
4667   large_cut which increases multiplicity from 3 to 4 abruptly at 4 GeV
4668   and above.   This caused a sharp drop-off in the single pion spectra from
4669   pH reactions.   The effect in heavier nuclei is small.
4670 
4671 29 Jun 2008 Dennis Wright (hadr-casc-V09-01-03)
4672 -----------------------------------------------
4673 - add changes made by M. Paterno, J. Kowalkowski, and M. Fischler (FNAL)
4674   to speed up code.  All G4Cascade***Channel classes and related code changed.
4675 
4676  5 May 2008 Dennis Wright (hadr-casc-V09-01-02)
4677 -----------------------------------------------
4678 - retag hadr-casc-V09-csbug as hadr-casc-V09-01-02
4679 
4680 30 Apr 2008 Dennis Wright (hadr-casc-V09-csbug)
4681 -----------------------------------------------
4682 - fix cross section bug in G4CascadSpecialFunctions that returned
4683   low or zero total cross sections for pi-p, pi+n, np, and pi0
4684   interactions
4685 
4686 29 Apr 2008 Dennis Wright (hadr-casc-V09-01-01)
4687 -----------------------------------------------
4688 - bring tag hadr-casc-V09-01-coula to HEAD, make official tag
4689 
4690 22 Apr 2008 Dennis Wright (hadr-casc-V09-01-param)
4691 --------------------------------------------------
4692 - changed pp, nn total cross section parameterization in
4693   G4CascadSpecialFunctions to more closely reflect the PDG values (old one
4694   was off by as much as a factor of 3.
4695 
4696 3 Apr 2008 Dennis Wright (hadr-casc-V09-01-coula)
4697 -------------------------------------------------
4698 - removed Coulomb barrier from G4IntraNucleiCascader.cc (causes unphysical spike)
4699 
4700 3 Apr 2008 Dennis Wright (hadr-casc-V09-01-coul)
4701 ------------------------------------------------
4702 - Added Coulomb barrier in G4EquilibriumEvaporator.cc, G4IntraNucleiCascader.cc
4703 
4704 17 Nov 2007 Dennis Wright (hadr-casc-V09-00-02)
4705 -----------------------------------------------
4706 - Fix angular distribution for nucleon-nucleon elastic scattering
4707   above 2.8 GeV, by modifying G4ElementaryParticleCollider::getElasticCase
4708 
4709 25 May 2007 Dennis Wright for Aatos Heikkinen (hadr-casc-V08-03-00)
4710 -------------------------------------------------------------------
4711 - implemented interfaces for pre-equilibrium and equilbrium evaporation
4712   models
4713 
4714 04 May 2007 Aatos Heikkinen (hadr-casc-V08-02-00)
4715 -------------------------------------------------
4716 
4717 - Added protection in G4ElementaryParticleCollider against negative
4718   value to sqrt().
4719 
4720 08 May 2006 Dennis Wright (hadr-casc-V08-00-00)
4721 -----------------------------------------------
4722 
4723 - cascade: remove G4BERTINI_KAON conditional assembly flags.  Files
4724   affected:
4725   G4ElementaryParticleCollider.hh, cc
4726   G4InuclElementaryParticle.hh
4727   G4NucleiModel.hh, cc
4728   G4CascadeInterface.cc
4729   G4IntraNucleiCascader.cc
4730 
4731 - cascade (Pekka Kaitaniemi): G4ElasticCascadeInterface: derive
4732   from G4VIntraNuclearTransportModel instead of G4HadronElastic.
4733   Check for case when no elastic scattering occurs.  If so,
4734   return original bullet and target.
4735 
4736 24 Nov 2005 Dennis Wright (hadr-casc-V07-01-00)
4737 ----------------------------------------------
4738 
4739 - cascade (bertini-V07-01-00 by Aatos Heikkinen)
4740    elastic scattering interface added:
4741    G4ElasticCascadeInterface.hh, .cc added
4742    G4CascadeInterface.hh modified