Ignore:
Timestamp:
Jun 18, 2010, 11:42:07 AM (14 years ago)
Author:
garnier
Message:

update geant4-09-04-beta-cand-01 interfaces-V09-03-09 vis-V09-03-08

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/processes/hadronic/models/cascade/History

    r1228 r1315  
     1$Id: History,v 1.90 2010/06/08 06:34:43 stesting Exp $
    12-------------------------------------------------------------------
    23
     
    1415     * Please list in reverse chronological order (last date on top)
    1516     ---------------------------------------------------------------
     17
     1808 June 2010 Gunter Folger  (hadr-casc-V09-03-42)
     19-  trivial fix for compiler warning on gcc43 on empty body in for(...) in 
     20    cascade/include/G4CascadeInterpolator.icc:67
     21
     2201 June 2010 Michael Kelsey (hadr-casc-V09-03-41)
     23-------------------------------------------------
     24- paraMaker.cc:  Fix vector initialization for Windows crash.
     25
     2626 May 2010 Dennis Wright (hadr-casc-V09-03-40)
     27-----------------------------------------------
     28- G4NucleiModel: remove conversion to fm, and conversion of cross
     29  sections to fm**2
     30
     3121 May 2010 Michael Kelsey (hadr-casc-V09-03-39)
     32------------------------------------------------
     33Final tag for inclusion in GEANT 4.9.4-beta.  Will be validated internal and
     34included in global Hadronics tag.
     35
     36- G4CascadeSampler.icc:  Activate time-saving checks on single bins.
     37- G4ElementaryParticleCollider.cc:  Remove special case for nucleon elastic
     38  scattering.
     39
     4021 May 2010 Michael Kelsey (kelsey-20100521c)
     41---------------------------------------------
     42- G4CascadeInterface, G4PreCompoundCascadeInterface, G4InuclEvaporation:
     43  Simplify code: fetch G4DynamicParticle out of outgoing G4InuclParticles,
     44  rather than creating new ones.  Remove all of the *Collider data members
     45  (instantiated within G4InuclCollider).  Move final state rotations to
     46  G4CollisionOutput.
     47
     48- G4InuclParticle:  Provide accessor to return G4DynamicParticle.
     49
     50- G4CollisionOutput:  Add function to apply LorentzRotation to both lists;
     51  used by G4CascadeInterface.
     52
     53- G4ElementaryParticleCollider:  Avoid memory churn with G4LorentzVector
     54  temporaries.
     55
     5621 May 2010 Michael Kelsey (kelsey-20100521b)
     57---------------------------------------------
     58- G4VCascadeCollider:  New base class for all Colliders.  Carries
     59  verboseLevel data member and set-function.  ::collide() is pure virtual.
     60  Additional protected member functions will be defined to include all code
     61  shared across multiple Colliders.
     62
     63- Migrate all of the "Collider" factories to use new base class, removing
     64  common member functions, and replace passed-in sibling colliders with
     65  local data members (pointers for now).  Since none of these classes have
     66  persistent (state preserving) data members, the cost of more than one
     67  instantiation is minimal.
     68
     69        G4BigBanger
     70        G4ElementaryParticleCollider
     71        G4EquilibriumEvaporator
     72        G4EvaporationInuclCollider
     73        G4Fissioner
     74        G4IntraNucleiCascader
     75        G4InuclCollider
     76        G4NonEquilibriumEvaporator
     77        G4PreCompoundInuclCollider
     78
     79- G4CascadeInterface.cc, G4InuclEvaporation.cc,
     80  G4PreCompoundCascadeInterface.cc:  Remove siblings from constructors for
     81  the Colliders.
     82
     83- G4InteractionCase.hh:  Eliminate unnecessary copying of std::pair<>'s, use
     84  initializers in ctors, add clear() function to reset to 0-0-0.  Move
     85  evaluation of bullet vs. target to new set() function, replacing separate
     86  bulletTargetSetter() in the colliders.  Add boolean accessors to avoid
     87  hard-coding inter_case values.  Change code numbers so nucleus collisions
     88  are negative, and positive codes refer to the "is" or "rtype" numbers.
     89
     90- G4ElementaryParticleCollider.cc:  Use G4InteractionCase to compute "is",
     91  instead of hardwiring the meaning.
     92
     93- G4Collider.hh:  Remove empty and never-used file.
     94
     95- G4EvaporationInuclCollider.cc:  Eliminate unnecessary creation of
     96  duplicate G4InuclNuclei: pass input through to G4EquilibriumEvaporator.
     97
     98- G4LorentzConvertor:  Add interfaces to pass G4InuclParticles directly.
     99
     10021 May 2010 Michael Kelsey (kelsey-20100521a)
     101---------------------------------------------
     102Replace hand-coded interpolation of arrays with use of G4CascadeInterpolator.
     103In all cases, local arrays are replaced with static const, and the
     104interpolator object itself is declared static, to reduce memory churn.
     105
     106        G4NucleiModel::totalCrossSection()
     107        G4EquilibriumEvaporator::getQF()
     108        G4InuclSpecialFunctions::paraMaker[Truncated]() (in paraMaker.cc)
     109
     110- G4CascadSpecialFunctions:  Remove. totalCrossSection() redundant with
     111  G4NucleiModel.  Move absorptionCrossSection() to G4NucleiModel.
     112
     113- G4CascadeInterpolator.icc:  Bug fix to catch special case of exact upper
     114  bin edge (occurs when !doExtrapolation).  If index == last + 0., just
     115  return upper edge value, without calculation.
     116
     117- G4NucleiModel.cc:  Use G4Cascade{Pi*}Channel and G4Cascade{NN,NP,PP}Channel
     118  classes to get total cross-sections for pi-N and N-N scattering.  Arrays
     119  for kaon and hyperon scattering should be migrated as well, once binning
     120  is resolved.  Move absorptionCrossSection() here from SpecialFunctions.
     121
     12220 May 2010 Michael Kelsey (kelsey-20100521)
     123--------------------------------------------
     124- G4CascadeInterpolator.icc:  Two bug fixes involving values at array edges.
     125
     12619 May 2010 Michael Kelsey, Dennis Wright
     127-----------------------------------------
     128- G4BertiniData.hh,.cc:  Remove unused and unnecessary class.
     129- G4NucleiModel.cc: convert nuclear radii to fm and cross sections to
     130    fm**2.  Use six-zone model for A > 99, and make alpha a 1-zone
     131    nucleus.
     132- G4CascadSpecialFunctions: convert pion absorption cross sections from
     133    mb to fm**2, correct spelling of method absorptionCrossSection
     134
     13517 May 2010 Michael Kelsey (hadr-casc-V09-03-38)
     136------------------------------------------------
     137- paraMaker.cc (G4InuclSpecialFunctions::paraMaker[Truncated]):  Upper edge
     138  of interpolation array not properly handled.  Should be "if (Z >= 70.0)".
     139  This affects G4NonEquilibriumEvaporator output.
     140
     14117 May 2010 Michael Kelsey (hadr-casc-V09-03-37)
     142------------------------------------------------
     143Bug fixes for compiler warnings (not seen on MacOSX, even with g++ -Wall)
     144
     145- G4CascadeData.hh: Dummy arrays needed double-braces for initialization.
     146
     147- G4CascadeInterpolator.icc: Extraneous decimal point in "for (i=0.;".
     148
     149- G4CascadeKzeroBarNChannel.cc:  Left three "old" arrays in place during
     150  conversion.
     151
     15214 May 2010 Michael Kelsey (hadr-casc-V09-03-36)
     153------------------------------------------------
     154Remove obsolete files following reorganization of two-body scattering
     155lookup tables.
     156
     157        G4CascadeElasticInterface.hh,.cc
     158        G4ElasticCascadeInterface.hh,.cc
     159        G4FinalStateSampler.hh,.cc
     160        G4NucleonSampler.hh,.cc
     161        G4PionSampler.hh,.cc
     162
     163- G4CascadeChannel.hh,.cc:  All functionality removed, replaced with
     164  namespace containing only getQnums and CheckQnums validation functions.
     165
     16614 May 2010 Michael Kelsey (hadr-casc-V09-03-35)
     167------------------------------------------------
     168Replace independent parallel samplers with templated base class and single
     169implementation.  This completes the reorganization of the channel tables.
     170
     171- G4CascadeSampler:  Redefine as templated base, taking binning array as
     172  constructor argument.  Move implementation file from .cc to .icc.
     173  NOTE:  G4CascadeSampler.cc is removed, since not consistent with new .hh.
     174
     175- G4PionNucSampler:  Subclass of G4CascadeSampler<30>, replaces
     176  G4FinalStateSampler, using bins array from there.
     177
     178- G4KaonNucSampler:  Sublcass of G4CascadeSampler<31>, replaces previous
     179  G4CascadeSampler, using bins array from there.
     180
     181- G4Cascade*Channel.hh:  Change all typedefs to pass appropriate of two new
     182  samplers in template.
     183
     184- G4ElementaryParticleCollider.cc: Replace long "if (is==)"-cascades with
     185  switch blocks.  Move all getOutgoing calls (for pions and nucleons) into
     186  one function, and call it from outside multiplicity checks.  Use
     187  G4CascadeInterpolator for angular distributions.  Set modelID=3 in all
     188  G4InuclParticle constructions.
     189
     19014 May 2010 Michael Kelsey (hadr-casc-V09-03-34)
     191------------------------------------------------
     192Extract lookup tables from G4PionSampler and G4NucleonSampler into
     193individual "classes" defined and initialized with G4CascadeData.
     194
     195- G4CascadePi{Plus,Minus,Zero}{P,N}Channel.hh: Six new typedefs defined as
     196  with the existing G4CascadeXXXChannel, to replace G4PionSampler.
     197
     198- G4CascadeT33piNChannel.cc: Lookup tables for both PiPlusP and PiMinusN,
     199  implemented as with existing G4CascadeXXXChannel, from G4PionSampler.cc.
     200
     201- G4CascadeT31piNChannel.cc: Lookup tables for both PiMinusP and PiPlusN,
     202  implemented as with existing G4CascadeXXXChannel, from G4PionSampler.cc
     203
     204- G4CascadeT11pizNChannel.cc: Lookup tables for both PiZeroP and PiZeroN,
     205  implemented as with existing G4CascadeXXXChannel, from G4PionSampler.cc
     206
     207- G4Cascade{PP,NP,NN}Channel.hh: Three new typedefs defined as with the
     208  existing G4CascadeXXXChannel, to replace G4NucleonSampler.
     209
     210- G4CascadeT1NNChannel.cc: Lookup tables for both p-p and n-n scattering,
     211  implemented as with existing G4CascadeXXXChannel, from G4NucleonSampler.cc
     212
     213- G4CascadeT0npChannel.cc: Lookup tables for p-n scattering, implemented as
     214  with existing G4CascadeXXXChannel, from G4NucleonSampler.cc
     215
     216- G4CascadeFunctions.hh, .icc: Pass std::vector as non-const argument to
     217  getOutgoingParticleTypes() instead of returning internal buffer.
     218
     219- G4CascadeSampler.cc, G4FinalStateSampler.cc:  Add some checks in
     220  findFinalStateIndex, fillSigmaBuffer, and sampleFlat(), such that
     221  single-entry ranges don't go through the analysis, just return index 0.
     222
     223- G4ElementaryParticleCollider.cc: Follow change to getOutgoingParticleTypes()
     224  in generateStrangeChannelPartTypes().  Replace all uses of G4PionSampler
     225  and G4NucleonSampler with new channel "classes".
     226
     22714 May 2010 Michael Kelsey (hadr-casc-V09-03-33)
     228------------------------------------------------
     229Continue consolidation of two-body collision lookup tables.  Unify
     230interfaces between pion/nucleon and kaon/hyperon samplers.
     231
     232- G4CascadeData: Many changes to support use as data class for both
     233  kaon/hyperon and pion/nucleon tables (migration will be next tag):
     234
     235  1) Add new first argument to template with number of bins in energy
     236     interpolation.  This replaces the (temporary) use of
     237     G4CascadeSampler::energyBins within the class definition.
     238
     239  2) Add two additional template arguments, N8 and N9, with default values
     240     of zero.  These will be used by the pion/nucleon tables, but not by the
     241     existing kaon/hyperon tables.
     242
     243  3) Define additional arrays for 8- and 9-body final states, using
     244     conditional dimensioning (e.g., if N8==0, use [1]).  Define second
     245     9-body constructor to accept and initialize the new arrays.
     246
     247  4) Eliminate static intialization of index[], moving it into
     248     initialize().  Template specialization can't be used with data!
     249
     250  5) Add separate "sum" (summed N-body cross-sections) and "tot" arrays
     251     (measured inclusive xsec).  Latter is a const-ref, initialized to "sum"
     252     if not provided as ctor argument, with two new ctors as needed.
     253
     254  6) Add accessor to return maximum multiplicity (NM+1).
     255
     256- G4CascadeFunctions.hh:  Add second template argument to specify which
     257  "final state sampler" is the base class.  Use both T::data.tot and
     258  T::data.sum in GetMultiplicity(), to support sum/tot comparisons in
     259  pion/nucleon channels.  Extend GetOutputParticleTypes() to support up to
     260  multiplicity 9.
     261
     262- G4CascadeFunctions.icc:  Implementations of template class functions.
     263
     264- G4CascadeXXXChannel.hh: Add "31," as initial template argument for Data.
     265  Add G4CascadeSampler as second template argument in G4CascadeXXXChannel
     266  typedef.
     267
     268
     26914 May 2010 Michael Kelsey (hadr-casc-V09-03-32)
     270------------------------------------------------
     271Continue revisions to two-body collision lookup tables.  Make the kaon and
     272hyperon channels compatible with the pion/nucleon samplers, before the next
     273stage of unifying the structure.
     274
     275- G4CascadeSampler: NEW class, parallel to G4FinalStateSampler but with a
     276  different energy binning.  Used as base class to G4CascadeFunctions<T>,
     277  from which the cross-section and other arrays are passed.  Implement
     278  findMultiplicity (cf. G4CascadeFunctions::getMultiplicity) to return the
     279  true value, not the array index.
     280
     281  This class replaces functionality of G4CascadeChannel, which is redundant.
     282
     283- G4CascadeChannel: Remove all interpolation code, leaving only getQnums().
     284
     285- G4CascadeFunctions:  Inherit from G4CascadeSampler for interpolations,
     286  except for final-state extraction (where FS type arrays are dealt with
     287  locally, not passed).  Public static functions rely on private instantiated
     288  version of class to do work, so that G4CascadeSampler gets instantiated.
     289
     290- G4CascadeData: Remove final template argument (total number of indices),
     291  as redundant with simple sum of multplicity indices.  Use template args to
     292  dimension data member arrays (const references), and to statically
     293  initialize the start-stop index table.  Make large cross-sections table
     294  G4double, not G4float.  Define ctor to pass in array refs for initialization.
     295  Reduce index array to single dimension (start=index[i], stop=index[i+1]).
     296
     297- G4CascadeXXXChannel:  All of the initial-state channel "classes"
     298  (typedef names) modified to follow G4CascadeData rewrite.  In .cc file,
     299  the explicit lookup tables are static, and passed by const-ref to
     300  G4CascadeData.  The "initializer" struct is dropped; with the static
     301  "data" object initialized by ctor here.
     302
     303- G4ElementaryParticleCollider.cc:  In ::generateMultiplicity(), eliminate
     304  extra "+2" and "-2" applied to local "mul" variables.  With change above,
     305  all functions return return true multiplicity, not array index.
     306
     307- G4FinalStateSampler:  Add findFinalStateIndex() function, to make
     308  interface match G4CascadeSampler exactly.  Reduce index array to single
     309  dimension.
     310
     311- G4PionSampler.cc, G4NucleonSampler.cc:  Use new findFinalStateIndex()
     312  function in GetFSPartTypesXXX() functions.  Reduce index array to single
     313  dimension (start=index[i], stop=index[i+1]).
     314
     31514 May 2010 Michael Kelsey (hadr-casc-V09-03-31)
     316------------------------------------------------
     317Begin revisions to two-body collision lookup tables.  This will be a major
     318reorganization, splitting the G4PionSampler and G4NucleonSampler into
     319separate little "classes" (typedefs) for each initial state, in the same way
     320that the kaon and hyperon states are done now.  The underlying templated and
     321base classes will be unified across all of the channels.
     322
     323- G4CascadeInterpolator: NEW class to encapsulate interpolation procedure.
     324  Uses C-style arrays passed by dimensioned reference, to allow compile-time
     325  array bounds checking.  Template argument is array dimension, and array of
     326  energy bins is saved by ctor.  User array to be interpolated is passed as
     327  function argument.  Last value interpolated, along with result, is saved,
     328  to allow fast multiple interpolations.
     329
     330  This class is substantially more lightweight than G4PhysicsVector.
     331
     332- G4FinalStateSampler: Replace manual interpolation with G4CascadeInterpolator.
     333  Remove redundant sampleFlat(...) function with argument.  Rename member
     334  functions in anticipation of merging with G4CascadeFunctions.
     335
     336- G4PionSampler.cc, G4NucleonSampler.cc: Follow use of G4CascadeInterpolator
     337  above, and drop local caching of interpolation results.  Reduce offset
     338  list for cross-sections to one dimension (start=index[i], stop=index[i+1]).
     339
     34011 May 2010 Michael Kelsey (hadr-casc-V09-03-30)
     341------------------------------------------------
     342Bug fixes in the two-body scattering code.
     343
     344- G4PionSampler.cc, G4NucleonSampler.cc:  Fix long-standing bug with offset
     345  indices computed for cross-section tables.  XXXindex[m][0] (start) and
     346  XXXindex[m][1] (stop) are computed in initChannels() as [start,stop]
     347  inclusive range (i.e., "for (i=start; i<=stop; i++)"), but used with
     348  G4FinalStateSampler::fillSigmaBuffer (and its predecessor code) as
     349  [start,stop) exclusive range (i.e., normal C style "for (i=start; i<stop;
     350  i++)").  This is fixed by properly setting XXXindex[m-1][1] =
     351  XXXindex[m][0], and using the ranges consistently in initChannels().
     352
     353- G4ElementaryParticleCollider.cc:  In the six pion-nucleon scatters, the
     354  two-body final state is incorrectly tested for charge-exchange.  All the
     355  if statements check whether "particle_kinds[0]" is the initial nucleon,
     356  but the outgoing baryon actually appears in particle_kinds[1].  Replace
     357  the individual tests with the use of "finaltype", moved out of the
     358  strangeness if-block.
     359
     36006 May 2010 Michael Kelsey (hadr-casc-V09-03-29, hadr-casc-V09-03-23-01)
     361------------------------------------------------------------------------
     362- G4Diproton.cc, G4Dineutron.cc, G4UnboundPN.cc:  After creating instance
     363  of these "internal" particles, remove the pointer from G4ParticleTable.
     364  This avoids an issue with the FTFP de-excitation code, which occasionally
     365  picks up the diproton and puts it onto a final-state particle list.
     366
     367These three changes, and nothing else, are "backported" on top of -23 for
     368continued validation tests.
     369 
     37030 Apr 2010 Dennis Wright (hadr-casc-V09-03-28)
     371-----------------------------------------------
     372- G4ElementaryParticleCollider:
     373    improved pi-nucleon two-body angular distributions, and made
     374    sampling of CM angle faster.  As a result, the methods
     375    getElasticCase and adjustIntervalForElastic were made redundant
     376    and removed.  Also removed array containing old angular distribution
     377    parameters.
     378   
     379    Now use nucleon-nucleon angular distributions for hyperon-nucleon
     380    scattering, and pi-nucleon dsitributions for kaon-nucleon scattering
     381    (until specific kaon distributions are added).
     382 
     38329 Apr 2010 Michael Kelsey (hadr-casc-V09-03-27)
     384------------------------------------------------
     385- G4InuclPartcleNames.hh:  Long name "gamma" conflicts with math function.
     386  Change back to "photon".
     387
     388- G4InuclElementaryParticle.cc, G4InuclEvaporation.cc,
     389  G4NonEquilibriumEvaporator.cc, G4NucleiModel.cc, G4NucleonSampler.cc,
     390  G4PionSampler.cc, G4PreCompoundCascadeInterface.cc,
     391  G4PreCompoundInuclCollider.cc:  Replace "gamma" with "photon".
     392
     393- G4InuclElementaryParticle.hh:  Change "photon()" to "isPhoton()" to avoid
     394  conflicts with names enum.  Use names enum internally as well.
     395
     396- G4ElementaryParticleCollider.cc, G4InuclCollider.cc,
     397  G4PreCompoundInuclCollider.cc:  Change "photon()" to "isPhoton()".
     398
     39928 Apr 2010 Michael Kelsey (hadr-casc-V09-03-26)
     400------------------------------------------------
     401All changes below within "cascade/" subdirectory:
     402
     403- G4InuclParticleNames.hh:  Define enums for particle type codes, using both
     404  "long" and "short" names copied from existing duplicated enums.  One
     405  change is that "kp" and "km" are replaced by "kpl" and "kmi" respectively,
     406  since "km" conflicts with GEANT4 "kilometers" unit.  Deploy in classes:
     407
     408        include/G4FinalStateSampler.hh
     409        src/G4CascadeElasticInterface.cc
     410        src/G4CascadeInterface.cc
     411        src/G4ElasticCascadeInterface.cc
     412        src/G4ElementaryParticleCollider.cc
     413        src/G4InuclElementaryParticle.cc
     414        src/G4InuclEvaporation.cc
     415        src/G4NucleonSampler.cc
     416        src/G4PionSampler.cc
     417        src/G4PreCompoundCascadeInterface.cc
     418
     419- G4InuclElementaryParticle.cc:  Add Omega- and antinucleon partcles to lists.
     420  No code uses these (yet).
     421
     42224 April 2010 Michael Kelsey (hadr-casc-V09-03-25)
     423--------------------------------------------------
     424Remove redundant classes, G4Ibertini and G4BertiniRegionModel.
     425
     42621 April 2010 Michael Kelsey (hadr-casc-V09-03-24)
     427--------------------------------------------------
     428- G4NucleiModel.hh,cc:  Eliminate last remaining hardwired baryon masses.
     429
     43018 April 2010 Michael Kelsey (hadr-casc-V09-03-23)
     431--------------------------------------------------
     432Final revisions to access std::vector<particle> via const-references:
     433
     434        G4CascadeInterface.cc
     435        G4EquilibriumEvaporator.cc
     436        G4IBertini.cc
     437        G4InuclCollier.cc
     438        G4NucleiModel.cc
     439        G4PreCompoundCascadeInterface.cc
     440
     441- G4CollisionOutput:  Add new function to boost output lists to lab frame.
     442
     44314 April 2010 Michael Kelsey (hadr-casc-V09-03-22)
     444--------------------------------------------------
     445- G4CascadeInterface.cc, G4IBertini.cc, G4PreCompoundCascadeInterface.cc:
     446  In ::ApplyYourself(), do the check on K0L/K0S _before_ passing G4PartDefn
     447  to G4InuclElemPart::type().  This avoids unnecessary warning message.
     448
     44914 April 2010 Michael Kelsey (temporary: kelsey-memClean3)
     450----------------------------------------------------------
     451All changes below within "cascade/" subdirectory:
     452
     453- G4FinalStateSampler: Replace "sigma" argument for sampling with data
     454  member, add functions to fill sigma buffer by passing in array references.
     455  Provide typedef for interpolator, and function to apply interpolation.
     456
     457- G4PionSampler, G4NucleonSampler:  Follow changes to base class,
     458  eliminating much of the copy-and-paste code blocks via function calls.
     459  Replace G4float arrays with G4double, to support passing into functions.
     460
     46113 April 2010 Michael Kelsey (hadr-casc-V09-03-21)
     462--------------------------------------------------
     463All changes below within "cascade/" subdirectory:
     464
     465- G4InuclSpecialFunctions.hh, paraMaker.cc, paraMakerTruncated.cc:  Drop
     466  return-by-value from paraMaker() and paraMakerTruncated().  Add second
     467  argument with non-const reference to output buffer for return.
     468
     469- G4EquilibriumEvaporator.cc:  Follow changes above to paraMaker(), use
     470  references to address parms.first and parms.second, instead of copying.
     471
     472- G4NonEquilibriumEvaporator.cc:  Follow changes above to
     473  paraMakerTruncaed(), use references to address parms.first and
     474  parms.second, instead of copying.
     475
     476- G4Dineutron, G4Diproton, G4UnboundPN:  Inherit from G4VShortLivedParticle,
     477  per Kurashige.  Thought it would eliminate G4ElectronOccupancy churn, but
     478  did not.
     479
     48012 April 2010 Michael Kelsey (hadr-casc-V09-03-20)
     481--------------------------------------------------
     482All changes below within "cascade/" subdirectory:
     483
     484- G4NucleiModel: Move function implementations from .hh to .cc.  Replace
     485  manual sorting (inefficient O(N^2)) with std::sort() and simple
     486  "less-than" function for std::pair<> "partners".
     487
     488- G4CollisionOutput: Move function implementations from .hh to .cc.  Use
     489  std::vevtor<>::insert() to add vectors together.
     490
     491- Replace return-by-value G4CollisionOutput with non-const reference buffer
     492  passed into xxx::collide(), in the following classes:
     493        G4BigBanger
     494        G4CascadeElasticInterface
     495        G4CascadeInterface
     496        G4ElasticCascadeInterface
     497        G4ElementaryParticleCollider
     498        G4EquilibriumEvaporator
     499        G4EvaporationInuclCollider
     500        G4Fissioner
     501        G4IBertini
     502        G4IntraNucleiCascader
     503        G4InuclCollider
     504        G4InuclEvaporation
     505        G4NonEquilibriumEvaporator
     506        G4NucleiModel
     507        G4PreCompoundCascadeInterface
     508        G4PreCompoundInuclCollider
     509
     510  Note that some places where internal G4CollisionOutput buffers are being
     511  used (and their contents appended to the global output) have not been
     512  cleaned up yet.  These will require some rearrangement of the algorithms,
     513  or/and elimination of debugging output.
     514
     51509 April 2010 Michael Kelsey (hadr-casc-V09-03-16-01)
     516-----------------------------------------------------
     517This modification is included in a pseudo-patch of hadr-casc-V09-03-16,
     518without brining in any of the -17 through -19 modifications.
     519
     520- G4LorentzVector.cc:  Protect two instances of sqrt() against tiny negative
     521  arguments (due to tiny-tiny subtractions).
     522
     52309 April 2010 Michael Kelsey (hadr-casc-V09-03-19)
     524--------------------------------------------------
     525All changes below within "cascade/" subdirectory:
     526
     527- G4InuclParticle, G4InuclElementaryParticle, G4InuclNuclei:  Eliminate
     528  unused G4String ctor argument, introduced in hadr-casc-V09-03-01.  Causes
     529  a lot of pointless memory churn.
     530
     531- G4BigBanger.cc:  Fix type conversion warning I introduced by mistake.
     532
     53308 April 2010 Michael Kelsey (hadr-casc-V09-03-18)
     534--------------------------------------------------
     535All changes below within "cascade/" subdirectory:
     536
     537- G4PionSampler, G4NucleonSampler: For all ::GetFSPartTypes*() functions,
     538  eliminate return-by-value std::vector<>, and pass in non-const reference
     539  for filling in situ.  Buffer is cleared.
     540
     541- G4ElementaryParticleCollider.cc:  Follow changes above for Sampler calls.
     542
     54307 April 2010 Michael Kelsey (hadr-casc-V09-03-17)
     544--------------------------------------------------
     545All changes below within "cascade/" subdirectory:
     546
     547Replace return-by-value std::vector<> with either const-ref returns, or
     548with use of an internal buffer which can be reused, to reduce memory
     549churn due to copying, allocation, and resizing.
     550
     551- G4BigBanger:  Create data buffer for lists of secondaries and momenta.
     552  Fill buffers in ::generateBangInSCM() and ::generateMomentumModules(),
     553  which are now non-const.  Reference buffers in ::collide().
     554
     555- G4CascadeFunctions::getOutgoingParticleTypes():  Make "kinds" a static
     556  variable (buffer), and return it by const-ref.
     557
     558- G4ElementaryParticleCollider:  Eliminate return-by-value std::vector<>
     559  on the functions listed below, by creating data buffers for particles,
     560  momenta, and particle types.  The functions become non-const and void:
     561  ::generateSCMfinalState(), ::generateMomModules()
     562  ::generateStrangeChannelPartTypes(), ::generateSCMpionAbsorption()
     563
     564  Also, in ::generateStrangeChannelPartTypes(), use a switch statement
     565  instead of the long cascade of if-else-else.
     566
     567- G4NucleiModel: Several member functions have different modifications:
     568
     569  ::initializeCascad(bullet,target) -- Replace return value with a passed-in
     570        (non-const reference) buffer to be filled.  The calling code can
     571        pass in a data member, local variable, or whatever.
     572
     573  ::generateParticleFate() -- Replace local "thePartners" variable with data
     574        member, filled below.  Move "outgouing_cparticles" to data member
     575        (fix the spelling!), and return by const-ref.
     576
     577  ::generateInteractionPartners() -- Eliminate return value; fill data
     578        member instead, to be used by ::generateParticleFate().
     579
     580- G4IntraNucleiCascader.cc:  Follow changes to initializeCascad() above.
     581
     582- G4NucleonSampler, G4PionSampler: ** DON'T KNOW WHAT TO DO HERE **
     583
     584- G4WatcherGun:  Return const-ref to list of watchers, instead of copy.
     585
     586Replace all uses of std::vector<>::resize(0) with ::clear().  The former
     587causes deallocation/reallocation/resizing cycles, while clear() just removes
     588content, preserving the allocated buffer.
     589
     590        include/G4CollisionOutput.hh
     591        src/G4ElementaryParticleCollider.cc
     592        src/G4NucleiModel.cc
     593        src/G4WatcherGun.cc
     594
     59507 April 2010 Dennis Wright (hadr-casc-V09-03-16)
     596-------------------------------------------------
     597- fix negative energy bug in G4BigBanger, and switch to using
     598  G4NucleiProperties::GetBindingEnergy
     599
     60007 April 2010 Michael Kelsey (hadr-casc-V09-03-15)
     601--------------------------------------------------
     602All changes below within "cascade/" subdirectory:
     603
     6041) Systematically replace pass-by-value function arguments with const-refs.
     605This is the first step in reducing unnecessary memory churn, to be followed
     606by replacing return-by-value std::vector<> with non-const argument buffers.
     607
     608        include/G4CascadeChannel.hh
     609        include/G4FinalStateSampler.hh
     610        include/G4InuclEvaporation.hh
     611        include/G4NuclWatcher.hh
     612        src/G4CascadeChannel.cc
     613        src/G4FinalStateSampler.cc
     614        src/G4InuclEvaporation.cc
     615        src/G4NuclWatcher.cc
     616
     6172) Fix constness on some operator== and operator!= definitions.
     618
     619        include/G4CascadeElasticInterface.hh
     620        include/G4CascadeInterface.hh
     621        include/G4ElasticCascadeInterface.hh
     622        include/G4IBertini.hh
     623        include/G4PreCompoundCascadeInterface.hh
     624
     62507 Apr 2010 Michael Kelsey (hadr-casc-V09-03-14)
     626------------------------------------------------
     627- G4Dineutron.hh, G4Diproton.hh, G4UnboundPN.hh: 
     628  Reset static "theInstance" pointer to zero in (now virtual) destructor.
     629
     630- G4Dineutron.cc, G4Diproton.cc, G4UnboundPN.cc:
     631  Implement constructor to do the G4Ions initialization, rather than in
     632  ::Definition().  Drop use of G4ParticleTable; just monitor static pointer.
     633  Set "ShortLived" flag in G4Ions initialization, to avoid interactions with
     634  ProcessManager.
     635
     636- G4InuclNuclei.cc:  In ::makeNuclearFragment(), set "ShortLived" flag for
     637  G4Ions, to avoid interactions with ProcessManager.
     638
     63926 Mar 2010 Dennis Wright (hadr-casc-V09-03-13)
     640-----------------------------------------------
     641- G4EquilibriumEvaporator.cc: remove line #include "G4types.hh"
     642  (file doesn't exist)
     643
     64420 Mar 2010 Michael Kelsey (hadr-casc-V09-03-12)
     645------------------------------------------------
     646All changes below within "cascade/" subdirectory:
     647
     648- G4EquilibriumEvaporator.cc:  Move subtraction of Q1[i] outside new
     649  GetBindingEnergy() call.
     650
     651- G4InuclNuclei.cc::makeNuclearFragment():  Add message warning users about
     652  non-physical creation.  Use new GetBindingEnergy() function here as well
     653  (V09-03-05 didn't have this function, so wasn't included in migration).
     654
     65519 Mar 2010 Michael Kelsey (hadr-casc-V09-03-11)
     656------------------------------------------------
     657All changes below within "cascade/" subdirectory:
     658
     659- G4InuclSpecialFunctions:  Two new functions:
     660
     661::generateWithRandomAngles() to encapsulate random-direction generation.
     662  This function and existing generateWithFixedTheta() take optional mass
     663  argument to produce proper four-vector.
     664
     665  Replace duplicated random angle code with new function above, and use new
     666  optional mass argument where available:
     667
     668        G4BigBanger.cc
     669        G4ElementaryParticleCollider.cc
     670        G4EquilibriumEvaporator.cc
     671        G4Fissioner.cc
     672        G4NonEquilibriumEvaporator.cc
     673        G4NucleiModel.cc
     674
     675::G4cbrt():  Define cube-root in terms of log and exp, rather than pow().
     676  Note that "cbrt()" can't be used, as it conflicts with <math.h> on Linux.
     677
     678  Eliminate unnecessary uses of std::pow() with fixed arguments.  For
     679  example, "pow(x,3)" -> "x*x*x", "pow(x,1/3)" -> G4cbrt(x):
     680
     681        G4BertiniRegionModel.cc
     682        G4EquilibriumEvaporator.cc
     683        G4EvaporationInuclCollider.cc
     684        G4Fissioner.cc
     685        G4IntraNucleiCascader.cc
     686        G4InuclCollider.cc
     687        G4NonEquilibriumEvaporator.cc
     688        G4NucleiModel.cc
     689        G4PreCompoundInuclCollider.cc
     690        G4RegionModel.cc
     691        bindingEnergyAsymptotic.cc
     692        bindingEnergyKummel.cc
     693
     694  WARNING!  In G4IntraNucleiCascader.cc, the Coulomb barrier was calculated
     695  using "std::pow(A, 0.333)", rather than the "exact" 1./3.  This leads to
     696  per-mil differences in the value, and occasional differences in wheter an
     697  outgoing particle tunnels through.  The new code is exact to double
     698  precision, and therefore fixes a bug.
     699
     700- Move "using" directive from all .hh files to corresponding .cc, along with
     701  some unnecessary #includes:
     702
     703        G4BigBanger.hh, .cc
     704        G4ElementaryParticleCollider.hh, .cc
     705        G4EquilibriumEvaporator.hh, .cc
     706        G4EvaporationInuclCollider.hh, .cc
     707        G4Fissioner.hh, .cc
     708        G4IntraNucleiCascader.hh, .cc
     709        G4InuclCollider.hh
     710        G4InuclNuclei.hh
     711        G4NonEquilibriumEvaporator.hh, .cc
     712        G4NucleiModel.hh, .cc
     713        G4PreCompoundInuclCollider.hh, .cc
     714
     715- G4NuclWatcher.hh and .cc (new):  Move implementation code from .hh to .cc.
     716
     71718 March 2010 Michael Kelsey (hadr-casc-V09-03-10)
     718--------------------------------------------------
     719All changes below within "cascade/" subdirectory:
     720
     721Missed one bug in repairs below, found when testing 4 GeV pi -> Pb.
     722
     723- G4Fissioner.cc:  Replace incorrect G4LorentzVector ctor arguments
     724  (G4ThreeVector,m) with call to G4LV::setVectM().
     725
     72617 March 2010 Dennis Wright (hadr-casc-V09-03-09)
     727-------------------------------------------------
     728Fix warning in G4InuclNuclei.cc: G4Ions:G4Ions was being called with
     729a double (a) in its 13th argument, when an integer is required.  Use
     730G4lrint to convert.
     731
     73216 March 2010 Michael Kelsey (hadr-casc-V09-03-08)
     733--------------------------------------------------
     734All changes below within "cascade/" subdirectory:
     735
     736Fix bugs introduced during migration from G4CascadeMomentum to
     737G4LorentzVector (see hadr-casc-V09-03-03).  With these bug fixes, 2000
     738events generated with "ppi4GeV" test executable are equivalent to production
     739output (GEANT 4.9.3), allowing for differences in hardwired nucleon masses.
     740When compared with hadr-casc-V09-03-02 (which uses G4ParticleDefinition for
     741all the particle masses) the 2000-event results are identical within
     742floating point precision.
     743
     744- G4BigBanger.cc:  Line 72, fix unit conversion bug, GeV/MeV vs. MeV/GeV.
     745  Replace incorrectly introduced cross-product with original vector
     746  manipulation, written with G4LorentzVector accessors.
     747
     748- G4CollisionOutput::selectPairToTune(): Test on "i3>0" not appropriate with
     749  G4LorentzVector indexing.  Replace with failure-test on "i3<0".  Also
     750  simplify final if-cascade for readability.
     751
     752- G4EquilibriumEvaporator.cc:  Replace incorrect G4LorentzVector ctor
     753  arguments (px,py,pz,m) with call to G4LV::setVectM().
     754
     755- G4IntraNuclearCascader.cc:  Replace leftover momentum_out[0] with .e().
     756
     757- G4InuclNuclei.cc,hh:  Add new function ::makeNuclearFragment(a,z,exc),
     758  which "manually" construct a G4Ions object for cases where A/Z is not a
     759  valid stable or unstable nucleus.  These unphysical objects are passed
     760  back from G4IntraNuclearCascader.cc and immediately passed to G4BigBanger
     761  for conversion to nucleons.  A future change should move this action into
     762  G4INCascader and eliminate the need for unphysical nuclei.
     763
     764- G4LorentzConvertor::toTheTargetRestFrame():  Remove local declaration of
     765  scm_momentum, restoring access to data member with that name.
     766
     767- G4NucleiModel::generateQuasiDeutron(): Undo consolidation of dmom with
     768  local variables for each of the nucleon momenta.  Stack corruption led to
     769  differences in unbound p-n state relative to pp and nn states.
     770
     771Minor updates:  Changed all the "verboseLevel()" initializers to (0), via a
     772shell script.  This allows making the code uniformly verbose or quiet.
     773
     774        include/G4NucleiModel.hh
     775        src/G4Analyser.cc
     776        src/G4CollisionOutput.cc
     777        src/G4ElementaryParticleCollider.cc
     778        src/G4FissionStore.cc
     779        src/G4Fissioner.cc
     780        src/G4IntraNucleiCascader.cc
     781        src/G4NonEquilibriumEvaporator.cc
     782        src/G4NucleiModel.cc
     783        src/G4WatcherGun.cc
     784
     78516 March 2010 Michael Kelsey (hadr-casc-V09-03-DO-NOT-USE)
     786--------------------------------------------------
     787All changes below within "cascade/" subdirectory:
     788
     789Restore version hadr-casc-V09-03-05 to HEAD of CVS in order to apply bug
     790fixes and re-deploy migration from G4CascadeMomentum to G4LorentzVector.
     791This reversion is tagged as a checkpoint only, and should not be used for
     792testing or running (since it restores the known bugs in V09-03-03).
     793
     794The update to G4InteractionCase.hh by Gabriele Cosmo in hadr-casc-V09-03-07
     795is not touched by this reversion!
     796
     797The following CVS commands were used to perform the reversion:
     798
     799        cvs update -j1.13 -j1.12 cascade/include/G4CascadParticle.hh
     800        cvs update -j1.4 -j1.3 cascade/include/G4CascadeMomentum.hh
     801        cvs update -j1.15 -j1.14 cascade/include/G4CollisionOutput.hh
     802        cvs update -j1.23 -j1.22 cascade/include/G4ElementaryParticleCollider.hh
     803        cvs update -j1.9 -j1.8 cascade/include/G4InuclCollider.hh
     804        cvs update -j1.19 -j1.18 cascade/include/G4InuclElementaryParticle.hh
     805        cvs update -j1.12 -j1.11 cascade/include/G4InuclNuclei.hh
     806        cvs update -j1.16 -j1.15 cascade/include/G4InuclParticle.hh
     807        cvs update -j1.13 -j1.12 cascade/include/G4InuclSpecialFunctions.hh
     808        cvs update -j1.13 -j1.12 cascade/include/G4LorentzConvertor.hh
     809        cvs update -j1.4 -j1.3 cascade/include/G4ParticleLargerBeta.hh
     810        cvs update -j1.9 -j1.8 cascade/include/G4ParticleLargerEkin.hh
     811        cvs update -j1.20 -j1.19 cascade/src/G4BigBanger.cc
     812        cvs update -j1.13 -j1.12 cascade/src/G4CascadParticle.cc
     813        cvs update -j1.6 -j1.5 cascade/src/G4CascadeElasticInterface.cc
     814        cvs update -j1.68 -j1.67 cascade/src/G4CascadeInterface.cc
     815        cvs update -j1.18 -j1.17 cascade/src/G4CollisionOutput.cc
     816        cvs update -j1.7 -j1.6 cascade/src/G4ElasticCascadeInterface.cc
     817        cvs update -j1.6 -j1.5 cascade/src/G4EvaporationInuclCollider.cc
     818        cvs update -j1.5 -j1.4 cascade/src/G4IBertini.cc
     819        cvs update -j1.3 -j1.2 cascade/src/G4InuclElementaryParticle.cc
     820        cvs update -j1.10 -j1.9 cascade/src/G4InuclEvaporation.cc
     821        cvs update -j1.3 -j1.2 cascade/src/G4InuclNuclei.cc
     822        cvs update -j1.4 -j1.3 cascade/src/G4InuclParticle.cc
     823        cvs update -j1.17 -j1.16 cascade/src/G4InuclSpecialFunctions.cc
     824        cvs update -j1.19 -j1.18 cascade/src/G4LorentzConvertor.cc
     825        cvs update -j1.5 -j1.4 cascade/src/G4PreCompoundCascadeInterface.cc
     826        cvs update -j1.4 -j1.3 cascade/src/G4PreCompoundInuclCollider.cc
     827
     828Intermediate versions below had bindingEnergy changes from -05 re-applied
     829
     830        cvs update -j1.23 -j1.21 cascade/src/G4EquilibriumEvaporator.cc
     831        cvs update -j1.22 -j1.20 cascade/src/G4Fissioner.cc
     832        cvs update -j1.29 -j1.27 cascade/src/G4IntraNucleiCascader.cc
     833        cvs update -j1.24 -j1.22 cascade/src/G4InuclCollider.cc
     834        cvs update -j1.23 -j1.21 cascade/src/G4NonEquilibriumEvaporator.cc
     835        cvs update -j1.38 -j1.36 cascade/src/G4NucleiModel.cc
     836
     837G4ElementaryParticleCollider::particleSCMmomentumFor2to2:  Restore new
     838parametrization of elastic scattering added by D.Write in hadr-casc-V09-03-06
     839
     840        cvs update -j1.47 -j1.45 cascade/src/G4ElementaryParticleCollider.cc
     841        + editing
     842
     84305 Mar 2010 Gabriele Cosmo (hadr-casc-V09-03-07)
     844------------------------------------------------
     845- Reinstated fix in G4InteractionCase.hh for initialisation in constructor to
     846  allow for porting on C++0x Standard.
     847
     84807 Feb 2010 Dennis Wright (hadr-casc-V09-03-06)
     849-----------------------------------------------
     850- back out changes from tags V09-03-00 to V00-03-05 by restoring HEAD
     851  to V09-02-11, and keeping the di-nucleon classes
     852- replace Bertini method bindingEnergy() with
     853  G4NucleiProperties::GetBindingEnergy() in classes
     854  G4IntraNuclearCascader, G4InuclCollider, G4NucleiModel, G4EquilibriumModel,
     855  G4NonEquilibriumModel, G4Fissioner.  Note that G4Fissioner still uses the
     856  Bertini method bindingEnergyAsymptotic.
     857
     858- G4ElementaryParticleCollider::particleSCMmomentumFor2to2
     859  replace original (incorrect) pp, pn, nn 2-body to 2-body scattering angular
     860  distributions with a new parameterization of elastic scattering data using
     861  the sum of two exponentials
     862
     86302 Feb 2010 Dennis Wright (hadr-casc-V09-03-05)
     864-----------------------------------------------
     865- replace all uses of bindingEnergy (local Bertini method) with the
     866  Geant4 standard G4NucleiProperties::GetBindingEnergy(A,Z)
     867  files modified:
     868    G4IntraNucleiCascader.cc
     869    G4InuclCollider.cc
     870    G4NucleiModel.cc
     871    G4EquilibriumEvaporator.cc
     872    G4NonEquilibriumEvaporator.cc
     873    G4Fissioner.cc
     874- note that G4Fissioner still uses Bertini method bindingEnergyAsymptotic
     875 
     87628 Jan 2010 Dennis Wright (hadr-casc-V09-03-04)
     877-----------------------------------------------
     878- fix unused variable warnings in G4InuclParticle.hh, .cc and
     879  G4NonEquilibriumEvaporator.cc
     880
     88126 Jan 2010 Michael Kelsey (hadr-casc-V09-03-03)
     882------------------------------------------------
     883All changes below within "cascade/" subdirectory:
     884
     885- G4ParticleLargerBeta.hh:  Fix to use of CVS "Name" tag; no code changes.
     886
     887- G4CascadParticle: Replace the position std::vector<> with G4ThreeVector.
     888
     889- G4NucleiModel: Replace all std::vector<> coordinates with G4ThreeVector,
     890  and use vector math for computations.
     891
     892Remove all use of G4CascadeMomentum (a simple container with a C-style
     893four-element array) with G4LorentzVector.  This is a fairly invasive change,
     894since G4CascMom was used for all of the three- and four-vector operations
     895throughout the Bertini code:
     896
     897        include/G4CascadParticle.hh
     898        include/G4CollisionOutput.hh
     899        include/G4ElementaryParticleCollider.hh
     900        include/G4InuclCollider.hh
     901        include/G4InuclElementaryParticle.hh
     902        include/G4InuclNuclei.hh
     903        include/G4InuclParticle.hh
     904        include/G4InuclSpecialFunctions.hh
     905        include/G4LorentzConvertor.hh
     906
     907        src/G4BigBanger.cc
     908        src/G4CascadParticle.cc
     909        src/G4CascadeElasticInterface.cc
     910        src/G4CascadeInterface.cc
     911        src/G4CollisionOutput.cc
     912        src/G4ElasticCascadeInterface.cc
     913        src/G4ElementaryParticleCollider.cc
     914        src/G4EquilibriumEvaporator.cc
     915        src/G4EvaporationInuclCollider.cc
     916        src/G4Fissioner.cc
     917        src/G4IBertini.cc
     918        src/G4IntraNucleiCascader.cc
     919        src/G4InuclCollider.cc
     920        src/G4InuclElementaryParticle.cc
     921        src/G4InuclEvaporation.cc
     922        src/G4InuclNuclei.cc
     923        src/G4InuclParticle.cc
     924        src/G4InuclSpecialFunctions.cc
     925        src/G4LorentzConvertor.cc
     926        src/G4NonEquilibriumEvaporator.cc
     927        src/G4NucleiModel.cc
     928        src/G4PreCompoundCascadeInterface.cc
     929        src/G4PreCompoundInuclCollider.cc
     930
     931The new code is not yet entirely "correct," since Bertini also does a lot of
     932operations by way of three-momentum, imposing masses (and hence energy
     933conservation) separately, after the fact.
     934
     93520 Jan 2010 Gabriele Cosmo
     936--------------------------
     937- G4InteractionCase.hh:  Minor fix in initialisation in constructor to
     938  allow for porting on C++0x Standard.
     939
     94020 Jan 2010 Michael Kelsey (hadr-casc-V09-03-02)
     941------------------------------------------------
     942- G4LorentzConvertor.hh:  Fix scm_momentum data member to be G4ThreeVector
     943  (as used in previous versions) rather than G4LorentzVector.
     944
     945NOTE:  I have *retagged* cascade/include/G4LorentzConverter.hh and this
     946       History file, rather than creating a new tag, since these are private
     947       development only, not public releases.
     948
     94912 Jan 2010 Michael Kelsey (hadr-casc-V09-03-02)
     950------------------------------------------------
     951All changes below within "cascade/" subdirectory:
     952
     953- G4CascadeMomentum: Replace use of static G4LV variables within functions
     954  with mutable data member of object; this does introduce more memory
     955  thrashing, but the plan is to get rid of the whole thing anyway.  Improve
     956  implicit casting and add assignment from G4LV.
     957
     958- G4LorentzConverter:  Change function signatures to accept G4LV as input,
     959  using implicit cast to convert existing G4CascadeMomentum argument
     960  passing.  Use G4LV internally throughout, again using implicit cast to
     961  return G4CascMom values.  This substantially increases (temporarily!)
     962  memory thrashing.  Simplify ::rotate() functions to use G4LV and
     963  G4ThreeVec operations rather than array index gymnastics.  Move some
     964  function implementations out of .hh file into .cc.
     965
     966- G4ParticleLargerEkin.hh: Fix use of CVS "Name" tag.  No code changes.
     967
     96812 Jan 2010 Michael Kelsey (hadr-casc-V09-03-01)
     969------------------------------------------------
     970All changes below within "cascade/" subdirectory:
     971
     972- G4ParticleLargerBeta, G4ParticleLargerEkin: Add additional operator()
     973  which takes pointers (for future mods to reduce ctor/dtor cycling), and
     974  fix ordering bug in beta sorting.  Add debugging printout togged with
     975  preprocessor flag.
     976
     977- G4InuclParticle, G4InuclNuclei, G4InuclElementaryParticle:  Rewrite to
     978  carry G4DynamicParticle data member, and to instantiate particle
     979  properties via G4ParticleDefinition subclasses.  This is first stage in
     980  eventually eliminating the G4InuclParticle stuff entirely in favor of
     981  direct use of G4DynamicParticle for internal propagation.
     982
     983These changes have been testing using debugging output on the production
     984(4.9.3) code compared to the above changes.  |diff| shows mostly identical
     985results, with occasional ~1e-5 floating point differences.
     986
     98708 Jan 2010 Michael Kelsey (hadr-casc-V09-03-00)
     988------------------------------------------------
     989All changes below within "cascade/" subdirectory:
     990
     991- G4BertiniNuclearModel:  REMOVE this class from the HEAD, and hopefully all
     992  future tags.  It is redundant with the G4NuclearModel class, and is not
     993  used anywhere in the G4 distribtion; the latter is referenced in both
     994  regular G4 code and in examples.
     995
     996- G4Diproton, G4Dineutron, G4UnboundPN:  New G4ParticleDefinition
     997  subclasses, which implement the Bertini-specific dibaryon states.  These
     998  are not used anywhere as yet, but will be used in future modifications to
     999  the G4InuclParticle subclasses.
     1000
     1001- G4CascadeMomentum:  Add interface to create from and cast to
     1002  G4LorentzVector.  Will be used (in future) by G4InuclParticle modifications,
     1003  and provides a transition to eliminating this class entirely.
    161004
    1710051 Dec 2009 Dennis Wright (hadr-casc-V09-02-11)
Note: See TracChangeset for help on using the changeset viewer.