# Category proccuts 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!

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

## 2025-03-25 Ivana Hrivnacova (proccuts-V11-03-00)
- In  G4ProductionCutsTable::UpdateCoupleTable:
  Make sure that the couple tables are updated if userEnergyCuts
  vectors are set

## 2023-10-24 Ivana Hrivnacova (proccuts-V11-01-01)
- G4ProductionCutsTable - Added method CreateCoupleTables()
  separated from UpdateCoupleTable() needed to prepare
  class data for usafe new SetEnergyCutVector(...)

## 2023-09-29 Vladimir Ivantchenko (proccuts-V11-01-00)
- G4ProductionCutsTable - added method SetEnergyCutVector(...)
    requested by ALICE experiment

## 2022-11-16 Gabriele Cosmo (proccuts-V11-00-06)
- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1.

## 2022-06-01 Vladimir Ivantchenko (proccuts-V11-00-05)
- G4VRangeToEnergyConverter - do not set lock inside private static
    method; code clean-up
- G4ProductionCuts - removed unnecessary thread local variables;
    code clean-up and simplified

## 2022-06-13 Sergio Losilla (proccuts-V11-00-04)
- Added warning when trying to set cuts for particles other than
  gamma, e-, e+ or proton.

## 2022-05-07 Vladimir Ivantchenko (proccuts-V11-00-03)
- G4VRangeToEnergyConverter - fixed static methods to provide
    initialisation of energy limits independently on order of
    calls in user code; use G4Autoloack to simplify the code;
    use "s" prefix for static class members

## 2022-03-14 Ivana Hrivnacova (proccuts-V11-00-02)
- G4VRangeToEnergyConverter - fixed clearing of static data
    in destructor

## 2022-01-19 Vladimir Ivantchenko (proccuts-V11-00-01)
- G4VRangeToEnergyConverter - fixed construction/destruction of
    static data (initial problem identified by I. Hrivnacova)

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

---

# History entries prior to 11.0

October. 12th, 2021 - V.Ivanchenko (proccuts-V10-07-05)
- G4PhysicsTableHelper - fixed Coverity warning due to index type,
    removed G4ThreadLocal variable, substitute old cerr by 
    G4Exception (old printouts are kept), removed unused headers
- G4MCCIndexConversionTable - changed inline functions -only one
    return is left instead of two

September. 1th, 2021 - V.Ivanchenko (proccuts-V10-07-04)
- G4VRangeToEnergyConverter, G4RToEConvForPositron,
  G4RToEConvForElectron, G4RToEConvForGamma, G4RToEConvForProton
    Simplified the design - do not use G4PhysicsTable and 
    G4PhysicsVector but convert range cut to production threshold 
    directly; expected memory reduction for big detectors and
    some speed-up of initialisation

July. 18th, 2021 - V.Ivanchenko (proccuts-V10-07-03)
- G4VRangeToEnergyConverter - updated interfaces to G4PhysicsVector

July. 11th, 2021 - V.Ivanchenko (proccuts-V10-07-02)
- G4PhysicsTableHelper - fixed minor Coverity report

May. 26th, 2021 - V.Ivanchenko (proccuts-V10-07-01)
- G4PhysicsTableHelper - updated interface to Retrieve(..) method

Apr. 16th, 2021 - B. Morgan (proccuts-V10-07-00)
- Migrate build to modular CMake API

Jun. 5th, 2020  - G.Cosmo (procuts-V10-06-00)
- Revision for use of c++11 constructs. Code cleanup and formatting.

Nov. 19th, 2019  - G.Cosmo (procuts-V10-05-02)
- Fixed cases of implicit type conversions from size_t to G4int.

Apr. 24th, 2019  - M.Asai (procuts-V10-05-01)
- Add protection against premature call to G4ProductionCutsTable.

Mar. 11th, 2019  - G.Cosmo (procuts-V10-05-00)
- Fixed typos in printouts in G4PhysicsTableHelper and G4ProductionCutsTable.

Aug. 13th, 2018  - H.Kurashige (procuts-V10-04-00)
- clean up codes (use nullptr, and so on )

Oct. 4th, 2015  - M.Asai (procuts-V10-01-05)
- G4VRangeToEnergyConverter: recover Reset() to its destructor.

Aug. 10th, 2015   - H.Kurashige (procuts-V10-01-04)
- Modify loop_counter for better performance

Aug. 9th, 2015   - H.Kurashige (procuts-V10-01-03)
- Remove while loop from G4VRangeToEnergyConverter::ConvertCutToKineticEnergy

May. 25th, 2014  - H.Kurashige (procuts-V10-00-02)
- Fix Coverity defects in G4VRangeToEnergyConverter

Apr. 27th, 2014  - H.Kurashige (procuts-V10-00-01)
- Fix Coverity defects in G4VRangeToEnergyConverter

Jan. 23rd, 2014  - H.Kurashige (procuts-V10-00-00)
- Fix compiler warning in G4ProcessCutsTable.cc

