Import Geant4 11.0.0.beta source tree
This commit is contained in:
+1
-14
@@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user