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 ver2Cmd->
SetGuidance(
"Set worker verbose level for EM physics");
254 lllCmd->
SetGuidance(
"Set linearLossLimit parameter");
259 labCmd->
SetGuidance(
"Set lambdaFactor parameter for integral option");
264 mscCmd->
SetGuidance(
"Set msc step limitation type");
269 latCmd->
SetGuidance(
"Set flag of sampling of lateral displacement");
275 frCmd->
SetGuidance(
"Set RangeFactor parameter for msc processes");
282 fgCmd->
SetGuidance(
"Set GeomFactor parameter for msc processes");
289 mscfCmd->
SetGuidance(
"Set factor for computation of a limit for -t (invariant trasfer)");
296 skinCmd->
SetGuidance(
"Set skin parameter for msc processes");
301 angCmd->
SetGuidance(
"Set the limit on the polar angle for msc and single scattering");
306 bfCmd =
new G4UIcommand(
"/process/em/setBiasingFactor",
this);
307 bfCmd->
SetGuidance(
"Set factor for the process cross section.");
310 bfCmd->
SetGuidance(
" flagFact : flag to change weight");
322 fiCmd =
new G4UIcommand(
"/process/em/setForcedInteraction",
this);
323 fiCmd->
SetGuidance(
"Set factor for the process cross section.");
326 fiCmd->
SetGuidance(
" tlength : fixed target length");
327 fiCmd->
SetGuidance(
" tflag : flag to change weight");
346 brCmd =
new G4UIcommand(
"/process/em/setSecBiasing",
this);
347 brCmd->
SetGuidance(
"Set bremsstrahlung or delta-electron splitting/Russian roullette per region.");
350 brCmd->
SetGuidance(
" bFactor : number of splitted gamma or probability of Russian roulette");
351 brCmd->
SetGuidance(
" bEnergy : max energy of a secondary for this biasing method");
378 delete EnlossFlucCmd;
383 delete eLossDirectory;
423 if (command == RndmStepCmd) {
425 }
else if (command == EnlossFlucCmd) {
427 }
else if(command == SubSecCmd) {
430 }
else if (command == MinSubSecCmd) {
433 }
else if (command == StepFuncCmd) {
436 std::istringstream is(newValue);
437 is >> v1 >> v2 >> unt;
440 }
else if (command == deexCmd) {
441 G4String s1 (
""), s2(
""), s3(
""), s4(
"");
442 G4bool b2(
false), b3(
false), b4(
false);
443 std::istringstream is(newValue);
444 is >> s1 >> s2 >> s3 >> s4;
445 if(s2 ==
"true") { b2 =
true; }
446 if(s3 ==
"true") { b3 =
true; }
447 if(s4 ==
"true") { b4 =
true; }
449 }
else if (command == deCmd) {
451 }
else if (command == auCmd) {
453 }
else if (command == pixeCmd) {
455 }
else if (command == pixeXsCmd) {
457 if (newValue ==
"ecpssr_analytical")
458 {name =
"ECPSSR_Analytical";}
459 else if (newValue ==
"ecpssr_interpolated")
460 {name =
"ECPSSR_FormFactor";}
464 }
else if (command == pixeeXsCmd) {
466 }
else if (command == mscCmd) {
467 if(newValue ==
"Minimal")
470 else if(newValue ==
"UseDistanceToBoundary")
473 else if(newValue ==
"UseSafety")
477 G4cout <<
"### G4EnergyLossMessenger WARNING: StepLimit type <"
478 << newValue <<
"> unknown!" <<
G4endl;
482 }
else if (command == MinEnCmd) {
485 }
else if (command == MaxEnCmd) {
488 }
else if (command == IntegCmd) {
490 }
else if (command == rangeCmd) {
493 }
else if (command == lpmCmd) {
496 }
else if (command == splCmd) {
499 }
else if (command == aplCmd) {
501 }
else if (command == latCmd) {
504 }
else if (command == verCmd) {
506 }
else if (command == ver1Cmd) {
508 }
else if (command == ver2Cmd) {
510 }
else if (command == lllCmd) {
512 }
else if (command == labCmd) {
514 }
else if (command == skinCmd) {
517 }
else if (command == dedxCmd) {
520 }
else if (command == lamCmd) {
523 }
else if (command == frCmd) {
526 }
else if (command == fgCmd) {
529 }
else if (command == mscfCmd) {
532 }
else if (command == angCmd) {
535 }
else if (command == bfCmd) {
538 std::istringstream is(newValue);
539 is >>
s0 >> v1 >> s1;
541 if(s1 ==
"true") { yes =
true; }
544 }
else if (command == fiCmd) {
546 G4String s1(
""),s2(
""),s3(
""),unt(
"mm");
547 std::istringstream is(newValue);
548 is >> s1 >> s2 >> v1 >> unt >> s3;
550 if(s3 ==
"true") { yes =
true; }
554 }
else if (command == brCmd) {
557 std::istringstream is(newValue);
558 is >> s1 >> s2 >> fb >> en >> unt;
560 if (s1==
"phot"||s1==
"compt"||s1==
"conv")
void SetParameterName(const char *theName, G4bool omittable, G4bool currentAsDefault=false)
void SetParameter(G4UIparameter *const newParameter)
void SetSkin(G4double val)
void SetLambdaFactor(G4double val)
void SetParameterName(const char *theName, G4bool omittable, G4bool currentAsDefault=false)
static G4int GetNewIntValue(const char *paramString)
void SetParameterRange(const char *theRange)
void SetSplineFlag(G4bool val)
void SetParameterCandidates(const char *theString)
void SetMinEnergy(G4double val)
void SetNewValue(G4UIcommand *, G4String)
void SetDefaultValue(const char *theDefaultValue)
void SetMscGeomFactor(G4double val)
void SetStepFunction(G4double v1, G4double v2)
void ActivateSecondaryBiasingForGamma(const G4String &name, const G4String ®ion, G4double factor, G4double energyLimit)
void SetUnitCategory(const char *unitCategory)
virtual ~G4EnergyLossMessenger()
static G4double GetNewDoubleValue(const char *paramString)
void SetMscLateralDisplacement(G4bool val)
static G4bool GetNewBoolValue(const char *paramString)
void SetMinSubRange(G4double val)
void SetDefaultValue(G4bool defVal)
static G4UImanager * GetUIpointer()
void SetAuger(G4bool val)
void SetDEDXBinning(G4int val)
void SetParameterName(const char *theName, G4bool omittable, G4bool currentAsDefault=false)
G4GLOB_DLL std::ostream G4cout
void SetLambdaBinning(G4int val)
static G4String UnitsList(const char *unitCategory)
static G4double GetNewDoubleValue(const char *paramString)
void SetRange(const char *rs)
void SetGuidance(const char *aGuidance)
void SetLossFluctuations(G4bool val)
void AvailableForStates(G4ApplicationState s1)
void SetLinearLossLimit(G4double val)
void SetMaxEnergy(G4double val)
void SetDeexcitationActiveRegion(const G4String &rname="", G4bool valDeexcitation=true, G4bool valAuger=true, G4bool valPIXE=true)
void SetParameterName(const char *theName, G4bool omittable, G4bool currentAsDefault=false)
void SetFactorForAngleLimit(G4double val)
static G4double ValueOf(const char *unitName)
void ActivateSecondaryBiasing(const G4String &name, const G4String ®ion, G4double factor, G4double energyLimit)
void ActivateForcedInteraction(const G4String &name, G4double length=0.0, const G4String ®ion="", G4bool flag=true)
void SetDefaultValue(G4double defVal)
void SetPIXECrossSectionModel(const G4String &val)
void SetBuildCSDARange(G4bool val)
void SetIntegral(G4bool val)
void SetMscStepLimitation(G4MscStepLimitType val)
void SetDefaultValue(G4int defVal)
void SetRandomStep(G4bool val)
void SetGuidance(const char *theGuidance)
void SetMscRangeFactor(G4double val)
void SetSubCutoff(G4bool val, const G4Region *r=0)
static G4String CategoryOf(const char *unitName)
void SetParameterName(const char *theName, G4bool omittable, G4bool currentAsDefault=false)
void SetLPMFlag(G4bool val)
void SetProcessBiasingFactor(const G4String &name, G4double val, G4bool flag=true)
void SetPIXEElectronCrossSectionModel(const G4String &val)
G4int ApplyCommand(const char *aCommand)
void SetApplyCuts(G4bool val)
void SetVerbose(G4int val, const G4String &name="all", G4bool worker=false)
void SetPolarAngleLimit(G4double val)