# Category hadr-cohe History

See `CONTRIBUTING.rst` for details of **required** info/format for each entry,
which **must** added in reverse chronological order (newest at the top).
It must **not** be used as a substitute for writing good git commit messages!

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

## 2024-05-02 Gabriele Cosmo (hadr-cohe-V11-01-05)
- Fixed compilation warnings for potentially uninitialised local variables in
  SampleThetaCMS() for G4DiffuseElastic and G4NuclNuclDiffuseElastic.

## 2023-10-23 Vladimir Ivanchenko (hadr-cohe-V11-01-04)
- G4ChargeExchange - address interface change in G4ChargeExchangeXS

## 2023-08-29 Vladimir Ivanchenko (hadr-cohe-V11-01-03)
- G4ChargeExchange - fixed Coverity warning on dead code

## 2023-08-25 Tim Lok Chau (hadr-cohe-V11-01-02)
- G4ChargeExchange - fixed parameter for SampleT(..) method

## 2023-08-09 Tim Lok Chau (hadr-cohe-V11-01-01)
- G4ChargeExchange - update input parameters for method  
  SampleSecondaryType(..)

## 2023-07-21 Vladimir Ivanchenko (hadr-cohe-V11-01-00)
- G4ChargeExchange - updated according to new conception

## 2022-11-26 Gabriele Cosmo (hadr-cohe-V11-00-05)
- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1.

## 2022-10-25 Alberto Ribon (hadr-cohe-V11-00-04)
- G4AntiNuclElastic : Vladimir Uzhinsky's extension of the SampleInvariantT method
  for the simulation of a light anti-hypernucleus projectile elastic scattering
  on a target nucleus.
  Note: most of the considered light anti-hypernuclei projectiles have 
  baryon number equal to -4 : it is assumed that their properties are similar
  to anti-He4, therefore their elastic scattering is set-up as for anti-He4
  elastic nuclear scattering. These properties can be improved in the future
  if theoretical estimations will be available.

## 2022-09-05 Ben Morgan (hadr-cohe-V11-00-03)
- Update dependencies to address warnings from consistency check

## 2022-02-04 Vladimir Ivanchenko (hadr-cohe-V11-00-02)
- G4ElasticHadrNucleusHE, G4NeutronElectronElModel, G4NeutrinoElectronNcModel
    fixed compilation warnings on unused variables; removed commented lines;
    use Energy(..) method of G4PhysicsVector instead of obsolete GetLowEdgeEnergy(...)

## 2022-01-03 Alberto Ribon (hadr-cohe-V11-00-01)
- G4AntiNuclElastic : Vladimir Uzhinsky's correction in the SampleInvariantT
  method of the highest momentum transfer (which was causing the cosine of
  the polar angle in the center-of-mass system to be larger than 1 in some
  cases). This should be fixed bug #2204.

## 2021-12-10 Ben Morgan (hadr-cohe-V11-00-00)
- Change to new Markdown History format

---

# History entries prior to 11.0

04 August 2021 - A.Ribon (hadr-cohe-V10-07-04)
--------------------------------------------------
- G4HadronElastic, G4LEnp, G4LEpp, G4LEHadronProtonElastic,
  G4NeutronElectronElModel, G4NeutrinoElectronNcModel,
  G4ChargeExchange, G4LMsdGenerator : set the creator model ID for the
  secondaries created, using the new version of G4PhysicsModelCatalog

16 April 2021 - Ben Morgan (hadr-cohe-V10-07-03)
--------------------------------------------------
- Migrate build to modular CMake API

05 May 2021 - V.Ivanchenko         (hadr-cohe-V10-07-02)
---------------------------------------------------------------
- G4LEHadronProtonElastic, G4ChargeExchangeProcess - removed unused
    headers

13 April 2021 - A.Ribon         (hadr-cohe-V10-07-01)
---------------------------------------------------------------
- GNUmakefile, sources.cmake : removed the subdirectories
  hadronic/models/management and hadronic/models/util
  (that have been now deleted, with their classes moved to
   hadronic/util and hadronic/management).

