46 :
G4UImessenger(), theParams(params), cmdDir(0), localCmdDir(false) {
48 CreateDirectory(
"/process/had/cascade/",
"Bertini-esque cascade parameters");
50 verboseCmd = CreateCommand<G4UIcmdWithAnInteger>(
"verbose",
51 "Enable information messages");
52 reportCmd = CreateCommand<G4UIcmdWithoutParameter>(
"report",
53 "Dump all non-default parameter settings");
54 usePreCoCmd = CreateCommand<G4UIcmdWithABool>(
"usePreCompound",
55 "Use PreCompoundModel for nuclear de-excitation");
56 doCoalCmd = CreateCommand<G4UIcmdWithABool>(
"doCoalescence",
57 "Apply final-state nucleon clustering");
58 randomFileCmd = CreateCommand<G4UIcmdWithAString>(
"randomFile",
59 "Save random-engine to file at each interaction");
60 nucUseBestCmd = CreateCommand<G4UIcmdWithABool>(
"useBestNuclearModel",
61 "Use all physical-units for nuclear structure");
62 nucRad2parCmd = CreateCommand<G4UIcmdWithADouble>(
"useTwoParamNuclearRadius",
63 "Use R = C1*cbrt(A) + C2/cbrt(A)");
64 nucRadScaleCmd = CreateCommand<G4UIcmdWithADouble>(
"nuclearRadiusScale",
65 "Set length scale for nuclear model");
66 nucRadSmallCmd = CreateCommand<G4UIcmdWithADouble>(
"smallNucleusRadius",
67 "Set radius of A<4 nuclei");
68 nucRadAlphaCmd = CreateCommand<G4UIcmdWithADouble>(
"alphaRadiusScale",
69 "Fraction of small-radius for He-4");
70 nucRadTrailingCmd = CreateCommand<G4UIcmdWithADouble>(
"shadowningRadius",
71 "Effective nucleon radius for trailing effect");
72 nucFermiScaleCmd = CreateCommand<G4UIcmdWithADouble>(
"fermiScale",
73 "Scale factor for fermi momentum");
74 nucXsecScaleCmd = CreateCommand<G4UIcmdWithADouble>(
"crossSectionScale",
75 "Scale fator for total cross-sections");
76 nucGammaQDCmd = CreateCommand<G4UIcmdWithADouble>(
"gammaQuasiDeutScale",
77 "Scale factor for gamma-quasideutron cross-sections");
78 coalDPmax2Cmd = CreateCommand<G4UIcmdWithADouble>(
"cluster2DPmax",
79 "Maximum momentum for p-n clusters");
80 coalDPmax3Cmd = CreateCommand<G4UIcmdWithADouble>(
"cluster3DPmax",
81 "Maximum momentum for ppn/pnn clusters");
82 coalDPmax4Cmd = CreateCommand<G4UIcmdWithADouble>(
"cluster4DPmax",
83 "Maximum momentum for alpha clusters");
94 delete nucRadScaleCmd;
95 delete nucRadSmallCmd;
96 delete nucRadAlphaCmd;
97 delete nucRadTrailingCmd;
98 delete nucFermiScaleCmd;
99 delete nucXsecScaleCmd;
100 delete nucGammaQDCmd;
101 delete coalDPmax2Cmd;
102 delete coalDPmax3Cmd;
103 delete coalDPmax4Cmd;
104 if (localCmdDir)
delete cmdDir;
117 if (fullPath(0) !=
'/') fullPath.
prepend(
"/");
118 if (fullPath(fullPath.length()-1) !=
'/') fullPath.
append(
"/");
122 if (foundPath) cmdDir =
dynamic_cast<G4UIdirectory*
>(foundPath);
135 if (cmd == reportCmd) theParams->DumpConfig(
G4cout);
137 if (cmd == verboseCmd)
138 theParams->G4CASCADE_VERBOSE = strdup(arg.c_str());
140 if (cmd == usePreCoCmd)
141 theParams->G4CASCADE_USE_PRECOMPOUND =
StoB(arg) ? strdup(arg.c_str()) : 0;
143 if (cmd == doCoalCmd)
144 theParams->G4CASCADE_DO_COALESCENCE =
StoB(arg) ? strdup(arg.c_str()) : 0;
146 if (cmd == randomFileCmd)
147 theParams->G4CASCADE_RANDOM_FILE = arg.empty() ? 0 : strdup(arg.c_str());
149 if (cmd == nucUseBestCmd)
150 theParams->G4NUCMODEL_USE_BEST =
StoB(arg) ? strdup(arg.c_str()) : 0;
152 if (cmd == nucRad2parCmd)
153 theParams->G4NUCMODEL_RAD_2PAR = strdup(arg.c_str());
155 if (cmd == nucRadScaleCmd)
156 theParams->G4NUCMODEL_RAD_SCALE = strdup(arg.c_str());
158 if (cmd == nucRadSmallCmd)
159 theParams->G4NUCMODEL_RAD_SMALL = strdup(arg.c_str());
161 if (cmd == nucRadAlphaCmd)
162 theParams->G4NUCMODEL_RAD_ALPHA = strdup(arg.c_str());
164 if (cmd == nucRadTrailingCmd)
165 theParams->G4NUCMODEL_RAD_TRAILING = strdup(arg.c_str());
167 if (cmd == nucFermiScaleCmd)
168 theParams->G4NUCMODEL_FERMI_SCALE = strdup(arg.c_str());
170 if (cmd == nucXsecScaleCmd)
171 theParams->G4NUCMODEL_XSEC_SCALE = strdup(arg.c_str());
173 if (cmd == nucGammaQDCmd)
174 theParams->G4NUCMODEL_GAMMAQD = strdup(arg.c_str());
176 if (cmd == coalDPmax2Cmd)
177 theParams->DPMAX_2CLUSTER = strdup(arg.c_str());
179 if (cmd == coalDPmax3Cmd)
180 theParams->DPMAX_3CLUSTER = strdup(arg.c_str());
182 if (cmd == coalDPmax4Cmd)
183 theParams->DPMAX_4CLUSTER = strdup(arg.c_str());
185 theParams->Initialize();