Import Geant4 11.0.0.beta source tree
This commit is contained in:
@@ -38,7 +38,6 @@
|
||||
#include "G4DynamicParticle.hh"
|
||||
#include "G4DecayProducts.hh"
|
||||
#include "G4PhotonEvaporation.hh"
|
||||
#include "G4RadioactiveDecay.hh"
|
||||
#include "G4VAtomDeexcitation.hh"
|
||||
#include "G4AtomicShells.hh"
|
||||
#include "G4Electron.hh"
|
||||
|
||||
@@ -42,52 +42,28 @@
|
||||
G4RadioactivationMessenger::G4RadioactivationMessenger(G4Radioactivation* theRadioactivationContainer1)
|
||||
:theRadioactivationContainer(theRadioactivationContainer1)
|
||||
{
|
||||
old_grdmDirectory = new G4UIdirectory("/grdm/"); // To be removed in G4 11.0
|
||||
old_grdmDirectory->SetGuidance("Controls the biased version of radioactive decay");
|
||||
|
||||
rdmDirectory = new G4UIdirectory("/process/had/rdm/");
|
||||
rdmDirectory->SetGuidance("Controls the biased version of radioactive decay");
|
||||
|
||||
// Command to turn on/off variance reduction options
|
||||
old_analoguemcCmd = new G4UIcmdWithABool("/grdm/analogueMC",this); // To be removed in G4 11.0
|
||||
old_analoguemcCmd->SetGuidance("false: variance reduction method; true: analogue method");
|
||||
old_analoguemcCmd->SetParameterName("OldAnalogueMC",true);
|
||||
old_analoguemcCmd->SetDefaultValue(true);
|
||||
|
||||
analoguemcCmd = new G4UIcmdWithABool("/process/had/rdm/analogueMC",this);
|
||||
analoguemcCmd->SetGuidance("false: variance reduction method; true: analogue method");
|
||||
analoguemcCmd->SetParameterName("AnalogueMC",true);
|
||||
analoguemcCmd->SetDefaultValue(true);
|
||||
|
||||
// Command to use branching ratio biasing or not
|
||||
old_brbiasCmd = new G4UIcmdWithABool("/grdm/BRbias",this); // To be removed in G4 11.0
|
||||
old_brbiasCmd->SetGuidance("false: no biasing; true: all branches are treated as equal");
|
||||
old_brbiasCmd->SetParameterName("OldBRBias",true);
|
||||
old_brbiasCmd->SetDefaultValue(true);
|
||||
|
||||
brbiasCmd = new G4UIcmdWithABool("/process/had/rdm/BRbias",this);
|
||||
brbiasCmd->SetGuidance("false: no biasing; true: all branches are treated as equal");
|
||||
brbiasCmd->SetParameterName("BRBias",true);
|
||||
brbiasCmd->SetDefaultValue(true);
|
||||
|
||||
// Command to set the half-life thresold for isomer production
|
||||
old_hlthCmd = new G4UIcmdWithADoubleAndUnit("/grdm/hlThreshold",this); // To be removed in G4 11.0
|
||||
old_hlthCmd->SetGuidance("Set the h-l threshold for isomer production");
|
||||
old_hlthCmd->SetParameterName("OldhlThreshold",false);
|
||||
old_hlthCmd->SetUnitCategory("Time");
|
||||
|
||||
hlthCmd = new G4UIcmdWithADoubleAndUnit("/process/had/rdm/hlThreshold",this);
|
||||
hlthCmd->SetGuidance("Set the h-l threshold for isomer production");
|
||||
hlthCmd->SetParameterName("hlThreshold",false);
|
||||
hlthCmd->SetUnitCategory("Time");
|
||||
|
||||
// Command to define the incident particle source time profile
|
||||
old_sourcetimeprofileCmd = new G4UIcmdWithAString("/grdm/sourceTimeProfile",this); // To be removed in G4 11.0
|
||||
old_sourcetimeprofileCmd->SetGuidance
|
||||
("Supply the name of the ascii file containing the source particle time profile");
|
||||
old_sourcetimeprofileCmd->SetParameterName("OldSTimeProfile",true);
|
||||
old_sourcetimeprofileCmd->SetDefaultValue("source.data");
|
||||
|
||||
sourcetimeprofileCmd = new G4UIcmdWithAString("/process/had/rdm/sourceTimeProfile",this);
|
||||
sourcetimeprofileCmd->SetGuidance
|
||||
("Supply the name of the ascii file containing the source particle time profile");
|
||||
@@ -95,12 +71,6 @@ G4RadioactivationMessenger::G4RadioactivationMessenger(G4Radioactivation* theRad
|
||||
sourcetimeprofileCmd->SetDefaultValue("source.data");
|
||||
|
||||
// Command to define the incident particle source time profile
|
||||
old_decaybiasprofileCmd = new G4UIcmdWithAString("/grdm/decayBiasProfile",this); // To be removed in G4 11.0
|
||||
old_decaybiasprofileCmd->SetGuidance
|
||||
("Supply the name of the ascii file containing the decay bias time profile");
|
||||
old_decaybiasprofileCmd->SetParameterName("OldDBiasProfile",true);
|
||||
old_decaybiasprofileCmd->SetDefaultValue("bias.data");
|
||||
|
||||
decaybiasprofileCmd = new G4UIcmdWithAString("/process/had/rdm/decayBiasProfile",this);
|
||||
decaybiasprofileCmd->SetGuidance
|
||||
("Supply the name of the ascii file containing the decay bias time profile");
|
||||
@@ -108,12 +78,6 @@ G4RadioactivationMessenger::G4RadioactivationMessenger(G4Radioactivation* theRad
|
||||
decaybiasprofileCmd->SetDefaultValue("bias.data");
|
||||
|
||||
// Command to set nuclei splitting parameter
|
||||
old_splitnucleiCmd = new G4UIcmdWithAnInteger("/grdm/splitNuclei",this); // To be removed in G4 11.0
|
||||
old_splitnucleiCmd->SetGuidance("Set number of splitting for the isotopes.");
|
||||
old_splitnucleiCmd->SetParameterName("OldNSplit",true);
|
||||
old_splitnucleiCmd->SetDefaultValue(1);
|
||||
old_splitnucleiCmd->SetRange("OldNSplit>=1");
|
||||
|
||||
splitnucleiCmd = new G4UIcmdWithAnInteger("/process/had/rdm/splitNuclei",this);
|
||||
splitnucleiCmd->SetGuidance("Set number of splitting for the isotopes.");
|
||||
splitnucleiCmd->SetParameterName("NSplit",true);
|
||||
@@ -124,65 +88,18 @@ G4RadioactivationMessenger::G4RadioactivationMessenger(G4Radioactivation* theRad
|
||||
|
||||
G4RadioactivationMessenger::~G4RadioactivationMessenger()
|
||||
{
|
||||
delete old_grdmDirectory; // To be removed in G4 11.0
|
||||
delete rdmDirectory;
|
||||
delete old_analoguemcCmd; // To be removed in G4 11.0
|
||||
delete analoguemcCmd;
|
||||
delete old_sourcetimeprofileCmd; // To be removed in G4 11.0
|
||||
delete sourcetimeprofileCmd;
|
||||
delete old_decaybiasprofileCmd; // To be removed in G4 11.0
|
||||
delete decaybiasprofileCmd;
|
||||
delete old_brbiasCmd; // To be removed in G4 11.0
|
||||
delete brbiasCmd;
|
||||
delete old_splitnucleiCmd; // To be removed in G4 11.0
|
||||
delete splitnucleiCmd;
|
||||
delete old_hlthCmd; // To be removed in G4 11.0
|
||||
delete hlthCmd;
|
||||
}
|
||||
|
||||
|
||||
void G4RadioactivationMessenger::SetNewValue(G4UIcommand* command, G4String newValues)
|
||||
{
|
||||
// Old commands to be removed in G4 11.0
|
||||
if ( command == old_analoguemcCmd ) { theRadioactivationContainer->
|
||||
SetAnalogueMonteCarlo( old_analoguemcCmd->GetNewBoolValue( newValues ) );
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/analogueMC in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactivationMessenger", "HAD_RDM_871", JustWarning, ed );
|
||||
} else if ( command == old_brbiasCmd ) { theRadioactivationContainer->
|
||||
SetBRBias( old_brbiasCmd->GetNewBoolValue( newValues ) );
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/BRbias in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactivationMessenger", "HAD_RDM_872", JustWarning, ed );
|
||||
} else if ( command == old_sourcetimeprofileCmd ) { theRadioactivationContainer->
|
||||
SetSourceTimeProfile( newValues );
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/sourceTimeProfile in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactivationMessenger", "HAD_RDM_873", JustWarning, ed );
|
||||
} else if ( command == old_decaybiasprofileCmd ) { theRadioactivationContainer->
|
||||
SetDecayBias( newValues );
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/decayBiasProfile in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactivationMessenger", "HAD_RDM_874", JustWarning, ed );
|
||||
} else if ( command == old_splitnucleiCmd ) { theRadioactivationContainer->
|
||||
SetSplitNuclei( old_splitnucleiCmd->GetNewIntValue( newValues ) );
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/splitNuclei in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactivationMessenger", "HAD_RDM_875", JustWarning, ed );
|
||||
} else if ( command == old_hlthCmd ) { theRadioactivationContainer->
|
||||
SetHLThreshold( old_hlthCmd->GetNewDoubleValue( newValues ) );
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/hlThreshold in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactivationMessenger", "HAD_RDM_876", JustWarning, ed );
|
||||
}
|
||||
|
||||
// New commands
|
||||
if ( command == analoguemcCmd ) { theRadioactivationContainer->
|
||||
SetAnalogueMonteCarlo( analoguemcCmd->GetNewBoolValue( newValues ) );
|
||||
} else if ( command == brbiasCmd ) { theRadioactivationContainer->
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -109,7 +109,8 @@ G4int& G4RadioactiveDecayBase::NumberOfInstances()
|
||||
G4RadioactiveDecayBase::G4RadioactiveDecayBase(const G4String& processName)
|
||||
: G4VRestDiscreteProcess(processName, fDecay), isInitialised(false),
|
||||
forceDecayDirection(0.,0.,0.), forceDecayHalfAngle(0.*deg), dirPath(""),
|
||||
verboseLevel(1)
|
||||
verboseLevel(1),
|
||||
fThresholdForVeryLongDecayTime( 1.0e+27*CLHEP::nanosecond ) // Longer than twice Universe's age
|
||||
{
|
||||
#ifdef G4VERBOSE
|
||||
if (GetVerboseLevel() > 1) {
|
||||
@@ -240,77 +241,78 @@ G4DecayTable* G4RadioactiveDecayBase::GetDecayTable(const G4ParticleDefinition*
|
||||
}
|
||||
|
||||
|
||||
void G4RadioactiveDecayBase::SelectAVolume(const G4String aVolume)
|
||||
void G4RadioactiveDecayBase::SelectAVolume(const G4String& aVolume)
|
||||
{
|
||||
G4LogicalVolumeStore* theLogicalVolumes;
|
||||
G4LogicalVolume* volume;
|
||||
theLogicalVolumes = G4LogicalVolumeStore::GetInstance();
|
||||
for (size_t i = 0; i < theLogicalVolumes->size(); i++) {
|
||||
volume = (*theLogicalVolumes)[i];
|
||||
if (volume->GetName() == aVolume) {
|
||||
ValidVolumes.push_back(aVolume);
|
||||
std::sort(ValidVolumes.begin(), ValidVolumes.end());
|
||||
// sort need for performing binary_search
|
||||
G4LogicalVolumeStore* theLogicalVolumes = G4LogicalVolumeStore::GetInstance();
|
||||
G4LogicalVolume* volume = nullptr;
|
||||
volume = theLogicalVolumes->GetVolume(aVolume);
|
||||
if (volume != nullptr)
|
||||
{
|
||||
ValidVolumes.push_back(aVolume);
|
||||
std::sort(ValidVolumes.begin(), ValidVolumes.end());
|
||||
// sort need for performing binary_search
|
||||
|
||||
if (GetVerboseLevel() > 0)
|
||||
G4cout << " Radioactive decay applied to " << aVolume << G4endl;
|
||||
|
||||
} else if (i == theLogicalVolumes->size() ) {
|
||||
G4ExceptionDescription ed;
|
||||
ed << aVolume << " is not a valid logical volume name. Decay not activated for it."
|
||||
<< G4endl;
|
||||
G4Exception("G4RadioactiveDecayBase::SelectAVolume()", "HAD_RDM_300",
|
||||
JustWarning, ed);
|
||||
}
|
||||
if (GetVerboseLevel() > 0)
|
||||
G4cout << " Radioactive decay applied to " << aVolume << G4endl;
|
||||
}
|
||||
else
|
||||
{
|
||||
G4ExceptionDescription ed;
|
||||
ed << aVolume << " is not a valid logical volume name."
|
||||
<< " Decay not activated for it."
|
||||
<< G4endl;
|
||||
G4Exception("G4RadioactiveDecayBase::SelectAVolume()", "HAD_RDM_300",
|
||||
JustWarning, ed);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void G4RadioactiveDecayBase::DeselectAVolume(const G4String aVolume)
|
||||
void G4RadioactiveDecayBase::DeselectAVolume(const G4String& aVolume)
|
||||
{
|
||||
G4LogicalVolumeStore* theLogicalVolumes;
|
||||
G4LogicalVolume* volume;
|
||||
theLogicalVolumes = G4LogicalVolumeStore::GetInstance();
|
||||
for (size_t i = 0; i < theLogicalVolumes->size(); i++) {
|
||||
volume = (*theLogicalVolumes)[i];
|
||||
if (volume->GetName() == aVolume) {
|
||||
std::vector<G4String>::iterator location;
|
||||
location = std::find(ValidVolumes.begin(),ValidVolumes.end(),aVolume);
|
||||
if (location != ValidVolumes.end() ) {
|
||||
ValidVolumes.erase(location);
|
||||
std::sort(ValidVolumes.begin(), ValidVolumes.end());
|
||||
isAllVolumesMode = false;
|
||||
if (GetVerboseLevel() > 0)
|
||||
G4cout << " G4RadioactiveDecay::DeselectAVolume: " << aVolume
|
||||
<< " is removed from list " << G4endl;
|
||||
} else {
|
||||
G4ExceptionDescription ed;
|
||||
ed << aVolume << " is not in the list. No action taken." << G4endl;
|
||||
G4Exception("G4RadioactiveDecayBase::DeselectAVolume()", "HAD_RDM_300",
|
||||
JustWarning, ed);
|
||||
}
|
||||
} else if (i == theLogicalVolumes->size()) {
|
||||
G4LogicalVolumeStore* theLogicalVolumes = G4LogicalVolumeStore::GetInstance();
|
||||
G4LogicalVolume* volume = nullptr;
|
||||
volume = theLogicalVolumes->GetVolume(aVolume);
|
||||
if (volume != nullptr)
|
||||
{
|
||||
auto location= std::find(ValidVolumes.cbegin(),ValidVolumes.cend(),aVolume);
|
||||
if (location != ValidVolumes.cend() )
|
||||
{
|
||||
ValidVolumes.erase(location);
|
||||
std::sort(ValidVolumes.begin(), ValidVolumes.end());
|
||||
isAllVolumesMode = false;
|
||||
if (GetVerboseLevel() > 0)
|
||||
G4cout << " G4RadioactiveDecay::DeselectAVolume: " << aVolume
|
||||
<< " is removed from list " << G4endl;
|
||||
}
|
||||
else
|
||||
{
|
||||
G4ExceptionDescription ed;
|
||||
ed << aVolume << " is not a valid logical volume name. No action taken."
|
||||
<< G4endl;
|
||||
ed << aVolume << " is not in the list. No action taken." << G4endl;
|
||||
G4Exception("G4RadioactiveDecayBase::DeselectAVolume()", "HAD_RDM_300",
|
||||
JustWarning, ed);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
G4ExceptionDescription ed;
|
||||
ed << aVolume << " is not a valid logical volume name. No action taken."
|
||||
<< G4endl;
|
||||
G4Exception("G4RadioactiveDecayBase::DeselectAVolume()", "HAD_RDM_300",
|
||||
JustWarning, ed);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void G4RadioactiveDecayBase::SelectAllVolumes()
|
||||
{
|
||||
G4LogicalVolumeStore* theLogicalVolumes;
|
||||
G4LogicalVolume* volume;
|
||||
theLogicalVolumes = G4LogicalVolumeStore::GetInstance();
|
||||
G4LogicalVolumeStore* theLogicalVolumes = G4LogicalVolumeStore::GetInstance();
|
||||
G4LogicalVolume* volume = nullptr;
|
||||
ValidVolumes.clear();
|
||||
#ifdef G4VERBOSE
|
||||
if (GetVerboseLevel()>1)
|
||||
G4cout << " RDM Applies to all Volumes" << G4endl;
|
||||
#endif
|
||||
for (size_t i = 0; i < theLogicalVolumes->size(); i++){
|
||||
for (std::size_t i = 0; i < theLogicalVolumes->size(); ++i){
|
||||
volume = (*theLogicalVolumes)[i];
|
||||
ValidVolumes.push_back(volume->GetName());
|
||||
#ifdef G4VERBOSE
|
||||
@@ -494,6 +496,8 @@ G4RadioactiveDecayBase::StreamInfo(std::ostream& os, const G4String& endline)
|
||||
<< emparam->DeexcitationIgnoreCut() << endline;
|
||||
os << "Use Bearden atomic level energies "
|
||||
<< emparam->BeardenFluoDir() << endline;
|
||||
os << "Threshold for very long decay time at rest "
|
||||
<< fThresholdForVeryLongDecayTime/CLHEP::ns << " ns" << endline;
|
||||
os << "======================================================================"
|
||||
<< G4endl;
|
||||
os.precision(prec);
|
||||
@@ -1129,6 +1133,24 @@ void G4RadioactiveDecayBase::DecayAnalog(const G4Track& theTrack)
|
||||
finalGlobalTime += temptime;
|
||||
finalLocalTime += temptime;
|
||||
energyDeposit += theParticle->GetKineticEnergy();
|
||||
|
||||
// Kill the parent particle, and ignore its decay, if it decays later than the
|
||||
// threshold fThresholdForVeryLongDecayTime (whose default value corresponds
|
||||
// to more than twice the age of the universe).
|
||||
// This kind of cut has been introduced (in April 2021) in order to avoid to
|
||||
// account energy depositions happening after many billions of years in
|
||||
// ordinary materials used in calorimetry, in particular Tungsten and Lead
|
||||
// (via their natural unstable, but very long lived, isotopes, such as
|
||||
// W183, W180 and Pb204).
|
||||
// Note that the cut is not on the average, mean lifetime, but on the actual
|
||||
// sampled global decay time.
|
||||
if ( finalGlobalTime > fThresholdForVeryLongDecayTime ) {
|
||||
fParticleChangeForRadDecay.SetNumberOfSecondaries(0);
|
||||
fParticleChangeForRadDecay.ProposeTrackStatus(fStopAndKill) ;
|
||||
fParticleChangeForRadDecay.ProposeLocalEnergyDeposit(0.0);
|
||||
ClearNumberOfInteractionLengthLeft();
|
||||
return;
|
||||
}
|
||||
}
|
||||
products->Boost(ParentEnergy, ParentDirection);
|
||||
|
||||
|
||||
+24
-193
@@ -45,65 +45,35 @@ G4RadioactiveDecayBaseMessenger::G4RadioactiveDecayBaseMessenger
|
||||
(G4RadioactiveDecayBase* theRadioactiveDecayContainer1)
|
||||
:theRadioactiveDecayContainer(theRadioactiveDecayContainer1)
|
||||
{
|
||||
// main directory for control of the RDM
|
||||
old_grdmDirectory = new G4UIdirectory("/grdm/"); // To be removed in G4 11.0
|
||||
old_grdmDirectory->SetGuidance("Controls for the Radioactive Decay Module.");
|
||||
|
||||
rdmDirectory = new G4UIdirectory("/process/had/rdm/");
|
||||
rdmDirectory->SetGuidance("Controls for the Radioactive Decay Module.");
|
||||
|
||||
// Command to define the limits on nucleus the RDM will treat.
|
||||
old_nucleuslimitsCmd = new G4UIcmdWithNucleusLimits("/grdm/nucleusLimits",this); // To be removed in G4 11.0
|
||||
old_nucleuslimitsCmd->SetGuidance("Set the atomic weight and number limits for the RDM.");
|
||||
old_nucleuslimitsCmd->SetParameterName("OldAMin","OldAMax","OldZMin","OldZMax",true);
|
||||
|
||||
nucleuslimitsCmd = new G4UIcmdWithNucleusLimits("/process/had/rdm/nucleusLimits",this);
|
||||
nucleuslimitsCmd->SetGuidance("Set the atomic weight and number limits for the RDM.");
|
||||
nucleuslimitsCmd->SetParameterName("AMin","AMax","ZMin","ZMax",true);
|
||||
|
||||
// Select a logical volume for RDM
|
||||
old_avolumeCmd = new G4UIcmdWithAString("/grdm/selectVolume",this); // To be removed in G4 11.0
|
||||
old_avolumeCmd->SetGuidance("Supply a logical volumes name to add it to the RDM apply list");
|
||||
old_avolumeCmd->SetParameterName("OldAVolume",false);
|
||||
|
||||
avolumeCmd = new G4UIcmdWithAString("/process/had/rdm/selectVolume",this);
|
||||
avolumeCmd->SetGuidance("Supply a logical volumes name to add it to the RDM apply list");
|
||||
avolumeCmd->SetParameterName("AVolume",false);
|
||||
|
||||
// De-select a logical volume for RDM
|
||||
old_deavolumeCmd = new G4UIcmdWithAString("/grdm/deselectVolume",this); // To be removed in G4 11.0
|
||||
old_deavolumeCmd->SetGuidance("Supply a logical volumes name to remove it from the RDM apply list");
|
||||
old_deavolumeCmd->SetParameterName("OldAVolume",false);
|
||||
|
||||
deavolumeCmd = new G4UIcmdWithAString("/process/had/rdm/deselectVolume",this);
|
||||
deavolumeCmd->SetGuidance("Supply a logical volumes name to remove it from the RDM apply list");
|
||||
deavolumeCmd->SetParameterName("AVolume",false);
|
||||
|
||||
// Select all logical volumes for RDM
|
||||
old_allvolumesCmd = new G4UIcmdWithoutParameter("/grdm/allVolumes",this); // To be removed in G4 11.0
|
||||
old_allvolumesCmd->SetGuidance(" apply RDM to all logical volumes. No parameter required.");
|
||||
// old_allvolumeCmd->SetParameterName("OldAddAVolume",true);
|
||||
|
||||
allvolumesCmd = new G4UIcmdWithoutParameter("/process/had/rdm/allVolumes",this);
|
||||
allvolumesCmd->SetGuidance(" apply RDM to all logical volumes. No parameter required.");
|
||||
// allvolumeCmd->SetParameterName("AddAVolume",true);
|
||||
|
||||
// De-select all logical volumes for RDM
|
||||
old_deallvolumesCmd = new G4UIcmdWithoutParameter("/grdm/noVolumes",this); // To be removed in G4 11.0
|
||||
old_deallvolumesCmd->SetGuidance(" RDM is not applied to any logical volumes");
|
||||
// old_deallvolumesCmd->SetParameterName("OldRemoveAVolume",true);
|
||||
|
||||
deallvolumesCmd = new G4UIcmdWithoutParameter("/process/had/rdm/noVolumes",this);
|
||||
deallvolumesCmd->SetGuidance(" RDM is not applied to any logical volumes");
|
||||
// deallvolumesCmd->SetParameterName("RemoveAVolume",true);
|
||||
|
||||
// Command to invoke internal conversion or not
|
||||
old_icmCmd = new G4UIcmdWithABool("/grdm/applyICM",this); // To be removed in G4 11.0
|
||||
old_icmCmd->SetGuidance("Command not active; kept for backward compatibility.");
|
||||
old_icmCmd->SetGuidance("Internal conversion is always turned on.");
|
||||
old_icmCmd->SetParameterName("OldApplyICM",true);
|
||||
old_icmCmd->SetDefaultValue(true);
|
||||
|
||||
icmCmd = new G4UIcmdWithABool("/process/had/rdm/applyICM",this);
|
||||
icmCmd->SetGuidance("Command not active; kept for backward compatibility.");
|
||||
icmCmd->SetGuidance("Internal conversion is always turned on.");
|
||||
@@ -111,12 +81,6 @@ G4RadioactiveDecayBaseMessenger::G4RadioactiveDecayBaseMessenger
|
||||
icmCmd->SetDefaultValue(true);
|
||||
|
||||
// Command to invoke atomic relaxation or not
|
||||
old_armCmd = new G4UIcmdWithABool("/grdm/applyARM",this); // To be removed in G4 11.0
|
||||
old_armCmd->SetGuidance("True: ARM is applied; false: no");
|
||||
old_armCmd->SetParameterName("OldApplyARM",true);
|
||||
old_armCmd->SetDefaultValue(true);
|
||||
//old_armCmd->AvailableForStates(G4State_PreInit);
|
||||
|
||||
armCmd = new G4UIcmdWithABool("/process/had/rdm/applyARM",this);
|
||||
armCmd->SetGuidance("True: ARM is applied; false: no");
|
||||
armCmd->SetParameterName("ApplyARM",true);
|
||||
@@ -124,32 +88,17 @@ G4RadioactiveDecayBaseMessenger::G4RadioactiveDecayBaseMessenger
|
||||
//armCmd->AvailableForStates(G4State_PreInit);
|
||||
|
||||
// Command to set the directional bias (collimation) vector
|
||||
old_colldirCmd = new G4UIcmdWith3Vector("/grdm/decayDirection",this); // To be removed in G4 11.0
|
||||
old_colldirCmd->SetGuidance("Supply the direction vector for decay products");
|
||||
old_colldirCmd->SetParameterName("OldX","OldY","OldZ",false);
|
||||
|
||||
colldirCmd = new G4UIcmdWith3Vector("/process/had/rdm/decayDirection",this);
|
||||
colldirCmd->SetGuidance("Supply the direction vector for decay products");
|
||||
colldirCmd->SetParameterName("X","Y","Z",false);
|
||||
|
||||
// Command to set the directional bias (collimation) half angle ("cone")
|
||||
old_collangleCmd = new G4UIcmdWithADoubleAndUnit("/grdm/decayHalfAngle",this); // To be removed in G4 11.0
|
||||
old_collangleCmd->SetGuidance("Supply maximum angle from direction vector for decay products");
|
||||
old_collangleCmd->SetParameterName("OldHalfAngle",false);
|
||||
old_collangleCmd->SetUnitCategory("Angle");
|
||||
|
||||
collangleCmd = new G4UIcmdWithADoubleAndUnit("/process/had/rdm/decayHalfAngle",this);
|
||||
collangleCmd->SetGuidance("Supply maximum angle from direction vector for decay products");
|
||||
collangleCmd->SetParameterName("HalfAngle",false);
|
||||
collangleCmd->SetUnitCategory("Angle");
|
||||
|
||||
// This command setup the verbose level of radioactive decay
|
||||
old_verboseCmd = new G4UIcmdWithAnInteger("/grdm/verbose",this); // To be removed in G4 11.0
|
||||
old_verboseCmd->SetGuidance("Set verbose level: 0, 1, 2 or 3");
|
||||
old_verboseCmd->SetParameterName("OldVerboseLevel",true);
|
||||
old_verboseCmd->SetDefaultValue(1);
|
||||
old_verboseCmd->SetRange("OldVerboseLevel>=0");
|
||||
|
||||
verboseCmd = new G4UIcmdWithAnInteger("/process/had/rdm/verbose",this);
|
||||
verboseCmd->SetGuidance("Set verbose level: 0, 1, 2 or 3");
|
||||
verboseCmd->SetParameterName("VerboseLevel",true);
|
||||
@@ -157,20 +106,6 @@ G4RadioactiveDecayBaseMessenger::G4RadioactiveDecayBaseMessenger
|
||||
verboseCmd->SetRange("VerboseLevel>=0");
|
||||
|
||||
// Use a user-defined decay datafile for a given isotope
|
||||
old_userDecayDataCmd = new G4UIcommand("/grdm/setRadioactiveDecayFile",this); // To be removed in G4 11.0
|
||||
old_userDecayDataCmd->SetGuidance("Supply user-defined radioactive decay data file");
|
||||
G4UIparameter* old_Z_para= new G4UIparameter("Z_isotope",'i',true);
|
||||
old_Z_para->SetParameterRange("Z_isotope > 0");
|
||||
old_Z_para->SetGuidance("Z: Charge number of isotope");
|
||||
G4UIparameter* old_A_para= new G4UIparameter("A_isotope",'i',true);
|
||||
old_A_para->SetParameterRange("A_isotope > 1");
|
||||
old_A_para->SetGuidance("A: mass number of isotope");
|
||||
G4UIparameter* old_FileName_para= new G4UIparameter("file_name",'s',true);
|
||||
old_FileName_para->SetGuidance("Name of the user data file");
|
||||
old_userDecayDataCmd->SetParameter(old_Z_para);
|
||||
old_userDecayDataCmd->SetParameter(old_A_para);
|
||||
old_userDecayDataCmd->SetParameter(old_FileName_para);
|
||||
|
||||
userDecayDataCmd = new G4UIcommand("/process/had/rdm/setRadioactiveDecayFile",this);
|
||||
userDecayDataCmd->SetGuidance("Supply user-defined radioactive decay data file");
|
||||
G4UIparameter* Z_para= new G4UIparameter("Z_isotope",'i',true);
|
||||
@@ -186,20 +121,6 @@ G4RadioactiveDecayBaseMessenger::G4RadioactiveDecayBaseMessenger
|
||||
userDecayDataCmd->SetParameter(FileName_para);
|
||||
|
||||
// Use a user-defined evaporation data file for a given isotope
|
||||
old_userEvaporationDataCmd = new G4UIcommand("/grdm/setPhotoEvaporationFile",this); // To be removed in G4 11.0
|
||||
old_userEvaporationDataCmd->SetGuidance("Supply user-defined photon evaporation data file");
|
||||
G4UIparameter* old_Zpara= new G4UIparameter("Z_isotope",'i',true);
|
||||
old_Zpara->SetParameterRange("Z_isotope > 0");
|
||||
old_Zpara->SetGuidance("Z: Charge number of isotope");
|
||||
G4UIparameter* old_Apara= new G4UIparameter("A_isotope",'i',true);
|
||||
old_Apara->SetParameterRange("A_isotope > 1");
|
||||
old_Apara->SetGuidance("A: mass number of isotope");
|
||||
G4UIparameter* old_FileNamepara= new G4UIparameter("file_name",'s',true);
|
||||
old_FileNamepara->SetGuidance("Name of the user data file");
|
||||
old_userEvaporationDataCmd->SetParameter(old_Zpara);
|
||||
old_userEvaporationDataCmd->SetParameter(old_Apara);
|
||||
old_userEvaporationDataCmd->SetParameter(old_FileNamepara);
|
||||
|
||||
userEvaporationDataCmd = new G4UIcommand("/process/had/rdm/setPhotoEvaporationFile",this);
|
||||
userEvaporationDataCmd->SetGuidance("Supply user-defined photon evaporation data file");
|
||||
G4UIparameter* Zpara= new G4UIparameter("Z_isotope",'i',true);
|
||||
@@ -213,130 +134,38 @@ G4RadioactiveDecayBaseMessenger::G4RadioactiveDecayBaseMessenger
|
||||
userEvaporationDataCmd->SetParameter(Zpara);
|
||||
userEvaporationDataCmd->SetParameter(Apara);
|
||||
userEvaporationDataCmd->SetParameter(FileNamepara);
|
||||
|
||||
// Command to set the threshold for very long decay time (i.e. radioactive
|
||||
// decays of nuclides at rest happening later than this threshold are ignored)
|
||||
thresholdForVeryLongDecayTimeCmd = new G4UIcmdWithADoubleAndUnit("/process/had/rdm/thresholdForVeryLongDecayTime",this);
|
||||
thresholdForVeryLongDecayTimeCmd->SetGuidance("Ignore decays at rest of nuclides happening after this time threshold");
|
||||
thresholdForVeryLongDecayTimeCmd->SetParameterName("ThresholdForVeryLongDecayTime",false);
|
||||
thresholdForVeryLongDecayTimeCmd->SetUnitCategory("Time");
|
||||
}
|
||||
|
||||
|
||||
G4RadioactiveDecayBaseMessenger::~G4RadioactiveDecayBaseMessenger ()
|
||||
{
|
||||
delete old_grdmDirectory; // To be removed in G4 11.0
|
||||
delete rdmDirectory;
|
||||
delete old_nucleuslimitsCmd; // To be removed in G4 11.0
|
||||
delete nucleuslimitsCmd;
|
||||
delete old_verboseCmd; // To be removed in G4 11.0
|
||||
delete verboseCmd;
|
||||
delete old_avolumeCmd; // To be removed in G4 11.0
|
||||
delete avolumeCmd;
|
||||
delete old_deavolumeCmd; // To be removed in G4 11.0
|
||||
delete deavolumeCmd;
|
||||
delete old_allvolumesCmd; // To be removed in G4 11.0
|
||||
delete allvolumesCmd;
|
||||
delete old_deallvolumesCmd; // To be removed in G4 11.0
|
||||
delete deallvolumesCmd;
|
||||
delete old_icmCmd; // To be removed in G4 11.0
|
||||
delete icmCmd;
|
||||
delete old_armCmd; // To be removed in G4 11.0
|
||||
delete armCmd;
|
||||
delete old_userDecayDataCmd; // To be removed in G4 11.0
|
||||
delete userDecayDataCmd; //<---
|
||||
delete old_userEvaporationDataCmd; // To be removed in G4 11.0
|
||||
delete userEvaporationDataCmd;
|
||||
delete old_colldirCmd; // To be removed in G4 11.0
|
||||
delete colldirCmd;
|
||||
delete old_collangleCmd; // To be removed in G4 11.0
|
||||
delete collangleCmd;
|
||||
delete rdmDirectory;
|
||||
delete nucleuslimitsCmd;
|
||||
delete verboseCmd;
|
||||
delete avolumeCmd;
|
||||
delete deavolumeCmd;
|
||||
delete allvolumesCmd;
|
||||
delete deallvolumesCmd;
|
||||
delete icmCmd;
|
||||
delete armCmd;
|
||||
delete userDecayDataCmd;
|
||||
delete userEvaporationDataCmd;
|
||||
delete colldirCmd;
|
||||
delete collangleCmd;
|
||||
delete thresholdForVeryLongDecayTimeCmd;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
G4RadioactiveDecayBaseMessenger::SetNewValue(G4UIcommand *command, G4String newValues)
|
||||
{
|
||||
// Old commands to be removed in G4 11.0
|
||||
if ( command == old_nucleuslimitsCmd ) {
|
||||
theRadioactiveDecayContainer->
|
||||
SetNucleusLimits( old_nucleuslimitsCmd->GetNewNucleusLimitsValue( newValues ) );
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/nucleusLimits in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecayBaseMessenger", "HAD_RDM_671", JustWarning, ed );
|
||||
} else if ( command == old_avolumeCmd ) {
|
||||
theRadioactiveDecayContainer->SelectAVolume( newValues );
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/selectVolume in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecayBaseMessenger", "HAD_RDM_672", JustWarning, ed );
|
||||
} else if ( command == old_deavolumeCmd ) {
|
||||
theRadioactiveDecayContainer->DeselectAVolume( newValues );
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/deselectVolume in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecayBaseMessenger", "HAD_RDM_673", JustWarning, ed );
|
||||
} else if ( command == old_allvolumesCmd ) {
|
||||
theRadioactiveDecayContainer->SelectAllVolumes();
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/allVolumes in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecayBaseMessenger", "HAD_RDM_674", JustWarning, ed );
|
||||
} else if ( command == old_deallvolumesCmd ) {
|
||||
theRadioactiveDecayContainer->DeselectAllVolumes();
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/noVolumes in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecayBaseMessenger", "HAD_RDM_675", JustWarning, ed );
|
||||
} else if ( command == old_verboseCmd ) {
|
||||
theRadioactiveDecayContainer->SetVerboseLevel( old_verboseCmd->GetNewIntValue( newValues ) );
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/verbose in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecayBaseMessenger", "HAD_RDM_676", JustWarning, ed );
|
||||
} else if ( command == old_icmCmd ) {
|
||||
theRadioactiveDecayContainer->SetICM( old_icmCmd->GetNewBoolValue( newValues ) );
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/applyICM in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecayBaseMessenger", "HAD_RDM_677", JustWarning, ed );
|
||||
} else if ( command == old_armCmd ) {
|
||||
theRadioactiveDecayContainer->SetARM( old_armCmd->GetNewBoolValue( newValues ) );
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/applyARM in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecayBaseMessenger", "HAD_RDM_678", JustWarning, ed );
|
||||
} else if ( command == old_userDecayDataCmd ) {
|
||||
G4int Z,A;
|
||||
G4String file_name;
|
||||
const char* nv = (const char*)newValues;
|
||||
std::istringstream is(nv);
|
||||
is >> Z >> A >> file_name;
|
||||
theRadioactiveDecayContainer->AddUserDecayDataFile(Z,A,file_name);
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/setRadioactiveDecayFile in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecayBaseMessenger", "HAD_RDM_679", JustWarning, ed );
|
||||
} else if ( command == old_userEvaporationDataCmd ) {
|
||||
G4int Z,A;
|
||||
G4String file_name;
|
||||
const char* nv = (const char*)newValues;
|
||||
std::istringstream is(nv);
|
||||
is >> Z >> A >> file_name;
|
||||
G4NuclearLevelData::GetInstance()->AddPrivateData(Z,A,file_name);
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/setPhotoEvaporationFile in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecayBaseMessenger", "HAD_RDM_680", JustWarning, ed );
|
||||
} else if ( command == old_colldirCmd ) {
|
||||
theRadioactiveDecayContainer->SetDecayDirection( old_colldirCmd->GetNew3VectorValue( newValues ) );
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/decayDirection in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecayBaseMessenger", "HAD_RDM_681", JustWarning, ed );
|
||||
} else if ( command == old_collangleCmd ) {
|
||||
theRadioactiveDecayContainer->SetDecayHalfAngle( old_collangleCmd->GetNewDoubleValue( newValues ) );
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/decayHalfAngle in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecayBaseMessenger", "HAD_RDM_682", JustWarning, ed );
|
||||
}
|
||||
|
||||
// New commands
|
||||
if ( command == nucleuslimitsCmd ) {
|
||||
theRadioactiveDecayContainer->
|
||||
SetNucleusLimits( nucleuslimitsCmd->GetNewNucleusLimitsValue( newValues ) );
|
||||
@@ -372,6 +201,8 @@ G4RadioactiveDecayBaseMessenger::SetNewValue(G4UIcommand *command, G4String newV
|
||||
theRadioactiveDecayContainer->SetDecayDirection( colldirCmd->GetNew3VectorValue( newValues ) );
|
||||
} else if ( command == collangleCmd ) {
|
||||
theRadioactiveDecayContainer->SetDecayHalfAngle( collangleCmd->GetNewDoubleValue( newValues ) );
|
||||
}
|
||||
} else if ( command == thresholdForVeryLongDecayTimeCmd ) {
|
||||
theRadioactiveDecayContainer->SetThresholdForVeryLongDecayTime( thresholdForVeryLongDecayTimeCmd->GetNewDoubleValue( newValues ) );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
-525
@@ -1,525 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
|
||||
#include "G4RadioactiveDecaymessenger.hh"
|
||||
#include "G4NuclearLevelData.hh"
|
||||
#include <sstream>
|
||||
#include "G4HadronicException.hh"
|
||||
|
||||
|
||||
G4RadioactiveDecaymessenger::G4RadioactiveDecaymessenger
|
||||
(G4RadioactiveDecay* theRadioactiveDecayContainer1)
|
||||
:theRadioactiveDecayContainer(theRadioactiveDecayContainer1)
|
||||
{
|
||||
// main directory for control of the RDM
|
||||
old_grdmDirectory = new G4UIdirectory("/grdm/"); // To be removed in G4 11.0
|
||||
old_grdmDirectory->SetGuidance("Controls for the Radioactive Decay Module.");
|
||||
|
||||
rdmDirectory = new G4UIdirectory("/process/had/rdm/");
|
||||
rdmDirectory->SetGuidance("Controls for the Radioactive Decay Module.");
|
||||
|
||||
// Command to define the limits on nucleus the RDM will treat.
|
||||
old_nucleuslimitsCmd = new G4UIcmdWithNucleusLimits("/grdm/nucleusLimits",this); // To be removed in G4 11.0
|
||||
old_nucleuslimitsCmd->SetGuidance("Set the atomic weight and number limits for the RDM.");
|
||||
old_nucleuslimitsCmd->SetParameterName("OldAMin","OldAMax","OldZMin","OldZMax",true);
|
||||
|
||||
nucleuslimitsCmd = new G4UIcmdWithNucleusLimits("/process/had/rdm/nucleusLimits",this);
|
||||
nucleuslimitsCmd->SetGuidance("Set the atomic weight and number limits for the RDM.");
|
||||
nucleuslimitsCmd->SetParameterName("AMin","AMax","ZMin","ZMax",true);
|
||||
|
||||
// The next command contols whether the decay will be treated analoguely or
|
||||
// with variance reduction
|
||||
old_analoguemcCmd = new G4UIcmdWithABool("/grdm/analogueMC",this); // To be removed in G4 11.0
|
||||
old_analoguemcCmd->SetGuidance("false: variance reduction method; true: analogue method");
|
||||
old_analoguemcCmd->SetParameterName("OldAnalogueMC",true);
|
||||
old_analoguemcCmd->SetDefaultValue(true);
|
||||
|
||||
analoguemcCmd = new G4UIcmdWithABool("/process/had/rdm/analogueMC",this);
|
||||
analoguemcCmd->SetGuidance("false: variance reduction method; true: analogue method");
|
||||
analoguemcCmd->SetParameterName("AnalogueMC",true);
|
||||
analoguemcCmd->SetDefaultValue(true);
|
||||
|
||||
// The next command contols whether beta decay will be treated faithfully or in fast mode
|
||||
old_fbetaCmd = new G4UIcmdWithABool("/grdm/fBeta",this); // To be removed in G4 11.0
|
||||
old_fbetaCmd->SetGuidance("false: use 3-body decay, true: use histogram method");
|
||||
old_fbetaCmd->SetParameterName("OldFBeta",true);
|
||||
old_fbetaCmd->SetDefaultValue(false);
|
||||
|
||||
fbetaCmd = new G4UIcmdWithABool("/process/had/rdm/fBeta",this);
|
||||
fbetaCmd->SetGuidance("false: use 3-body decay, true: use histogram method");
|
||||
fbetaCmd->SetParameterName("FBeta",true);
|
||||
fbetaCmd->SetDefaultValue(false);
|
||||
|
||||
// Command to selete a logical volume for RDM.
|
||||
old_avolumeCmd = new G4UIcmdWithAString("/grdm/selectVolume",this); // To be removed in G4 11.0
|
||||
old_avolumeCmd->SetGuidance("Supply a logical volumes name to add it to the RDM apply list");
|
||||
old_avolumeCmd->SetParameterName("OldAVolume",false);
|
||||
|
||||
avolumeCmd = new G4UIcmdWithAString("/process/had/rdm/selectVolume",this);
|
||||
avolumeCmd->SetGuidance("Supply a logical volumes name to add it to the RDM apply list");
|
||||
avolumeCmd->SetParameterName("AVolume",false);
|
||||
|
||||
// Command to de-selete a logical volume for RDM.
|
||||
old_deavolumeCmd = new G4UIcmdWithAString("/grdm/deselectVolume",this); // To be removed in G4 11.0
|
||||
old_deavolumeCmd->SetGuidance("Supply a logical volumes name to remove it from the RDM apply list");
|
||||
old_deavolumeCmd->SetParameterName("OldAVolume",false);
|
||||
|
||||
deavolumeCmd = new G4UIcmdWithAString("/process/had/rdm/deselectVolume",this);
|
||||
deavolumeCmd->SetGuidance("Supply a logical volumes name to remove it from the RDM apply list");
|
||||
deavolumeCmd->SetParameterName("AVolume",false);
|
||||
|
||||
// Command to selete all logical volumes for RDM.
|
||||
old_allvolumesCmd = new G4UIcmdWithoutParameter("/grdm/allVolumes",this); // To be removed in G4 11.0
|
||||
old_allvolumesCmd->SetGuidance(" apply RDM to all logical volumes. No parameter required.");
|
||||
// old_allvolumeCmd->SetParameterName("OldAddAVolume",true);
|
||||
|
||||
allvolumesCmd = new G4UIcmdWithoutParameter("/process/had/rdm/allVolumes",this);
|
||||
allvolumesCmd->SetGuidance(" apply RDM to all logical volumes. No parameter required.");
|
||||
// allvolumeCmd->SetParameterName("AddAVolume",true);
|
||||
|
||||
// Command to de-selete a logical volume for RDM.
|
||||
old_deallvolumesCmd = new G4UIcmdWithoutParameter("/grdm/noVolumes",this); // To be removed in G4 11.0
|
||||
old_deallvolumesCmd->SetGuidance(" RDM is not applied to any logical volumes");
|
||||
// old_deallvolumesCmd->SetParameterName("OldRemoveAVolume",true);
|
||||
|
||||
deallvolumesCmd = new G4UIcmdWithoutParameter("/process/had/rdm/noVolumes",this);
|
||||
deallvolumesCmd->SetGuidance(" RDM is not applied to any logical volumes");
|
||||
// deallvolumesCmd->SetParameterName("RemoveAVolume",true);
|
||||
|
||||
// The next command contols whether the branching ratio biasing will be applied or not
|
||||
old_brbiasCmd = new G4UIcmdWithABool("/grdm/BRbias",this); // To be removed in G4 11.0
|
||||
old_brbiasCmd->SetGuidance("false: no biasing; true: all branches are treated as equal");
|
||||
old_brbiasCmd->SetParameterName("OldBRBias",true);
|
||||
old_brbiasCmd->SetDefaultValue(true);
|
||||
|
||||
brbiasCmd = new G4UIcmdWithABool("/process/had/rdm/BRbias",this);
|
||||
brbiasCmd->SetGuidance("false: no biasing; true: all branches are treated as equal");
|
||||
brbiasCmd->SetParameterName("BRBias",true);
|
||||
brbiasCmd->SetDefaultValue(true);
|
||||
|
||||
// Command controls whether ICM will be applied or not
|
||||
old_icmCmd = new G4UIcmdWithABool("/grdm/applyICM",this); // To be removed in G4 11.0
|
||||
old_icmCmd->SetGuidance("True: ICM is applied; false: no");
|
||||
old_icmCmd->SetParameterName("OldApplyICM",true);
|
||||
old_icmCmd->SetDefaultValue(true);
|
||||
|
||||
icmCmd = new G4UIcmdWithABool("/process/had/rdm/applyICM",this);
|
||||
icmCmd->SetGuidance("True: ICM is applied; false: no");
|
||||
icmCmd->SetParameterName("ApplyICM",true);
|
||||
icmCmd->SetDefaultValue(true);
|
||||
|
||||
// Command contols whether ARM will be applied or not
|
||||
old_armCmd = new G4UIcmdWithABool("/grdm/applyARM",this); // To be removed in G4 11.0
|
||||
old_armCmd->SetGuidance("True: ARM is applied; false: no");
|
||||
old_armCmd->SetParameterName("OldApplyARM",true);
|
||||
old_armCmd->SetDefaultValue(true);
|
||||
// old_armCmd->AvailableForStates(G4State_PreInit);
|
||||
|
||||
armCmd = new G4UIcmdWithABool("/process/had/rdm/applyARM",this);
|
||||
armCmd->SetGuidance("True: ARM is applied; false: no");
|
||||
armCmd->SetParameterName("ApplyARM",true);
|
||||
armCmd->SetDefaultValue(true);
|
||||
// armCmd->AvailableForStates(G4State_PreInit);
|
||||
|
||||
// Command to set the h-l thresold for isomer production
|
||||
old_hlthCmd = new G4UIcmdWithADoubleAndUnit("/grdm/hlThreshold",this); // To be removed in G4 11.0
|
||||
old_hlthCmd->SetGuidance("Set the h-l threshold for isomer production");
|
||||
old_hlthCmd->SetParameterName("OldHlThreshold",false);
|
||||
// old_hlthCmd->SetRange("OldHlThreshold>0.");
|
||||
old_hlthCmd->SetUnitCategory("Time");
|
||||
// old_hlthCmd->AvailableForStates(G4State_PreInit);
|
||||
|
||||
hlthCmd = new G4UIcmdWithADoubleAndUnit("/process/had/rdm/hlThreshold",this);
|
||||
hlthCmd->SetGuidance("Set the h-l threshold for isomer production");
|
||||
hlthCmd->SetParameterName("HlThreshold",false);
|
||||
// hlthCmd->SetRange("HlThreshold>0.");
|
||||
hlthCmd->SetUnitCategory("Time");
|
||||
// hlthCmd->AvailableForStates(G4State_PreInit);
|
||||
|
||||
// Command to define the incident particle source time profile.
|
||||
old_sourcetimeprofileCmd = new G4UIcmdWithAString("/grdm/sourceTimeProfile",this); // To be removed in G4 11.0
|
||||
old_sourcetimeprofileCmd->SetGuidance
|
||||
("Supply the name of the ascii file containing the source particle time profile");
|
||||
old_sourcetimeprofileCmd->SetParameterName("OldSTimeProfile",true);
|
||||
old_sourcetimeprofileCmd->SetDefaultValue("source.data");
|
||||
|
||||
sourcetimeprofileCmd = new G4UIcmdWithAString("/process/had/rdm/sourceTimeProfile",this);
|
||||
sourcetimeprofileCmd->SetGuidance
|
||||
("Supply the name of the ascii file containing the source particle time profile");
|
||||
sourcetimeprofileCmd->SetParameterName("STimeProfile",true);
|
||||
sourcetimeprofileCmd->SetDefaultValue("source.data");
|
||||
|
||||
// Command to define the incident particle source time profile.
|
||||
old_decaybiasprofileCmd = new G4UIcmdWithAString("/grdm/decayBiasProfile",this); // To be removed in G4 11.0
|
||||
old_decaybiasprofileCmd->SetGuidance
|
||||
("Supply the name of the ascii file containing the decay bias time profile");
|
||||
old_decaybiasprofileCmd->SetParameterName("OldDBiasProfile",true);
|
||||
old_decaybiasprofileCmd->SetDefaultValue("bias.data");
|
||||
|
||||
decaybiasprofileCmd = new G4UIcmdWithAString("/process/had/rdm/decayBiasProfile",this);
|
||||
decaybiasprofileCmd->SetGuidance
|
||||
("Supply the name of the ascii file containing the decay bias time profile");
|
||||
decaybiasprofileCmd->SetParameterName("DBiasProfile",true);
|
||||
decaybiasprofileCmd->SetDefaultValue("bias.data");
|
||||
|
||||
// Command to set the directional bias (collimation) vector
|
||||
old_colldirCmd = new G4UIcmdWith3Vector("/grdm/decayDirection",this); // To be removed in G4 11.0
|
||||
old_colldirCmd->SetGuidance("Supply the direction vector for decay products");
|
||||
old_colldirCmd->SetParameterName("OldX","OldY","OldZ",false);
|
||||
|
||||
colldirCmd = new G4UIcmdWith3Vector("/process/had/rdm/decayDirection",this);
|
||||
colldirCmd->SetGuidance("Supply the direction vector for decay products");
|
||||
colldirCmd->SetParameterName("X","Y","Z",false);
|
||||
|
||||
// Command to set the directional bias (collimation) half angle ("cone")
|
||||
old_collangleCmd = new G4UIcmdWithADoubleAndUnit("/grdm/decayHalfAngle",this); // To be removed in G4 11.0
|
||||
old_collangleCmd->SetGuidance("Supply maximum angle from direction vector for decay products");
|
||||
old_collangleCmd->SetParameterName("OldHalfAngle",false);
|
||||
old_collangleCmd->SetUnitCategory("Angle");
|
||||
|
||||
collangleCmd = new G4UIcmdWithADoubleAndUnit("/process/had/rdm/decayHalfAngle",this);
|
||||
collangleCmd->SetGuidance("Supply maximum angle from direction vector for decay products");
|
||||
collangleCmd->SetParameterName("HalfAngle",false);
|
||||
collangleCmd->SetUnitCategory("Angle");
|
||||
|
||||
// This command setup the nuclei spliting parameter
|
||||
old_splitnucleiCmd = new G4UIcmdWithAnInteger("/grdm/splitNuclei",this); // To be removed in G4 11.0
|
||||
old_splitnucleiCmd->SetGuidance("Set number of spliting for the isotopes.");
|
||||
old_splitnucleiCmd->SetParameterName("OldNSplit",true);
|
||||
old_splitnucleiCmd->SetDefaultValue(1);
|
||||
old_splitnucleiCmd->SetRange("OldNSplit>=1");
|
||||
|
||||
splitnucleiCmd = new G4UIcmdWithAnInteger("/process/had/rdm/splitNuclei",this);
|
||||
splitnucleiCmd->SetGuidance("Set number of spliting for the isotopes.");
|
||||
splitnucleiCmd->SetParameterName("NSplit",true);
|
||||
splitnucleiCmd->SetDefaultValue(1);
|
||||
splitnucleiCmd->SetRange("NSplit>=1");
|
||||
|
||||
// This command setup the verbose level of radioactive decay
|
||||
old_verboseCmd = new G4UIcmdWithAnInteger("/grdm/verbose",this); // To be removed in G4 11.0
|
||||
old_verboseCmd->SetGuidance("Set verbose level: 0, 1, 2 or 3");
|
||||
old_verboseCmd->SetParameterName("OldVerboseLevel",true);
|
||||
old_verboseCmd->SetDefaultValue(1);
|
||||
old_verboseCmd->SetRange("OldVerboseLevel>=0");
|
||||
|
||||
verboseCmd = new G4UIcmdWithAnInteger("/process/had/rdm/verbose",this);
|
||||
verboseCmd->SetGuidance("Set verbose level: 0, 1, 2 or 3");
|
||||
verboseCmd->SetParameterName("VerboseLevel",true);
|
||||
verboseCmd->SetDefaultValue(1);
|
||||
verboseCmd->SetRange("VerboseLevel>=0");
|
||||
|
||||
// This command allows the user to define its own decay datafile for a given isotope
|
||||
old_userDecayDataCmd = new G4UIcommand("/grdm/setRadioactiveDecayFile",this); // To be removed in G4 11.0
|
||||
G4UIparameter* old_Z_para= new G4UIparameter("Z_isotope",'i',true);
|
||||
old_Z_para->SetParameterRange("Z_isotope > 0");
|
||||
old_Z_para->SetGuidance("Z: Charge number of isotope");
|
||||
G4UIparameter* old_A_para= new G4UIparameter("A_isotope",'i',true);
|
||||
old_A_para->SetParameterRange("A_isotope > 1");
|
||||
old_A_para->SetGuidance("A: mass number of isotope");
|
||||
G4UIparameter* old_FileName_para= new G4UIparameter("file_name",'s',true);
|
||||
old_FileName_para->SetGuidance("Name of the user data file");
|
||||
old_userDecayDataCmd->SetParameter(old_Z_para);
|
||||
old_userDecayDataCmd->SetParameter(old_A_para);
|
||||
old_userDecayDataCmd->SetParameter(old_FileName_para);
|
||||
|
||||
userDecayDataCmd = new G4UIcommand("/process/had/rdm/setRadioactiveDecayFile",this);
|
||||
G4UIparameter* Z_para= new G4UIparameter("Z_isotope",'i',true);
|
||||
Z_para->SetParameterRange("Z_isotope > 0");
|
||||
Z_para->SetGuidance("Z: Charge number of isotope");
|
||||
G4UIparameter* A_para= new G4UIparameter("A_isotope",'i',true);
|
||||
A_para->SetParameterRange("A_isotope > 1");
|
||||
A_para->SetGuidance("A: mass number of isotope");
|
||||
G4UIparameter* FileName_para= new G4UIparameter("file_name",'s',true);
|
||||
FileName_para->SetGuidance("Name of the user data file");
|
||||
userDecayDataCmd->SetParameter(Z_para);
|
||||
userDecayDataCmd->SetParameter(A_para);
|
||||
userDecayDataCmd->SetParameter(FileName_para);
|
||||
|
||||
// This commands allows the user to define its own evaporation data file for a given isotope
|
||||
old_userEvaporationDataCmd = new G4UIcommand("/grdm/setPhotoEvaporationFile",this); // To be removed in G4 11.0
|
||||
G4UIparameter* old_Z_para_ = new G4UIparameter("Z_isotope",'i',true);
|
||||
old_Z_para_->SetParameterRange("Z_isotope > 0");
|
||||
old_Z_para_->SetGuidance("Z: Charge number of isotope");
|
||||
G4UIparameter* old_A_para_ = new G4UIparameter("A_isotope",'i',true);
|
||||
old_A_para_->SetParameterRange("A_isotope > 1");
|
||||
old_A_para_->SetGuidance("A: mass number of isotope");
|
||||
G4UIparameter* old_FileName_para_ = new G4UIparameter("file_name",'s',true);
|
||||
old_FileName_para_->SetGuidance("Name of the user data file");
|
||||
old_userEvaporationDataCmd->SetParameter(old_Z_para_);
|
||||
old_userEvaporationDataCmd->SetParameter(old_A_para_);
|
||||
old_userEvaporationDataCmd->SetParameter(old_FileName_para_);
|
||||
|
||||
userEvaporationDataCmd = new G4UIcommand("/process/had/rdm/setPhotoEvaporationFile",this);
|
||||
G4UIparameter* Z_para_ = new G4UIparameter("Z_isotope",'i',true);
|
||||
Z_para_->SetParameterRange("Z_isotope > 0");
|
||||
Z_para_->SetGuidance("Z: Charge number of isotope");
|
||||
G4UIparameter* A_para_ = new G4UIparameter("A_isotope",'i',true);
|
||||
A_para_->SetParameterRange("A_isotope > 1");
|
||||
A_para_->SetGuidance("A: mass number of isotope");
|
||||
G4UIparameter* FileName_para_ = new G4UIparameter("file_name",'s',true);
|
||||
FileName_para_->SetGuidance("Name of the user data file");
|
||||
userEvaporationDataCmd->SetParameter(Z_para_);
|
||||
userEvaporationDataCmd->SetParameter(A_para_);
|
||||
userEvaporationDataCmd->SetParameter(FileName_para_);
|
||||
|
||||
}
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
G4RadioactiveDecaymessenger::~G4RadioactiveDecaymessenger ()
|
||||
{
|
||||
delete old_grdmDirectory; // To be removed in G4 11.0
|
||||
delete rdmDirectory;
|
||||
delete old_nucleuslimitsCmd; // To be removed in G4 11.0
|
||||
delete nucleuslimitsCmd;
|
||||
delete old_sourcetimeprofileCmd; // To be removed in G4 11.0
|
||||
delete sourcetimeprofileCmd;
|
||||
delete old_decaybiasprofileCmd; // To be removed in G4 11.0
|
||||
delete decaybiasprofileCmd;
|
||||
delete old_analoguemcCmd; // To be removed in G4 11.0
|
||||
delete analoguemcCmd;
|
||||
delete old_fbetaCmd; // To be removed in G4 11.0
|
||||
delete fbetaCmd;
|
||||
delete old_brbiasCmd; // To be removed in G4 11.0
|
||||
delete brbiasCmd;
|
||||
delete old_splitnucleiCmd; // To be removed in G4 11.0
|
||||
delete splitnucleiCmd;
|
||||
delete old_verboseCmd; // To be removed in G4 11.0
|
||||
delete verboseCmd;
|
||||
delete old_avolumeCmd; // To be removed in G4 11.0
|
||||
delete avolumeCmd;
|
||||
delete old_deavolumeCmd; // To be removed in G4 11.0
|
||||
delete deavolumeCmd;
|
||||
delete old_allvolumesCmd; // To be removed in G4 11.0
|
||||
delete allvolumesCmd;
|
||||
delete old_deallvolumesCmd; // To be removed in G4 11.0
|
||||
delete deallvolumesCmd;
|
||||
delete old_icmCmd; // To be removed in G4 11.0
|
||||
delete icmCmd;
|
||||
delete old_armCmd; // To be removed in G4 11.0
|
||||
delete armCmd;
|
||||
delete old_hlthCmd; // To be removed in G4 11.0
|
||||
delete hlthCmd;
|
||||
delete old_userDecayDataCmd; // To be removed in G4 11.0
|
||||
delete userDecayDataCmd;
|
||||
delete old_userEvaporationDataCmd; // To be removed in G4 11.0
|
||||
delete userEvaporationDataCmd;
|
||||
delete old_colldirCmd; // To be removed in G4 11.0
|
||||
delete colldirCmd;
|
||||
delete old_collangleCmd; // To be removed in G4 11.0
|
||||
delete collangleCmd;
|
||||
}
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
void G4RadioactiveDecaymessenger::SetNewValue (G4UIcommand *command, G4String newValues)
|
||||
{
|
||||
// Old commands to be removed in G4 11.0
|
||||
if ( command == old_nucleuslimitsCmd ) {
|
||||
theRadioactiveDecayContainer->
|
||||
SetNucleusLimits( old_nucleuslimitsCmd->GetNewNucleusLimitsValue( newValues ) );
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/nucleusLimits in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecaymessenger", "HAD_RDM_771", JustWarning, ed );
|
||||
} else if ( command == old_analoguemcCmd ) {
|
||||
theRadioactiveDecayContainer->
|
||||
SetAnalogueMonteCarlo( old_analoguemcCmd->GetNewBoolValue( newValues ) );
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/analogueMC in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecaymessenger", "HAD_RDM_772", JustWarning, ed );
|
||||
} else if ( command == old_fbetaCmd ) {
|
||||
theRadioactiveDecayContainer->SetFBeta( old_fbetaCmd->GetNewBoolValue( newValues ) );
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/fBeta in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecaymessenger", "HAD_RDM_773", JustWarning, ed );
|
||||
} else if ( command == old_avolumeCmd ) {
|
||||
theRadioactiveDecayContainer->SelectAVolume( newValues );
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/selectVolume in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecaymessenger", "HAD_RDM_774", JustWarning, ed );
|
||||
} else if ( command == old_deavolumeCmd ) {
|
||||
theRadioactiveDecayContainer->DeselectAVolume( newValues );
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/deselectVolume in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecaymessenger", "HAD_RDM_775", JustWarning, ed );
|
||||
} else if ( command == old_allvolumesCmd ) {
|
||||
theRadioactiveDecayContainer->SelectAllVolumes();
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/allVolumes in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecaymessenger", "HAD_RDM_776", JustWarning, ed );
|
||||
} else if ( command == old_deallvolumesCmd ) {
|
||||
theRadioactiveDecayContainer->DeselectAllVolumes();
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/noVolumes in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecaymessenger", "HAD_RDM_777", JustWarning, ed );
|
||||
} else if ( command == old_brbiasCmd ) {
|
||||
theRadioactiveDecayContainer->SetBRBias( old_brbiasCmd->GetNewBoolValue( newValues ) );
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/BRbias in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecaymessenger", "HAD_RDM_778", JustWarning, ed );
|
||||
} else if ( command == old_sourcetimeprofileCmd ) {
|
||||
theRadioactiveDecayContainer->SetSourceTimeProfile( newValues );
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/sourceTimeProfile in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecaymessenger", "HAD_RDM_779", JustWarning, ed );
|
||||
} else if ( command == old_decaybiasprofileCmd ) {
|
||||
theRadioactiveDecayContainer->SetDecayBias( newValues );
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/decayBiasProfile in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecaymessenger", "HAD_RDM_780", JustWarning, ed );
|
||||
} else if ( command == old_splitnucleiCmd ) {
|
||||
theRadioactiveDecayContainer->SetSplitNuclei( old_splitnucleiCmd->GetNewIntValue( newValues ) );
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/splitNuclei in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecaymessenger", "HAD_RDM_781", JustWarning, ed );
|
||||
} else if ( command == old_verboseCmd ) {
|
||||
theRadioactiveDecayContainer->SetVerboseLevel( old_verboseCmd->GetNewIntValue( newValues ) );
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/verbose in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecaymessenger", "HAD_RDM_782", JustWarning, ed );
|
||||
} else if ( command == old_icmCmd ) {
|
||||
theRadioactiveDecayContainer->SetICM( old_icmCmd->GetNewBoolValue( newValues ) );
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/applyICM in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecaymessenger", "HAD_RDM_783", JustWarning, ed );
|
||||
} else if ( command == old_armCmd ) {
|
||||
theRadioactiveDecayContainer->SetARM( old_armCmd->GetNewBoolValue( newValues ) );
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/applyARM in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecaymessenger", "HAD_RDM_784", JustWarning, ed );
|
||||
} else if ( command == old_hlthCmd ) {
|
||||
theRadioactiveDecayContainer->SetHLThreshold( old_hlthCmd->GetNewDoubleValue( newValues ) );
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/hlThreshold in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecaymessenger", "HAD_RDM_785", JustWarning, ed );
|
||||
} else if ( command == old_userDecayDataCmd ) {
|
||||
G4int Z,A;
|
||||
G4String file_name;
|
||||
const char* nv = (const char*)newValues;
|
||||
std::istringstream is(nv);
|
||||
is >> Z >> A >> file_name;
|
||||
theRadioactiveDecayContainer->AddUserDecayDataFile(Z,A,file_name);
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/setRadioactiveDecayFile in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecaymessenger", "HAD_RDM_786", JustWarning, ed );
|
||||
} else if ( command == old_userEvaporationDataCmd ) {
|
||||
G4int Z,A;
|
||||
G4String file_name;
|
||||
const char* nv = (const char*)newValues;
|
||||
std::istringstream is(nv);
|
||||
is >> Z >> A >> file_name;
|
||||
G4NuclearLevelData::GetInstance()->AddPrivateData(Z,A,file_name);
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/setPhotoEvaporationFile in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecaymessenger", "HAD_RDM_787", JustWarning, ed );
|
||||
} else if ( command == old_colldirCmd ) {
|
||||
theRadioactiveDecayContainer->SetDecayDirection( old_colldirCmd->GetNew3VectorValue( newValues ) );
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/decayDirection in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecaymessenger", "HAD_RDM_788", JustWarning, ed );
|
||||
} else if ( command == old_collangleCmd ) {
|
||||
theRadioactiveDecayContainer->SetDecayHalfAngle( old_collangleCmd->GetNewDoubleValue( newValues ) );
|
||||
G4ExceptionDescription ed;
|
||||
ed << "This command is valid but deprecated and will be replaced with the command:\n"
|
||||
<< "/process/had/rdm/decayHalfAngle in the next major release, Geant4 version 11.0";
|
||||
G4Exception( "G4RadioactiveDecaymessenger", "HAD_RDM_789", JustWarning, ed );
|
||||
}
|
||||
|
||||
// New commands
|
||||
if ( command == nucleuslimitsCmd ) {
|
||||
theRadioactiveDecayContainer->
|
||||
SetNucleusLimits( nucleuslimitsCmd->GetNewNucleusLimitsValue( newValues ) );
|
||||
} else if ( command == analoguemcCmd ) {
|
||||
theRadioactiveDecayContainer->
|
||||
SetAnalogueMonteCarlo( analoguemcCmd->GetNewBoolValue( newValues ) );
|
||||
} else if ( command == fbetaCmd ) {
|
||||
theRadioactiveDecayContainer->SetFBeta( fbetaCmd->GetNewBoolValue( newValues ) );
|
||||
} else if ( command == avolumeCmd ) {
|
||||
theRadioactiveDecayContainer->SelectAVolume( newValues );
|
||||
} else if ( command == deavolumeCmd ) {
|
||||
theRadioactiveDecayContainer->DeselectAVolume( newValues );
|
||||
} else if ( command == allvolumesCmd ) {
|
||||
theRadioactiveDecayContainer->SelectAllVolumes();
|
||||
} else if ( command == deallvolumesCmd ) {
|
||||
theRadioactiveDecayContainer->DeselectAllVolumes();
|
||||
} else if ( command == brbiasCmd ) {
|
||||
theRadioactiveDecayContainer->SetBRBias( brbiasCmd->GetNewBoolValue( newValues ) );
|
||||
} else if ( command == sourcetimeprofileCmd ) {
|
||||
theRadioactiveDecayContainer->SetSourceTimeProfile( newValues );
|
||||
} else if ( command == decaybiasprofileCmd ) {
|
||||
theRadioactiveDecayContainer->SetDecayBias( newValues );
|
||||
} else if ( command == splitnucleiCmd ) {
|
||||
theRadioactiveDecayContainer->SetSplitNuclei( splitnucleiCmd->GetNewIntValue( newValues ) );
|
||||
} else if ( command == verboseCmd ) {
|
||||
theRadioactiveDecayContainer->SetVerboseLevel( verboseCmd->GetNewIntValue( newValues ) );
|
||||
} else if ( command == icmCmd ) {
|
||||
theRadioactiveDecayContainer->SetICM( icmCmd->GetNewBoolValue( newValues ) );
|
||||
} else if ( command == armCmd ) {
|
||||
theRadioactiveDecayContainer->SetARM( armCmd->GetNewBoolValue( newValues ) );
|
||||
} else if ( command == hlthCmd ) {
|
||||
theRadioactiveDecayContainer->SetHLThreshold( hlthCmd->GetNewDoubleValue( newValues ) );
|
||||
} else if ( command == userDecayDataCmd ) {
|
||||
G4int Z,A;
|
||||
G4String file_name;
|
||||
const char* nv = (const char*)newValues;
|
||||
std::istringstream is(nv);
|
||||
is >> Z >> A >> file_name;
|
||||
theRadioactiveDecayContainer->AddUserDecayDataFile(Z,A,file_name);
|
||||
} else if ( command == userEvaporationDataCmd ) {
|
||||
G4int Z,A;
|
||||
G4String file_name;
|
||||
const char* nv = (const char*)newValues;
|
||||
std::istringstream is(nv);
|
||||
is >> Z >> A >> file_name;
|
||||
G4NuclearLevelData::GetInstance()->AddPrivateData(Z,A,file_name);
|
||||
} else if ( command == colldirCmd ) {
|
||||
theRadioactiveDecayContainer->SetDecayDirection( colldirCmd->GetNew3VectorValue( newValues ) );
|
||||
} else if ( command == collangleCmd ) {
|
||||
theRadioactiveDecayContainer->SetDecayHalfAngle( collangleCmd->GetNewDoubleValue( newValues ) );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user