08 March 2021 - A.Ribon         (hadr-cohe-V10-07-00)
---------------------------------------------------------------
- G4ChargeExchangeProcess : replaced Gheisha elastic cross section
  (that has been deleted) with G4ComponentGGHadronNucleusXsc.

22 July 2020 - V.Ivanchenko     (hadr-cohe-V10-06-03)
---------------------------------------------------------------
- G4HadronElastic - added numerical protection against precision lost
    addressing problem #2253

30 April 2020 - B. Morgan       (hadr-cohe-V10-06-02)
---------------------------------------------------------------
-  Remove obsolete GRANULAR_DEPENDENCIES entries

18 January 2020 - V.Ivanchenko  (hadr-cohe-V10-06-01)
---------------------------------------------------------------
- G4ElasticHadrNucleusHE - for pi- and Z>1 reuse data structure
    computed for pi+ in order to reduce memory and CPU at
    initialisation; added new private methods to store/retrieve
    data tables; fixed false positive Coverity report

17 December 2019 - V.Ivanchenko  (hadr-cohe-V10-06-00)
---------------------------------------------------------------
- G4ElasticHadrNucleusHE - switch to parameterized model by
    cut on kinetic energy and not momentum

26 November 2019 - V.Ivanchenko  (hadr-cohe-V10-05-10)
---------------------------------------------------------------
- G4HadronElastic : Added limit on number of warning printouts

19 November 2019 - G. Folger   (hadr-cohe-V10-05-09)
---------------------------------------------------------------
- remove using namespace std and using namespace CLHEP from header file
   G4NeutronElectronElModel.hh

15 November 2019 - V.Ivanchenko  (hadr-cohe-V10-05-08)
---------------------------------------------------------------
- G4HadronElastic : Change warning printout, in the case if sampled
    t>tmax resample using simple algorithm, protect this warning
    by G4VERBOSE, this is a partial fix of #2204

06 November 2019 - A.Ribon       (hadr-cohe-V10-05-07)
---------------------------------------------------------------
- G4HadronElastic : Coverity fix in the unused method GetSlopeCof.

31 October 2019 - V.Ivanchenko   (hadr-cohe-V10-05-06)
--------------------------------------------------------
- G4ElasticHadrNucleusHE - reduction of size of data structure and
    time for initialisation ~2 times; general code clean-up; addition
    of protections

07 October 2019 - V.Grichine     (hadr-cohe-V10-05-05)
     ---------------------------------------------------------------
- G4hadronElstic - new method for s-,c-,b-particle
- ds/dt slope modifications in preparation

03 July 2019 - V.Ivanchenko     (hadr-cohe-V10-05-04)
--------------------------------------------------------
- G4ElasticHadrNucleusHE - general clean-up of the code
- G4HadronElastic - added new parameterisation of A.Yeltokov

14 May 2019 - A.Ribon           (hadr-cohe-V10-05-03)
--------------------------------------------------------
- G4HadronElastic : numerically safer treatment of the very rare cases
    in which cos(theta) is either greater than 1.0 or smaller than -1.0
    (in the first case, we assume no interaction and the projectile keeps
    going unchanged; in the second case, we assume that the projectile
    stops and its kinetic energy is deposited locally, neglecting the
    recoil of the target nucleus).

10 May 2019 - V.Ivanchenko      (hadr-cohe-V10-05-02)
--------------------------------------------------------
- G4ElasticHadrNucleusHE, G4LEpp, G4LEnp - clean-up
- G4LowEHadronElastic - new model class

29 April 2019 - V.Ivanchenko    (hadr-cohe-V10-05-01)
--------------------------------------------------------
- G4HadronElastic - added protected variable pLocalTmax, added protection
    for zero energy primary;
  G4ChargeExchange - updated interfaces, added protection for zero
    energy primary
  G4ElasticHadrNucleusHE - make all data shared between threads
  G4AntiNuclElastic - do not compute trigonametric functions,
  which are not used

19 April 2019 - V.Ivanchenko    (hadr-cohe-V10-05-00)
--------------------------------------------------------
- G4HadronElastic - improved description and comments; added C++11 keywords

05 November 2018 - V.Ivanchenko    (hadr-cohe-V10-04-08)
--------------------------------------------------------
- G4HadronElastic - fixed numberical instability when
    final kinetic energy of projectile is nearly zero

