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

Last change on this file since 1343 was 1340, checked in by garnier, 14 years ago

update ti head

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