Nov. 21st, 2013  - H.Kurashige (procuts-V09-06-09)
- Fix Coverity defects in G4VRangeToEnergyConverter destructor

Nov. 21st, 2013  - H.Kurashige (procuts-V09-06-08)
- Fix Coverity defects in G4VRangeToEnergyConverter CTOR

July 21st, 2013  - H.Kurashige (procuts-V09-06-07)
- Fix the bug in G4ProductionCuts copy constructor

June 21st, 2013  - M.Asai (procuts-V09-06-06)
- G4ProductionCutstable: print out energy thresholds regardless of
  G4MaterialCutsCouple::IsReCalcNeeded().

June 16th, 2013  - M.Asai (procuts-V09-06-05)
- G4VRangeToEnergyConverter: stop calling Reset() from its destructor.

June 5th, 2013   - V.Ivanchenko (procuts-V09-06-04)
  G4VRangeToEnergyConverter: members LowestEnergy, HighestEnergy,
    MaxEnergyCut become static and not G4ThreadLocal - this
    is needed to fix FPE crash in MT mode; fixed all loops for
    G4PhysicsLogVector - upper index is nbins+1

June 4th, 2013   - H.Kurashige (procuts-V09-06-03)
- Modify G4RToEConvForXXX to remove unnecessary static declaration
  (Some static variables are moved to simple member of the class)

May. 30th, 2013   - G.Cosmo (procuts-V09-06-02)
- Added protection to initialisation of static data in
  G4VRangeToEnergyConverter constructor.
  NOTE: static data in G4VRangeToEnergyConverter should eventually NOT be
        thread-local, as related modifiers should be called -only- at
        initialisation phase (by physics-lists). This needs to be verified
        so that thread-local specifications can be safely removed!
        Is it also -bad- practice to have a -base- class like
        G4VRangeToEnergyConverter containing static data that can be modified
        through static methods, as these can be modified before the actual
        constructor is called (as it is not a singleton)!!  Needs to review
        this as well!

May. 29th, 2013   - G.Cosmo (procuts-V09-06-01, procuts-V09-06-00)
- Cleanup from automatic MT changes in G4VRangeToEnergyConverter,
  G4ProductionCuts and G4RToEConvForElectron.

Jul. 5th, 2012   - G.Cosmo (procuts-V09-05-04)
- Explicitly use inclusion of headers for system of units and physical
  constants, in plan to remove implicit inclusion from globals.hh.

Jun. 20th, 2012  - G.Cosmo (procuts-V09-05-03)
- Fixed compilation warning in G4VRangeToEnergyConverter when
  G4_NO_VERBOSE is set.

Jun. 7th, 2012   - G.Cosmo (procuts-V09-05-02)
- Fixed spurious cases of hidden variable visibility, detected with
  '-Wshadow' compilation option on gcc compiler.

Apr. 27th, 2012  - H.Kurashige (procuts-V09-05-01)
- Fix a bug in G4ProductionCutsTable::RetrieveCutsInfo
  (TAINED_SCALAR by Coverity)

Aug. 10th, 2011  -  M.Asai (procuts-V09-04-05)
- Introducing parallel layered mass geometry.
  Material-cuts-couple is now updated for all worlds.
  Modified: G4ProductionCutsTable.cc

Aug.  3rd, 2011  -  H.Kurashige (procuts-V09-04-04)
- Fix erros reported by Coverity
 G4VRangeToEnergyConverter.cc G4ProductionCutsTable.cc

May  13rd, 2011  -  H.Kurashige (procuts-V09-04-03)
- Fix compiler warnings in G4RToEConvForGamma.cc

May   3rd, 2011  -  H.Kurashige (procuts-V09-04-01,-02)
- Fix erros reported by Coverity

Jan. 26th, 2011  -  H.Kurashige (procuts-V09-04-00)
- Add protection in G4ProductionCuts::SetProductionCuts
  to check consistencies of size of given vector
- Define error codes for G4Exceptions

Oct.  7th, 2010  -  H.Kurashige (procuts-V09-03-01)
- Fixed a possible memory leak soource

Jan. 22th, 2010  -  H.Kurashige (procuts-V09-03-00)
- Fixed G4ProductionCutTable to solve problems with zero range for protons

Nov. 12th, 2009  -  H.Kurashige (procuts-V09-02-08)
- Correfct spelling of /cuts/setMaxCutEnergy command

Nov. 11th, 2009  -  H.Kurashige (procuts-V09-02-07)
- Add /cuts/setMaxCutEnregy command

Sep. 14th, 2009  -  H.Kurashige (procuts-V09-02-06)
- Add  G4ProductionCutTable::ResetConverters()
   to clear loss tables and range vectors

Sep. 12th, 2009  -  H.Kurashige (procuts-V09-02-05)
- Modify G4VRangeToEnergyConverter::ConvertCutToKineticEnergy
   to improve performance

Sep. 11th, 2009  -  H.Kurashige (procuts-V09-02-04)
- Modify BuildRangeVector where integration is perfomed in this method
  (i.e. not using RangeXXSimpson methods)
