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

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

update ti head

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