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")
G4DLLIMPORT std::ostream G4cout
void SetBuildCSDARange(G4bool val)
void ActivateForcedInteraction(const G4String &name, G4double length=0.0, const G4String ®ion="", G4bool flag=true)
void SetAuger(G4bool val)
void SetLinearLossLimit(G4double val)
void SetMaxEnergy(G4double val)
void SetMscRangeFactor(G4double val)
void SetDeexcitationActiveRegion(const G4String &rname="", G4bool valDeexcitation=true, G4bool valAuger=true, G4bool valPIXE=true)
void SetIntegral(G4bool val)
void SetDEDXBinning(G4int val)
void SetLambdaBinning(G4int val)
void SetPolarAngleLimit(G4double val)
void SetVerbose(G4int val, const G4String &name="all")
void SetPIXECrossSectionModel(const G4String &val)
void SetMinSubRange(G4double val)
void SetSkin(G4double val)
void SetPIXEElectronCrossSectionModel(const G4String &val)
void SetLPMFlag(G4bool val)
void SetMscLateralDisplacement(G4bool val)
void ActivateSecondaryBiasing(const G4String &name, const G4String ®ion, G4double factor, G4double energyLimit)
void SetMinEnergy(G4double val)
void SetSplineFlag(G4bool val)
void SetMscGeomFactor(G4double val)
void SetLossFluctuations(G4bool val)
void SetRandomStep(G4bool val)
void SetLambdaFactor(G4double val)
void SetMscStepLimitation(G4MscStepLimitType val)
void SetFactorForAngleLimit(G4double val)
void SetApplyCuts(G4bool val)
void SetSubCutoff(G4bool val, const G4Region *r=0)
void SetStepFunction(G4double v1, G4double v2)
void ActivateSecondaryBiasingForGamma(const G4String &name, const G4String ®ion, G4double factor, G4double energyLimit)
void SetProcessBiasingFactor(const G4String &name, G4double val, G4bool flag=true)
virtual ~G4EnergyLossMessenger()
void SetNewValue(G4UIcommand *, G4String)
static G4bool GetNewBoolValue(const char *paramString)
void SetParameterName(const char *theName, G4bool omittable, G4bool currentAsDefault=false)
void SetDefaultValue(G4bool defVal)
void SetUnitCategory(const char *unitCategory)
static G4double GetNewDoubleValue(const char *paramString)
void SetParameterName(const char *theName, G4bool omittable, G4bool currentAsDefault=false)
void SetParameterName(const char *theName, G4bool omittable, G4bool currentAsDefault=false)
static G4double GetNewDoubleValue(const char *paramString)
void SetDefaultValue(G4double defVal)
void SetParameterName(const char *theName, G4bool omittable, G4bool currentAsDefault=false)
void SetParameterName(const char *theName, G4bool omittable, G4bool currentAsDefault=false)
static G4int GetNewIntValue(const char *paramString)
void SetDefaultValue(G4int defVal)
static G4String CategoryOf(const char *unitName)
static G4double ValueOf(const char *unitName)
void SetParameter(G4UIparameter *const newParameter)
void SetGuidance(const char *aGuidance)
static G4String UnitsList(const char *unitCategory)
void SetRange(const char *rs)
void AvailableForStates(G4ApplicationState s1)
G4int ApplyCommand(const char *aCommand)
static G4UImanager * GetUIpointer()
void SetDefaultValue(const char *theDefaultValue)
void SetGuidance(const char *theGuidance)
void SetParameterRange(const char *theRange)
void SetParameterCandidates(const char *theString)