# Category emhighenergy 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-09-10 Alberto Ribon (emhighenergy-V11-02-01)
- G4DynamicParticleIonisation, G4DynamicParticleMSC : added missing methods
  (GetMeanFreePath and GetContinuousStepLimit) to make them concrete classes.

## 2024-08-23 Vladimir Ivanchenko (emhighenergy-V11-02-00)
- Added new processes G4DynamicParticleIonisation, G4DynamicParticleMSC,
    G4DynamicParticleFluctuation, which perform computations
    on fly using only G4DynamicParticle data, G4ParticleDefinition is not used.

## 2023-06-06 Helmut Burkhardt (emhighenergy-V11-01-01)
- G4GammaConversionToMuons removing using namespace std + cling-tidy
- G4AnnihiToMuPair removing using namespace std + cling-tidy

## 2023-06-02 Vladimir Ivanchenko (emhighenergy-V11-01-00)
- G4GammaConversionToMuons - fixed FPE exception in compound, when selected
  element and address issue of cross section factor reported in #2543

## 2022-11-23 Gabriele Cosmo (emhighenergy-V11-00-04)
- Fixed more compilation warnings for implicit type conversions.

## 2022-11-18 Gabriele Cosmo (emhighenergy-V11-00-03)
- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1.

## 2022-09-05 Ben Morgan (emhighenergy-V11-00-02)
- Resolve duplicated G4partman dependency as public

## 2022-07-04 Vladimir Ivanchenko (emhighenergy-V11-00-01)
- G4hPairProduction, G4hPairProductionModel - removed not needed methods

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

---

# History entries prior to 11.0

20 October 21: V.Ivanchenko (emhighenergy-V10-07-06)
- G4AnnihiToMuPair - added option of tau+tau- pair production;
    optimized computation of cross sections in compounds;
    added process sub-type via enumerator 

16 August 2021: J.Hahnfeld (emhighenergy-V10-07-05)
- G4AnnihiToMuPair - return DBL_MAX if below threshold energy,
  remember G4LossTableManager for correct deregistration in MT mode

18 July 21: V.Ivanchenko  (emhighenergy-V10-07-04)
- G4mplIonisationModel, G4mplIonisationWithDeltaModel - updated 
    according to change of G4VEmFluctuationModel signature 

15 May 21: V.Ivanchenko  (emhighenergy-V10-07-03)
- G4eeToHadrons - updated integral type

15 March 21: V.Ivanchenko  (emhighenergy-V10-07-02)
- update all classes to 11.0: clean-up interfaces, removed unused headers,
   improved initialisation

21 February 21: V.Ivanchenko  (emhighenergy-V10-07-01)
- G4hBremsstrahlungModel - added header

08 February 21: V.Ivanchenko  (emhighenergy-V10-07-00)
- G4hhIonisation - G4BohrFuluctuations is removed

29 October 2020: V.Ivantchenko (emhighenergy-V10-06-02)
- G4hPairProductionModel, G4hBremsstrahlungModel, G4hPairProduction,
  G4hBremsstrahlung - added definition of the energy threshold
    for creation of a vertex, when energy transfer is above the
    threshold (CMS request)

01 September 2020: G.Amadio (emhighenergy-V10-06-01)
- G4hPairProductionModel - inherit ComputeDMicroscopicCrossSection
  from G4MuPairProductionModel to avoid code duplication

30 October 2019: I.Semeniouk (emhighenergy-V10-05-06)
- G4GammaConversionToMuons - initialisation of the 5D model cuts size

18 October 2019: V.Ivantchenko (emhighenergy-V10-05-05)
- G4GammaConversionToMuons - added initialisation of the 5D model

08 October 2019: V.Ivantchenko (emhighenergy-V10-05-04)
- G4GammaConversionToMuons - fixed DeRegister; added optional
    possibility to use 5D model for the sampling of the final state

02 July 2019: V.Ivantchenko (emhighenergy-V10-05-03)
- G4mplIonisationWithDeltaModel, G4mplIonisationModel - fixed
    dEdx for electron gas model (beta<0.01) - problem #2169

03 April 2019: V.Ivantchenko (emhighenergy-V10-05-02)
- G4GammaConversionToMuons, G4AnnihiToMuPair - added Register/DeRegister
    mechanism

21 March 2019: V.Ivantchenko (emhighenergy-V10-05-01)
- G4GammaConversionToMuons - fixed low-energy part of the model by adding
    of intermediate limit 5*MuMass, below which an approximation of
    x-section similar to the Bethe-Heitler model is used; fixed bug
    in energy sampling for low-energy

