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

Last change on this file since 1347 was 1347, checked in by garnier, 13 years ago

geant4 tag 9.4

File size: 95.2 KB
Line 
1$Id: History,v 1.206 2010/11/24 21:16:17 mkelsey Exp $
2-------------------------------------------------------------------
3
4     ==========================================================
5     Geant4 - an Object-Oriented Toolkit for Physics Simulation
6     ==========================================================
7
8            History file for hadronic/models/cascade
9            ----------------------------------------
10
11This file should be used to summarize modifications introduced in the
12code and to keep track of all tags.
13
14     ---------------------------------------------------------------
15     * Please list in reverse chronological order (last date on top)
16     ---------------------------------------------------------------
17
1824 November 2010 Michael Kelsey (hadr-casc-V09-03-87)
19-----------------------------------------------------
20- G4InuclCollider.cc:  Delete local "zbullet" before exiting.  Fixes memory
21  leak reported for 9.4 cand-01.
22
2319 November 2010 Michael Kelsey (hadr-casc-V09-03-86)
24-----------------------------------------------------
25- G4NucleiModel.cc:  Put messages related to negative-path-length and
26  zero-interaction-partners behind verbosity flag.
27
2829 October 2010 Michael Kelsey (hadr-casc-V09-03-85)
29----------------------------------------------------
30- G4NucleiModel:  Bring tagged version kelsey-20101020 (refactoring) to HEAD
31  and tag for 9.4 release.  This is the last substantive modification to be
32  included; validated by direct |diff|ing of output vs. V09-03-84 code.
33
3422 October 2010 Michael Kelsey (hadr-casc-V09-03-84)
35----------------------------------------------------
36- G4WatcherGun.cc: Change first numeric argument to G4NuclWatcher to int.
37
38NOTE:  Only this change is include in tag.
39
4020 October 2010 Michael Kelsey (kelsey-20101020b)
41-------------------------------------------------
42- G4NucleiModel:  Add scaling factors ("units") for nuclear radii and
43  cross-sections, in order to adapt calculations to the literature.
44
4520 October 2010 Michael Kelsey (kelsey-20101020a)
46-------------------------------------------------
47- G4NucleiModel:  Re-activate changes in worthToPropagate() to use existing
48  nuclear potential values for kaons and hyperons to decide on trapping.
49
5020 October 2010 Michael Kelsey (kelsey-20101020)
51------------------------------------------------
52- G4NucleiModel:  Clean up some bugs in refactoring generateModel().  Back
53  out changes (28 Sep) in worthToPropagate() in order to compare refactored
54  to production code.
55
5620 October 2010 Michael Kelsey (hadr-casc-V09-03-83)
57----------------------------------------------------
58- G4CascadParticle.cc:  Remove debugging output left in by accident.
59
60NOTE:  Tag does not include reorganization of G4NucleiModel (5 Oct 2010)
61
6219 October 2010 Michael Kelsey
63------------------------------
64G4FissionStore, G4FissionConfiguration: Undo migration to integer A and Z.
65
6619 October 2010 Michael Kelsey
67------------------------------
68Clean up CoVerity software analysis reports (three are ignored from obsolete
69code):
70        G4Analyser.cc
71        G4CascadeCheckBalance.cc
72        G4CascadeInterpolator.icc
73        G4CascadeSampler.icc
74        G4CollisionOutput.cc
75        G4ElementaryParticleCollider.cc
76        G4InuclCollider.cc
77        G4NuclWatcher.cc
78        G4NucleiModel.hh,cc
79        G4RegionModel.cc
80
8114 October 2010 Michael Kelsey
82------------------------------
83- G4NucleiModel.cc:  Fix misspelled "G4doulbe" -> G4double.
84
85Pick up several missed bits of the "integer A and Z migration," mostly in
86test and diagnostic code:
87
88        G4Analyser.hh,cc
89        G4FissionConfiguration.hh
90        G4FissionStore.hh,cc
91        G4NuclWatcher.hh,cc
92
9314 October 2010 Michael Kelsey (hadr-casc-V09-03-82)
94----------------------------------------------------
95- G4CascadParticle.cc:  Add protection in getPathToTheNextZone() so that d2
96  is always computed non-negative.  Avoids 10^-5 FPEs.
97
9805 October 2010 Michael Kelsey
99------------------------------
100- G4NucleiModel:  Major reorganization of generateModel() code.
101  1) Rename integration functions from "volNumInt[1]" to "zoneIntegralxxx"
102     with "xxx" = "WoodsSaxon" or "Gaussian".
103  2) Move hardwired constants out to static data members, give clear names.
104  3) Split function into separate pieces to set binding energies, zone
105     radii, volume/density values, and potential heights.
106  4) Within new functions, simplify if-cascades where possible, eliminate
107     duplicated code.
108  5) Move std::vector<> buffers out to data members.
109
110  Also, modify worthToPropagate() to use non-nucleon potential heights to
111  terminate propagation.  Previously, non-nucleons could never fail, as the
112  "getFermiKinetic" always returned zero.
113
11428 September 2010 Michael Kelsey (hadr-casc-V09-03-81)
115------------------------------------------------------
116- G4BigBanger:  Missed some integer A/Z migrations, which caused a bus error
117  in test47.
118
11926 September 2010 Michael Kelsey (hadr-casc-V09-03-80)
120------------------------------------------------------
121- G4VCascadeDeexcitation.hh:  NEW abstract base class for post-cascade
122  processing.  Some common activities will be implemented here from the two
123  actual modules.
124
125- G4CascadeDeexcitation, G4PreCompoundDeexcitation:  Use new base class
126  above, reorganize code in collide() to use new deExcite(G4Fragment*) where
127  appropriate.
128
129- G4InuclCascader.hh:  Reference new base class for de-excitation modules.
130
13125 September 2010 Michael Kelsey
132--------------------------------
133- G4CascadeColliderBase:  Add explosion(G4Fragment*) and explosion(A,Z,Eexc).
134  Move implementation to latter, and write others as call-throughs.  Add
135  Z==0 condition for explosion, regardless of A.
136
137- G4EquilibriumEvaporator.hh:  Remove explosion(G4InuclNuclei*), as
138  unnecessary.  Existing explosion(A,Z,E) now overrides base class.
139
140- G4CollisionOutput:  Add function to process G4ReactionProducts from
141  PreCompound.
142
143- G4PreCompoundDeexcitation.cc:  Move G4ReactionProducts loop to
144  G4CollisionOutput.
145
14624 September 2010 Michael Kelsey
147--------------------------------
148- G4IntraNucleiCascader.cc:  Minor shuffle of post-cascade recoil checking,
149  in preparation for moving fragment construction and processing away.
150
151- G4CollisionOutput.cc:  Replace names "TargetFragment*" and "NucleiFragment*"
152  with "OutgoingNuclei" and "OutgoingNucleus" for consistency with
153  "OutgoingParticles" names.  This affects the following source files, all
154  of which are modified to match (using |sed|):
155
156        cascade/include/G4Analyser.hh
157        cascade/include/G4CollisionOutput.hh
158        cascade/src/G4Analyser.cc
159        cascade/src/G4CascadeCheckBalance.cc
160        cascade/src/G4CascadeDeexcitation.cc
161        cascade/src/G4CascadeInterface.cc
162        cascade/src/G4CollisionOutput.cc
163        cascade/src/G4EquilibriumEvaporator.cc
164        cascade/src/G4Fissioner.cc
165        cascade/src/G4IntraNucleiCascader.cc
166        cascade/src/G4InuclCollider.cc
167        cascade/src/G4InuclEvaporation.cc
168        cascade/src/G4NonEquilibriumEvaporator.cc
169        cascade/src/G4PreCompoundDeexcitation.cc
170
171- G4CollisionOutput:  Add new G4Fragment data member, with get() and add()
172  accessors.  This fragment is *not* used by setOnShell() or by any of the
173  event-total calculations.  It will be filled by G4IntraNucleiCascader for
174  use by de-excitation modules.  Include G4Fragment in diagnostic output if
175  not empty.
176
177- G4CascadeRecoilMaker.cc:  Remove G4Fragment::SetExcitationEnergy() call.
178
179- G4InuclNuclei:  Add new constructor to create from G4Fragment input, and
180  new makeG4Fragment() to spit out a G4Fragment.  Also provide a casting
181  operator for the latter.
182
18324 September 2010 Michael Kelsey (hadr-casc-V09-03-79)
184------------------------------------------------------
185Fix numerous compilation warnings on Linux (not seen on MacOSX) left over
186from migration to integer A and Z (-73 tag).
187
188        G4BigBanger.cc
189        G4CascadeCheckBalance.hh
190        G4CascadeColliderBase.cc
191        G4CascadeRecoilMaker.cc
192        G4EquilibriumEvaporator.hh,cc
193        G4ExitonConfiguration.hh
194        G4Fissioner.cc
195        G4InuclCollider.cc
196        G4NonEquilibriumEvaporator.cc
197        G4NucleiModel.cc
198
199- G4PreCompoundDeexcitation.cc:  Drop "G4int" casts as no longer required.
200
20123 September 2010 Michael Kelsey (hadr-casc-V09-03-78)
202------------------------------------------------------
203- G4CascadeInterface, G4InuclCollider:  change user selection function name
204  to usePreCompoundDeexcitation(), per Julia Yarba.
205
206- G4PreCompoundCascadeInterface.hh,.cc, G4PreCompountInuclCollider.hh,.cc:
207  REMOVE THESE CLASSES.  These were copied and modified versions of the
208  standard versions, in order to test the new pre-compound de-excitation.
209  That has been integrated with runtime flags, so the parallel versions are
210  not required.
211
21223 September 2010 Michael Kelsey
213--------------------------------
214- G4InuclElementaryParticle.cc:  Drop warning message when converting
215  G4ParticleDefinition to type code.
216
217- G4CascadeInterface:  Add functions for user selection of which
218  post-cascade module to use for de-excitation of the residual nucleus.
219  These call through to the equivalent G4InuclCollider functions.
220
221- G4InuclCollider:  Add functions for user selection of which
222  post-cascade module to use for de-excitation of the residual nucleus.
223  These delete and re-instantiate the appropriate de-excitation "collider".
224
225- G4PreCompoundDeexcitation:  Remove convertFragment() function, remove
226  pass-by-value std::vector<> from getDeExcitedFragments() (use data member
227  instead).  Clean up some obsolete code usage.
228
229- G4CascadeRecoilMaker:  Change fragment-making interface:
230  makeRecoilNuclei() now returns G4InuclNuclei* for standard Bertini colliders.
231  makeRecoilFragment() returns G4Fragment* for external PreCompound models.
232  addExcitonConfiguration() sets local copy of excitons, needed in order to
233    call the individual G4Fragment->Setxxx() functions.
234
235- G4IntraNucleiCascader.cc:  Follow renaming RecoilMaker::makeRecoilNuclei(),
236  use new addExcitonConfiguration().
237
238- G4CascadeRecoilMaker:  Change fragment-making interface:
239  makeRecoilNuclei() now returns G4InuclNuclei*.
240  makeRecoilFragment() returns G4Fragment*.
241  addExcitonConfiguration() sets local copy of excitons, needed in order to
242    call the individual G4Fragment->Setxxx() functions.
243
244- G4IntraNucleiCascader.cc:  Follow renaming RecoilMaker::makeRecoilNuclei(),
245  use new addExcitonConfiguration().
246
24722 September 2010 Michael Kelsey
248--------------------------------
249- G4CascadeMomentum.hh:  This should have been removed from the package long
250  ago.  Apologies for the oversight.
251
25222 September 2010 Julia Yarba
253-----------------------------
254Added 1st prototype of interface between Bartini cascade and PreCompound model
255(post-cascade de-excitation).
256
257Changes only to:
258/geant4/source/processes/hadronic/models/cascade/cascade
259
260New developments are those G4PreCompound* classes; the GNUmakefile adapted to
261include necessary links.
262
263The PreComp wrapper is G4PreCompundDeexcitation class.
264
265The logic, loops, conditions, etc., in the event processing are the same as in
266the "native" Bertini code. I actually copied it over from G4CascadeInterface,
267and started from there.
268
269However, there're a few technical changes that I'd like to mention.
270
2711. G4PreCompoundInterface inherits directly from G4HadronicInteraction.
272I felt that we'd not need G4VIntra..., because its only advantage is a pointer
273(and related access methods) to G4VPreCompoundModel.
274This has now moved to the de-excitation wrapper.
275
2762. In the Collider itself, I've made the data member to be
277 G4CascadeColliderBase* theDeexcitation
278This way, it can be transparently set to the native one or the PreComp one
279(both inherit from G4CascadeColliderBase).
280
2813. There's a setDeExcitation(...) methond in the collider, and also in the interface
282(which will pass it down to the collider).
283
28419 September 2010 Michael Kelsey (hadr-casc-V09-03-77)
285------------------------------------------------------
286- G4CascadeInterface.cc:  Bug fix to logic in retryInelasticNucleus()
287
28817 September 2010 Michael Kelsey (hadr-casc-V09-03-76)
289------------------------------------------------------
290- G4CascadeInterface:  Add support to pass nucleus projectiles into
291  collider.  Not tested or guaranteed to work, but G4IntraNucleiCascader is
292  supposed to deal with them.
293
29416 September 2010 Michael Kelsey
295--------------------------------
296- G4CascadeInterface:  Extensive reorganization, moving most
297  functionality out of ApplyYourself and into small member functions.
298  Complicated end-of-loop conditions encapsulated.  Data members made into
299  pointers to hide dependences from outside world.
300
30116 September 2010 Michael Kelsey (hadr-casc-V09-03-75)
302------------------------------------------------------
303- G4CascadeInterface.cc:  Add parentheses in end-of-while block to fix
304  compilation warning in GCC 4.3.
305
306- G4IntraNucleiCascader.cc:  In decayTrappedParticle(), check for photon
307  daughters and put them directly onto output list.
308
30916 September 2010 Michael Kelsey
310--------------------------------
311- G4CascadParticle.hh:  Make getGeneration() const.
312
313- G4CascadeDeexcitation.hh:  Fix compiler warning about order of data members.
314
315- G4IntraNucleiCascader:  Intercept hyperons which are "trapped" in nuclear
316  potential, and decay them immediately to produce usable secondaries.  This
317  resolves problem with sub-MeV final-state hyperons (reported by A. Dotti),
318  but is not entire correct.  Properly, the hyperon should be incorporated
319  into a hypernucleus fragment.
320
321- G4InuclElementaryParticle.hh:  Add hyperon() identification function, and
322  constructor to take G4DynamicParticle directly.
323
324- G4InuclParticle.hh, G4InuclNuclei.hh:  Add constructor to take
325  G4DynamicParticle directly.
326
32715 September 2010 Michael Kelsey (hadr-casc-V09-03-74)
328------------------------------------------------------
329- G4CascadeDeexcitation:  NEW collider to handle post-cascade processing of
330  nuclear fragment.  Encapsulates BigBanger and Evaporators.  Eventually
331  will have alternative (configurable or #ifdef) implementation using G4
332  external "pre-compound" models instead of Bertini factories.
333
334- G4InuclCollider:  Remove post-cascade colliders (BigBanger, Evaporators),
335  replace with new G4CascadeDeexcitation.
336
337- G4LorentzConverter:  Move construtor implementations to .cc file, and make
338  sure all constructors have initializers for all data members.
339
34014 September 2010 Michael Kelsey (hadr-casc-V09-03-73)
341------------------------------------------------------
342Migrate to integer A and Z values for nuclear configurations.  Includes both
343explicit arguments for G4InuclNuclei, and function arguments, computational
344parameters involved in nuclear configurations, breakup, etc.
345
346        G4CascadeCheckBalance.cc
347        G4CascadeInterface.cc
348        G4CascadeRecoilMaker.hh
349        G4Fissioner.hh,cc
350        G4InuclEvaporation.cc
351        G4InuclNuclei.hh,cc
352        G4InuclSpecialFunctions.hh
353        G4NonEquilibriumEvaporator.hh,cc
354        G4NucleiModel.hh,cc
355        G4PreCompoundCascadeInterface.cc
356        bindingEnergy.cc
357        bindingEnergyAsymptotic.cc
358        nuclearLevelDensity.cc
359        paraMaker.cc
360
361- G4InuclSpecialFunctions.hh:  Eliminate bindingEnergy functions which are
362  no longer used, along with their .cc files:
363
364        bindingEnergyKummel
365        bindingEnergyExact
366
367Migration validated using 100 events (20 GeV pi+ on lead) with verbose==4.
368Entire log files (9.6M lines, 433 MB) identical before and after migration.
369
37013 September 2010 Michael Kelsey
371--------------------------------
372- G4InuclElementaryParticle:  Move printParticle() implementation to .cc,
373  and add printing of particle name to output.
374
375- G4InuclNuclei.cc:  Move base-class printing to first line of output, to
376  match G4InuclEP.
377
37810 September 2010 Michael Kelsey (hadr-casc-V09-03-72)
379------------------------------------------------------
380- G4CascadeRecoilMaker:  Add new goodNucleus() function with functionality
381  from G4IntraNucleiCascader::goodCase().  Add parameter to set "rounding
382  tolerance" for small/negative mass differences.  Drop getRecoilFragment()
383  in favor of user calling makeRecoilFragment() directly (instead of doing
384  it collide()), which returns a non-const pointer.
385
386- G4IntraNucleiCascader: Remove previously introduced getResidualMass() and
387  makeResidualFragment() functions, along with G4InuclNuclei object.
388  Replace with new RecoilMaker utility.  Move goodCase() to RecoilMaker, and
389  begin to simplify end-of-cascade processing.
390
391- G4ExitonConfiguration.hh:  Add function to reset values to zero.
392
393- G4InuclNuclei:  Add function to zero out exciton configuration, and use
394  it in fill() functions.
395
3969 September 2010 Michael Kelsey
397-------------------------------
398- G4CascadeCheckBalance:  Add new collide() interface to take lists of both
399  G4InuclElementaryParticles and G4CascadParticles; supports use by
400  G4IntraNucleiCascader and G4CascadeRecoilMaker.
401
402- G4CascadeRecoilMaker:  NEW pseudo-Collider class to compute the nuclear
403  recoil kinematics of a cascade, either in process or completed.  To be
404  used by G4IntraNucleiCascader; uses G4CascadeCheckBalance to do work.
405
4066 September 2010 Michael Kelsey (hadr-casc-V09-03-71)
407-----------------------------------------------------
408- G4NucleiModel:  Add protections in generateInteractionPartners() so that
409  nucleon and quasideuteron interactions are only selected if there are
410  "enough" nucleons of the necessary type still available (xxxNumberCurrent).
411
412- G4InuclNuclei:  Add fill() functions which overwrite the entire particle
413  structure, with same argument lists as constructors.  Will be used mainly
414  by G4IntraNucleiCascader::makeResidualFragment().
415
416- G4IntraNucleiCascader:  Hide non-physical nucleus message behind verbose
417  flag.  Add function and data member to build recoil nucleus (fragment) at
418  end of every iteration; will eventually replace functionality of
419  getResidualMass().
420
4212 September 2010 Michael Kelsey (hadr-casc-V09-03-70)
422-----------------------------------------------------
423- G4NucleiModel.cc:  Restore hadr-casc-V09-03-68 revision 1.71, and remove
424  the two resize(3) actions.
425
426NOTE:  The exercise below has (finally) resolve the cross-section
427discrepancy reported by Sunanda Banerjee back in July.  It turns out that my
428use of "resize(3)" to pre-allocate the qdeutron and acsec buffers on each
429interaction was incorrect.  This doesn't just reserve memory, it fills the
430vectors with three elements, so that subsequent push_back()'s fill [3], [4],
431etc.
432
4332 September 2010 Michael Kelsey
434-------------------------------
435- G4NucleiModel.cc: Reverted to hadr-casc-V09-03-38 revision 1.45, and
436  interface changes incorporated.  See NOTE below from 28 July 2010.
437  Cross-section changes have not been resolved or validated.  Since -38
438  revision has better data/MC matching (ratio near 1), it is restored as the
439  baseline version, and changes will be re-done incrementally.
440
441  Each increment after (0) is tagged "kelsey-20100902x", x=a,b,c,d etc.
442
443        0)  Implement new ctor and generateModel() calls
444            Make cross-section tables statically initialized
445            Include absorptionCrossSection definition
446        1)  Use lookup tables for cross-sections, and new interpolator
447            Change CHC_CHECK to G4CASCADE_DEBUG_CHARGE
448        2)  Use this package's bindingEnergy() function
449        3)  Update diagnostic messages and verbosity levels;
450            Add missing initializers to all constructors;
451            Use data-member buffer for G4CollisionOutput
452        4)  Use generateWithRandomAngles() everywhere appropriate;
453            Collapse if-cascades to use if-return where possible
454        5)  Make generateModel() re-usable with data-member buffers
455        6)  Energy-momentum conservation checking;
456            Implement generateNucleonMomentum;
457            Remove extraneous semicolons and blank lines
458        7)  Use local variables in passFermi();
459            Fix some minor LorentzVector calculations;
460            Use generateNucleonMomentum() for quasi-deuterons
461        8)  Use data-member buffers for quasideuterons, coords, mom.
462        9)  Use enum labels for quasideuteron codes
463        10) Restore Dennis' improved potential (6-zone) calculations
464
4654 August 2010 Michael Kelsey (hadr-casc-V09-03-69)
466--------------------------------------------------
467- G4CascadeData:  Add name data member and optional ctor argument, use
468  when printing tables.
469
470- G4CascadeFunctions.icc:  Pretty-up printing output using name string.
471
472- G4Cascade*Channel.cc:  Add name string to data() ctor, use central part of
473  class name, e.g., "PiMinusP" for G4CascadePiMinusPChannel.
474
475- G4ElementaryParticleCollider.cc:  Add printing of all final-state tables,
476  one time only, protected by G4CASCADE_DEBUG_SAMPLER.
477
478- GNUmakefile:  Add G4CASCADE_DEBUG_SAMPLER preprocessor flag.
479
4803 August 2010 Michael Kelsey (hadr-casc-V09-03-68)
481--------------------------------------------------
482- G4CascadeData.hh: Add print() and printXsec() functions to dump tables.
483- G4CascadeData.icc:  Move implementations out of G4CascadeData.hh file.
484
485- G4CascadeFunctions.hh,icc: Add printTable() to dump tables.
486
487- G4CascadeInterpolator.hh,icc: Add printBins() to dump energy bin edges.
488
489- G4CascadeSampler.hh,icc: Add print() to call through to interpolator.
490
491NOTE:  This should be the last set of functional changes for a while.
492Sunanda Bannerjee reported substantial changes in validation plots for the
493Bertini cascade between 4.9.3-ref-05 (hadr-casc-V09-03-23-01) and
4944.9.3-ref-06/4.9.4-beta-01 (hadr-casc-V09-03-43).
495
49628 July 2010 Michael Kelsey (hadr-casc-V09-03-67)
497-------------------------------------------------
498- G4NucleiModel.cc:  Set deuteron arrays to fixed length (3).  Add A/Z
499  values to generateModel diagnostic message.
500
501- G4EquilibriumEvaporator.cc:  Change some fixed length std::vector<> to
502  simple C arrays.
503
504- G4Fissioner.cc:  Move G4FissionStore to class data member for reuse.
505
506- G4FissionStore:  Add ::clear() function to support reuse, move addConfig()
507  implementation to .cc file.
508
509- G4IntraNucleiCascader:  Move G4NucleiModel to class-level data member
510  (pointer) so it can be reused across collisions.
511
51226 July 2010 Michael Kelsey
513---------------------------
514- G4Analyzer.cc:  Use const-refs for particle lists.
515
516- G4BigBanger, G4ElementaryParticleCollider:  Move std::vector<> buffers to
517  .hh file to allow reuse.
518
519- G4NucleiModel.cc:  Simplify buffers used in generateModel() to reduce
520  G4double allocations.
521
52223 July 2010 Michael Kelsey (hadr-casc-V09-03-66)
523-------------------------------------------------
524- G4CascadeInterface:  Move G4CollisionOutput to .hh file for reuse between
525  events.
526
527- G4IntraNucleiCascader:  Move buffers for cascade output to .hh file, so
528  they can be reused between events.
529
530- G4NucleiModel:  Move G4CollisionOutput to .hh file for reuse; use
531  references for bullet and target args to G4EPCollider.
532
53321 July 2010 Michael Kelsey (hadr-casc-V09-03-65)
534-------------------------------------------------
535- GNUmakefile:  Add new G4CASCADE_CHECK_ECONS to turn off all of the
536  internal conservation checks (reduce std::vector<> memory churn!).
537
538- G4CascadeColliderBase.cc:  Use G4CASCADE_CHECK_ECONS to set the default
539  value of "doConservationChecks": true if defined, false if not defined.
540  This is done with #ifdef-else-endif block, NOT some fancy macro.
541
542- G4CascadeInterface.cc:  Use G4CASCADE_SKIP_ECONS to toggle reporting
543  violations before end of loop (don't need to call balance.okay() twice!).
544
545- G4ElementaryParticleCollider.cc:  Put verbosity check before call to
546  validateOutput() to avoid unnecessary vector manipulations.
547
548- G4IntraNucleiCascader.cc:  Set doConservationChecks = true
549  unconditionally; used to reject bad cascades.
550
551- G4NucleiModel.cc:  Use G4CASCADE_CHECK_ECONS to hide balance.collide().
552
55320 July 2010 Michael Kelsey (hadr-casc-V09-03-64)
554-------------------------------------------------
555- G4CascadeColliderBase: Make G4CascadeCheckBalance a pointer member, move
556  ctor and dtor to .cc file.  Change balance tolerances to 1 per mil and 1
557  MeV.
558
559- G4InuclCollder:  Make all colliders pointer members.
560
561- G4IntraNucleiCascader:  Make EPCollider a pointer member, and call
562  G4CollisionOutput::setOnShell() to balance energy-momentum for null fragments.
563
564- G4InuclNuclei.cc:  Preserve momentum magnitude when setting excitation
565  energy by setting mass and kinetic energy.
566
56719 July 2010 Michael Kelsey (hadr-casc-V09-03-63)
568-------------------------------------------------
569- G4CascadeCheckBalance.cc:  Change zero-tolerance to 10 keV (1e-5) from
570  1 keV (1e-6).
571
572- G4CollisionOutput.hh:  Fix capitalization of "numberOfOutgoingParticles".
573
574- G4EquilibriumEvaporator.cc:  Remove duplicate EEXS setting.
575
576- G4InuclNuclei:  Change implementation of setExitationEnergy() to adjust
577  mass while keeping momentum vector constant.  Currently done with
578  "expensive" LorentzVector manipuation.  Should be done by recomputing
579  kinetic energy given new mass value.
580
581- G4NonEquilibriumEvaporator.cc:  Modify particle-creation block to work as
582  G4EquilibriumEvaporator now does.  Simplify some if-blocks.
583
58416 July 2010 Michael Kelsey (hadr-casc-V09-03-62)
585-------------------------------------------------
586- G4CollisionOutput:  Add interfaces to handle G4CascadParticles.
587
588- G4IntraNucleiCascader:  Eliminate local "inter_case" data member and
589  function.  Use base class G4InteractionCase directly.  Add functionality
590  to test for conservation and recoil before exiting "itry" loop, and redo
591  cascade if unbalanced recoil fragment.
592
593- G4{PreCompound}InuclCollider.cc:  Drop "setInteractionCase()" function.
594
59515 July 2010 Michael Kelsey (hadr-casc-V09-03-61)
596-------------------------------------------------
597- G4CollisionOutput:  New ::add() function to combine two objects.  New
598  accessors to get total charge and baryon number.
599
600- G4CascadeCheckBalance:  Make tempOutput data member, for thread-safety,
601  rather than static variables.  Use new G4CollisionOutput accessors.
602
603- G4IntraNucleiCascader.cc:  Move local output buffers outside while loop,
604  use std::vector<>::insert() for copying.
605
606- G4InuclCollider.cc:  Use new G4CollisionOutput::add() interface.
607
608- G4NucleiModel.cc:  Hide conservation checks behind verbose>2.  Otherwise
609  log files get too big
610
61115 July 2010 Michael Kelsey (hadr-casc-V09-03-60)
612-------------------------------------------------
613- G4CascadeCheckBalance:  Add layer of protection in relativeX() (check
614  initial values) to avoid divide-by-zero errors.  Add another interface to
615  accept list of G4CascadParticles, for use with G4NucleiModel.  Add check
616  of momentum direction balance, not just magnitudes.
617
618- G4IntraNucleiCascader.cc:  Rearrange end-of-loop if-blocks to allow for
619  conservation checking prior to return.  Add reporting of both too-low and
620  too-high residual energy (at verbose=2) for single-nucleon fragments.
621
622- G4InuclCollider.cc:  Remove re-named conservation checks, now all done by
623  colliders themselves.
624
625- G4InuclParticle.hh:  Add setKineticEnergy() function to simplify handling
626  of some kinematics.
627
628- G4NucleiModel:  Add G4InuclNuclei data member (created in generateModel()),
629  for use with conservation checks.  Do check at end of generateParticleFate().
630
63115 July 2010 Michael Kelsey (hadr-casc-V09-03-59)
632-------------------------------------------------
633- G4InuclNuclei:  Use G4DynamicParticle::theDynamicalMass to carry around
634  excitation energy (== theDynamicalMass-thePDGMass).  This allows
635  excitation to be changed on the fly, with all kinematics handled
636  correctly.  It also allows ONLY the ground state nucleus to be created as
637  a G4Ions object (whether global or private), reducing the number of such
638  objects by a factor of thousands.
639
64014 July 2010 Michael Kelsey (hadr-casc-V09-03-58)
641-------------------------------------------------
642- G4CollisionOutput.cc:  For initial four-momentum adjustment, skip over
643  particles which would acquire negative energy after "correction."
644
645- G4ElementaryParticleCollider.cc: Bug fix for two-body final states.
646  Kinematics should not require "rescaling."  That was driven by states
647  which were kinematically forbidden, with m1+m2 > etot_scm (e.g., pi0 p ->
648  pi+ n with just 5 MeV kinetic energy).  Now those states are caught and
649  rejected.
650
651- G4CascadeInterface.cc, G4InuclCollider.cc:  Improve diagnostics reporting
652  number of retries.
653
654- G4EquilibriumEvaporator.cc:  When computing residual excitation
655  (EEXS_new), original thrown energy, S, should be used, not reboosted
656  particle after recoil.  Simplify evaporation kinematics to conserve
657  four-momentum automatically (PEX -= mom).
658
65914 July 2010 Michael Kelsey (hadr-casc-V09-03-57)
660-------------------------------------------------
661- G4CascadeColliderBase: New subclass of G4VCascadeCollider, which takes
662  over all of its concrete functionality, and adds conservation checker
663  (G4CascadeCheckBalance) as data member.  Wrapper functions and control
664  flag allow colliders to user it transparently.
665
666- G4VCascadeCollider:  Move concrete functionality to new base class.
667
668- All colliders:  Change base class to new G4CascadeColliderBase.  Remove
669  local copies of conservation-checker, using new base function instead.
670
671        cascade/include/G4BigBanger.hh
672        cascade/include/G4ElementaryParticleCollider.hh
673        cascade/include/G4EquilibriumEvaporator.hh
674        cascade/include/G4EvaporationInuclCollider.hh
675        cascade/include/G4Fissioner.hh
676        cascade/include/G4IntraNucleiCascader.hh
677        cascade/include/G4InuclCollider.hh
678        cascade/include/G4NonEquilibriumEvaporator.hh
679        cascade/include/G4PreCompoundInuclCollider.hh
680        cascade/src/G4BigBanger.cc
681        cascade/src/G4ElementaryParticleCollider.cc
682        cascade/src/G4EquilibriumEvaporator.cc
683        cascade/src/G4EvaporationInuclCollider.cc
684        cascade/src/G4Fissioner.cc
685        cascade/src/G4IntraNucleiCascader.cc
686        cascade/src/G4InuclCollider.cc
687        cascade/src/G4NonEquilibriumEvaporator.cc
688        cascade/src/G4PreCompoundInuclCollider.cc
689
690- G4EquilibriumEvaporator:  Use new functionality (above) to turn off
691  conservation checks when evaporating fission products.
692
693- G4CascadeInterface.cc:  Report number of retries in verbose messages.
694
695- G4IntraNucleiCascader.cc:  Remove sanity check on afin/zfin vs. model.
696
69713 July 2010 Michael Kelsey (hadr-casc-V09-03-56)
698-------------------------------------------------
699- G4CascadeCheckBalance:  Add zero protection (needed for momentum ratio)
700  using a static tolerance parameter.
701
702- G4EquilibriumEvaporator.cc:  Add dumping of G4CollisionOutput before exit,
703  some fixes for "PEX" adjustments as EEXS changes.
704
705- G4NonEquilibriumEvaporator.cc:  Add conservation checking, dump of output,
706  some fixes for "PEX" adjustments as EEXS changes.
707
708- G4Fissioner.cc:  Add conservation checking, remove addition of excitation
709  energy to input nucleus mass, since already included.
710
71113 July 2010 Michael Kelsey
712---------------------------
713- G4CascadeCheckBalance.cc:  Hide violation reports behind verbose == 1.
714
715- G4ElementaryParticleCollider.cc:  Bump ::collide() message to verbose > 1.
716
717- G4EquilibriumEvaporator.cc:  Add conservation checking, collapse if-cascades
718  by doing failure tests and exits up front, add sanity check on eex_real.
719
720- G4IntraNucleiCascader.cc:  Add diagnostic messages and some FIXME
721  comments, validate afin/zfin against G4NucleiModel result.
722
723- G4InuclCollider.cc:  Move conservation check outside verbosity flag.  This
724  adds to CPU usage, so may need #ifdef protection later.  Adjust a few
725  verbosity levels.
726
727- G4LorentzConvertor.cc:  Bump all diagnostic messages to verbose > 2.
728
729- G4NucleiModel.cc:  Simplify main if-block to put failure up front; add
730  debugging messages when decrementing proton or neutron counts.
731
73211 July 2010 Michael Kelsey
733---------------------------
734- G4CascadeCheckBalance:  Add ctor argument with name of parent class; use
735  this name when reporting results.  Add interface for nuclear fragment
736  list.  Allow parent class name to be changed dynamically.
737
738- G4BigBanger.cc, G4CascadeInterface.cc, G4ElementaryParticleCollider.cc,
739  G4InuclCollider.cc, G4NucleiModel.cc:  Pass name to G4CascadeCheckBalance.
740
741- G4Fissioner.cc:  Use G4CascadeCheckBalance to test energy conservation.
742
743- G4InuclNuclei.hh:  Add model ID as optional ctor argument.
744
745- G4InuclCollider.cc:  Move balance checks on evaporators outside verbosity.
746  Adjust name of G4CascadeCheckBalance for clear reporting.
747
748- G4VCascadeCollider.hh:  Add protected function to change name dynamically.
749
7506 July 2010 Dennis Wright (hadr-casc-V09-03-55)
751-----------------------------------------------
752- G4IntraNucleiCascader.cc: add to final particle list those cascade
753  particles which were formerly abandoned at cascade termination;
754- G4IntraNucleiCascader.cc: allow meson excitons to pass out of nucleus
755  since they are not proper excitons, and would be lost otherwise
756 
7574 July 2010 Dennis Wright (hadr-casc-V09-03-54)
758-----------------------------------------------
759- tag changes up to now
760
7612 July 2010 Michael Kelsey
762--------------------------
763- G4BigBanger.cc:  Moving "generateMomentumModules()" inside loop.  For
764  three-body decays, the angles are not ajustable (so always fails).
765
766- G4CascadeInterface.cc:  Set verbosity on G4CollisionOutput.
767
768- G4EquilibriumEvaporator.cc:  Simplify if-cascades to reduce nesting (test
769  for errors and exit up front, rather than in else-blocks).
770
771- G4InuclCollider.cc:  Set verbosity on G4CollisionOutput.
772
773- G4IntraNucleiCascader.cc:  Throw away casacde which leaves "negative energy
774  recoil" (i.e. rest-frame energy of recoil less than mass of nucleus or
775  nucleon).
776
7771 July 2010 Michael Kelsey
778--------------------------
779- G4InuclCollider.cc:  Used wrong input target for conservation-law checking
780  subsequent to G4EquilibriumEvaporator.
781
782- G4EquilibriumEvaporator.cc, G4NonEquilibriumEvaporator.cc:  Handle
783  excitation energy differently with new G4InuclNuclei interface.  Compute
784  updated values correctly, by taking nuclear mass difference then
785  subtracting energy of evaporated particle.
786
787- G4InuclNuclei:  Reorganization to properly incorporate excited states.
788  Excitation energy included in mass in all cases.  setExcitationEnergy() now
789  replaces G4PartDefn pointer with new excited state.  getNucleiMass() takes
790  (optional) excitation, calls G4NucleiProperties to get mass value.  For
791  weird fragments, multiple isomers allowed, assigned unique non-standard
792  PDG codes.  Include particle name in printout (now in .cc file).
793
794- G4CollisionOutput.cc:  Do not include nuclear excitation energy in output
795  sum; now included with nuclear mass automatically (and properly).
796
797- G4CascadeCheckBalance.cc:  Do not include nucler excitation energy in input
798  sum; now inluded with nuclear mass automatically (and properly).
799
800- G4IntraNucleiCascader.cc:  For recoil nuclear fragments, treat excitation
801  energy properly: compute as difference between recoil "mass" (recoil-frame
802  energy) and ground-state A/Z mass, and pass into G4InuclNuclei ctor.
803  After the cascade, add some recoil energy checks to deal with both
804  floating-point round-off, and quasi-elastic scatters (which change the
805  bullet direction, and leave the nucleus with "missing" energy).
806
807- G4BigBanger.cc:  Simplify boost to "target" nucleus, using "boostVector"
808  instead of G4LorentzConvertor machinery.
809
81030 June 2010 Michael Kelsey
811---------------------------
812- G4BigBanger.cc:  Improve handling of excitation energy as part of nuclear
813  mass, deal with two-body explosion properly (x=0.5, not random).  Some
814  tweaks to diagnostic messages.
815
816- G4CascadeCheckBalance:  Add excitation energy to total energy for bullet
817  and target nuclei.  This is done in G4CollisionOutput for secondaries.  It
818  is NOT relativistically correct (should add to mass, not energy), but is
819  consistent.
820
821- G4CollisionOutput.cc:  Use "getExitationEnergyInGeV()" instead of "0.001*".
822
823- G4IntraNucleiCascader.cc:  More diagnostic messages, improve the afin/zfin
824  sanity check by requiring A>=Z.
825
82628 June 2010 Michael Kelsey
827---------------------------
828- G4CascadeCheckBalance:  Report violations on G4cerr always, regardless
829  of verbosity level.  Add collide(...,<vector>) interface to allow use
830  from within G4ElementaryParticleCollider.
831
832- G4ElementaryParticleCollider.cc:  Add conservation checks within ::collide().
833
834- G4IntraNucleiCascader.cc:  Add more diagnostic messages.  Test for
835  negative values of afin, zfin, and try again.  Set round-off limit (1e-6),
836  and test nuclear recoil energy for bound (setting to zero) before doing
837  energy-violation test.
838
839- G4InuclNuclei.cc:  Abort job if passed negative Z or A argument.
840
84128 June 2010 Michael Kelsey
842---------------------------
843- G4BigBanger.cc:  Missed one instance of GetBindingEnergy().
844
84526 June 2010 Dennis Wright
846--------------------------
847- G4InuclNuclei:  Fix bug in calculation of PDG code.
848
84925 June 2010 Michael Kelsey (hadr-casc-V09-03-53)
850-------------------------------------------------
851- G4ElementaryParticleCollider.cc:  MAJOR BUG FIX:  Three different places
852  in generating N-body momenta had incorrect "recoil" calculations.  The
853  Nth four-vector was computed as simply -total, which produced negative
854  energy states (obviously).  The correct calculation should have been
855  N = G4LV(0,0,0,etot) - (total) in each instance.
856
85724 June 2010 Michael Kelsey (hadr-casc-V09-03-52)
858-------------------------------------------------
859- G4CascadeCheckBalance.cc:  Bug fixes to limit checks; should be using
860  std::abs(), or negative violations don't get caught!  Also did some
861  cleanup for compiler warnings see on Linux.
862
86323 June 2010 Michael Kelsey
864---------------------------
865- G4CascadeInterface.cc:  Fix infinite-loop bug with energy-violation; must
866  check for (nTries>maxTries) outside parenthetical, with balance.okay()
867  inside.  Do conservation checks all the time, not just with flag set.  If
868  e-violation is "infinite loop", dump last generated event and abort job.
869
870- G4CascadeCheckBalance:  Add checks on baryon number, charge, and kinetic
871  energy.  "Global" sanity check (::okay() function) does not include K.E.
872
87323 June 2010 Michael Kelsey (hadr-casc-V09-03-51)
874-------------------------------------------------
875- bindingEnergy.cc:  Replace entire function with call-through to
876  G4NucleiProperties.  Copy test for valid A/Z from there, and return
877  0. directly on failure; suppresses warning message in 9.4-beta.
878
879- G4EquilibriumEvaporator.cc, G4Fissioner.cc, G4IntraNucleiCascader.cc
880  G4InuclNuclei.cc, G4NonEquilibriumEvaporator.cc, G4NucleiModel.cc
881  G4VCascadeCollider.cc:  Restore calls to local "bindingEnergy()" to
882  get wrapper function above; suppresses warning messages in 9.4-beta.
883
884- G4NucleiModel.cc:  Make class re-usable (had been assumed in -47 tag, but
885  was not true!), by clearing all parameter vectors in generateModel().
886  Values of A,Z are tested first, and previous data kept if same nucleus is
887  being modelled.
888
88923 June 2010 Michael Kelsey
890---------------------------
891- G4CascadeInterface.cc:  Minor fix to rationalize version jumpings.
892- G4NucleiModel.cc:  Fix bug in partners list termination mods below, and
893  remove reflection-recoil from boundaryTransition().
894
895
89621 June 2010 Michael Kelsey (MHK-20100621)
897------------------------------------------
898- G4CascadeInterface.cc:  Bring MHK-20100620 version back to HEAD, make same
899  parenthesis fix for GCC 4.5 compilation.
900
901- G4IntraNucleiCascader.cc:  Bug fix nuclear recoil kinematics introduced in
902  MHK-20100620.
903
904- G4NucleiModel.cc:  Bring MHK-20100620 version back to HEAD, apply ctor
905  argument fix.  Eliminate creating temporaries for terminal "partners" on
906  list; default ctor will take care of it.  Hide negative path-length report
907  behind verbose flag, and don't return an empty list.
908
909  Add block of code in ::boundaryTransition() which recoils the nucleus when
910  the secondary is reflected off the potential, to balance the momentum
911  transfer.  This is implemented by computing the boost for the full nucleus
912  using the computed three-momentum transfer, and applying that boost to the
913  secondary.
914
91523 June 2010 Michael Kelsey (hadr-casc-V09-03-50)
916-------------------------------------------------
917- G4IntraNucleiCascader.cc:  Restore G4NucleiModel as local data member.
918  Not well designed for reuse.
919
92021 June 2010 Michael Kelsey (hadr-casc-V09-03-49)
921-------------------------------------------------
922NOTE:  Changes below were version jumped into V09-03-48.  Tag above ONLY
923       includes these two changes!
924
925- G4CascadeInterface.cc:  Add parentheses in main iteration loop to support
926  mixed && and || (reported by gcc-4.5).
927
928- G4NucleiModel.cc:  Fix mistake in passing ctor args to generateModel().
929
93020 June 2010 Michael Kelsey (MHK-20100620)
931------------------------------------------
932- G4CascadeCheckBalance:  New utility class to do energy and momentum
933  conservation testing.  Implemented as a "collider" to resue interface.
934
935- G4CascadeInterface.cc:  Use new G4CascadeCheckBalance for energy
936  conservation.
937
938- G4CollisionOutput:  Add setVerboseLevel() function, diagnostic reports in
939  ::setOnShell(), and collapse if-cascades to use "if (!xxx) return" instead
940  of multiple nestings.
941
942- G4ElementaryParticleCollider.cc: Collapse if-cascade to use "if (!xxx)
943  return" instead of multiple nestings.
944
945- G4IntraNucleiCascader.cc:  Improve diagnostic messages, change some G4cout
946  to G4cerr.
947
948- G4InuclCollider:  Make output buffers data members to reduce churn;
949  simplify if-cascades to use "if (!xxx) return" instead of nesting; add
950  energy-conservation checks at each stage of cascade.
951
952- G4NucleiModel.cc:  Improve diagnostics, collapse if-cascades to use "if
953  (!xxx) return" instead of multiple nestings.
954
95518 June 2010 Michael Kelsey (hadr-casc-V09-03-48)
956-------------------------------------------------
957- G4CascadeInterface.cc:  Add check on energy conservation between initial
958  and final states; more than 5% imbalance triggers repeat generation of
959  cascade.  This check may be disabled with flag G4CASCADE_SKIP_ECONS.  Also
960  did some minor cleanup of the code.
961
962- cascade/GNUmakefile:  Add support for new flag above.
963
96417 June 2010 Michael Kelsey (hadr-casc-V09-03-47)
965-------------------------------------------------
966- G4CascadeInterface, G4PreCompoundCascadeInterface:  Make G4InuclCollider a
967  local data member, pass verbosity to it in ::ApplyYourself().
968
969- G4InuclCollider, G4ElementaryParticleCollider, G4IntraNucleiCascader,
970  G4EquilibriumEvaporator, G4BigBanger: Make all sub-colliders local data
971  members, pass verbosity to each of them.
972
973- G4NucleiModel:  Add ctors and generateModel() signatures so both can do
974  particle or A/Z initialization.  Add setVerboseLevel() function.
975
97617 June 2010 Michael Kelsey (hadr-casc-V09-03-46)
977-------------------------------------------------
978- cascade/GNUmakefile: Add series of "ifneq (,...)" blocks to map
979  environment variables for debugging onto "-D..." compiler flags:
980
981        G4CASCADE_COULOMB_DEV
982        G4CASCADE_DEBUG_CHARGE
983        G4CASCADE_DEBUG_INTERFACE
984        G4CASCADE_DEBUG_SORT
985        G4CASCADE_WATCHER_HIGHZ
986
987- G4CascadeInterface.cc: Replace preprocessor flags "debug_G4...Interface"
988  with G4CASCADE_DEBUG_INTERFACE, and "BERTDEV" with G4CASCADE_COULOMB_DEV.
989  Fix bug with information access in debugging block.
990
991- G4EquilibriumEvaporator.cc, G4IntraNucleiCascader.cc,
992  G4NonEquilibriumEvaporator.cc:  Eliminate preprocessor flag RUN and all
993  code contained in "#else" blocks.
994
995- G4LorentzConverter.cc:  Add diagnostic output with different levels:  All
996  " >>>" entry messages done for verboseLevel >= 1; all numeric reports for
997  verboseLevel > 2.
998
999- G4NucleiModel: Replace preprocessor flag "CHC_CHECK" with
1000  G4CASCADE_DEBUG_CHARGE.
1001
1002- G4PreCompoundCascadeInterface.cc: Replace preprocessor flag
1003  "debug_G4...Interface" with G4CASCADE_DEBUG_INTERFACE.  Fix bug with
1004  information access in debugging block.
1005
1006- G4WatcherGun.cc: Replace preprocessor flag "PB" with G4CASCADE_WATCHER_HIGHZ.
1007
100816 June 2010 Michael Kelsey
1009---------------------------
1010- G4CascadeInterface.hh:  Add setVerboseLevel() function.
1011
1012- G4IntraNucleiCascader.cc:  Add reporting of momentum content for residual
1013  nuclear fragment, list of final-state particles, some cleanup of momentum
1014  balancing code.
1015
1016- G4LorentzConvertor:  Add reporting of bullet and target four-vectors.
1017
1018- G4NucleiModel.cc:  Add diagnostic output for partner-list generation,
1019  replace one random-angle code block with generateWithRandomAngles().
1020
102115 June 2010 Michael Kelsey (hadr-casc-V09-03-45)
1022-------------------------------------------------
1023- G4CascadeInterface.cc, G4PreCompoundCascadeInterface.cc:  When converting
1024  output particles from K0/K0bar to K0S/K0L, convert kinetic energy from
1025  Bertini internal units (GeV) to GEANT4 units (MeV).
1026
1027- G4VCascadeCollider:  Make two separate ctors, name and name+verbose, with
1028  no default values.  All subclasses *must* provide a literal name string.
1029
103012 June 2010 Michael Kelsey (hadr-casc-V09-03-44)
1031-------------------------------------------------
1032- G4CascadeT33piNChannel.cc:  Swapped 8-body final state tables for pipP
1033  vs. pimN.
1034
103511 June 2010 Michael Kelsey (hadr-casc-V09-03-43)
1036-------------------------------------------------
1037- G4CascadeData.hh:  Equally trivial fix for compiler warking on Intel ICC
1038  for index[] array bounds in ::initialize().  Dimension array as [9], and
1039  set all values.
1040
104108 June 2010 Gunter Folger (hadr-casc-V09-03-42)
1042------------------------------------------------
1043-  trivial fix for compiler warning on gcc43 on empty body in for(...) in 
1044    cascade/include/G4CascadeInterpolator.icc:67
1045
104601 June 2010 Michael Kelsey (hadr-casc-V09-03-41)
1047-------------------------------------------------
1048- paraMaker.cc:  Fix vector initialization for Windows crash.
1049
105026 May 2010 Dennis Wright (hadr-casc-V09-03-40)
1051-----------------------------------------------
1052- G4NucleiModel: remove conversion to fm, and conversion of cross
1053  sections to fm**2
1054
105521 May 2010 Michael Kelsey (hadr-casc-V09-03-39)
1056------------------------------------------------
1057Final tag for inclusion in GEANT 4.9.4-beta.  Will be validated internal and
1058included in global Hadronics tag.
1059
1060- G4CascadeSampler.icc:  Activate time-saving checks on single bins.
1061- G4ElementaryParticleCollider.cc:  Remove special case for nucleon elastic
1062  scattering.
1063
106421 May 2010 Michael Kelsey (kelsey-20100521c)
1065---------------------------------------------
1066- G4CascadeInterface, G4PreCompoundCascadeInterface, G4InuclEvaporation:
1067  Simplify code: fetch G4DynamicParticle out of outgoing G4InuclParticles,
1068  rather than creating new ones.  Remove all of the *Collider data members
1069  (instantiated within G4InuclCollider).  Move final state rotations to
1070  G4CollisionOutput.
1071
1072- G4InuclParticle:  Provide accessor to return G4DynamicParticle.
1073
1074- G4CollisionOutput:  Add function to apply LorentzRotation to both lists;
1075  used by G4CascadeInterface.
1076
1077- G4ElementaryParticleCollider:  Avoid memory churn with G4LorentzVector
1078  temporaries.
1079
108021 May 2010 Michael Kelsey (kelsey-20100521b)
1081---------------------------------------------
1082- G4VCascadeCollider:  New base class for all Colliders.  Carries
1083  verboseLevel data member and set-function.  ::collide() is pure virtual.
1084  Additional protected member functions will be defined to include all code
1085  shared across multiple Colliders.
1086
1087- Migrate all of the "Collider" factories to use new base class, removing
1088  common member functions, and replace passed-in sibling colliders with
1089  local data members (pointers for now).  Since none of these classes have
1090  persistent (state preserving) data members, the cost of more than one
1091  instantiation is minimal.
1092
1093        G4BigBanger
1094        G4ElementaryParticleCollider
1095        G4EquilibriumEvaporator
1096        G4EvaporationInuclCollider
1097        G4Fissioner
1098        G4IntraNucleiCascader
1099        G4InuclCollider
1100        G4NonEquilibriumEvaporator
1101        G4PreCompoundInuclCollider
1102
1103- G4CascadeInterface.cc, G4InuclEvaporation.cc,
1104  G4PreCompoundCascadeInterface.cc:  Remove siblings from constructors for
1105  the Colliders.
1106
1107- G4InteractionCase.hh:  Eliminate unnecessary copying of std::pair<>'s, use
1108  initializers in ctors, add clear() function to reset to 0-0-0.  Move
1109  evaluation of bullet vs. target to new set() function, replacing separate
1110  bulletTargetSetter() in the colliders.  Add boolean accessors to avoid
1111  hard-coding inter_case values.  Change code numbers so nucleus collisions
1112  are negative, and positive codes refer to the "is" or "rtype" numbers.
1113
1114- G4ElementaryParticleCollider.cc:  Use G4InteractionCase to compute "is",
1115  instead of hardwiring the meaning.
1116
1117- G4Collider.hh:  Remove empty and never-used file.
1118
1119- G4EvaporationInuclCollider.cc:  Eliminate unnecessary creation of
1120  duplicate G4InuclNuclei: pass input through to G4EquilibriumEvaporator.
1121
1122- G4LorentzConvertor:  Add interfaces to pass G4InuclParticles directly.
1123
112421 May 2010 Michael Kelsey (kelsey-20100521a)
1125---------------------------------------------
1126Replace hand-coded interpolation of arrays with use of G4CascadeInterpolator.
1127In all cases, local arrays are replaced with static const, and the
1128interpolator object itself is declared static, to reduce memory churn.
1129
1130        G4NucleiModel::totalCrossSection()
1131        G4EquilibriumEvaporator::getQF()
1132        G4InuclSpecialFunctions::paraMaker[Truncated]() (in paraMaker.cc)
1133
1134- G4CascadSpecialFunctions:  Remove. totalCrossSection() redundant with
1135  G4NucleiModel.  Move absorptionCrossSection() to G4NucleiModel.
1136
1137- G4CascadeInterpolator.icc:  Bug fix to catch special case of exact upper
1138  bin edge (occurs when !doExtrapolation).  If index == last + 0., just
1139  return upper edge value, without calculation.
1140
1141- G4NucleiModel.cc:  Use G4Cascade{Pi*}Channel and G4Cascade{NN,NP,PP}Channel
1142  classes to get total cross-sections for pi-N and N-N scattering.  Arrays
1143  for kaon and hyperon scattering should be migrated as well, once binning
1144  is resolved.  Move absorptionCrossSection() here from SpecialFunctions.
1145
114620 May 2010 Michael Kelsey (kelsey-20100521)
1147--------------------------------------------
1148- G4CascadeInterpolator.icc:  Two bug fixes involving values at array edges.
1149
115019 May 2010 Michael Kelsey, Dennis Wright
1151-----------------------------------------
1152- G4BertiniData.hh,.cc:  Remove unused and unnecessary class.
1153- G4NucleiModel.cc: convert nuclear radii to fm and cross sections to
1154    fm**2.  Use six-zone model for A > 99, and make alpha a 1-zone
1155    nucleus.
1156- G4CascadSpecialFunctions: convert pion absorption cross sections from
1157    mb to fm**2, correct spelling of method absorptionCrossSection
1158
115917 May 2010 Michael Kelsey (hadr-casc-V09-03-38)
1160------------------------------------------------
1161- paraMaker.cc (G4InuclSpecialFunctions::paraMaker[Truncated]):  Upper edge
1162  of interpolation array not properly handled.  Should be "if (Z >= 70.0)".
1163  This affects G4NonEquilibriumEvaporator output.
1164
116517 May 2010 Michael Kelsey (hadr-casc-V09-03-37)
1166------------------------------------------------
1167Bug fixes for compiler warnings (not seen on MacOSX, even with g++ -Wall)
1168
1169- G4CascadeData.hh: Dummy arrays needed double-braces for initialization.
1170
1171- G4CascadeInterpolator.icc: Extraneous decimal point in "for (i=0.;".
1172
1173- G4CascadeKzeroBarNChannel.cc:  Left three "old" arrays in place during
1174  conversion.
1175
117614 May 2010 Michael Kelsey (hadr-casc-V09-03-36)
1177------------------------------------------------
1178Remove obsolete files following reorganization of two-body scattering
1179lookup tables.
1180
1181        G4CascadeElasticInterface.hh,.cc
1182        G4ElasticCascadeInterface.hh,.cc
1183        G4FinalStateSampler.hh,.cc
1184        G4NucleonSampler.hh,.cc
1185        G4PionSampler.hh,.cc
1186
1187- G4CascadeChannel.hh,.cc:  All functionality removed, replaced with
1188  namespace containing only getQnums and CheckQnums validation functions.
1189
119014 May 2010 Michael Kelsey (hadr-casc-V09-03-35)
1191------------------------------------------------
1192Replace independent parallel samplers with templated base class and single
1193implementation.  This completes the reorganization of the channel tables.
1194
1195- G4CascadeSampler:  Redefine as templated base, taking binning array as
1196  constructor argument.  Move implementation file from .cc to .icc.
1197  NOTE:  G4CascadeSampler.cc is removed, since not consistent with new .hh.
1198
1199- G4PionNucSampler:  Subclass of G4CascadeSampler<30>, replaces
1200  G4FinalStateSampler, using bins array from there.
1201
1202- G4KaonNucSampler:  Sublcass of G4CascadeSampler<31>, replaces previous
1203  G4CascadeSampler, using bins array from there.
1204
1205- G4Cascade*Channel.hh:  Change all typedefs to pass appropriate of two new
1206  samplers in template.
1207
1208- G4ElementaryParticleCollider.cc: Replace long "if (is==)"-cascades with
1209  switch blocks.  Move all getOutgoing calls (for pions and nucleons) into
1210  one function, and call it from outside multiplicity checks.  Use
1211  G4CascadeInterpolator for angular distributions.  Set modelID=3 in all
1212  G4InuclParticle constructions.
1213
121414 May 2010 Michael Kelsey (hadr-casc-V09-03-34)
1215------------------------------------------------
1216Extract lookup tables from G4PionSampler and G4NucleonSampler into
1217individual "classes" defined and initialized with G4CascadeData.
1218
1219- G4CascadePi{Plus,Minus,Zero}{P,N}Channel.hh: Six new typedefs defined as
1220  with the existing G4CascadeXXXChannel, to replace G4PionSampler.
1221
1222- G4CascadeT33piNChannel.cc: Lookup tables for both PiPlusP and PiMinusN,
1223  implemented as with existing G4CascadeXXXChannel, from G4PionSampler.cc.
1224
1225- G4CascadeT31piNChannel.cc: Lookup tables for both PiMinusP and PiPlusN,
1226  implemented as with existing G4CascadeXXXChannel, from G4PionSampler.cc
1227
1228- G4CascadeT11pizNChannel.cc: Lookup tables for both PiZeroP and PiZeroN,
1229  implemented as with existing G4CascadeXXXChannel, from G4PionSampler.cc
1230
1231- G4Cascade{PP,NP,NN}Channel.hh: Three new typedefs defined as with the
1232  existing G4CascadeXXXChannel, to replace G4NucleonSampler.
1233
1234- G4CascadeT1NNChannel.cc: Lookup tables for both p-p and n-n scattering,
1235  implemented as with existing G4CascadeXXXChannel, from G4NucleonSampler.cc
1236
1237- G4CascadeT0npChannel.cc: Lookup tables for p-n scattering, implemented as
1238  with existing G4CascadeXXXChannel, from G4NucleonSampler.cc
1239
1240- G4CascadeFunctions.hh, .icc: Pass std::vector as non-const argument to
1241  getOutgoingParticleTypes() instead of returning internal buffer.
1242
1243- G4CascadeSampler.cc, G4FinalStateSampler.cc:  Add some checks in
1244  findFinalStateIndex, fillSigmaBuffer, and sampleFlat(), such that
1245  single-entry ranges don't go through the analysis, just return index 0.
1246
1247- G4ElementaryParticleCollider.cc: Follow change to getOutgoingParticleTypes()
1248  in generateStrangeChannelPartTypes().  Replace all uses of G4PionSampler
1249  and G4NucleonSampler with new channel "classes".
1250
125114 May 2010 Michael Kelsey (hadr-casc-V09-03-33)
1252------------------------------------------------
1253Continue consolidation of two-body collision lookup tables.  Unify
1254interfaces between pion/nucleon and kaon/hyperon samplers.
1255
1256- G4CascadeData: Many changes to support use as data class for both
1257  kaon/hyperon and pion/nucleon tables (migration will be next tag):
1258
1259  1) Add new first argument to template with number of bins in energy
1260     interpolation.  This replaces the (temporary) use of
1261     G4CascadeSampler::energyBins within the class definition.
1262
1263  2) Add two additional template arguments, N8 and N9, with default values
1264     of zero.  These will be used by the pion/nucleon tables, but not by the
1265     existing kaon/hyperon tables.
1266
1267  3) Define additional arrays for 8- and 9-body final states, using
1268     conditional dimensioning (e.g., if N8==0, use [1]).  Define second
1269     9-body constructor to accept and initialize the new arrays.
1270
1271  4) Eliminate static intialization of index[], moving it into
1272     initialize().  Template specialization can't be used with data!
1273
1274  5) Add separate "sum" (summed N-body cross-sections) and "tot" arrays
1275     (measured inclusive xsec).  Latter is a const-ref, initialized to "sum"
1276     if not provided as ctor argument, with two new ctors as needed.
1277
1278  6) Add accessor to return maximum multiplicity (NM+1).
1279
1280- G4CascadeFunctions.hh:  Add second template argument to specify which
1281  "final state sampler" is the base class.  Use both T::data.tot and
1282  T::data.sum in GetMultiplicity(), to support sum/tot comparisons in
1283  pion/nucleon channels.  Extend GetOutputParticleTypes() to support up to
1284  multiplicity 9.
1285
1286- G4CascadeFunctions.icc:  Implementations of template class functions.
1287
1288- G4CascadeXXXChannel.hh: Add "31," as initial template argument for Data.
1289  Add G4CascadeSampler as second template argument in G4CascadeXXXChannel
1290  typedef.
1291
1292
129314 May 2010 Michael Kelsey (hadr-casc-V09-03-32)
1294------------------------------------------------
1295Continue revisions to two-body collision lookup tables.  Make the kaon and
1296hyperon channels compatible with the pion/nucleon samplers, before the next
1297stage of unifying the structure.
1298
1299- G4CascadeSampler: NEW class, parallel to G4FinalStateSampler but with a
1300  different energy binning.  Used as base class to G4CascadeFunctions<T>,
1301  from which the cross-section and other arrays are passed.  Implement
1302  findMultiplicity (cf. G4CascadeFunctions::getMultiplicity) to return the
1303  true value, not the array index.
1304
1305  This class replaces functionality of G4CascadeChannel, which is redundant.
1306
1307- G4CascadeChannel: Remove all interpolation code, leaving only getQnums().
1308
1309- G4CascadeFunctions:  Inherit from G4CascadeSampler for interpolations,
1310  except for final-state extraction (where FS type arrays are dealt with
1311  locally, not passed).  Public static functions rely on private instantiated
1312  version of class to do work, so that G4CascadeSampler gets instantiated.
1313
1314- G4CascadeData: Remove final template argument (total number of indices),
1315  as redundant with simple sum of multplicity indices.  Use template args to
1316  dimension data member arrays (const references), and to statically
1317  initialize the start-stop index table.  Make large cross-sections table
1318  G4double, not G4float.  Define ctor to pass in array refs for initialization.
1319  Reduce index array to single dimension (start=index[i], stop=index[i+1]).
1320
1321- G4CascadeXXXChannel:  All of the initial-state channel "classes"
1322  (typedef names) modified to follow G4CascadeData rewrite.  In .cc file,
1323  the explicit lookup tables are static, and passed by const-ref to
1324  G4CascadeData.  The "initializer" struct is dropped; with the static
1325  "data" object initialized by ctor here.
1326
1327- G4ElementaryParticleCollider.cc:  In ::generateMultiplicity(), eliminate
1328  extra "+2" and "-2" applied to local "mul" variables.  With change above,
1329  all functions return return true multiplicity, not array index.
1330
1331- G4FinalStateSampler:  Add findFinalStateIndex() function, to make
1332  interface match G4CascadeSampler exactly.  Reduce index array to single
1333  dimension.
1334
1335- G4PionSampler.cc, G4NucleonSampler.cc:  Use new findFinalStateIndex()
1336  function in GetFSPartTypesXXX() functions.  Reduce index array to single
1337  dimension (start=index[i], stop=index[i+1]).
1338
133914 May 2010 Michael Kelsey (hadr-casc-V09-03-31)
1340------------------------------------------------
1341Begin revisions to two-body collision lookup tables.  This will be a major
1342reorganization, splitting the G4PionSampler and G4NucleonSampler into
1343separate little "classes" (typedefs) for each initial state, in the same way
1344that the kaon and hyperon states are done now.  The underlying templated and
1345base classes will be unified across all of the channels.
1346
1347- G4CascadeInterpolator: NEW class to encapsulate interpolation procedure.
1348  Uses C-style arrays passed by dimensioned reference, to allow compile-time
1349  array bounds checking.  Template argument is array dimension, and array of
1350  energy bins is saved by ctor.  User array to be interpolated is passed as
1351  function argument.  Last value interpolated, along with result, is saved,
1352  to allow fast multiple interpolations.
1353
1354  This class is substantially more lightweight than G4PhysicsVector.
1355
1356- G4FinalStateSampler: Replace manual interpolation with G4CascadeInterpolator.
1357  Remove redundant sampleFlat(...) function with argument.  Rename member
1358  functions in anticipation of merging with G4CascadeFunctions.
1359
1360- G4PionSampler.cc, G4NucleonSampler.cc: Follow use of G4CascadeInterpolator
1361  above, and drop local caching of interpolation results.  Reduce offset
1362  list for cross-sections to one dimension (start=index[i], stop=index[i+1]).
1363
136411 May 2010 Michael Kelsey (hadr-casc-V09-03-30)
1365------------------------------------------------
1366Bug fixes in the two-body scattering code.
1367
1368- G4PionSampler.cc, G4NucleonSampler.cc:  Fix long-standing bug with offset
1369  indices computed for cross-section tables.  XXXindex[m][0] (start) and
1370  XXXindex[m][1] (stop) are computed in initChannels() as [start,stop]
1371  inclusive range (i.e., "for (i=start; i<=stop; i++)"), but used with
1372  G4FinalStateSampler::fillSigmaBuffer (and its predecessor code) as
1373  [start,stop) exclusive range (i.e., normal C style "for (i=start; i<stop;
1374  i++)").  This is fixed by properly setting XXXindex[m-1][1] =
1375  XXXindex[m][0], and using the ranges consistently in initChannels().
1376
1377- G4ElementaryParticleCollider.cc:  In the six pion-nucleon scatters, the
1378  two-body final state is incorrectly tested for charge-exchange.  All the
1379  if statements check whether "particle_kinds[0]" is the initial nucleon,
1380  but the outgoing baryon actually appears in particle_kinds[1].  Replace
1381  the individual tests with the use of "finaltype", moved out of the
1382  strangeness if-block.
1383
138406 May 2010 Michael Kelsey (hadr-casc-V09-03-29, hadr-casc-V09-03-23-01)
1385------------------------------------------------------------------------
1386- G4Diproton.cc, G4Dineutron.cc, G4UnboundPN.cc:  After creating instance
1387  of these "internal" particles, remove the pointer from G4ParticleTable.
1388  This avoids an issue with the FTFP de-excitation code, which occasionally
1389  picks up the diproton and puts it onto a final-state particle list.
1390
1391These three changes, and nothing else, are "backported" on top of -23 for
1392continued validation tests.
1393 
139430 Apr 2010 Dennis Wright (hadr-casc-V09-03-28)
1395-----------------------------------------------
1396- G4ElementaryParticleCollider:
1397    improved pi-nucleon two-body angular distributions, and made
1398    sampling of CM angle faster.  As a result, the methods
1399    getElasticCase and adjustIntervalForElastic were made redundant
1400    and removed.  Also removed array containing old angular distribution
1401    parameters.
1402   
1403    Now use nucleon-nucleon angular distributions for hyperon-nucleon
1404    scattering, and pi-nucleon dsitributions for kaon-nucleon scattering
1405    (until specific kaon distributions are added).
1406 
140729 Apr 2010 Michael Kelsey (hadr-casc-V09-03-27)
1408------------------------------------------------
1409- G4InuclPartcleNames.hh:  Long name "gamma" conflicts with math function.
1410  Change back to "photon".
1411
1412- G4InuclElementaryParticle.cc, G4InuclEvaporation.cc,
1413  G4NonEquilibriumEvaporator.cc, G4NucleiModel.cc, G4NucleonSampler.cc,
1414  G4PionSampler.cc, G4PreCompoundCascadeInterface.cc,
1415  G4PreCompoundInuclCollider.cc:  Replace "gamma" with "photon".
1416
1417- G4InuclElementaryParticle.hh:  Change "photon()" to "isPhoton()" to avoid
1418  conflicts with names enum.  Use names enum internally as well.
1419
1420- G4ElementaryParticleCollider.cc, G4InuclCollider.cc,
1421  G4PreCompoundInuclCollider.cc:  Change "photon()" to "isPhoton()".
1422
142328 Apr 2010 Michael Kelsey (hadr-casc-V09-03-26)
1424------------------------------------------------
1425All changes below within "cascade/" subdirectory:
1426
1427- G4InuclParticleNames.hh:  Define enums for particle type codes, using both
1428  "long" and "short" names copied from existing duplicated enums.  One
1429  change is that "kp" and "km" are replaced by "kpl" and "kmi" respectively,
1430  since "km" conflicts with GEANT4 "kilometers" unit.  Deploy in classes:
1431
1432        include/G4FinalStateSampler.hh
1433        src/G4CascadeElasticInterface.cc
1434        src/G4CascadeInterface.cc
1435        src/G4ElasticCascadeInterface.cc
1436        src/G4ElementaryParticleCollider.cc
1437        src/G4InuclElementaryParticle.cc
1438        src/G4InuclEvaporation.cc
1439        src/G4NucleonSampler.cc
1440        src/G4PionSampler.cc
1441        src/G4PreCompoundCascadeInterface.cc
1442
1443- G4InuclElementaryParticle.cc:  Add Omega- and antinucleon partcles to lists.
1444  No code uses these (yet).
1445
144624 April 2010 Michael Kelsey (hadr-casc-V09-03-25)
1447--------------------------------------------------
1448Remove redundant classes, G4Ibertini and G4BertiniRegionModel.
1449
145021 April 2010 Michael Kelsey (hadr-casc-V09-03-24)
1451--------------------------------------------------
1452- G4NucleiModel.hh,cc:  Eliminate last remaining hardwired baryon masses.
1453
145418 April 2010 Michael Kelsey (hadr-casc-V09-03-23)
1455--------------------------------------------------
1456Final revisions to access std::vector<particle> via const-references:
1457
1458        G4CascadeInterface.cc
1459        G4EquilibriumEvaporator.cc
1460        G4IBertini.cc
1461        G4InuclCollier.cc
1462        G4NucleiModel.cc
1463        G4PreCompoundCascadeInterface.cc
1464
1465- G4CollisionOutput:  Add new function to boost output lists to lab frame.
1466
146714 April 2010 Michael Kelsey (hadr-casc-V09-03-22)
1468--------------------------------------------------
1469- G4CascadeInterface.cc, G4IBertini.cc, G4PreCompoundCascadeInterface.cc:
1470  In ::ApplyYourself(), do the check on K0L/K0S _before_ passing G4PartDefn
1471  to G4InuclElemPart::type().  This avoids unnecessary warning message.
1472
147314 April 2010 Michael Kelsey (temporary: kelsey-memClean3)
1474----------------------------------------------------------
1475All changes below within "cascade/" subdirectory:
1476
1477- G4FinalStateSampler: Replace "sigma" argument for sampling with data
1478  member, add functions to fill sigma buffer by passing in array references.
1479  Provide typedef for interpolator, and function to apply interpolation.
1480
1481- G4PionSampler, G4NucleonSampler:  Follow changes to base class,
1482  eliminating much of the copy-and-paste code blocks via function calls.
1483  Replace G4float arrays with G4double, to support passing into functions.
1484
148513 April 2010 Michael Kelsey (hadr-casc-V09-03-21)
1486--------------------------------------------------
1487All changes below within "cascade/" subdirectory:
1488
1489- G4InuclSpecialFunctions.hh, paraMaker.cc, paraMakerTruncated.cc:  Drop
1490  return-by-value from paraMaker() and paraMakerTruncated().  Add second
1491  argument with non-const reference to output buffer for return.
1492
1493- G4EquilibriumEvaporator.cc:  Follow changes above to paraMaker(), use
1494  references to address parms.first and parms.second, instead of copying.
1495
1496- G4NonEquilibriumEvaporator.cc:  Follow changes above to
1497  paraMakerTruncaed(), use references to address parms.first and
1498  parms.second, instead of copying.
1499
1500- G4Dineutron, G4Diproton, G4UnboundPN:  Inherit from G4VShortLivedParticle,
1501  per Kurashige.  Thought it would eliminate G4ElectronOccupancy churn, but
1502  did not.
1503
150412 April 2010 Michael Kelsey (hadr-casc-V09-03-20)
1505--------------------------------------------------
1506All changes below within "cascade/" subdirectory:
1507
1508- G4NucleiModel: Move function implementations from .hh to .cc.  Replace
1509  manual sorting (inefficient O(N^2)) with std::sort() and simple
1510  "less-than" function for std::pair<> "partners".
1511
1512- G4CollisionOutput: Move function implementations from .hh to .cc.  Use
1513  std::vevtor<>::insert() to add vectors together.
1514
1515- Replace return-by-value G4CollisionOutput with non-const reference buffer
1516  passed into xxx::collide(), in the following classes:
1517        G4BigBanger
1518        G4CascadeElasticInterface
1519        G4CascadeInterface
1520        G4ElasticCascadeInterface
1521        G4ElementaryParticleCollider
1522        G4EquilibriumEvaporator
1523        G4EvaporationInuclCollider
1524        G4Fissioner
1525        G4IBertini
1526        G4IntraNucleiCascader
1527        G4InuclCollider
1528        G4InuclEvaporation
1529        G4NonEquilibriumEvaporator
1530        G4NucleiModel
1531        G4PreCompoundCascadeInterface
1532        G4PreCompoundInuclCollider
1533
1534  Note that some places where internal G4CollisionOutput buffers are being
1535  used (and their contents appended to the global output) have not been
1536  cleaned up yet.  These will require some rearrangement of the algorithms,
1537  or/and elimination of debugging output.
1538
153909 April 2010 Michael Kelsey (hadr-casc-V09-03-16-01)
1540-----------------------------------------------------
1541This modification is included in a pseudo-patch of hadr-casc-V09-03-16,
1542without brining in any of the -17 through -19 modifications.
1543
1544- G4LorentzVector.cc:  Protect two instances of sqrt() against tiny negative
1545  arguments (due to tiny-tiny subtractions).
1546
154709 April 2010 Michael Kelsey (hadr-casc-V09-03-19)
1548--------------------------------------------------
1549All changes below within "cascade/" subdirectory:
1550
1551- G4InuclParticle, G4InuclElementaryParticle, G4InuclNuclei:  Eliminate
1552  unused G4String ctor argument, introduced in hadr-casc-V09-03-01.  Causes
1553  a lot of pointless memory churn.
1554
1555- G4BigBanger.cc:  Fix type conversion warning I introduced by mistake.
1556
155708 April 2010 Michael Kelsey (hadr-casc-V09-03-18)
1558--------------------------------------------------
1559All changes below within "cascade/" subdirectory:
1560
1561- G4PionSampler, G4NucleonSampler: For all ::GetFSPartTypes*() functions,
1562  eliminate return-by-value std::vector<>, and pass in non-const reference
1563  for filling in situ.  Buffer is cleared.
1564
1565- G4ElementaryParticleCollider.cc:  Follow changes above for Sampler calls.
1566
156707 April 2010 Michael Kelsey (hadr-casc-V09-03-17)
1568--------------------------------------------------
1569All changes below within "cascade/" subdirectory:
1570
1571Replace return-by-value std::vector<> with either const-ref returns, or
1572with use of an internal buffer which can be reused, to reduce memory
1573churn due to copying, allocation, and resizing.
1574
1575- G4BigBanger:  Create data buffer for lists of secondaries and momenta.
1576  Fill buffers in ::generateBangInSCM() and ::generateMomentumModules(),
1577  which are now non-const.  Reference buffers in ::collide().
1578
1579- G4CascadeFunctions::getOutgoingParticleTypes():  Make "kinds" a static
1580  variable (buffer), and return it by const-ref.
1581
1582- G4ElementaryParticleCollider:  Eliminate return-by-value std::vector<>
1583  on the functions listed below, by creating data buffers for particles,
1584  momenta, and particle types.  The functions become non-const and void:
1585  ::generateSCMfinalState(), ::generateMomModules()
1586  ::generateStrangeChannelPartTypes(), ::generateSCMpionAbsorption()
1587
1588  Also, in ::generateStrangeChannelPartTypes(), use a switch statement
1589  instead of the long cascade of if-else-else.
1590
1591- G4NucleiModel: Several member functions have different modifications:
1592
1593  ::initializeCascad(bullet,target) -- Replace return value with a passed-in
1594        (non-const reference) buffer to be filled.  The calling code can
1595        pass in a data member, local variable, or whatever.
1596
1597  ::generateParticleFate() -- Replace local "thePartners" variable with data
1598        member, filled below.  Move "outgouing_cparticles" to data member
1599        (fix the spelling!), and return by const-ref.
1600
1601  ::generateInteractionPartners() -- Eliminate return value; fill data
1602        member instead, to be used by ::generateParticleFate().
1603
1604- G4IntraNucleiCascader.cc:  Follow changes to initializeCascad() above.
1605
1606- G4NucleonSampler, G4PionSampler: ** DON'T KNOW WHAT TO DO HERE **
1607
1608- G4WatcherGun:  Return const-ref to list of watchers, instead of copy.
1609
1610Replace all uses of std::vector<>::resize(0) with ::clear().  The former
1611causes deallocation/reallocation/resizing cycles, while clear() just removes
1612content, preserving the allocated buffer.
1613
1614        include/G4CollisionOutput.hh
1615        src/G4ElementaryParticleCollider.cc
1616        src/G4NucleiModel.cc
1617        src/G4WatcherGun.cc
1618
161907 April 2010 Dennis Wright (hadr-casc-V09-03-16)
1620-------------------------------------------------
1621- fix negative energy bug in G4BigBanger, and switch to using
1622  G4NucleiProperties::GetBindingEnergy
1623
162407 April 2010 Michael Kelsey (hadr-casc-V09-03-15)
1625--------------------------------------------------
1626All changes below within "cascade/" subdirectory:
1627
16281) Systematically replace pass-by-value function arguments with const-refs.
1629This is the first step in reducing unnecessary memory churn, to be followed
1630by replacing return-by-value std::vector<> with non-const argument buffers.
1631
1632        include/G4CascadeChannel.hh
1633        include/G4FinalStateSampler.hh
1634        include/G4InuclEvaporation.hh
1635        include/G4NuclWatcher.hh
1636        src/G4CascadeChannel.cc
1637        src/G4FinalStateSampler.cc
1638        src/G4InuclEvaporation.cc
1639        src/G4NuclWatcher.cc
1640
16412) Fix constness on some operator== and operator!= definitions.
1642
1643        include/G4CascadeElasticInterface.hh
1644        include/G4CascadeInterface.hh
1645        include/G4ElasticCascadeInterface.hh
1646        include/G4IBertini.hh
1647        include/G4PreCompoundCascadeInterface.hh
1648
164907 Apr 2010 Michael Kelsey (hadr-casc-V09-03-14)
1650------------------------------------------------
1651- G4Dineutron.hh, G4Diproton.hh, G4UnboundPN.hh: 
1652  Reset static "theInstance" pointer to zero in (now virtual) destructor.
1653
1654- G4Dineutron.cc, G4Diproton.cc, G4UnboundPN.cc:
1655  Implement constructor to do the G4Ions initialization, rather than in
1656  ::Definition().  Drop use of G4ParticleTable; just monitor static pointer.
1657  Set "ShortLived" flag in G4Ions initialization, to avoid interactions with
1658  ProcessManager.
1659
1660- G4InuclNuclei.cc:  In ::makeNuclearFragment(), set "ShortLived" flag for
1661  G4Ions, to avoid interactions with ProcessManager.
1662
166326 Mar 2010 Dennis Wright (hadr-casc-V09-03-13)
1664-----------------------------------------------
1665- G4EquilibriumEvaporator.cc: remove line #include "G4types.hh"
1666  (file doesn't exist)
1667
166820 Mar 2010 Michael Kelsey (hadr-casc-V09-03-12)
1669------------------------------------------------
1670All changes below within "cascade/" subdirectory:
1671
1672- G4EquilibriumEvaporator.cc:  Move subtraction of Q1[i] outside new
1673  GetBindingEnergy() call.
1674
1675- G4InuclNuclei.cc::makeNuclearFragment():  Add message warning users about
1676  non-physical creation.  Use new GetBindingEnergy() function here as well
1677  (V09-03-05 didn't have this function, so wasn't included in migration).
1678
167919 Mar 2010 Michael Kelsey (hadr-casc-V09-03-11)
1680------------------------------------------------
1681All changes below within "cascade/" subdirectory:
1682
1683- G4InuclSpecialFunctions:  Two new functions:
1684
1685::generateWithRandomAngles() to encapsulate random-direction generation.
1686  This function and existing generateWithFixedTheta() take optional mass
1687  argument to produce proper four-vector.
1688
1689  Replace duplicated random angle code with new function above, and use new
1690  optional mass argument where available:
1691
1692        G4BigBanger.cc
1693        G4ElementaryParticleCollider.cc
1694        G4EquilibriumEvaporator.cc
1695        G4Fissioner.cc
1696        G4NonEquilibriumEvaporator.cc
1697        G4NucleiModel.cc
1698
1699::G4cbrt():  Define cube-root in terms of log and exp, rather than pow().
1700  Note that "cbrt()" can't be used, as it conflicts with <math.h> on Linux.
1701
1702  Eliminate unnecessary uses of std::pow() with fixed arguments.  For
1703  example, "pow(x,3)" -> "x*x*x", "pow(x,1/3)" -> G4cbrt(x):
1704
1705        G4BertiniRegionModel.cc
1706        G4EquilibriumEvaporator.cc
1707        G4EvaporationInuclCollider.cc
1708        G4Fissioner.cc
1709        G4IntraNucleiCascader.cc
1710        G4InuclCollider.cc
1711        G4NonEquilibriumEvaporator.cc
1712        G4NucleiModel.cc
1713        G4PreCompoundInuclCollider.cc
1714        G4RegionModel.cc
1715        bindingEnergyAsymptotic.cc
1716        bindingEnergyKummel.cc
1717
1718  WARNING!  In G4IntraNucleiCascader.cc, the Coulomb barrier was calculated
1719  using "std::pow(A, 0.333)", rather than the "exact" 1./3.  This leads to
1720  per-mil differences in the value, and occasional differences in wheter an
1721  outgoing particle tunnels through.  The new code is exact to double
1722  precision, and therefore fixes a bug.
1723
1724- Move "using" directive from all .hh files to corresponding .cc, along with
1725  some unnecessary #includes:
1726
1727        G4BigBanger.hh, .cc
1728        G4ElementaryParticleCollider.hh, .cc
1729        G4EquilibriumEvaporator.hh, .cc
1730        G4EvaporationInuclCollider.hh, .cc
1731        G4Fissioner.hh, .cc
1732        G4IntraNucleiCascader.hh, .cc
1733        G4InuclCollider.hh
1734        G4InuclNuclei.hh
1735        G4NonEquilibriumEvaporator.hh, .cc
1736        G4NucleiModel.hh, .cc
1737        G4PreCompoundInuclCollider.hh, .cc
1738
1739- G4NuclWatcher.hh and .cc (new):  Move implementation code from .hh to .cc.
1740
174118 March 2010 Michael Kelsey (hadr-casc-V09-03-10)
1742--------------------------------------------------
1743All changes below within "cascade/" subdirectory:
1744
1745Missed one bug in repairs below, found when testing 4 GeV pi -> Pb.
1746
1747- G4Fissioner.cc:  Replace incorrect G4LorentzVector ctor arguments
1748  (G4ThreeVector,m) with call to G4LV::setVectM().
1749
175017 March 2010 Dennis Wright (hadr-casc-V09-03-09)
1751-------------------------------------------------
1752Fix warning in G4InuclNuclei.cc: G4Ions:G4Ions was being called with
1753a double (a) in its 13th argument, when an integer is required.  Use
1754G4lrint to convert.
1755
175616 March 2010 Michael Kelsey (hadr-casc-V09-03-08)
1757--------------------------------------------------
1758All changes below within "cascade/" subdirectory:
1759
1760Fix bugs introduced during migration from G4CascadeMomentum to
1761G4LorentzVector (see hadr-casc-V09-03-03).  With these bug fixes, 2000
1762events generated with "ppi4GeV" test executable are equivalent to production
1763output (GEANT 4.9.3), allowing for differences in hardwired nucleon masses.
1764When compared with hadr-casc-V09-03-02 (which uses G4ParticleDefinition for
1765all the particle masses) the 2000-event results are identical within
1766floating point precision.
1767
1768- G4BigBanger.cc:  Line 72, fix unit conversion bug, GeV/MeV vs. MeV/GeV.
1769  Replace incorrectly introduced cross-product with original vector
1770  manipulation, written with G4LorentzVector accessors.
1771
1772- G4CollisionOutput::selectPairToTune(): Test on "i3>0" not appropriate with
1773  G4LorentzVector indexing.  Replace with failure-test on "i3<0".  Also
1774  simplify final if-cascade for readability.
1775
1776- G4EquilibriumEvaporator.cc:  Replace incorrect G4LorentzVector ctor
1777  arguments (px,py,pz,m) with call to G4LV::setVectM().
1778
1779- G4IntraNuclearCascader.cc:  Replace leftover momentum_out[0] with .e().
1780
1781- G4InuclNuclei.cc,hh:  Add new function ::makeNuclearFragment(a,z,exc),
1782  which "manually" construct a G4Ions object for cases where A/Z is not a
1783  valid stable or unstable nucleus.  These unphysical objects are passed
1784  back from G4IntraNuclearCascader.cc and immediately passed to G4BigBanger
1785  for conversion to nucleons.  A future change should move this action into
1786  G4INCascader and eliminate the need for unphysical nuclei.
1787
1788- G4LorentzConvertor::toTheTargetRestFrame():  Remove local declaration of
1789  scm_momentum, restoring access to data member with that name.
1790
1791- G4NucleiModel::generateQuasiDeutron(): Undo consolidation of dmom with
1792  local variables for each of the nucleon momenta.  Stack corruption led to
1793  differences in unbound p-n state relative to pp and nn states.
1794
1795Minor updates:  Changed all the "verboseLevel()" initializers to (0), via a
1796shell script.  This allows making the code uniformly verbose or quiet.
1797
1798        include/G4NucleiModel.hh
1799        src/G4Analyser.cc
1800        src/G4CollisionOutput.cc
1801        src/G4ElementaryParticleCollider.cc
1802        src/G4FissionStore.cc
1803        src/G4Fissioner.cc
1804        src/G4IntraNucleiCascader.cc
1805        src/G4NonEquilibriumEvaporator.cc
1806        src/G4NucleiModel.cc
1807        src/G4WatcherGun.cc
1808
180916 March 2010 Michael Kelsey (hadr-casc-V09-03-DO-NOT-USE)
1810--------------------------------------------------
1811All changes below within "cascade/" subdirectory:
1812
1813Restore version hadr-casc-V09-03-05 to HEAD of CVS in order to apply bug
1814fixes and re-deploy migration from G4CascadeMomentum to G4LorentzVector.
1815This reversion is tagged as a checkpoint only, and should not be used for
1816testing or running (since it restores the known bugs in V09-03-03).
1817
1818The update to G4InteractionCase.hh by Gabriele Cosmo in hadr-casc-V09-03-07
1819is not touched by this reversion!
1820
1821The following CVS commands were used to perform the reversion:
1822
1823        cvs update -j1.13 -j1.12 cascade/include/G4CascadParticle.hh
1824        cvs update -j1.4 -j1.3 cascade/include/G4CascadeMomentum.hh
1825        cvs update -j1.15 -j1.14 cascade/include/G4CollisionOutput.hh
1826        cvs update -j1.23 -j1.22 cascade/include/G4ElementaryParticleCollider.hh
1827        cvs update -j1.9 -j1.8 cascade/include/G4InuclCollider.hh
1828        cvs update -j1.19 -j1.18 cascade/include/G4InuclElementaryParticle.hh
1829        cvs update -j1.12 -j1.11 cascade/include/G4InuclNuclei.hh
1830        cvs update -j1.16 -j1.15 cascade/include/G4InuclParticle.hh
1831        cvs update -j1.13 -j1.12 cascade/include/G4InuclSpecialFunctions.hh
1832        cvs update -j1.13 -j1.12 cascade/include/G4LorentzConvertor.hh
1833        cvs update -j1.4 -j1.3 cascade/include/G4ParticleLargerBeta.hh
1834        cvs update -j1.9 -j1.8 cascade/include/G4ParticleLargerEkin.hh
1835        cvs update -j1.20 -j1.19 cascade/src/G4BigBanger.cc
1836        cvs update -j1.13 -j1.12 cascade/src/G4CascadParticle.cc
1837        cvs update -j1.6 -j1.5 cascade/src/G4CascadeElasticInterface.cc
1838        cvs update -j1.68 -j1.67 cascade/src/G4CascadeInterface.cc
1839        cvs update -j1.18 -j1.17 cascade/src/G4CollisionOutput.cc
1840        cvs update -j1.7 -j1.6 cascade/src/G4ElasticCascadeInterface.cc
1841        cvs update -j1.6 -j1.5 cascade/src/G4EvaporationInuclCollider.cc
1842        cvs update -j1.5 -j1.4 cascade/src/G4IBertini.cc
1843        cvs update -j1.3 -j1.2 cascade/src/G4InuclElementaryParticle.cc
1844        cvs update -j1.10 -j1.9 cascade/src/G4InuclEvaporation.cc
1845        cvs update -j1.3 -j1.2 cascade/src/G4InuclNuclei.cc
1846        cvs update -j1.4 -j1.3 cascade/src/G4InuclParticle.cc
1847        cvs update -j1.17 -j1.16 cascade/src/G4InuclSpecialFunctions.cc
1848        cvs update -j1.19 -j1.18 cascade/src/G4LorentzConvertor.cc
1849        cvs update -j1.5 -j1.4 cascade/src/G4PreCompoundCascadeInterface.cc
1850        cvs update -j1.4 -j1.3 cascade/src/G4PreCompoundInuclCollider.cc
1851
1852Intermediate versions below had bindingEnergy changes from -05 re-applied
1853
1854        cvs update -j1.23 -j1.21 cascade/src/G4EquilibriumEvaporator.cc
1855        cvs update -j1.22 -j1.20 cascade/src/G4Fissioner.cc
1856        cvs update -j1.29 -j1.27 cascade/src/G4IntraNucleiCascader.cc
1857        cvs update -j1.24 -j1.22 cascade/src/G4InuclCollider.cc
1858        cvs update -j1.23 -j1.21 cascade/src/G4NonEquilibriumEvaporator.cc
1859        cvs update -j1.38 -j1.36 cascade/src/G4NucleiModel.cc
1860
1861G4ElementaryParticleCollider::particleSCMmomentumFor2to2:  Restore new
1862parametrization of elastic scattering added by D.Write in hadr-casc-V09-03-06
1863
1864        cvs update -j1.47 -j1.45 cascade/src/G4ElementaryParticleCollider.cc
1865        + editing
1866
186705 Mar 2010 Gabriele Cosmo (hadr-casc-V09-03-07)
1868------------------------------------------------
1869- Reinstated fix in G4InteractionCase.hh for initialisation in constructor to
1870  allow for porting on C++0x Standard.
1871
187207 Feb 2010 Dennis Wright (hadr-casc-V09-03-06)
1873-----------------------------------------------
1874- back out changes from tags V09-03-00 to V00-03-05 by restoring HEAD
1875  to V09-02-11, and keeping the di-nucleon classes
1876- replace Bertini method bindingEnergy() with
1877  G4NucleiProperties::GetBindingEnergy() in classes
1878  G4IntraNuclearCascader, G4InuclCollider, G4NucleiModel, G4EquilibriumModel,
1879  G4NonEquilibriumModel, G4Fissioner.  Note that G4Fissioner still uses the
1880  Bertini method bindingEnergyAsymptotic.
1881
1882- G4ElementaryParticleCollider::particleSCMmomentumFor2to2
1883  replace original (incorrect) pp, pn, nn 2-body to 2-body scattering angular
1884  distributions with a new parameterization of elastic scattering data using
1885  the sum of two exponentials
1886
188702 Feb 2010 Dennis Wright (hadr-casc-V09-03-05)
1888-----------------------------------------------
1889- replace all uses of bindingEnergy (local Bertini method) with the
1890  Geant4 standard G4NucleiProperties::GetBindingEnergy(A,Z)
1891  files modified:
1892    G4IntraNucleiCascader.cc
1893    G4InuclCollider.cc
1894    G4NucleiModel.cc
1895    G4EquilibriumEvaporator.cc
1896    G4NonEquilibriumEvaporator.cc
1897    G4Fissioner.cc
1898- note that G4Fissioner still uses Bertini method bindingEnergyAsymptotic
1899 
190028 Jan 2010 Dennis Wright (hadr-casc-V09-03-04)
1901-----------------------------------------------
1902- fix unused variable warnings in G4InuclParticle.hh, .cc and
1903  G4NonEquilibriumEvaporator.cc
1904
190526 Jan 2010 Michael Kelsey (hadr-casc-V09-03-03)
1906------------------------------------------------
1907All changes below within "cascade/" subdirectory:
1908
1909- G4ParticleLargerBeta.hh:  Fix to use of CVS "Name" tag; no code changes.
1910
1911- G4CascadParticle: Replace the position std::vector<> with G4ThreeVector.
1912
1913- G4NucleiModel: Replace all std::vector<> coordinates with G4ThreeVector,
1914  and use vector math for computations.
1915
1916Remove all use of G4CascadeMomentum (a simple container with a C-style
1917four-element array) with G4LorentzVector.  This is a fairly invasive change,
1918since G4CascMom was used for all of the three- and four-vector operations
1919throughout the Bertini code:
1920
1921        include/G4CascadParticle.hh
1922        include/G4CollisionOutput.hh
1923        include/G4ElementaryParticleCollider.hh
1924        include/G4InuclCollider.hh
1925        include/G4InuclElementaryParticle.hh
1926        include/G4InuclNuclei.hh
1927        include/G4InuclParticle.hh
1928        include/G4InuclSpecialFunctions.hh
1929        include/G4LorentzConvertor.hh
1930
1931        src/G4BigBanger.cc
1932        src/G4CascadParticle.cc
1933        src/G4CascadeElasticInterface.cc
1934        src/G4CascadeInterface.cc
1935        src/G4CollisionOutput.cc
1936        src/G4ElasticCascadeInterface.cc
1937        src/G4ElementaryParticleCollider.cc
1938        src/G4EquilibriumEvaporator.cc
1939        src/G4EvaporationInuclCollider.cc
1940        src/G4Fissioner.cc
1941        src/G4IBertini.cc
1942        src/G4IntraNucleiCascader.cc
1943        src/G4InuclCollider.cc
1944        src/G4InuclElementaryParticle.cc
1945        src/G4InuclEvaporation.cc
1946        src/G4InuclNuclei.cc
1947        src/G4InuclParticle.cc
1948        src/G4InuclSpecialFunctions.cc
1949        src/G4LorentzConvertor.cc
1950        src/G4NonEquilibriumEvaporator.cc
1951        src/G4NucleiModel.cc
1952        src/G4PreCompoundCascadeInterface.cc
1953        src/G4PreCompoundInuclCollider.cc
1954
1955The new code is not yet entirely "correct," since Bertini also does a lot of
1956operations by way of three-momentum, imposing masses (and hence energy
1957conservation) separately, after the fact.
1958
195920 Jan 2010 Gabriele Cosmo
1960--------------------------
1961- G4InteractionCase.hh:  Minor fix in initialisation in constructor to
1962  allow for porting on C++0x Standard.
1963
196420 Jan 2010 Michael Kelsey (hadr-casc-V09-03-02)
1965------------------------------------------------
1966- G4LorentzConvertor.hh:  Fix scm_momentum data member to be G4ThreeVector
1967  (as used in previous versions) rather than G4LorentzVector.
1968
1969NOTE:  I have *retagged* cascade/include/G4LorentzConverter.hh and this
1970       History file, rather than creating a new tag, since these are private
1971       development only, not public releases.
1972
197312 Jan 2010 Michael Kelsey (hadr-casc-V09-03-02)
1974------------------------------------------------
1975All changes below within "cascade/" subdirectory:
1976
1977- G4CascadeMomentum: Replace use of static G4LV variables within functions
1978  with mutable data member of object; this does introduce more memory
1979  thrashing, but the plan is to get rid of the whole thing anyway.  Improve
1980  implicit casting and add assignment from G4LV.
1981
1982- G4LorentzConverter:  Change function signatures to accept G4LV as input,
1983  using implicit cast to convert existing G4CascadeMomentum argument
1984  passing.  Use G4LV internally throughout, again using implicit cast to
1985  return G4CascMom values.  This substantially increases (temporarily!)
1986  memory thrashing.  Simplify ::rotate() functions to use G4LV and
1987  G4ThreeVec operations rather than array index gymnastics.  Move some
1988  function implementations out of .hh file into .cc.
1989
1990- G4ParticleLargerEkin.hh: Fix use of CVS "Name" tag.  No code changes.
1991
199212 Jan 2010 Michael Kelsey (hadr-casc-V09-03-01)
1993------------------------------------------------
1994All changes below within "cascade/" subdirectory:
1995
1996- G4ParticleLargerBeta, G4ParticleLargerEkin: Add additional operator()
1997  which takes pointers (for future mods to reduce ctor/dtor cycling), and
1998  fix ordering bug in beta sorting.  Add debugging printout togged with
1999  preprocessor flag.
2000
2001- G4InuclParticle, G4InuclNuclei, G4InuclElementaryParticle:  Rewrite to
2002  carry G4DynamicParticle data member, and to instantiate particle
2003  properties via G4ParticleDefinition subclasses.  This is first stage in
2004  eventually eliminating the G4InuclParticle stuff entirely in favor of
2005  direct use of G4DynamicParticle for internal propagation.
2006
2007These changes have been testing using debugging output on the production
2008(4.9.3) code compared to the above changes.  |diff| shows mostly identical
2009results, with occasional ~1e-5 floating point differences.
2010
201108 Jan 2010 Michael Kelsey (hadr-casc-V09-03-00)
2012------------------------------------------------
2013All changes below within "cascade/" subdirectory:
2014
2015- G4BertiniNuclearModel:  REMOVE this class from the HEAD, and hopefully all
2016  future tags.  It is redundant with the G4NuclearModel class, and is not
2017  used anywhere in the G4 distribtion; the latter is referenced in both
2018  regular G4 code and in examples.
2019
2020- G4Diproton, G4Dineutron, G4UnboundPN:  New G4ParticleDefinition
2021  subclasses, which implement the Bertini-specific dibaryon states.  These
2022  are not used anywhere as yet, but will be used in future modifications to
2023  the G4InuclParticle subclasses.
2024
2025- G4CascadeMomentum:  Add interface to create from and cast to
2026  G4LorentzVector.  Will be used (in future) by G4InuclParticle modifications,
2027  and provides a transition to eliminating this class entirely.
2028
20291 Dec 2009 Dennis Wright (hadr-casc-V09-02-11)
2030----------------------------------------------
2031- G4PionSampler, G4NucleonSampler: change loop variable in ctor from i to j
2032  in order to satisfy Windows compiler
2033 
203411 Nov 2009 Dennis Wright (hadr-casc-V09-02-10)
2035-----------------------------------------------
2036- G4CascadParticle, G4InuclElementaryParticle: add integer argument to ctor
2037  to indicate which generation cascade particle belongs to.
2038  Also change G4NucleiModel and G4BertiniNucleiModel to use this.
2039
2040 8 Oct 2009 Dennis Wright (hadr-casc-V09-02-09)
2041-----------------------------------------------
2042- G4PionSampler:  use charge exchange cross section for pi0-p, go back
2043   original Bertini pi0-p elastic partial cs.  Update pi0 total cross
2044   section accordingly.  Improve fits to pi-p partial cs and update
2045   pi- total cross sections.
2046- G4NucleiModel: update pi- and pi0 total cross sections
2047
204824 Sep 2009 Dennis Wright (hadr-casc-V09-02-08)
2049-----------------------------------------------
2050- add class G4NucleonSampler which replaces old pp, pn, and nn partial and
2051    total cross sections also modify other classes which use them
2052- move large arrays which are instantiated at every call of frequently
2053    used methods.  They are now initialized once in constructors.
2054- G4CascadSpecialFunctions: put copy of total cross section method
2055    in G4NucleiModel, also remove unneeded energy scale arrays
2056    (now replaced with a new one)
2057- G4CascadeInterface: move instantiation of various collider classes
2058    outside of loop, and put on stack instead of heap
2059- G4ElementaryParticleCollider: re-design to use G4NucleonSampler and
2060    remove instantiation of large arrays from within loops in code
2061- G4NucleiModel: remove instatiation of large arrays from with loops,
2062    add new total cross section sampling, remove use of all but one
2063    energy scale
2064
206517 Sep 2009 Dennis Wright (hadr-casc-V09-02-07)
2066-----------------------------------------------
2067- G4PionSampler: remove large static arrays
2068- G4FinalStateSampler: remove static array pointer to G4 particle types
2069- G4ElementaryParticleCollider: clean up
2070
20714 Sep 2009 Dennis Wright (hadr-casc-V09-02-06)
2072----------------------------------------------
2073- add assignment operator to class G4CollisionOutput
2074
207531 Aug 2009 Dennis Wright (hadr-casc-V09-02-05)
2076-----------------------------------------------
2077- add class G4FinalStateSampler which was accidentally omitted from
2078  the previous tag
2079
208025 Aug 2009 Dennis Wright (hadr-casc-V09-02-04)
2081-----------------------------------------------
2082- correct bug in particle ordering in G4PionSampler
2083- clean up dead code in G4NucleiModel and G4ElementaryParticleCollider
2084
208520 Aug 2009 Dennis Wright (hadr-casc-V09-02-03)
2086-----------------------------------------------
2087- create class G4PionSampler: samples partial cross sections, multiplicities
2088  and final state particle types required for pi+, pi- and pi0 scattering
2089  within a nucleus.  This class uses re-evaluated pion partial cross sections
2090  and includes production of strange particle pairs.
2091- G4CascadeSigmaPlusNChannel: correct sigma plus cross sections
2092- G4CascadSpecialFunctions:  move pion, kaon, hyperon total cross sections
2093  to this class
2094- G4ElementaryParticleCollider: re-write to use G4PionSampler class for
2095  cross sections and multiplicities, remove method reChargering (now redundant)
2096 
209715 Apr 2009 Dennis Wright (hadr-casc-V09-02-02)
2098-----------------------------------------------
2099- previous tag no longer used.  Bring hadr-casc-V09-02-00 back to
2100  HEAD and re-tag
2101
210221 Feb 2009 Dennis Wright (hadr-casc-V09-02-01)
2103-----------------------------------------------
2104- add printCrossSection method to G4CascadSpecialFunctions
2105- in GeElementaryParticleCollider, add high energy flag to distinguish
2106  "string-like" behavior
2107- G4IntraNucleiCascader.cc - allow secondaries from HE interaction to
2108  leave nucleus without interacting
2109- G4NucleiModel - get high_energy_interaction flag value from G4ElementaryParticleCollider
2110
211111 Feb 2009 V.Ivanchenko (hadr-casc-V09-02-00)
2112-----------------------------------------------
2113- set absorption coefficient 1.0 instead of 0.2 inside
2114  G4CascadSpecialFunctions (D.Wright)
2115
211625 Nov 2008 Dennis Wright (hadr-casc-V09-01-10)
2117-----------------------------------------------
2118- fix multiplicity sampling in G4ElementaryParticleCollider::generateMultiplicity().
2119  Now partial cross sections are normalized to the total cross section instead
2120  of just the sum of 2-body to 6-body final state cross sections.  Also fix
2121  2-body cross sections above 7 GeV where they were too small.
2122  Fix the same cross sections which appear in G4CascadSpecialFunctions.cc
2123
212421 Nov 2008 Dennis Wright (hadr-casc-V09-01-09)
2125-----------------------------------------------
2126- add some comments to cross section tables in G4CascadSpecialFunctions.cc
2127  and G4ElementaryParticleCollider.cc
2128
212924 Oct 2008 Dennis Wright (hadr-casc-V09-01-08)
2130-----------------------------------------------
2131- replace GetAtomicMass() with GetNuclearMass() in cascade/G4InuclEvaporation
2132  and evaporation/G4BertiniEvaporation
2133- V. Ivantchenko added name to G4CascadeInterface ("Bertini Cascade")
2134
213517 Oct 2008 Dennis Wright (hadr-casc-V09-01-07)
2136-----------------------------------------------
2137- added Coulomb barrier plus barrier penetration in G4IntraNucleiCascader.cc
2138
213927 Sep 2008 Dennis Wright (hadr-casc-V09-01-06)
2140-----------------------------------------------
2141- Fixed 4.3 compiler warnings for G4InuclElementaryParticle.hh by providing
2142  initializers for particle type and mass
2143- Remove unused variables totscm, totlab in G4BigBanger.cc,
2144  G4ElementaryParticleCollider.cc, and unused mom1 from G4InuclSpecialFunctions.cc
2145
214622 Sep 2008 Gabriele Cosmo (hadr-casc-V09-01-05)
2147------------------------------------------------
2148- Introduced simple wrapper class G4CascadeMomentum meant to replace usage
2149  of std::vector<double> in the cascade code, to reduce memory allocations.
2150  Courtesy of P.Elmer (princeton Univ.).
2151- Modified cascade code to make use of G4CascadeMomentum.
2152
2153 3 Sep 2008 Dennis Wright (hadr-casc-V09-01-04)
2154-----------------------------------------------
2155- G4ElementaryParticleCollider.cc: in method generateMultiplicity, remove
2156  large_cut which increases multiplicity from 3 to 4 abruptly at 4 GeV
2157  and above.   This caused a sharp drop-off in the single pion spectra from
2158  pH reactions.   The effect in heavier nuclei is small.
2159 
216029 Jun 2008 Dennis Wright (hadr-casc-V09-01-03)
2161-----------------------------------------------
2162- add changes made by M. Paterno, J. Kowalkowski, and M. Fischler (FNAL) 
2163  to speed up code.  All G4Cascade***Channel classes and related code changed.
2164
2165 5 May 2008 Dennis Wright (hadr-casc-V09-01-02)
2166-----------------------------------------------
2167- retag hadr-casc-V09-csbug as hadr-casc-V09-01-02
2168
216930 Apr 2008 Dennis Wright (hadr-casc-V09-csbug)
2170-----------------------------------------------
2171- fix cross section bug in G4CascadSpecialFunctions that returned
2172  low or zero total cross sections for pi-p, pi+n, np, and pi0
2173  interactions
2174
217529 Apr 2008 Dennis Wright (hadr-casc-V09-01-01)
2176-----------------------------------------------
2177- bring tag hadr-casc-V09-01-coula to HEAD, make official tag
2178
217922 Apr 2008 Dennis Wright (hadr-casc-V09-01-param)
2180--------------------------------------------------
2181- changed pp, nn total cross section parameterization in
2182  G4CascadSpecialFunctions to more closely reflect the PDG values (old one
2183  was off by as much as a factor of 3.
2184
21853 Apr 2008 Dennis Wright (hadr-casc-V09-01-coula)
2186-------------------------------------------------
2187- removed Coulomb barrier from G4IntraNucleiCascader.cc (causes unphysical spike)
2188
21893 Apr 2008 Dennis Wright (hadr-casc-V09-01-coul)
2190------------------------------------------------
2191- Added Coulomb barrier in G4EquilibriumEvaporator.cc, G4IntraNucleiCascader.cc
2192
219317 Nov 2007 Dennis Wright (hadr-casc-V09-00-02)
2194-----------------------------------------------
2195- Fix angular distribution for nucleon-nucleon elastic scattering
2196  above 2.8 GeV, by modifying G4ElementaryParticleCollider::getElasticCase
2197 
219825 May 2007 Dennis Wright for Aatos Heikkinen (hadr-casc-V08-03-00)
2199-------------------------------------------------------------------
2200- implemented interfaces for pre-equilibrium and equilbrium evaporation
2201  models
2202
220304 May 2007 Aatos Heikkinen (hadr-casc-V08-02-00)
2204-------------------------------------------------
2205
2206- Added protection in G4ElementaryParticleCollider against negative
2207  value to sqrt().
2208
220908 May 2006 Dennis Wright (hadr-casc-V08-00-00)
2210-----------------------------------------------
2211
2212- cascade: remove G4BERTINI_KAON conditional assembly flags.  Files
2213  affected:
2214  G4ElementaryParticleCollider.hh, cc
2215  G4InuclElementaryParticle.hh
2216  G4NucleiModel.hh, cc
2217  G4CascadeInterface.cc
2218  G4IntraNucleiCascader.cc
2219
2220- cascade (Pekka Kaitaniemi): G4ElasticCascadeInterface: derive
2221  from G4VIntraNuclearTransportModel instead of G4HadronElastic.
2222  Check for case when no elastic scattering occurs.  If so,
2223  return original bullet and target. 
2224
222524 Nov 2005 Dennis Wright (hadr-casc-V07-01-00)
2226----------------------------------------------
2227
2228- cascade (bertini-V07-01-00 by Aatos Heikkinen)
2229   elastic scattering interface added:
2230   G4ElasticCascadeInterface.hh, .cc added
2231   G4CascadeInterface.hh modified
2232
Note: See TracBrowser for help on using the repository browser.