Import Geant4 10.7.0 source tree

This commit is contained in:
Gabriele Cosmo
2020-12-04 12:30:43 +01:00
parent 67ba86d073
commit dab42d2018
3770 changed files with 226369 additions and 286486 deletions
@@ -15,6 +15,9 @@ code and to keep track of all tags.
* Please list in reverse chronological order (last date on top)
---------------------------------------------------------------
15 Nov 2020 - Jose Luis Rodriguez Sanchez (hadr-abla-V10-06-00)
--------------------------------------------------
- Fix some coverity warnings.
08 Oct 2018 - Jose Luis Rodriguez Sanchez (hadr-abla-V10-04-06)
--------------------------------------------------
@@ -4,7 +4,7 @@
# Package: Geant4.src.G4processes.G4hadronic.G4hadronic_models.G4had_hetcpp.G4hadronic_hetcpp_utils
#
# Sources description for a library.
# Lists the sources and headers of the code explicitely.
# Lists the sources and headers of the code explicitly.
# Lists include paths needed.
# Lists the internal granular and global dependencies of the library.
# Source specific properties should be added at the end.
@@ -14,35 +14,9 @@
#
#------------------------------------------------------------------------------
# List external includes needed.
include_directories(${CLHEP_INCLUDE_DIRS})
# List internal includes needed.
include_directories(${CMAKE_SOURCE_DIR}/source/geometry/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/geometry/volumes/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPGeometry/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPRandom/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/materials/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/bosons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/barions/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/ions/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/mesons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/leptons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/handler/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/evaporation/include)
include_directories(${CMAKE_SOURCE_DIR}/source/track/include)
include_directories(${CMAKE_SOURCE_DIR}/source/intercoms/include)
#
# Define the Geant4 Module.
#
include(Geant4MacroDefineModule)
GEANT4_DEFINE_MODULE(NAME G4hadronic_abla_abla
HEADERS
G4AblaDataDefs.hh
@@ -1317,15 +1317,13 @@ c Clear BU_TAB (array of multifragmentation products)
EV_TAB[i][3] = VYOUT;
EV_TAB[i][4] = VZOUT;
}
if(IMULTBU>200)std::cout << "IMULTBU>200 " << IMULTBU << std::endl;
delete problamb;
delete Nblamb;
}// if(T_diff>0.1)
// End of multi-fragmentation
// End of multi-fragmentation
mult7777:
// std::cout << "hola 100" << std::endl;
// Start basic de-excitation of fragments
aprfp = idnint(aprf);
zprfp = idnint(zprf);
@@ -5093,7 +5091,7 @@ G4double G4Abla::eflmac(G4int ia, G4int iz, G4int flag, G4int optshp)
- 3.0/4.0 * (1.0 + 9.0/(2.0*y0) + 7.0/std::pow(y0,2)
+ 7.0/(2.0 * std::pow(y0,3))) * std::exp(-2.0*y0));
// now calulation of total binding energy a.j. 16.7.96
// now calculation of total binding energy a.j. 16.7.96
efl = -1.0 * av*(1.0 - kv*i*i)*a + as*(1.0 - ks*i*i)*b1 * std::pow(a,(2.0/3.0)) + a0
+ c1*z*z*b3/std::pow(a,(1.0/3.0)) - c4*std::pow(z,(4.0/3.0))/std::pow(a,(1.e0/3.e0))
@@ -5360,7 +5358,7 @@ C BARR - Barrier
C OMEGA - Curvature of the potential
C
C BASS MODEL NPA 1974 - used only if expansion is considered (OPTEXP=1)
C or one wants this model explicitely (OPTBAR=1)
C or one wants this model explicitly (OPTBAR=1)
C October 2011 - AK - new parametrization of the barrier and its position,
C see W.W. Qu et al., NPA 868 (2011) 1; this is now
C default option (OPTBAR=0)
@@ -7056,8 +7054,15 @@ void G4Abla::imf(G4double ACN,G4double ZCN,G4double TEMP,G4double EE,G4double *Z
G4double BBIMF[98][251];
G4double SSBIMF[98][251];
G4int OPTSHPIMF=opt->optshpimf;
// Initialization
for (G4int ia = 0; ia < 98; ia++)
for (G4int ib = 0; ib < 251; ib++) {
BBIMF[ia][ib] = 0.0;
SSBIMF[ia][ib] = 0.0;
}
// take the half of the CN and transform it in integer (floor it)
// take the half of the CN and transform it in integer (floor it)
IZIMFMAX = idnint(ZCN / 2.0);
if(IZIMFMAX<3){
@@ -7469,7 +7474,7 @@ G4int VISOSTAB[191][2]={
void G4Abla::evap_postsaddle(G4double A, G4double Z, G4double EXC, G4double *E_scission_post, G4double *A_scission, G4double *Z_scission,G4double &vx_eva,G4double &vy_eva,G4double &vz_eva,G4int *NbLam0_par){
// AK 2006 - Now in case of fission deexcitation between saddle and scission
// is explicitely calculated. Langevin calculations made by P. Nadtochy
// is explicitly calculated. Langevin calculations made by P. Nadtochy
// used to parametrise saddle-to-scission time
G4double af,zf,ee;
@@ -9138,7 +9143,7 @@ G4double G4Abla::eflmac_profi(G4double ia, G4double iz)
- 3.0/4.0 * (1.0 + 9.0/(2.0*y0) + 7.0/std::pow(y0,2)
+ 7.0/(2.0 * std::pow(y0,3))) * std::exp(-2.0*y0));
// now calulation of total binding energy
// now calculation of total binding energy
efl = -1.0 * av*(1.0 - kv*i*i)*a + as*(1.0 - ks*i*i)*b1 * std::pow(a,(2.0/3.0)) + a0
+ c1*z*z*b3/std::pow(a,(1.0/3.0)) - c4*std::pow(z,(4.0/3.0))/std::pow(a,(1.e0/3.e0))
@@ -9857,7 +9862,9 @@ void G4Abla::unstable_tke(G4double ain,G4double zin,G4double anew,G4double znew,
ianew = idnint(anew);
iznew = idnint(znew);
innew = ianew - iznew;
//
//
if(ain==0)return;
//
if(izin>12){
mglms(ain,zin,3,&MASS);
mglms(anew,znew,3,&MASS1);
@@ -4,7 +4,7 @@
# Package: Geant4.src.G4processes.G4hadronic.G4hadronic_models.G4hadronic_abrasion
#
# Sources description for a library.
# Lists the sources and headers of the code explicitely.
# Lists the sources and headers of the code explicitly.
# Lists include paths needed.
# Lists the internal granular and global dependencies of the library.
# Source specific properties should be added at the end.
@@ -14,48 +14,9 @@
#
#------------------------------------------------------------------------------
# List external includes needed.
include_directories(${CLHEP_INCLUDE_DIRS})
# List internal includes needed.
include_directories(${CMAKE_SOURCE_DIR}/source/geometry/magneticfield/include)
include_directories(${CMAKE_SOURCE_DIR}/source/geometry/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/geometry/volumes/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPGeometry/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPNumerics/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPRandom/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/materials/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/bosons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/barions/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/ions/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/mesons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/leptons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/shortlived/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/cross_sections/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/ablation/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/evaporation/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/fermi_breakup/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/handler/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/multifragmentation/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/photon_evaporation/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/im_r_matrix/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/pre_equilibrium/exciton_model/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/processes/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/track/include)
#
# Define the Geant4 Module.
#
include(Geant4MacroDefineModule)
GEANT4_DEFINE_MODULE(NAME G4hadronic_abrasion
HEADERS
G4NuclearAbrasionGeometry.hh
@@ -4,7 +4,7 @@
# Package: Geant4.src.G4processes.G4hadronic.G4hadronic_models.G4hadronic_binary
#
# Sources description for a library.
# Lists the sources and headers of the code explicitely.
# Lists the sources and headers of the code explicitly.
# Lists include paths needed.
# Lists the internal granular and global dependencies of the library.
# Source specific properties should be added at the end.
@@ -14,47 +14,9 @@
#
#------------------------------------------------------------------------------
# List external includes needed.
include_directories(${CLHEP_INCLUDE_DIRS})
# List internal includes needed.
include_directories(${CMAKE_SOURCE_DIR}/source/geometry/magneticfield/include)
include_directories(${CMAKE_SOURCE_DIR}/source/geometry/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/geometry/volumes/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPGeometry/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPNumerics/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPRandom/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/materials/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/bosons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/barions/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/ions/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/mesons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/leptons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/shortlived/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/cross_sections/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/evaporation/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/fermi_breakup/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/handler/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/multifragmentation/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/photon_evaporation/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/im_r_matrix/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/pre_equilibrium/exciton_model/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/processes/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/track/include)
#
# Define the Geant4 Module.
#
include(Geant4MacroDefineModule)
GEANT4_DEFINE_MODULE(NAME G4hadronic_binary
HEADERS
G4Absorber.hh
@@ -373,7 +373,7 @@ G4HadFinalState * G4BinaryCascade::ApplyYourself(const G4HadProjectile & aTrack,
} else { // no interaction, return primary
if(std::getenv("BCDEBUG") ) G4cerr << " ######### Binary Cascade Reaction void, return intial state ######### "<< G4endl;
if(std::getenv("BCDEBUG") ) G4cerr << " ######### Binary Cascade Reaction void, return initial state ######### "<< G4endl;
theParticleChange.SetStatusChange(isAlive);
theParticleChange.SetEnergyChange(aTrack.GetKineticEnergy());
theParticleChange.SetMomentumChange(aTrack.Get4Momentum().vect().unit());
@@ -94,7 +94,7 @@ void G4BinaryLightIonReaction::ModelDescription(std::ostream& outFile) const
<< "using G4BinaryCasacde to model the interaction of a light\n"
<< "nucleus with a nucleus.\n"
<< "The lighter of the two nuclei is treated like a set of projectiles\n"
<< "which are transported simultanously through the heavier nucleus.\n";
<< "which are transported simultaneously through the heavier nucleus.\n";
}
//--------------------------------------------------------------------------------
@@ -1195,7 +1195,7 @@ Re-tag with subdirectories "utils" and "evaporation" (excluded by mistake).
------------------------------------------------------
- G4TwoBodyAngularDist: NEW Factory singleton containing all of the
angular-distribution generators created below. Code from G4EPCollider to
choose generator based on intial and final states moved here, accessed
choose generator based on initial and final states moved here, accessed
through static function.
- G4ElementaryParticleCollider: Angular distribution generators moved to
@@ -3662,7 +3662,7 @@ interfaces between pion/nucleon and kaon/hyperon samplers.
conditional dimensioning (e.g., if N8==0, use [1]). Define second
9-body constructor to accept and initialize the new arrays.
4) Eliminate static intialization of index[], moving it into
4) Eliminate static initialization of index[], moving it into
initialize(). Template specialization can't be used with data!
5) Add separate "sum" (summed N-body cross-sections) and "tot" arrays
@@ -27,7 +27,7 @@
// Date: 7 March 2013
//
// Description: Singleton class to evaluate multi-body momentum distribution
// functions based on intial state codes and multiplicity.
// functions based on initial state codes and multiplicity.
//
// NOTE: Separate multiplicity-3 generators are not used, per V.Uzhinsky
//
@@ -27,7 +27,7 @@
// Date: 21 February 2013
//
// Description: Singleton class to evaluate two-body angular distribution
// functions based on intial/final state codes.
// functions based on initial/final state codes.
//
// 20130307 M. Kelsey -- Add verbosity interface for contained objects
// 20130422 M. Kelsey -- Add three-body distributions, for temporary use
@@ -4,7 +4,7 @@
# Package: Geant4.src.G4processes.G4hadronic.G4hadronic_models.G4had_hetcpp.G4hadronic_bert_cascade
#
# Sources description for a library.
# Lists the sources and headers of the code explicitely.
# Lists the sources and headers of the code explicitly.
# Lists include paths needed.
# Lists the internal granular and global dependencies of the library.
# Source specific properties should be added at the end.
@@ -35,47 +35,9 @@
# 20150323 M. Kelsey -- Add newly split G4KaonSampler and G4HyperonSampler
#------------------------------------------------------------------------------
# List external includes needed.
include_directories(${CLHEP_INCLUDE_DIRS})
# List internal includes needed.
include_directories(${CMAKE_SOURCE_DIR}/source/geometry/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/geometry/volumes/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPGeometry/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPNumerics/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPRandom/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/intercoms/include)
include_directories(${CMAKE_SOURCE_DIR}/source/materials/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/bosons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/barions/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/ions/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/mesons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/leptons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/shortlived/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/cross_sections/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/cascade/cascade/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/evaporation/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/fermi_breakup/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/handler/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/multifragmentation/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/photon_evaporation/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/pre_equilibrium/exciton_model/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/processes/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/track/include)
#
# Define the Geant4 Module.
#
include(Geant4MacroDefineModule)
GEANT4_DEFINE_MODULE(NAME G4hadronic_bert_cascade
HEADERS
G4Analyser.hh
@@ -27,7 +27,7 @@
// Date: 7 March 2013
//
// Description: Singleton class to evaluate multi-body momentum distribution
// functions based on intial state codes and multiplicity.
// functions based on initial state codes and multiplicity.
//
// 20130308 Use envvar to enable/disable use of 3-body generators.
// 20130619 Change singleton instance to be thread-local, to avoid collisions.
@@ -318,7 +318,7 @@ void G4NucleiModel::generateModel(G4int a, G4int z) {
<< G4endl;
}
// If model already built, just return; otherwise intialize everything
// If model already built, just return; otherwise initialize everything
if (a == A && z == Z) {
if (verboseLevel > 1) G4cout << " model already generated" << z << G4endl;
reset();
@@ -27,7 +27,7 @@
// Date: 21 February 2013
//
// Description: Singleton class to evaluate two-body angular distribution
// functions based on intial/final state codes.
// functions based on initial/final state codes.
//
// 20130307 M. Kelsey -- Add verbosity interface
// 20130422 M. Kelsey -- Add three-body distributions, for temporary use
@@ -13,11 +13,17 @@ code and to keep track of all tags.
---------------------------------------------------------------
* Please list in reverse chronological order (last date on top)
---------------------------------------------------------------
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 2019 - V.Ivanchenko (hadr-cohe-V10-06-01)
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
@@ -4,7 +4,7 @@
# Package: Geant4.src.G4processes.G4hadronic.G4hadronic_models.G4hadronic_coherent_elastic
#
# Sources description for a library.
# Lists the sources and headers of the code explicitely.
# Lists the sources and headers of the code explicitly.
# Lists include paths needed.
# Lists the internal granular and global dependencies of the library.
# Source specific properties should be added at the end.
@@ -14,35 +14,9 @@
#
#------------------------------------------------------------------------------
# List external includes needed.
include_directories(${CLHEP_INCLUDE_DIRS})
# List internal includes needed.
include_directories(${CMAKE_SOURCE_DIR}/source/geometry/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/geometry/volumes/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPGeometry/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPNumerics/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPRandom/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/materials/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/bosons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/barions/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/ions/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/mesons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/leptons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/cuts/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/cross_sections/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/track/include)
#
# Define the Geant4 Module.
#
include(Geant4MacroDefineModule)
GEANT4_DEFINE_MODULE(NAME G4hadronic_coherent_elastic
HEADERS
G4AntiNuclElastic.hh
@@ -208,6 +208,7 @@ G4HadronElastic::SampleInvariantT(const G4ParticleDefinition* part,
const G4double plabLowLimit = 400.0*CLHEP::MeV;
const G4double GeV2 = GeV*GeV;
const G4double z07in13 = std::pow(0.7, 0.3333333333);
const G4double numLimit = 18.;
G4int pdg = std::abs(part->GetPDGEncoding());
G4double tmax = pLocalTmax/GeV2;
@@ -255,8 +256,8 @@ G4HadronElastic::SampleInvariantT(const G4ParticleDefinition* part,
cc = 0.2*g4pow->powZ(A,0.4)/dd;//1:0.4 --- 2: 0.4
}
}
G4double q1 = 1.0 - G4Exp(-bb*tmax);
G4double q2 = 1.0 - G4Exp(-dd*tmax);
G4double q1 = 1.0 - G4Exp(-std::min(bb*tmax, numLimit));
G4double q2 = 1.0 - G4Exp(-std::min(dd*tmax, numLimit));
G4double s1 = q1*aa;
G4double s2 = q2*cc;
if((s1 + s2)*G4UniformRand() < s2) {
@@ -14,6 +14,29 @@ code and to keep track of all tags.
* Please list in reverse chronological order (last date on top)
---------------------------------------------------------------
12 August 2020 Vladimir Ivanchenko (hadr-deex-V10-06-07)
- G4NuclearLevelData - use Zmax for initialisation before the run
28 July 2020 Vladimir Ivanchenko (hadr-deex-V10-06-06)
- G4ExcitationHandler - verbose level is defined by G4HadronicParameters
class or by the hardcoded local verbose level defined only for
debugging
- G4DeexPrecoParameters - verbose level is defined by G4HadronicParameters
class or by the local verbose level
- G4DeexParametersMessenger - removed obsolete UI command
24 July 2020 Vladimir Ivanchenko (hadr-deex-V10-06-05)
- G4NuclearLevelData - reduced usage of mutex locks; read all level data
begin of run
- G4ExcitationHandler - use Zmax+1 instead of Zmax for nuclear level
initialisation
13 July 2020 Vladimir Ivanchenko (hadr-deex-V10-06-04)
- G4NuclearLevelData - more safe initialisation of data in MT mode, use mutex
locks only within each method, whithout calls to other methods
- G4ExcitationHandler - call to G4NuclearLevelData to initilise data for
levels for all elements possibly involved in the geometry
12 May 2020 Alberto Ribon (hadr-deex-V10-06-03)
- G4DeexPrecoParameters : in the method Dump(), check the global verbosity
level of hadronics (if zero, do not print anything).
@@ -225,7 +248,7 @@ code and to keep track of all tags.
introduced in previous tag
18 October 2018 Vladimir Ivanchenko (hadr-deex-V10-04-08)
- G4LevelManager, G4NuclearLevelData, G4LevelReader - added intialisation
- G4LevelManager, G4NuclearLevelData, G4LevelReader - added initialisation
of level density and pairing correction per isotope, added
possibility to choose between two parameterisations of level
density
@@ -251,7 +274,7 @@ code and to keep track of all tags.
24 August 2018 Vladimir Ivanchenko (hadr-deex-V10-04-05)
- G4LevelReader - attempt to fix problems #1986 and #2076 by
change of hadling of internal convertion data
change of hadling of internal conversion data
06 August 2018 Alberto Ribon (hadr-deex-V10-04-04)
- G4NeutronRadCapture : replaced the explicit high-energy limit of
@@ -1232,7 +1255,7 @@ code and to keep track of all tags.
01 Dec 2014 Vladimir Ivanchenko (hadr-deex-V10-00-29)
----------------------------------------------------------
- G4VGammaDeexcitation, G4PhotonEvaporation - propagate vacant
shell number after internal convertion allowing to enable
shell number after internal conversion allowing to enable
atomic de-excitation in radioactive decay
28 Nov 2014 Vladimir Ivanchenko (hadr-deex-V10-00-28)
@@ -4,7 +4,7 @@
# Package: Geant4.src.G4processes.G4hadronic.G4hadronic_models.G4hadronic_deex.G4hadronic_ablation
#
# Sources description for a library.
# Lists the sources and headers of the code explicitely.
# Lists the sources and headers of the code explicitly.
# Lists include paths needed.
# Lists the internal granular and global dependencies of the library.
# Source specific properties should be added at the end.
@@ -14,44 +14,9 @@
#
#------------------------------------------------------------------------------
# List external includes needed.
include_directories(${CLHEP_INCLUDE_DIRS})
# List internal includes needed.
include_directories(${CMAKE_SOURCE_DIR}/source/geometry/magneticfield/include)
include_directories(${CMAKE_SOURCE_DIR}/source/geometry/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/geometry/volumes/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPGeometry/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPNumerics/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPRandom/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/materials/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/bosons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/barions/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/ions/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/mesons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/leptons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/evaporation/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/fermi_breakup/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/fission/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/handler/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/multifragmentation/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/photon_evaporation/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/im_r_matrix/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/pre_equilibrium/exciton_model/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/track/include)
#
# Define the Geant4 Module.
#
include(Geant4MacroDefineModule)
GEANT4_DEFINE_MODULE(NAME G4hadronic_ablation
HEADERS
G4WilsonAblationModel.hh
@@ -65,7 +65,7 @@ private:
G4bool operator!=(const G4EvaporationChannel & right) const;
// This data member define the channel.
// They are intializated at object creation (constructor) time.
// They are initialised at object creation (constructor) time.
G4int theA;
G4int theZ;
G4int resA;
@@ -4,7 +4,7 @@
# Package: Geant4.src.G4processes.G4hadronic.G4hadronic_models.G4hadronic_deex.G4hadronic_deex_evaporation
#
# Sources description for a library.
# Lists the sources and headers of the code explicitely.
# Lists the sources and headers of the code explicitly.
# Lists include paths needed.
# Lists the internal granular and global dependencies of the library.
# Source specific properties should be added at the end.
@@ -14,36 +14,9 @@
#
#------------------------------------------------------------------------------
# List external includes needed.
include_directories(${CLHEP_INCLUDE_DIRS})
# List internal includes needed.
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPGeometry/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPNumerics/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPRandom/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/materials/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/bosons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/barions/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/ions/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/mesons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/leptons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/fission/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/fermi_breakup/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/gem_evaporation/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/photon_evaporation/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/track/include)
#
# Define the Geant4 Module.
#
include(Geant4MacroDefineModule)
GEANT4_DEFINE_MODULE(NAME G4hadronic_deex_evaporation
HEADERS
G4AlphaEvaporationChannel.hh
@@ -4,7 +4,7 @@
# Package: Geant4.src.G4processes.G4hadronic.G4hadronic_models.G4hadronic_deex.G4hadronic_deex_fermi_breakup
#
# Sources description for a library.
# Lists the sources and headers of the code explicitely.
# Lists the sources and headers of the code explicitly.
# Lists include paths needed.
# Lists the internal granular and global dependencies of the library.
# Source specific properties should be added at the end.
@@ -14,27 +14,9 @@
#
#------------------------------------------------------------------------------
# List external includes needed.
include_directories(${CLHEP_INCLUDE_DIRS})
# List internal includes needed.
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPGeometry/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPNumerics/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPRandom/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/bosons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/barions/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/leptons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/util/include)
#
# Define the Geant4 Module.
#
include(Geant4MacroDefineModule)
GEANT4_DEFINE_MODULE(NAME G4hadronic_deex_fermi_breakup
HEADERS
G4FermiBreakUpVI.hh
@@ -159,7 +159,7 @@ void G4FermiFragmentsPoolVI::Initialise()
G4int Amin = ndata->GetMinA(Z);
G4int Amax = std::min(maxA, ndata->GetMaxA(Z)+1);
for(G4int A=Amin; A<Amax; ++A) {
const G4LevelManager* man = ndata->GetLevelManager(Z, A, true);
const G4LevelManager* man = ndata->GetLevelManager(Z, A);
if(man) {
size_t nn = man->NumberOfTransitions();
// very unstable state
@@ -4,7 +4,7 @@
# Package: Geant4.src.G4processes.G4hadronic.G4hadronic_models.G4hadronic_deex.G4hadronic_deex_fission
#
# Sources description for a library.
# Lists the sources and headers of the code explicitely.
# Lists the sources and headers of the code explicitly.
# Lists include paths needed.
# Lists the internal granular and global dependencies of the library.
# Source specific properties should be added at the end.
@@ -14,32 +14,9 @@
#
#------------------------------------------------------------------------------
# List external includes needed.
include_directories(${CLHEP_INCLUDE_DIRS})
# List internal includes needed.
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPGeometry/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPNumerics/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPRandom/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/materials/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/bosons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/barions/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/ions/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/mesons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/leptons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/track/include)
#
# Define the Geant4 Module.
#
include(Geant4MacroDefineModule)
GEANT4_DEFINE_MODULE(NAME G4hadronic_deex_fission
HEADERS
G4CompetitiveFission.hh
@@ -79,7 +79,7 @@ private:
// Data Members ************
// This data member define the channel.
// They are intializated at object creation (constructor) time.
// They are initialised at object creation (constructor) time.
// Atomic Number
G4int A;
@@ -4,7 +4,7 @@
# Package: Geant4.src.G4processes.G4hadronic.G4hadronic_models.G4hadronic_deex.G4hadronic_deex_gem_evaporation
#
# Sources description for a library.
# Lists the sources and headers of the code explicitely.
# Lists the sources and headers of the code explicitly.
# Lists include paths needed.
# Lists the internal granular and global dependencies of the library.
# Source specific properties should be added at the end.
@@ -14,34 +14,9 @@
#
#------------------------------------------------------------------------------
# List external includes needed.
include_directories(${CLHEP_INCLUDE_DIRS})
# List internal includes needed.
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPGeometry/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPNumerics/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPRandom/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/materials/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/bosons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/barions/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/ions/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/mesons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/leptons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/fission/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/photon_evaporation/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/track/include)
#
# Define the Geant4 Module.
#
include(Geant4MacroDefineModule)
GEANT4_DEFINE_MODULE(NAME G4hadronic_deex_gem_evaporation
HEADERS
G4C16GEMChannel.hh
@@ -4,7 +4,7 @@
# Package: Geant4.src.G4processes.G4hadronic.G4hadronic_models.G4hadronic_deex.G4hadronic_deex_handler
#
# Sources description for a library.
# Lists the sources and headers of the code explicitely.
# Lists the sources and headers of the code explicitly.
# Lists include paths needed.
# Lists the internal granular and global dependencies of the library.
# Source specific properties should be added at the end.
@@ -14,38 +14,9 @@
#
#------------------------------------------------------------------------------
# List external includes needed.
include_directories(${CLHEP_INCLUDE_DIRS})
# List internal includes needed.
include_directories(${CMAKE_SOURCE_DIR}/source/geometry/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/geometry/volumes/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPGeometry/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPNumerics/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPRandom/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/materials/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/bosons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/barions/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/ions/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/mesons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/leptons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/evaporation/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/fermi_breakup/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/multifragmentation/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/photon_evaporation/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/track/include)
#
# Define the Geant4 Module.
#
include(Geant4MacroDefineModule)
GEANT4_DEFINE_MODULE(NAME G4hadronic_deex_handler
HEADERS
G4ExcitationHandler.hh
@@ -70,6 +70,8 @@
#include "G4VMultiFragmentation.hh"
#include "G4VFermiBreakUp.hh"
#include "G4Element.hh"
#include "G4ElementTable.hh"
#include "G4VEvaporation.hh"
#include "G4VEvaporationChannel.hh"
@@ -111,7 +113,6 @@ G4ExcitationHandler::G4ExcitationHandler()
G4ExcitationHandler::~G4ExcitationHandler()
{
//G4cout << "### Delete handler " << this << G4endl;
delete theMultiFragmentation;
delete theFermiModel;
if(isEvapLocal) { delete theEvaporation; }
@@ -119,17 +120,26 @@ G4ExcitationHandler::~G4ExcitationHandler()
void G4ExcitationHandler::SetParameters()
{
if(fVerbose > 1) {
G4cout << "G4ExcitationHandler::SetParameters() started " << this << G4endl;
}
auto param = G4NuclearLevelData::GetInstance()->GetParameters();
G4NuclearLevelData* ndata = G4NuclearLevelData::GetInstance();
auto param = ndata->GetParameters();
isActive = true;
if(fDummy == param->GetDeexChannelsType()) { isActive = false; }
// check if de-excitation is needed
if(fDummy == param->GetDeexChannelsType()) {
isActive = false;
} else {
// upload data for elements used in geometry
G4int Zmax = 20;
const G4ElementTable* table = G4Element::GetElementTable();
for(auto & elm : *table) { Zmax = std::max(Zmax, elm->GetZasInt()); }
ndata->UploadNuclearLevelData(Zmax+1);
}
minEForMultiFrag = param->GetMinExPerNucleounForMF();
minExcitation = param->GetMinExcitation();
maxExcitation = param->GetPrecoHighEnergy();
icID = param->GetInternalConversionID();
fVerbose = param->GetVerbose();
// allowing local debug printout
fVerbose = std::max(fVerbose, param->GetVerbose());
if(isActive) {
if(!thePhotonEvaporation) { SetPhotonEvaporation(new G4PhotonEvaporation()); }
if(!theEvaporation) {
@@ -139,6 +149,9 @@ void G4ExcitationHandler::SetParameters()
if(!theMultiFragmentation) { SetMultiFragmentation(new G4StatMF()); }
}
theFermiModel->SetVerbose(fVerbose);
if(fVerbose > 1) {
G4cout << "G4ExcitationHandler::SetParameters() done " << this << G4endl;
}
}
void G4ExcitationHandler::Initialise()
@@ -155,7 +168,8 @@ void G4ExcitationHandler::Initialise()
theFermiModel->Initialise();
theEvaporation->InitialiseChannels();
}
if(fVerbose > 0) { param->Dump(); }
// dump level is controlled by parameter class
param->Dump();
}
void G4ExcitationHandler::SetEvaporation(G4VEvaporation* ptr, G4bool flag)
@@ -69,9 +69,9 @@ class G4DeexParametersMessenger: public G4UImessenger
public: // with description
explicit G4DeexParametersMessenger(G4DeexPrecoParameters*);
virtual ~G4DeexParametersMessenger();
~G4DeexParametersMessenger() override;
virtual void SetNewValue(G4UIcommand*, G4String) override;
void SetNewValue(G4UIcommand*, G4String) override;
private:
@@ -86,7 +86,6 @@ private:
G4UIcmdWithAnInteger* maxjCmd;
G4UIcmdWithAnInteger* verbCmd;
G4UIcmdWithAnInteger* upCmd;
};
@@ -29,6 +29,8 @@
// List of parameters of the pre-compound model
// and the deexcitation module
//
// Verbosity level depends on the local verbosity level and the verbosity
// level of hadronics defined in G4HadronicParameters
#ifndef G4DeexPrecoParameters_h
#define G4DeexPrecoParameters_h 1
@@ -64,8 +66,9 @@ public:
friend std::ostream& operator<< (std::ostream& os,
const G4DeexPrecoParameters&);
// inline access methods
G4int GetVerbose() const;
// inline access methods
inline G4double GetLevelDensity() const;
inline G4double GetR0() const;
@@ -102,8 +105,6 @@ public:
inline G4int GetUploadZ() const;
inline G4int GetVerbose() const;
inline G4bool NeverGoBack() const;
inline G4bool UseSoftCutoff() const;
@@ -168,8 +169,6 @@ public:
void SetTwoJMAX(G4int);
void SetUploadZ(G4int);
void SetVerbose(G4int);
void SetNeverGoBack(G4bool);
@@ -203,19 +202,16 @@ public:
void SetDeexChannelsType(G4DeexChannelType);
// obsolete method (has no effect)
inline void SetUseFilesNEW(G4bool) {};
private:
G4bool IsLocked() const;
G4DeexPrecoParameters(const G4DeexPrecoParameters & right) = delete;
const G4DeexPrecoParameters& operator=
(const G4DeexPrecoParameters &right) = delete;
G4bool operator==(const G4DeexPrecoParameters &right) const = delete;
G4bool operator!=(const G4DeexPrecoParameters &right) const = delete;
private:
G4bool IsLocked() const;
G4DeexParametersMessenger* theMessenger;
G4StateManager* fStateManager;
@@ -260,7 +256,6 @@ private:
G4int fMinZForPreco;
G4int fMinAForPreco;
G4int fMaxZ;
G4int fVerbose;
// Preco flags
@@ -279,6 +274,7 @@ private:
G4bool fLD; // use simple level density model
G4bool fFD; // use transition to discrete level
G4bool fIsomerFlag; // enable isomere production
G4bool fLocalVerbose; // is user set verbose for this module
// type of a set of e-exitation channels
G4DeexChannelType fDeexChannelType;
@@ -373,16 +369,6 @@ inline G4int G4DeexPrecoParameters::GetTwoJMAX() const
return fTwoJMAX;
}
inline G4int G4DeexPrecoParameters::GetUploadZ() const
{
return fMaxZ;
}
inline G4int G4DeexPrecoParameters::GetVerbose() const
{
return fVerbose;
}
inline G4bool G4DeexPrecoParameters::NeverGoBack() const
{
return fNeverGoBack;
@@ -72,9 +72,8 @@ public:
~G4NuclearLevelData();
// run time call to access or to create level manager
// isLocked flag informs, that the thread is already locked
const G4LevelManager* GetLevelManager(G4int Z, G4int A,
G4bool isLocked = false);
// if data are not yet uploaded then lazy initialisation is used
const G4LevelManager* GetLevelManager(G4int Z, G4int A);
// add private data to isotope from master thread
G4bool AddPrivateData(G4int Z, G4int A, const G4String& filename);
@@ -118,10 +117,6 @@ public:
private:
void InitialiseForIsotope(G4int Z, G4int A);
void InitialiseUp(G4int Z);
G4DeexPrecoParameters* fDeexPrecoParameters;
G4LevelReader* fLevelReader;
G4PairingCorrection* fPairingCorrection;
@@ -4,7 +4,7 @@
# Package: Geant4.src.G4processes.G4hadronic.G4hadronic_models.G4hadronic_deex.G4hadronic_deex_management
#
# Sources description for a library.
# Lists the sources and headers of the code explicitely.
# Lists the sources and headers of the code explicitly.
# Lists include paths needed.
# Lists the internal granular and global dependencies of the library.
# Source specific properties should be added at the end.
@@ -14,32 +14,9 @@
#
#------------------------------------------------------------------------------
# List external includes needed.
include_directories(${CLHEP_INCLUDE_DIRS})
# List internal includes needed.
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPGeometry/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPNumerics/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPRandom/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/materials/include)
include_directories(${CMAKE_SOURCE_DIR}/source/intercoms/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/bosons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/barions/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/ions/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/mesons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/leptons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/track/include)
#
# Define the Geant4 Module.
#
include(Geant4MacroDefineModule)
GEANT4_DEFINE_MODULE(NAME G4hadronic_deex_management
HEADERS
G4DeexParametersMessenger.hh
@@ -61,46 +61,40 @@
G4DeexParametersMessenger::G4DeexParametersMessenger(G4DeexPrecoParameters* ptr)
: theParameters(ptr)
{
fDirectory = new G4UIdirectory("/process/deex/");
fDirectory = new G4UIdirectory("/process/had/deex/");
fDirectory->SetGuidance("Commands for nuclear de-excitation module.");
readCmd = new G4UIcmdWithABool("/process/deex/readICdata",this);
readCmd = new G4UIcmdWithABool("/process/had/deex/readICdata",this);
readCmd->SetGuidance("Enable/disable download IC data per atomic shell.");
readCmd->SetParameterName("readIC",true);
readCmd->SetDefaultValue(false);
readCmd->AvailableForStates(G4State_PreInit);
icCmd = new G4UIcmdWithABool("/process/deex/setIC",this);
icCmd = new G4UIcmdWithABool("/process/had/deex/setIC",this);
icCmd->SetGuidance("Enable/disable simulation of e- internal conversion.");
icCmd->SetParameterName("IC",true);
icCmd->SetDefaultValue(true);
icCmd->AvailableForStates(G4State_PreInit);
corgCmd = new G4UIcmdWithABool("/process/deex/correlatedGamma",this);
corgCmd = new G4UIcmdWithABool("/process/had/deex/correlatedGamma",this);
corgCmd->SetGuidance("Enable/disable simulation of correlated gamma emission.");
corgCmd->SetParameterName("corrG",true);
corgCmd->SetDefaultValue(false);
corgCmd->AvailableForStates(G4State_PreInit);
isoCmd = new G4UIcmdWithABool("/process/deex/isomerProduction",this);
isoCmd = new G4UIcmdWithABool("/process/had/deex/isomerProduction",this);
isoCmd->SetGuidance("Enable/disable simulation of long lived isomers.");
isoCmd->SetParameterName("corrG",true);
isoCmd->SetDefaultValue(false);
isoCmd->AvailableForStates(G4State_PreInit);
maxjCmd = new G4UIcmdWithAnInteger("/process/deex/maxTwoJ",this);
maxjCmd = new G4UIcmdWithAnInteger("/process/had/deex/maxTwoJ",this);
maxjCmd->SetGuidance("Set max value for 2J for simulation of correlated gamma emission.");
maxjCmd->SetParameterName("max2J",true);
maxjCmd->SetDefaultValue(10);
maxjCmd->AvailableForStates(G4State_PreInit);
upCmd = new G4UIcmdWithAnInteger("/process/deex/uploadZ",this);
upCmd->SetGuidance("Set max value for Z to be uploaded before 1st event");
upCmd->SetParameterName("uploadZ",true);
upCmd->SetDefaultValue(30);
upCmd->AvailableForStates(G4State_PreInit);
verbCmd = new G4UIcmdWithAnInteger("/process/deex/verbose",this);
verbCmd = new G4UIcmdWithAnInteger("/process/had/deex/verbose",this);
verbCmd->SetGuidance("Set verbosity level.");
verbCmd->SetParameterName("verb",true);
verbCmd->SetDefaultValue(1);
@@ -118,7 +112,6 @@ G4DeexParametersMessenger::~G4DeexParametersMessenger()
delete corgCmd;
delete isoCmd;
delete maxjCmd;
delete upCmd;
delete verbCmd;
}
@@ -137,8 +130,6 @@ void G4DeexParametersMessenger::SetNewValue(G4UIcommand* command,
theParameters->SetIsomerProduction(isoCmd->GetNewBoolValue(newValue));
} else if (command == maxjCmd) {
theParameters->SetTwoJMAX(maxjCmd->GetNewIntValue(newValue));
} else if (command == upCmd) {
theParameters->SetUploadZ(upCmd->GetNewIntValue(newValue));
} else if (command == verbCmd) {
theParameters->SetVerbose(verbCmd->GetNewIntValue(newValue));
}
@@ -75,8 +75,7 @@ void G4DeexPrecoParameters::SetDefaults()
fPrecoType = 3;
fDeexType = 3;
fTwoJMAX = 10;
fMaxZ = 9;
fVerbose = 1;
fVerbose = G4HadronicParameters::Instance()->GetVerboseLevel();
fNeverGoBack = false;
fUseSoftCutoff = false;
fUseCEM = true;
@@ -90,6 +89,7 @@ void G4DeexPrecoParameters::SetDefaults()
fLD = true;
fFD = false;
fIsomerFlag = true;
fLocalVerbose = false;
fDeexChannelType = fCombined;
fInternalConversionID =
G4PhysicsModelCatalog::Register("e-InternalConvertion");
@@ -194,15 +194,10 @@ void G4DeexPrecoParameters::SetTwoJMAX(G4int n)
fTwoJMAX = n;
}
void G4DeexPrecoParameters::SetUploadZ(G4int z)
{
if(IsLocked() || z < 1) { return; }
fMaxZ = z;
}
void G4DeexPrecoParameters::SetVerbose(G4int n)
{
if(IsLocked()) { return; }
if( n != fVerbose ) { fLocalVerbose = true; }
fVerbose = n;
}
@@ -335,16 +330,20 @@ std::ostream& G4DeexPrecoParameters::StreamInfo(std::ostream& os) const
<< fInternalConversionID << "\n";
os << "Correlated gamma emission flag " << fCorrelatedGamma << "\n";
os << "Max 2J for sampling of angular correlations " << fTwoJMAX << "\n";
os << "Upload data before 1st event for Z < " << fMaxZ << "\n";
os << "=======================================================================" << "\n";
os.precision(prec);
return os;
}
G4int G4DeexPrecoParameters::GetVerbose() const
{
G4int verb = G4HadronicParameters::Instance()->GetVerboseLevel();
return (fLocalVerbose && verb > 0) ? fVerbose : verb;
}
void G4DeexPrecoParameters::Dump() const
{
if (G4Threading::IsMasterThread() && fVerbose > 0 &&
G4HadronicParameters::Instance()->GetVerboseLevel() > 0 ) { StreamInfo(G4cout); }
if ( G4Threading::IsMasterThread() && GetVerbose() > 0 ) { StreamInfo(G4cout); }
}
std::ostream& operator<< (std::ostream& os, const G4DeexPrecoParameters& par)
@@ -391,7 +391,7 @@ G4LevelReader::LevelManager(G4int Z, G4int A, G4int nlev,
if(!ReadDataItem(infile,fICC[k])) {
//if(infile.fail()) {
if(fVerbose > 1) {
G4cout << "### Fail to read convertion coeff k= " << k
G4cout << "### Fail to read conversion coeff k= " << k
<< " for transition j= " << j
<< " Z= " << Z << " A= " << A << G4endl;
}
@@ -458,40 +458,39 @@ G4NuclearLevelData::~G4NuclearLevelData()
for(G4int Z=1; Z<ZMAX; ++Z) {
size_t nn = (fLevelManagers[Z]).size();
for(size_t j=0; j<nn; ++j) {
//G4cout << " G4NuclearLevelData delete Z= " << Z
// << " A= " << AMIN[Z]+j << G4endl;
delete (fLevelManagers[Z])[j];
}
}
}
const G4LevelManager*
G4NuclearLevelData::GetLevelManager(G4int Z, G4int A, G4bool isLocked)
G4NuclearLevelData::GetLevelManager(G4int Z, G4int A)
{
const G4LevelManager* man = nullptr;
if(0 < Z && Z < ZMAX && A >= AMIN[Z] && A <= AMAX[Z]) {
const G4int idx = A - AMIN[Z];
if(!(fLevelManagerFlags[Z])[idx]) {
if(isLocked) {
(fLevelManagers[Z])[idx] = fLevelReader->CreateLevelManager(Z, A);
(fLevelManagerFlags[Z])[idx] = true;
} else {
InitialiseForIsotope(Z, A);
}
if(Z < 1 || Z >= ZMAX || A < AMIN[Z] || A > AMAX[Z]) { return nullptr; }
const G4int idx = A - AMIN[Z];
if( !(fLevelManagerFlags[Z])[idx] ) {
#ifdef G4MULTITHREADED
G4MUTEXLOCK(&nuclearLevelDataMutex);
if( !(fLevelManagerFlags[Z])[idx] ) {
#endif
(fLevelManagers[Z])[idx] = fLevelReader->CreateLevelManager(Z, A);
(fLevelManagerFlags[Z])[idx] = true;
#ifdef G4MULTITHREADED
}
man = (fLevelManagers[Z])[idx];
G4MUTEXUNLOCK(&nuclearLevelDataMutex);
#endif
}
return man;
return (fLevelManagers[Z])[idx];
}
G4bool
G4NuclearLevelData::AddPrivateData(G4int Z, G4int A, const G4String& filename)
{
G4bool res = false;
#ifdef G4MULTITHREADED
G4MUTEXLOCK(&nuclearLevelDataMutex);
#endif
if(Z > 0 && Z < ZMAX && A >= AMIN[Z] && A <= AMAX[Z]) {
#ifdef G4MULTITHREADED
G4MUTEXLOCK(&nuclearLevelDataMutex);
#endif
const G4LevelManager* newman =
fLevelReader->MakeLevelManager(Z, A, filename);
if(newman) {
@@ -504,6 +503,9 @@ G4NuclearLevelData::AddPrivateData(G4int Z, G4int A, const G4String& filename)
(fLevelManagers[Z])[idx] = newman;
(fLevelManagerFlags[Z])[idx] = true;
}
#ifdef G4MULTITHREADED
G4MUTEXUNLOCK(&nuclearLevelDataMutex);
#endif
} else {
G4ExceptionDescription ed;
ed << "private nuclear level data for Z= " << Z << " A= " << A
@@ -511,9 +513,6 @@ G4NuclearLevelData::AddPrivateData(G4int Z, G4int A, const G4String& filename)
G4Exception("G4NuclearLevelData::AddPrivateData","had0433",FatalException,
ed,"Stop execution");
}
#ifdef G4MULTITHREADED
G4MUTEXUNLOCK(&nuclearLevelDataMutex);
#endif
return res;
}
@@ -527,55 +526,29 @@ G4int G4NuclearLevelData::GetMaxA(G4int Z) const
return (Z >= 0 && Z < ZMAX) ? AMAX[Z] : 0;
}
void G4NuclearLevelData::InitialiseForIsotope(G4int Z, G4int A)
{
if(Z < 1 || Z >= ZMAX || A < AMIN[Z] || A > AMAX[Z]) { return; }
const G4int idx = A - AMIN[Z];
#ifdef G4MULTITHREADED
if(!(fLevelManagerFlags[Z])[idx]) {
G4MUTEXLOCK(&nuclearLevelDataMutex);
#endif
// initialise only once
// before 1st event fragments Z < zmax are initialized
if(!fInitialized) {
fInitialized = true;
InitialiseUp(fDeexPrecoParameters->GetUploadZ());
}
if(!(fLevelManagerFlags[Z])[idx]) {
(fLevelManagers[Z])[idx] = fLevelReader->CreateLevelManager(Z, A);
(fLevelManagerFlags[Z])[idx] = true;
}
#ifdef G4MULTITHREADED
G4MUTEXUNLOCK(&nuclearLevelDataMutex);
}
#endif
}
void G4NuclearLevelData::UploadNuclearLevelData(G4int Z)
void G4NuclearLevelData::UploadNuclearLevelData(G4int ZZ)
{
if(fInitialized) return;
#ifdef G4MULTITHREADED
G4MUTEXLOCK(&nuclearLevelDataMutex);
#endif
fDeexPrecoParameters->SetUploadZ(Z);
InitialiseUp(Z);
#ifdef G4MULTITHREADED
G4MUTEXUNLOCK(&nuclearLevelDataMutex);
#endif
}
void G4NuclearLevelData::InitialiseUp(G4int ZZ)
{
G4int mZ = ZZ;
if(mZ >= ZMAX) { mZ = ZMAX; }
for(G4int Z=1; Z<mZ; ++Z) {
for(G4int A=AMIN[Z]; A<=AMAX[Z]; ++A) {
G4int idx = A - AMIN[Z];
if(!(fLevelManagerFlags[Z])[idx]) {
(fLevelManagers[Z])[idx] = fLevelReader->CreateLevelManager(Z, A);
(fLevelManagerFlags[Z])[idx] = true;
if(!fInitialized) {
fInitialized = true;
G4int mZ = ZZ;
if(mZ > ZMAX) { mZ = ZMAX; }
for(G4int Z=1; Z<mZ; ++Z) {
for(G4int A=AMIN[Z]; A<=AMAX[Z]; ++A) {
G4int idx = A - AMIN[Z];
if( !(fLevelManagerFlags[Z])[idx] ) {
(fLevelManagers[Z])[idx] = fLevelReader->CreateLevelManager(Z, A);
(fLevelManagerFlags[Z])[idx] = true;
}
}
}
}
#ifdef G4MULTITHREADED
G4MUTEXUNLOCK(&nuclearLevelDataMutex);
#endif
}
G4double G4NuclearLevelData::GetMaxLevelEnergy(G4int Z, G4int A) const
@@ -4,7 +4,7 @@
# Package: Geant4.src.G4processes.G4hadronic.G4hadronic_models.G4hadronic_deex.G4hadronic_deex_multifragmentation
#
# Sources description for a library.
# Lists the sources and headers of the code explicitely.
# Lists the sources and headers of the code explicitly.
# Lists include paths needed.
# Lists the internal granular and global dependencies of the library.
# Source specific properties should be added at the end.
@@ -14,30 +14,9 @@
#
#------------------------------------------------------------------------------
# List external includes needed.
include_directories(${CLHEP_INCLUDE_DIRS})
# List internal includes needed.
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPGeometry/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPNumerics/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPRandom/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/materials/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/bosons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/barions/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/ions/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/mesons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/leptons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/track/include)
#
# Define the Geant4 Module.
#
include(Geant4MacroDefineModule)
GEANT4_DEFINE_MODULE(NAME G4hadronic_deex_multifragmentation
HEADERS
G4Solver.hh
@@ -36,20 +36,20 @@
G4StatMFMacroChemicalPotential &
G4StatMFMacroChemicalPotential::operator=(const G4StatMFMacroChemicalPotential & )
{
throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMacroChemicalPotential::operator= meant to not be accessable");
throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMacroChemicalPotential::operator= meant to not be accessible");
return *this;
}
G4bool G4StatMFMacroChemicalPotential::operator==(const G4StatMFMacroChemicalPotential & ) const
{
throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMacroChemicalPotential::operator== meant to not be accessable");
throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMacroChemicalPotential::operator== meant to not be accessible");
return false;
}
G4bool G4StatMFMacroChemicalPotential::operator!=(const G4StatMFMacroChemicalPotential & ) const
{
throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMacroChemicalPotential::operator!= meant to not be accessable");
throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMacroChemicalPotential::operator!= meant to not be accessible");
return true;
}
@@ -34,7 +34,7 @@
// Copy constructor
G4StatMFMicroManager::G4StatMFMicroManager(const G4StatMFMicroManager & )
{
throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMicroManager::copy_constructor meant to not be accessable");
throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMicroManager::copy_constructor meant to not be accessible");
}
// Operators
@@ -42,7 +42,7 @@ G4StatMFMicroManager::G4StatMFMicroManager(const G4StatMFMicroManager & )
G4StatMFMicroManager & G4StatMFMicroManager::
operator=(const G4StatMFMicroManager & )
{
throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMicroManager::operator= meant to not be accessable");
throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMicroManager::operator= meant to not be accessible");
return *this;
}
@@ -4,7 +4,7 @@
# Package: Geant4.src.G4processes.G4hadronic.G4hadronic_models.G4hadronic_deex.G4hadronic_deex_photon_evaporation
#
# Sources description for a library.
# Lists the sources and headers of the code explicitely.
# Lists the sources and headers of the code explicitly.
# Lists include paths needed.
# Lists the internal granular and global dependencies of the library.
# Source specific properties should be added at the end.
@@ -14,36 +14,9 @@
#
#------------------------------------------------------------------------------
# List external includes needed.
include_directories(${CLHEP_INCLUDE_DIRS})
# List internal includes needed.
include_directories(${CMAKE_SOURCE_DIR}/source/geometry/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/geometry/volumes/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPGeometry/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPNumerics/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPRandom/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/materials/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/bosons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/barions/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/ions/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/mesons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/leptons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/electromagnetic/lowenergy/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/track/include)
#
# Define the Geant4 Module.
#
include(Geant4MacroDefineModule)
GEANT4_DEFINE_MODULE(NAME G4hadronic_deex_photon_evaporation
HEADERS
G4GammaTransition.hh
@@ -4,7 +4,7 @@
# Package: Geant4.src.G4processes.G4hadronic.G4hadronic_models.G4hadronic_deex.G4hadronic_deex_util
#
# Sources description for a library.
# Lists the sources and headers of the code explicitely.
# Lists the sources and headers of the code explicitly.
# Lists include paths needed.
# Lists the internal granular and global dependencies of the library.
# Source specific properties should be added at the end.
@@ -14,30 +14,9 @@
#
#------------------------------------------------------------------------------
# List external includes needed.
include_directories(${CLHEP_INCLUDE_DIRS})
# List internal includes needed.
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPGeometry/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPNumerics/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPRandom/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/materials/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/bosons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/barions/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/ions/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/mesons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/leptons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/track/include)
#
# Define the Geant4 Module.
#
include(Geant4MacroDefineModule)
GEANT4_DEFINE_MODULE(NAME G4hadronic_deex_util
HEADERS
G4AlphaCoulombBarrier.hh
@@ -14,6 +14,13 @@ code and to keep track of all tags.
* Please list in reverse chronological order (last date on top)
---------------------------------------------------------------
24 November 2020 - Alberto Ribon (hadr-emd-V10-06-00)
-----------------------------------------------------
- G4EMDissociation : fix Lorentz kinematics (which was causing
energy-momentum violations) and switch off too frequent warning
messages by G4Fragment, as suggested by Laurie Nevay and
Andrey Abramov (bug report #2254).
07 March 2017 - Vladimir Ivanchenko (hadr-emd-V10-03-00)
-----------------------------------------------------
- G4EMDissociation.cc : removed explicit instantiation of
@@ -4,7 +4,7 @@
# Package: Geant4.src.G4processes.G4hadronic.G4hadronic_models.G4hadronic_em_dissociation
#
# Sources description for a library.
# Lists the sources and headers of the code explicitely.
# Lists the sources and headers of the code explicitly.
# Lists include paths needed.
# Lists the internal granular and global dependencies of the library.
# Source specific properties should be added at the end.
@@ -14,47 +14,9 @@
#
#------------------------------------------------------------------------------
# List external includes needed.
include_directories(${CLHEP_INCLUDE_DIRS})
# List internal includes needed.
include_directories(${CMAKE_SOURCE_DIR}/source/geometry/magneticfield/include)
include_directories(${CMAKE_SOURCE_DIR}/source/geometry/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/geometry/volumes/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPGeometry/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPNumerics/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPRandom/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/materials/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/bosons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/barions/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/ions/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/mesons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/leptons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/shortlived/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/cross_sections/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/evaporation/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/fermi_breakup/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/handler/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/multifragmentation/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/photon_evaporation/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/im_r_matrix/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/pre_equilibrium/exciton_model/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/processes/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/track/include)
#
# Define the Geant4 Module.
#
include(Geant4MacroDefineModule)
GEANT4_DEFINE_MODULE(NAME G4hadronic_em_dissociation
HEADERS
G4EMDissociation.hh
@@ -244,7 +244,7 @@ G4HadFinalState *G4EMDissociation::ApplyYourself
// energy includes the projectile and virtual gamma. This is then used
// to calculate the boost required for the secondaries.
pP.setE(pP.e()+Eg);
pP.setE( std::sqrt( pP.vect().mag2() + (mass + Eg)*(mass + Eg) ) );
boost = pP.findBoostToCM();
}
else
@@ -349,7 +349,7 @@ G4HadFinalState *G4EMDissociation::ApplyYourself
G4Fragment* theFragment = new
G4Fragment((G4int) typeDaughter->GetBaryonNumber(),
(G4int) typeDaughter->GetPDGCharge(), dynamicDaughter->Get4Momentum());
(G4int) typeDaughter->GetPDGCharge(), dynamicDaughter->Get4Momentum(), false);
if (verboseLevel >= 2) {
G4cout <<"Dynamic properties of the prefragment:" <<G4endl;
View File
View File
@@ -4,7 +4,7 @@
# Package: Geant4.src.G4processes.G4hadronic.G4hadronic_models.G4had_fission
#
# Sources description for a library.
# Lists the sources and headers of the code explicitely.
# Lists the sources and headers of the code explicitly.
# Lists include paths needed.
# Lists the internal granular and global dependencies of the library.
# Source specific properties should be added at the end.
@@ -14,35 +14,9 @@
#
#------------------------------------------------------------------------------
# List external includes needed.
include_directories(${CLHEP_INCLUDE_DIRS})
# List internal includes needed.
include_directories(${CMAKE_SOURCE_DIR}/source/geometry/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/geometry/volumes/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPGeometry/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPRandom/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/materials/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/bosons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/barions/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/ions/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/mesons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/leptons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/cross_sections/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/particle_hp/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/processes/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/track/include)
#
# Define the Geant4 Module.
#
include(Geant4MacroDefineModule)
GEANT4_DEFINE_MODULE(NAME G4had_fission
HEADERS
G4FissLib.hh
View File
@@ -4,7 +4,7 @@
# Package: Geant4.src.G4processes.G4hadronic.G4hadronic_models.G4lepto_nuclear
#
# Sources description for a library.
# Lists the sources and headers of the code explicitely.
# Lists the sources and headers of the code explicitly.
# Lists include paths needed.
# Lists the internal granular and global dependencies of the library.
# Source specific properties should be added at the end.
@@ -14,50 +14,9 @@
#
#------------------------------------------------------------------------------
# List external includes needed.
include_directories(${CLHEP_INCLUDE_DIRS})
# List internal includes needed.
include_directories(${CMAKE_SOURCE_DIR}/source/geometry/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/geometry/volumes/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPGeometry/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPRandom/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/materials/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/bosons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/barions/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/ions/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/mesons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/leptons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/cross_sections/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/binary_cascade/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/cascade/cascade/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/evaporation/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/fermi_breakup/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/handler/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/multifragmentation/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/photon_evaporation/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/lend/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/parton_string/hadronization/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/parton_string/diffraction/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/parton_string/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/pre_equilibrium/exciton_model/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/theo_high_energy/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/processes/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/track/include)
#
# Define the Geant4 Module.
#
include(Geant4MacroDefineModule)
GEANT4_DEFINE_MODULE(NAME G4had_gamma_nuclear
HEADERS
G4LENDorBERTModel.hh
@@ -4,7 +4,7 @@
# Package: Geant4.src.G4processes.G4hadronic.G4hadronic_models.G4had_im_r_matrix
#
# Sources description for a library.
# Lists the sources and headers of the code explicitely.
# Lists the sources and headers of the code explicitly.
# Lists include paths needed.
# Lists the internal granular and global dependencies of the library.
# Source specific properties should be added at the end.
@@ -14,38 +14,9 @@
#
#------------------------------------------------------------------------------
# List external includes needed.
include_directories(${CLHEP_INCLUDE_DIRS})
# List internal includes needed.
include_directories(${CMAKE_SOURCE_DIR}/source/geometry/magneticfield/include)
include_directories(${CMAKE_SOURCE_DIR}/source/geometry/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/geometry/volumes/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPGeometry/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPNumerics/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPRandom/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/materials/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/bosons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/barions/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/ions/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/mesons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/leptons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/shortlived/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/cross_sections/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/processes/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/track/include)
#
# Define the Geant4 Module.
#
include(Geant4MacroDefineModule)
GEANT4_DEFINE_MODULE(NAME G4had_im_r_matrix
HEADERS
G4ListOfCollisions.hh
@@ -4,7 +4,7 @@
# Package: Geant4.src.G4processes.G4hadronic.G4hadronic_models.G4had_hetcpp.G4hadronic_hetcpp_utils
#
# Sources description for a library.
# Lists the sources and headers of the code explicitely.
# Lists the sources and headers of the code explicitly.
# Lists include paths needed.
# Lists the internal granular and global dependencies of the library.
# Source specific properties should be added at the end.
@@ -14,36 +14,9 @@
#
#------------------------------------------------------------------------------
# List external includes needed.
include_directories(${CLHEP_INCLUDE_DIRS})
# List internal includes needed.
include_directories(${CMAKE_SOURCE_DIR}/source/geometry/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/geometry/volumes/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPGeometry/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPRandom/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/materials/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/bosons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/barions/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/ions/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/mesons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/leptons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/cross_sections/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/binary_cascade/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/im_r_matrix/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/track/include)
include_directories(${CMAKE_SOURCE_DIR}/source/intercoms/include)
#
# Define the Geant4 Module.
#
include(Geant4MacroDefineModule)
GEANT4_DEFINE_MODULE(NAME G4hadronic_inclxx_physics
HEADERS
G4INCLAvatarDumpAction.hh
@@ -92,7 +92,7 @@ namespace G4INCL {
} else if(ParticleConfig::isPair(nucleon, strange, Neutron, SigmaPlus)) {
finalType = Proton;
} else {
INCL_ERROR("Unknown particle pair in Strange-N absorbtion: " << nucleon << '\t' << strange << '\n');
INCL_ERROR("Unknown particle pair in Strange-N absorption: " << nucleon << '\t' << strange << '\n');
return;
}
@@ -4,7 +4,7 @@
# Package: Geant4.src.G4processes.G4hadronic.G4hadronic_models.G4had_hetcpp.G4hadronic_hetcpp_utils
#
# Sources description for a library.
# Lists the sources and headers of the code explicitely.
# Lists the sources and headers of the code explicitly.
# Lists include paths needed.
# Lists the internal granular and global dependencies of the library.
# Source specific properties should be added at the end.
@@ -14,45 +14,9 @@
#
#------------------------------------------------------------------------------
# List external includes needed.
include_directories(${CLHEP_INCLUDE_DIRS})
# List internal includes needed.
include_directories(${CMAKE_SOURCE_DIR}/source/geometry/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/geometry/volumes/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPGeometry/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPRandom/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/materials/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/bosons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/barions/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/ions/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/mesons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/leptons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/cross_sections/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/binary_cascade/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/im_r_matrix/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/inclxx/incl_physics/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/inclxx/utils/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/evaporation/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/fission/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/handler/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/pre_equilibrium/exciton_model/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/track/include)
include_directories(${CMAKE_SOURCE_DIR}/source/intercoms/include)
#
# Define the Geant4 Module.
#
include(Geant4MacroDefineModule)
GEANT4_DEFINE_MODULE(NAME G4hadronic_inclxx_interface
HEADERS
G4INCLXXInterface.hh
@@ -304,11 +304,11 @@ namespace G4INCL {
Bool_t forcedDeltasOutside;
/** \brief Event involved forced eta/omega decays outside the nucleus */
Bool_t forcedPionResonancesOutside;
/** \brief Event involved forced strange absorbtion inside the nucleus */
/** \brief Event involved forced strange absorption inside the nucleus */
Bool_t absorbedStrangeParticle;
/** \brief Event involved forced Sigma Zero decays outside the nucleus */
Bool_t forcedSigmaOutside;
/** \brief Event involved forced antiKaon/Sigma absorbtion inside the nucleus */
/** \brief Event involved forced antiKaon/Sigma absorption inside the nucleus */
Bool_t forcedStrangeInside;
/** \brief Number of forced Lambda emit out of the nucleus */
Int_t emitLambda;
@@ -4,7 +4,7 @@
# Package: Geant4.src.G4processes.G4hadronic.G4hadronic_models.G4had_hetcpp.G4hadronic_hetcpp_utils
#
# Sources description for a library.
# Lists the sources and headers of the code explicitely.
# Lists the sources and headers of the code explicitly.
# Lists include paths needed.
# Lists the internal granular and global dependencies of the library.
# Source specific properties should be added at the end.
@@ -14,37 +14,9 @@
#
#------------------------------------------------------------------------------
# List external includes needed.
include_directories(${CLHEP_INCLUDE_DIRS})
# List internal includes needed.
include_directories(${CMAKE_SOURCE_DIR}/source/geometry/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/geometry/volumes/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPGeometry/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPRandom/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/materials/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/bosons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/barions/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/ions/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/mesons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/leptons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/cross_sections/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/binary_cascade/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/im_r_matrix/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/pre_equilibrium/exciton_model/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/track/include)
include_directories(${CMAKE_SOURCE_DIR}/source/intercoms/include)
#
# Define the Geant4 Module.
#
include(Geant4MacroDefineModule)
GEANT4_DEFINE_MODULE(NAME G4hadronic_inclxx_utils
HEADERS
G4INCLAllocationPool.hh
@@ -13,6 +13,10 @@ code and to keep track of all tags.
---------------------------------------------------------------
* Please list in reverse chronological order (last date on top)
---------------------------------------------------------------
12 November 2020 Ben Morgan (hadr-lend-V10-06-03)
---------------------------------------------------
- Apply typo fixes from Gurkan Myczko (https://github.com/Geant4/geant4/pull/15)
30 April 2020 Ben Morgan (hadr-lend-V10-06-02)
---------------------------------------------------
- Remove obsolete GRANULAR_DEPENDENCIES entries
@@ -290,7 +294,7 @@ constants, in plan to remove implicit inclusion from globals.hh.
7 August 2012 Gabriele Cosmo (hadr-lend-V09-05-02)
----------------------------------------------
Fixed GNUmakefile for use of internal expat library, if explicitely chosen.
Fixed GNUmakefile for use of internal expat library, if explicitly chosen.
13 June 2012 Tatsumi Koi (hadr-lend-V09-05-01)
----------------------------------------------
@@ -4,7 +4,7 @@
# Package: Geant4.src.G4processes.G4hadronic.G4hadronic_models.G4had_lend
#
# Sources description for a library.
# Lists the sources and headers of the code explicitely.
# Lists the sources and headers of the code explicitly.
# Lists include paths needed.
# Lists the internal granular and global dependencies of the library.
# Source specific properties should be added at the end.
@@ -14,41 +14,9 @@
#
#------------------------------------------------------------------------------
# List external includes needed.
include_directories(${CLHEP_INCLUDE_DIRS})
include_directories(${EXPAT_INCLUDE_DIRS})
# List internal includes needed.
include_directories(${CMAKE_SOURCE_DIR}/source/geometry/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/geometry/volumes/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPGeometry/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPRandom/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/materials/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/bosons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/barions/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/ions/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/mesons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/leptons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/cross_sections/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/photon_evaporation/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/pre_equilibrium/exciton_model/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/processes/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/track/include)
#
# Define the Geant4 Module.
#
include(Geant4MacroDefineModule)
GEANT4_DEFINE_MODULE(NAME G4had_lend
HEADERS
G4GIDI.hh
@@ -234,7 +202,7 @@ GEANT4_DEFINE_MODULE(NAME G4had_lend
#
# Not this again... Need to add *another* compile definition to lend sources
# for DLLs....
# We do this quick and dirty, add the definition directly. I *don't want it
# We do this quick and dirty, add the definition directly. I *don't want it
# polluting compile of all other processes modules
# in global mode
#
@@ -106,7 +106,7 @@ G4HadFinalState* G4LENDInelastic::ApplyYourself(const G4HadProjectile& aTrack,
// of events, this improves on average.
if (loop > loopMax - 1) {
// G4cout << " too many loops, return intial state " << G4endl;
// G4cout << " too many loops, return initial state " << G4endl;
theParticleChange.Clear();
theParticleChange.SetStatusChange(isAlive);
@@ -25,7 +25,7 @@ using namespace GIDI;
static const char Okay_message[] = "all is okay";
static const char mallocError_message[] = "could not allocate memory";
static const char insufficientMemory_message[] = "user's memory is too small to hanlde data";
static const char insufficientMemory_message[] = "user's memory is too small to handle data";
static const char badIndex_message[] = "bad index";
static const char XNotAscending_message[] = "x values are not ascending";
static const char badIndexForX_message[] = "index not correct for x value";
@@ -4,7 +4,7 @@
# Package: Geant4.src.G4processes.G4hadronic.G4hadronic_models.G4lepto_nuclear
#
# Sources description for a library.
# Lists the sources and headers of the code explicitely.
# Lists the sources and headers of the code explicitly.
# Lists include paths needed.
# Lists the internal granular and global dependencies of the library.
# Source specific properties should be added at the end.
@@ -14,49 +14,9 @@
#
#------------------------------------------------------------------------------
# List external includes needed.
include_directories(${CLHEP_INCLUDE_DIRS})
# List internal includes needed.
include_directories(${CMAKE_SOURCE_DIR}/source/geometry/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/geometry/volumes/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPGeometry/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPRandom/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/materials/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/bosons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/barions/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/ions/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/mesons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/leptons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/cross_sections/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/binary_cascade/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/cascade/cascade/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/evaporation/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/fermi_breakup/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/handler/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/multifragmentation/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/photon_evaporation/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/parton_string/hadronization/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/parton_string/diffraction/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/parton_string/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/pre_equilibrium/exciton_model/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/theo_high_energy/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/processes/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/track/include)
#
# Define the Geant4 Module.
#
include(Geant4MacroDefineModule)
GEANT4_DEFINE_MODULE(NAME G4had_lept_nuclear
HEADERS
G4ANuElNucleusCcModel.hh
@@ -4,7 +4,7 @@
# Package: Geant4.src.G4processes.G4hadronic.G4hadronic_models.G4had_mod_man
#
# Sources description for a library.
# Lists the sources and headers of the code explicitely.
# Lists the sources and headers of the code explicitly.
# Lists include paths needed.
# Lists the internal granular and global dependencies of the library.
# Source specific properties should be added at the end.
@@ -14,31 +14,9 @@
#
#------------------------------------------------------------------------------
# List external includes needed.
include_directories(${CLHEP_INCLUDE_DIRS})
# List internal includes needed.
include_directories(${CMAKE_SOURCE_DIR}/source/geometry/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/geometry/navigation/include)
include_directories(${CMAKE_SOURCE_DIR}/source/geometry/volumes/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPGeometry/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPRandom/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/materials/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/bosons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/barions/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/ions/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/mesons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/leptons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/track/include)
#
# Define the Geant4 Module.
#
include(Geant4MacroDefineModule)
GEANT4_DEFINE_MODULE(NAME G4had_mod_man
HEADERS
G4HadronicInteraction.hh
@@ -13,6 +13,63 @@ code and to keep track of all tags.
---------------------------------------------------------------
* Please list in reverse chronological order (last date on top)
---------------------------------------------------------------
05 November 2020 Alberto Ribon (hadr-hpp-V10-06-12)
--------------------------------------------------
- G4ParticleHPInelastic, G4ParticleHPInelasticData : improved error message
in the case that both G4PARTICLEHPDATA and the related particle-specific
environmental variable (e.g. G4PROTONHPDATA) are not defined.
The recommandation is to define only G4PARTICLEHPDATA.
27 October 2020 Alberto Ribon (hadr-hpp-V10-06-11)
--------------------------------------------------
- G4ParticleHPInelastic, G4ParticleHPManager : enabled the print out of
the physics parameters (only once and with a format similar to
Precompound/de-excitation and RadioativeDecay; note that rather than
enabling the print out in G4ParticleHPInelastic::BuildPhysicsTable,
we could have used instead the analogous method BuildPhysicsTable of
one of the following classes: G4ParticleHPCapture, G4ParticleHPElastic
and G4ParticleHPFission).
- G4ParticleHPContAngularPar, G4ParticleHPInelasticBaseFS,
G4ParticleHPEnAngCorrelation, G4ParticleHPFinalState : replaced
the use of the environmental variable G4PHP_DO_NOT_ADJUST_FINAL_STATE
(the only one used outside the class G4ParticleHPManager - a part for
the one pointing to the data libraries) with the equivalent
G4ParticleHPManager::GetInstance()->GetDoNotAdjustFinalState().
05 August 2020 Alberto Ribon (hadr-hpp-V10-06-10)
-------------------------------------------------
- G4ParticleHPMessenger : added new UI macro command
"use_Wendt_fission_model" related to the use of Wendt fission
model; make sure that not more than one fission fragment model
is active.
- G4ParticleHPManager : added a new variable related to the use of
Wendt fission model; throw a "JustWarning" exception when the
environmental variables are used (to remind that they are still
valid but deprecated, and will be removed in Geant4 version 11.0);
added new method "DumpSetting()" which needs to be called somewhere
to print out once the values of its parameters.
- G4ParticleHPChannel : moved environmental variable related to
the use of Wendt fission model from this class to
G4ParticleHPManager.
21 July 2020 Ben Morgan (hadr-hpp-V10-06-09)
--------------------------------------------
- Use GEANT4_BUILD_PHP_AS_HP option to enable PHP_AS_HP,
retiring use of PHP_AS_HP environment variable.
17 July 2020 Dennis Wright (hadr-hpp-V10-06-08)
-------------------------------------------------
- Fix bug #2233: two fission fragment models can be active at the same time
If Wendt model is active in ctor of G4ParticleHPChannel, turn off standard
fragment production model
30 June 2020 Dennis Wright (hadr-hpp-V10-06-07)
-------------------------------------------------
- Fix bug #2234: thread competition in method
G4FissionProductYieldDist::G4GetFission(void). Place auto lock
on this method.
28 May 2020 Ben Morgan (hadr-hpp-V10-06-06)
---------------------------------------------------
- Remove obsolete GRANULAR_DEPENDENCIES entries
View File
@@ -89,6 +89,10 @@ private:
/** Initialize is a common function called by all constructors. */
void Initialize( std::istringstream& dataStream );
#ifdef G4MULTITHREADED
static G4Mutex fissprodMutex;
#endif
public:
// Functions
/** Generates a fission event using default sampling and returns the pointer
@@ -23,11 +23,9 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
//
// Hadronic Process: Very Low Energy Neutron X-Sections
// original by H.P. Wellisch, TRIUMF, 14-Feb-97
// Builds and has the Cross-section data for one element and channel.
// Hadronic Process: Very Low Energy Neutron X-Sections
// original by H.P. Wellisch, TRIUMF, 14-Feb-97
// Builds and has the Cross-section data for one element and channel.
//
// Bug fixes and workarounds in the destructor, F.W.Jones 06-Jul-1999
// 070612 Fix memory leaking by T. Koi
@@ -38,29 +36,34 @@
//
#ifndef G4ParticleHPChannel_h
#define G4ParticleHPChannel_h 1
#include "globals.hh"
#include "G4ParticleHPIsoData.hh"
#include "G4ParticleHPVector.hh"
#include "G4Material.hh"
#include "G4HadProjectile.hh"
//#include "G4NeutronInelasticProcess.hh"
//#include "G4HadronFissionProcess.hh"
//#include "G4HadronElasticProcess.hh"
//#include "G4HadronCaptureProcess.hh"
#include "G4StableIsotopes.hh"
#include "G4ParticleHPCaptureFS.hh"
#include "G4ParticleHPFinalState.hh"
#include "G4Element.hh"
#include "G4WendtFissionFragmentGenerator.hh"
#include "G4ParticleHPManager.hh"
class G4ParticleDefinition;
class G4ParticleHPChannel
{
public:
G4ParticleHPChannel(G4ParticleDefinition* projectile)
: wendtFissionGenerator(std::getenv("G4NEUTRON_HP_USE_WENDT_FISSION_MODEL") == NULL ? NULL : G4WendtFissionFragmentGenerator::GetInstance())
G4ParticleHPChannel(G4ParticleDefinition* projectile) :
wendtFissionGenerator( G4ParticleHPManager::GetInstance()->GetUseWendtFissionModel() ?
G4WendtFissionFragmentGenerator::GetInstance() : nullptr )
{
if ( G4ParticleHPManager::GetInstance()->GetUseWendtFissionModel() ) {
// Make sure both fission fragment models are not active at same time
G4ParticleHPManager::GetInstance()->SetProduceFissionFragments( false );
}
theProjectile = const_cast<G4ParticleDefinition*>(projectile);
theChannelData = new G4ParticleHPVector;
theBuffer = 0;
@@ -72,9 +75,13 @@ public:
theElement = NULL;
}
G4ParticleHPChannel()
: wendtFissionGenerator(std::getenv("G4NEUTRON_HP_USE_WENDT_FISSION_MODEL") == NULL ? NULL : G4WendtFissionFragmentGenerator::GetInstance())
G4ParticleHPChannel() : wendtFissionGenerator( G4ParticleHPManager::GetInstance()->GetUseWendtFissionModel() ?
G4WendtFissionFragmentGenerator::GetInstance() : nullptr )
{
if ( G4ParticleHPManager::GetInstance()->GetUseWendtFissionModel() ) {
// Make sure both fission fragment models are not active at same time
G4ParticleHPManager::GetInstance()->SetProduceFissionFragments( false );
}
theProjectile = G4Neutron::Neutron();
theChannelData = new G4ParticleHPVector;
theBuffer = 0;
@@ -106,17 +113,16 @@ public:
//}
// FWJ experiment
//if(active!=0) delete [] active;
// T.K.
if ( theFinalStates != 0 )
{
// T.K.
if ( theFinalStates != 0 )
{
for ( G4int i = 0 ; i < niso ; i++ )
{
delete theFinalStates[i];
}
delete [] theFinalStates;
}
if ( active != 0 ) delete [] active;
}
if ( active != 0 ) delete [] active;
}
G4double GetXsec(G4double energy);
@@ -39,6 +39,7 @@
#include "G4ParticleHPProduct.hh"
#include "G4ReactionProduct.hh"
#include "G4Cache.hh"
#include "G4ParticleHPManager.hh"
class G4ParticleDefinition;
@@ -93,11 +94,7 @@ public:
inline void Init(std::istream & aDataFile)
{
bAdjustFinalState = true;
const char* ctmp = std::getenv("G4PHP_DO_NOT_ADJUST_FINAL_STATE");
if( ctmp && G4String(ctmp) == "1" )
{
bAdjustFinalState = false;
}
if ( G4ParticleHPManager::GetInstance()->GetDoNotAdjustFinalState() ) bAdjustFinalState = false;
// T.K. Comment out following line to keep the condition at the
// validation efforts comparing NeutronHP and PartileHP for neutrons (2015 Sep.)
@@ -62,8 +62,8 @@ public:
theNDLDataM = 0;
adjustResult = true;
if ( std::getenv( "G4PHP_DO_NOT_ADJUST_FINAL_STATE" ) ) adjustResult = false;
if ( G4ParticleHPManager::GetInstance()->GetDoNotAdjustFinalState() ) adjustResult = false;
theProjectile = G4Neutron::Neutron();
theResult.Put( 0 );
@@ -75,19 +75,27 @@ class G4ParticleHPManager
void DumpDataSource();
G4bool GetUseOnlyPhotoEvaporation() { return USE_ONLY_PHOTONEVAPORATION; };
void SetUseOnlyPhotoEvaporation( G4bool val ) { USE_ONLY_PHOTONEVAPORATION = val; };
G4bool GetSkipMissingIsotopes() { return SKIP_MISSING_ISOTOPES; };
G4bool GetNeglectDoppler() { return NEGLECT_DOPPLER; };
G4bool GetDoNotAdjustFinalState() { return DO_NOT_ADJUST_FINAL_STATE; };
G4bool GetProduceFissionFragments() { return PRODUCE_FISSION_FRAGMENTS; };
G4bool GetUseWendtFissionModel() { return USE_WENDT_FISSION_MODEL; };
G4bool GetUseNRESP71Model() { return USE_NRESP71_MODEL; };
void SetUseOnlyPhotoEvaporation( G4bool val ) { USE_ONLY_PHOTONEVAPORATION = val; };
void SetSkipMissingIsotopes( G4bool val ) { SKIP_MISSING_ISOTOPES = val; };
void SetNeglectDoppler( G4bool val ) { NEGLECT_DOPPLER = val; };
void SetDoNotAdjustFinalState( G4bool val ) { DO_NOT_ADJUST_FINAL_STATE = val; };
void SetProduceFissionFragments( G4bool val ) { PRODUCE_FISSION_FRAGMENTS = val; };
void SetProduceFissionFragments( G4bool val ) {
// Make sure both fission fragment models are not active at same time
USE_WENDT_FISSION_MODEL ? PRODUCE_FISSION_FRAGMENTS = false : PRODUCE_FISSION_FRAGMENTS = val ; };
void SetUseWendtFissionModel( G4bool val ) { USE_WENDT_FISSION_MODEL = val;
// Make sure both fission fragment models are not active at same time
if ( USE_WENDT_FISSION_MODEL ) PRODUCE_FISSION_FRAGMENTS = false; };
void SetUseNRESP71Model( G4bool val ) { USE_NRESP71_MODEL = val; };
void DumpSetting(); // Needs to be called somewhere to print out information once per run.
void RegisterElasticCrossSections( G4PhysicsTable* val ){ theElasticCrossSections = val; };
G4PhysicsTable* GetElasticCrossSections(){ return theElasticCrossSections; };
void RegisterCaptureCrossSections( G4PhysicsTable* val ){ theCaptureCrossSections = val; };
@@ -134,6 +142,7 @@ class G4ParticleHPManager
G4bool NEGLECT_DOPPLER;
G4bool DO_NOT_ADJUST_FINAL_STATE;
G4bool PRODUCE_FISSION_FRAGMENTS;
G4bool USE_WENDT_FISSION_MODEL;
G4bool USE_NRESP71_MODEL;
G4PhysicsTable* theElasticCrossSections;
@@ -51,18 +51,9 @@ class G4ParticleHPMessenger: public G4UImessenger
G4UIcmdWithAString* NeglectDopplerCmd;
G4UIcmdWithAString* DoNotAdjustFSCmd;
G4UIcmdWithAString* ProduceFissionFragementCmd;
G4UIcmdWithAString* WendtFissionModelCmd;
G4UIcmdWithAString* NRESP71Cmd;
G4UIcmdWithAnInteger* VerboseCmd;
//G4UIcmdWithAString* AllowHeavyElementCmd;
/*
* #setenv G4NEUTRONHP_USE_ONLY_PHOTONEVAPORATION 1
* #setenv G4NEUTRONHP_SKIP_MISSING_ISOTOPES 1
* #setenv G4NEUTRONHP_NEGLECT_DOPPLER 1
* #setenv G4NEUTRONHP_DO_NOT_ADJUST_FINAL_STATE 1
* #setenv G4NEUTRONHP_PRODUCE_FISSION_FRAGMENTS 1
*
*/
};
#endif
@@ -4,7 +4,7 @@
# Package: Geant4.src.G4processes.G4hadronic.G4hadronic_models.G4had_par_hp
#
# Sources description for a library.
# Lists the sources and headers of the code explicitely.
# Lists the sources and headers of the code explicitly.
# Lists include paths needed.
# Lists the internal granular and global dependencies of the library.
# Source specific properties should be added at the end.
@@ -14,39 +14,9 @@
#
#-----------------------------------------------------------------------
# List external includes needed.
include_directories(${CLHEP_INCLUDE_DIRS})
include_directories(${ZLIB_INCLUDE_DIRS})
# List internal includes needed.
include_directories(${CMAKE_SOURCE_DIR}/source/geometry/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/geometry/volumes/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPGeometry/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPRandom/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/materials/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/bosons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/barions/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/ions/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/mesons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/leptons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/cross_sections/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/photon_evaporation/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/de_excitation/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/processes/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/track/include)
#
# Define the Geant4 Module.
#
include(Geant4MacroDefineModule)
GEANT4_DEFINE_MODULE(NAME G4had_par_hp
HEADERS
G4InterpolationIterator.hh
@@ -467,7 +437,7 @@ GEANT4_DEFINE_MODULE(NAME G4had_par_hp
)
# List any source specific properties here
if("$ENV{PHP_AS_HP}")
if(GEANT4_BUILD_PHP_AS_HP)
add_definitions(-DPHP_AS_HP)
endif()
View File
View File
@@ -79,6 +79,11 @@
using CLHEP::pi;
#ifdef G4MULTITHREADED
#include "G4AutoLock.hh"
G4Mutex G4FissionProductYieldDist::fissprodMutex = G4MUTEX_INITIALIZER;
#endif
G4FissionProductYieldDist::
G4FissionProductYieldDist( G4int WhichIsotope,
G4FFGEnumerations::MetaState WhichMetaState,
@@ -107,42 +112,39 @@ G4FissionProductYieldDist( G4int WhichIsotope,
}
G4FissionProductYieldDist::
G4FissionProductYieldDist( G4int WhichIsotope,
G4FFGEnumerations::MetaState WhichMetaState,
G4FFGEnumerations::FissionCause WhichCause,
G4FFGEnumerations::YieldType WhichYieldType,
G4int Verbosity,
std::istringstream& dataStream)
: Isotope_(WhichIsotope),
MetaState_(WhichMetaState),
Cause_(WhichCause),
YieldType_(WhichYieldType),
Verbosity_(Verbosity)
G4FissionProductYieldDist(G4int WhichIsotope,
G4FFGEnumerations::MetaState WhichMetaState,
G4FFGEnumerations::FissionCause WhichCause,
G4FFGEnumerations::YieldType WhichYieldType,
G4int Verbosity,
std::istringstream& dataStream)
: Isotope_(WhichIsotope), MetaState_(WhichMetaState), Cause_(WhichCause),
YieldType_(WhichYieldType), Verbosity_(Verbosity)
{
G4FFG_FUNCTIONENTER__
try
{
// Initialize the class
Initialize(dataStream);
} catch (std::exception& e)
{
G4FFG_FUNCTIONLEAVE__
throw e;
}
G4FFG_FUNCTIONENTER__
try
{
// Initialize the class
Initialize(dataStream);
} catch (std::exception& e)
{
G4FFG_FUNCTIONLEAVE__
throw e;
}
G4FFG_FUNCTIONLEAVE__
}
void G4FissionProductYieldDist::
Initialize( std::istringstream& dataStream )
void G4FissionProductYieldDist::Initialize(std::istringstream& dataStream)
{
G4FFG_FUNCTIONENTER__
IncidentEnergy_ = 0.0;
TernaryProbability_ = 0;
AlphaProduction_ = 0;
SetNubar();
IncidentEnergy_ = 0.0;
TernaryProbability_ = 0;
AlphaProduction_ = 0;
SetNubar();
// Set miscellaneous variables
AlphaDefinition_ = reinterpret_cast<G4Ions*>(G4Alpha::Definition());
@@ -188,99 +190,98 @@ G4FFG_FUNCTIONENTER__
G4FFG_FUNCTIONLEAVE__
}
G4DynamicParticleVector* G4FissionProductYieldDist::
G4GetFission( void )
G4DynamicParticleVector* G4FissionProductYieldDist::G4GetFission(void)
{
G4FFG_FUNCTIONENTER__
// Check to see if the user has set the alpha production to a somewhat
// reasonable level
CheckAlphaSanity();
#ifdef G4MULTITHREADED
G4AutoLock lk(&G4FissionProductYieldDist::fissprodMutex);
#endif
// Generate the new G4DynamicParticle pointers to identify key locations in
// the G4DynamicParticle chain that will be passed to the G4FissionEvent
G4ReactionProduct* FirstDaughter = NULL;
G4ReactionProduct* SecondDaughter = NULL;
std::vector< G4ReactionProduct* >* Alphas = new std::vector< G4ReactionProduct* >;
std::vector< G4ReactionProduct* >* Neutrons = new std::vector< G4ReactionProduct* >;
std::vector< G4ReactionProduct* >* Gammas = new std::vector< G4ReactionProduct* >;
// Check to see if the user has set the alpha production to a somewhat
// reasonable level
CheckAlphaSanity();
// Generate all the nucleonic fission products
// How many nucleons do we have to work with?
//TK modified 131108
//const G4int ParentA = Isotope_ % 1000;
//const G4int ParentZ = (Isotope_ - ParentA) / 1000;
const G4int ParentA = (Isotope_/10) % 1000;
const G4int ParentZ = ((Isotope_/10) - ParentA) / 1000;
RemainingA_ = ParentA;
RemainingZ_ = ParentZ;
// Generate the new G4DynamicParticle pointers to identify key locations in
// the G4DynamicParticle chain that will be passed to the G4FissionEvent
G4ReactionProduct* FirstDaughter = NULL;
G4ReactionProduct* SecondDaughter = NULL;
std::vector< G4ReactionProduct* >* Alphas = new std::vector< G4ReactionProduct* >;
std::vector< G4ReactionProduct* >* Neutrons = new std::vector< G4ReactionProduct* >;
std::vector< G4ReactionProduct* >* Gammas = new std::vector< G4ReactionProduct* >;
// Don't forget the extra nucleons depending on the fission cause
switch(Cause_)
{
case G4FFGEnumerations::NEUTRON_INDUCED:
++RemainingA_;
break;
// Generate all the nucleonic fission products
// How many nucleons do we have to work with?
//TK modified 131108
const G4int ParentA = (Isotope_/10) % 1000;
const G4int ParentZ = ((Isotope_/10) - ParentA) / 1000;
RemainingA_ = ParentA;
RemainingZ_ = ParentZ;
case G4FFGEnumerations::PROTON_INDUCED:
++RemainingZ_;
break;
// Don't forget the extra nucleons depending on the fission cause
switch(Cause_)
{
case G4FFGEnumerations::NEUTRON_INDUCED:
++RemainingA_;
break;
case G4FFGEnumerations::GAMMA_INDUCED:
case G4FFGEnumerations::SPONTANEOUS:
default:
// Nothing to do here
break;
}
case G4FFGEnumerations::PROTON_INDUCED:
++RemainingZ_;
break;
// Ternary fission can be set by the user. Thus, it is necessary to
// sample the alpha particle first and the first daughter product
// second. See the discussion in
// G4FissionProductYieldDist::G4GetFissionProduct() for more information
// as to why the fission events are sampled this way.
GenerateAlphas(Alphas);
case G4FFGEnumerations::GAMMA_INDUCED:
case G4FFGEnumerations::SPONTANEOUS:
default:
// Nothing to do here
break;
}
// Generate the first daughter product
FirstDaughter = new G4ReactionProduct(GetFissionProduct());
RemainingA_ -= FirstDaughter->GetDefinition()->GetAtomicMass();
RemainingZ_ -= FirstDaughter->GetDefinition()->GetAtomicNumber();
if(Verbosity_ & G4FFGEnumerations::DAUGHTER_INFO)
{
G4FFG_SPACING__
G4FFG_LOCATION__
// Ternary fission can be set by the user. Thus, it is necessary to
// sample the alpha particle first and the first daughter product
// second. See the discussion in
// G4FissionProductYieldDist::G4GetFissionProduct() for more information
// as to why the fission events are sampled this way.
GenerateAlphas(Alphas);
// Generate the first daughter product
FirstDaughter = new G4ReactionProduct(GetFissionProduct());
RemainingA_ -= FirstDaughter->GetDefinition()->GetAtomicMass();
RemainingZ_ -= FirstDaughter->GetDefinition()->GetAtomicNumber();
if (Verbosity_ & G4FFGEnumerations::DAUGHTER_INFO) {
G4FFG_SPACING__
G4FFG_LOCATION__
G4cout << " -- First daughter product sampled" << G4endl;
G4FFG_SPACING__
G4cout << " Name: " << FirstDaughter->GetDefinition()->GetParticleName() << G4endl;
G4FFG_SPACING__
G4cout << " Z: " << FirstDaughter->GetDefinition()->GetAtomicNumber() << G4endl;
G4FFG_SPACING__
G4cout << " A: " << FirstDaughter->GetDefinition()->GetAtomicMass() << G4endl;
G4FFG_SPACING__
G4cout << " Meta State: " << (FirstDaughter->GetDefinition()->GetPDGEncoding() % 10) << G4endl;
}
G4cout << " -- First daughter product sampled" << G4endl;
G4FFG_SPACING__
G4cout << " Name: " << FirstDaughter->GetDefinition()->GetParticleName() << G4endl;
G4FFG_SPACING__
G4cout << " Z: " << FirstDaughter->GetDefinition()->GetAtomicNumber() << G4endl;
G4FFG_SPACING__
G4cout << " A: " << FirstDaughter->GetDefinition()->GetAtomicMass() << G4endl;
G4FFG_SPACING__
G4cout << " Meta State: " << (FirstDaughter->GetDefinition()->GetPDGEncoding() % 10) << G4endl;
}
GenerateNeutrons(Neutrons);
GenerateNeutrons(Neutrons);
// Now that all the nucleonic particles have been generated, we can
// calculate the composition of the second daughter product.
G4int NewIsotope = RemainingZ_ * 1000 + RemainingA_;
SecondDaughter = new G4ReactionProduct(GetParticleDefinition(NewIsotope, G4FFGEnumerations::GROUND_STATE));
if(Verbosity_ & G4FFGEnumerations::DAUGHTER_INFO)
{
G4FFG_SPACING__
G4FFG_LOCATION__
// Now that all the nucleonic particles have been generated, we can
// calculate the composition of the second daughter product.
G4int NewIsotope = RemainingZ_ * 1000 + RemainingA_;
SecondDaughter = new G4ReactionProduct(GetParticleDefinition(NewIsotope, G4FFGEnumerations::GROUND_STATE));
if (Verbosity_ & G4FFGEnumerations::DAUGHTER_INFO) {
G4FFG_SPACING__
G4FFG_LOCATION__
G4cout << " -- Second daughter product sampled" << G4endl;
G4FFG_SPACING__
G4cout << " Name: " << SecondDaughter->GetDefinition()->GetParticleName() << G4endl;
G4FFG_SPACING__
G4cout << " Z: " << SecondDaughter->GetDefinition()->GetAtomicNumber() << G4endl;
G4FFG_SPACING__
G4cout << " A: " << SecondDaughter->GetDefinition()->GetAtomicMass() << G4endl;
G4FFG_SPACING__
G4cout << " Meta State: " << (SecondDaughter->GetDefinition()->GetPDGEncoding() % 10) << G4endl;
}
G4cout << " -- Second daughter product sampled" << G4endl;
G4FFG_SPACING__
G4cout << " Name: " << SecondDaughter->GetDefinition()->GetParticleName() << G4endl;
G4FFG_SPACING__
G4cout << " Z: " << SecondDaughter->GetDefinition()->GetAtomicNumber() << G4endl;
G4FFG_SPACING__
G4cout << " A: " << SecondDaughter->GetDefinition()->GetAtomicMass() << G4endl;
G4FFG_SPACING__
G4cout << " Meta State: " << (SecondDaughter->GetDefinition()->GetPDGEncoding() % 10) << G4endl;
}
// Calculate how much kinetic energy will be available
// 195 to 205 MeV are available in a fission reaction, but about 20 MeV
@@ -33,7 +33,9 @@
//
// P. Arce, June-2014 Conversion neutron_hp to particle_hp
//
// June-2019 - E. Mendoza --> Modification to allow using an incomplete data library if the G4NEUTRONHP_SKIP_MISSING_ISOTOPES environmental flag is defined. The missing XS are set to 0.
// June-2019 - E. Mendoza --> Modification to allow using an incomplete
// data library if the G4NEUTRONHP_SKIP_MISSING_ISOTOPES environmental
// flag is defined. The missing XS are set to 0.
#include <stdlib.h>
@@ -44,23 +46,22 @@
#include "G4ParticleHPFinalState.hh"
#include "G4HadTmpUtil.hh"
#include "G4ParticleHPManager.hh"
#include "G4ParticleHPReactionWhiteBoard.hh"
G4double G4ParticleHPChannel::GetXsec(G4double energy)
{
return std::max(0., theChannelData->GetXsec(energy));
}
G4double G4ParticleHPChannel::GetXsec(G4double energy)
{
return std::max(0., theChannelData->GetXsec(energy));
}
G4double G4ParticleHPChannel::GetWeightedXsec(G4double energy, G4int isoNumber)
{
return theIsotopeWiseData[isoNumber].GetXsec(energy);
}
G4double G4ParticleHPChannel::GetWeightedXsec(G4double energy, G4int isoNumber)
{
return theIsotopeWiseData[isoNumber].GetXsec(energy);
}
G4double G4ParticleHPChannel::GetFSCrossSection(G4double energy, G4int isoNumber)
{
return theFinalStates[isoNumber]->GetXsec(energy);
}
G4double G4ParticleHPChannel::GetFSCrossSection(G4double energy, G4int isoNumber)
{
return theFinalStates[isoNumber]->GetXsec(energy);
}
void G4ParticleHPChannel::
Init(G4Element * anElement, const G4String dirName, const G4String aFSType)
@@ -57,6 +57,7 @@
#include "G4NucleiProperties.hh"
#include "G4ParticleHPKallbachMannSyst.hh"
#include "G4IonTable.hh"
#include "G4ParticleHPManager.hh"
#include <set>
G4ParticleHPContAngularPar::G4ParticleHPContAngularPar( G4ParticleDefinition* projectile )
@@ -66,8 +67,8 @@ G4ParticleHPContAngularPar::G4ParticleHPContAngularPar( G4ParticleDefinition* pr
fCache.Get()->currentMeanEnergy = -2;
fCache.Get()->fresh = true;
adjustResult = true;
if ( std::getenv( "G4PHP_DO_NOT_ADJUST_FINAL_STATE" ) ) adjustResult = false;
if ( G4ParticleHPManager::GetInstance()->GetDoNotAdjustFinalState() ) adjustResult = false;
theMinEner = DBL_MAX;
theMaxEner = -DBL_MAX;
theProjectile = projectile;
@@ -81,7 +82,7 @@ G4ParticleHPContAngularPar::G4ParticleHPContAngularPar( G4ParticleDefinition* pr
void G4ParticleHPContAngularPar::Init(std::istream & aDataFile, G4ParticleDefinition* projectile)
{
adjustResult = true;
if ( std::getenv( "G4PHP_DO_NOT_ADJUST_FINAL_STATE" ) ) adjustResult = false;
if ( G4ParticleHPManager::GetInstance()->GetDoNotAdjustFinalState() ) adjustResult = false;
theProjectile = projectile;
@@ -151,7 +151,7 @@
theFS.SampleNeutronMult(all, Prompt, delayed, eKinetic, 0);
if(Prompt==0&&delayed==0) Prompt=all;
theNeutrons = theFC.ApplyYourself(Prompt); // delayed always in FS
// take 'U' into account explicitely (see 5.4) in the sampling of energy @@@@
// take 'U' into account explicitly (see 5.4) in the sampling of energy @@@@
break;
case 1:
theFS.SampleNeutronMult(all, Prompt, delayed, eKinetic, 1);
@@ -83,7 +83,8 @@ G4ParticleHPInelastic::G4ParticleHPInelastic(G4ParticleDefinition* projectile, c
//G4cout << " entering G4ParticleHPInelastic constructor"<<G4endl;
if ( !std::getenv("G4PARTICLEHPDATA") && !std::getenv(dataDirVariable) ) {
G4String message( "Please set the environement variable " + G4String(dataDirVariable) + " to point to the " + theProjectile->GetParticleName() + " cross-section files." );
G4String message("Please setenv G4PARTICLEHPDATA (recommended) or, at least setenv " +
G4String(dataDirVariable) + " to point to the " + theProjectile->GetParticleName() + " cross-section files." );
throw G4HadronicException(__FILE__, __LINE__,message.c_str());
}
if ( std::getenv(dataDirVariable) ) {
@@ -345,9 +346,7 @@ throw G4HadronicException(__FILE__, __LINE__, "Channel: Do not know what to do w
const std::pair<G4double, G4double> G4ParticleHPInelastic::GetFatalEnergyCheckLevels() const
{
// max energy non-conservation is mass of heavy nucleus
// if ( getenv("G4PHP_DO_NOT_ADJUST_FINAL_STATE") ) return std::pair<G4double, G4double>(5*perCent,250*GeV);
// This should be same to the hadron default value
// return std::pair<G4double, G4double>(10*perCent,10*GeV);
return std::pair<G4double, G4double>(10*perCent,DBL_MAX);
}
@@ -501,7 +500,7 @@ void G4ParticleHPInelastic::BuildPhysicsTable(const G4ParticleDefinition& projec
throw G4HadronicException(__FILE__, __LINE__,message.c_str());
}
if(!std::getenv(dataDirVariable)){
G4String message("Please set the environement variable " + G4String(dataDirVariable) + " to point to the " + projectile.GetParticleName() + " cross-section files.");
G4String message("Please set the environment variable " + G4String(dataDirVariable) + " to point to the " + projectile.GetParticleName() + " cross-section files.");
throw G4HadronicException(__FILE__, __LINE__,message.c_str());
}
dirName = std::getenv(dataDirVariable);
@@ -512,8 +511,10 @@ void G4ParticleHPInelastic::BuildPhysicsTable(const G4ParticleDefinition& projec
*/
#ifdef G4VERBOSE
if ( G4HadronicParameters::Instance()->GetVerboseLevel() > 0 )
if ( G4HadronicParameters::Instance()->GetVerboseLevel() > 0 ) {
hpmanager->DumpSetting();
G4cout << "@@@ G4ParticleHPInelastic instantiated for particle " << projectile.GetParticleName() << " data directory variable is " << dataDirVariable << " pointing to " << dirName << G4endl;
}
#endif
for (G4int i = numEle ; i < (G4int)G4Element::GetNumberOfElements(); i++)
{
@@ -327,7 +327,7 @@ void G4ParticleHPInelasticBaseFS::BaseApply(const G4HadProjectile & theTrack,
{
tmpHadrons = theEnergyAngData->Sample(eKinetic);
if ( !std::getenv( "G4PHP_DO_NOT_ADJUST_FINAL_STATE" ) ) {
if ( ! G4ParticleHPManager::GetInstance()->GetDoNotAdjustFinalState() ) {
//141017 Fix BEGIN
//Adjust A and Z in the case of miss much between selected data and target nucleus
if ( tmpHadrons != NULL ) {
@@ -492,7 +492,7 @@ void G4ParticleHPInelasticBaseFS::BaseApply(const G4HadProjectile & theTrack,
#ifdef PHP_AS_HP
bAdjustPhotons = true;
#else
if ( std::getenv( "G4PHP_DO_NOT_ADJUST_FINAL_STATE" ) ) bAdjustPhotons = false;
if ( G4ParticleHPManager::GetInstance()->GetDoNotAdjustFinalState() ) bAdjustPhotons = false;
#endif
if( bAdjustPhotons ) {
@@ -32,7 +32,7 @@
// 080603 bug fix for Hadron Hyper News #932 by T. Koi
// 080612 bug fix contribution from Benoit Pirard and Laurent Desorgher (Univ. Bern) #4,6
// 080717 bug fix of calculation of residual momentum by T. Koi
// 080801 protect negative avalable energy by T. Koi
// 080801 protect negative available energy by T. Koi
// introduce theNDLDataA,Z which has A and Z of NDL data by T. Koi
// 081024 G4NucleiPropertiesTable:: to G4NucleiProperties::
// 090514 Fix bug in IC electron emission case
@@ -76,7 +76,8 @@ G4ParticleHPInelasticData::G4ParticleHPInelasticData(G4ParticleDefinition* proje
SetName( dataName );
if ( !std::getenv(dataDirVariable) && !std::getenv( "G4PARTICLEHPDATA" ) ){
G4String message("Please setenv " + G4String(dataDirVariable) + " to point to the " + projectile->GetParticleName() + " cross-section files.");
G4String message("Please setenv G4PARTICLEHPDATA (recommended) or, at least setenv " +
G4String(dataDirVariable) + " to point to the " + projectile->GetParticleName() + " cross-section files.");
throw G4HadronicException(__FILE__, __LINE__,message.c_str());
}
@@ -36,6 +36,7 @@
#include "G4ParticleHPThreadLocalManager.hh"
#include "G4ParticleHPMessenger.hh"
#include "G4HadronicException.hh"
#include "G4Exception.hh"
G4ParticleHPManager* G4ParticleHPManager::instance = 0;
@@ -46,6 +47,7 @@ G4ParticleHPManager::G4ParticleHPManager()
,NEGLECT_DOPPLER(false)
,DO_NOT_ADJUST_FINAL_STATE(false)
,PRODUCE_FISSION_FRAGMENTS(false)
,USE_WENDT_FISSION_MODEL(false)
,USE_NRESP71_MODEL(false)
,theElasticCrossSections(0)
,theCaptureCrossSections(0)
@@ -61,12 +63,73 @@ G4ParticleHPManager::G4ParticleHPManager()
,theTSInelasticFinalStates(0)
{
messenger = new G4ParticleHPMessenger( this );
if ( std::getenv( "G4NEUTRONHP_DO_NOT_ADJUST_FINAL_STATE" ) || std::getenv("G4PHP_DO_NOT_ADJUST_FINAL_STATE") ) DO_NOT_ADJUST_FINAL_STATE = true;
if ( std::getenv( "G4NEUTRONHP_USE_ONLY_PHOTONEVAPORATION" ) ) USE_ONLY_PHOTONEVAPORATION = true;
if ( std::getenv( "G4NEUTRONHP_NEGLECT_DOPPLER" ) || std::getenv("G4PHP_NEGLECT_DOPPLER") ) NEGLECT_DOPPLER = true;
if ( std::getenv( "G4NEUTRONHP_SKIP_MISSING_ISOTOPES" ) ) SKIP_MISSING_ISOTOPES = true;
if ( std::getenv( "G4NEUTRONHP_PRODUCE_FISSION_FRAGMENTS" ) ) PRODUCE_FISSION_FRAGMENTS = true;
if ( std::getenv( "G4PHP_USE_NRESP71_MODEL" ) ) USE_NRESP71_MODEL = true;
// The rest of this method will be removed in G4 11.0
if ( std::getenv( "G4NEUTRONHP_DO_NOT_ADJUST_FINAL_STATE" ) ||
std::getenv( "G4PHP_DO_NOT_ADJUST_FINAL_STATE" ) ) {
DO_NOT_ADJUST_FINAL_STATE = true;
G4ExceptionDescription ed;
ed << "Environmental variables G4NEUTRONHP_DO_NOT_ADJUST_FINAL_STATE and \n"
<< "G4PHP_DO_NOT_ADJUST_FINAL_STATE are valid but deprecated and will be replaced \n"
<< "with the UI command: /process/had/particle_hp/do_not_adjust_final_state \n"
<< "in the next major release, Geant4 version 11.0";
G4Exception( "G4ParticleHPManager ", "HP_MAN_165", JustWarning, ed );
}
if ( std::getenv( "G4NEUTRONHP_USE_ONLY_PHOTONEVAPORATION" ) ) {
USE_ONLY_PHOTONEVAPORATION = true;
G4ExceptionDescription ed;
ed << "Environmental variable G4NEUTRONHP_USE_ONLY_PHOTONEVAPORATION \n"
<< "is valid but deprecated and will be replaced with the UI command: \n"
<< "/process/had/particle_hp/use_photo_evaporation \n"
<< "in the next major release, Geant4 version 11.0";
G4Exception( "G4ParticleHPManager ", "HP_MAN_166", JustWarning, ed );
}
if ( std::getenv( "G4NEUTRONHP_NEGLECT_DOPPLER" ) ||
std::getenv( "G4PHP_NEGLECT_DOPPLER" ) ) {
NEGLECT_DOPPLER = true;
G4ExceptionDescription ed;
ed << "Environmental variables G4NEUTRONHP_NEGLECT_DOPPLER and G4PHP_NEGLECT_DOPPLER \n"
<< "are valid but deprecated and will be replaced with the UI command: \n"
<< "/process/had/particle_hp/neglect_Doppler_broadening \n"
<< "in the next major release, Geant4 version 11.0";
G4Exception( "G4ParticleHPManager ", "HP_MAN_167", JustWarning, ed );
}
if ( std::getenv( "G4NEUTRONHP_SKIP_MISSING_ISOTOPES" ) ) {
SKIP_MISSING_ISOTOPES = true;
G4ExceptionDescription ed;
ed << "Environmental variable G4NEUTRONHP_SKIP_MISSING_ISOTOPES \n"
<< "is valid but deprecated and will be replaced with the UI command: \n"
<< "/process/had/particle_hp/skip_missing_isotopes \n"
<< "in the next major release, Geant4 version 11.0";
G4Exception( "G4ParticleHPManager ", "HP_MAN_168", JustWarning, ed );
}
if ( std::getenv( "G4NEUTRONHP_PRODUCE_FISSION_FRAGMENTS" ) ) {
PRODUCE_FISSION_FRAGMENTS = true;
G4ExceptionDescription ed;
ed << "Environmental variable G4NEUTRONHP_PRODUCE_FISSION_FRAGMENTS \n"
<< "is valid but deprecated and will be replaced with the UI command: \n"
<< "/process/had/particle_hp/produce_fission_fragment \n"
<< "in the next major release, Geant4 version 11.0";
G4Exception( "G4ParticleHPManager ", "HP_MAN_169", JustWarning, ed );
}
if ( std::getenv( "G4NEUTRON_HP_USE_WENDT_FISSION_MODEL" ) ) {
USE_WENDT_FISSION_MODEL = true;
// Make sure both fission fragment models are not active at same time
PRODUCE_FISSION_FRAGMENTS = false;
G4ExceptionDescription ed;
ed << "Environmental variable G4NEUTRON_HP_USE_WENDT_FISSION_MODEL \n"
<< "is valid but deprecated and will be replaced with the UI command: \n"
<< "/process/had/particle_hp/use_Wendt_fission_model \n"
<< "in the next major release, Geant4 version 11.0";
G4Exception( "G4ParticleHPManager ", "HP_MAN_170", JustWarning, ed );
}
if ( std::getenv( "G4PHP_USE_NRESP71_MODEL" ) ) {
USE_NRESP71_MODEL = true;
G4ExceptionDescription ed;
ed << "Environmental variable G4PHP_USE_NRESP71_MODEL is valid but deprecated and \n"
<< "will be replaced with the UI command: /process/had/particle_hp/use_NRESP71_model \n"
<< "in the next major release, Geant4 version 11.0";
G4Exception( "G4ParticleHPManager ", "HP_MAN_171", JustWarning, ed );
}
}
G4ParticleHPManager::~G4ParticleHPManager()
@@ -255,3 +318,20 @@ void G4ParticleHPManager::RegisterInelasticFinalStates( const G4ParticleDefiniti
{
theInelasticFSs.insert ( std::pair<const G4ParticleDefinition*,std::vector<G4ParticleHPChannelList*>*>( particle , val ) );
}
void G4ParticleHPManager::DumpSetting() {
G4cout << G4endl
<< "=======================================================" << G4endl
<< "====== ParticleHP Physics Parameters ========" << G4endl
<< "=======================================================" << G4endl
<< " UseOnlyPhotoEvaporation ? " << USE_ONLY_PHOTONEVAPORATION << G4endl
<< " SkipMissingIsotopes ? " << SKIP_MISSING_ISOTOPES << G4endl
<< " NeglectDoppler ? " << NEGLECT_DOPPLER << G4endl
<< " DoNotAdjustFinalState ? " << DO_NOT_ADJUST_FINAL_STATE << G4endl
<< " ProduceFissionFragments ? " << PRODUCE_FISSION_FRAGMENTS << G4endl
<< " UseWendtFissionModel ? " << USE_WENDT_FISSION_MODEL << G4endl
<< " UseNRESP71Model ? " << USE_NRESP71_MODEL << G4endl
<< "=======================================================" << G4endl
<< G4endl;
}
@@ -68,6 +68,12 @@ G4ParticleHPMessenger::G4ParticleHPMessenger( G4ParticleHPManager* man )
ProduceFissionFragementCmd->SetCandidates("true false");
ProduceFissionFragementCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
WendtFissionModelCmd = new G4UIcmdWithAString("/process/had/particle_hp/use_Wendt_fission_model",this);
WendtFissionModelCmd->SetGuidance("Enable use of Wendt fission model.");
WendtFissionModelCmd->SetParameterName("choice",false);
WendtFissionModelCmd->SetCandidates("true false");
WendtFissionModelCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
NRESP71Cmd = new G4UIcmdWithAString("/process/had/particle_hp/use_NRESP71_model",this);
NRESP71Cmd->SetGuidance("Enable to use NRESP71 model for n on C reaction");
NRESP71Cmd->SetParameterName("choice",false);
@@ -90,6 +96,8 @@ G4ParticleHPMessenger::~G4ParticleHPMessenger()
delete NeglectDopplerCmd;
delete DoNotAdjustFSCmd;
delete ProduceFissionFragementCmd;
delete WendtFissionModelCmd;
delete NRESP71Cmd;
delete VerboseCmd;
}
@@ -113,6 +121,11 @@ void G4ParticleHPMessenger::SetNewValue(G4UIcommand* command,G4String newValue)
if ( command == ProduceFissionFragementCmd ) {
manager->SetProduceFissionFragments( bValue );
}
if ( command == WendtFissionModelCmd ) {
manager->SetUseWendtFissionModel( bValue );
// Make sure both fission fragment models are not active at same time
if ( bValue ) manager->SetProduceFissionFragments( false );
}
if ( command == NRESP71Cmd ) {
manager->SetUseNRESP71Model( bValue );
}
@@ -369,7 +369,7 @@ G4ReactionProductVector * G4ParticleHPPhotonDist::GetPhotons(G4double anEnergy)
thePhotons->operator[](count)->SetKineticEnergy(energy[i]);
}
count++;
if (count > nSecondaries) throw G4HadronicException(__FILE__, __LINE__, "G4ParticleHPPhotonDist::GetPhotons inconsistancy");
if (count > nSecondaries) throw G4HadronicException(__FILE__, __LINE__, "G4ParticleHPPhotonDist::GetPhotons inconsistency");
}
} else { // nDiscrete != 1 or nPartials != 1
@@ -400,7 +400,7 @@ G4ReactionProductVector * G4ParticleHPPhotonDist::GetPhotons(G4double anEnergy)
thePhotons->operator[](count)->SetKineticEnergy(energy[i]);
}
count++;
if (count > nSecondaries) throw G4HadronicException(__FILE__, __LINE__, "G4ParticleHPPhotonDist::GetPhotons inconsistancy");
if (count > nSecondaries) throw G4HadronicException(__FILE__, __LINE__, "G4ParticleHPPhotonDist::GetPhotons inconsistency");
}
}
}
@@ -428,7 +428,7 @@ G4ReactionProductVector * G4ParticleHPPhotonDist::GetPhotons(G4double anEnergy)
{
if (std::abs(currentEnergy-theGammas[ii])<0.1*keV) break;
}
if(ii==nDiscrete2) ii--; // fix for what seems an (file12 vs file 14) inconsistancy found in the ENDF 7N14 data. @@
if(ii==nDiscrete2) ii--; // fix for what seems an (file12 vs file 14) inconsistency found in the ENDF 7N14 data. @@
if(ii<nIso)
{
// isotropic distribution
@@ -543,7 +543,7 @@ G4ReactionProductVector * G4ParticleHPPhotonDist::GetPhotons(G4double anEnergy)
{
if (std::abs(currentEnergy-theGammas[ii])<0.1*keV) break;
}
if(ii==nDiscrete2) ii--; // fix for what seems an (file12 vs file 14) inconsistancy found in the ENDF 7N14 data. @@
if(ii==nDiscrete2) ii--; // fix for what seems an (file12 vs file 14) inconsistency found in the ENDF 7N14 data. @@
if(ii<nIso)
{
//Bug reported Chao Zhang (Chao.Zhang@usd.edu), Dongming Mei(Dongming.Mei@usd.edu) Feb. 25, 2009
View File
@@ -14,6 +14,49 @@ code and to keep track of all tags.
* Please list in reverse chronological order (last date on top)
---------------------------------------------------------------
14-Oct-2020 V. Ivanchenko (hadr-string-diff-V10-06-08)
- G4FTFModel - attempt to fix crash rarely observed in pion+proton
reaction: removed commented lines and unused variables; added
tolerance 1.e-10 for numerical computation; extended debug printout;
replace in all loops "i++" -> "++i"; cleaned-up sampling of Pt
for residual nucleons - limit argument for G4Exp by 200 instead of 1e+9
29-Sep-2020 A. Ribon (hadr-string-diff-V10-06-07)
- G4DiffractiveExcitation : Vladimir Uzhinsky's implementation of a
new splitting of excited hadrons into quark-antiquark or quark-diquark
in the method CreateStrings.
Other code improvements of this class were also introduced by
Vladimir Uzhinsky.
21-Sep-2020 J. Yarba (hadr-string-diff-V10-06-06)
- G4FTFParameters.cc : extend FTF configuration interface
to include parameters of quark exchange with and/or without
excitation, for baryon and pion projectiles
16-Sep-2020 A. Ribon (hadr-string-diff-V10-06-05)
- G4FTFModel : quasi-elastic is not applied any longer when the target
nucleus has one nucleon and the projectile hadron is not an ion.
This avoids to double count elastic scattering (as reported by
by Daria Prokhorova of NA61/SHINE in 158 GeV/c proton interactions
on liquid hydrogen: see bug report #2274).
08-Sep-2020 A. Ribon (hadr-string-diff-V10-06-04)
- G4FTFAnnihilation : added initialization of 2-dimensional arrays as
suggested by Coverity. Used consistently pre-increment instead of
post-increment.
28-Jul-2020 A. Ribon (hadr-string-diff-V10-06-03)
- G4DiffractiveExcitation : add protection against inexisting in Geant4
excited hyperon states (Sigma* and Xi*).
- G4FTFAnnihilation : removed useless check against inexisting in
either PDG (Lambda*) or Geant4 (Sigma* and Xi*) excited hyperon
states.
24-Jul-2020 A. Ribon (hadr-string-diff-V10-06-02)
- G4DiffractiveExcitation : extended for handling heavy (charm and
bottom) hadrons; introduced also a new pre-processor option for
debugging heavy hadrons, switched off by default.
08-Mar-2020 V. Ivanchenko (hadr-string-diff-V10-06-01)
- G4FTFModel, G4FTFParticipants - clean-up: removed unused methods, delete
operators, use C++11 keywords

Some files were not shown because too many files have changed in this diff Show More