37 :theRadioactiveDecayContainer(theRadioactiveDecayContainer1)
45 grdmDirectory->SetGuidance(
"Controls for the Radioactive Decay Module.");
50 nucleuslimitsCmd =
new
52 nucleuslimitsCmd->SetGuidance
53 (
"Set the atomic weight and number limits for the RDM.");
54 nucleuslimitsCmd->SetParameterName(
"aMin",
"aMax",
"zMin",
"zMax",
true);
62 analoguemcCmd->SetGuidance(
"false: variance reduction method; true: analogue method");
63 analoguemcCmd->SetParameterName(
"AnalogueMC",
true);
64 analoguemcCmd->SetDefaultValue(
true);
70 fbetaCmd->SetGuidance(
"false: use 3-body decay, true: use histogram method");
71 fbetaCmd->SetParameterName(
"fBeta",
true);
72 fbetaCmd->SetDefaultValue(
false);
80 avolumeCmd->SetGuidance
81 (
"Suppply a logical volumes name to add it to the RDM apply list");
82 avolumeCmd->SetParameterName(
"aVolume",
false);
90 deavolumeCmd->SetGuidance
91 (
"Suppply a logical volumes name to remove it from the RDM apply list");
92 deavolumeCmd->SetParameterName(
"aVolume",
false);
99 allvolumesCmd->SetGuidance
100 (
" apply RDM to all logical volumes. No parameter required.");
106 deallvolumesCmd =
new
108 deallvolumesCmd->SetGuidance
109 (
" RDM is not applied to any logical volumes");
116 brbiasCmd->SetGuidance(
"false: no biasing; true: all branches are treated as equal");
117 brbiasCmd->SetParameterName(
"BRBias",
true);
118 brbiasCmd->SetDefaultValue(
true);
123 icmCmd->SetGuidance(
"True: ICM is applied; false: no");
124 icmCmd->SetParameterName(
"applyICM",
true);
125 icmCmd->SetDefaultValue(
true);
131 armCmd->SetGuidance(
"True: ARM is applied; false: no");
132 armCmd->SetParameterName(
"applyARM",
true);
133 armCmd->SetDefaultValue(
true);
139 hlthCmd->SetGuidance(
"Set the h-l threshold for isomer production");
140 hlthCmd->SetParameterName(
"hlThreshold",
false);
142 hlthCmd->SetUnitCategory(
"Time");
147 sourcetimeprofileCmd =
new
149 sourcetimeprofileCmd->SetGuidance
150 (
"Supply the name of the ascii file containing the source particle time profile");
151 sourcetimeprofileCmd->SetParameterName(
"STimeProfile",
true);
152 sourcetimeprofileCmd->SetDefaultValue(
"source.data");
157 decaybiasprofileCmd =
new
159 decaybiasprofileCmd->SetGuidance
160 (
"Supply the name of the ascii file containing the decay bias time profile");
161 decaybiasprofileCmd->SetParameterName(
"DBiasProfile",
true);
162 decaybiasprofileCmd->SetDefaultValue(
"bias.data");
168 colldirCmd->SetGuidance(
"Supply the direction vector for decay products");
169 colldirCmd->SetParameterName(
"X",
"Y",
"Z",
false);
175 collangleCmd->SetGuidance
176 (
"Supply maximum angle from direction vector for decay products");
177 collangleCmd->SetParameterName(
"halfAngle",
false);
178 collangleCmd->SetUnitCategory(
"Angle");
184 splitnucleiCmd->SetGuidance(
"Set number of spliting for the isotopes.");
185 splitnucleiCmd->SetParameterName(
"NSplit",
true);
186 splitnucleiCmd->SetDefaultValue(1);
187 splitnucleiCmd->SetRange(
"NSplit>=1");
193 verboseCmd->SetGuidance(
"Set verbose level: 0, 1, 2 or 3");
194 verboseCmd->SetParameterName(
"VerboseLevel",
true);
195 verboseCmd->SetDefaultValue(1);
196 verboseCmd->SetRange(
"VerboseLevel>=0");
202 userDecayDataCmd =
new G4UIcommand(
"/grdm/setRadioactiveDecayFile",
this);
205 Z_para->
SetGuidance(
"Z: Charge number of isotope");
213 FileName_para->
SetGuidance(
"Name of the user data file");
214 userDecayDataCmd->SetParameter(Z_para);
215 userDecayDataCmd->SetParameter(A_para);
216 userDecayDataCmd->SetParameter(FileName_para);
222 userEvaporationDataCmd =
new G4UIcommand(
"/grdm/setPhotoEvaporationFile",
this);
223 userEvaporationDataCmd->SetParameter(Z_para);
224 userEvaporationDataCmd->SetParameter(A_para);
225 userEvaporationDataCmd->SetParameter(FileName_para);
233 delete grdmDirectory;
234 delete nucleuslimitsCmd;
235 delete sourcetimeprofileCmd;
236 delete decaybiasprofileCmd;
237 delete analoguemcCmd;
240 delete splitnucleiCmd;
244 delete allvolumesCmd;
245 delete deallvolumesCmd;
249 delete userDecayDataCmd;
250 delete userEvaporationDataCmd;
259 if (command==nucleuslimitsCmd) {theRadioactiveDecayContainer->
261 else if (command==analoguemcCmd) {theRadioactiveDecayContainer->
263 else if (command==fbetaCmd) {theRadioactiveDecayContainer->
265 else if (command==avolumeCmd) {theRadioactiveDecayContainer->
266 SelectAVolume(newValues);}
267 else if (command==deavolumeCmd) {theRadioactiveDecayContainer->
268 DeselectAVolume(newValues);}
269 else if (command==allvolumesCmd) {theRadioactiveDecayContainer->
271 else if (command==deallvolumesCmd) {theRadioactiveDecayContainer->
272 DeselectAllVolumes();}
273 else if (command==brbiasCmd) {theRadioactiveDecayContainer->
275 else if (command==sourcetimeprofileCmd) {theRadioactiveDecayContainer->
276 SetSourceTimeProfile(newValues);}
277 else if (command==decaybiasprofileCmd) {theRadioactiveDecayContainer->
278 SetDecayBias(newValues);}
279 else if (command==splitnucleiCmd) {theRadioactiveDecayContainer->
281 else if (command==verboseCmd) {theRadioactiveDecayContainer->
283 else if (command==icmCmd ) {theRadioactiveDecayContainer->
285 else if (command==armCmd ) {theRadioactiveDecayContainer->
287 else if (command==hlthCmd ) {theRadioactiveDecayContainer->
290 else if (command ==userDecayDataCmd){
293 const char* nv = (
const char*)newValues;
294 std::istringstream is(nv);
295 is >> Z>>A>>file_name;
298 else if (command ==userEvaporationDataCmd){
301 const char* nv = (
const char*)newValues;
302 std::istringstream is(nv);
303 is >> Z>>A>>file_name;
306 else if (command==colldirCmd) {theRadioactiveDecayContainer->
308 else if (command==collangleCmd) {theRadioactiveDecayContainer->
static G4int GetNewIntValue(const char *paramString)
void SetParameterRange(const char *theRange)
static G4NuclearLevelStore * GetInstance()
static G4double GetNewDoubleValue(const char *paramString)
static G4bool GetNewBoolValue(const char *paramString)
~G4RadioactiveDecaymessenger()
void AddUserEvaporationDataFile(G4int Z, G4int A, const G4String &filename)
static G4ThreeVector GetNew3VectorValue(const char *paramString)
void SetNewValue(G4UIcommand *command, G4String newValues)
G4NucleusLimits GetNewNucleusLimitsValue(G4String paramString)
G4RadioactiveDecaymessenger(G4RadioactiveDecay *theRadioactiveDecayContainer)
void SetGuidance(const char *theGuidance)
void AddUserDecayDataFile(G4int Z, G4int A, G4String filename)