-------------------------------------------------------------------

     ==========================================================
     Geant4 - an Object-Oriented Toolkit for Physics Simulation
     ==========================================================

          History file for hadronic/models/de_excitation
          ----------------------------------------------

This file should be used to summarize modifications introduced in the 
code and to keep track of all tags.

     ---------------------------------------------------------------
     * Please list in reverse chronological order (last date on top)
     ---------------------------------------------------------------

15-April-2015 V.Ivanchenko   hadr-pre-V10-00-03
-------------------------------------------------
- G4PreCompoundTransition - extended protection against numerical 
    problem; use G4Log and G4Exp instead of G4Pow; cleanup sampling of
    number of charged excitons
- G4PreCompoundModel - cleanup

15-April-2015 V.Ivanchenko
-------------------------------------------------
- G4PreCompoundTransition - added protection against numerical problem
    due too high excitation energy; code cleanup

18-March-2015 V.Ivanchenko
-------------------------------------------------
- G4PreCompoundAlpha, G4PreCompoundDeuteron, G4PreCompoundHe3,
  G4PreCompoundModel, G4PreCompoundNeutron, G4PreCompoundProton,
  G4PreCompoundTransitions, G4PreCompoundTriton - fixed minor
    Coverity report, cleanup local constants, minor cleanup of the
    code, should not affect any result

07-July-2014 V.Ivanchenko+J.M.Juesada  hadr-pre-V10-00-02
---------------------------------------------------------
- G4PreCompoundIon - cleanup transition probability computation
- G4PreCompoundAlpha, G4PreCompoundHe3, G4PreCompoundTriton - fixed
    FactorialFactor method - correct denominator
- G4PreCompoundAlpha - fixed bug #1646 - integer overflow 

28-March-2014 - Gunter Folger (hadr-pre-V10-00-01)
-----------------------------------------------------
- G4PreCompoundModel: add DeExciteModelDescription()

10-March-2014 V.Ivanchenko  hadr-pre-V10-00-00
-------------------------------------------------
- G4VPreCompoundFragment use const pointer to G4ParticleDefinition
    inside GetReactionProduct()

23-October-2013 V.Ivanchenko  hadr-pre-V09-06-05
-------------------------------------------------
- G4PreCompoundModel, G4PreCompoundEmission, G4PreCompoundProton -
    use G4Log and G4Exp

30-April-2013 V.Ivanchenko  hadr-pre-V09-06-04
-------------------------------------------------
- G4HETCFragment - CLHEP::RandGamma substituted by G4RandGamma

24-April-2013 V.Ivanchenko  hadr-pre-V09-06-03
-------------------------------------------------
- G4GNASHTransitions - more accurate definition of static data
- G4PreCompoundModel - (J.M.Quesada) fixed logic of "soft-cutoff" option

21-March-2013 V.Ivanchenko  hadr-pre-V09-06-02
-------------------------------------------------
- G4LowEIonFragmentation - fixed Coverity warnings

18-February-2013 V.Ivanchenko  hadr-pre-V09-06-01
-------------------------------------------------
- G4PreCompoundParameters - make it as a simple class not singletone
- G4LowEIonFragmentation, G4GNASHTransitions minor cleanup - more accurate
    usage of integer variables

14-February-2013 V.Ivanchenko  hadr-pre-V09-06-00
-------------------------------------------------
- G4PreCompoundParameters - removed G4TreadLocal because data are not mutable
- G4LowEIonFragmentation - moved static members to be private 
- G4HETCFragment, G4GNASHTransitions use GetZ_asInt and GetA_asInt

27-September-2012 G.Cosmo  hadr-pre-V09-05-06
---------------------------------------------
- Explicitly use inclusion of headers for system of units and physical
  constants, in plan to remove implicit inclusion from globals.hh.

23-August-2012 V.Ivanchenko  hadr-pre-V09-05-05
-----------------------------------------------
- G4PreCompoundModel - do not use factory due to dependency problem

17-August-2012 V.Ivanchenko  hadr-pre-V09-05-04
-----------------------------------------------
- G4PreCompoundModel - register PRECO factory

06-July-2012 V.Ivanchenko  hadr-pre-V09-05-03
-----------------------------------------------
- Fixed shadowing

