55 if ( sInstance ==
nullptr ) {
57 if ( sInstance ==
nullptr ) {
59 sInstance = &theHadronicParametersObject;
72G4HadronicParameters::G4HadronicParameters() {
73 fMaxEnergy = 100.0*CLHEP::TeV;
74 fMinEnergyTransitionFTF_Cascade = 3.0*CLHEP::GeV;
75 fMaxEnergyTransitionFTF_Cascade = 6.0*CLHEP::GeV;
76 fMinEnergyTransitionQGS_FTF = 12.0*CLHEP::GeV;
77 fMaxEnergyTransitionQGS_FTF = 25.0*CLHEP::GeV;
78 fMinEnergyINCLXX_Pbar = 0.0*CLHEP::GeV;
79 fMaxEnergyINCLXX_Pbar = 10.0*CLHEP::GeV;
80 fEnergyThresholdForHeavyHadrons = 1.1*CLHEP::GeV;
85 const char* ep1 = std::getenv(
"G4Hadronic_epCheckRelativeLevel");
86 if(
nullptr != ep1) { fRelativeDiff = std::strtod(ep1, 0); }
87 const char* ep2 = std::getenv(
"G4Hadronic_epCheckAbsoluteLevel");
88 if(
nullptr != ep2) { fAbsoluteDiff = std::strtod(ep2, 0); }
93 if(1 < fVerboseLevel) {
95 ed <<
"Environment variable G4PARTICLEXSDATA is not defined or "
96 <<
" it is pointing out to not existing directory";
97 G4Exception(
"G4LevelReader::LevelManager(..)",
"had014",
101 const char* x = std::getenv(
"G4PhysListDocDir");
102 if(
nullptr != x) { fPhysListDocDir =
G4String(x); }
103 const char* y = std::getenv(
"G4PhysListName");
104 if(
nullptr != y) { fPhysListName =
G4String(y); }
105 const char* z = std::getenv(
"BINARY_CASCADE_DEBUG");
106 if(
nullptr != z) { fBinaryDebug =
true; }
110G4bool G4HadronicParameters::IsLocked()
const {
117 if ( ! IsLocked() && val > 0.0 ) {
124 if ( ! IsLocked() && val > 0.0 ) {
125 fMinEnergyTransitionFTF_Cascade = val;
131 if ( ! IsLocked() && val > fMinEnergyTransitionFTF_Cascade ) {
132 fMaxEnergyTransitionFTF_Cascade = val;
138 if ( ! IsLocked() && val > 0.0 ) {
139 fMinEnergyTransitionQGS_FTF = val;
144 if ( ! IsLocked() && val > fMinEnergyTransitionQGS_FTF ) {
145 fMaxEnergyTransitionQGS_FTF = val;
150 if ( ! IsLocked() && val >= 0.0 ) {
151 fMinEnergyINCLXX_Pbar = val;
157 if ( ! IsLocked() && val > fMinEnergyINCLXX_Pbar ) {
158 fMaxEnergyINCLXX_Pbar = val;
163 if ( ! IsLocked() ) fEnableBC = val;
168 if ( ! IsLocked() ) fEnableHyperNuclei = val;
173 if ( ! IsLocked() && val >= 0 ) fVerboseLevel = val;
178 if ( ! IsLocked() && val >= 0 && val < 5*CLHEP::GeV ) {
179 fEnergyThresholdForHeavyHadrons = val;
185 if ( ! IsLocked() && std::abs(val - 1.0) < fXSFactorLimit ) {
186 fXSFactorNucleonInelastic = val;
192 if ( ! IsLocked() && std::abs(val - 1.0) < fXSFactorLimit ) {
193 fXSFactorNucleonElastic = val;
199 if ( ! IsLocked() && std::abs(val - 1.0) < fXSFactorLimit ) {
200 fXSFactorPionInelastic = val;
206 if ( ! IsLocked() && std::abs(val - 1.0) < fXSFactorLimit ) {
207 fXSFactorPionElastic = val;
213 if ( ! IsLocked() && std::abs(val - 1.0) < fXSFactorLimit ) {
214 fXSFactorHadronInelastic = val;
220 if ( ! IsLocked() && std::abs(val - 1.0) < fXSFactorLimit ) {
221 fXSFactorHadronElastic = val;
227 if ( ! IsLocked() && std::abs(val - 1.0) < fXSFactorLimit ) {
237 fNeutronEkinThresholdForSVT = val;
246 fTimeThresholdForRadioactiveDecays = val;
252 if ( ! IsLocked() ) fApplyFactorXS = val;
257 if ( ! IsLocked() ) fEnableCRCoalescence = val;
262 if ( ! IsLocked() ) fEnableIntegralInelasticXS = val;
267 if ( ! IsLocked() ) fEnableIntegralElasticXS = val;
272 if ( ! IsLocked() ) fEnableDiffDissociationForBGreater10 = val;
277 if ( ! IsLocked() ) fNeutronGeneral = val;
282 if ( ! IsLocked() ) fChargeExchange = val;
_Tp G4GetEnv(const std::string &env_id, _Tp _default=_Tp())
const char * G4FindDataDir(const char *)
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
std::ostringstream G4ExceptionDescription
#define G4MUTEX_INITIALIZER
void SetEnableIntegralElasticXS(G4bool val)
void SetEnableDiffDissociationForBGreater10(G4bool val)
void SetEnableCoherentChargeExchange(G4bool val)
static G4HadronicParameters * Instance()
void SetNeutronKineticEnergyThresholdForSVT(const G4double val)
void SetXSFactorNucleonInelastic(G4double val)
void SetEnableIntegralInelasticXS(G4bool val)
void SetXSFactorPionInelastic(G4double val)
void SetVerboseLevel(const G4int val)
void SetXSFactorPionElastic(G4double val)
void SetTimeThresholdForRadioactiveDecay(const G4double val)
void SetEnableHyperNuclei(G4bool val)
void SetMaxEnergyINCLXX_Pbar(const G4double val)
void SetMaxEnergy(const G4double val)
void SetApplyFactorXS(G4bool val)
void SetEnergyThresholdForHeavyHadrons(G4double val)
void SetMinEnergyTransitionQGS_FTF(const G4double val)
void SetMinEnergyTransitionFTF_Cascade(const G4double val)
void SetEnableBCParticles(G4bool val)
void SetXSFactorHadronElastic(G4double val)
void SetXSFactorEM(G4double val)
void SetEnableCRCoalescence(G4bool val)
void SetMaxEnergyTransitionQGS_FTF(const G4double val)
void SetMinEnergyINCLXX_Pbar(const G4double val)
void SetXSFactorHadronInelastic(G4double val)
void SetEnableNeutronGeneralProcess(G4bool val)
void SetXSFactorNucleonElastic(G4double val)
void SetMaxEnergyTransitionFTF_Cascade(const G4double val)
static G4StateManager * GetStateManager()