17 August 2018 - A.Ribon           (hadr-cohe-V10-04-07)
--------------------------------------------------------
- G4DiffuseElastic, G4DiffuseElasticV2, G4NuclNuclDiffuseElastic : increased
  the number of equal-sized logarithmic-energy bins (from 200 to 300) in
  order to have no larger bins up to 10 PeV.
- G4NuclNuclDiffuseElastic : replaced the high-energy limit of applicability
  of the model from 1 TeV to the value specified in G4HadronicParameters.

16 August 2018 - V.Ivanchenko      (hadr-cohe-V10-04-06)
15 August 2018 - V.Ivanchenko      (hadr-cohe-V10-04-05)
--------------------------------------------------------
- G4AntiNuclElastic - do not delete component end of run

06 August 2018 - A.Ribon           (hadr-cohe-V10-04-04)
--------------------------------------------------------
- G4HadronElastic, G4DiffuseElastic, G4DiffuseElasticV2, G4hhElastic,
  G4ChargeExchange, G4NeutrinoElectronNcModel : replaced the explicit
  high-energy limit of hadronic physics with the one from
  G4HadronicParameters .

01 August 2018 - V.Ivanchenko      (hadr-cohe-V10-04-03)
--------------------------------------------------------
- G4AntiNuclElastic - proper deletion of component end of run

18 July 2018 - V.Ivanchenko        (hadr-cohe-V10-04-02)
--------------------------------------------------------
- G4AntiNuclElastic - use cross section component from
    G4CrossSectionDataSetRegistry and do not delete it end of run

20 Mar 2018 - A.Ribon              (hadr-cohe-V10-04-01)
--------------------------------------------------------
- Set to 100.0 TeV (instead of 1 TeV) the upper limit of applicability
  for the model G4DiffuseElastic and G4DiffuseElasticV2
  (the number of equally-sized logarithmic energy bins has been increased
   from 200 to 250 to keep the same bin size (0.04) ).
  The model has been validated with experimental data up to 300 GeV,
  but it should not give meaningless results well above this energy.

14 Dec 2017 - A.Ribon              (hadr-cohe-V10-04-00)
--------------------------------------------------------
- Re-tag of the previous tag (incorrectly named).
- Grichine's update of G4hhElastic to take into account the recent
  TOTEM data for proton-proton at 13 TeV.

24 November 2017 - W. Pokorski     (hadr-cohe-V10-03-07)
--------------------------------------------------------
- Added new class G4DiffuseElasticV2. The underlying physics model is
the same as in G4DiffuseElastic by V.Grichine, however, the code has been
revised, cleanup and significantly improved in a number of places.
The performance has been improved by the factor of ~2 with respect to the
original implementation. The approximation of small angles has been droped
(replaced by exact calculation) as it was not bringing any visible benefits.

19 Oct 2017 - A.Ribon              (hadr-cohe-V10-03-06)
--------------------------------------------------------
- G4NuclNuclDiffuseElastic : Grichine's simplification of this class to
  avoid reproducibility violations in ion-ion elastic scattering.
  On-the-fly sampling of the nucleus-nucleus elastic scattering is done
  according to the Coulomb law in the limits 0 < theta < thetaC, where
  thetaC is the Coulomb grazing angle: this means that hadron elastic
  works like Coulomb in the limits.

23 Jun 2017 - Dennis Wright        (hadr-cohe-V10-03-05)
--------------------------------------------------------
- G4NuclNuclDiffuseElastic ctor: variables fCofAlphaMax and fCofAlphaCoulomb
  were first set to non-zero values (1.5 and 0.5, respectively), then zeroed
  a few lines later.   This caused a zero scattering angle and no elastically
  scattered target particle.  Fixed in response to bug report #1979.

13 Jun 2017 - A.Ribon              (hadr-cohe-V10-03-04)
-----------------------------------------------------------------
- G4NeutronElectronElModel : Coverity fix.