27-June-2012 V.Ivanchenko  hadr-pre-V09-05-02
-----------------------------------------------
- G4VPreCompoundFragment - move computation of Z13 after check of 
    consistency - fixed rare bug for abnormal fragments

24-April-2012 Gunter Folger  hadr-pre-V09-05-01
-----------------------------------------------
G4PreCompoundModel - add Description() method, actual description
    from phys. ref. manual, and improved by Jose Manuel
    
18-January 2012 V.Ivanchenko hadr-pre-V09-05-00
-----------------------------------------------
G4PreCompoundModel - added pointer to G4ExcitationHandler to the 
   constructor; added deletion of G4ExcitationHandler in the destructor 

31-October 2011 V.Ivanchenko hadr-pre-V09-04-06
20-October 2011 V.Ivanchenko hadr-pre-V09-04-05
----------------------------------------------
G4PreCompoundModel - set low limit for excitation 1 MeV;
      set maxZ = 3 and maxA = 5 allowing pre-compound emission 
      for light fragments (old formulation of the model) 

30-August-2011 M. Kelsey    hadr-pre-V09-04-04
----------------------------------------------
G4PreCompoundTransitions.cc:  Return zero probability if no excitons.

08-July 2011 V.Ivanchenko   hadr-pre-V09-04-03
----------------------------------------------
G4PreCompoundModel - restore soft-cutoff option and use "go_ahead"

16-June-2011 D.H. Wright    hadr-pre-V09-04-02
----------------------------------------------
G4PrecompoundModel.cc - fix unused variable warning for "go_ahead"

06-June 2011 V.Ivanchenko   hadr-pre-V09-04-01
----------------------------------------------
G4PreCompoundModel - add limit on nucleon number maxZ=9, maxA=17,
  low fragments with lower Z and A directly call equilibrium emission
G4VPreCompoundFragment - fixed Coverty warning

20-May 2011 V.Ivanchenko   hadr-pre-V09-04-00
---------------------------------------------
G4PreCompoundProton, G4PreCompoundNeutron - fixed compillation
  warnings for gcc-4.6.0

23-November 2010 V.Ivanchenko   hadr-pre-V09-03-17
--------------------------------------------------
G4PreCompoundFragment, G4PreCompoundEmission, G4PreCompoundModel -
  return back ref-09 computations

18-November 2010 V.Ivanchenko   hadr-pre-V09-03-16
--------------------------------------------------
G4PreCompoundModel - change number of excitons to be as in 9.3
  affects tail of neutron stectrum for low-energy projectile

17-November 2010 V.Ivanchenko   hadr-pre-V09-03-15
--------------------------------------------------
G4PreCompoundProton, G4PreCompoundNeutron, G4PreCompoundHe3 - fixed
  usage of integer Z and A

02-November 2010 V.Ivanchenko   hadr-pre-V09-03-14
--------------------------------------------------
- Fixed Coverity warnings - pedantic initialisation in constructors

28-October 2010 V.Ivanchenko   hadr-pre-V09-03-13
-------------------------------------------------
G4PreCompoundModel - use more safe constructor of G4DynamicParticle
G4LowEIonFragmentation - complete transition to integar Z and A, 
                         use of updated methods for G4Fragment

20-October 2010 V.Ivanchenko   hadr-pre-V09-03-12
-------------------------------------------------
G4PreCompoundTransitions - fixed compillation warning introduced in previous tag

11-October 2010 V.Ivanchenko   hadr-pre-V09-03-11
-------------------------------------------------
G4PreCompoundTransitions - JMQ fixed bug in the PerformTransition method
                       (use number of particles instead of number of excitons)
G4PreCompoundModel - disabled upper limit on excitation energy

8-September 2010 G.Folger      hadr-pre-V09-03-10
---------------------------------------------------
G4LowEIonFragmentation: use integer A and Z

1-September 2010 V.Ivanchenko  hadr-pre-V09-03-09
---------------------------------------------------
G4PreCompoundEmission - removed SetUp inline method and move its functionality

31-August 2010 V.Ivanchenko    hadr-pre-V09-03-08
---------------------------------------------------
G4PreCompoundTransition - fixed typo introduced in previous tag

28-August 2010 V.Ivanchenko    hadr-pre-V09-03-07
---------------------------------------------------
General cleaup of all classes: constructors and destructors moved to the 
                               source, integer Z and A, G4Pow class
                               is used to speedup computations
