61 paiCmd =
new G4UIcommand(
"/process/em/AddPAIRegion",
this);
62 paiCmd->
SetGuidance(
"Activate PAI in the G4Region.");
63 paiCmd->
SetGuidance(
" partName : particle name (default - all)");
78 mscoCmd =
new G4UIcommand(
"/process/em/AddEmRegion",
this);
79 mscoCmd->
SetGuidance(
"Add optional EM configuration for a G4Region.");
81 mscoCmd->
SetGuidance(
" emType : G4EmStandard, G4EmStandard_opt1, ...");
89 mtype->
SetParameterCandidates(
"G4EmStandard G4EmStandard_opt1 G4EmStandard_opt2 G4EmStandard_opt3 G4EmStandard_opt4 G4EmStandardGS G4EmStandardSS G4EmLivermore G4EmPenelope G4RadioactiveDecay");
91 SubSecCmd =
new G4UIcommand(
"/process/eLoss/subsec",
this);
92 SubSecCmd->
SetGuidance(
"Switch true/false the subcutoff generation per region.");
97 StepFuncCmd =
new G4UIcommand(
"/process/eLoss/StepFunction",
this);
98 StepFuncCmd->
SetGuidance(
"Set the energy loss step limitation parameters for e+-.");
99 StepFuncCmd->
SetGuidance(
" dRoverR : max Range variation per step");
100 StepFuncCmd->
SetGuidance(
" finalRange: range for final step");
101 StepFuncCmd->
SetGuidance(
" unit : unit of finalRange");
116 StepFuncCmd1 =
new G4UIcommand(
"/process/eLoss/StepFunctionMuHad",
this);
117 StepFuncCmd1->
SetGuidance(
"Set the energy loss step limitation parameters for muon/hadron.");
118 StepFuncCmd1->
SetGuidance(
" dRoverR : max Range variation per step");
119 StepFuncCmd1->
SetGuidance(
" finalRange: range for final step");
134 StepFuncCmd2 =
new G4UIcommand(
"/process/eLoss/StepFunctionLightIons",
this);
135 StepFuncCmd2->
SetGuidance(
"Set the energy loss step limitation parameters for light ions.");
136 StepFuncCmd2->
SetGuidance(
" dRoverR : max Range variation per step");
137 StepFuncCmd2->
SetGuidance(
" finalRange: range for final step");
152 StepFuncCmd3 =
new G4UIcommand(
"/process/eLoss/StepFunctionIons",
this);
153 StepFuncCmd3->
SetGuidance(
"Set the energy loss step limitation parameters for ions.");
154 StepFuncCmd3->
SetGuidance(
" dRoverR : max Range variation per step");
155 StepFuncCmd3->
SetGuidance(
" finalRange: range for final step");
176 bfCmd =
new G4UIcommand(
"/process/em/setBiasingFactor",
this);
177 bfCmd->
SetGuidance(
"Set factor for the process cross section.");
180 bfCmd->
SetGuidance(
" flagFact : flag to change weight");
192 fiCmd =
new G4UIcommand(
"/process/em/setForcedInteraction",
this);
193 fiCmd->
SetGuidance(
"Set factor for the process cross section.");
196 fiCmd->
SetGuidance(
" tlength : fixed target length");
198 fiCmd->
SetGuidance(
" tflag : flag to change weight");
219 bsCmd =
new G4UIcommand(
"/process/em/setSecBiasing",
this);
220 bsCmd->
SetGuidance(
"Set bremsstrahlung or delta-e- splitting/Russian roulette per region.");
223 bsCmd->
SetGuidance(
" bFactor : number of split gamma or probability of Russian roulette");
224 bsCmd->
SetGuidance(
" bEnergy : max energy of a secondary for this biasing method");
244 dirSplitCmd =
new G4UIcmdWithABool(
"/process/em/setDirectionalSplitting",
this);
245 dirSplitCmd->
SetGuidance(
"Enable directional brem splitting");
253 dirSplitTargetCmd->
SetGuidance(
"Position of arget for directional splitting");
257 dirSplitRadiusCmd->
SetGuidance(
"Radius of target for directional splitting");
277 delete dirSplitTargetCmd;
278 delete dirSplitRadiusCmd;
286 G4bool physicsModified =
false;
288 if (command == paiCmd) {
290 std::istringstream is(newValue);
291 is >> s1 >> s2 >> s3;
293 }
else if (command == mscoCmd) {
295 std::istringstream is(newValue);
298 }
else if (command == StepFuncCmd || command == StepFuncCmd1 || command == StepFuncCmd2 || command == StepFuncCmd3) {
301 std::istringstream is(newValue);
302 is >> v1 >> v2 >> unt;
304 if(command == StepFuncCmd) {
306 }
else if(command == StepFuncCmd1) {
308 }
else if(command == StepFuncCmd2) {
313 physicsModified =
true;
314 }
else if (command == SubSecCmd) {
316 std::istringstream is(newValue);
319 if(s1 ==
"true") { yes =
true; }
321 }
else if (command == bfCmd) {
324 std::istringstream is(newValue);
325 is >> s0 >> v1 >> s1;
327 if(s1 ==
"true") { yes =
true; }
329 physicsModified =
true;
330 }
else if (command == fiCmd) {
332 G4String s1(
""),s2(
""),s3(
""),unt(
"mm");
333 std::istringstream is(newValue);
334 is >> s1 >> s2 >> v1 >> unt >> s3;
336 if(s3 ==
"true") { yes =
true; }
339 physicsModified =
true;
340 }
else if (command == bsCmd) {
343 std::istringstream is(newValue);
344 is >> s1 >> s2 >> fb >> en >> unt;
347 physicsModified =
true;
348 }
else if (command == qeCmd) {
350 }
else if (command == dirSplitCmd) {
353 physicsModified =
true;
354 }
else if (command == dirSplitTargetCmd) {
357 physicsModified =
true;
358 }
else if (command == dirSplitRadiusCmd) {
361 physicsModified =
true;
364 if(physicsModified) {
static G4ThreeVector GetNew3VectorValue(const char *paramString)
static G4bool GetNewBoolValue(const char *paramString)
static G4double GetNewDoubleValue(const char *paramString)
static G4double ValueOf(const char *unitName)
void SetParameter(G4UIparameter *const newParameter)
void SetGuidance(const char *aGuidance)
void AvailableForStates(G4ApplicationState s1)
G4int ApplyCommand(const char *aCommand)
static G4UImanager * GetUIpointer()
void SetDefaultValue(const char *theDefaultValue)
void SetParameterRange(const char *theRange)
void SetParameterCandidates(const char *theString)
void SetDefaultUnit(const char *theDefaultUnit)