29 May 2017 - A.Ribon              (hadr-cohe-V10-03-03)
-----------------------------------------------------------------
- G4NeutronElectronElModel : added (by Grichine) model for neutron-electron
  elastic scattering. It produces recoil electrons resulting in visible
  energy deposition. The model is based on ultra-relativistic approximation
  of the Rosenbluth formula, since recoil electrons will have enough energy
  to be detected in the case of high energy neutrons, roughly > 1 GeV.

23 May 2017 - A.Ribon              (hadr-cohe-V10-03-02)
-----------------------------------------------------------------
- G4NeutrinoElectronNcModel : fixed (by Grichine) bug on the Plab
  calculation in the G4NeutrinoElectronNcModel::ApplyYourself method.

11 April 2017 - A.Ribon            (hadr-cohe-V10-03-01)
-----------------------------------------------------------------
- Forgot to add the (new) class G4NeutrinoElectronNcModel in the
  sources.cmake.

11 April 2017 - A.Ribon            (hadr-cohe-V10-03-00)
-----------------------------------------------------------------
- G4NeutrinoElectronNcModel : added new class by Vladimir Grichine
  for the final-state model of elastic neutrino-electron scattering.
  This class is useful for dark matter and neutrino experiments.

12 August 2016 - A.Ribon           (hadr-cohe-V10-02-01)
-----------------------------------------------------------------
- G4hhElastic : fixed wrong pointer initialization;
- G4NuclNuclDiffuseElastic : comment out redundant if-statement.
(fixes suggested by the PVS-Studio static code analyzer)

14 January 2016 - A.Ribon          (hadr-cohe-V10-02-00)
-----------------------------------------------------------------
- G4LMsdGenerator : hadronic internal decay scheme was restored
  allowing stable decay of the Roper resonances

13 November 2015 Gunter Folger     (hadr-cohe-V10-01-19)
--------------------------------------------------------
- Revert back to G4float, add "f" for initialisation.

13 November 2015 Gunter Folger     (hadr-cohe-V10-01-18)
--------------------------------------------------------
- Replace G4float by G4double

09 November 2015 - V.Ivanchenko  (hadr-cohe-V10-01-17)
-----------------------------------------------------------------
- G4ElasticHadrNucleusHE - fixed long standing Coverity report

05 November 2015 - A.Ribon  (hadr-cohe-V10-01-16)
-----------------------------------------------------------------
- Removed not needed dependency on neutron_hp/ .

22 October 2015 - A.Ribon   (hadr-cohe-V10-01-15)
-----------------------------------------------------------------
- G4DiffuseElastic : bug-fix made by V.Grichine in BuildAngleTable
  to improve the angle bin accuracy at high energies.

08 September 2015 - A.Ribon (hadr-cohe-V10-01-14)
-----------------------------------------------------------------
- G4LMsdGenerator : fixed uninitialized variable which caused
  non-reproducibility.

13 August 2015 - A.Ribon    (hadr-cohe-V10-01-13)
-----------------------------------------------------------------
- G4LMsdGenerator : Grichine included in diffraction dissociation the
  resonances recommended by the COMPASS experiment.

10 August 2015 - A.Ribon    (hadr-cohe-V10-01-12)
-----------------------------------------------------------------
- G4ElasticHadrNucleusHE, G4AntiNuclElastic, G4ChargeExchange, G4LEnp and
  G4LEpp : checking of 'while' loops.

06 August 2015 - A.Ribon    (hadr-cohe-V10-01-11)
-----------------------------------------------------------------
- G4HadronElastic, G4AntiNuclElastic, G4hhElastic, G4LEHadronProtonElastic,
  G4DiffuseElastic, G4NuclNuclDiffuseElastic, G4LMsdGenerator,
  G4ChargeExchangeProcess and G4ChargeExchange : replaced std::exp,
  std::log and std::pow with the faster G4Exp, G4Log and G4Pow.
  This changes the random number sequence.

13 July 2015 - A.Ribon      (hadr-cohe-V10-01-10)
-----------------------------------------------------------------
- G4LMsdGenerator : Grichine has improved the resonance masses,
  taking them from G4ParticleTable.

17 June 2015 - A.Ribon      (hadr-cohe-V10-01-09)
-----------------------------------------------------------------
- G4LMsdGenerator : Grichine has disactivated the internal elastic
  scattering of dissociated hadron.