- G4VRangeToEnergyConverter::BuildRangeVector is for e+/e-
- G4VRangeToEnergyConverter::TotBin is changed to constant (i.e. same for all converters)
- Remove RToEConverter for neutron, anti-protprtton, and anti-neutron

Sep. 10th, 2009  -  H.Kurashige (procuts-V09-02-03)
- Add G4VRangeToEnergyConverter::MaxEnergyCut
   ( 10 GeV is set in default)
- Add G4VRangeToEnergyConverter::fRangeVectorStore
   to ensure that RangeVector is created only one for each material
- Set G4VRangeToEnergyConverter::TotBin to 100
   ( 200 for previous versions)

Aug. 1st, 2009  -  H.Kurashige (procuts-V09-02-02)
- Add cuts for proton
  (need co-work with G4VUserPhysicsList update)

July 29, 2009  -  H.Kurashige (procuts-V09-02-01)
- Add implemtentaion of G4VRangeToEnergyConverter::GetParticleType

May 2nd, 2009  -  H.Kurashige (procuts-V09-02-00)
- Use std::fabs instead of std::abs.

March 2nd, 2008  -  H.Kurashige (procuts-V09-01-00)
- Add ProductionCutsMessenger
- Suppress 'too big cut value' messsage for higher verbosity

June 6th, 2007 -  L.Urban (procuts-V08-03-01)
- Fix in G4VRangeToEnergyConverter::convert(), range-energu conversion,
  correcting artifact observed in the visible energy plot over range-cut,
  where a jump in the distribution was evident.
  The correction can influence the result only for the tests, where
  the e+/e- energy cuts are below 30 keV and even in this case the change
  in results should be small.

May 30th, 2007 -  H.Kurashige (procuts-V08-03-00)
- Fix  G4ProductionCutsTable::CheckMaterialCutsCoupleInfo

March 15th, 2007 -  H.Kurashige (procuts-V08-02-00)
- Add   G4ProductionCutsTable::ConvertRangeToEnergy

June 9th, 2006 -  H.Kurashige (procuts-V08-00-03)
- Fix memory leak in  G4ProductionCutsTable and G4PhysicsTableHelper

June 1st, 2006 -  H.Kurashige (procuts-V08-00-02)
- Fix memory leak in  G4ProductionCutsTable


May 26th, 2006 -  H.Kurashige (procuts-V08-00-01)
- Fix memory leak in  G4VRangeToEnergyConverter::BuildLossTable


January  18th, 2006 - H.Kurashige (procuts-V08-00-00)
- Fix G4VRangeToEnergyConverter::Convert to recalculate the Energy Loss table
  if new elements are added

November 18th, 2005 - M.Asai (procuts-V07-01-01)
- migration to sstream.

October 28th, 2005 - M.Asai (procuts-V07-01-00)
- Working tag for merging "envelope" to G4Region.

December 2nd, 2004 - H.Kurashige (procuts-V06-02-03)
- migration to cmath

November 7th, 2004 - H.Kurashige (procuts-V06-02-02)
- Fixed misspelling in method name for  G4PhysicsTableHelper::RetrievePhysicsTable

October 25th, 2004 - H.Kurashige (procuts-V06-02-01)
- Add G4MCCIndexConversionTable and modify G4ProductionCutsTable
  in order to  extend functionality of Store/RetrievePhysicsTable
- Add G4PhysicsTableHelper in order to assist implementation of
  new scheme of Store/RetrievePhysicsTable for processes


September 28th, 2004 - M.Asai (procuts-V06-02-00)
- Fixed bug in G4ProductionCutsTable for the update of materials/cuts
  couple for dynamic setups where material may vary, like in the case
  of parameterization of detectors through material.
- The tag coworks with the geometry tags: "geommng-V06-02-02" and
  "geomnav-V06-02-04".

June 7th, 2004 - G.Cosmo (procuts-V06-01-01)
- Moved usage of statics in inline functions to non-inline to allow
  porting for DLLs on Windows. Modified G4ProductionCuts[.hh.cc].

March 31st, 2004 - H.Kurashige (procuts-V06-01-00)
- Modify  G4ProductionCutsTable::RetrieveCutsTable to allow
   ordering of materials and couples can be different from
   one in file

November 8th, 2003 - H.Kurashige (procuts-V05-02-03)
- Fixed bugs in G4VRangeToEnergyConverter (and related class)
- Revised error messages in retreiving ProductionCutsTable

November 7th, 2003 - H.Kurashige (procuts-V05-02-02)
- Revised error messages in retreiving ProductionCutsTable

November 3th, 2003 - H.Kurashige (procuts-V05-02-01)
- Modified error messages in retreiving ProductionCutsTable
- Add verboseLevel in G4ProductionCutsTable

September 19th, 2003 - G.Cosmo  (procuts-V05-02-00)
- Created new sub-category 'cuts'.
  Moved classes from particles/management.
