Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/processes/electromagnetic/utils/src/G4EmLowEParametersMessenger.cc

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Diff markup

Differences between /processes/electromagnetic/utils/src/G4EmLowEParametersMessenger.cc (Version 11.3.0) and /processes/electromagnetic/utils/src/G4EmLowEParametersMessenger.cc (Version 10.4.p3)


  1 //                                                  1 
  2 // *******************************************    
  3 // * License and Disclaimer                       
  4 // *                                              
  5 // * The  Geant4 software  is  copyright of th    
  6 // * the Geant4 Collaboration.  It is provided    
  7 // * conditions of the Geant4 Software License    
  8 // * LICENSE and available at  http://cern.ch/    
  9 // * include a list of copyright holders.         
 10 // *                                              
 11 // * Neither the authors of this software syst    
 12 // * institutes,nor the agencies providing fin    
 13 // * work  make  any representation or  warran    
 14 // * regarding  this  software system or assum    
 15 // * use.  Please see the license in the file     
 16 // * for the full disclaimer and the limitatio    
 17 // *                                              
 18 // * This  code  implementation is the result     
 19 // * technical work of the GEANT4 collaboratio    
 20 // * By using,  copying,  modifying or  distri    
 21 // * any work based  on the software)  you  ag    
 22 // * use  in  resulting  scientific  publicati    
 23 // * acceptance of all terms of the Geant4 Sof    
 24 // *******************************************    
 25 //                                                
 26 // -------------------------------------------    
 27 //                                                
 28 // GEANT4 Class file                              
 29 //                                                
 30 // File name:     G4EmLowEParametersMessenger     
 31 //                                                
 32 // Author:        Vladimir Ivanchenko             
 33 //                                                
 34 // Creation date: 07-05-2019                      
 35 //                                                
 36 // -------------------------------------------    
 37 //                                                
 38                                                   
 39 //....oooOO0OOooo........oooOO0OOooo........oo    
 40 //....oooOO0OOooo........oooOO0OOooo........oo    
 41                                                   
 42 #include "G4EmLowEParametersMessenger.hh"         
 43 #include "G4EmFluoDirectory.hh"                   
 44 #include "G4UIcommand.hh"                         
 45 #include "G4UIparameter.hh"                       
 46 #include "G4UIcmdWithABool.hh"                    
 47 #include "G4UIcmdWithAnInteger.hh"                
 48 #include "G4UIcmdWithADouble.hh"                  
 49 #include "G4UIcmdWithADoubleAndUnit.hh"           
 50 #include "G4UIcmdWithAString.hh"                  
 51 #include "G4UIcmdWith3VectorAndUnit.hh"           
 52 #include "G4UImanager.hh"                         
 53 #include "G4EmLowEParameters.hh"                  
 54 #include <sstream>                                
 55                                                   
 56 //....oooOO0OOooo........oooOO0OOooo........oo    
 57                                                   
 58 G4EmLowEParametersMessenger::G4EmLowEParameter    
 59   : theParameters(ptr)                            
 60 {                                                 
 61   deCmd = new G4UIcmdWithABool("/process/em/fl    
 62   deCmd->SetGuidance("Enable/disable atomic de    
 63   deCmd->SetParameterName("fluoFlag",true);       
 64   deCmd->SetDefaultValue(false);                  
 65   deCmd->AvailableForStates(G4State_PreInit,G4    
 66   deCmd->SetToBeBroadcasted(false);               
 67                                                   
 68   dirFluoCmd = new G4UIcmdWithABool("/process/    
 69   dirFluoCmd->SetGuidance("Enable/disable usag    
 70   dirFluoCmd->SetParameterName("fluoBeardenFla    
 71   dirFluoCmd->SetDefaultValue(false);             
 72   dirFluoCmd->AvailableForStates(G4State_PreIn    
 73   dirFluoCmd->SetToBeBroadcasted(false);          
 74                                                   
 75   dirFluoCmd1 = new G4UIcmdWithABool("/process    
 76   dirFluoCmd1->SetGuidance("Enable/disable usa    
 77   dirFluoCmd1->SetParameterName("fluoANSTOFlag    
 78   dirFluoCmd1->SetDefaultValue(false);            
 79   dirFluoCmd1->AvailableForStates(G4State_PreI    
 80   dirFluoCmd1->SetToBeBroadcasted(false);         
 81                                                   
 82   auCmd = new G4UIcmdWithABool("/process/em/au    
 83   auCmd->SetGuidance("Enable/disable Auger ele    
 84   auCmd->SetParameterName("augerFlag",true);      
 85   auCmd->SetDefaultValue(false);                  
 86   auCmd->AvailableForStates(G4State_PreInit,G4    
 87   auCmd->SetToBeBroadcasted(false);               
 88                                                   
 89   auCascadeCmd = new G4UIcmdWithABool("/proces    
 90   auCascadeCmd->SetGuidance("Enable/disable si    
 91   auCascadeCmd->SetParameterName("augerCascade    
 92   auCascadeCmd->SetDefaultValue(false);           
 93   auCascadeCmd->AvailableForStates(G4State_Pre    
 94   auCascadeCmd->SetToBeBroadcasted(false);        
 95                                                   
 96   pixeCmd = new G4UIcmdWithABool("/process/em/    
 97   pixeCmd->SetGuidance("Enable/disable PIXE si    
 98   pixeCmd->SetParameterName("pixeFlag",true);     
 99   pixeCmd->SetDefaultValue(false);                
100   pixeCmd->AvailableForStates(G4State_PreInit,    
101   pixeCmd->SetToBeBroadcasted(false);             
102                                                   
103   dcutCmd = new G4UIcmdWithABool("/process/em/    
104   dcutCmd->SetGuidance("Enable/Disable usage o    
105   dcutCmd->SetParameterName("deexcut",true);      
106   dcutCmd->SetDefaultValue(false);                
107   dcutCmd->AvailableForStates(G4State_PreInit,    
108   dcutCmd->SetToBeBroadcasted(false);             
109                                                   
110   dnafCmd = new G4UIcmdWithABool("/process/dna    
111   dnafCmd->SetGuidance("Enable usage of fast s    
112   dnafCmd->SetParameterName("dnaf",true);         
113   dnafCmd->SetDefaultValue(false);                
114   dnafCmd->AvailableForStates(G4State_PreInit)    
115   dnafCmd->SetToBeBroadcasted(false);             
116                                                   
117   dnasCmd = new G4UIcmdWithABool("/process/dna    
118   dnasCmd->SetGuidance("Enable usage of Statio    
119   dnasCmd->SetParameterName("dnas",true);         
120   dnasCmd->SetDefaultValue(false);                
121   dnasCmd->AvailableForStates(G4State_PreInit)    
122   dnasCmd->SetToBeBroadcasted(false);             
123                                                   
124   dnamscCmd = new G4UIcmdWithABool("/process/d    
125   dnamscCmd->SetGuidance("Enable usage of e- m    
126   dnamscCmd->SetParameterName("dnamsc",true);     
127   dnamscCmd->SetDefaultValue(false);              
128   dnamscCmd->AvailableForStates(G4State_PreIni    
129   dnamscCmd->SetToBeBroadcasted(false);           
130                                                   
131   direFluoCmd = new G4UIcmdWithAString("/proce    
132   direFluoCmd->SetGuidance("The name of PIXE c    
133   direFluoCmd->SetParameterName("fluoDirectory    
134   direFluoCmd->SetCandidates("Default Bearden     
135   direFluoCmd->AvailableForStates(G4State_PreI    
136   direFluoCmd->SetToBeBroadcasted(false);         
137                                                   
138   pixeXsCmd = new G4UIcmdWithAString("/process    
139   pixeXsCmd->SetGuidance("The name of PIXE cro    
140   pixeXsCmd->SetParameterName("pixeXS",true);     
141   pixeXsCmd->SetCandidates("ECPSSR_Analytical     
142   pixeXsCmd->AvailableForStates(G4State_PreIni    
143   pixeXsCmd->SetToBeBroadcasted(false);           
144                                                   
145   pixeeXsCmd = new G4UIcmdWithAString("/proces    
146   pixeeXsCmd->SetGuidance("The name of PIXE cr    
147   pixeeXsCmd->SetParameterName("pixeEXS",true)    
148   pixeeXsCmd->SetCandidates("ECPSSR_Analytical    
149   pixeeXsCmd->AvailableForStates(G4State_PreIn    
150   pixeeXsCmd->SetToBeBroadcasted(false);          
151                                                   
152   livCmd = new G4UIcmdWithAString("/process/em    
153   livCmd->SetGuidance("The name of Livermore d    
154   livCmd->SetParameterName("livDir",true);        
155   livCmd->SetCandidates("livermore epics_2017"    
156   livCmd->AvailableForStates(G4State_PreInit);    
157   livCmd->SetToBeBroadcasted(false);              
158                                                   
159   dnaSolCmd = new G4UIcmdWithAString("/process    
160   dnaSolCmd->SetGuidance("The name of e- solva    
161   dnaSolCmd->SetParameterName("dnaSol",true);     
162   dnaSolCmd->SetCandidates("Ritchie1994 Terris    
163   dnaSolCmd->AvailableForStates(G4State_PreIni    
164   dnaSolCmd->SetToBeBroadcasted(false);           
165                                                   
166   dnaChemModel = new G4UIcmdWithAString("/proc    
167   dnaChemModel->SetGuidance("The name of DNA c    
168   dnaChemModel->SetParameterName("TimeStepMode    
169   dnaChemModel->SetCandidates("SBS IRT IRT_syn    
170   dnaChemModel->AvailableForStates(G4State_Pre    
171   dnaChemModel->SetToBeBroadcasted(false);        
172                                                   
173   meCmd = new G4UIcmdWithAString("/process/em/    
174   meCmd->SetGuidance("Activate MicroElec model    
175   meCmd->SetParameterName("MicroElec",true);      
176   meCmd->AvailableForStates(G4State_PreInit);     
177   meCmd->SetToBeBroadcasted(false);               
178                                                   
179   dnaCmd = new G4UIcommand("/process/em/AddDNA    
180   dnaCmd->SetGuidance("Activate DNA in a G4Reg    
181   dnaCmd->SetGuidance("  regName   : G4Region     
182   dnaCmd->SetGuidance("  dnaType   : DNA_opt0,    
183   dnaCmd->AvailableForStates(G4State_PreInit);    
184   dnaCmd->SetToBeBroadcasted(false);              
185                                                   
186   auto regName = new G4UIparameter("regName",'    
187   dnaCmd->SetParameter(regName);                  
188                                                   
189   auto type = new G4UIparameter("dnaType",'s',    
190   dnaCmd->SetParameter(type);                     
191   type->SetParameterCandidates("DNA_Opt0 DNA_O    
192                                                   
193   deexCmd = new G4UIcommand("/process/em/deexc    
194   deexCmd->SetGuidance("Set deexcitation flags    
195   deexCmd->SetGuidance("  regName   : G4Region    
196   deexCmd->SetGuidance("  flagFluo  : Fluoresc    
197   deexCmd->SetGuidance("  flagAuger : Auger");    
198   deexCmd->SetGuidance("  flagPIXE  : PIXE");     
199   deexCmd->AvailableForStates(G4State_PreInit,    
200   deexCmd->SetToBeBroadcasted(false);             
201                                                   
202   auto regNameD = new G4UIparameter("regName",    
203   deexCmd->SetParameter(regNameD);                
204                                                   
205   auto flagFluo = new G4UIparameter("flagFluo"    
206   deexCmd->SetParameter(flagFluo);                
207                                                   
208   auto flagAuger = new G4UIparameter("flagAuge    
209   deexCmd->SetParameter(flagAuger);               
210                                                   
211   auto flagPIXE = new G4UIparameter("flagPIXE"    
212   deexCmd->SetParameter(flagPIXE);                
213                                                   
214 }                                                 
215                                                   
216 //....oooOO0OOooo........oooOO0OOooo........oo    
217                                                   
218 G4EmLowEParametersMessenger::~G4EmLowEParamete    
219 {                                                 
220   delete deCmd;                                   
221   delete dirFluoCmd;                              
222   delete dirFluoCmd1;                             
223   delete auCmd;                                   
224   delete auCascadeCmd;                            
225   delete pixeCmd;                                 
226   delete dcutCmd;                                 
227   delete dnafCmd;                                 
228   delete dnasCmd;                                 
229   delete dnamscCmd;                               
230   delete pixeXsCmd;                               
231   delete pixeeXsCmd;                              
232   delete livCmd;                                  
233   delete dnaSolCmd;                               
234   delete dnaChemModel;                            
235   delete direFluoCmd;                             
236   delete meCmd;                                   
237   delete dnaCmd;                                  
238   delete deexCmd;                                 
239 }                                                 
240                                                   
241 //....oooOO0OOooo........oooOO0OOooo........oo    
242                                                   
243 void G4EmLowEParametersMessenger::SetNewValue(    
244                                                   
245 {                                                 
246   G4bool physicsModified = false;                 
247   if (command == deCmd) {                         
248     theParameters->SetFluo(deCmd->GetNewBoolVa    
249     physicsModified = true;                       
250   } else if (command == dirFluoCmd) {             
251     theParameters->SetBeardenFluoDir(dirFluoCm    
252     physicsModified = true;                       
253   } else if (command == dirFluoCmd1) {            
254     theParameters->SetANSTOFluoDir(dirFluoCmd1    
255     physicsModified = true;                       
256   } else if (command == auCmd) {                  
257     theParameters->SetAuger(auCmd->GetNewBoolV    
258     physicsModified = true;                       
259   } else if (command == auCascadeCmd) {           
260     theParameters->SetAuger(auCascadeCmd->GetN    
261     physicsModified = true;                       
262   } else if (command == pixeCmd) {                
263     theParameters->SetPixe(pixeCmd->GetNewBool    
264     physicsModified = true;                       
265   } else if (command == dcutCmd) {                
266     theParameters->SetDeexcitationIgnoreCut(dc    
267     physicsModified = true;                       
268   } else if (command == dnafCmd) {                
269     theParameters->SetDNAFast(dnafCmd->GetNewB    
270   } else if (command == dnasCmd) {                
271     theParameters->SetDNAStationary(dnasCmd->G    
272   } else if (command == dnamscCmd) {              
273     theParameters->SetDNAElectronMsc(dnamscCmd    
274   } else if (command == dnaSolCmd) {              
275     G4DNAModelSubType ttt = fDNAUnknownModel;     
276     if(newValue == "Ritchie1994") {               
277       ttt = fRitchie1994eSolvation;               
278     } else if(newValue == "Terrisol1990") {       
279       ttt = fTerrisol1990eSolvation;              
280     } else if (newValue == "Meesungnoen2002")     
281       ttt = fMeesungnoen2002eSolvation;           
282     } else if (newValue == "Meesungnoen2002_am    
283       ttt = fMeesungnoensolid2002eSolvation;      
284     } else if (newValue == "Kreipl2009") {        
285       ttt = fKreipl2009eSolvation;                
286     }                                             
287     theParameters->SetDNAeSolvationSubType(ttt    
288   } else if (command == dnaChemModel) {           
289     G4ChemTimeStepModel stepM = G4ChemTimeStep    
290     if(newValue == "IRT") {                       
291       stepM = G4ChemTimeStepModel::IRT;           
292     } else if(newValue == "SBS") {                
293       stepM = G4ChemTimeStepModel::SBS;           
294     } else if (newValue == "IRT_syn") {           
295       stepM = G4ChemTimeStepModel::IRT_syn;       
296     }                                             
297     theParameters->SetChemTimeStepModel(stepM)    
298   } else if (command == direFluoCmd) {            
299     G4EmFluoDirectory ttt = fluoDefault;          
300     if(newValue == "Bearden") { ttt = fluoBear    
301     else if(newValue == "ANSTO") { ttt = fluoA    
302     else if(newValue == "XDB_EADL") { ttt = fl    
303     theParameters->SetFluoDirectory(ttt);         
304   } else if (command == pixeXsCmd) {              
305     theParameters->SetPIXECrossSectionModel(ne    
306     physicsModified = true;                       
307   } else if (command == pixeeXsCmd) {             
308     theParameters->SetPIXEElectronCrossSection    
309     physicsModified = true;                       
310   } else if (command == livCmd) {                 
311     theParameters->SetLivermoreDataDir(newValu    
312   } else if (command == meCmd) {                  
313     theParameters->AddMicroElec(newValue);        
314   } else if (command == dnaCmd) {                 
315     G4String s1(""),s2("");                       
316     std::istringstream is(newValue);              
317     is >> s1 >> s2;                               
318     theParameters->AddDNA(s1, s2);                
319   } else if (command == deexCmd) {                
320     G4String s1 (""), s2(""), s3(""), s4("");     
321     G4bool b2(false), b3(false), b4(false);       
322     std::istringstream is(newValue);              
323     is >> s1 >> s2 >> s3 >> s4;                   
324     if(s2 == "true") { b2 = true; }               
325     if(s3 == "true") { b3 = true; }               
326     if(s4 == "true") { b4 = true; }               
327     theParameters->SetDeexActiveRegion(s1,b2,b    
328     physicsModified = true;                       
329   }                                               
330                                                   
331   if(physicsModified) {                           
332     G4UImanager::GetUIpointer()->ApplyCommand(    
333   }                                               
334 }                                                 
335                                                   
336 //....oooOO0OOooo........oooOO0OOooo........oo    
337