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

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

           History file for Low Energy Parameterized Models
           ------------------------------------------------

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)
     ---------------------------------------------------------------

19 November 2010 - V.Ivanchenko (hadr-cohe-V09-03-07)
------------------------------------------------------
- G4WHadronElasticProcess, G4VHadronElastic, G4HadronElastic,
  G4ChargeExchange - fixed bug introduced in the previous tag - 
    use now GetA_asInt() method instead of GetN_asInt()

18 November 2010 - V.Ivanchenko (hadr-cohe-V09-03-06)
------------------------------------------------------
- G4NuclNuclDiffuseElastic - new model
- Use integer Z and A in other classes

28 September 2010 - G.Cosmo (hadr-cohe-V09-03-05)
-------------------------------------------------
- Fixed compilation error on Windows/VC++ for G4NuclNuclDiffuseElastic:
  use of 'double' argument for std::sqrt() function.

24 September 2010 - V.Ivanchenko (hadr-cohe-V09-03-04)
------------------------------------------------------
- G4CHIPSElasticXS - limit applicability by 19 MeV

23 September 2010 - V.Ivanchenko (hadr-cohe-V09-03-03)
------------------------------------------------------
- G4CHIPSElasticXS - new class extracted from G4UHadronElasticProcess
                     is created in order to follwo hadronic design