G4PreCompoundModel - Emission and Transition classes become members created
                     at construction and not at run time,
                     initialisation is performed at construction or when options
                     are changed and not in run time, G4Fragment is not const,
                     it is modified during process of emission of particles

11-June 2010 V.Ivanchenko  hadr-pre-V09-03-06
---------------------------------------------------
G4LowEIonFragmentation - cleanup comments
G4PreCompoundModel - constructor and destructor are moved to the source

01-June 2010 V.Ivanchenko  hadr-pre-V09-03-05
---------------------------------------------------
G4LowEIonFragmentation - (J.M.Quesada) fixed exciton state
                         constructor and destructor moved to source

09-April 2010 V.Ivanchenko  hadr-pre-V09-03-04
---------------------------------------------------
G4PreCompoundProton, G4PreCompoundDeuteron, G4PreCompoundTriton,
G4PreCompoundHe3, G4PreCompoundAlpha - (JMQ) return back to published
               varian of OPT3 (Kalbach) parameterization of inverse 
	       cross section 

01-March 2010 V.Ivanchenko  hadr-pre-V09-03-03
---------------------------------------------------
G4VPreCompoundIon, G4VPreCompoundNucleon - removed dummy classes

25-February 2010 V.Ivanchenko  hadr-pre-V09-03-02
---------------------------------------------------
G4PreCompoundEmission - more protections for numerical computations are added 

17-February  2010 V.Ivanchenko  hadr-pre-V09-03-01
---------------------------------------------------
G4PreCompoundEmission - (JMQ) return back value of Ef as it was in 9.3 

19-January  2010 V.Ivanchenko   hadr-pre-V09-03-00
---------------------------------------------------
G4PreCompoundEmission - (JMQ) added protection against unphysical value of 
                              parameter "an" when exitation energy is huge
                              to avoid numerical problem
                      -       simplified algorithm of sampling

21-November 2009 V.Ivanchenko   hadr-pre-V09-02-07
---------------------------------------------------
G4PreCompoundTransitions - return back transition probability

19-November 2009 V.Ivanchenko   hadr-pre-V09-02-06
---------------------------------------------------
G4PreCompoundModel       - (JMQ) CEM transition probabilities are set 
                                 as a default 
G4PreCompoundTransitions - (JMQ) CEM transition probabilities have been
                                 renormalized (transitions with Delta N=+2
                                 are increased by factor 5)

12-November 2009 G.Cosmo        hadr-pre-V09-02-05
---------------------------------------------------
G4PreCompoundEmission - fixed compilation error on Windows.

12-November 2009 G.Folger       hadr-pre-V09-02-04
---------------------------------------------------
G4PrecompoundEmission - modifiy AngularDistribution() to avoid floating point
                        exceptions.
		      - remove calls to log in rho() replaced by use of new
		        logfactorial()
				
13-February 2009 V.Ivanchenko   hadr-pre-V09-02-03
---------------------------------------------------
G4PreCompoundXXX - changed the shape of probabilities (return back to 9.2)  
                   for d, t, He3, alpha (JMQ)

12-February 2009 V.Ivanchenko   hadr-pre-V09-02-02
---------------------------------------------------
G4PreCompoundXXX - changed the shape of probabilities 
                   for d, t, He3, alpha near the Coulomb barrier (JMQ)

11-February 2009 V.Ivanchenko   hadr-pre-V09-02-01
---------------------------------------------------
G4PreCompoundXXX - set default Opt3 back, add decrease Coulomb barrier
                   for d, t, a, he3 (JMQ)

10-February 2009 V.Ivanchenko   hadr-pre-V09-02-00
---------------------------------------------------
Some clean up of comments
G4PreCompoundIon - fixed probability of light ion emmision (JMQ)
G4PreCompoundXXX - by default Opt1 is used for d, t, a, he3, 
                   Opt3 for n, p (JMQ)

09-December 2008 A.Howard   hadr-pre-V09-01-15
---------------------------------------------------
Added protection for close to zero excitation energy in 
G4PreCompoundModel.cc (according to JMQ, MAC) to not try to de-excite.

