35 :theRadioactiveDecayContainer(theRadioactiveDecayContainer1)
39 grdmDirectory->SetGuidance(
"Controls for the Radioactive Decay Module.");
42 nucleuslimitsCmd =
new
44 nucleuslimitsCmd->SetGuidance
45 (
"Set the atomic weight and number limits for the RDM.");
46 nucleuslimitsCmd->SetParameterName(
"aMin",
"aMax",
"zMin",
"zMax",
true);
51 analoguemcCmd->SetGuidance(
"false: variance reduction method; true: analogue method");
52 analoguemcCmd->SetParameterName(
"AnalogueMC",
true);
53 analoguemcCmd->SetDefaultValue(
true);
59 fbetaCmd->SetGuidance(
"false: use 3-body decay, true: use histogram method");
60 fbetaCmd->SetParameterName(
"fBeta",
true);
61 fbetaCmd->SetDefaultValue(
false);
69 avolumeCmd->SetGuidance
70 (
"Suppply a logical volumes name to add it to the RDM apply list");
71 avolumeCmd->SetParameterName(
"aVolume",
false);
79 deavolumeCmd->SetGuidance
80 (
"Suppply a logical volumes name to remove it from the RDM apply list");
81 deavolumeCmd->SetParameterName(
"aVolume",
false);
88 allvolumesCmd->SetGuidance
89 (
" apply RDM to all logical volumes. No parameter required.");
97 deallvolumesCmd->SetGuidance
98 (
" RDM is not applied to any logical volumes");
105 brbiasCmd->SetGuidance(
"false: no biasing; true: all branches are treated as equal");
106 brbiasCmd->SetParameterName(
"BRBias",
true);
107 brbiasCmd->SetDefaultValue(
true);
112 icmCmd->SetGuidance(
"True: ICM is applied; false: no");
113 icmCmd->SetParameterName(
"applyICM",
true);
114 icmCmd->SetDefaultValue(
true);
119 armCmd->SetGuidance(
"True: ARM is applied; false: no");
120 armCmd->SetParameterName(
"applyARM",
true);
121 armCmd->SetDefaultValue(
true);
127 hlthCmd->SetGuidance(
"Set the h-l threshold for isomer production");
128 hlthCmd->SetParameterName(
"hlThreshold",
false);
130 hlthCmd->SetUnitCategory(
"Time");
135 sourcetimeprofileCmd =
new
137 sourcetimeprofileCmd->SetGuidance
138 (
"Supply the name of the ascii file containing the source particle time profile");
139 sourcetimeprofileCmd->SetParameterName(
"STimeProfile",
true);
140 sourcetimeprofileCmd->SetDefaultValue(
"source.data");
145 decaybiasprofileCmd =
new
147 decaybiasprofileCmd->SetGuidance
148 (
"Supply the name of the ascii file containing the decay bias time profile");
149 decaybiasprofileCmd->SetParameterName(
"DBiasProfile",
true);
150 decaybiasprofileCmd->SetDefaultValue(
"bias.data");
156 colldirCmd->SetGuidance(
"Supply the direction vector for decay products");
157 colldirCmd->SetParameterName(
"X",
"Y",
"Z",
false);
163 collangleCmd->SetGuidance
164 (
"Supply maximum angle from direction vector for decay products");
165 collangleCmd->SetParameterName(
"halfAngle",
false);
166 collangleCmd->SetUnitCategory(
"Angle");
172 splitnucleiCmd->SetGuidance(
"Set number of spliting for the isotopes.");
173 splitnucleiCmd->SetParameterName(
"NSplit",
true);
174 splitnucleiCmd->SetDefaultValue(1);
175 splitnucleiCmd->SetRange(
"NSplit>=1");
181 verboseCmd->SetGuidance(
"Set verbose level: 0, 1, 2 or 3");
182 verboseCmd->SetParameterName(
"VerboseLevel",
true);
183 verboseCmd->SetDefaultValue(1);
184 verboseCmd->SetRange(
"VerboseLevel>=0");
190 userDecayDataCmd =
new G4UIcommand(
"/grdm/setRadioactiveDecayFile",
this);
193 Z_para->
SetGuidance(
"Z: Charge number of isotope");
201 FileName_para->
SetGuidance(
"Name of the user data file");
202 userDecayDataCmd->SetParameter(Z_para);
203 userDecayDataCmd->SetParameter(A_para);
204 userDecayDataCmd->SetParameter(FileName_para);
210 userEvaporationDataCmd =
new G4UIcommand(
"/grdm/setPhotoEvaporationFile",
this);
211 userEvaporationDataCmd->SetParameter(Z_para);
212 userEvaporationDataCmd->SetParameter(A_para);
213 userEvaporationDataCmd->SetParameter(FileName_para);
221 delete grdmDirectory;
222 delete nucleuslimitsCmd;
223 delete sourcetimeprofileCmd;
224 delete decaybiasprofileCmd;
225 delete analoguemcCmd;
228 delete splitnucleiCmd;
232 delete allvolumesCmd;
233 delete deallvolumesCmd;
237 delete userDecayDataCmd;
238 delete userEvaporationDataCmd;
247 if (command==nucleuslimitsCmd) {theRadioactiveDecayContainer->
250 }
else if (command==analoguemcCmd) {theRadioactiveDecayContainer->
253 }
else if (command==fbetaCmd) {theRadioactiveDecayContainer->
256 }
else if (command==avolumeCmd) {theRadioactiveDecayContainer->
257 SelectAVolume(newValues);
259 }
else if (command==deavolumeCmd) {theRadioactiveDecayContainer->
260 DeselectAVolume(newValues);}
261 else if (command==allvolumesCmd) {theRadioactiveDecayContainer->
263 else if (command==deallvolumesCmd) {theRadioactiveDecayContainer->
264 DeselectAllVolumes();}
265 else if (command==brbiasCmd) {theRadioactiveDecayContainer->
267 else if (command==sourcetimeprofileCmd) {theRadioactiveDecayContainer->
268 SetSourceTimeProfile(newValues);}
269 else if (command==decaybiasprofileCmd) {theRadioactiveDecayContainer->
270 SetDecayBias(newValues);}
271 else if (command==splitnucleiCmd) {theRadioactiveDecayContainer->
273 else if (command==verboseCmd) {theRadioactiveDecayContainer->
275 else if (command==icmCmd ) {theRadioactiveDecayContainer->
277 else if (command==armCmd ) {theRadioactiveDecayContainer->
279 else if (command==hlthCmd ) {theRadioactiveDecayContainer->
282 }
else if (command ==userDecayDataCmd){
285 const char* nv = (
const char*)newValues;
286 std::istringstream is(nv);
287 is >> Z >> A >> file_name;
290 }
else if (command ==userEvaporationDataCmd){
293 const char* nv = (
const char*)newValues;
294 std::istringstream is(nv);
295 is >> Z >> A >> file_name;
298 }
else if (command==colldirCmd) {theRadioactiveDecayContainer->
301 }
else if (command==collangleCmd) {theRadioactiveDecayContainer->
static G4int GetNewIntValue(const char *paramString)
void SetParameterRange(const char *theRange)
G4bool AddPrivateData(G4int Z, G4int A, const G4String &filename)
static G4double GetNewDoubleValue(const char *paramString)
static G4bool GetNewBoolValue(const char *paramString)
~G4RadioactiveDecaymessenger()
double A(double temperature)
static G4ThreeVector GetNew3VectorValue(const char *paramString)
void SetNewValue(G4UIcommand *command, G4String newValues)
G4NucleusLimits GetNewNucleusLimitsValue(G4String paramString)
G4RadioactiveDecaymessenger(G4RadioactiveDecay *theRadioactiveDecayContainer)
void SetGuidance(const char *theGuidance)
static G4NuclearLevelData * GetInstance()
void AddUserDecayDataFile(G4int Z, G4int A, G4String filename)