15 June 2010 - V.Ivanchenko (hadr-cohe-V09-03-02)
------------------------------------------------------
- G4UHadronElasticProcess - fixed CHIPS warning for Cu, due to wrong
  isotope sected (#bug report of ALICE)

26 January 2010 - M.Kosov (hadr-cohe-V09-03-01)
------------------------------------------------------
- Bug fix: not initialized G4QNeutronElasticCrossSection in QGSP_BERT. Tested
  on the simplified calorimeter. Does not crash after 21 events (pi 200 GeV, Cu-LAr)

13 January 2010 - M.Kosov (hadr-cohe-V09-03-00)
------------------------------------------------------
- Use G4Q(Proton/Neutron)ElasticCrossSection instead of G4QElasticCrossSection

19 November 2009 - M.Kosov (hadr-cohe-V09-02-03)
------------------------------------------------------
- Correct dependencies on CHIPS

08 October 2009 - V.Ivanchenko (hadr-cohe-V09-02-02)
------------------------------------------------------
- G4CHIPSElastic, G4HadronElastic - use static pointer to G4VQCrossSection
                                    in order to gurantee unique version
                                    of CHIPS cross section class

05 October 2009 - V.Ivanchenko (hadr-cohe-V09-02-01)
------------------------------------------------------
- Make a correct tag format

22 September 2009 - V.Ivanchenko (hadr-cohe-V09-01-09)
------------------------------------------------------
  Migrated to the hadronic model design of elastic scattering
  G4WHadronElasticProcess - new elastic process
  G4VHadronElastic - base class for elastic models with default
                     GHEISHA model
  G4ElasticHadrNucleusHE - capable to work with old and new interfaces
  G4CHIPSElastic - model interface to CHIPS parameterization
  G4HadronElastic - remove hand made NaN finder and G4cout at destructor 

02 March 2009 - D. Wright for V.Grichine (hadr-cohe-V09-02-00)
--------------------------------------------------------------
  Model precise sampling and 'on the fly' table preparation in 
  G4DiffuseElastic.hh, .cc

27 November 2008 - V.Ivanchenko (hadr-cohe-V09-01-08)
----------------------------------------------------
  G4ChargeExchangeProcess - added high and low energy protections into 
   cross section

20 November 2008 - V.Ivanchenko (hadr-cohe-V09-01-07)
----------------------------------------------------
  G4ChargeExchangeProcess and G4ChargeExchange model prepaed to be used
    in Physics Lists; energy threshold is set to 1.0 MeV

22 August 2008 -  V.Ivanchenko (hadr-cohe-V09-01-06)
----------------------------------------------------
  - set process sub-types according to enumerator for G4UHadronElasticProcess 
    and for G4ChargeExchangeProcess

05 August 2008 -  V.Ivanchenko (hadr-cohe-V09-01-05)
----------------------------------------------------
  G4HadronElastic - added protection inside LElastic model against rare 
                    unphysical values of sampled t

08 Jul 2008 -  D.H. Wright (hadr-cohe-V09-01-04)
------------------------------------------------
  - set process sub-type to 11 for G4UHadronElasticProcess and 16 for
    G4ChargeExchangeProcess

19 May 2008 -  V.Ivanchenko (hadr-cohe-V09-01-03)
------------------------------------------------
  G4HadronElastic - added counts of abnornal sampling results and cout
                    at the destructor of the class
  G4UHadronElasticProcess and G4ChargeExchangeProcess - added call to 
                    BuildPhysicsTable of the base class G4HadronicProcess

10 Apr 2008 -  V.Ivanchenko (hadr-cohe-V09-01-02)
------------------------------------------------
  G4HadronElastic - added extra protection against precision lost
                    when projectile almostly lost kinetic energy;
                    set lowestEnergyLimit=1.e-6*eV (was 0.0)

29 Jan 2008 -  V.Ivanchenko (hadr-cohe-V09-01-01)
-------------------------------------------------
  G4UHadronElasticProcess - call to G4QElasticCrossSection with option 
                            "false", so parameters for sampling of
                            scattering are precalculated
  G4HadronElastic - added extra protection - if sampled t out of the 
                    physics range then no scattering

16 Jan 2008 -  V.Ivanchenko (hadr-cohe-V09-01-00)
------------------------------------------------
  G4DiffuseElastic       - remove dependence on other elastic models
  G4ElasticHadrNucleusHE - fixed non-reproducibility, removed commented
                           part of old code; add more formatting 
  G4HadronElastic - return back threshold to G4ElasticHadrNucleusHE 
                    model 1 GeV

10 Dec 2007 -  V.Ivanchenko (hadr-cohe-V09-00-07)
------------------------------------------------
  G4HadronElastic - set threshold to G4ElasticHadrNucleusHE model
                    DBL_MAX

15 Nov 2007 -  V.Ivanchenko (hadr-cohe-V09-00-06)
------------------------------------------------
  G4UHadronElasticProcess - introduced "ifdef VERBOSE" for verbosity 
                            checks inside methods called at each step

14 Nov 2007 -  V.Ivanchenko (hadr-cohe-V09-00-04)
------------------------------------------------
  G4DiffuseElastic       - add control on verbosity at initialisation

13 Nov 2007 -  V.Ivanchenko (hadr-cohe-V09-00-03)
------------------------------------------------
  G4ElasticHadrNucleusHE - (N.Starkov) updated:
                         - the difference in scattering off protons and 
                           neutrons is included;
                         - optized computation of the distribution function
                           (important for heavy targets);
                         - fixed model for scattering off hydrogen;
                         - tunned model parameters for better description
                           of total and elastic cross sections 

06 Nov 2007 -  V.Ivanchenko (hadr-cohe-V09-00-02)
------------------------------------------------
  G4DiffuseElastic       - (V.Grichine) initialisation of the model for 
                           each new target nucleus on-fly 

05 Nov 2007 -  V.Ivanchenko (hadr-cohe-V09-00-01)
------------------------------------------------

  G4DiffuseElastic       - (V.Grichine) initialisation of the model in 
                           constructor with particle definition for the 
                           vector of available elements; tuning
                           at high energies. 

17 Oct 2007 -  V.Ivanchenko (hadr-cohe-V09-00-00)
------------------------------------------------
  G4LEnp                 - removed erroneous code for identity 
	                   exchange of particles ( F.W. Jones)

  G4DiffuseElastic       - added Coulomb elastic scattering amplitude
                           using Wentzel model (V. Grichine)

14 June 2007 - V.Ivanchenko (hadr-cohe-V08-03-07)
------------------------------------------------
  G4UHadronElasticProcess - use "true" flag colling CHIPS to compute cross
                            section

14 June 2007 - V.Ivanchenko (hadr-cohe-V08-03-06)
-----------------------------------------------
  G4ElasticHadrNucleusHE - fixed compilation nuclear parameters for heavy 
                           nucleus
  G4DiffuseElastic       - new class

31 May 2007 - V.Ivanchenko (hadr-cohe-V08-03-05)
-----------------------------------------------
  G4ElasticHadrNucleusHE - fixed compilation problem at Windows
                           use only double values inside std::pow

31 May 2007 - V.Ivanchenko (hadr-cohe-V08-03-04)
-----------------------------------------------
  G4ElasticHadrNucleusHE - fixed compilation problem at SUN 
                           move static const out of switch 

25 May 2007 - D.H. Wright (hadr-cohe-V08-03-03)
-----------------------------------------------
  add model names to constructors in G4LEnp, G4LEpp, G4ChargeExchange.cc, 
    G4HadronElastic, and G4ElasticHadrNucleusHE

24 May 2007 - V.Ivanchenko (hadr-cohe-V08-03-02)
-----------------------------------------------
  G4ElasticHadrNucleusHE - optimised computation of tables
  G4HadronElastic - use HElastic only for mesons 

15 May 2007 - V.Ivanchenko (hadr-cohe-V08-03-01)
-----------------------------------------------
  G4HadronElastic - use QElasticCrossSection for p, n incident for any energy
                    and any target; use HElastic for the rest 

15 May 2007 - V.Ivanchenko (hadr-cohe-V08-03-00)
-----------------------------------------------
  G4ElasticHadrNucleusHE - general cleanup and redesign of private methods

5 May 2007 - V.Ivanchenko (hadr-cohe-V08-02-06)
-----------------------------------------------
  G4HadronElastic - do not use HE model for hydrogen target to avoid NaN;
                    use QElasticCrossSection for p, n incident for any energy 
                    only for p, He targets

4 May 2007 - V.Ivanchenko (hadr-cohe-V08-02-05)
-----------------------------------------------
  G4HadronElastic - do not use HE model for hydrogen target to avoid NaN;
                    use QElasticCrossSection for p, n incident for any energy 

2 May 2007 - V.Ivanchenko (hadr-cohe-V08-02-04)
-----------------------------------------------
  G4ElasticHadrNucleusHE - scale sampled t as ptot^2
  G4HadronElastic - use QElasticCrossSection for p, n < GeV and 
                    G4ElasticHadrNucleusHE model above
                    still use QElasticCrossSEction for H and He targets  

2 Apr 2007 - V.Ivanchenko (hadr-cohe-V08-02-03)
-----------------------------------------------
  G4ElasticHadrNucleusHE - use iterator search on bin instead of 
                           computing log
  G4HadronElastic - use the most probable isotope for given Z to call 
                    to HE model (CPU/memory more efficient) 

30 Jan 2007 - V.Ivanchenko (hadr-cohe-V08-02-02)
------------------------------------------------
  G4UHadronElasticProcess - fix bug in number of neutrons in CHIPS interface
  G4HadronElastic, G4ChargeExchange - more accuratelly compute Z and A

30 Jan 2007 - V.Ivanchenko (hadr-cohe-V08-02-01)
------------------------------------------------
  G4UHadronElasticProcess, G4ChargeExchangeProcess - fix problem 
	for the case, when isotope vector is not defined

23 Jan 2007 - V.Ivanchenko (hadr-cohe-V08-02-00)
------------------------------------------------
  G4UHadronElasticProcess - migrade to interface to cross section with Z and A
  G4ChargeExchangeProcess - migrade to interface to cross section with Z and A	
                            do not use QElastic total cross sections

23 Nov 2006 - V.Ivanchenko (hadr-cohe-V08-01-12)
------------------------------------------------
  G4ElasticHadrNucleusHE - remove unused variables;
                         - set ONQ0=3 (instead of 5) as it was in the
                           tag 05 in order to have better CPU performance
                         - cleanup comments 

22 Nov 2006 - V.Ivanchenko (hadr-cohe-V08-01-11)
------------------------------------------------
  G4HadronElastic: set DBL_MAX low limit for the HE model 

21 Nov 2006 - V.Ivanchenko (hadr-cohe-V08-01-10)
------------------------------------------------
  Cleanup of G4ElasticHadrNucleusHE

18 Nov 2006 - V.Ivanchenko (hadr-cohe-V08-01-09)
------------------------------------------------
  N.Starkov: Fix problem of 

17 Nov 2006 - V.Ivanchenko (hadr-cohe-V08-01-08)
------------------------------------------------
  N.Starkov: Fix problem of initialization of tables, 
             Fix problem of CPU overhead  

17 Nov 2006 - V.Ivanchenko (hadr-cohe-V08-01-07)
------------------------------------------------
  N.Starkov: Code optimization is perfomed

16 Nov 2006 - V.Ivanchenko (hadr-cohe-V08-01-06)
------------------------------------------------
  G4HadronElastic - set threshold 0.4 GeV for HE model (VI)
  G4ElasticHadrNucleusHE - add corrections allowing to work down
                           to 0.4 GeV (N.Starkov)

24 Oct 2006 - V.Ivanchenko (hadr-cohe-V08-01-05)
------------------------------------------------
  Set lowestEnergy=0 for neutral particles, =eV for changed (VI)
  G4HadronElastic - set threshold 1 GeV for G4ElasticHadrNucleusHE model (VI)
  G4ElasticHadrNucleusHE - complete review and update of the class,
                           data tables are computed on-flight,
                           G4ELASTICDATA are not used anymore,
                           the model is applicable for all nuclei, except
                           deuteron, triton, He3, and A>238 (N.Starkov)

26 Sept 2006 - V.Ivanchenko (hadr-cohe-V08-01-04)
-------------------------------------------------
  Introduce extra protection - below lowestEnergy (10-6 eV) not active

10 August 2006 - V.Ivanchenko (hadr-cohe-V08-01-03)
---------------------------------------------------
  Introduce NaN check inside G4HadronElastic, G4ChargeExchange,
  and G4UHadronElasticProcess;  

24 July 2006 - V.Ivanchenko (hadr-cohe-V08-01-02)
-----------------------------------------------
  Remove HP data from G4UHadronElasticProcess (it is set in physics lists)
  Add low energy threshold for QElastic 20 MeV inside G4HadronElastic

13 July 2006 - V.Ivanchenko (hadr-cohe-V08-01-01)
-----------------------------------------------
  Fix bug: remove 1 keV limit from G4UHadronElasticProcess 

07 July 2006 - V.Ivanchenko (hadr-cohe-V08-01-00)
-----------------------------------------------
  Fix bug: the rotation of final state need to be done in PostStep of
  the process, not on the model level (V.Ivanchenko) 

21 June 2006 - V.Ivanchenko (hadr-cohe-V08-00-09)
-----------------------------------------------
  Fix - remove nan values  n scattering on deuteron (V.Ivanchenko) 

17 June 2006 - V.Ivanchenko (ghad-cohe-V08-00-08)
-----------------------------------------------
  Use sampling of final state for n, p scattering on deuteron
  and alpha from LElastic (V.Ivanchenko) 

7 June 2006 - V.Ivanchenko (ghad-cohe-V08-00-07)
-----------------------------------------------
  Fix complilation warnings at WINDOWS (V.Ivanchenko) 

2 June 2006 - V.Ivanchenko (ghad-cohe-V08-00-06)
-----------------------------------------------
  Fix complilation warnings at SUN (V.Ivanchenko) 

1 June 2006 - V.Ivanchenko (ghad-cohe-V08-00-05)
-----------------------------------------------
  Add regime of HElastic which is not using data files (N.Starkov)
  Cleanup (V.Ivanchenko) 

30 May 2006 - V.Ivanchenko (ghad-cohe-V08-00-04)
-----------------------------------------------
  Add ChargeExchangeProcess, cleanup G4HadronElastic

2 May 2006 - V.Ivanchenko (ghad-cohe-V08-00-03)
-----------------------------------------------
  Rename G4LElasticB -> G4HadronElastic

25 April 2006 - V.Ivanchenko (ghad-cohe-V08-00-02)
-------------------------------------------------
  G4UHadronElasticProcess and G4LElasticB: use np scattering from CHIPS,
                fix run time warnings 	
  Rename G4LElasticB by G4HadronElastic
  

24 April 2006 - V.Ivanchenko (ghad-cohe-V08-00-01)
-------------------------------------------------
  G4UHadronElasticProcess - new process allows to use G4Isotopes composition
                of elements defined by user and uses cross sections from
                CHIPS and HP models when appropriate 

13 April 2006 - V.Ivanchenko (ghad-cohe-V08-00-00)
-------------------------------------------------
  G4LElasticB - moved from low_energy; bug fixes - remove charge
                exchange option, remove low limit on primary momentum;
                add limit on secondary kinetic energy; add only s-wave
                regime for low momentum scattering
  GNUmakfile  - introduce dependence on chips  

28 Nov 2005 - G. Cosmo (hadr-cohe-V07-01-05)
---------------------------------------------
  Migrated to <sstream> from G4ElasticHadrNucleusHE.

25 Nov 2005 - D. Wright (hadr-cohe-V07-01-04)
---------------------------------------------
  From Solaris testing:  line 83 of G4DiffElasticHadrScattering.hh:
     multiple declaration of variable c1.   Fixed.

25 Nov 2005 - D. Wright (hadr-cohe-V07-01-03)
---------------------------------------------
  Add detailed comments of N. Starkov from previous tags to History 
  file:
    G4DiffElasticHadrNucleus.hh, .cc :  
        add high energy elastic scattering on protons
        add new method HadronProtonDiffCrSec

    G4ElasticHadrNucleusHE.hh, .cc :
        add high energy elastic scattering on protons

    G4HadronValues.hh, .cc :
        use PDG value instead of static particle pointers

  From V. Ivantchenko: fixed memory leaks
                       4-momentum balance fixed, tested OK
                       fixed compiler warnings
         
25 Nov 2005 - V.Ivanchenko (ghad-cohe-V07-01-03)
------------------------------------------------
  Integration of recent development of the subpackage
  Remove of the G4Rutherford for the time being

