Import Geant4 10.7.0 source tree
This commit is contained in:
@@ -997,7 +997,7 @@ G4Radioactivation::DecayIt(const G4Track& theTrack, const G4Step&)
|
||||
// G4cout << theTrack.GetWeight() <<"\t"<<weight1<<"\t"<<decayRate<< G4endl;
|
||||
|
||||
// Add isotope to the radioactivity tables
|
||||
// One table for each observation time window specifed in
|
||||
// One table for each observation time window specified in
|
||||
// SetDecayBias(G4String filename)
|
||||
|
||||
theRadioactivityTables[decayWindows[nbin-1]]
|
||||
|
||||
+110
-31
@@ -36,49 +36,86 @@
|
||||
#include "G4RadioactivationMessenger.hh"
|
||||
#include "G4NuclearLevelData.hh"
|
||||
#include <sstream>
|
||||
#include "G4HadronicException.hh"
|
||||
|
||||
|
||||
G4RadioactivationMessenger::G4RadioactivationMessenger(G4Radioactivation* theRadioactivationContainer1)
|
||||
:theRadioactivationContainer(theRadioactivationContainer1)
|
||||
{
|
||||
grdmDirectory = new G4UIdirectory("/grdm/");
|
||||
grdmDirectory->SetGuidance("Controls the biased version of radioactive decay");
|
||||
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
|
||||
analoguemcCmd = new G4UIcmdWithABool ("/grdm/analogueMC",this);
|
||||
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
|
||||
brbiasCmd = new G4UIcmdWithABool ("/grdm/BRbias",this);
|
||||
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
|
||||
hlthCmd = new G4UIcmdWithADoubleAndUnit("/grdm/hlThreshold",this);
|
||||
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
|
||||
sourcetimeprofileCmd = new G4UIcmdWithAString("/grdm/sourceTimeProfile",this);
|
||||
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
|
||||
decaybiasprofileCmd = new G4UIcmdWithAString("/grdm/decayBiasProfile",this);
|
||||
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 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");
|
||||
|
||||
// Command to set nuclei spliting parameter
|
||||
splitnucleiCmd = new G4UIcmdWithAnInteger("/grdm/splitNuclei",this);
|
||||
splitnucleiCmd->SetGuidance("Set number of spliting for the isotopes.");
|
||||
splitnucleiCmd = new G4UIcmdWithAnInteger("/process/had/rdm/splitNuclei",this);
|
||||
splitnucleiCmd->SetGuidance("Set number of splitting for the isotopes.");
|
||||
splitnucleiCmd->SetParameterName("NSplit",true);
|
||||
splitnucleiCmd->SetDefaultValue(1);
|
||||
splitnucleiCmd->SetRange("NSplit>=1");
|
||||
@@ -87,35 +124,77 @@ G4RadioactivationMessenger::G4RadioactivationMessenger(G4Radioactivation* theRad
|
||||
|
||||
G4RadioactivationMessenger::~G4RadioactivationMessenger()
|
||||
{
|
||||
delete grdmDirectory;
|
||||
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)
|
||||
{
|
||||
if (command==analoguemcCmd) {theRadioactivationContainer->
|
||||
SetAnalogueMonteCarlo(analoguemcCmd->GetNewBoolValue(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 );
|
||||
}
|
||||
|
||||
} else if (command==brbiasCmd) {theRadioactivationContainer->
|
||||
SetBRBias(brbiasCmd->GetNewBoolValue(newValues));
|
||||
|
||||
} else if (command==sourcetimeprofileCmd) {theRadioactivationContainer->
|
||||
SetSourceTimeProfile(newValues);
|
||||
|
||||
} else if (command==decaybiasprofileCmd) {theRadioactivationContainer->
|
||||
SetDecayBias(newValues);
|
||||
|
||||
} else if (command==splitnucleiCmd) {theRadioactivationContainer->
|
||||
SetSplitNuclei(splitnucleiCmd->GetNewIntValue(newValues));
|
||||
|
||||
} else if (command==hlthCmd ) {theRadioactivationContainer->
|
||||
SetHLThreshold(hlthCmd->GetNewDoubleValue(newValues));
|
||||
// New commands
|
||||
if ( command == analoguemcCmd ) { theRadioactivationContainer->
|
||||
SetAnalogueMonteCarlo( analoguemcCmd->GetNewBoolValue( newValues ) );
|
||||
} else if ( command == brbiasCmd ) { theRadioactivationContainer->
|
||||
SetBRBias( brbiasCmd->GetNewBoolValue( newValues ) );
|
||||
} else if ( command == sourcetimeprofileCmd ) { theRadioactivationContainer->
|
||||
SetSourceTimeProfile( newValues );
|
||||
} else if ( command == decaybiasprofileCmd ) { theRadioactivationContainer->
|
||||
SetDecayBias( newValues );
|
||||
} else if ( command == splitnucleiCmd ) { theRadioactivationContainer->
|
||||
SetSplitNuclei( splitnucleiCmd->GetNewIntValue( newValues ) );
|
||||
} else if ( command == hlthCmd ) { theRadioactivationContainer->
|
||||
SetHLThreshold( hlthCmd->GetNewDoubleValue( newValues ) );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1974,7 +1974,7 @@ G4RadioactiveDecay::DecayIt(const G4Track& theTrack, const G4Step&)
|
||||
// G4cout << theTrack.GetWeight() << "\t" << weight1 << "\t" << decayRate << G4endl;
|
||||
|
||||
// Add isotope to the radioactivity tables
|
||||
// One table for each observation time window specifed in
|
||||
// One table for each observation time window specified in
|
||||
// SetDecayBias(G4String filename)
|
||||
theRadioactivityTables[decayWindows[nbin-1]]
|
||||
->AddIsotope(PZ,PA,PE,weight1*decayRate,theTrack.GetWeight());
|
||||
|
||||
+250
-106
@@ -38,6 +38,7 @@
|
||||
#include "G4RadioactiveDecayBaseMessenger.hh"
|
||||
#include "G4NuclearLevelData.hh"
|
||||
#include <sstream>
|
||||
#include "G4HadronicException.hh"
|
||||
|
||||
|
||||
G4RadioactiveDecayBaseMessenger::G4RadioactiveDecayBaseMessenger
|
||||
@@ -45,111 +46,170 @@ G4RadioactiveDecayBaseMessenger::G4RadioactiveDecayBaseMessenger
|
||||
:theRadioactiveDecayContainer(theRadioactiveDecayContainer1)
|
||||
{
|
||||
// main directory for control of the RDM
|
||||
grdmDirectory = new G4UIdirectory("/grdm/");
|
||||
grdmDirectory->SetGuidance("Controls for the Radioactive Decay Module.");
|
||||
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.
|
||||
nucleuslimitsCmd = new
|
||||
G4UIcmdWithNucleusLimits("/grdm/nucleusLimits",this);
|
||||
nucleuslimitsCmd->SetGuidance
|
||||
("Set the atomic weight and number limits for the RDM.");
|
||||
nucleuslimitsCmd->SetParameterName("aMin","aMax","zMin","zMax",true);
|
||||
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
|
||||
avolumeCmd = new
|
||||
G4UIcmdWithAString("/grdm/selectVolume",this);
|
||||
avolumeCmd->SetGuidance
|
||||
("Suppply a logical volumes name to add it to the RDM apply list");
|
||||
avolumeCmd->SetParameterName("aVolume",false);
|
||||
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
|
||||
deavolumeCmd = new
|
||||
G4UIcmdWithAString("/grdm/deselectVolume",this);
|
||||
deavolumeCmd->SetGuidance
|
||||
("Suppply a logical volumes name to remove it from the RDM apply list");
|
||||
deavolumeCmd->SetParameterName("aVolume",false);
|
||||
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
|
||||
allvolumesCmd = new
|
||||
G4UIcmdWithoutParameter("/grdm/allVolumes",this);
|
||||
allvolumesCmd->SetGuidance
|
||||
(" apply RDM to all logical volumes. No parameter required.");
|
||||
// allvolumeCmd->SetParameterName("AddAVolume",true);
|
||||
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
|
||||
deallvolumesCmd = new
|
||||
G4UIcmdWithoutParameter("/grdm/noVolumes",this);
|
||||
deallvolumesCmd->SetGuidance
|
||||
(" RDM is not applied to any logical volumes");
|
||||
// deallvolumesCmd->SetParameterName("RemoveAVolume",true);z
|
||||
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
|
||||
icmCmd = new G4UIcmdWithABool ("/grdm/applyICM",this);
|
||||
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.");
|
||||
icmCmd->SetParameterName("applyICM",true);
|
||||
icmCmd->SetParameterName("ApplyICM",true);
|
||||
icmCmd->SetDefaultValue(true);
|
||||
|
||||
|
||||
// Command to invoke atomic relaxation or not
|
||||
armCmd = new G4UIcmdWithABool ("/grdm/applyARM",this);
|
||||
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->SetParameterName("ApplyARM",true);
|
||||
armCmd->SetDefaultValue(true);
|
||||
//armCmd->AvailableForStates(G4State_PreInit);
|
||||
|
||||
|
||||
// Command to set the directional bias (collimation) vector
|
||||
colldirCmd = new G4UIcmdWith3Vector("/grdm/decayDirection",this);
|
||||
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")
|
||||
collangleCmd = new G4UIcmdWithADoubleAndUnit("/grdm/decayHalfAngle",this);
|
||||
collangleCmd->SetGuidance
|
||||
("Supply maximum angle from direction vector for decay products");
|
||||
collangleCmd->SetParameterName("halfAngle",false);
|
||||
collangleCmd->SetUnitCategory("Angle");
|
||||
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
|
||||
verboseCmd = new G4UIcmdWithAnInteger("/grdm/verbose",this);
|
||||
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");
|
||||
|
||||
|
||||
// Use a user-defined decay datafile for a given isotope
|
||||
userDecayDataCmd = new G4UIcommand("/grdm/setRadioactiveDecayFile",this);
|
||||
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);
|
||||
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);
|
||||
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);
|
||||
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);
|
||||
|
||||
|
||||
// Use a user-defined evaporation data file for a given isotope
|
||||
userEvaporationDataCmd = new G4UIcommand("/grdm/setPhotoEvaporationFile",this);
|
||||
userEvaporationDataCmd->SetGuidance("Supply user-defined photon evaporation data file");
|
||||
|
||||
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);
|
||||
Zpara->SetParameterRange("Z_isotope > 0");
|
||||
Zpara->SetGuidance("Z: Charge number of isotope");
|
||||
|
||||
G4UIparameter* Apara= new G4UIparameter("A_isotope",'i',true);
|
||||
Apara->SetParameterRange("A_isotope > 1");
|
||||
Apara->SetGuidance("A: mass number of isotope");
|
||||
|
||||
G4UIparameter* FileNamepara= new G4UIparameter("file_name",'s',true);
|
||||
FileNamepara->SetGuidance("Name of the user data file");
|
||||
|
||||
userEvaporationDataCmd->SetParameter(Zpara);
|
||||
userEvaporationDataCmd->SetParameter(Apara);
|
||||
userEvaporationDataCmd->SetParameter(FileNamepara);
|
||||
@@ -158,76 +218,160 @@ G4RadioactiveDecayBaseMessenger::G4RadioactiveDecayBaseMessenger
|
||||
|
||||
G4RadioactiveDecayBaseMessenger::~G4RadioactiveDecayBaseMessenger ()
|
||||
{
|
||||
delete grdmDirectory;
|
||||
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 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;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
G4RadioactiveDecayBaseMessenger::SetNewValue(G4UIcommand *command, G4String newValues)
|
||||
{
|
||||
if (command == nucleuslimitsCmd) {
|
||||
// Old commands to be removed in G4 11.0
|
||||
if ( command == old_nucleuslimitsCmd ) {
|
||||
theRadioactiveDecayContainer->
|
||||
SetNucleusLimits(nucleuslimitsCmd->GetNewNucleusLimitsValue(newValues));
|
||||
|
||||
} else if (command == avolumeCmd) {
|
||||
theRadioactiveDecayContainer->SelectAVolume(newValues);
|
||||
|
||||
} else if (command == deavolumeCmd) {
|
||||
theRadioactiveDecayContainer->DeselectAVolume(newValues);
|
||||
|
||||
} else if (command == allvolumesCmd) {
|
||||
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();
|
||||
|
||||
} else if (command == deallvolumesCmd) {
|
||||
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();
|
||||
|
||||
} 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 == userDecayDataCmd) {
|
||||
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);
|
||||
|
||||
} else if (command == userEvaporationDataCmd) {
|
||||
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);
|
||||
|
||||
} else if (command == colldirCmd) {
|
||||
theRadioactiveDecayContainer->
|
||||
SetDecayDirection(colldirCmd->GetNew3VectorValue(newValues));
|
||||
|
||||
} else if (command == collangleCmd) {
|
||||
theRadioactiveDecayContainer->
|
||||
SetDecayHalfAngle(collangleCmd->GetNewDoubleValue(newValues));
|
||||
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 ) );
|
||||
} 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 == 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 == 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 ) );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+394
-188
@@ -26,8 +26,8 @@
|
||||
|
||||
#include "G4RadioactiveDecaymessenger.hh"
|
||||
#include "G4NuclearLevelData.hh"
|
||||
|
||||
#include <sstream>
|
||||
#include "G4HadronicException.hh"
|
||||
|
||||
|
||||
G4RadioactiveDecaymessenger::G4RadioactiveDecaymessenger
|
||||
@@ -35,281 +35,487 @@ G4RadioactiveDecaymessenger::G4RadioactiveDecaymessenger
|
||||
:theRadioactiveDecayContainer(theRadioactiveDecayContainer1)
|
||||
{
|
||||
// main directory for control of the RDM
|
||||
grdmDirectory = new G4UIdirectory("/grdm/");
|
||||
grdmDirectory->SetGuidance("Controls for the Radioactive Decay Module.");
|
||||
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.
|
||||
nucleuslimitsCmd = new
|
||||
G4UIcmdWithNucleusLimits("/grdm/nucleusLimits",this);
|
||||
nucleuslimitsCmd->SetGuidance
|
||||
("Set the atomic weight and number limits for the RDM.");
|
||||
nucleuslimitsCmd->SetParameterName("aMin","aMax","zMin","zMax",true);
|
||||
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
|
||||
analoguemcCmd = new G4UIcmdWithABool ("/grdm/analogueMC",this);
|
||||
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
|
||||
//
|
||||
fbetaCmd = new G4UIcmdWithABool ("/grdm/fBeta",this);
|
||||
fbetaCmd->SetGuidance("false: use 3-body decay, true: use histogram method");
|
||||
fbetaCmd->SetParameterName("fBeta",true);
|
||||
fbetaCmd->SetDefaultValue(false);
|
||||
|
||||
// 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.
|
||||
//
|
||||
avolumeCmd = new
|
||||
G4UIcmdWithAString("/grdm/selectVolume",this);
|
||||
avolumeCmd->SetGuidance
|
||||
("Suppply a logical volumes name to add it to the RDM apply list");
|
||||
avolumeCmd->SetParameterName("aVolume",false);
|
||||
//
|
||||
//
|
||||
//
|
||||
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.
|
||||
//
|
||||
deavolumeCmd = new
|
||||
G4UIcmdWithAString("/grdm/deselectVolume",this);
|
||||
deavolumeCmd->SetGuidance
|
||||
("Suppply a logical volumes name to remove it from the RDM apply list");
|
||||
deavolumeCmd->SetParameterName("aVolume",false);
|
||||
//
|
||||
//
|
||||
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.
|
||||
//
|
||||
allvolumesCmd = new
|
||||
G4UIcmdWithoutParameter("/grdm/allVolumes",this);
|
||||
allvolumesCmd->SetGuidance
|
||||
(" apply RDM to all logical volumes. No parameter required.");
|
||||
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.
|
||||
//
|
||||
deallvolumesCmd = new
|
||||
G4UIcmdWithoutParameter("/grdm/noVolumes",this);
|
||||
deallvolumesCmd->SetGuidance
|
||||
(" RDM is not applied to any logical volumes");
|
||||
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
|
||||
//
|
||||
brbiasCmd = new G4UIcmdWithABool ("/grdm/BRbias",this);
|
||||
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 contols whether ICM will be applied or not
|
||||
//
|
||||
icmCmd = new G4UIcmdWithABool ("/grdm/applyICM",this);
|
||||
|
||||
// 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->SetParameterName("ApplyICM",true);
|
||||
icmCmd->SetDefaultValue(true);
|
||||
//
|
||||
|
||||
// Command contols whether ARM will be applied or not
|
||||
//
|
||||
armCmd = new G4UIcmdWithABool ("/grdm/applyARM",this);
|
||||
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->SetParameterName("ApplyARM",true);
|
||||
armCmd->SetDefaultValue(true);
|
||||
//armCmd->AvailableForStates(G4State_PreInit);
|
||||
//
|
||||
// armCmd->AvailableForStates(G4State_PreInit);
|
||||
|
||||
// Command to set the h-l thresold for isomer production
|
||||
//
|
||||
hlthCmd = new G4UIcmdWithADoubleAndUnit("/grdm/hlThreshold",this);
|
||||
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->SetParameterName("HlThreshold",false);
|
||||
// hlthCmd->SetRange("HlThreshold>0.");
|
||||
hlthCmd->SetUnitCategory("Time");
|
||||
// hlthCmd->AvailableForStates(G4State_PreInit);
|
||||
//
|
||||
|
||||
// Command to define the incident particle source time profile.
|
||||
//
|
||||
sourcetimeprofileCmd = new
|
||||
G4UIcmdWithAString("/grdm/sourceTimeProfile",this);
|
||||
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.
|
||||
//
|
||||
decaybiasprofileCmd = new
|
||||
G4UIcmdWithAString("/grdm/decayBiasProfile",this);
|
||||
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
|
||||
//
|
||||
colldirCmd = new G4UIcmdWith3Vector("/grdm/decayDirection",this);
|
||||
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")
|
||||
//
|
||||
collangleCmd = new G4UIcmdWithADoubleAndUnit("/grdm/decayHalfAngle",this);
|
||||
collangleCmd->SetGuidance
|
||||
("Supply maximum angle from direction vector for decay products");
|
||||
collangleCmd->SetParameterName("halfAngle",false);
|
||||
collangleCmd->SetUnitCategory("Angle");
|
||||
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
|
||||
//
|
||||
splitnucleiCmd = new G4UIcmdWithAnInteger("/grdm/splitNuclei",this);
|
||||
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
|
||||
//
|
||||
verboseCmd = new G4UIcmdWithAnInteger("/grdm/verbose",this);
|
||||
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 commansd allows the user to define its own decay datafile for
|
||||
// a given isotope
|
||||
//
|
||||
userDecayDataCmd = new G4UIcommand("/grdm/setRadioactiveDecayFile",this);
|
||||
G4UIparameter* Z_para= new G4UIparameter("Z_isotope",'i',true);
|
||||
|
||||
// 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);
|
||||
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);
|
||||
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_);
|
||||
|
||||
//
|
||||
//This commands allows the user to define its own evaporation data file for
|
||||
// a given isotope
|
||||
//
|
||||
userEvaporationDataCmd = new G4UIcommand("/grdm/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_ );
|
||||
|
||||
|
||||
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 grdmDirectory;
|
||||
delete nucleuslimitsCmd;
|
||||
delete sourcetimeprofileCmd;
|
||||
delete decaybiasprofileCmd;
|
||||
delete analoguemcCmd;
|
||||
delete fbetaCmd;
|
||||
delete brbiasCmd;
|
||||
delete splitnucleiCmd;
|
||||
delete verboseCmd;
|
||||
delete avolumeCmd;
|
||||
delete deavolumeCmd;
|
||||
delete allvolumesCmd;
|
||||
delete deallvolumesCmd;
|
||||
delete icmCmd;
|
||||
delete armCmd;
|
||||
delete hlthCmd;
|
||||
delete userDecayDataCmd;
|
||||
delete userEvaporationDataCmd;
|
||||
delete colldirCmd;
|
||||
delete collangleCmd;
|
||||
|
||||
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)
|
||||
{
|
||||
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){
|
||||
// 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);
|
||||
|
||||
} else if (command ==userEvaporationDataCmd){
|
||||
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);
|
||||
|
||||
} else if (command==colldirCmd) {theRadioactiveDecayContainer->
|
||||
SetDecayDirection(colldirCmd->GetNew3VectorValue(newValues));
|
||||
|
||||
} else if (command==collangleCmd) {theRadioactiveDecayContainer->
|
||||
SetDecayHalfAngle(collangleCmd->GetNewDoubleValue(newValues));
|
||||
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