09-December 2008 A.Howard   hadr-pre-V09-01-14
---------------------------------------------------
Added protection for close to zero excitation energy in 
G4PreCompoundTransitions.cc (returns 0.0), prevents FPE later on.

27-November 2008 A.Howard   hadr-pre-V09-01-13
---------------------------------------------------
Added data member initialisation to G4VPreCompoundTransitions.hh

19-November 2008 A.Howard   hadr-pre-V09-01-12
---------------------------------------------------
JMQ fix to G4PreCompoundNeutron.cc for Zirconium (if (nu < 0.)nu=-nu).

30-September 2008 A.Howard   hadr-pre-V09-01-11
---------------------------------------------------
Trivial protection against negative probabilities for incident protons on
targets with A < Carbon.

22-September 2008 A.Howard   hadr-pre-V09-01-10
---------------------------------------------------
JMQ's latest developments - which are an extension of hadr-pre-V09-01-08 with
cross-section options (equivalent to the de-excitation modifications) and other
options (SICB, Never Go Back,...).  In addition Gunter's fix to the factorials
is included from hadr-pre-V09-01-09.
Added new files: G4PreCompoundAlpha.cc G4PreCompoundDeuteron.cc
G4PreCompoundHe3.cc G4PreCompoundNeutron.cc G4PreCompoundProton.cc
G4PreCompoundTriton.cc (Classes previously existed.  Now they have more 
involved cross-section calculations).

19-September 2008 A.Howard   hadr-pre-V09-01-09
---------------------------------------------------
Including Gunter's fix (see 11-August below) on top of ref-07 
(hadr-pre-V09-00-04), i.e. without JMQ's developments.

11-August 2008 G.Folger      
-----------------------------------------------
Rewrite algorithm in G4PreCompoundEmission::rho() to avoid frequent 
floating point overflow when using Precompund in combination 
with Binary Cascade. 


24 July 2008 J. M. Quesada   hadr-pre-V09-01-08
---------------------------------------------------
Minor fixes and Coulomb barrier just for Wellisch's proton cross section 
(OPT=2) 


23 July 2008 V.Ivanchenko    hadr-pre-V09-01-07
---------------------------------------------------
Fixed mistake in tagging

23 July 2008 V.Ivanchenko    hadr-pre-V09-01-06
---------------------------------------------------
Return back Coulomb barrier initialisation (J.M.Quesada)

27 June 2008 V.Ivanchenko    hadr-pre-V09-01-05
---------------------------------------------------
Fixed G4PreCompoundNucleon and G4PreCompoundIon for
Coulomb barrier, added protections for zero cross sections,
OPT=2 is used (J.M.Quesada)

05 June 2008 J. M. Quesada   hadr-pre-V09-01-04
---------------------------------------------------
Bug fixed in OPT=1 (Chatterjee) charged particle cross sections.
Unphysical values at very low emission energies have been corrected (set
to 0); OPT=1 ( OPT=2 in previous tag)


15-May 2008 J. M.Quesada     hadr-pre-V09-01-03
-----------------------------------------------
The retrieval of transition probabilities in G4PreCompoundModel.cc 
(for protection against unphysically crossing the landa_+=landa_- condition) 
was misplaced.  Now it has been placed inside the preequilibrium transitions 
loop. 

8-May 2008 J. M.Quesada     hadr-pre-V09-01-02
-----------------------------------------------
Protection against non physical situation has been set: Equilibrium exciton number 
Neq (when reached, equilibrium regime starts) should correspond to equal transition 
probabilities "back" and "forth". Nevertheless,  for heavy target (Neq is big even 
for low incident energies) after first emission this condition (equal trans. prob.) 
is reached far before reaching corresponding Neq of the residual. Unless this "jump" 
to equilibrium is forced in this case, preequilibrium will be 
spuriously prolonged (as a side effect, with huge CPU consumption).  
G4PreCompoundModel and G4PreCompoundTransitions classes have been modified.


1-May 2008 J. M.Quesada     hadr-pre-V09-01-01
-----------------------------------------------
- First trial with cvs. 00 skipped by mistake. 
New inverse cross sections:
        OPT=1 Chetterjee's parameterization to reaction cross sections from optical potential global fittings.
        OPT=2 as OPT=1 but for protons the Wellisch's parameterization for protons is used  (DEFAULT)
        OPT=3 Kalbach's modifications of Chatterjee's parameterization of cross sections
        OPT=4 as OPT=3 but for protons the Wellisch's parameterization for protons is used

