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

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

tag geant4.9.4 beta 1 + modifs locales

File size: 52.3 KB
RevLine 
[1337]1$Id: History,v 1.91 2010/06/11 17:07:23 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
[1337]1811 June 2010 Michael Keley (hadr-casc-V09-03-43)
19------------------------------------------------
20- G4CascadeData.hh: Equally trivial fix for compiler warking on Intel ICC
21 for index[] array bounds in ::initialize(). Dimension array as [9], and
22 set all values.
23
2408 June 2010 Gunter Folger (hadr-casc-V09-03-42)
25------------------------------------------------
[1315]26- trivial fix for compiler warning on gcc43 on empty body in for(...) in
27 cascade/include/G4CascadeInterpolator.icc:67
28
2901 June 2010 Michael Kelsey (hadr-casc-V09-03-41)
30-------------------------------------------------
31- paraMaker.cc: Fix vector initialization for Windows crash.
32
3326 May 2010 Dennis Wright (hadr-casc-V09-03-40)
34-----------------------------------------------
35- G4NucleiModel: remove conversion to fm, and conversion of cross
36 sections to fm**2
37
3821 May 2010 Michael Kelsey (hadr-casc-V09-03-39)
39------------------------------------------------
40Final tag for inclusion in GEANT 4.9.4-beta. Will be validated internal and
41included in global Hadronics tag.
42
43- G4CascadeSampler.icc: Activate time-saving checks on single bins.
44- G4ElementaryParticleCollider.cc: Remove special case for nucleon elastic
45 scattering.
46
4721 May 2010 Michael Kelsey (kelsey-20100521c)
48---------------------------------------------
49- G4CascadeInterface, G4PreCompoundCascadeInterface, G4InuclEvaporation:
50 Simplify code: fetch G4DynamicParticle out of outgoing G4InuclParticles,
51 rather than creating new ones. Remove all of the *Collider data members
52 (instantiated within G4InuclCollider). Move final state rotations to
53 G4CollisionOutput.
54
55- G4InuclParticle: Provide accessor to return G4DynamicParticle.
56
57- G4CollisionOutput: Add function to apply LorentzRotation to both lists;
58 used by G4CascadeInterface.
59
60- G4ElementaryParticleCollider: Avoid memory churn with G4LorentzVector
61 temporaries.
62
6321 May 2010 Michael Kelsey (kelsey-20100521b)
64---------------------------------------------
65- G4VCascadeCollider: New base class for all Colliders. Carries
66 verboseLevel data member and set-function. ::collide() is pure virtual.
67 Additional protected member functions will be defined to include all code
68 shared across multiple Colliders.
69
70- Migrate all of the "Collider" factories to use new base class, removing
71 common member functions, and replace passed-in sibling colliders with
72 local data members (pointers for now). Since none of these classes have
73 persistent (state preserving) data members, the cost of more than one
74 instantiation is minimal.
75
76 G4BigBanger
77 G4ElementaryParticleCollider
78 G4EquilibriumEvaporator
79 G4EvaporationInuclCollider
80 G4Fissioner
81 G4IntraNucleiCascader
82 G4InuclCollider
83 G4NonEquilibriumEvaporator
84 G4PreCompoundInuclCollider
85
86- G4CascadeInterface.cc, G4InuclEvaporation.cc,
87 G4PreCompoundCascadeInterface.cc: Remove siblings from constructors for
88 the Colliders.
89
90- G4InteractionCase.hh: Eliminate unnecessary copying of std::pair<>'s, use
91 initializers in ctors, add clear() function to reset to 0-0-0. Move
92 evaluation of bullet vs. target to new set() function, replacing separate
93 bulletTargetSetter() in the colliders. Add boolean accessors to avoid
94 hard-coding inter_case values. Change code numbers so nucleus collisions
95 are negative, and positive codes refer to the "is" or "rtype" numbers.
96
97- G4ElementaryParticleCollider.cc: Use G4InteractionCase to compute "is",
98 instead of hardwiring the meaning.
99
100- G4Collider.hh: Remove empty and never-used file.
101
102- G4EvaporationInuclCollider.cc: Eliminate unnecessary creation of
103 duplicate G4InuclNuclei: pass input through to G4EquilibriumEvaporator.
104
105- G4LorentzConvertor: Add interfaces to pass G4InuclParticles directly.
106
10721 May 2010 Michael Kelsey (kelsey-20100521a)
108---------------------------------------------
109Replace hand-coded interpolation of arrays with use of G4CascadeInterpolator.
110In all cases, local arrays are replaced with static const, and the
111interpolator object itself is declared static, to reduce memory churn.
112
113 G4NucleiModel::totalCrossSection()
114 G4EquilibriumEvaporator::getQF()
115 G4InuclSpecialFunctions::paraMaker[Truncated]() (in paraMaker.cc)
116
117- G4CascadSpecialFunctions: Remove. totalCrossSection() redundant with
118 G4NucleiModel. Move absorptionCrossSection() to G4NucleiModel.
119
120- G4CascadeInterpolator.icc: Bug fix to catch special case of exact upper
121 bin edge (occurs when !doExtrapolation). If index == last + 0., just
122 return upper edge value, without calculation.
123
124- G4NucleiModel.cc: Use G4Cascade{Pi*}Channel and G4Cascade{NN,NP,PP}Channel
125 classes to get total cross-sections for pi-N and N-N scattering. Arrays
126 for kaon and hyperon scattering should be migrated as well, once binning
127 is resolved. Move absorptionCrossSection() here from SpecialFunctions.
128
12920 May 2010 Michael Kelsey (kelsey-20100521)
130--------------------------------------------
131- G4CascadeInterpolator.icc: Two bug fixes involving values at array edges.
132
13319 May 2010 Michael Kelsey, Dennis Wright
134-----------------------------------------
135- G4BertiniData.hh,.cc: Remove unused and unnecessary class.
136- G4NucleiModel.cc: convert nuclear radii to fm and cross sections to
137 fm**2. Use six-zone model for A > 99, and make alpha a 1-zone
138 nucleus.
139- G4CascadSpecialFunctions: convert pion absorption cross sections from
140 mb to fm**2, correct spelling of method absorptionCrossSection
141
14217 May 2010 Michael Kelsey (hadr-casc-V09-03-38)
143------------------------------------------------
144- paraMaker.cc (G4InuclSpecialFunctions::paraMaker[Truncated]): Upper edge
145 of interpolation array not properly handled. Should be "if (Z >= 70.0)".
146 This affects G4NonEquilibriumEvaporator output.
147
14817 May 2010 Michael Kelsey (hadr-casc-V09-03-37)
149------------------------------------------------
150Bug fixes for compiler warnings (not seen on MacOSX, even with g++ -Wall)
151
152- G4CascadeData.hh: Dummy arrays needed double-braces for initialization.
153
154- G4CascadeInterpolator.icc: Extraneous decimal point in "for (i=0.;".
155
156- G4CascadeKzeroBarNChannel.cc: Left three "old" arrays in place during
157 conversion.
158
15914 May 2010 Michael Kelsey (hadr-casc-V09-03-36)
160------------------------------------------------
161Remove obsolete files following reorganization of two-body scattering
162lookup tables.
163
164 G4CascadeElasticInterface.hh,.cc
165 G4ElasticCascadeInterface.hh,.cc
166 G4FinalStateSampler.hh,.cc
167 G4NucleonSampler.hh,.cc
168 G4PionSampler.hh,.cc
169
170- G4CascadeChannel.hh,.cc: All functionality removed, replaced with
171 namespace containing only getQnums and CheckQnums validation functions.
172
17314 May 2010 Michael Kelsey (hadr-casc-V09-03-35)
174------------------------------------------------
175Replace independent parallel samplers with templated base class and single
176implementation. This completes the reorganization of the channel tables.
177
178- G4CascadeSampler: Redefine as templated base, taking binning array as
179 constructor argument. Move implementation file from .cc to .icc.
180 NOTE: G4CascadeSampler.cc is removed, since not consistent with new .hh.
181
182- G4PionNucSampler: Subclass of G4CascadeSampler<30>, replaces
183 G4FinalStateSampler, using bins array from there.
184
185- G4KaonNucSampler: Sublcass of G4CascadeSampler<31>, replaces previous
186 G4CascadeSampler, using bins array from there.
187
188- G4Cascade*Channel.hh: Change all typedefs to pass appropriate of two new
189 samplers in template.
190
191- G4ElementaryParticleCollider.cc: Replace long "if (is==)"-cascades with
192 switch blocks. Move all getOutgoing calls (for pions and nucleons) into
193 one function, and call it from outside multiplicity checks. Use
194 G4CascadeInterpolator for angular distributions. Set modelID=3 in all
195 G4InuclParticle constructions.
196
19714 May 2010 Michael Kelsey (hadr-casc-V09-03-34)
198------------------------------------------------
199Extract lookup tables from G4PionSampler and G4NucleonSampler into
200individual "classes" defined and initialized with G4CascadeData.
201
202- G4CascadePi{Plus,Minus,Zero}{P,N}Channel.hh: Six new typedefs defined as
203 with the existing G4CascadeXXXChannel, to replace G4PionSampler.
204
205- G4CascadeT33piNChannel.cc: Lookup tables for both PiPlusP and PiMinusN,
206 implemented as with existing G4CascadeXXXChannel, from G4PionSampler.cc.
207
208- G4CascadeT31piNChannel.cc: Lookup tables for both PiMinusP and PiPlusN,
209 implemented as with existing G4CascadeXXXChannel, from G4PionSampler.cc
210
211- G4CascadeT11pizNChannel.cc: Lookup tables for both PiZeroP and PiZeroN,
212 implemented as with existing G4CascadeXXXChannel, from G4PionSampler.cc
213
214- G4Cascade{PP,NP,NN}Channel.hh: Three new typedefs defined as with the
215 existing G4CascadeXXXChannel, to replace G4NucleonSampler.
216
217- G4CascadeT1NNChannel.cc: Lookup tables for both p-p and n-n scattering,
218 implemented as with existing G4CascadeXXXChannel, from G4NucleonSampler.cc
219
220- G4CascadeT0npChannel.cc: Lookup tables for p-n scattering, implemented as
221 with existing G4CascadeXXXChannel, from G4NucleonSampler.cc
222
223- G4CascadeFunctions.hh, .icc: Pass std::vector as non-const argument to
224 getOutgoingParticleTypes() instead of returning internal buffer.
225
226- G4CascadeSampler.cc, G4FinalStateSampler.cc: Add some checks in
227 findFinalStateIndex, fillSigmaBuffer, and sampleFlat(), such that
228 single-entry ranges don't go through the analysis, just return index 0.
229
230- G4ElementaryParticleCollider.cc: Follow change to getOutgoingParticleTypes()
231 in generateStrangeChannelPartTypes(). Replace all uses of G4PionSampler
232 and G4NucleonSampler with new channel "classes".
233
23414 May 2010 Michael Kelsey (hadr-casc-V09-03-33)
235------------------------------------------------
236Continue consolidation of two-body collision lookup tables. Unify
237interfaces between pion/nucleon and kaon/hyperon samplers.
238
239- G4CascadeData: Many changes to support use as data class for both
240 kaon/hyperon and pion/nucleon tables (migration will be next tag):
241
242 1) Add new first argument to template with number of bins in energy
243 interpolation. This replaces the (temporary) use of
244 G4CascadeSampler::energyBins within the class definition.
245
246 2) Add two additional template arguments, N8 and N9, with default values
247 of zero. These will be used by the pion/nucleon tables, but not by the
248 existing kaon/hyperon tables.
249
250 3) Define additional arrays for 8- and 9-body final states, using
251 conditional dimensioning (e.g., if N8==0, use [1]). Define second
252 9-body constructor to accept and initialize the new arrays.
253
254 4) Eliminate static intialization of index[], moving it into
255 initialize(). Template specialization can't be used with data!
256
257 5) Add separate "sum" (summed N-body cross-sections) and "tot" arrays
258 (measured inclusive xsec). Latter is a const-ref, initialized to "sum"
259 if not provided as ctor argument, with two new ctors as needed.
260
261 6) Add accessor to return maximum multiplicity (NM+1).
262
263- G4CascadeFunctions.hh: Add second template argument to specify which
264 "final state sampler" is the base class. Use both T::data.tot and
265 T::data.sum in GetMultiplicity(), to support sum/tot comparisons in
266 pion/nucleon channels. Extend GetOutputParticleTypes() to support up to
267 multiplicity 9.
268
269- G4CascadeFunctions.icc: Implementations of template class functions.
270
271- G4CascadeXXXChannel.hh: Add "31," as initial template argument for Data.
272 Add G4CascadeSampler as second template argument in G4CascadeXXXChannel
273 typedef.
274
275
27614 May 2010 Michael Kelsey (hadr-casc-V09-03-32)
277------------------------------------------------
278Continue revisions to two-body collision lookup tables. Make the kaon and
279hyperon channels compatible with the pion/nucleon samplers, before the next
280stage of unifying the structure.
281
282- G4CascadeSampler: NEW class, parallel to G4FinalStateSampler but with a
283 different energy binning. Used as base class to G4CascadeFunctions<T>,
284 from which the cross-section and other arrays are passed. Implement
285 findMultiplicity (cf. G4CascadeFunctions::getMultiplicity) to return the
286 true value, not the array index.
287
288 This class replaces functionality of G4CascadeChannel, which is redundant.
289
290- G4CascadeChannel: Remove all interpolation code, leaving only getQnums().
291
292- G4CascadeFunctions: Inherit from G4CascadeSampler for interpolations,
293 except for final-state extraction (where FS type arrays are dealt with
294 locally, not passed). Public static functions rely on private instantiated
295 version of class to do work, so that G4CascadeSampler gets instantiated.
296
297- G4CascadeData: Remove final template argument (total number of indices),
298 as redundant with simple sum of multplicity indices. Use template args to
299 dimension data member arrays (const references), and to statically
300 initialize the start-stop index table. Make large cross-sections table
301 G4double, not G4float. Define ctor to pass in array refs for initialization.
302 Reduce index array to single dimension (start=index[i], stop=index[i+1]).
303
304- G4CascadeXXXChannel: All of the initial-state channel "classes"
305 (typedef names) modified to follow G4CascadeData rewrite. In .cc file,
306 the explicit lookup tables are static, and passed by const-ref to
307 G4CascadeData. The "initializer" struct is dropped; with the static
308 "data" object initialized by ctor here.
309
310- G4ElementaryParticleCollider.cc: In ::generateMultiplicity(), eliminate
311 extra "+2" and "-2" applied to local "mul" variables. With change above,
312 all functions return return true multiplicity, not array index.
313
314- G4FinalStateSampler: Add findFinalStateIndex() function, to make
315 interface match G4CascadeSampler exactly. Reduce index array to single
316 dimension.
317
318- G4PionSampler.cc, G4NucleonSampler.cc: Use new findFinalStateIndex()
319 function in GetFSPartTypesXXX() functions. Reduce index array to single
320 dimension (start=index[i], stop=index[i+1]).
321
32214 May 2010 Michael Kelsey (hadr-casc-V09-03-31)
323------------------------------------------------
324Begin revisions to two-body collision lookup tables. This will be a major
325reorganization, splitting the G4PionSampler and G4NucleonSampler into
326separate little "classes" (typedefs) for each initial state, in the same way
327that the kaon and hyperon states are done now. The underlying templated and
328base classes will be unified across all of the channels.
329
330- G4CascadeInterpolator: NEW class to encapsulate interpolation procedure.
331 Uses C-style arrays passed by dimensioned reference, to allow compile-time
332 array bounds checking. Template argument is array dimension, and array of
333 energy bins is saved by ctor. User array to be interpolated is passed as
334 function argument. Last value interpolated, along with result, is saved,
335 to allow fast multiple interpolations.
336
337 This class is substantially more lightweight than G4PhysicsVector.
338
339- G4FinalStateSampler: Replace manual interpolation with G4CascadeInterpolator.
340 Remove redundant sampleFlat(...) function with argument. Rename member
341 functions in anticipation of merging with G4CascadeFunctions.
342
343- G4PionSampler.cc, G4NucleonSampler.cc: Follow use of G4CascadeInterpolator
344 above, and drop local caching of interpolation results. Reduce offset
345 list for cross-sections to one dimension (start=index[i], stop=index[i+1]).
346
34711 May 2010 Michael Kelsey (hadr-casc-V09-03-30)
348------------------------------------------------
349Bug fixes in the two-body scattering code.
350
351- G4PionSampler.cc, G4NucleonSampler.cc: Fix long-standing bug with offset
352 indices computed for cross-section tables. XXXindex[m][0] (start) and
353 XXXindex[m][1] (stop) are computed in initChannels() as [start,stop]
354 inclusive range (i.e., "for (i=start; i<=stop; i++)"), but used with
355 G4FinalStateSampler::fillSigmaBuffer (and its predecessor code) as
356 [start,stop) exclusive range (i.e., normal C style "for (i=start; i<stop;
357 i++)"). This is fixed by properly setting XXXindex[m-1][1] =
358 XXXindex[m][0], and using the ranges consistently in initChannels().
359
360- G4ElementaryParticleCollider.cc: In the six pion-nucleon scatters, the
361 two-body final state is incorrectly tested for charge-exchange. All the
362 if statements check whether "particle_kinds[0]" is the initial nucleon,
363 but the outgoing baryon actually appears in particle_kinds[1]. Replace
364 the individual tests with the use of "finaltype", moved out of the
365 strangeness if-block.
366
36706 May 2010 Michael Kelsey (hadr-casc-V09-03-29, hadr-casc-V09-03-23-01)
368------------------------------------------------------------------------
369- G4Diproton.cc, G4Dineutron.cc, G4UnboundPN.cc: After creating instance
370 of these "internal" particles, remove the pointer from G4ParticleTable.
371 This avoids an issue with the FTFP de-excitation code, which occasionally
372 picks up the diproton and puts it onto a final-state particle list.
373
374These three changes, and nothing else, are "backported" on top of -23 for
375continued validation tests.
376
37730 Apr 2010 Dennis Wright (hadr-casc-V09-03-28)
378-----------------------------------------------
379- G4ElementaryParticleCollider:
380 improved pi-nucleon two-body angular distributions, and made
381 sampling of CM angle faster. As a result, the methods
382 getElasticCase and adjustIntervalForElastic were made redundant
383 and removed. Also removed array containing old angular distribution
384 parameters.
385
386 Now use nucleon-nucleon angular distributions for hyperon-nucleon
387 scattering, and pi-nucleon dsitributions for kaon-nucleon scattering
388 (until specific kaon distributions are added).
389
39029 Apr 2010 Michael Kelsey (hadr-casc-V09-03-27)
391------------------------------------------------
392- G4InuclPartcleNames.hh: Long name "gamma" conflicts with math function.
393 Change back to "photon".
394
395- G4InuclElementaryParticle.cc, G4InuclEvaporation.cc,
396 G4NonEquilibriumEvaporator.cc, G4NucleiModel.cc, G4NucleonSampler.cc,
397 G4PionSampler.cc, G4PreCompoundCascadeInterface.cc,
398 G4PreCompoundInuclCollider.cc: Replace "gamma" with "photon".
399
400- G4InuclElementaryParticle.hh: Change "photon()" to "isPhoton()" to avoid
401 conflicts with names enum. Use names enum internally as well.
402
403- G4ElementaryParticleCollider.cc, G4InuclCollider.cc,
404 G4PreCompoundInuclCollider.cc: Change "photon()" to "isPhoton()".
405
40628 Apr 2010 Michael Kelsey (hadr-casc-V09-03-26)
407------------------------------------------------
408All changes below within "cascade/" subdirectory:
409
410- G4InuclParticleNames.hh: Define enums for particle type codes, using both
411 "long" and "short" names copied from existing duplicated enums. One
412 change is that "kp" and "km" are replaced by "kpl" and "kmi" respectively,
413 since "km" conflicts with GEANT4 "kilometers" unit. Deploy in classes:
414
415 include/G4FinalStateSampler.hh
416 src/G4CascadeElasticInterface.cc
417 src/G4CascadeInterface.cc
418 src/G4ElasticCascadeInterface.cc
419 src/G4ElementaryParticleCollider.cc
420 src/G4InuclElementaryParticle.cc
421 src/G4InuclEvaporation.cc
422 src/G4NucleonSampler.cc
423 src/G4PionSampler.cc
424 src/G4PreCompoundCascadeInterface.cc
425
426- G4InuclElementaryParticle.cc: Add Omega- and antinucleon partcles to lists.
427 No code uses these (yet).
428
42924 April 2010 Michael Kelsey (hadr-casc-V09-03-25)
430--------------------------------------------------
431Remove redundant classes, G4Ibertini and G4BertiniRegionModel.
432
43321 April 2010 Michael Kelsey (hadr-casc-V09-03-24)
434--------------------------------------------------
435- G4NucleiModel.hh,cc: Eliminate last remaining hardwired baryon masses.
436
43718 April 2010 Michael Kelsey (hadr-casc-V09-03-23)
438--------------------------------------------------
439Final revisions to access std::vector<particle> via const-references:
440
441 G4CascadeInterface.cc
442 G4EquilibriumEvaporator.cc
443 G4IBertini.cc
444 G4InuclCollier.cc
445 G4NucleiModel.cc
446 G4PreCompoundCascadeInterface.cc
447
448- G4CollisionOutput: Add new function to boost output lists to lab frame.
449
45014 April 2010 Michael Kelsey (hadr-casc-V09-03-22)
451--------------------------------------------------
452- G4CascadeInterface.cc, G4IBertini.cc, G4PreCompoundCascadeInterface.cc:
453 In ::ApplyYourself(), do the check on K0L/K0S _before_ passing G4PartDefn
454 to G4InuclElemPart::type(). This avoids unnecessary warning message.
455
45614 April 2010 Michael Kelsey (temporary: kelsey-memClean3)
457----------------------------------------------------------
458All changes below within "cascade/" subdirectory:
459
460- G4FinalStateSampler: Replace "sigma" argument for sampling with data
461 member, add functions to fill sigma buffer by passing in array references.
462 Provide typedef for interpolator, and function to apply interpolation.
463
464- G4PionSampler, G4NucleonSampler: Follow changes to base class,
465 eliminating much of the copy-and-paste code blocks via function calls.
466 Replace G4float arrays with G4double, to support passing into functions.
467
46813 April 2010 Michael Kelsey (hadr-casc-V09-03-21)
469--------------------------------------------------
470All changes below within "cascade/" subdirectory:
471
472- G4InuclSpecialFunctions.hh, paraMaker.cc, paraMakerTruncated.cc: Drop
473 return-by-value from paraMaker() and paraMakerTruncated(). Add second
474 argument with non-const reference to output buffer for return.
475
476- G4EquilibriumEvaporator.cc: Follow changes above to paraMaker(), use
477 references to address parms.first and parms.second, instead of copying.
478
479- G4NonEquilibriumEvaporator.cc: Follow changes above to
480 paraMakerTruncaed(), use references to address parms.first and
481 parms.second, instead of copying.
482
483- G4Dineutron, G4Diproton, G4UnboundPN: Inherit from G4VShortLivedParticle,
484 per Kurashige. Thought it would eliminate G4ElectronOccupancy churn, but
485 did not.
486
48712 April 2010 Michael Kelsey (hadr-casc-V09-03-20)
488--------------------------------------------------
489All changes below within "cascade/" subdirectory:
490
491- G4NucleiModel: Move function implementations from .hh to .cc. Replace
492 manual sorting (inefficient O(N^2)) with std::sort() and simple
493 "less-than" function for std::pair<> "partners".
494
495- G4CollisionOutput: Move function implementations from .hh to .cc. Use
496 std::vevtor<>::insert() to add vectors together.
497
498- Replace return-by-value G4CollisionOutput with non-const reference buffer
499 passed into xxx::collide(), in the following classes:
500 G4BigBanger
501 G4CascadeElasticInterface
502 G4CascadeInterface
503 G4ElasticCascadeInterface
504 G4ElementaryParticleCollider
505 G4EquilibriumEvaporator
506 G4EvaporationInuclCollider
507 G4Fissioner
508 G4IBertini
509 G4IntraNucleiCascader
510 G4InuclCollider
511 G4InuclEvaporation
512 G4NonEquilibriumEvaporator
513 G4NucleiModel
514 G4PreCompoundCascadeInterface
515 G4PreCompoundInuclCollider
516
517 Note that some places where internal G4CollisionOutput buffers are being
518 used (and their contents appended to the global output) have not been
519 cleaned up yet. These will require some rearrangement of the algorithms,
520 or/and elimination of debugging output.
521
52209 April 2010 Michael Kelsey (hadr-casc-V09-03-16-01)
523-----------------------------------------------------
524This modification is included in a pseudo-patch of hadr-casc-V09-03-16,
525without brining in any of the -17 through -19 modifications.
526
527- G4LorentzVector.cc: Protect two instances of sqrt() against tiny negative
528 arguments (due to tiny-tiny subtractions).
529
53009 April 2010 Michael Kelsey (hadr-casc-V09-03-19)
531--------------------------------------------------
532All changes below within "cascade/" subdirectory:
533
534- G4InuclParticle, G4InuclElementaryParticle, G4InuclNuclei: Eliminate
535 unused G4String ctor argument, introduced in hadr-casc-V09-03-01. Causes
536 a lot of pointless memory churn.
537
538- G4BigBanger.cc: Fix type conversion warning I introduced by mistake.
539
54008 April 2010 Michael Kelsey (hadr-casc-V09-03-18)
541--------------------------------------------------
542All changes below within "cascade/" subdirectory:
543
544- G4PionSampler, G4NucleonSampler: For all ::GetFSPartTypes*() functions,
545 eliminate return-by-value std::vector<>, and pass in non-const reference
546 for filling in situ. Buffer is cleared.
547
548- G4ElementaryParticleCollider.cc: Follow changes above for Sampler calls.
549
55007 April 2010 Michael Kelsey (hadr-casc-V09-03-17)
551--------------------------------------------------
552All changes below within "cascade/" subdirectory:
553
554Replace return-by-value std::vector<> with either const-ref returns, or
555with use of an internal buffer which can be reused, to reduce memory
556churn due to copying, allocation, and resizing.
557
558- G4BigBanger: Create data buffer for lists of secondaries and momenta.
559 Fill buffers in ::generateBangInSCM() and ::generateMomentumModules(),
560 which are now non-const. Reference buffers in ::collide().
561
562- G4CascadeFunctions::getOutgoingParticleTypes(): Make "kinds" a static
563 variable (buffer), and return it by const-ref.
564
565- G4ElementaryParticleCollider: Eliminate return-by-value std::vector<>
566 on the functions listed below, by creating data buffers for particles,
567 momenta, and particle types. The functions become non-const and void:
568 ::generateSCMfinalState(), ::generateMomModules()
569 ::generateStrangeChannelPartTypes(), ::generateSCMpionAbsorption()
570
571 Also, in ::generateStrangeChannelPartTypes(), use a switch statement
572 instead of the long cascade of if-else-else.
573
574- G4NucleiModel: Several member functions have different modifications:
575
576 ::initializeCascad(bullet,target) -- Replace return value with a passed-in
577 (non-const reference) buffer to be filled. The calling code can
578 pass in a data member, local variable, or whatever.
579
580 ::generateParticleFate() -- Replace local "thePartners" variable with data
581 member, filled below. Move "outgouing_cparticles" to data member
582 (fix the spelling!), and return by const-ref.
583
584 ::generateInteractionPartners() -- Eliminate return value; fill data
585 member instead, to be used by ::generateParticleFate().
586
587- G4IntraNucleiCascader.cc: Follow changes to initializeCascad() above.
588
589- G4NucleonSampler, G4PionSampler: ** DON'T KNOW WHAT TO DO HERE **
590
591- G4WatcherGun: Return const-ref to list of watchers, instead of copy.
592
593Replace all uses of std::vector<>::resize(0) with ::clear(). The former
594causes deallocation/reallocation/resizing cycles, while clear() just removes
595content, preserving the allocated buffer.
596
597 include/G4CollisionOutput.hh
598 src/G4ElementaryParticleCollider.cc
599 src/G4NucleiModel.cc
600 src/G4WatcherGun.cc
601
60207 April 2010 Dennis Wright (hadr-casc-V09-03-16)
603-------------------------------------------------
604- fix negative energy bug in G4BigBanger, and switch to using
605 G4NucleiProperties::GetBindingEnergy
606
60707 April 2010 Michael Kelsey (hadr-casc-V09-03-15)
608--------------------------------------------------
609All changes below within "cascade/" subdirectory:
610
6111) Systematically replace pass-by-value function arguments with const-refs.
612This is the first step in reducing unnecessary memory churn, to be followed
613by replacing return-by-value std::vector<> with non-const argument buffers.
614
615 include/G4CascadeChannel.hh
616 include/G4FinalStateSampler.hh
617 include/G4InuclEvaporation.hh
618 include/G4NuclWatcher.hh
619 src/G4CascadeChannel.cc
620 src/G4FinalStateSampler.cc
621 src/G4InuclEvaporation.cc
622 src/G4NuclWatcher.cc
623
6242) Fix constness on some operator== and operator!= definitions.
625
626 include/G4CascadeElasticInterface.hh
627 include/G4CascadeInterface.hh
628 include/G4ElasticCascadeInterface.hh
629 include/G4IBertini.hh
630 include/G4PreCompoundCascadeInterface.hh
631
63207 Apr 2010 Michael Kelsey (hadr-casc-V09-03-14)
633------------------------------------------------
634- G4Dineutron.hh, G4Diproton.hh, G4UnboundPN.hh:
635 Reset static "theInstance" pointer to zero in (now virtual) destructor.
636
637- G4Dineutron.cc, G4Diproton.cc, G4UnboundPN.cc:
638 Implement constructor to do the G4Ions initialization, rather than in
639 ::Definition(). Drop use of G4ParticleTable; just monitor static pointer.
640 Set "ShortLived" flag in G4Ions initialization, to avoid interactions with
641 ProcessManager.
642
643- G4InuclNuclei.cc: In ::makeNuclearFragment(), set "ShortLived" flag for
644 G4Ions, to avoid interactions with ProcessManager.
645
64626 Mar 2010 Dennis Wright (hadr-casc-V09-03-13)
647-----------------------------------------------
648- G4EquilibriumEvaporator.cc: remove line #include "G4types.hh"
649 (file doesn't exist)
650
65120 Mar 2010 Michael Kelsey (hadr-casc-V09-03-12)
652------------------------------------------------
653All changes below within "cascade/" subdirectory:
654
655- G4EquilibriumEvaporator.cc: Move subtraction of Q1[i] outside new
656 GetBindingEnergy() call.
657
658- G4InuclNuclei.cc::makeNuclearFragment(): Add message warning users about
659 non-physical creation. Use new GetBindingEnergy() function here as well
660 (V09-03-05 didn't have this function, so wasn't included in migration).
661
66219 Mar 2010 Michael Kelsey (hadr-casc-V09-03-11)
663------------------------------------------------
664All changes below within "cascade/" subdirectory:
665
666- G4InuclSpecialFunctions: Two new functions:
667
668::generateWithRandomAngles() to encapsulate random-direction generation.
669 This function and existing generateWithFixedTheta() take optional mass
670 argument to produce proper four-vector.
671
672 Replace duplicated random angle code with new function above, and use new
673 optional mass argument where available:
674
675 G4BigBanger.cc
676 G4ElementaryParticleCollider.cc
677 G4EquilibriumEvaporator.cc
678 G4Fissioner.cc
679 G4NonEquilibriumEvaporator.cc
680 G4NucleiModel.cc
681
682::G4cbrt(): Define cube-root in terms of log and exp, rather than pow().
683 Note that "cbrt()" can't be used, as it conflicts with <math.h> on Linux.
684
685 Eliminate unnecessary uses of std::pow() with fixed arguments. For
686 example, "pow(x,3)" -> "x*x*x", "pow(x,1/3)" -> G4cbrt(x):
687
688 G4BertiniRegionModel.cc
689 G4EquilibriumEvaporator.cc
690 G4EvaporationInuclCollider.cc
691 G4Fissioner.cc
692 G4IntraNucleiCascader.cc
693 G4InuclCollider.cc
694 G4NonEquilibriumEvaporator.cc
695 G4NucleiModel.cc
696 G4PreCompoundInuclCollider.cc
697 G4RegionModel.cc
698 bindingEnergyAsymptotic.cc
699 bindingEnergyKummel.cc
700
701 WARNING! In G4IntraNucleiCascader.cc, the Coulomb barrier was calculated
702 using "std::pow(A, 0.333)", rather than the "exact" 1./3. This leads to
703 per-mil differences in the value, and occasional differences in wheter an
704 outgoing particle tunnels through. The new code is exact to double
705 precision, and therefore fixes a bug.
706
707- Move "using" directive from all .hh files to corresponding .cc, along with
708 some unnecessary #includes:
709
710 G4BigBanger.hh, .cc
711 G4ElementaryParticleCollider.hh, .cc
712 G4EquilibriumEvaporator.hh, .cc
713 G4EvaporationInuclCollider.hh, .cc
714 G4Fissioner.hh, .cc
715 G4IntraNucleiCascader.hh, .cc
716 G4InuclCollider.hh
717 G4InuclNuclei.hh
718 G4NonEquilibriumEvaporator.hh, .cc
719 G4NucleiModel.hh, .cc
720 G4PreCompoundInuclCollider.hh, .cc
721
722- G4NuclWatcher.hh and .cc (new): Move implementation code from .hh to .cc.
723
72418 March 2010 Michael Kelsey (hadr-casc-V09-03-10)
725--------------------------------------------------
726All changes below within "cascade/" subdirectory:
727
728Missed one bug in repairs below, found when testing 4 GeV pi -> Pb.
729
730- G4Fissioner.cc: Replace incorrect G4LorentzVector ctor arguments
731 (G4ThreeVector,m) with call to G4LV::setVectM().
732
73317 March 2010 Dennis Wright (hadr-casc-V09-03-09)
734-------------------------------------------------
735Fix warning in G4InuclNuclei.cc: G4Ions:G4Ions was being called with
736a double (a) in its 13th argument, when an integer is required. Use
737G4lrint to convert.
738
73916 March 2010 Michael Kelsey (hadr-casc-V09-03-08)
740--------------------------------------------------
741All changes below within "cascade/" subdirectory:
742
743Fix bugs introduced during migration from G4CascadeMomentum to
744G4LorentzVector (see hadr-casc-V09-03-03). With these bug fixes, 2000
745events generated with "ppi4GeV" test executable are equivalent to production
746output (GEANT 4.9.3), allowing for differences in hardwired nucleon masses.
747When compared with hadr-casc-V09-03-02 (which uses G4ParticleDefinition for
748all the particle masses) the 2000-event results are identical within
749floating point precision.
750
751- G4BigBanger.cc: Line 72, fix unit conversion bug, GeV/MeV vs. MeV/GeV.
752 Replace incorrectly introduced cross-product with original vector
753 manipulation, written with G4LorentzVector accessors.
754
755- G4CollisionOutput::selectPairToTune(): Test on "i3>0" not appropriate with
756 G4LorentzVector indexing. Replace with failure-test on "i3<0". Also
757 simplify final if-cascade for readability.
758
759- G4EquilibriumEvaporator.cc: Replace incorrect G4LorentzVector ctor
760 arguments (px,py,pz,m) with call to G4LV::setVectM().
761
762- G4IntraNuclearCascader.cc: Replace leftover momentum_out[0] with .e().
763
764- G4InuclNuclei.cc,hh: Add new function ::makeNuclearFragment(a,z,exc),
765 which "manually" construct a G4Ions object for cases where A/Z is not a
766 valid stable or unstable nucleus. These unphysical objects are passed
767 back from G4IntraNuclearCascader.cc and immediately passed to G4BigBanger
768 for conversion to nucleons. A future change should move this action into
769 G4INCascader and eliminate the need for unphysical nuclei.
770
771- G4LorentzConvertor::toTheTargetRestFrame(): Remove local declaration of
772 scm_momentum, restoring access to data member with that name.
773
774- G4NucleiModel::generateQuasiDeutron(): Undo consolidation of dmom with
775 local variables for each of the nucleon momenta. Stack corruption led to
776 differences in unbound p-n state relative to pp and nn states.
777
778Minor updates: Changed all the "verboseLevel()" initializers to (0), via a
779shell script. This allows making the code uniformly verbose or quiet.
780
781 include/G4NucleiModel.hh
782 src/G4Analyser.cc
783 src/G4CollisionOutput.cc
784 src/G4ElementaryParticleCollider.cc
785 src/G4FissionStore.cc
786 src/G4Fissioner.cc
787 src/G4IntraNucleiCascader.cc
788 src/G4NonEquilibriumEvaporator.cc
789 src/G4NucleiModel.cc
790 src/G4WatcherGun.cc
791
79216 March 2010 Michael Kelsey (hadr-casc-V09-03-DO-NOT-USE)
793--------------------------------------------------
794All changes below within "cascade/" subdirectory:
795
796Restore version hadr-casc-V09-03-05 to HEAD of CVS in order to apply bug
797fixes and re-deploy migration from G4CascadeMomentum to G4LorentzVector.
798This reversion is tagged as a checkpoint only, and should not be used for
799testing or running (since it restores the known bugs in V09-03-03).
800
801The update to G4InteractionCase.hh by Gabriele Cosmo in hadr-casc-V09-03-07
802is not touched by this reversion!
803
804The following CVS commands were used to perform the reversion:
805
806 cvs update -j1.13 -j1.12 cascade/include/G4CascadParticle.hh
807 cvs update -j1.4 -j1.3 cascade/include/G4CascadeMomentum.hh
808 cvs update -j1.15 -j1.14 cascade/include/G4CollisionOutput.hh
809 cvs update -j1.23 -j1.22 cascade/include/G4ElementaryParticleCollider.hh
810 cvs update -j1.9 -j1.8 cascade/include/G4InuclCollider.hh
811 cvs update -j1.19 -j1.18 cascade/include/G4InuclElementaryParticle.hh
812 cvs update -j1.12 -j1.11 cascade/include/G4InuclNuclei.hh
813 cvs update -j1.16 -j1.15 cascade/include/G4InuclParticle.hh
814 cvs update -j1.13 -j1.12 cascade/include/G4InuclSpecialFunctions.hh
815 cvs update -j1.13 -j1.12 cascade/include/G4LorentzConvertor.hh
816 cvs update -j1.4 -j1.3 cascade/include/G4ParticleLargerBeta.hh
817 cvs update -j1.9 -j1.8 cascade/include/G4ParticleLargerEkin.hh
818 cvs update -j1.20 -j1.19 cascade/src/G4BigBanger.cc
819 cvs update -j1.13 -j1.12 cascade/src/G4CascadParticle.cc
820 cvs update -j1.6 -j1.5 cascade/src/G4CascadeElasticInterface.cc
821 cvs update -j1.68 -j1.67 cascade/src/G4CascadeInterface.cc
822 cvs update -j1.18 -j1.17 cascade/src/G4CollisionOutput.cc
823 cvs update -j1.7 -j1.6 cascade/src/G4ElasticCascadeInterface.cc
824 cvs update -j1.6 -j1.5 cascade/src/G4EvaporationInuclCollider.cc
825 cvs update -j1.5 -j1.4 cascade/src/G4IBertini.cc
826 cvs update -j1.3 -j1.2 cascade/src/G4InuclElementaryParticle.cc
827 cvs update -j1.10 -j1.9 cascade/src/G4InuclEvaporation.cc
828 cvs update -j1.3 -j1.2 cascade/src/G4InuclNuclei.cc
829 cvs update -j1.4 -j1.3 cascade/src/G4InuclParticle.cc
830 cvs update -j1.17 -j1.16 cascade/src/G4InuclSpecialFunctions.cc
831 cvs update -j1.19 -j1.18 cascade/src/G4LorentzConvertor.cc
832 cvs update -j1.5 -j1.4 cascade/src/G4PreCompoundCascadeInterface.cc
833 cvs update -j1.4 -j1.3 cascade/src/G4PreCompoundInuclCollider.cc
834
835Intermediate versions below had bindingEnergy changes from -05 re-applied
836
837 cvs update -j1.23 -j1.21 cascade/src/G4EquilibriumEvaporator.cc
838 cvs update -j1.22 -j1.20 cascade/src/G4Fissioner.cc
839 cvs update -j1.29 -j1.27 cascade/src/G4IntraNucleiCascader.cc
840 cvs update -j1.24 -j1.22 cascade/src/G4InuclCollider.cc
841 cvs update -j1.23 -j1.21 cascade/src/G4NonEquilibriumEvaporator.cc
842 cvs update -j1.38 -j1.36 cascade/src/G4NucleiModel.cc
843
844G4ElementaryParticleCollider::particleSCMmomentumFor2to2: Restore new
845parametrization of elastic scattering added by D.Write in hadr-casc-V09-03-06
846
847 cvs update -j1.47 -j1.45 cascade/src/G4ElementaryParticleCollider.cc
848 + editing
849
85005 Mar 2010 Gabriele Cosmo (hadr-casc-V09-03-07)
851------------------------------------------------
852- Reinstated fix in G4InteractionCase.hh for initialisation in constructor to
853 allow for porting on C++0x Standard.
854
85507 Feb 2010 Dennis Wright (hadr-casc-V09-03-06)
856-----------------------------------------------
857- back out changes from tags V09-03-00 to V00-03-05 by restoring HEAD
858 to V09-02-11, and keeping the di-nucleon classes
859- replace Bertini method bindingEnergy() with
860 G4NucleiProperties::GetBindingEnergy() in classes
861 G4IntraNuclearCascader, G4InuclCollider, G4NucleiModel, G4EquilibriumModel,
862 G4NonEquilibriumModel, G4Fissioner. Note that G4Fissioner still uses the
863 Bertini method bindingEnergyAsymptotic.
864
865- G4ElementaryParticleCollider::particleSCMmomentumFor2to2
866 replace original (incorrect) pp, pn, nn 2-body to 2-body scattering angular
867 distributions with a new parameterization of elastic scattering data using
868 the sum of two exponentials
869
87002 Feb 2010 Dennis Wright (hadr-casc-V09-03-05)
871-----------------------------------------------
872- replace all uses of bindingEnergy (local Bertini method) with the
873 Geant4 standard G4NucleiProperties::GetBindingEnergy(A,Z)
874 files modified:
875 G4IntraNucleiCascader.cc
876 G4InuclCollider.cc
877 G4NucleiModel.cc
878 G4EquilibriumEvaporator.cc
879 G4NonEquilibriumEvaporator.cc
880 G4Fissioner.cc
881- note that G4Fissioner still uses Bertini method bindingEnergyAsymptotic
882
88328 Jan 2010 Dennis Wright (hadr-casc-V09-03-04)
884-----------------------------------------------
885- fix unused variable warnings in G4InuclParticle.hh, .cc and
886 G4NonEquilibriumEvaporator.cc
887
88826 Jan 2010 Michael Kelsey (hadr-casc-V09-03-03)
889------------------------------------------------
890All changes below within "cascade/" subdirectory:
891
892- G4ParticleLargerBeta.hh: Fix to use of CVS "Name" tag; no code changes.
893
894- G4CascadParticle: Replace the position std::vector<> with G4ThreeVector.
895
896- G4NucleiModel: Replace all std::vector<> coordinates with G4ThreeVector,
897 and use vector math for computations.
898
899Remove all use of G4CascadeMomentum (a simple container with a C-style
900four-element array) with G4LorentzVector. This is a fairly invasive change,
901since G4CascMom was used for all of the three- and four-vector operations
902throughout the Bertini code:
903
904 include/G4CascadParticle.hh
905 include/G4CollisionOutput.hh
906 include/G4ElementaryParticleCollider.hh
907 include/G4InuclCollider.hh
908 include/G4InuclElementaryParticle.hh
909 include/G4InuclNuclei.hh
910 include/G4InuclParticle.hh
911 include/G4InuclSpecialFunctions.hh
912 include/G4LorentzConvertor.hh
913
914 src/G4BigBanger.cc
915 src/G4CascadParticle.cc
916 src/G4CascadeElasticInterface.cc
917 src/G4CascadeInterface.cc
918 src/G4CollisionOutput.cc
919 src/G4ElasticCascadeInterface.cc
920 src/G4ElementaryParticleCollider.cc
921 src/G4EquilibriumEvaporator.cc
922 src/G4EvaporationInuclCollider.cc
923 src/G4Fissioner.cc
924 src/G4IBertini.cc
925 src/G4IntraNucleiCascader.cc
926 src/G4InuclCollider.cc
927 src/G4InuclElementaryParticle.cc
928 src/G4InuclEvaporation.cc
929 src/G4InuclNuclei.cc
930 src/G4InuclParticle.cc
931 src/G4InuclSpecialFunctions.cc
932 src/G4LorentzConvertor.cc
933 src/G4NonEquilibriumEvaporator.cc
934 src/G4NucleiModel.cc
935 src/G4PreCompoundCascadeInterface.cc
936 src/G4PreCompoundInuclCollider.cc
937
938The new code is not yet entirely "correct," since Bertini also does a lot of
939operations by way of three-momentum, imposing masses (and hence energy
940conservation) separately, after the fact.
941
94220 Jan 2010 Gabriele Cosmo
943--------------------------
944- G4InteractionCase.hh: Minor fix in initialisation in constructor to
945 allow for porting on C++0x Standard.
946
94720 Jan 2010 Michael Kelsey (hadr-casc-V09-03-02)
948------------------------------------------------
949- G4LorentzConvertor.hh: Fix scm_momentum data member to be G4ThreeVector
950 (as used in previous versions) rather than G4LorentzVector.
951
952NOTE: I have *retagged* cascade/include/G4LorentzConverter.hh and this
953 History file, rather than creating a new tag, since these are private
954 development only, not public releases.
955
95612 Jan 2010 Michael Kelsey (hadr-casc-V09-03-02)
957------------------------------------------------
958All changes below within "cascade/" subdirectory:
959
960- G4CascadeMomentum: Replace use of static G4LV variables within functions
961 with mutable data member of object; this does introduce more memory
962 thrashing, but the plan is to get rid of the whole thing anyway. Improve
963 implicit casting and add assignment from G4LV.
964
965- G4LorentzConverter: Change function signatures to accept G4LV as input,
966 using implicit cast to convert existing G4CascadeMomentum argument
967 passing. Use G4LV internally throughout, again using implicit cast to
968 return G4CascMom values. This substantially increases (temporarily!)
969 memory thrashing. Simplify ::rotate() functions to use G4LV and
970 G4ThreeVec operations rather than array index gymnastics. Move some
971 function implementations out of .hh file into .cc.
972
973- G4ParticleLargerEkin.hh: Fix use of CVS "Name" tag. No code changes.
974
97512 Jan 2010 Michael Kelsey (hadr-casc-V09-03-01)
976------------------------------------------------
977All changes below within "cascade/" subdirectory:
978
979- G4ParticleLargerBeta, G4ParticleLargerEkin: Add additional operator()
980 which takes pointers (for future mods to reduce ctor/dtor cycling), and
981 fix ordering bug in beta sorting. Add debugging printout togged with
982 preprocessor flag.
983
984- G4InuclParticle, G4InuclNuclei, G4InuclElementaryParticle: Rewrite to
985 carry G4DynamicParticle data member, and to instantiate particle
986 properties via G4ParticleDefinition subclasses. This is first stage in
987 eventually eliminating the G4InuclParticle stuff entirely in favor of
988 direct use of G4DynamicParticle for internal propagation.
989
990These changes have been testing using debugging output on the production
991(4.9.3) code compared to the above changes. |diff| shows mostly identical
992results, with occasional ~1e-5 floating point differences.
993
99408 Jan 2010 Michael Kelsey (hadr-casc-V09-03-00)
995------------------------------------------------
996All changes below within "cascade/" subdirectory:
997
998- G4BertiniNuclearModel: REMOVE this class from the HEAD, and hopefully all
999 future tags. It is redundant with the G4NuclearModel class, and is not
1000 used anywhere in the G4 distribtion; the latter is referenced in both
1001 regular G4 code and in examples.
1002
1003- G4Diproton, G4Dineutron, G4UnboundPN: New G4ParticleDefinition
1004 subclasses, which implement the Bertini-specific dibaryon states. These
1005 are not used anywhere as yet, but will be used in future modifications to
1006 the G4InuclParticle subclasses.
1007
1008- G4CascadeMomentum: Add interface to create from and cast to
1009 G4LorentzVector. Will be used (in future) by G4InuclParticle modifications,
1010 and provides a transition to eliminating this class entirely.
1011
[1228]10121 Dec 2009 Dennis Wright (hadr-casc-V09-02-11)
1013----------------------------------------------
1014- G4PionSampler, G4NucleonSampler: change loop variable in ctor from i to j
1015 in order to satisfy Windows compiler
1016
[1196]101711 Nov 2009 Dennis Wright (hadr-casc-V09-02-10)
1018-----------------------------------------------
1019- G4CascadParticle, G4InuclElementaryParticle: add integer argument to ctor
1020 to indicate which generation cascade particle belongs to.
1021 Also change G4NucleiModel and G4BertiniNucleiModel to use this.
1022
1023 8 Oct 2009 Dennis Wright (hadr-casc-V09-02-09)
1024-----------------------------------------------
1025- G4PionSampler: use charge exchange cross section for pi0-p, go back
1026 original Bertini pi0-p elastic partial cs. Update pi0 total cross
1027 section accordingly. Improve fits to pi-p partial cs and update
1028 pi- total cross sections.
1029- G4NucleiModel: update pi- and pi0 total cross sections
1030
103124 Sep 2009 Dennis Wright (hadr-casc-V09-02-08)
1032-----------------------------------------------
1033- add class G4NucleonSampler which replaces old pp, pn, and nn partial and
1034 total cross sections also modify other classes which use them
1035- move large arrays which are instantiated at every call of frequently
1036 used methods. They are now initialized once in constructors.
1037- G4CascadSpecialFunctions: put copy of total cross section method
1038 in G4NucleiModel, also remove unneeded energy scale arrays
1039 (now replaced with a new one)
1040- G4CascadeInterface: move instantiation of various collider classes
1041 outside of loop, and put on stack instead of heap
1042- G4ElementaryParticleCollider: re-design to use G4NucleonSampler and
1043 remove instantiation of large arrays from within loops in code
1044- G4NucleiModel: remove instatiation of large arrays from with loops,
1045 add new total cross section sampling, remove use of all but one
1046 energy scale
1047
104817 Sep 2009 Dennis Wright (hadr-casc-V09-02-07)
1049-----------------------------------------------
1050- G4PionSampler: remove large static arrays
1051- G4FinalStateSampler: remove static array pointer to G4 particle types
1052- G4ElementaryParticleCollider: clean up
1053
10544 Sep 2009 Dennis Wright (hadr-casc-V09-02-06)
1055----------------------------------------------
1056- add assignment operator to class G4CollisionOutput
1057
105831 Aug 2009 Dennis Wright (hadr-casc-V09-02-05)
1059-----------------------------------------------
1060- add class G4FinalStateSampler which was accidentally omitted from
1061 the previous tag
1062
106325 Aug 2009 Dennis Wright (hadr-casc-V09-02-04)
1064-----------------------------------------------
1065- correct bug in particle ordering in G4PionSampler
1066- clean up dead code in G4NucleiModel and G4ElementaryParticleCollider
1067
106820 Aug 2009 Dennis Wright (hadr-casc-V09-02-03)
1069-----------------------------------------------
1070- create class G4PionSampler: samples partial cross sections, multiplicities
1071 and final state particle types required for pi+, pi- and pi0 scattering
1072 within a nucleus. This class uses re-evaluated pion partial cross sections
1073 and includes production of strange particle pairs.
1074- G4CascadeSigmaPlusNChannel: correct sigma plus cross sections
1075- G4CascadSpecialFunctions: move pion, kaon, hyperon total cross sections
1076 to this class
1077- G4ElementaryParticleCollider: re-write to use G4PionSampler class for
1078 cross sections and multiplicities, remove method reChargering (now redundant)
1079
[1055]108015 Apr 2009 Dennis Wright (hadr-casc-V09-02-02)
1081-----------------------------------------------
1082- previous tag no longer used. Bring hadr-casc-V09-02-00 back to
1083 HEAD and re-tag
1084
108521 Feb 2009 Dennis Wright (hadr-casc-V09-02-01)
1086-----------------------------------------------
1087- add printCrossSection method to G4CascadSpecialFunctions
1088- in GeElementaryParticleCollider, add high energy flag to distinguish
1089 "string-like" behavior
1090- G4IntraNucleiCascader.cc - allow secondaries from HE interaction to
1091 leave nucleus without interacting
1092- G4NucleiModel - get high_energy_interaction flag value from G4ElementaryParticleCollider
1093
109411 Feb 2009 V.Ivanchenko (hadr-casc-V09-02-00)
1095-----------------------------------------------
1096- set absorption coefficient 1.0 instead of 0.2 inside
1097 G4CascadSpecialFunctions (D.Wright)
1098
[962]109925 Nov 2008 Dennis Wright (hadr-casc-V09-01-10)
1100-----------------------------------------------
1101- fix multiplicity sampling in G4ElementaryParticleCollider::generateMultiplicity().
1102 Now partial cross sections are normalized to the total cross section instead
1103 of just the sum of 2-body to 6-body final state cross sections. Also fix
1104 2-body cross sections above 7 GeV where they were too small.
1105 Fix the same cross sections which appear in G4CascadSpecialFunctions.cc
1106
110721 Nov 2008 Dennis Wright (hadr-casc-V09-01-09)
1108-----------------------------------------------
1109- add some comments to cross section tables in G4CascadSpecialFunctions.cc
1110 and G4ElementaryParticleCollider.cc
1111
111224 Oct 2008 Dennis Wright (hadr-casc-V09-01-08)
1113-----------------------------------------------
1114- replace GetAtomicMass() with GetNuclearMass() in cascade/G4InuclEvaporation
1115 and evaporation/G4BertiniEvaporation
1116- V. Ivantchenko added name to G4CascadeInterface ("Bertini Cascade")
1117
111817 Oct 2008 Dennis Wright (hadr-casc-V09-01-07)
1119-----------------------------------------------
1120- added Coulomb barrier plus barrier penetration in G4IntraNucleiCascader.cc
1121
112227 Sep 2008 Dennis Wright (hadr-casc-V09-01-06)
1123-----------------------------------------------
1124- Fixed 4.3 compiler warnings for G4InuclElementaryParticle.hh by providing
1125 initializers for particle type and mass
1126- Remove unused variables totscm, totlab in G4BigBanger.cc,
1127 G4ElementaryParticleCollider.cc, and unused mom1 from G4InuclSpecialFunctions.cc
1128
112922 Sep 2008 Gabriele Cosmo (hadr-casc-V09-01-05)
1130------------------------------------------------
1131- Introduced simple wrapper class G4CascadeMomentum meant to replace usage
1132 of std::vector<double> in the cascade code, to reduce memory allocations.
1133 Courtesy of P.Elmer (princeton Univ.).
1134- Modified cascade code to make use of G4CascadeMomentum.
1135
1136 3 Sep 2008 Dennis Wright (hadr-casc-V09-01-04)
1137-----------------------------------------------
1138- G4ElementaryParticleCollider.cc: in method generateMultiplicity, remove
1139 large_cut which increases multiplicity from 3 to 4 abruptly at 4 GeV
1140 and above. This caused a sharp drop-off in the single pion spectra from
1141 pH reactions. The effect in heavier nuclei is small.
1142
114329 Jun 2008 Dennis Wright (hadr-casc-V09-01-03)
1144-----------------------------------------------
1145- add changes made by M. Paterno, J. Kowalkowski, and M. Fischler (FNAL)
1146 to speed up code. All G4Cascade***Channel classes and related code changed.
1147
1148 5 May 2008 Dennis Wright (hadr-casc-V09-01-02)
1149-----------------------------------------------
1150- retag hadr-casc-V09-csbug as hadr-casc-V09-01-02
1151
115230 Apr 2008 Dennis Wright (hadr-casc-V09-csbug)
1153-----------------------------------------------
[819]1154- fix cross section bug in G4CascadSpecialFunctions that returned
1155 low or zero total cross sections for pi-p, pi+n, np, and pi0
1156 interactions
1157
[962]115829 Apr 2008 Dennis Wright (hadr-casc-V09-01-01)
[819]1159-----------------------------------------------
[962]1160- bring tag hadr-casc-V09-01-coula to HEAD, make official tag
1161
116222 Apr 2008 Dennis Wright (hadr-casc-V09-01-param)
1163--------------------------------------------------
[819]1164- changed pp, nn total cross section parameterization in
1165 G4CascadSpecialFunctions to more closely reflect the PDG values (old one
1166 was off by as much as a factor of 3.
1167
11683 Apr 2008 Dennis Wright (hadr-casc-V09-01-coula)
1169-------------------------------------------------
1170- removed Coulomb barrier from G4IntraNucleiCascader.cc (causes unphysical spike)
1171
11723 Apr 2008 Dennis Wright (hadr-casc-V09-01-coul)
1173------------------------------------------------
1174- Added Coulomb barrier in G4EquilibriumEvaporator.cc, G4IntraNucleiCascader.cc
1175
117617 Nov 2007 Dennis Wright (hadr-casc-V09-00-02)
1177-----------------------------------------------
1178- Fix angular distribution for nucleon-nucleon elastic scattering
1179 above 2.8 GeV, by modifying G4ElementaryParticleCollider::getElasticCase
1180
118125 May 2007 Dennis Wright for Aatos Heikkinen (hadr-casc-V08-03-00)
1182-------------------------------------------------------------------
1183- implemented interfaces for pre-equilibrium and equilbrium evaporation
1184 models
1185
118604 May 2007 Aatos Heikkinen (hadr-casc-V08-02-00)
1187-------------------------------------------------
1188
1189- Added protection in G4ElementaryParticleCollider against negative
1190 value to sqrt().
1191
119208 May 2006 Dennis Wright (hadr-casc-V08-00-00)
1193-----------------------------------------------
1194
1195- cascade: remove G4BERTINI_KAON conditional assembly flags. Files
1196 affected:
1197 G4ElementaryParticleCollider.hh, cc
1198 G4InuclElementaryParticle.hh
1199 G4NucleiModel.hh, cc
1200 G4CascadeInterface.cc
1201 G4IntraNucleiCascader.cc
1202
1203- cascade (Pekka Kaitaniemi): G4ElasticCascadeInterface: derive
1204 from G4VIntraNuclearTransportModel instead of G4HadronElastic.
1205 Check for case when no elastic scattering occurs. If so,
1206 return original bullet and target.
1207
120824 Nov 2005 Dennis Wright (hadr-casc-V07-01-00)
1209----------------------------------------------
1210
1211- cascade (bertini-V07-01-00 by Aatos Heikkinen)
1212 elastic scattering interface added:
1213 G4ElasticCascadeInterface.hh, .cc added
1214 G4CascadeInterface.hh modified
1215
Note: See TracBrowser for help on using the repository browser.