62 : theParameters(ptr)
63{
64 emDirectory = new G4UIdirectory("/process/em/", false);
65 emDirectory->SetGuidance("General commands for EM processes.");
66 eLossDirectory = new G4UIdirectory("/process/eLoss/", false);
67 eLossDirectory->SetGuidance("Commands for energy loss processes.");
68 mscDirectory = new G4UIdirectory("/process/msc/", false);
69 mscDirectory->SetGuidance("Commands for EM scattering processes.");
70 gconvDirectory = new G4UIdirectory("/process/gconv/", false);
71 gconvDirectory->SetGuidance("Commands for EM gamma conversion BH5D model.");
72 dnaDirectory = new G4UIdirectory("/process/dna/", false);
73 dnaDirectory->SetGuidance("Commands for DNA processes.");
74
75 flucCmd = new G4UIcmdWithABool("/process/eLoss/fluct",this);
76 flucCmd->SetGuidance("Enable/disable energy loss fluctuations.");
77 flucCmd->SetParameterName("choice",true);
78 flucCmd->SetDefaultValue(true);
80 flucCmd->SetToBeBroadcasted(false);
81
82 rangeCmd = new G4UIcmdWithABool("/process/eLoss/CSDARange",this);
83 rangeCmd->SetGuidance("Enable/disable CSDA range calculation");
84 rangeCmd->SetParameterName("range",true);
85 rangeCmd->SetDefaultValue(false);
87 rangeCmd->SetToBeBroadcasted(false);
88
89 lpmCmd = new G4UIcmdWithABool("/process/eLoss/LPM",this);
90 lpmCmd->SetGuidance("Enable/disable LPM effect calculation");
91 lpmCmd->SetParameterName("lpm",true);
92 lpmCmd->SetDefaultValue(true);
94 lpmCmd->SetToBeBroadcasted(false);
95
96 rsCmd = new G4UIcmdWithABool("/process/eLoss/useCutAsFinalRange",this);
97 rsCmd->SetGuidance("Enable/disable use of cut in range as a final range");
98 rsCmd->SetParameterName("choice",true);
99 rsCmd->SetDefaultValue(false);
101 rsCmd->SetToBeBroadcasted(false);
102
103 aplCmd = new G4UIcmdWithABool("/process/em/applyCuts",this);
104 aplCmd->SetGuidance("Enable/disable applying cuts for gamma processes");
105 aplCmd->SetParameterName("apl",true);
106 aplCmd->SetDefaultValue(false);
108 aplCmd->SetToBeBroadcasted(false);
109
110 intCmd = new G4UIcmdWithABool("/process/em/integral",this);
111 intCmd->SetGuidance("Enable/disable integral method.");
112 intCmd->SetParameterName("choice",true);
113 intCmd->SetDefaultValue(true);
115 intCmd->SetToBeBroadcasted(false);
116
117 latCmd = new G4UIcmdWithABool("/process/msc/LateralDisplacement",this);
118 latCmd->SetGuidance("Enable/disable sampling of lateral displacement");
119 latCmd->SetParameterName("lat",true);
120 latCmd->SetDefaultValue(true);
122 latCmd->SetToBeBroadcasted(false);
123
124 lat96Cmd = new G4UIcmdWithABool("/process/msc/LateralDisplacementAlg96",this);
125 lat96Cmd->SetGuidance("Enable/disable sampling of lateral displacement");
126 lat96Cmd->SetParameterName("lat96",true);
127 lat96Cmd->SetDefaultValue(false);
129 lat96Cmd->SetToBeBroadcasted(false);
130
131 mulatCmd = new G4UIcmdWithABool("/process/msc/MuHadLateralDisplacement",this);
132 mulatCmd->SetGuidance("Enable/disable sampling of lateral displacement for muons and hadrons");
133 mulatCmd->SetParameterName("mulat",true);
134 mulatCmd->SetDefaultValue(true);
136 mulatCmd->SetToBeBroadcasted(false);
137
138 delCmd = new G4UIcmdWithABool("/process/eLoss/UseAngularGenerator",this);
139 delCmd->SetGuidance("Enable usage of angular generator for ionisation");
140 delCmd->SetParameterName("del",true);
141 delCmd->SetDefaultValue(false);
143 delCmd->SetToBeBroadcasted(false);
144
145 mottCmd = new G4UIcmdWithABool("/process/msc/UseMottCorrection",this);
146 mottCmd->SetGuidance("Enable usage of Mott corrections for e- elastic scattering");
147 mottCmd->SetParameterName("mott",true);
148 mottCmd->SetDefaultValue(false);
150 mottCmd->SetToBeBroadcasted(false);
151
152 birksCmd = new G4UIcmdWithABool("/process/em/UseG4EmSaturation",this);
153 birksCmd->SetGuidance("Enable usage of built-in Birks saturation");
154 birksCmd->SetParameterName("birks",true);
155 birksCmd->SetDefaultValue(false);
157 birksCmd->SetToBeBroadcasted(false);
158
159 sharkCmd = new G4UIcmdWithABool("/process/em/UseGeneralProcess",this);
160 sharkCmd->SetGuidance("Enable gamma, e+- general process");
161 sharkCmd->SetParameterName("gen",true);
162 sharkCmd->SetDefaultValue(false);
164 sharkCmd->SetToBeBroadcasted(false);
165
166 poCmd = new G4UIcmdWithABool("/process/em/Polarisation",this);
167 poCmd->SetGuidance("Enable polarisation");
169 poCmd->SetToBeBroadcasted(false);
170
171 sampleTCmd = new G4UIcmdWithABool("/process/em/enableSamplingTable",this);
172 sampleTCmd->SetGuidance("Enable usage of sampling table for secondary generation");
173 sampleTCmd->SetParameterName("sampleT",true);
174 sampleTCmd->SetDefaultValue(false);
176 sampleTCmd->SetToBeBroadcasted(false);
177
178 icru90Cmd = new G4UIcmdWithABool("/process/eLoss/UseICRU90",this);
179 icru90Cmd->SetGuidance("Enable usage of ICRU90 stopping powers");
180 icru90Cmd->SetParameterName("icru90",true);
181 icru90Cmd->SetDefaultValue(false);
183 icru90Cmd->SetToBeBroadcasted(false);
184
185 mudatCmd = new G4UIcmdWithABool("/process/em/MuDataFromFile",this);
186 mudatCmd->SetGuidance("Enable usage of muon data from file");
187 mudatCmd->SetParameterName("mudat",true);
188 mudatCmd->SetDefaultValue(false);
190 mudatCmd->SetToBeBroadcasted(false);
191
192 peKCmd = new G4UIcmdWithABool("/process/em/PhotoeffectBelowKShell",this);
193 peKCmd->SetGuidance("Enable sampling of photoeffect below K-shell");
194 peKCmd->SetParameterName("peK",true);
195 peKCmd->SetDefaultValue(true);
197 peKCmd->SetToBeBroadcasted(false);
198
199 mscPCmd = new G4UIcmdWithABool("/process/msc/PositronCorrection",this);
200 mscPCmd->SetGuidance("Enable msc positron correction");
201 mscPCmd->SetParameterName("mscPC",true);
202 mscPCmd->SetDefaultValue(true);
204 mscPCmd->SetToBeBroadcasted(false);
205
206 pepicsCmd = new G4UIcmdWithABool("/process/em/UseEPICS2017XS",this);
207 pepicsCmd->SetGuidance("Use EPICS2017 data for gamma x-ections");
208 pepicsCmd->SetParameterName("pepics",true);
209 pepicsCmd->SetDefaultValue(false);
211 pepicsCmd->SetToBeBroadcasted(false);
212
213 f3gCmd = new G4UIcmdWithABool("/process/em/3GammaAnnihilationOnFly",this);
214 f3gCmd->SetGuidance("Enable/disable 3 gamma annihilation on fly");
215 f3gCmd->SetParameterName("f3gamma",true);
216 f3gCmd->SetDefaultValue(false);
218 f3gCmd->SetToBeBroadcasted(false);
219
220 minEnCmd = new G4UIcmdWithADoubleAndUnit("/process/eLoss/minKinEnergy",this);
221 minEnCmd->SetGuidance("Set the min kinetic energy for EM tables");
222 minEnCmd->SetParameterName("emin",true);
223 minEnCmd->SetUnitCategory("Energy");
225 minEnCmd->SetToBeBroadcasted(false);
226
227 maxEnCmd = new G4UIcmdWithADoubleAndUnit("/process/eLoss/maxKinEnergy",this);
228 maxEnCmd->SetGuidance("Set the max kinetic energy for EM tables");
229 maxEnCmd->SetParameterName("emax",true);
230 maxEnCmd->SetUnitCategory("Energy");
232 maxEnCmd->SetToBeBroadcasted(false);
233
234 cenCmd = new G4UIcmdWithADoubleAndUnit("/process/eLoss/maxKinEnergyCSDA",this);
235 cenCmd->SetGuidance("Set the max kinetic energy for CSDA table");
236 cenCmd->SetParameterName("emaxCSDA",true);
237 cenCmd->SetUnitCategory("Energy");
239 cenCmd->SetToBeBroadcasted(false);
240
241 max5DCmd = new G4UIcmdWithADoubleAndUnit("/process/em/max5DMuPairEnergy",this);
242 max5DCmd->SetGuidance("Set the max kinetic energy for 5D muon pair production");
243 max5DCmd->SetParameterName("emax5D",true);
244 max5DCmd->SetUnitCategory("Energy");
246 max5DCmd->SetToBeBroadcasted(false);
247
248 lowEnCmd = new G4UIcmdWithADoubleAndUnit("/process/em/lowestElectronEnergy",this);
249 lowEnCmd->SetGuidance("Set the lowest kinetic energy for e+-");
250 lowEnCmd->SetParameterName("elow",true);
251 lowEnCmd->SetUnitCategory("Energy");
253 lowEnCmd->SetToBeBroadcasted(false);
254
255 lowhEnCmd = new G4UIcmdWithADoubleAndUnit("/process/em/lowestMuHadEnergy",this);
256 lowhEnCmd->SetGuidance("Set the lowest kinetic energy for muons and hadrons");
257 lowhEnCmd->SetParameterName("elowh",true);
258 lowhEnCmd->SetUnitCategory("Energy");
260 lowhEnCmd->SetToBeBroadcasted(false);
261
262 lowEn3Cmd = new G4UIcmdWithADoubleAndUnit("/process/em/lowestTripletEnergy",this);
263 lowEn3Cmd->SetGuidance("Set the lowest kinetic energy for triplet production");
264 lowEn3Cmd->SetParameterName("elow3",true);
265 lowEn3Cmd->SetUnitCategory("Energy");
267 lowEn3Cmd->SetToBeBroadcasted(false);
268
269 lllCmd = new G4UIcmdWithADouble("/process/eLoss/linLossLimit",this);
270 lllCmd->SetGuidance("Set linearLossLimit parameter");
271 lllCmd->SetParameterName("linlim",true);
273 lllCmd->SetToBeBroadcasted(false);
274
275 brCmd = new G4UIcmdWithADoubleAndUnit("/process/eLoss/bremThreshold",this);
276 brCmd->SetGuidance("Set e+- bremsstrahlung energy threshold");
277 brCmd->SetParameterName("emaxBrem",true);
278 brCmd->SetUnitCategory("Energy");
280 brCmd->SetToBeBroadcasted(false);
281
282 br1Cmd = new G4UIcmdWithADoubleAndUnit("/process/eLoss/bremMuHadThreshold",this);
283 br1Cmd->SetGuidance("Set muon/hadron bremsstrahlung energy threshold");
284 br1Cmd->SetParameterName("emaxMuHadBrem",true);
285 br1Cmd->SetUnitCategory("Energy");
287 br1Cmd->SetToBeBroadcasted(false);
288
289 labCmd = new G4UIcmdWithADouble("/process/eLoss/LambdaFactor",this);
290 labCmd->SetGuidance("Set lambdaFactor parameter for integral option");
291 labCmd->SetParameterName("Fl",true);
293 labCmd->SetToBeBroadcasted(false);
294
295 mscfCmd = new G4UIcmdWithADouble("/process/msc/FactorForAngleLimit",this);
296 mscfCmd->SetGuidance("Set factor for computation of a limit for -t (invariant transfer)");
297 mscfCmd->SetParameterName("Fact",true);
298 mscfCmd->SetRange("Fact>0");
299 mscfCmd->SetDefaultValue(1.);
301 mscfCmd->SetToBeBroadcasted(false);
302
303 angCmd = new G4UIcmdWithADoubleAndUnit("/process/msc/ThetaLimit",this);
304 angCmd->SetGuidance("Set the limit on the polar angle for msc and single scattering");
305 angCmd->SetParameterName("theta",true);
306 angCmd->SetUnitCategory("Angle");
308 angCmd->SetToBeBroadcasted(false);
309
310 msceCmd = new G4UIcmdWithADoubleAndUnit("/process/msc/EnergyLimit",this);
311 msceCmd->SetGuidance("Set the upper energy limit for msc");
312 msceCmd->SetParameterName("mscE",true);
313 msceCmd->SetUnitCategory("Energy");
315 msceCmd->SetToBeBroadcasted(false);
316
317 nielCmd = new G4UIcmdWithADoubleAndUnit("/process/em/MaxEnergyNIEL",this);
318 nielCmd->SetGuidance("Set the upper energy limit for NIEL");
319 nielCmd->SetParameterName("niel",true);
320 nielCmd->SetUnitCategory("Energy");
322 nielCmd->SetToBeBroadcasted(false);
323
324 frCmd = new G4UIcmdWithADouble("/process/msc/RangeFactor",this);
325 frCmd->SetGuidance("Set RangeFactor for msc processes of e+-");
326 frCmd->SetParameterName("Fr",true);
327 frCmd->SetRange("Fr>0");
328 frCmd->SetDefaultValue(0.04);
330 frCmd->SetToBeBroadcasted(false);
331
332 fr1Cmd = new G4UIcmdWithADouble("/process/msc/RangeFactorMuHad",this);
333 fr1Cmd->SetGuidance("Set RangeFactor for msc processes of muons/hadrons");
334 fr1Cmd->SetParameterName("Fr1",true);
335 fr1Cmd->SetRange("Fr1>0");
336 fr1Cmd->SetDefaultValue(0.2);
338 fr1Cmd->SetToBeBroadcasted(false);
339
340 fgCmd = new G4UIcmdWithADouble("/process/msc/GeomFactor",this);
341 fgCmd->SetGuidance("Set GeomFactor parameter for msc processes");
342 fgCmd->SetParameterName("Fg",true);
343 fgCmd->SetRange("Fg>0");
344 fgCmd->SetDefaultValue(2.5);
346 fgCmd->SetToBeBroadcasted(false);
347
348 skinCmd = new G4UIcmdWithADouble("/process/msc/Skin",this);
349 skinCmd->SetGuidance("Set skin parameter for msc processes");
350 skinCmd->SetParameterName("skin",true);
352 skinCmd->SetToBeBroadcasted(false);
353
354 screCmd = new G4UIcmdWithADouble("/process/msc/ScreeningFactor",this);
355 screCmd->SetGuidance("Set screening factor");
356 screCmd->SetParameterName("screen",true);
358 screCmd->SetToBeBroadcasted(false);
359
360 safCmd = new G4UIcmdWithADouble("/process/msc/SafetyFactor",this);
361 safCmd->SetGuidance("Set safety factor");
362 safCmd->SetParameterName("fsafe",true);
364 safCmd->SetToBeBroadcasted(false);
365
366 llimCmd = new G4UIcmdWithADoubleAndUnit("/process/msc/LambdaLimit",this);
367 llimCmd->SetGuidance("Set the upper energy limit for NIEL");
368 llimCmd->SetParameterName("ll",true);
369 llimCmd->SetUnitCategory("Length");
371 llimCmd->SetToBeBroadcasted(false);
372
373 amCmd = new G4UIcmdWithAnInteger("/process/em/binsPerDecade",this);
374 amCmd->SetGuidance("Set number of bins per decade for EM tables");
375 amCmd->SetParameterName("bins",true);
376 amCmd->SetDefaultValue(7);
378 amCmd->SetToBeBroadcasted(false);
379
380 verCmd = new G4UIcmdWithAnInteger("/process/eLoss/verbose",this);
381 verCmd->SetGuidance("Set verbose level for EM physics");
382 verCmd->SetParameterName("verb",true);
383 verCmd->SetDefaultValue(1);
385 verCmd->SetToBeBroadcasted(false);
386
387 ver1Cmd = new G4UIcmdWithAnInteger("/process/em/verbose",this);
388 ver1Cmd->SetGuidance("Set verbose level for EM physics");
389 ver1Cmd->SetParameterName("verb1",true);
390 ver1Cmd->SetDefaultValue(1);
392 ver1Cmd->SetToBeBroadcasted(false);
393
394 ver2Cmd = new G4UIcmdWithAnInteger("/process/em/workerVerbose",this);
395 ver2Cmd->SetGuidance("Set worker verbose level for EM physics");
396 ver2Cmd->SetParameterName("verb2",true);
397 ver2Cmd->SetDefaultValue(0);
399 ver2Cmd->SetToBeBroadcasted(false);
400
401 nFreeCmd = new G4UIcmdWithAnInteger("/process/em/nForFreeVector",this);
402 nFreeCmd->SetGuidance("Set number for logarithmic bin search algorithm");
403 nFreeCmd->SetParameterName("nFree",true);
404 nFreeCmd->SetDefaultValue(2);
406 nFreeCmd->SetToBeBroadcasted(false);
407
408 transWithMscCmd = new G4UIcmdWithAString("/process/em/transportationWithMsc",this);
409 transWithMscCmd->SetGuidance("Enable/disable the G4TransportationWithMsc process");
410 transWithMscCmd->SetParameterName("trans",true);
411 transWithMscCmd->SetCandidates("Disabled Enabled MultipleSteps");
413 transWithMscCmd->SetToBeBroadcasted(false);
414
415 mscCmd = new G4UIcmdWithAString("/process/msc/StepLimit",this);
416 mscCmd->SetGuidance("Set msc step limitation type");
417 mscCmd->SetParameterName("StepLim",true);
418 mscCmd->SetCandidates("Minimal UseSafety UseSafetyPlus UseDistanceToBoundary");
420 mscCmd->SetToBeBroadcasted(false);
421
422 msc1Cmd = new G4UIcmdWithAString("/process/msc/StepLimitMuHad",this);
423 msc1Cmd->SetGuidance("Set msc step limitation type for muons/hadrons");
424 msc1Cmd->SetParameterName("StepLim1",true);
425 msc1Cmd->SetCandidates("Minimal UseSafety UseSafetyPlus UseDistanceToBoundary");
427 msc1Cmd->SetToBeBroadcasted(false);
428
429 dumpCmd = new G4UIcommand("/process/em/printParameters",this);
430 dumpCmd->SetGuidance("Print all EM parameters.");
432 dumpCmd->SetToBeBroadcasted(false);
433
434 nffCmd = new G4UIcmdWithAString("/process/em/setNuclearFormFactor",this);
435 nffCmd->SetGuidance("Define type of nuclear form-factor");
436 nffCmd->SetParameterName("NucFF",true);
437 nffCmd->SetCandidates("None Exponential Gaussian Flat");
439 nffCmd->SetToBeBroadcasted(false);
440
441 ssCmd = new G4UIcmdWithAString("/process/em/setSingleScattering",this);
442 ssCmd->SetGuidance("Define type of e+- single scattering model");
443 ssCmd->SetParameterName("SS",true);
444 ssCmd->SetCandidates("WVI Mott DPWA");
446 ssCmd->SetToBeBroadcasted(false);
447
448 fluc1Cmd = new G4UIcmdWithAString("/process/eLoss/setFluctModel",this);
449 fluc1Cmd->SetGuidance("Define type of energy loss fluctuation model");
450 fluc1Cmd->SetParameterName("Fluc1",true);
451 fluc1Cmd->SetCandidates("Dummy Universal Urban");
453 fluc1Cmd->SetToBeBroadcasted(false);
454
455 posiCmd = new G4UIcmdWithAString("/process/em/setPositronAtRestModel",this);
456 posiCmd->SetGuidance("Define model of positron annihilation at rest");
457 posiCmd->SetParameterName("Posi",true);
458 posiCmd->SetCandidates("Simple Allison OrePawell OrePowellPolar");
460 posiCmd->SetToBeBroadcasted(false);
461
462 tripletCmd = new G4UIcmdWithAnInteger("/process/gconv/conversionType",this);
463 tripletCmd->SetGuidance("gamma conversion triplet/nuclear generation type:");
464 tripletCmd->SetGuidance("0 - (default) both triplet and nuclear");
465 tripletCmd->SetGuidance("1 - force nuclear");
466 tripletCmd->SetGuidance("2 - force triplet");
467 tripletCmd->SetParameterName("type",false);
468 tripletCmd->SetRange("type >= 0 && type <= 2");
469 tripletCmd->SetDefaultValue(0);
471 tripletCmd->SetToBeBroadcasted(false);
472
473 onIsolatedCmd = new G4UIcmdWithABool("/process/gconv/onIsolated",this);
474 onIsolatedCmd->SetGuidance("Conversion on isolated charged particles");
475 onIsolatedCmd->SetGuidance("false (default) : atomic electron screening");
476 onIsolatedCmd->SetGuidance("true : conversion on isolated particles.");
477 onIsolatedCmd->SetParameterName("flag",false);
478 onIsolatedCmd->SetDefaultValue(false);
480 onIsolatedCmd->SetToBeBroadcasted(false);
481}