08 June 2015 - V.Ivanchenko (hadr-cohe-V10-01-08)
-----------------------------------------------------------------
- G4ElasticHadrNucleusHE - fixed Coverity defect; substitute std
    log, exp, pow by G4Exp and G4Log; added check on max Z
- G4NuclNuclDiffuseElastic - fixed trivial Coverity reports

26 May 2015 - R.Hatcher    (hadr-cohe-V10-01-07)
-----------------------------------------------------------------
- Remove unnecessary "using namespace std" from various headers
  that causes problems w/ G4AnyMethod & G4GenericPhysicsList
  when using clang and/or vc12

20 May 2015 - V.Grichine
-----------------------------------------------------------------
- G4LMsdGenerator : the final state for pi+- DD was changed according
  to recent COMPASS data.

19 May 2015 - G.Folger     (hadr-cohe-V10-01-06)
-----------------------------------------------------------------
- Migrate Description() to ModelDescription(std::ostream&) for
   G4ChipsElasticModel, G4ElasticHadrNucleusHE, and G4HadronElastic

21 April 2015 - A.Ribon    (hadr-cohe-V10-01-05)
-----------------------------------------------------------------
- G4LMsdGenerator : V. Grichine modification in angle distribution
                    to reduce angles at high energies

25 February 2015 - A.Dotti (hadr-cohe-V10-01-04)
-----------------------------------------------------------------
- G4ElasticHadrNucleusHE : Share cross-section tables among threads

06 February 2015 - V.Ivanchenko (hadr-cohe-V10-01-03)
-----------------------------------------------------------------
- G4DiffuseElastic : V.Grichine fixed rare numerical bug (sqrt of
                     negative argument)

08 January 2015 - A.Ribon (hadr-cohe-V10-01-02)
-----------------------------------------------------------------
- G4DiffuseElastic : V.Grichine bug-fix in theta_cms momentum transfer
                     transformation

05 December 2014 - G.Cosmo (hadr-cohe-V10-01-01)
-----------------------------------------------------------------
- Corrected sources.cmake to include missing files:
    G4LEHadronProtonElastic.hh
    G4LEHadronProtonElastic.cc

05 December 2014 - V.Ivanchenko (hadr-cohe-V10-01-00)
-----------------------------------------------------------------
- G4DiffuseElastic - V.Grichine fixed low-energy neutrons
- G4NuclNuclDiffuseElastic - V.Grichine fixed problem #1691 for
    700 MeV Be-ions scattering in Be

24 November 2014 - V.Ivanchenko (hadr-cohe-V10-00-24)
-----------------------------------------------------------------
- G4hhElastic - cleanup constructors

21 November 2014 - V.Ivanchenko (hadr-cohe-V10-00-23)
-----------------------------------------------------------------
- G4hhElastic - fixed Coverity report (V.Grichine)

20 November 2014 - V.Ivanchenko (hadr-cohe-V10-00-22)
-----------------------------------------------------------------
- G4LMsdGenerator - fixed memory leak (V.Grichine)

19 November 2014 - V.Ivanchenko (hadr-cohe-V10-00-21)
-----------------------------------------------------------------
- G4LMsdGenerator - fixed shortlived decays (V.Grichine)

14 November 2014 - V.Ivanchenko (hadr-cohe-V10-00-20)
-----------------------------------------------------------------
- G4LMsdGenerator - fixed energy concervation (V.Grichine)

12 November 2014 - V.Ivanchenko (hadr-cohe-V10-00-19)
-----------------------------------------------------------------
- G4LMsdGenerator - added pions and kaons (V.Grichine)

08 November 2014 - V.Ivanchenko (hadr-cohe-V10-00-18)
-----------------------------------------------------------------
- G4LMsdGenerator - fixed read out of the boundary

07 November 2014 - V.Ivanchenko (hadr-cohe-V10-00-17)
-----------------------------------------------------------------
07 November 2014 V. Grichine fixed class G4LMsdGenerator

06 November 2014 - V.Ivanchenko (hadr-cohe-V10-00-16)
-----------------------------------------------------------------
06 November 2014 V. Grichine class G4LMsdGenerator was added for
    low mass single diffraction dissociation

