Import Geant4 11.0.0.beta source tree

This commit is contained in:
Gabriele Cosmo
2021-06-25 16:12:29 +02:00
parent c968e26a39
commit 6399a014b6
4200 changed files with 207479 additions and 237366 deletions
@@ -44,20 +44,7 @@
#include "G4ParticleHPBGGNucleonInelasticXS.hh"
#include "G4SystemOfUnits.hh"
/*
#include "G4GlauberGribovCrossSection.hh"
#include "G4NucleonNuclearCrossSection.hh"
#include "G4HadronNucleonXsc.hh"
*/
#include "G4HadronInelasticDataSet.hh"
/*
#include "G4Proton.hh"
#include "G4Neutron.hh"
#include "G4NistManager.hh"
#include "G4Material.hh"
#include "G4Element.hh"
#include "G4Isotope.hh"
*/
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -55,7 +55,6 @@ G4ParticleHPCaptureData::G4ParticleHPCaptureData()
SetMaxKinEnergy( 20*MeV );
theCrossSections = 0;
onFlightDB = true;
instanceOfWorker = false;
if ( G4Threading::IsWorkerThread() ) {
@@ -123,18 +122,6 @@ void G4ParticleHPCaptureData::BuildPhysicsTable(const G4ParticleDefinition& aP)
if(&aP!=G4Neutron::Neutron())
throw G4HadronicException(__FILE__, __LINE__, "Attempt to use NeutronHP data for particles other than neutrons!!!");
//080428
if ( G4ParticleHPManager::GetInstance()->GetNeglectDoppler() )
{
onFlightDB = false;
#ifdef G4VERBOSE
if ( G4HadronicParameters::Instance()->GetVerboseLevel() > 0 ) {
G4cout << "Find a flag of \"G4NEUTRONHP_NEGLECT_DOPPLER\"." << G4endl;
G4cout << "On the fly Doppler broadening will be neglect in the cross section calculation of capture reaction of neutrons (<20MeV)." << G4endl;
}
#endif
}
if ( G4Threading::IsWorkerThread() ) {
theCrossSections = G4ParticleHPManager::GetInstance()->GetCaptureCrossSections();
return;
@@ -234,7 +221,7 @@ GetCrossSection(const G4DynamicParticle* aP, const G4Element*anE, G4double aT)
// prepare neutron
G4double eKinetic = aP->GetKineticEnergy();
if ( !onFlightDB )
if ( G4ParticleHPManager::GetInstance()->GetNeglectDoppler() )
{
//NEGLECT_DOPPLER
G4double factor = 1.0;
@@ -142,7 +142,7 @@
nPhotons=thePhotons->size();
///*
if ( DoNotAdjustFinalState() ) {
if ( ! G4ParticleHPManager::GetInstance()->GetDoNotAdjustFinalState() ) {
//Make at least one photon
//101203 TK
if ( nPhotons == 0 )
@@ -106,6 +106,9 @@ G4ParticleHPContAngularPar::G4ParticleHPContAngularPar( G4ParticleDefinition* pr
G4ParticleHPContAngularPar::Sample(G4double anEnergy, G4double massCode, G4double /*targetMass*/,
G4int angularRep, G4int /*interpolE*/ )
{
// The following line is needed because it may change between runs by UI command
if ( G4ParticleHPManager::GetInstance()->GetDoNotAdjustFinalState() ) adjustResult = false;
if( std::getenv("G4PHPTEST") ) G4cout << " G4ParticleHPContAngularPar::Sample " << anEnergy << " " << massCode << " " << angularRep << G4endl; //GDEB
if ( fCache.Get() == 0 ) cacheInit();
G4ReactionProduct * result = new G4ReactionProduct;
@@ -30,7 +30,7 @@
// P. Arce, June-2014 Conversion neutron_hp to particle_hp
//
#include "G4ParticleHPData.hh"
#include "G4LPhysicsFreeVector.hh"
#include "G4PhysicsFreeVector.hh"
G4ParticleHPData::G4ParticleHPData(G4ParticleDefinition* projectile )
: theProjectile(projectile)
@@ -78,13 +78,13 @@ G4ParticleHPData::G4ParticleHPData(G4ParticleDefinition* projectile )
// G4cout << "Entered G4ParticleHPData::DoPhysicsVector."<<G4endl;
G4int len = theVector->GetVectorLength();
// G4cout <<"zahl der energie-punkte "<< len<<G4endl;
if(len==0) return new G4LPhysicsFreeVector(0, 0, 0);
if(len==0) return new G4PhysicsFreeVector(0, 0., 0.);
G4double emin = theVector->GetX(0);
G4double emax = theVector->GetX(len-1);
// G4cout <<"zahl der energie-punkte "<< len<<" "<<emin<<" "<<emax<<G4endl;
// G4int dummy; G4cin >> dummy;
G4LPhysicsFreeVector * theResult = new G4LPhysicsFreeVector(len, emin, emax);
G4PhysicsFreeVector * theResult = new G4PhysicsFreeVector(len, emin, emax);
for (G4int i=0; i<len; i++)
{
theResult->PutValues(i, theVector->GetX(i), theVector->GetY(i));
@@ -54,7 +54,6 @@ G4ParticleHPElasticData::G4ParticleHPElasticData()
SetMaxKinEnergy( 20*MeV );
theCrossSections = 0;
onFlightDB = true;
instanceOfWorker = false;
if ( G4Threading::IsWorkerThread() ) {
instanceOfWorker = true;
@@ -121,18 +120,6 @@ void G4ParticleHPElasticData::BuildPhysicsTable(const G4ParticleDefinition& aP)
if(&aP!=G4Neutron::Neutron())
throw G4HadronicException(__FILE__, __LINE__, "Attempt to use NeutronHP data for particles other than neutrons!!!");
//080428
if ( G4ParticleHPManager::GetInstance()->GetNeglectDoppler() )
{
onFlightDB = false;
#ifdef G4VERBOSE
if ( G4HadronicParameters::Instance()->GetVerboseLevel() > 0 ) {
G4cout << "Find a flag of \"G4NEUTRONHP_NEGLECT_DOPPLER\"." << G4endl;
G4cout << "On the fly Doppler broadening will be neglect in the cross section calculation of elastic scattering of neutrons (<20MeV)." << G4endl;
}
#endif
}
if ( G4Threading::IsWorkerThread() ) {
theCrossSections = G4ParticleHPManager::GetInstance()->GetElasticCrossSections();
return;
@@ -227,7 +214,7 @@ GetCrossSection(const G4DynamicParticle* aP, const G4Element*anE, G4double aT)
// prepare neutron
G4double eKinetic = aP->GetKineticEnergy();
if ( !onFlightDB )
if ( G4ParticleHPManager::GetInstance()->GetNeglectDoppler() )
{
//NEGLECT_DOPPLER_B.
G4double factor = 1.0;
@@ -43,10 +43,6 @@
#include "G4He3.hh"
#include "G4Alpha.hh"
G4bool G4ParticleHPFinalState::DoNotAdjustFinalState()
{
return !G4ParticleHPManager::GetInstance()->GetDoNotAdjustFinalState();
}
void G4ParticleHPFinalState::adjust_final_state ( G4LorentzVector init_4p_lab )
{
@@ -52,7 +52,6 @@ G4ParticleHPFissionData::G4ParticleHPFissionData()
SetMaxKinEnergy( 20*MeV );
theCrossSections = 0;
onFlightDB = true;
instanceOfWorker = false;
if ( G4Threading::IsWorkerThread() ) {
instanceOfWorker = true;
@@ -114,17 +113,6 @@ G4bool G4ParticleHPFissionData::IsApplicable(const G4DynamicParticle*aP, const G
void G4ParticleHPFissionData::BuildPhysicsTable(const G4ParticleDefinition& aP)
{
if ( G4ParticleHPManager::GetInstance()->GetNeglectDoppler() ) {
onFlightDB = false;
#ifdef G4VERBOSE
if ( G4HadronicParameters::Instance()->GetVerboseLevel() > 0 ) {
G4cout << "Find a flag of \"G4NEUTRONHP_NEGLECT_DOPPLER\"." << G4endl;
G4cout << "On the fly Doppler broadening will be neglect in the cross section calculation of fission reaction of neutrons (<20MeV)." << G4endl;
}
#endif
}
if(&aP!=G4Neutron::Neutron())
throw G4HadronicException(__FILE__, __LINE__, "Attempt to use NeutronHP data for particles other than neutrons!!!");
@@ -234,7 +222,8 @@ if ( ( ( *theCrossSections )( index ) )->GetVectorLength() == 0 ) return result;
theNeutronRP.SetMomentum( aP->GetMomentum() );
theNeutronRP.SetKineticEnergy( eKinetic );
if ( !onFlightDB ) {
if ( G4ParticleHPManager::GetInstance()->GetNeglectDoppler() )
{
//NEGLECT_DOPPLER
G4double factor = 1.0;
if ( eKinetic < aT * k_Boltzmann ) {
@@ -50,7 +50,7 @@ G4ParticleHPInelasticData::G4ParticleHPInelasticData(G4ParticleDefinition* proje
const char* dataDirVariable;
G4String particleName;
if( projectile == G4Neutron::Neutron() ) {
dataDirVariable = "G4NEUTRONHPDATA";
dataDirVariable = "G4NEUTRONHPDATA";
}else if( projectile == G4Proton::Proton() ) {
dataDirVariable = "G4PROTONHPDATA";
particleName = "Proton";
@@ -76,17 +76,17 @@ G4ParticleHPInelasticData::G4ParticleHPInelasticData(G4ParticleDefinition* proje
SetName( dataName );
if ( !std::getenv(dataDirVariable) && !std::getenv( "G4PARTICLEHPDATA" ) ){
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());
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());
}
G4String dirName;
if ( std::getenv(dataDirVariable) ) {
dirName = std::getenv(dataDirVariable);
dirName = std::getenv(dataDirVariable);
} else {
G4String baseName = std::getenv( "G4PARTICLEHPDATA" );
dirName = baseName + "/" + particleName;
G4String baseName = std::getenv( "G4PARTICLEHPDATA" );
dirName = baseName + "/" + particleName;
}
#ifdef G4VERBOSE
if ( G4HadronicParameters::Instance()->GetVerboseLevel() > 0 ) {
@@ -97,21 +97,20 @@ G4ParticleHPInelasticData::G4ParticleHPInelasticData(G4ParticleDefinition* proje
SetMinKinEnergy( 0*CLHEP::MeV );
SetMaxKinEnergy( 20*CLHEP::MeV );
onFlightDB = true;
theCrossSections = 0;
theProjectile=projectile;
theCrossSections = 0;
theProjectile=projectile;
theHPData = NULL;
instanceOfWorker = false;
if ( G4Threading::IsMasterThread() ) {
theHPData = new G4ParticleHPData( theProjectile );
} else {
instanceOfWorker = true;
}
element_cache = NULL;
material_cache = NULL;
ke_cache = 0.0;
xs_cache = 0.0;
theHPData = NULL;
instanceOfWorker = false;
if ( G4Threading::IsMasterThread() ) {
theHPData = new G4ParticleHPData( theProjectile );
} else {
instanceOfWorker = true;
}
element_cache = NULL;
material_cache = NULL;
ke_cache = 0.0;
xs_cache = 0.0;
}
G4ParticleHPInelasticData::~G4ParticleHPInelasticData()
@@ -172,18 +171,6 @@ void G4ParticleHPInelasticData::BuildPhysicsTable( const G4ParticleDefinition& p
// if(&projectile!=G4Neutron::Neutron())
// throw G4HadronicException(__FILE__, __LINE__, "Attempt to use NeutronHP data for particles other than neutrons!!!");
//080428
if ( G4ParticleHPManager::GetInstance()->GetNeglectDoppler() )
{
onFlightDB = false;
#ifdef G4VERBOSE
if ( G4HadronicParameters::Instance()->GetVerboseLevel() > 0 ) {
G4cout << "Find a flag of \"G4PHP_NEGLECT_DOPPLER\"." << G4endl;
G4cout << "On the fly Doppler broadening will be neglect in the cross section calculation of inelastic scattering of neutrons (<20MeV)." << G4endl;
}
#endif
}
if ( G4Threading::IsWorkerThread() ) {
theCrossSections = G4ParticleHPManager::GetInstance()->GetInelasticCrossSections( &projectile );
return;
@@ -191,8 +178,6 @@ void G4ParticleHPInelasticData::BuildPhysicsTable( const G4ParticleDefinition& p
if ( theHPData == NULL ) theHPData = G4ParticleHPData::Instance( const_cast<G4ParticleDefinition*> ( &projectile ) );
}
size_t numberOfElements = G4Element::GetNumberOfElements();
// theCrossSections = new G4PhysicsTable( numberOfElements );
// TKDB
@@ -285,7 +270,7 @@ GetCrossSection(const G4DynamicParticle* projectile, const G4Element*anE, G4doub
// prepare neutron
G4double eKinetic = projectile->GetKineticEnergy();
if ( !onFlightDB )
if ( G4ParticleHPManager::GetInstance()->GetNeglectDoppler() )
{
//NEGLECT_DOPPLER
G4double factor = 1.0;
@@ -296,8 +281,7 @@ GetCrossSection(const G4DynamicParticle* projectile, const G4Element*anE, G4doub
// Will take care after performance check.
// factor = factor * targetV;
}
return ( (*((*theCrossSections)(index))).GetValue(eKinetic, outOfRange) )* factor;
return ( (*((*theCrossSections)(index))).GetValue(eKinetic, outOfRange) )* factor;
}
G4ReactionProduct theNeutron( projectile->GetDefinition() );
@@ -33,7 +33,7 @@
//
#include "G4ParticleHPJENDLHEData.hh"
#include "G4SystemOfUnits.hh"
#include "G4LPhysicsFreeVector.hh"
#include "G4PhysicsFreeVector.hh"
#include "G4ElementTable.hh"
#include "G4ParticleHPData.hh"
#include "G4Pow.hh"
@@ -318,7 +318,7 @@ G4PhysicsVector* G4ParticleHPJENDLHEData::readAFile ( std::fstream* file )
v_xs.push_back( xs*barn );
}
G4LPhysicsFreeVector* aPhysVec = new G4LPhysicsFreeVector( static_cast< size_t >( len ) , v_e.front() , v_e.back() );
G4PhysicsFreeVector* aPhysVec = new G4PhysicsFreeVector( static_cast< size_t >( len ) , v_e.front() , v_e.back() );
for ( G4int i = 0 ; i < len ; i++ )
{
@@ -63,73 +63,6 @@ G4ParticleHPManager::G4ParticleHPManager()
,theTSInelasticFinalStates(0)
{
messenger = new G4ParticleHPMessenger( this );
// 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()
@@ -25,10 +25,11 @@
//
#include "G4ParticleHPMessenger.hh"
#include "G4ParticleHPManager.hh"
#include "G4UIdirectory.hh"
#include "G4UIcmdWithAString.hh"
#include "G4UIcmdWithAnInteger.hh"
#include "G4HadronicParameters.hh"
G4ParticleHPMessenger::G4ParticleHPMessenger( G4ParticleHPManager* man )
:manager(man)
@@ -103,34 +104,160 @@ G4ParticleHPMessenger::~G4ParticleHPMessenger()
void G4ParticleHPMessenger::SetNewValue(G4UIcommand* command,G4String newValue)
{
G4bool bValue=false;
if ( newValue == "true" ) bValue=true;
G4bool bValue = false;
if ( newValue == "true" ) bValue = true;
if ( command == PhotoEvaCmd ) {
manager->SetUseOnlyPhotoEvaporation( bValue );
if ( command == PhotoEvaCmd ) {
if ( manager->GetUseOnlyPhotoEvaporation() != bValue ) {
manager->SetUseOnlyPhotoEvaporation( bValue );
#ifdef G4VERBOSE
if ( G4HadronicParameters::Instance()->GetVerboseLevel() > 0 ) {
G4cout << G4endl
<< "=== G4ParticleHPMessenger CHANGED PARAMETER UseOnlyPhotoEvaporation TO "
<< bValue << " ===" << G4endl;
}
if ( bValue ) {
G4cout << " -> Forced the use of the Photon Evaporation model (instead of the neutron capture final state data)"
<< G4endl;
} else {
G4cout << " -> Go back to use the default neutron capture final state data !" << G4endl;
}
#endif
}
}
if ( command == SkipMissingCmd) {
manager->SetSkipMissingIsotopes( bValue );
if ( command == SkipMissingCmd) {
if ( manager->GetSkipMissingIsotopes() != bValue ) {
manager->SetSkipMissingIsotopes( bValue );
#ifdef G4VERBOSE
if ( G4HadronicParameters::Instance()->GetVerboseLevel() > 0 ) {
G4cout << G4endl
<< "=== G4ParticleHPMessenger CHANGED PARAMETER SkipMissingIsotopes TO "
<< bValue << " ===" << G4endl;
}
if ( bValue ) {
G4cout << " -> Use only exact isotope data files, instead of allowing nearby isotope files to be used: \n"
<< " if the exact file is not available, the cross section will be set to zero !"
<< G4endl;
} else {
G4cout << " -> Go back to the default, i.e. use nearby isotope files when the exact isotope data files are not found !"
<< G4endl;
}
#endif
}
}
if ( command == NeglectDopplerCmd ) {
manager->SetNeglectDoppler( bValue );
if ( command == NeglectDopplerCmd ) {
if ( manager->GetNeglectDoppler() != bValue ) {
manager->SetNeglectDoppler( bValue );
#ifdef G4VERBOSE
if ( G4HadronicParameters::Instance()->GetVerboseLevel() > 0 ) {
G4cout << G4endl
<< "=== G4ParticleHPMessenger CHANGED PARAMETER NeglectDoppler TO "
<< bValue << " ===" << G4endl;
}
if ( bValue ) {
G4cout << " -> Switched off the Doppler broadening due to the thermal motion of the target nucleus: \n"
<< " on-the-fly Doppler broadening will be neglected in the cross section calculations of \n"
<< " capture, elastic, fission and inelastic reactions/scatterings of neutrons below 20 MeV.\n"
<< " This option provides a significant CPU performance advantage !"
<< G4endl;
} else {
G4cout << " -> Go back to the default, i.e. switch on the Doppler broadening on-the-fly !" << G4endl;
}
#endif
}
}
if ( command == DoNotAdjustFSCmd ) {
manager->SetDoNotAdjustFinalState( bValue );
if ( command == DoNotAdjustFSCmd ) {
if ( manager->GetDoNotAdjustFinalState() != bValue ) {
manager->SetDoNotAdjustFinalState( bValue );
#ifdef G4VERBOSE
if ( G4HadronicParameters::Instance()->GetVerboseLevel() > 0 ) {
G4cout << G4endl
<< "=== G4ParticleHPMessenger CHANGED PARAMETER DoNotAdjustFinalState TO "
<< bValue << " ===" << G4endl;
}
if ( bValue ) {
G4cout << " -> Disabled the adjustment of the final state for getting better conservation !"
<< G4endl;
} else {
G4cout << " -> Go back to the default, i.e. adjust the final state to get better conservation !"
<< G4endl;
}
#endif
}
}
if ( command == ProduceFissionFragementCmd ) {
manager->SetProduceFissionFragments( bValue );
if ( manager->GetProduceFissionFragments() != bValue ) {
manager->SetProduceFissionFragments( bValue );
#ifdef G4VERBOSE
if ( G4HadronicParameters::Instance()->GetVerboseLevel() > 0 ) {
G4cout << G4endl
<< "=== G4ParticleHPMessenger CHANGED PARAMETER ProduceFissionFragments TO "
<< bValue << " ===" << G4endl;
}
if ( bValue ) {
G4cout << " -> Enabled the generation of fission fragments !"
<< G4endl;
} else {
G4cout << " -> Go back to the default, i.e. do not generate fission fragments !" << G4endl;
}
#endif
}
}
if ( command == WendtFissionModelCmd ) {
manager->SetUseWendtFissionModel( bValue );
// Make sure both fission fragment models are not active at same time
if ( bValue ) manager->SetProduceFissionFragments( false );
if ( manager->GetUseWendtFissionModel() != bValue ) {
manager->SetUseWendtFissionModel( bValue );
// Make sure both fission fragment models are not active at same time
if ( bValue ) manager->SetProduceFissionFragments( false );
#ifdef G4VERBOSE
if ( G4HadronicParameters::Instance()->GetVerboseLevel() > 0 ) {
G4cout << G4endl
<< "=== G4ParticleHPMessenger CHANGED PARAMETER UseWendtFissionModel TO "
<< bValue << " ===" << G4endl;
}
if ( bValue ) {
G4cout << " -> Enabled the use of Wendt fission model !" << G4endl;
} else {
G4cout << " -> Go back to the default, i.e. do not use the Wendt fission model !" << G4endl;
}
#endif
}
}
if ( command == NRESP71Cmd ) {
manager->SetUseNRESP71Model( bValue );
if ( manager->GetUseNRESP71Model() != bValue ) {
manager->SetUseNRESP71Model( bValue );
#ifdef G4VERBOSE
if ( G4HadronicParameters::Instance()->GetVerboseLevel() > 0 ) {
G4cout << G4endl
<< "=== G4ParticleHPMessenger CHANGED PARAMETER UseNRESP71Model TO "
<< bValue << " ===" << G4endl;
}
if ( bValue ) {
G4cout << " -> Enabled the use of NRESP71 model for n on C reaction !" << G4endl;
} else {
G4cout << " -> Go back to the default, i.e. do not use the NRESP71 model !" << G4endl;
}
#endif
}
}
if ( command == VerboseCmd ) {
manager->SetVerboseLevel( VerboseCmd->ConvertToInt( newValue ) );
G4int verboseLevel = VerboseCmd->ConvertToInt( newValue );
if ( manager->GetVerboseLevel() != verboseLevel ) {
manager->SetVerboseLevel( verboseLevel );
#ifdef G4VERBOSE
if ( G4HadronicParameters::Instance()->GetVerboseLevel() > 0 ) {
G4cout << G4endl
<< "=== G4ParticleHPMessenger CHANGED PARAMETER VerboseLevel TO "
<< verboseLevel << " ===" << G4endl;
}
#endif
}
}
}