01 March 2019: V.Ivantchenko (emhighenergy-V10-05-00)
- G4mplIonisation, G4mplIonisationWithDeltaModel - added low limit
    for delta-electron production threshold (fixing problem #2126)

17 Sept 2018: D.Sawkey (emhighenergy-V10-04-02)
- G4eeToHadrons, G4eeToHadronsMultiModel, G4hBremsstrahlung, G4hPairProduction,
  G4hhIonisation, G4mplIonisation: automatic documentation format now rST

01 May 2018: V.Ivant (emhighenergy-V10-04-01)
- G4eeToHadronsMultiModel - cleanup of headers
- G4eeToHadronsModel, G4mplIonisationWithDeltaModel - minor cleanup

28 Feb 2018: V.Ivant (emhighenergy-V10-04-00)
- G4AnnihiToMuPair - H.Burkhardt added Coulomb correction to the
    cross section at the threshold

08 Nov 2017: D.Sawkey (emhighenergy-V10-03-05)
- G4hBremsstrahlung, G4hPairProduction - update ProcessDescription text

27 Oct 2017: V.Ivant (emhighenergy-V10-03-04)
- G4GammaConversionToMuons - changed parameterisation of nuclear
    elastic formfactor (A.Sokolov); use integer Z; speed-up
    sampling algorithm

19 Oct 2017: D.Sawkey (emhighenergy-V10-03-03)
- add dummy ProcessDescription for html doc

12 Oct 2017: V.Ivant (emhighenergy-V10-03-02)
- G4eeToHadrons - switched from ProcessDescription to StreamProcessInfo

11 Oct 2017: V.Ivant (emhighenergy-V10-03-01)
- G4eeToHadrons, G4eeToHadronsMultiModel - implemented new method
    Description(..) instead of PrintInfo()

03 Aug 2017: V.Ivant (emhighenergy-V10-03-00)
- G4eeToHadrons, G4hhIonisation, G4mplIonisation - make coherent
    model initialisation

1 Jun 2016: D.Sawkey (emhighenergy-V10-02-00)
- Most files: use C++11 features explicit, override, delete, nullptr

05 Now 2015: G.Cosmo (emhighenergy-V10-01-04)
- Replaced use of variable 'L' in G4eeToHadronsModel.cc to avoid
  shadowing of new volumetric units.

07 Apr 2015: V.Ivant (emhighenergy-V10-01-03)
- Added checks to do/while loops

28 Apr 2015: V.Ivant (emhighenergy-V10-01-02)
- G4eeTo3PiModel - do not use default constructor of G4LorentzVector

20 Feb 2015: V.Ivant (emhighenergy-V10-01-01)
- G4eeTo3PiModel - increased majoranta for sampling of 3-body final
    state; fixed bug in sampling

20 Feb 2015: V.Ivant (emhighenergy-V10-01-00)
- G4eeToHadronsModel - fixed kinematics in ISR gamma emission
    (problem #1716); added check on energy balance

22 Oct 2014: V.Ivant (emhighenergy-V10-00-05)
- G4eeToHadrons, G4hBremsstrahlung, G4hPairProduction,
  G4hhIonisation, G4mplIonisation - use G4EmParameters

07 Sept 2014: V.Ivant (emhighenergy-V10-00-04)
- G4GammaConversionToMuons - added protection agains infinite loop
    at the reaction threashold; removed G4ThreadLocal variables;
    introduced G4Exp, G4Log and nist functions; added counters
    limiting do/while loops

24 July 2014: V.Ivant (emhighenergy-V10-00-03)
24 July 2014: V.Ivant (emhighenergy-V10-00-02)
- G4Vee2hadrons - fixed build for gcc 4.1

18 July 2014: V.Ivant (emhighenergy-V10-00-01)
- G4eeTo3PiModel - fixed sampling algorithm

18 July 2014: V.Ivant (emhighenergy-V10-00-00)
- Naruhiro Chikuma verified and updated positron annihilation
    models: G4Vee2hadrons, G4ee2KChargedModel, G4ee2KNeutralModel,
    G4eeTo3PiModel, G4eeToHadronsMultiModel, G4eeToPGammaModel,
    G4eeToTwoPiModel, G4eeToHadronsModel; and process G4eeToHadrons
    This includes adition on extra inline methods to convert from Lab
    to CM, to initilise models, more correct thresholds,
    migration to updated PhysicsVector interfaces

13 November 2013: V.Ivant (emhighenergy-V09-06-09)
- G4mplIonisationModel - fixed compillation problem of the previous tag

12 November 2013: V.Ivant (emhighenergy-V09-06-08)
- G4mplIonisationModel, G4mplIonisationWithDeltaModel - fixed electron
    gas ionisation part of a model (problem is identified by Zukai Wang
    <zw4vm@virginia.edu>); before model was working correctly for
    very heavy monopoles in Silicon and not accurate for other media

19 August 2013: V.Ivant (emhighenergy-V09-06-07)
- G4hPairProductionModel - do not call obsolete SetElement() method;
    use G4Log and G4Exp
- G4hBremsstrahlungModel - use G4Log

09 August 2013: V.Ivant (emhighenergy-V09-06-06)
09 August 2013: V.Ivant (emhighenergy-V09-06-05)
- G4hBremsstrahlung - use inheritence of G4MuBremsstrahlung;
    removed unused headers;
- G4hPairProduction - use inheritence of G4MuPairProduction;
    removed unused headers; lowestEnergy limit should not be lower
    than 8*mass because in that case the model is not applicable

09 July 2013: V.Ivant (emhighenergy-V09-06-04)
- G4hPairProductionModel - substitute SetCurrentElement(G4double)
    by SetElement(G4int)

03 July 2013: V.Ivant (emhighenergy-V09-06-03)
- G4mplIonisationModel, G4mplIonisationWithDeltaModel - changed
    interface to G4VEmFluctuations

10 January 2013: V.Ivant (emhighenergy-V09-06-02)
- G4mplIonisationWithDeltaModel - minor cleanup

09 January 2013: V.Ivant (emhighenergy-V09-06-01)
- G4mplIonisationWithDeltaModel - fixed factor for cross section
    of delta-electron production

10 December 2012: V.Ivant (emhighenergy-V09-06-00)
- G4eeTo3PiModel - removed printout from destructor (fixed bug #1404)

21 July 2012: V.Ivant (emhighenergy-V09-05-03)
- G4hBremsstrahlung, G4mplIonisation,  G4hPairProduction -
    secondary particle type defined in constructors and not in Initialise()
    method, this is needed for correct initialisation at G4_PreInit

11 July 2012: G.Cosmo (emhighenergy-V09-05-02)
- Explicitly use inclusion of headers for system of units and physical
  constants, in plan to remove implicit inclusion from globals.hh.

07 June 2012: V.Ivant (emhighenergy-V09-05-01)
- Fixed variable shagowing

27 May 2012: V.Ivant (emhighenergy-V09-05-00)
- G4mplIonisation, G4mplIonisationModel, G4mplIonisationWithDeltaModel
    extended energy range of dedx and other tables for monopoles with large mass,
    this is required for interpolation of dEdx for super-heavy monopoles

10 November 2011: V.Ivant (emhighenergy-V09-04-02)
- G4hPairProduction, G4eeToHadronsMultiModel, G4hhIonisation,
  G4mplIonisationModel, G4mplIonisationWithDeltaModel - fixed
    initialisation problems reported by the Coverity tool

3 November 2011: V.Ivant (emhighenergy-V09-04-01)
- G4hBremsstrahlung, G4hPairProduction - improved initialisation
    allowing to used model instantiated in Physics List (potential
    saving initialisation time)

12 July 11: V.Ivanchenko (emhighenergy-V09-04-00)
- G4GammaConversionToMuons - removed include of unused header

26 October 10: V.Ivanchenko (emhighenergy-V09-03-02)
- Fixed problem reported by the Coverity tools (mainly pedantic
  initialisation)
- Added G4mplIonisationWithDeltaModel which is substituted
  G4mplIonisationModel by default - delat-ray production is required
  both by ATLAS and CMS

04 March 10: V.Ivanchenko (emhighenergy-V09-03-01)
- G4ICRU73NoDeltaModel - new model derived from G4ICRU73QOModel

28 March 10: V.Ivanchenko (emhighenergy-V09-03-00)
- G4mplIonisation - fixed IsApplicable method - always "true"
                    (CMS report crash in the case when several types
                     of monopoles are instantiated)

11 November 09: V.Ivanchenko (emhighenergy-V09-02-03)
- G4eeTo3PiModel - fixed vector product in matrix element

09 November 09: V.Ivanchenko (emhighenergy-V09-02-02)
- G4AnnihiToMuPair added method CrossSectionPerVolume;
                   added integral option to PostStepDoIt - more precise
                   simulation near cross section threshold

12 April 09: V.Ivanchenko (emhighenergy-V09-02-01)
- G4mplIonisationModel, G4eeToHadronsMultiModel - simplified initialisation

20 February 09: V.Ivanchenko (emhighenergy-V09-02-00)
- Cleanup: improved comments, move virtual methods from .hh to .cc

16 October 08: V.Ivanchenko (emhighenergy-V09-01-06)
- Updated processes enumeration and printout

21 July 08:  V.Ivanchenko (emhighenergy-V09-01-05)
- G4hBremsstrahlungModel, G4hPairProductionModel - do not use A in
                          the CrossSectionPerAtom

10 July 08:  V.Ivanchenko (emhighenergy-V09-01-04)
- G4eeCrossSections - migrated to PDG 2006
- G4eeToHadronsMultiModel - added main reaction channels for omega and
                            phi resonances
- New models: G4eeTo3PiModel, G4eeToPGammaModel, G4ee2KChargedModel,
  G4ee2KNeutralModel

8 July 08:  V.Ivanchenko (emhighenergy-V09-01-03)
- G4GammaConversionToMuons - all exit() substituted by warnings

4 April 08:  V.Ivanchenko (emhighenergy-V09-01-02)
- G4hBremsstrahlungModel - remove static const

14 March 08:  V.Ivanchenko (emhighenergy-V09-01-01)
06 March 08:  V.Ivanchenko (emhighenergy-V09-01-00)
- G4hBremsstrahlungModel, G4hBremsstrahlung, G4hPairProductionModel,
  G4hPairProduction are added
- SubType for all processes is initialized

13 November 07:  V.Ivanchenko (emhighenergy-V09-00-01)
- G4mplIonisationModel - introduced theoretical asymtotic low-energy
                         parameterization of dEdx

14 August 07:  V.Ivanchenko (emhighenergy-V09-00-00)
- G4mplIonisationModel - fixed low-energy parameterization of monopole
       energy loss; verified mean energy loss (M.Vladymirov)

31 May 07:  V.Ivanchenko (emhighenergy-V08-03-02)
- G4mplIonisation - fixed destruction of monopole ionisation model

23 May 07:  V.Ivanchenko (emhighenergy-V08-03-01)
- In all processes inherit from G4VEnergyLossProcess or G4VEmProcess
  remove method SecondaryPostStep;

22 May 07:  V.Ivanchenko (emhighenergy-V08-03-00)
- G4VEmModel - changed interface of SampleSecondary method, it become
  void, extra parameter std::vector<G4DynamicParticle*>*, all
  classes using or inhereting this interface are modified.
  About 5% speadup of EM shower simulation

25 October 06: V.Ivant (emhighenergy-V08-01-00)
- added G4mplIonisation and G4mplIonisationModel - ionisation for
  classic magnetic monopole
- G4hhIonisation - add maxKinEnergy class member (100 TeV)

15 February 05: V.Ivant (emhighenergy-V08-00-01)
- added functions G4BraggModel::ComputeCrossSectionPerElectron/Atom()
- added functions G4BraggIonModel::ComputeCrossSectionPerElectron/Atom()

10 January 05: V.Ivant (emhighenergy-V08-00-00)
- substitute the method SetStepLimits by SetStepFunction
- move initialisation of default values to the constructor

29 November 05: V.Ivant (emhighenergy-V07-01-04)
- Fix initialisation problems in G4hhIonisation and G4eeToHadrons and related classes

23 November 05: V.Ivant (emhighenergy-V07-01-03)
- G4eeToHadrons - fix verbosity, restore missing line
- G4eeToHadronsModel - change verbosity level

30 October 05: V.Ivant (emhighenergy-V07-01-02)
- Remove magnetic change from G4BraggNoDeltaModel and G4BetheBlochNoDeltaModel
- add G4hhIonisation - ionisation for heavy exotic particles

05 August 05: V.Ivant (emhighenergy-V07-01-01)
- Remove inline constructors and destructors

30 June 05: V.Ivant (emhighenergy-V07-01-00)
- Fix a misprint in G4BetheBlochNoDeltaModel

18 May 05: V.Ivant (highenergy-V07-00-01)
- Use optimised interfaces from utils - reorganise ee->hadrons models
- Add G4BetheBlochNoDeltaModel and G4BraggNoDeltaModel for simulation
  of energy loss of very heavy particles

13 April 05: V.Ivant (highenergy-V07-00-00)
- Migrade to updated interfaces of utils

01 Dec 04: V.Ivant (highenergy-V06-02-01)
- Migration to cmath

29 Nov 04: V.Ivant (highenergy-V06-02-00)
- Created

