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