Ignore:
Timestamp:
Apr 6, 2009, 12:21:12 PM (15 years ago)
Author:
garnier
Message:

update processes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/processes/electromagnetic/utils/src/G4EnergyLossMessenger.cc

    r819 r961  
    2525//
    2626//
    27 // $Id: G4EnergyLossMessenger.cc,v 1.29 2007/06/11 14:56:51 vnivanch Exp $
    28 // GEANT4 tag $Name: geant4-09-01-patch-02 $
     27// $Id: G4EnergyLossMessenger.cc,v 1.37 2009/02/18 14:43:27 vnivanch Exp $
     28// GEANT4 tag $Name: geant4-09-02-ref-02 $
    2929//
    3030// -------------------------------------------------------------------
     
    4949// 16-03-07 modify /process/eLoss/minsubsec command (V.Ivanchenko)
    5050// 18-05-07 add /process/msc directory and commands (V.Ivanchenko)
     51// 11-03-08 add /process/em directory and commands (V.Ivanchenko)
    5152//
    5253// -------------------------------------------------------------------
     
    8485  mscDirectory = new G4UIdirectory("/process/msc/");
    8586  mscDirectory->SetGuidance("Commands for EM scattering processes.");
     87  emDirectory = new G4UIdirectory("/process/em/");
     88  emDirectory->SetGuidance("General commands for EM processes.");
    8689
    8790  RndmStepCmd = new G4UIcmdWithABool("/process/eLoss/rndmStep",this);
     
    146149
    147150  IntegCmd = new G4UIcmdWithABool("/process/eLoss/integral",this);
    148   IntegCmd->SetGuidance("Switch true/false the integration of cross section over step.");
     151  IntegCmd->SetGuidance("Switch true/false the integral option");
    149152  IntegCmd->SetParameterName("integ",true);
    150153  IntegCmd->SetDefaultValue(true);
     
    152155
    153156  rangeCmd = new G4UIcmdWithABool("/process/eLoss/CSDARange",this);
    154   rangeCmd->SetGuidance("Switch true/false the precise range calculation.");
     157  rangeCmd->SetGuidance("Switch true/false the CSDA range calculation");
    155158  rangeCmd->SetParameterName("range",true);
    156159  rangeCmd->SetDefaultValue(true);
     
    158161
    159162  lpmCmd = new G4UIcmdWithABool("/process/eLoss/LPM",this);
    160   lpmCmd->SetGuidance("Switch true/false the LPM effect calculation.");
     163  lpmCmd->SetGuidance("The flag of the LPM effect calculation");
    161164  lpmCmd->SetParameterName("lpm",true);
    162165  lpmCmd->SetDefaultValue(true);
    163166  lpmCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
    164167
     168  splCmd = new G4UIcmdWithABool("/process/em/spline",this);
     169  splCmd->SetGuidance("The flag of usage spline for Physics Vectors");
     170  splCmd->SetParameterName("spl",true);
     171  splCmd->SetDefaultValue(false);
     172  splCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
     173
     174  aplCmd = new G4UIcmdWithABool("/process/em/applyCuts",this);
     175  aplCmd->SetGuidance("The flag to Apply Cuts for gamma processes");
     176  aplCmd->SetParameterName("apl",true);
     177  aplCmd->SetDefaultValue(false);
     178  aplCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
     179
     180  deexCmd = new G4UIcommand("/process/em/deexcitation",this);
     181  deexCmd->SetGuidance("Set deexcitation flag per process and G4Region.");
     182  deexCmd->SetGuidance("  procName  : process name");
     183  deexCmd->SetGuidance("  flag      : flag");
     184  deexCmd->SetGuidance("  regName   : G4Region name");
     185
     186  G4UIparameter* pName = new G4UIparameter("pName",'s',false);
     187  deexCmd->SetParameter(pName);
     188
     189  G4UIparameter* flag = new G4UIparameter("flag",'s',false);
     190  deexCmd->SetParameter(flag);
     191
     192  G4UIparameter* regName = new G4UIparameter("regName",'s',false);
     193  deexCmd->SetParameter(regName);
     194
    165195  dedxCmd = new G4UIcmdWithAnInteger("/process/eLoss/binsDEDX",this);
    166   dedxCmd->SetGuidance("Set number of bins for DEDX tables.");
     196  dedxCmd->SetGuidance("Set number of bins for DEDX tables");
    167197  dedxCmd->SetParameterName("binsDEDX",true);
    168198  dedxCmd->SetDefaultValue(120);
     
    170200
    171201  lamCmd = new G4UIcmdWithAnInteger("/process/eLoss/binsLambda",this);
    172   lamCmd->SetGuidance("Set number of bins for Lambda tables.");
     202  lamCmd->SetGuidance("Set number of bins for Lambda tables");
    173203  lamCmd->SetParameterName("binsL",true);
    174204  lamCmd->SetDefaultValue(120);
     
    176206
    177207  verCmd = new G4UIcmdWithAnInteger("/process/eLoss/verbose",this);
    178   verCmd->SetGuidance("Set verbose level for EM physics.");
     208  verCmd->SetGuidance("Set verbose level for EM physics");
    179209  verCmd->SetParameterName("verb",true);
    180210  verCmd->SetDefaultValue(1);
    181211  verCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
    182212
     213  ver1Cmd = new G4UIcmdWithAnInteger("/process/em/verbose",this);
     214  ver1Cmd->SetGuidance("Set verbose level for EM physics");
     215  ver1Cmd->SetParameterName("verb1",true);
     216  ver1Cmd->SetDefaultValue(1);
     217  ver1Cmd->AvailableForStates(G4State_PreInit,G4State_Idle);
     218
    183219  lllCmd = new G4UIcmdWithADouble("/process/eLoss/linLossLimit",this);
    184   lllCmd->SetGuidance("Set linearLossLimit parameter.");
     220  lllCmd->SetGuidance("Set linearLossLimit parameter");
    185221  lllCmd->SetParameterName("linlim",true);
    186222  lllCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
    187223
    188   labCmd = new G4UIcmdWithADouble("/process/eLoss/lambdaFactor",this);
    189   labCmd->SetGuidance("Set lambdaFactor parameter.");
     224  labCmd = new G4UIcmdWithADouble("/process/eLoss/LambdaFactor",this);
     225  labCmd->SetGuidance("Set lambdaFactor parameter for integral option");
    190226  labCmd->SetParameterName("Fl",true);
    191227  labCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
    192228
    193229  mscCmd = new G4UIcmdWithAString("/process/msc/StepLimit",this);
    194   mscCmd->SetGuidance("Set msc step limitation type.");
     230  mscCmd->SetGuidance("Set msc step limitation type");
    195231  mscCmd->SetParameterName("StepLim",true);
    196232  mscCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
    197233
    198234  latCmd = new G4UIcmdWithABool("/process/msc/LateralDisplacement",this);
    199   latCmd->SetGuidance("Switch true/false sampling of latra dislacent.");
     235  latCmd->SetGuidance("Set flag of sampling of lateral displacement");
    200236  latCmd->SetParameterName("lat",true);
    201237  latCmd->SetDefaultValue(true);
     
    203239
    204240  frCmd = new G4UIcmdWithADouble("/process/msc/RangeFactor",this);
    205   frCmd->SetGuidance("Set RangeFactor parameter for msc process.");
     241  frCmd->SetGuidance("Set RangeFactor parameter for msc processes");
    206242  frCmd->SetParameterName("Fr",true);
    207243  frCmd->SetRange("Fr>0");
     
    210246
    211247  fgCmd = new G4UIcmdWithADouble("/process/msc/GeomFactor",this);
    212   fgCmd->SetGuidance("Set GeomFactor parameter for msc process.");
     248  fgCmd->SetGuidance("Set GeomFactor parameter for msc processes");
    213249  fgCmd->SetParameterName("Fg",true);
    214250  fgCmd->SetRange("Fg>0");
     
    217253
    218254  skinCmd = new G4UIcmdWithADouble("/process/msc/Skin",this);
    219   skinCmd->SetGuidance("Set skin parameter for multiple scattering.");
     255  skinCmd->SetGuidance("Set skin parameter for msc processes");
    220256  skinCmd->SetParameterName("skin",true);
    221257  skinCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
    222258
     259  angCmd = new G4UIcmdWithADoubleAndUnit("/process/msc/ThetaLimit",this);
     260  angCmd->SetGuidance("Set the limit on the polar angle");
     261  angCmd->SetParameterName("theta",true);
     262  angCmd->SetUnitCategory("Angle");
     263  angCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
    223264}
    224265
     
    233274  delete MinSubSecCmd;
    234275  delete StepFuncCmd;
     276  delete deexCmd;
    235277  delete eLossDirectory;
    236278  delete mscDirectory;
     279  delete emDirectory;
    237280  delete MinEnCmd;
    238281  delete MaxEnCmd;
     
    240283  delete rangeCmd;
    241284  delete lpmCmd;
     285  delete splCmd;
     286  delete aplCmd;
    242287  delete latCmd;
    243288  delete verCmd;
     289  delete ver1Cmd;
    244290  delete mscCmd;
    245291  delete dedxCmd;
     
    250296  delete labCmd;
    251297  delete skinCmd;
     298  delete angCmd;
    252299}
    253300
     
    289336  }
    290337
     338  if (command == deexCmd) {
     339    G4String s1 (""), s2(""), s3("");
     340    G4bool b = false;
     341    std::istringstream is(newValue);
     342    is >> s1 >> s2 >> s3;
     343    if(s2 == "true") b = true;
     344    opt->ActivateDeexcitation(s1,b,s3);
     345  }
     346
    291347  if (command == mscCmd) {
    292348    if(newValue == "Minimal")
     
    317373  } 
    318374
    319   if (command == IntegCmd)
     375  if (command == IntegCmd) {
    320376    opt->SetIntegral(IntegCmd->GetNewBoolValue(newValue));
    321  
     377  }
    322378  if (command == rangeCmd) {
    323379    opt->SetBuildCSDARange(rangeCmd->GetNewBoolValue(newValue));
     
    330386  }
    331387
     388  if (command == splCmd) {
     389    opt->SetSplineFlag(splCmd->GetNewBoolValue(newValue));
     390    G4UImanager::GetUIpointer()->ApplyCommand("/run/physicsModified");
     391  }
     392
     393  if (command == aplCmd) {
     394    opt->SetApplyCuts(aplCmd->GetNewBoolValue(newValue));
     395  }
     396
    332397  if (command == latCmd) {
    333398    opt->SetMscLateralDisplacement(latCmd->GetNewBoolValue(newValue));
     
    335400  }
    336401
    337   if (command == verCmd)
     402  if (command == verCmd) {
    338403    opt->SetVerbose(verCmd->GetNewIntValue(newValue));
    339 
    340   if (command == lllCmd)
     404  }
     405  if (command == ver1Cmd) {
     406    opt->SetVerbose(ver1Cmd->GetNewIntValue(newValue));
     407  }
     408  if (command == lllCmd) {
    341409    opt->SetLinearLossLimit(lllCmd->GetNewDoubleValue(newValue));
    342 
    343   if (command == labCmd)
     410  }
     411  if (command == labCmd) {
    344412    opt->SetLambdaFactor(labCmd->GetNewDoubleValue(newValue));
    345  
     413  }
    346414  if (command == skinCmd) {
    347415    opt->SetSkin(skinCmd->GetNewDoubleValue(newValue));
     
    364432    G4UImanager::GetUIpointer()->ApplyCommand("/run/physicsModified");
    365433  }
     434  if (command == angCmd) {
     435    opt->SetPolarAngleLimit(angCmd->GetNewDoubleValue(newValue));
     436    G4UImanager::GetUIpointer()->ApplyCommand("/run/physicsModified");
     437  } 
    366438}
    367439
Note: See TracChangeset for help on using the changeset viewer.