------------------------------------------------------------------- ========================================================== Geant4 - an Object-Oriented Toolkit for Physics Simulation ========================================================== History file for hadronic/cross_sections directory -------------------------------------------------- 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) --------------------------------------------------------------- 9 December 2010 Dennis Wright (hadr-cross-V09-03-21) ----------------------------------------------------- - G4ElectroNuclearCrossSection::GetEquivalentPhotonEnergy() : remove initialization of array Y[]. This forced expensive re-calculation at each call. 26 November 2010 Vladimir Ivanchenko (hadr-cross-V09-03-20) ---------------------------------------------------------- - G4BGGPionElasticXS, G4BGGNucleonElasticXS,G4BGGNucleonInelasticXS fixed low-energy (E < 20 MeV) models - G4TripathiLightCrossSection - J.M.Quesada fix for threshold shape 23 November 2010 Vladimir Ivanchenko (hadr-cross-V09-03-19) ---------------------------------------------------------- - added G4CrossSectionInelastic and G4CrossSectionElastic - wrappers for components 19 November 2010 Gunter Folger (hadr-cross-V09-03-18) - replace leftover calls to GetIsoZACrossSection by GetZandACrossSection, and IsZAApplicable by IsIsoApplicable. 18 November 2010 Vladimir Ivanchenko (hadr-cross-V09-03-17) ---------------------------------------------------------- - G4NeutronCaptureXS, G4NeutronElasticXS, G4NeutronInelasticXS - do not use G4Element, only G4NistManager - G4ComponentAntiNuclNuclearXS - new class (A.Galoyan) 13 November 2010 Gunter Folger (hadr-cross-V09-03-16) ------------------------------------------------------ - Fix bug from Integer A&Z transition: - G4VCrossSectionDataSet.cc: make new methods (IsIsoApplicable, GetZandACrossSection) forward to old methods (IsZAApplicable, GetIsoZACrossSection); old methods print a obsolete warning once. - G4CrossSectionDataStore.cc: use new methods only. 12 November 2010 Gunter Folger (hadr-cross-V09-03-15) ------------------------------------------------------ - Add new class G4CrossSectionPairGG to extend a given cross-section with a scaled G4GlauberGribovCrossSection. Scaling result in smooth transition. 11 November 2010 Dennis Wright (hadr-cross-V09-03-14) ------------------------------------------------------ Back out memory leak fixes of G4NeutronElasticXS.cc and G4NeutronInelasticXS.cc Not a memory leak after all. 10 November 2010 Dennis Wright (hadr-cross-V09-03-13) ------------------------------------------------------ NOTE: this tag deals exclusively with fixes of CoVerity-identified bugs - G4HadronCrossSections.hh : fix uninitialized variable prevElement in ctor - Initialize arrays theGlauberFac and theCoulombFac in ctors of G4BGGNucleonElasticXS.cc, G4BGGNucleonInelasticXS.cc, G4BGGPionElasticXS.cc, G4BGGPionInelasticXS.cc - Initialize all elements of array Y[nE] to 0.0 in G4ElectroNuclearCrossSection::GetEquivalentPhotonEnergy() - Initialize fTotalXsc, fElasticXsc, fInelasticXsc, fProductionXsc, fDiffractionXsc, fHadronNucleonXsc to 0.0 in ctors of G4GlauberGribovCrossSection.cc, G4GGNuclNuclCrossSection.cc - Initialize fTotalXsc, fElasticXsc, fInelasticXsc, fHadronNucleonXsc to 0.0 in ctor of G4HadronNucleonXsc, - fix memory leak in G4NeutronElasticXS:Initialise and G4NeutronInelasticXS:Initialise : const G4Element* Elem = G4Element* G4NistManager::FindOrBuildElement(G4int Z, G4bool isotopes) Elem goes out of scope, so delete it - Initialize fTotalXsc, fElasticXsc to 0.0 in ctors of G4NucleonNuclearCrossSection.cc, G4PiNuclearCrossSection.cc - Initialize array theFac in ctors of G4UElasticCrossSection.cc, G4UInelasticCrossSection.cc 09 November 2010 Vladimir Ivanchenko (hadr-cross-V09-03-12) ----------------------------------------------------------- - G4VComponentCrossSection - use G4ParticleDefinition and kinetic energy instead of G4DynamicParticle - G4EMDissociationCrossSection - is now applicable for Hydrogen but cross section for Hydrogen is zero 20 October 2010 Gunter Folger (hadr-cross-V09-03-11) ---------------------------------------------------- - add missing inline for GetCrossSection in G4BGGPionElasticXS.hh 15 October 2010 Dennis Wright (hadr-cross-V09-03-10) ---------------------------------------------------- - integer Z and A migration: in all cross section data sets, replace IsZAApplicable with IsIsoApplicable and replace GetIsoZACrossSection with GetZandACrossSection 23 September 2010 Vladimir Ivanchenko (hadr-cross-V09-03-09) ------------------------------------------------------------ - G4NeutronElasticXS, G4NeutronInelasticXS, G4NeutronCaptureXS cleanup: use std vectors instead of C arrays; use G4HadronNucleonXsc class and PDG parameterisation for high energy cross sections off Hydrogen; removed Get/Set methods for verboseLevel 30 July 2010 Vladimir Ivanchenko (hadr-cross-V09-03-08) - G4IonProtonCrossSection - move virtual methods to source, add constructor and destructor, make G4ProtonInelasticCrossSection class member, fix bug in kinematics 05 July 2010 Vladimir Ivanchenko (hadr-cross-V09-03-07) - G4VComponentCrossSection - new interface for cross sections - G4VCrossSectionDataSet - added name, min and max kinetic energy and access methods 11 Jun 2010 Vladimir Ivanchenko (hadr-cross-V09-03-06) - G4UPiNuclearCrossSection - fixed memory leak at destruction - G4GlauberGribovCrossSection - (V.Grichine) updated for anti-protons 03 Jun 2010 Vladimir Ivanchenko (hadr-cross-V09-03-05) ------------------------------------------------------ - G4NeutronElasticXS, G4NeutronInelasticXS, G4NeutronCaptureXS - substitute environment variable G4NEUTRONXS by G4NEUTRONXSDATA 02 Jun 2010 Gunter Folger (hadr-cross-V09-03-04) ------------------------------------------------------ - fix compilation error on Windows: use G4lrint not lrint 29 Apr 2010 Gunter Folger (hadr-cross-V09-03-03) ------------------------------------------------------------ - G4CrossSectionDataStore integer Z and A transition ( note that cross sections data sets still have G4double in interface) 25 Mar 2010 Vladimir Ivanchenko (hadr-cross-V09-03-02) ------------------------------------------------------------ - G4CrossSectionDataSetRegistry - do not pop_back vector of pointers when DeRegister cross section data set - big fixed for Windows 17 Mar 2010 Gabriele Cosmo (hadr-cross-V09-03-01) ------------------------------------------------------------ - Cache computation of std::pow() in GetCaptureCrossSection() method of G4HadronCrossSections, to avoid repeated calls with same argument. 26 Feb 2010 Vladimir Ivanchenko (hadr-cross-V09-03-00) ------------------------------------------------------------ - G4UPiNuclearCrossSection - fixed bug for high Z (>83) atoms 9 Dec 2009 Gunter Folger (hadr-cross-V09-02-18) ------------------------------------------------------------ - G4TripathiLightCrossSection.cc modified by Macrus Mendenhall: - re-enable low energy check code, but without creating new instances of G4TripathiLightCrossSection 2 Dec 2009 Vladimir Ivanchenko (hadr-cross-V09-02-17) ------------------------------------------------------------ - G4CrossSectionDataSetRegistry - more accurate cross section deletion 25 Nov 2009 Gunter Folger (hadr-cross-V09-02-16) ------------------------------------------------------------ - modify upper limit of validity to 100 TeV in G4NeutronInelasticCrossSection, G4ProtonInelasticCrossSection, and G4PiNuclearCrossSection Use constant cross section above original range 23 Nov 2009 Vladimir Ivanchenko (hadr-cross-V09-02-15) ------------------------------------------------------------ - fixed mistake in previous tag 20 Nov 2009 Vladimir Ivanchenko (hadr-cross-V09-02-14) ------------------------------------------------------------ - use as a default hadron-nucleon cross section parameterisation of Nikolay Starkov in G4GlauberGribovCrossSection, G4GGNuclNuclCrossSection, G4NeutronElasticXS, G4NeutronInelasticXS, G4BGGNucleonElasticXS, G4BGGNucleonInelasticXS, G4BGGPionElasticXS, G4BGGPionInelasticXS 19 Nov 2009 Vladimir Ivanchenko (hadr-cross-V09-02-13) ------------------------------------------------------------ - restored head version of hadr-cross-V09-02-06 for all files, added bug fixes for G4BGGXX classes and added back new G4NeutronXXXS cross sections 17 Nov 2009 Mikhail Kosov (hadr-cross-V09-02-12) ------------------------------------------------------------ - CHIPS-cross_sections dependent classes are temporary moved to source/processes/hadronic/models/chiral_inv_phase_space/xs_dependent directory (till the beter place for CHIPS physics package is found) 16 Nov 2009 Mikhail Kosov (hadr-cross-V09-02-11) ------------------------------------------------------------ - dependency on CHIPS-cross_sections 12 Nov 2009 Vladimir Ivanchenko (hadr-cross-V09-02-10) ------------------------------------------------------------ - added G4NeutronElasticXS, G4NeutronInelasticXS, G4NeutronCaptureXS 11 Nov 2009 Mikhail Kosov (hadr-cross-V09-02-09) ------------------------------------------------------------ - CHIPS inelastic XS implementation in a form of G4VCrossSectionDataSet 4 Nov 2009 Mikhail Kosov (hadr-cross-V09-02-08) ------------------------------------------------------------ - Resolving of the circular dependency with CHIPS for the previous tag 23 Oct 2009 Mikhail Kosov (hadr-cross-V09-02-07) ------------------------------------------------------------ - in G4GlauberGribovCrossSection, G4GGNuclNuclCrossSection, G4HadronNucleonXsc the CHIPS hN cross-sections are used directly instead of three times replication 12 Aug 2009 Vladimir Ivanchenko (hadr-cross-V09-02-06) ------------------------------------------------------------ - G4CrossSectionDataSetRegistry - return to more simple variant of deletion, because of problem for specific PhysicsLists 08 Aug 2009 Vladimir Ivanchenko (hadr-cross-V09-02-05) ------------------------------------------------------------ - G4TripathiLightIonCrossSection - add simple check that X-section is positive and remove not optimal control - G4TripathiCrossSection - added constructor and destructor - G4CrossSectionDataSetRegistry - use pure stl commands to remove elements of stl vector 21 March 2009 Vladimir Ivanchenko (hadr-cross-V09-02-04) ------------------------------------------------------------ - G4IonsKoxCrossSection, G4IonsShenCrossSection, G4TripathiCrossSection, G4TripathiLightCrossSection - added protections against numerical exceptions (V.Grichine) - G4GGNuclNuclCrossSection - Glauber-Gribov new cross section for ions (V.Grichine) 25 February 2009 Vladimir Ivanchenko (hadr-cross-V09-02-03) ------------------------------------------------------------ - G4CrossSectionDataStore - added protection to the Clean method 14 February 2009 Vladimir Ivanchenko (hadr-cross-V09-02-02) ------------------------------------------------------------ - G4CrossSectionDataStore - added Clean method 06 February 2009 Vladimir Ivanchenko (hadr-cross-V09-02-01) ------------------------------------------------------------ 24 January 2009 Vladimir Ivanchenko (hadr-cross-V09-02-00) ------------------------------------------------------------ - G4CrossSectionDataStore - moved constructor and destructor to source, added destruction of data sets, use STL vector instead of C-array - G4CrossSectionDataSetRegistry - new singleton to keep pointers to cross section data sets - G4VCrossSectiondataSet - constructor and detructor moved to source and registration/deregistration added 01 December 2008 Vladimir Ivanchenko (hadr-cross-V09-01-07) ------------------------------------------------------------ G4BGGPionElasticXS, G4BGGPionInelasticXS, G4BGGNucleonInelasticXS, G4BGGNucleonElasticXS, G4UPiNuclearCrossSection - added proper Coulomb barrier and cleanup implementations 24 October 2008 Dennis Wright (hadr-cross-V09-01-06) ---------------------------------------------------- - replace G4NucleiPropertiesTable::IsInTable with G4NucleiProperties::IsInStableTable for G4PhotoNuclearCrossSection and G4ElectroNuclearCrossSection 24 September 2008 Vladimir Ivantchenko (hadr-cross-V09-01-05) ------------------------------------------------------------ - G4GlauberGribovCrossSection provides a smooth transition from Barashenkov cross sections at 90 GeV; set threshold 90 GeV in classes, where this cross section is used 16 September 2008 Dennis Wright (hadr-cross-V09-01-04) ------------------------------------------------------ - G4PiNuclearCrossSection.cc: comment out G4ping and its instances following result of Pete Elmer who showed G4ping is very slow 01 September 2008 Vladimir Ivantchenko (hadr-cross-V09-01-03) ------------------------------------------------------------ - G4CrossSectionDataStore - added method SampleZandA, which return G4Element and fill G4Nucleaus 28 April 2008 Dennis Wright (hadr-cross-V09-01-02) -------------------------------------------------- - T. Koi added capability to use element-based cross section data sets if no isotope-based ones are available. This is required to get the HP neutron code to work within the cross section framework introduced in version 9.0. Files affected: G4CrossSectionDataStore.hh, .cc. Added method whichDataSetInCharge(). - DHW: G4NeutronInelasticCrossSection.cc : fix bug which returned zero cross section for 3He - G4TripathiLightCrossSection::IsApplicable(): bug fix from T. Koi: changed theTarget->GetA() to theTarget->GetN() 31 March 2008 Dennis Wright (hadr-cross-V09-01-01) -------------------------------------------------- - G4GlauberGribovCrossSection.cc and G4HadronNucleonXsc.cc - put () around && in || in order to fix gcc-4.3 compiler warnings. 17 January 2008 Vladimir Ivantchenko (hadr-cross-V09-01-00) ---------------------------------------------------------- - G4PhotoNuclearCrossSection and G4ElectroNuclearCrossSection - move compicate inlined method with many returns to source; fixed one wrong return value (was zero instead of pseudo-inf) and comment out extra warning which tell nothing useful to users 28 June 2007 Dennis Wright (hadr-cross-V09-00-00) ------------------------------------------------- - V. Grichine changed log to std::log in G4HadronNucleonXsc.cc and G4GlauberGribovCrossSection.cc - D. Wright added log(0) protection in G4NeutronInelasticCrossSection.cc and G4ProtonInelasticCrossSection.cc 15 June 2007 Gabriele Cosmo (hadr-cross-V08-03-04) -------------------------------------------------- - Fixed memory leak in classes G4ElectroNuclearCrossSection and G4PhotoNuclearCrossSection. 08 June 2007 Vladimir Grichine ------------------------------ - Fixed bug in push_back of fTotalXsc for pi- in G4PiNuclearCrossSection. 08 June 2007 Vladimir Ivantchenko (hadr-cross-V08-03-03) ------------------------------------------------------- - G4PiNuclearCrossSection.cc - fix non-initilised total cross section for pi- 30 May 2007 Dennis Wright (hadr-cross-V08-03-02) ------------------------------------------------ - G4GlauberGribovCrossSection.cc, G4HadronNucleonXsc.cc fix compiler warning: un-initialized variable 24 May 2007 Dennis Wright (hadr-cross-V08-03-01) ------------------------------------------------ - G4HadronCrossSections.hh, .cc : replace PSIZE with NPARTS to avoid name conflict with SDK windows environment 23 May 2007 Dennis Wright for Vladimir Grichine (hadr-cross-V08-03-00) ---------------------------------------------------------------------- - G4GlauberGribovCrossSection.hh, .cc : add new methods: G4double GetRatioSD(const G4DynamicParticle*, G4double At, G4double Zt); G4double GetRatioQE(const G4DynamicParticle*, G4double At, G4double Zt); allowing one to get qe/in and sd/in ratios. - G4HadronNucleonXsc.hh, .cc : add new method GetHadronNucleonXscMK to get hadron-nucleon cross section using Mikhail Kossov's parameterization. 03 May 2007 Dennis Wright (hadr-cross-V08-02-06) ------------------------------------------------ - G4HadronCrossSections::GetParticleCode() : replace code which tested by particle name with code that tests by PDG ID. Also use switch-case instead of else-if. 02 Apr 2007 Gunter Folger (hadr-cross-V08-02-05) ------------------------------------------------ - G4PiNuclearCrossSection.cc: remove special treatment ('tuning') for Copper (Z=29), i.e. the Cu cross section is no longer lowered by 4% 22 Mar 2007 Dennis Wright for V. Ivanchenko (hadr-cross-V08-02-04) ------------------------------------------------------------------ - G4UPiNuclearCrossSection.cc: better handling of low energy cross sections - Added new classes (V.Ivanchenko): G4BGGNucleonElasticXS: proton and neutron elastic cross section wrapper class using Barashenkov parameterization below 100 GeV and Glauber-Gribov model above G4BGGNucleonInelasticXS: proton and neutron inelastic cross section wrapper of Barashenkov-Glauber-Gribov G4BGGPionElasticXS: pion elastic cross section wrapper of BGG G4BGGPionInelasticXS: pion inelastic cross section wrapper of BGG 8 Mar 2007 Dennis Wright for V. Ivanchenko (hadr-cross-V08-02-03) ----------------------------------------------------------------- - use G4NucleonNuclearCrossSection in G4UInelasticCrossSection and G4UElasticCrossSection (V.Ivanchenko) - complete implementations of A and Z interfaces to classes (V.Ivanchenko): G4UPiNuclearCrossSection G4UInelasticCrossSection G4UElasticCrossSection G4GlauberGribovCrossSection G4NucleonNuclearCrossSection 30 Jan 2007 Dennis Wright (hadr-cross-V08-02-02) ------------------------------------------------ - add divide by zero protection to G4CrossSectionDataStore::SelectRandomIsotope 27 Jan 2007 V. Ivanchenko (hadr-cross-V08-02-01) ------------------------------------------------ - add implementations of A and Z interfaces to classes: G4UPiNuclearCrossSection G4UInelasticCrossSection G4UElasticCrossSection G4GlauberGribovCrossSection G4NucleonNuclearCrossSection 27 Dec 2006 Dennis Wright (hadr-cross-V08-02-00) ------------------------------------------------ - added handling of user-defined isotope abundances for elements and proper cross section and abundance weighted choice of isotopes in reactions. New virtual methods for IsApplicable and GetCrossSections added to classes G4VCrossSectionDataSet and G4CrossSectionDataStore. Other classes affected: G4EMDissociationCrossSection.hh, .cc G4ElectroNuclearCrossSection.hh, .cc G4GeneralSpaceNNCrossSection.hh, .cc G4HadronCaptureDataSet.hh G4HadronCrossSections.hh, .cc G4HadronElasticDataSet.hh G4HadronFissionDataSet.hh G4HadronInelasticDataSet.hh G4IonProtonCrossSection.hh G4IonsKoxCrossSection.hh, .cc G4IonsShenCrossSection.hh, .cc G4IonsSihverCrossSection.hh, .cc G4NeutronInelasticCrossSection.hh, .cc G4PhotoNuclearCrossSection.hh, .cc G4PiNuclearCrossSection.hh, .cc G4ProtonInelasticCrossSection.hh, .cc G4TripathiCrossSection.hh, .cc G4TripathiLightCrossSection.hh, .cc NOTE: This tag should be used with the tag hadr-man-V08-02-00 of the hadronic/management directory because G4HadronicProcess was affected also. - from Vladimir Grichine: added new class G4NucleonNuclearCrossSection which contains Barashenkov cross sections for nucleon-nucleus scattering modified the G4PiData and G4GlauberGribovCrossSection classes added ROOT files to test/analysis directory 16 Nov 2006 D.W. for Vladimir Grichine (hadr-cross-V08-01-08) ------------------------------------------------------------- - G4GlauberGribovCrossSection: extend applicability down to 0.3 GeV for protons and neutrons (not 100 MeV as in hadr-cross-V08-01-06) - Dennis Wright: add missing methods G4double GetHadronNucleaonXsc(const G4DynamicParticle*,G4double At,G4double Zt); G4double GetHadronNucleaonXscNS(const G4DynamicParticle*,const G4Element*); G4double GetHadronNucleaonXscNS(const G4DynamicParticle*,G4double At,G4double Zt); to get code to compile - initialize hpXsc, hnXsc to 0 15 Nov 2006 Tatsumi Koi (hadr-cross-V08-01-07) ---------------------------------------------------------------------- - include/G4IonsShenCrossSection.hh - src/G4IonsShenCrossSection.cc : extend range of validity to 1TeV/n, using constant cross section above 10GeV/n. 13 Nov 2006 Dennis Wright for Vladimir Grichine (hadr-cross-V08-01-06) ---------------------------------------------------------------------- - G4GlauberGribovCrossSection.cc: extend range of validity for protons down to 100 MeV 3 Oct 2006 Gunter Folger (hadr-cross-V08-01-04) --------------------------------------------------- - G4ProtonInelasticCrossSection: extend range of validity to 1TeV, using constant cross section above 20GeV. 2 Oct 2006 Vladimir Grichine (hadr-cross-V08-01-03) --------------------------------------------------- - G4GlauberGribovCrossSection::GetCrossSection() : fix bug in inelastic cross section. Bug was discovered in the paper from which the cross was derived. 31 Aug 2006 Vladimir Ivanchenko (hadr-cross-V08-01-02) ------------------------------------------------------ - new wrapper cross section classes G4UInelasticCrossSection and G4UElasticCrossSection which combine cross sections from different data sets - new G4UPiNuclearCrossSection providing another implementation of elastic and inelastic cross sections from Barashenkov 17, 21 Aug 2006 Gunter Folger (same tag as 31 Aug above) -------------------------------------------------------- - added two missing Ca inelastic pi- entries, changed formatting - changed scaling of cross sections for elements not tabulated from scaling in Z^(2/3) to A^0.75 11 Aug 2006 Dennis Wright (hadr-cross-V08-01-00) ------------------------------------------------ - new cross section class G4GlauberGribovCrossSection for proton, pion, kaon, (and maybe gamma and neutron) total and elastic cross sections introduced by V. Grichine. Effective energies: > 3 GeV.