14 October 2014 - A.Ribon (hadr-cohe-V10-00-14)
-----------------------------------------------------------------
- G4DiffuseElastic : extension down to 0.1 MeV, mainly for neutrons.
- G4hhElastic : changes to combine with low mass diffraction.

31 July 2014 - A.Ribon (hadr-cohe-V10-00-13)
-----------------------------------------------------------------
- G4DiffuseElastic and G4NuclNuclDiffuseElastic : use the average
  nuclear weight for each element to compute the table of angles,
  in order to improve the reproducibility.

30 July 2014 - A.Ribon (hadr-cohe-V10-00-12)
-----------------------------------------------------------------
- G4DiffuseElastic, G4NuclNuclDiffuseElastic, G4hhElastic, and
  G4ChargeExchangeProcess : proper deletion of physics vectors.

27 June 2014 - V.Ivanchenko (hadr-cohe-V10-00-11)
-----------------------------------------------------------------
- G4LEppData, G4LEpp - removed data with Coulomb correction and
    corresponding code due to reasons: not work properly, provides
    double counting with EM, code too complex.

18 June 2014 - A.Ribon (hadr-cohe-V10-00-10)
-----------------------------------------------------------------
- G4NuclNuclDiffuseElastic : proper fix of the nuclear radius issue.

06 June 2014 - A.Ribon (hadr-cohe-V10-00-09)
-----------------------------------------------------------------
- G4DiffuseElastic : fixed deletion in destructor.
- G4NuclNuclDiffuseElastic : fixed deletion in destructor;
  temporary fix of the nuclear radius (which was zero).

27 May 2014 - V.Ivanchenko (hadr-cohe-V10-00-08)
-----------------------------------------------------------------
- G4LEpp - fixed incorrect use data array, used GetInvariantT()
    inside ApplyYourself

13 May 2014 - A.Ribon (hadr-cohe-V10-00-07)
-----------------------------------------------------------------
- Removed unused private members of G4hhElastic which are not used
  (to avoid warnings).

12 May 2014 - A.Ribon (hadr-cohe-V10-00-06)
-----------------------------------------------------------------
- Added V. Grichine's new class G4hhElastic : implementation of the
  qQ-model with springy Pomeron for hadron-hadron elastic scattering

06 May 2014 - A.Ribon (hadr-cohe-V10-00-05)
-----------------------------------------------------------------
- Tag V. Grichine's bug fix in G4DiffuseElastic.cc .

10 April 2014 - G.Cosmo (hadr-cohe-V10-00-04/03)
-----------------------------------------------------------------
- Get rid of deprecated 'register' storage class specifier in source files.

10 March 2014 - V.Ivanchenko (hadr-cohe-V10-00-02)
-----------------------------------------------------------------
- G4LEHadronProtonElastic, G4LEnp, G4LEpp - use const pointers
    to G4ParticleDefinition

31 January 2014 - V.Ivanchenko (V.Grichine) (hadr-cohe-V10-00-01)
-----------------------------------------------------------------
- G4LEHadronProtonElastic - new dipole model
- G4LEnp, G4LEpp - add SampleInvariantT method and inheritance
    from G4HadronElastic

18 January 2013 - V.Ivanchenko (hadr-cohe-V10-00-00)
------------------------------------------------------
- G4LEnp - implemented SampleT() method (V.Grichine)

04 June 2013 - A.Ribon (hadr-cohe-V09-06-03)
------------------------------------------------------
- Fix access to ions via the IonTable class and GetIon method
  in G4DiffuseElastic.cc and G4NuclNuclDiffuseElastic.cc

21 February 2013 - V.Ivanchenko (hadr-cohe-V09-06-02)
------------------------------------------------------
- G4LEnp, G4LEpp, G4LEnpData, G4LEppData - removed G4ThreadLocal
    declarations
- G4NuclNuclDiffuseElastic - moved long methods from inline to source

13 December 2012 - A.Ribon (hadr-cohe-V09-06-01)
-------------------------------------------------
- Removed CHIPS elastic classes (keeping only the decoupled Chips ones).

