80 eLossDirectory->
SetGuidance(
"Commands for EM processes.");
82 mscDirectory->
SetGuidance(
"Commands for EM scattering processes.");
84 emDirectory->
SetGuidance(
"General commands for EM processes.");
86 RndmStepCmd =
new G4UIcmdWithABool(
"/process/eLoss/useCutAsFinalRange",
this);
87 RndmStepCmd->
SetGuidance(
"Use cut in range as a final range");
93 EnlossFlucCmd->
SetGuidance(
"Switch true/false the energy loss fluctuations.");
99 SubSecCmd->
SetGuidance(
"Switch true/false the subcutoff generation.");
105 MinSubSecCmd->
SetGuidance(
"Set the ratio subcut/cut ");
109 StepFuncCmd =
new G4UIcommand(
"/process/eLoss/StepFunction",
this);
110 StepFuncCmd->
SetGuidance(
"Set the energy loss step limitation parameters.");
111 StepFuncCmd->
SetGuidance(
" dRoverR : max Range variation per step");
112 StepFuncCmd->
SetGuidance(
" finalRange: range for final step");
115 dRoverRPrm->
SetGuidance(
"max Range variation per step (fractional number)");
120 finalRangePrm->
SetGuidance(
"range for final step");
135 MinEnCmd->
SetGuidance(
"Set the min kinetic energy");
141 MaxEnCmd->
SetGuidance(
"Set the max kinetic energy");
147 IntegCmd->
SetGuidance(
"Switch true/false the integral option");
153 rangeCmd->
SetGuidance(
"Switch true/false the CSDA range calculation");
159 lpmCmd->
SetGuidance(
"The flag of the LPM effect calculation");
165 splCmd->
SetGuidance(
"The flag of usage spline for Physics Vectors");
171 aplCmd->
SetGuidance(
"The flag to Apply Cuts for gamma processes");
177 deCmd->
SetGuidance(
"The flag to enable/disable deexcitation");
183 auCmd->
SetGuidance(
"The flag to enable/disable Auger electrons");
189 pixeCmd->
SetGuidance(
"The flag to enable/disable PIXE");
195 pixeXsCmd->
SetGuidance(
"The name of PIXE cross section");
200 pixeeXsCmd->
SetGuidance(
"The name of PIXE cross section for electron");
204 deexCmd =
new G4UIcommand(
"/process/em/deexcitation",
this);
205 deexCmd->
SetGuidance(
"Set deexcitation flags per G4Region.");
224 dedxCmd->
SetGuidance(
"Set number of bins for DEDX tables");
230 lamCmd->
SetGuidance(
"Set number of bins for Lambda tables");
236 verCmd->
SetGuidance(
"Set verbose level for EM physics");
242 ver1Cmd->
SetGuidance(
"Set verbose level for EM physics");
248 lllCmd->
SetGuidance(
"Set linearLossLimit parameter");
253 labCmd->
SetGuidance(
"Set lambdaFactor parameter for integral option");
258 mscCmd->
SetGuidance(
"Set msc step limitation type");
263 latCmd->
SetGuidance(
"Set flag of sampling of lateral displacement");
269 frCmd->
SetGuidance(
"Set RangeFactor parameter for msc processes");
276 fgCmd->
SetGuidance(
"Set GeomFactor parameter for msc processes");
283 mscfCmd->
SetGuidance(
"Set factor for computation of a limit for -t (invariant trasfer)");
290 skinCmd->
SetGuidance(
"Set skin parameter for msc processes");
295 angCmd->
SetGuidance(
"Set the limit on the polar angle for msc and single scattering");
300 bfCmd =
new G4UIcommand(
"/process/em/setBiasingFactor",
this);
301 bfCmd->
SetGuidance(
"Set factor for the process cross section.");
304 bfCmd->
SetGuidance(
" flagFact : flag to change weight");
316 fiCmd =
new G4UIcommand(
"/process/em/setForcedInteraction",
this);
317 fiCmd->
SetGuidance(
"Set factor for the process cross section.");
320 fiCmd->
SetGuidance(
" tlength : fixed target length");
321 fiCmd->
SetGuidance(
" tflag : flag to change weight");
340 brCmd =
new G4UIcommand(
"/process/em/setSecBiasing",
this);
341 brCmd->
SetGuidance(
"Set bremsstrahlung or delta-electron splitting/Russian roullette per region.");
344 brCmd->
SetGuidance(
" bFactor : number of splitted gamma or probability of Russian roulette");
345 brCmd->
SetGuidance(
" bEnergy : max energy of a secondary for this biasing method");
372 delete EnlossFlucCmd;
377 delete eLossDirectory;
416 if (command == RndmStepCmd) {
418 }
else if (command == EnlossFlucCmd) {
420 }
else if(command == SubSecCmd) {
423 }
else if (command == MinSubSecCmd) {
426 }
else if (command == StepFuncCmd) {
429 std::istringstream is(newValue);
430 is >> v1 >> v2 >> unt;
433 }
else if (command == deexCmd) {
434 G4String s1 (
""), s2(
""), s3(
""), s4(
"");
435 G4bool b2(
false), b3(
false), b4(
false);
436 std::istringstream is(newValue);
437 is >> s1 >> s2 >> s3 >> s4;
438 if(s2 ==
"true") { b2 =
true; }
439 if(s3 ==
"true") { b3 =
true; }
440 if(s4 ==
"true") { b4 =
true; }
442 }
else if (command == deCmd) {
444 }
else if (command == auCmd) {
446 }
else if (command == pixeCmd) {
448 }
else if (command == pixeXsCmd) {
450 if (newValue ==
"ecpssr_analytical")
451 {name =
"ECPSSR_Analytical";}
452 else if (newValue ==
"ecpssr_interpolated")
453 {name =
"ECPSSR_FormFactor";}
457 }
else if (command == pixeeXsCmd) {
459 }
else if (command == mscCmd) {
460 if(newValue ==
"Minimal")
463 else if(newValue ==
"UseDistanceToBoundary")
466 else if(newValue ==
"UseSafety")
470 G4cout <<
"### G4EnergyLossMessenger WARNING: StepLimit type <"
471 << newValue <<
"> unknown!" <<
G4endl;
475 }
else if (command == MinEnCmd) {
478 }
else if (command == MaxEnCmd) {
481 }
else if (command == IntegCmd) {
483 }
else if (command == rangeCmd) {
486 }
else if (command == lpmCmd) {
489 }
else if (command == splCmd) {
492 }
else if (command == aplCmd) {
494 }
else if (command == latCmd) {
497 }
else if (command == verCmd) {
499 }
else if (command == ver1Cmd) {
501 }
else if (command == lllCmd) {
503 }
else if (command == labCmd) {
505 }
else if (command == skinCmd) {
508 }
else if (command == dedxCmd) {
511 }
else if (command == lamCmd) {
514 }
else if (command == frCmd) {
517 }
else if (command == fgCmd) {
520 }
else if (command == mscfCmd) {
523 }
else if (command == angCmd) {
526 }
else if (command == bfCmd) {
529 std::istringstream is(newValue);
530 is >>
s0 >> v1 >> s1;
532 if(s1 ==
"true") { yes =
true; }
535 }
else if (command == fiCmd) {
537 G4String s1(
""),s2(
""),s3(
""),unt(
"mm");
538 std::istringstream is(newValue);
539 is >> s1 >> s2 >> v1 >> unt >> s3;
541 if(s3 ==
"true") { yes =
true; }
545 }
else if (command == brCmd) {
548 std::istringstream is(newValue);
549 is >> s1 >> s2 >> fb >> en >> unt;
551 if (s1==
"phot"||s1==
"compt"||s1==
"conv")