Coulomb barrier has been suppressed as it enters through inverse cross sections. Also methods related to former Dostrovski's cross sections (alpha , beta and C parameters) have been suppressed. In all particle header files: 
G4PreCompoundNucleon.hh ,G4PreCompoundNeutron.hh,G4PreCompoundProton.hh, G4PreCompoundIon.hh, G4PreCompoundDeuteron.hh, G4PreCompoundTriton.hh ,G4PreCompoundHe3.hh , G4PreCompoundAlpha.hh


Soft cutoff transition from equilibrium to equilibrium has been suppressed (unphysical and not necessary anymore).In G4PreCompoundModel. 

New transition probabilities :
        OPT=1  Gudima's formulae
        OPT=2  Machner parameterization of matrix elements for transitions (DEFAULT)
  
Level density is set to A/10 (Gudima's prescription). 

Several bugs fixed (average xs in nucleon-nucleon xs in G4PreCompundTransitions.cc and  emission probability formula in G4PreCompoundIon.cc ) .  

25-October 2007 A.Howard     hadr-pre-V09-00-04
-----------------------------------------------
- Removed compilation warning on unused parameter in G4PreCompoundIon.cc


11-October 2007 A.Howard     hadr-pre-V09-00-03
-----------------------------------------------
- Corrected for integer arithmetic bug in G4PreCompoundModel.cc 
  (ratio of charged to neutral excitons)


01-October 2007 A.Howard     hadr-pre-V09-00-02
-----------------------------------------------
- Protected Rj (Q_beta) factor against divide by zeroes (should never happen?)
  The following files have been modified:
  G4PreCompoundAlpha.hh, G4PreCompoundDeuteron.hh, G4PreCompoundHe3.hh, 
  G4PreCompoundTriton.hh, G4PreCompoundNeutron.hh, G4PreCompoundProton.hh
  

23-August 2007 A.Howard     hadr-pre-V09-00-01
----------------------------------------------
- Development tag incorporating further suggestions/corrections from 
  Jose-Manuel Quesada particularly with respect to light ion production. 
  The following files have been modified:
  G4PreCompoundIon.cc, G4PreCompoundDeuteron.hh, G4PreCompoundHe3.hh,
  G4PreCompoundTriton.hh, G4PreCompoundAlpha.hh, G4PreCompoundIon.hh,
  G4VPreCompoundIon.hh (unused?)


23-July 2007 A.Howard       hadr-pre-V09-00-00
----------------------------------------------
- Development tag incorporating the suggestions/corrections of Jose-Manuel
  Quesada.  These should reflect the literature and units expected for the
  exciton model.  The following files have been modified:
  G4PreCompoundNucleon.hh, G4VPreCompoundNucleon.hh, G4PreCompoundAlpha.hh,
  G4PreCompoundHe3.hh, G4PreCompoundDeuteron.hh, G4PreCompoundNeutron.hh,
  G4PreCompoundProton.hh, G4PreCompoundTriton.hh
  G4VPreCompoundIon.cc, G4PreCompoundIon.cc, G4PreCompoundModel.cc,
  G4VPreCompoundFragment.cc, G4PreCompoundTransitions.cc,
  G4PreCompoundNucleon.cc, G4VPreCompoundNucleon.cc
  The main changes are:
  - introducing an Rj factor into the probability calculation, 
  - correcting the units for the Pauli Blocking Factor - missing a g factor,
  - decreasing the number of charged particles if the number excitons is
    decreased (previously this number was only increased with increasing
    excitons).


04-May 2007 G.Folger       hadr-pre-V08-02-00
----------------------------------------------
-  G4PreCompoundTransitions.cc: Protect against divide by 0

19 Aug 2006 Dennis Wright (hadr-pre-V08-01-00)
----------------------------------------------
- exciton_model
   G4VPreCompoundFragment.hh, .icc : remove meaningless const from 
   methods GetA, GetZ, GetRestA, GetRestZ, GetCoulombBarrier, GetBindingEnergy,
   GetMaximalKineticEnergy, GetEnergyThreshold, GetEmissionProbability, 
   GetNuclearMass, GetRestNuclearMass and GetReducedMass

