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

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

geant4 tag 9.4

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