13 December 2012 - W.Pokorski (hadr-cohe-V09-06-00)
-------------------------------------------------
- bug fix; removing an unnecessary 'if' which depended on an uninitialized variable

21 September 2012 - G.Cosmo (hadr-cohe-V09-05-11)
-------------------------------------------------
- Explicitly use inclusion of headers for system of units and physical
  constants, in plan to remove implicit inclusion from globals.hh.

18 September 2012 - M.Kelsey (hadr-cohe-V09-05-10)
--------------------------------------------------
- G4ChargeExchangeProcess.cc:  Follow migration of G4HadronicProcess
  inheritance and ctor signature.
- Requires co-working base tag hadr-man-V09-05-16

17 August 2012 - W.Pokorski (hadr-cohe-V09-05-09)
--------------------------------------------
- removed obsolete CHIPS includes from CMake file

17 June 2012 - W.Pokorski (hadr-cohe-V09-05-08)
--------------------------------------------
- using factory mechanism for Chips cross sections

12 June 2012 - A.Ribon (hadr-cohe-V09-05-07)
--------------------------------------------
- fixed warnings of shadowed variables.

26 March 2012 - W.Pokorski (hadr-cohe-V09-05-06)
------------------------------------------------------
- added G4ChipsElasticModel class to use the extracted Chips XS classes from
  hardonic/cross_sections

6 May 2012, Gunter Folger  ( ..trunk.. )
- revert changes by Mikhail ( rev. r58260, r58258 )

28 April 2012 - M.Kosov (hadr-cohe-V09-05-05)
- hadronic/models/chiral_inv_phase_space moved to hadronic/chips

20 April 2012 - A.Ribon (hadr-cohe-V09-05-04)
------------------------------------------------------
- G4ElasticHadrNucleusHE - fixed compilation error on Windows.

20 April 2012 - A.Ribon (hadr-cohe-V09-05-03)
------------------------------------------------------
- G4ElasticHadrNucleusHE - minor fix of a compilation warning.

19 April 2012 - A.Ribon (hadr-cohe-V09-05-02)
------------------------------------------------------
- G4ElasticHadrNucleusHE - fixed reproducibility violation due to
    cashing of cross sections based on the target element, whereas
    they depend also on the isotope. Rather than using the first
    isotope encountered for an element, the natural average is used.

26 March 2012 - V.Ivanchenko (hadr-cohe-V09-05-01)
------------------------------------------------------
- G4HadronElastic - fixed units in cout

1 March 2012 - V.Ivanchenko (hadr-cohe-V09-05-00)
------------------------------------------------------
- G4AntiNuclElastic - fixed Coverity warning

30 Nov. 2011 - V. Uzhinsky (hadr-cohe-V09-04-22)
--------------------------------------------------------------
- G4AntiNuclElastic - bug is fixed, check of |cosTheta|<1 introduced.

24 Nov. 2011 - V. Uzhinsky (hadr-cohe-V09-04-21)
--------------------------------------------------------------
- G4AntiNuclElastic - bug is fixed, Plab/baryon was inserted

24 Nov. 2011 - V. Uzhinsky (hadr-cohe-V09-04-20)
--------------------------------------------------------------
- G4AntiNuclElastic - bug at very low energy is fixed

31 October 2011 - A.Galoyan (hadr-cohe-V09-04-19)
--------------------------------------------------------------
-  G4AntiNuclElastic - antiProton-Proton elastic scattering is improved

21 October 2011 - V.Ivanchenko (hadr-cohe-V09-04-18)
------------------------------------------------------
- G4CHIPSElasticXS - used G4HadronicException; added cross sections for neutral
                     kaons; use "case" instead of "if"

21 October 2011 - V.Ivanchenko (hadr-cohe-V09-04-17)
------------------------------------------------------
- G4HadronElastic - lowest limit is set to 1.e-6 eV
- G4WHadronElasticProcess - moved to hadronic/processes
- G4LEpp, G4LEnp - fixed extraction of A from G4Nucleaus

04 October 2011 - V.Ivanchenko (hadr-cohe-V09-04-16)
------------------------------------------------------
- G4AntiNuclElastic - removed internal low and high energy limits
- G4WHadronElasticProcess - added protection for very low primary enegry
    after scattering

29 September 2011 - V.Ivanchenko (hadr-cohe-V09-04-15)
------------------------------------------------------
- G4NuclNuclDiffuseElastic - fixed compillation warning.

28 September 2011 - V.Ivanchenko (hadr-cohe-V09-04-14)
------------------------------------------------------
- G4LEpp, G4LEnp: complete migration to integer Z and A;
  G4NuclNuclDiffuseElastic, G4DiffuseElastic - fixed Coverity report.

9 September 2011 - V.Ivanchenko (hadr-cohe-V09-04-13)
----------------------------------------------------
- G4WHadronElasticProcess.cc - follow migration of G4HadFinalState constness.

6 September 2011 - V.Ivanchenko (hadr-cohe-V09-04-12)
----------------------------------------------------
- Fixed signature of Description method in several classes.

23 August 2011 - V.Ivanchenko (hadr-cohe-V09-04-11)
--------------------------------------------------
- G4WHadronElasticProcess - lowestNeutronEnergy is set to 1.e-12*eV

23 August 2011 - V.Ivanchenko (hadr-cohe-V09-04-10)
--------------------------------------------------
- G4ChargeExchangeProcess, G4CHIPSElasticXS - migration to new design of the
    G4VCrossSectionDataSet interface

28 July 2011 - V.Ivanchenko (hadr-cohe-V09-04-09)
-------------------------------------------------
18 July 2011 - V. Grichine
- G4NuclNuclDiffuseElastic V.Grichine updated the class using G4HadronElastic
  as the base class and to follow its interface.

13 July 2011 - V.Ivanchenko (hadr-cohe-V09-04-08)
-------------------------------------------------
- G4DiffuseElastic V.Grichine updated the class using G4HadronElastic
  as the base class and to follow its interface.

- G4AntiNuclElastic, G4CHIPSElasticXS, G4ChargeExchange,
  G4ChargeExchangeProcess, G4ElasticHadrNucleusHE - fixed Coverity tool
                                                    warnings
- G4HadronElastic - added LowestEnergyLimit access method
- G4VHadronElastic - removed obsolete class

20 May 2011 - V.Ivanchenko (hadr-cohe-V09-04-07)
-------------------------------------------------
- G4AntiNuclElastic - fixed gcc-4.6.0 compillation warning

31 May 2011 - V. Uzhinsky (hadr-cohe-V09-04-06)
-------------------------------------------------
- G4CHIPSElasticXS - added calculations of anti-baryons, Pi+, Pi-, K+, K-
  nucleus elastic cross sections.

20 May 2011 - V.Ivanchenko (hadr-cohe-V09-04-05)
-------------------------------------------------
- G4ElasticHadrNucleusHE, G4NuclNuclDiffuseElastic - fixed compillation
  warnings at gcc-4.6.0

18 May 2011 - V.Ivanchenko (hadr-cohe-V09-04-04)
-------------------------------------------------
- G4HadronElastic - fixed SampleInvariantT default implementation
    to be used unit tests; removed protected member of the class;
    do not create an ion if the recoil energy is below the threshold
- G4WHadronElasticProcess - improved comments; added NIEL energy
    deposition if recoil is below the threshold

16 May 2011 - V.Ivanchenko (hadr-cohe-V09-04-03)
-------------------------------------------------
- G4AntiNuclElastic - added access method to cross section,
	              removed unused headers
- G4UHadronElasticProcess - removed as obsolete
- G4VHadronElastic is copied to G4HadronElastic (it will be the main interface)

8 May 2011 - A. Galoyan (hadr-cohe-V09-04-02)
-----------------------------------------------
- G4AntiNuclElastic  Bugs are fixed.

3 May 2011 - A. Galoyan (hadr-cohe-V09-04-01)
-----------------------------------------------
- G4AntiNuclElastic - new class for simulation of elastic anti-A - A scattering
is added

24 February 2011 - V.Ivanchenko (hadr-cohe-V09-04-00)
------------------------------------------------------
- G4WHadronElasticProcess - added light anti-nuclei, used
        particle names in the IfApplicable method

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

