77 : fGPS(fPtclGun),fShootIon(
false)
83 gpsDirectory->SetGuidance(
"General Paricle Source control commands.");
88 sourceDirectory->SetGuidance(
"Multiple source control sub-directory");
91 addsourceCmd->SetGuidance(
"add a new source defintion to the particle gun with the specified intensity");
92 addsourceCmd->SetParameterName(
"addsource",
false,
false);
93 addsourceCmd->SetRange(
"addsource > 0.");
96 listsourceCmd->SetGuidance(
"List the defined particle sources");
99 clearsourceCmd->SetGuidance(
"Remove all the defined particle sources");
102 getsourceCmd->SetGuidance(
"Show the current source index and intensity");
105 setsourceCmd->SetGuidance(
"set the indexed source as the current one");
106 setsourceCmd->SetGuidance(
" so one can change its source definition");
107 setsourceCmd->SetParameterName(
"setsource",
false,
false);
108 setsourceCmd->SetRange(
"setsource >= 0");
111 deletesourceCmd->SetGuidance(
"delete the indexed source from the list");
112 deletesourceCmd->SetParameterName(
"deletesource",
false,
false);
113 deletesourceCmd->SetRange(
"deletesource > 0");
116 setintensityCmd->SetGuidance(
"reset the current source to the specified intensity");
117 setintensityCmd->SetParameterName(
"setintensity",
false,
false);
118 setintensityCmd->SetRange(
"setintensity > 0.");
120 multiplevertexCmd =
new G4UIcmdWithABool(
"/gps/source/multiplevertex",
this);
121 multiplevertexCmd->SetGuidance(
"true for simulaneous generation mutiple vertex");
122 multiplevertexCmd->SetGuidance(
"Default is false");
123 multiplevertexCmd->SetParameterName(
"multiplevertex",
true);
124 multiplevertexCmd->SetDefaultValue(
false);
127 flatsamplingCmd->SetGuidance(
"true for appling flat (biased) sampling among the sources");
128 flatsamplingCmd->SetGuidance(
"Default is false");
129 flatsamplingCmd->SetParameterName(
"flatsampling",
true);
130 flatsamplingCmd->SetDefaultValue(
false);
135 listCmd->SetGuidance(
"List available particles.");
136 listCmd->SetGuidance(
" Invoke G4ParticleTable.");
139 particleCmd->SetGuidance(
"Set particle to be generated.");
140 particleCmd->SetGuidance(
" (geantino is default)");
141 particleCmd->SetGuidance(
" (ion can be specified for shooting ions)");
142 particleCmd->SetParameterName(
"particleName",
true);
143 particleCmd->SetDefaultValue(
"geantino");
145 G4int nPtcl = particleTable->entries();
146 for(
G4int i=0;i<nPtcl;i++)
148 candidateList += particleTable->GetParticleName(i);
149 candidateList +=
" ";
151 candidateList +=
"ion ";
152 particleCmd->SetCandidates(candidateList);
155 directionCmd->SetGuidance(
"Set momentum direction.");
156 directionCmd->SetGuidance(
"Direction needs not to be a unit vector.");
157 directionCmd->SetParameterName(
"Px",
"Py",
"Pz",
false,
false);
158 directionCmd->SetRange(
"Px != 0 || Py != 0 || Pz != 0");
161 energyCmd->SetGuidance(
"Set kinetic energy.");
162 energyCmd->SetParameterName(
"Energy",
false,
false);
163 energyCmd->SetDefaultUnit(
"GeV");
168 positionCmd->SetGuidance(
"Set starting position of the particle.");
169 positionCmd->SetParameterName(
"X",
"Y",
"Z",
false,
false);
170 positionCmd->SetDefaultUnit(
"cm");
175 ionCmd->SetGuidance(
"Set properties of ion to be generated.");
176 ionCmd->SetGuidance(
"[usage] /gps/ion Z A Q E");
177 ionCmd->SetGuidance(
" Z:(int) AtomicNumber");
178 ionCmd->SetGuidance(
" A:(int) AtomicMass");
179 ionCmd->SetGuidance(
" Q:(int) Charge of Ion (in unit of e)");
180 ionCmd->SetGuidance(
" E:(double) Excitation energy (in keV)");
185 ionCmd->SetParameter(param);
188 ionCmd->SetParameter(param);
191 ionCmd->SetParameter(param);
194 ionCmd->SetParameter(param);
197 ionLvlCmd->SetGuidance(
"Set properties of ion to be generated.");
198 ionLvlCmd->SetGuidance(
"[usage] /gps/ion Z A Q Lvl");
199 ionLvlCmd->SetGuidance(
" Z:(int) AtomicNumber");
200 ionLvlCmd->SetGuidance(
" A:(int) AtomicMass");
201 ionLvlCmd->SetGuidance(
" Q:(int) Charge of Ion (in unit of e)");
202 ionLvlCmd->SetGuidance(
" Lvl:(int) Number of metastable state excitation level (0-9)");
207 ionLvlCmd->SetParameter(paramL);
210 ionLvlCmd->SetParameter(paramL);
213 ionLvlCmd->SetParameter(paramL);
216 ionLvlCmd->SetParameter(paramL);
219 timeCmd->SetGuidance(
"Set initial time of the particle.");
220 timeCmd->SetParameterName(
"t0",
false,
false);
221 timeCmd->SetDefaultUnit(
"ns");
226 polCmd->SetGuidance(
"Set polarization.");
227 polCmd->SetParameterName(
"Px",
"Py",
"Pz",
false,
false);
228 polCmd->SetRange(
"Px>=-1.&&Px<=1.&&Py>=-1.&&Py<=1.&&Pz>=-1.&&Pz<=1.");
231 numberCmd->SetGuidance(
"Set number of particles to be generated per vertex.");
232 numberCmd->SetParameterName(
"N",
false,
false);
233 numberCmd->SetRange(
"N>0");
237 verbosityCmd->SetGuidance(
"Set Verbose level for GPS");
238 verbosityCmd->SetGuidance(
" 0 : Silent");
239 verbosityCmd->SetGuidance(
" 1 : Limited information");
240 verbosityCmd->SetGuidance(
" 2 : Detailed information");
241 verbosityCmd->SetParameterName(
"level",
false);
242 verbosityCmd->SetRange(
"level>=0 && level <=2");
247 positionDirectory->SetGuidance(
"Positional commands sub-directory");
250 typeCmd1->SetGuidance(
"Sets source distribution type.");
251 typeCmd1->SetGuidance(
"Either Point, Beam, Plane, Surface or Volume");
252 typeCmd1->SetParameterName(
"DisType",
false,
false);
253 typeCmd1->SetDefaultValue(
"Point");
254 typeCmd1->SetCandidates(
"Point Beam Plane Surface Volume");
257 shapeCmd1->SetGuidance(
"Sets source shape for Plan, Surface or Volume type source.");
258 shapeCmd1->SetParameterName(
"Shape",
false,
false);
259 shapeCmd1->SetDefaultValue(
"NULL");
260 shapeCmd1->SetCandidates(
"Circle Annulus Ellipse Square Rectangle Sphere Ellipsoid Cylinder Para");
263 centreCmd1->SetGuidance(
"Set centre coordinates of source.");
264 centreCmd1->SetGuidance(
" same effect as the /gps/position command");
265 centreCmd1->SetParameterName(
"X",
"Y",
"Z",
false,
false);
266 centreCmd1->SetDefaultUnit(
"cm");
270 posrot1Cmd1->SetGuidance(
"Set the 1st vector defining the rotation matrix'.");
271 posrot1Cmd1->SetGuidance(
"It does not need to be a unit vector.");
272 posrot1Cmd1->SetParameterName(
"R1x",
"R1y",
"R1z",
false,
false);
273 posrot1Cmd1->SetRange(
"R1x != 0 || R1y != 0 || R1z != 0");
276 posrot2Cmd1->SetGuidance(
"Set the 2nd vector defining the rotation matrix'.");
277 posrot2Cmd1->SetGuidance(
"It does not need to be a unit vector.");
278 posrot2Cmd1->SetParameterName(
"R2x",
"R2y",
"R2z",
false,
false);
279 posrot2Cmd1->SetRange(
"R2x != 0 || R2y != 0 || R2z != 0");
282 halfxCmd1->SetGuidance(
"Set x half length of source.");
283 halfxCmd1->SetParameterName(
"Halfx",
false,
false);
284 halfxCmd1->SetDefaultUnit(
"cm");
288 halfyCmd1->SetGuidance(
"Set y half length of source.");
289 halfyCmd1->SetParameterName(
"Halfy",
false,
false);
290 halfyCmd1->SetDefaultUnit(
"cm");
294 halfzCmd1->SetGuidance(
"Set z half length of source.");
295 halfzCmd1->SetParameterName(
"Halfz",
false,
false);
296 halfzCmd1->SetDefaultUnit(
"cm");
300 radiusCmd1->SetGuidance(
"Set radius of source.");
301 radiusCmd1->SetParameterName(
"Radius",
false,
false);
302 radiusCmd1->SetDefaultUnit(
"cm");
306 radius0Cmd1->SetGuidance(
"Set inner radius of source when required.");
307 radius0Cmd1->SetParameterName(
"Radius0",
false,
false);
308 radius0Cmd1->SetDefaultUnit(
"cm");
312 possigmarCmd1->SetGuidance(
"Set standard deviation in radial of the beam positional profile");
313 possigmarCmd1->SetGuidance(
" applicable to Beam type source only");
314 possigmarCmd1->SetParameterName(
"Sigmar",
false,
false);
315 possigmarCmd1->SetDefaultUnit(
"cm");
319 possigmaxCmd1->SetGuidance(
"Set standard deviation of beam positional profile in x-dir");
320 possigmaxCmd1->SetGuidance(
" applicable to Beam type source only");
321 possigmaxCmd1->SetParameterName(
"Sigmax",
false,
false);
322 possigmaxCmd1->SetDefaultUnit(
"cm");
326 possigmayCmd1->SetGuidance(
"Set standard deviation of beam positional profile in y-dir");
327 possigmayCmd1->SetGuidance(
" applicable to Beam type source only");
328 possigmayCmd1->SetParameterName(
"Sigmay",
false,
false);
329 possigmayCmd1->SetDefaultUnit(
"cm");
333 paralpCmd1->SetGuidance(
"Angle from y-axis of y' in Para");
334 paralpCmd1->SetParameterName(
"paralp",
false,
false);
335 paralpCmd1->SetDefaultUnit(
"rad");
339 partheCmd1->SetGuidance(
"Polar angle through centres of z faces");
340 partheCmd1->SetParameterName(
"parthe",
false,
false);
341 partheCmd1->SetDefaultUnit(
"rad");
345 parphiCmd1->SetGuidance(
"Azimuth angle through centres of z faces");
346 parphiCmd1->SetParameterName(
"parphi",
false,
false);
347 parphiCmd1->SetDefaultUnit(
"rad");
351 confineCmd1->SetGuidance(
"Confine source to volume (NULL to unset).");
352 confineCmd1->SetGuidance(
"usage: confine VolName");
353 confineCmd1->SetParameterName(
"VolName",
false,
false);
354 confineCmd1->SetDefaultValue(
"NULL");
358 typeCmd->SetGuidance(
"Sets source distribution type. (obsolete!)");
359 typeCmd->SetGuidance(
"Either Point, Beam, Plane, Surface or Volume");
360 typeCmd->SetParameterName(
"DisType",
false,
false);
361 typeCmd->SetDefaultValue(
"Point");
362 typeCmd->SetCandidates(
"Point Beam Plane Surface Volume");
365 shapeCmd->SetGuidance(
"Sets source shape type.(obsolete!)");
366 shapeCmd->SetParameterName(
"Shape",
false,
false);
367 shapeCmd->SetDefaultValue(
"NULL");
368 shapeCmd->SetCandidates(
"Circle Annulus Ellipse Square Rectangle Sphere Ellipsoid Cylinder Para");
371 centreCmd->SetGuidance(
"Set centre coordinates of source.(obsolete!)");
372 centreCmd->SetParameterName(
"X",
"Y",
"Z",
false,
false);
373 centreCmd->SetDefaultUnit(
"cm");
377 posrot1Cmd->SetGuidance(
"Set rotation matrix of x'.(obsolete!)");
378 posrot1Cmd->SetGuidance(
"Posrot1 does not need to be a unit vector.");
379 posrot1Cmd->SetParameterName(
"R1x",
"R1y",
"R1z",
false,
false);
380 posrot1Cmd->SetRange(
"R1x != 0 || R1y != 0 || R1z != 0");
383 posrot2Cmd->SetGuidance(
"Set rotation matrix of y'.(obsolete!)");
384 posrot2Cmd->SetGuidance(
"Posrot2 does not need to be a unit vector.");
385 posrot2Cmd->SetParameterName(
"R2x",
"R2y",
"R2z",
false,
false);
386 posrot2Cmd->SetRange(
"R2x != 0 || R2y != 0 || R2z != 0");
389 halfxCmd->SetGuidance(
"Set x half length of source.(obsolete!)");
390 halfxCmd->SetParameterName(
"Halfx",
false,
false);
391 halfxCmd->SetDefaultUnit(
"cm");
395 halfyCmd->SetGuidance(
"Set y half length of source.(obsolete!)");
396 halfyCmd->SetParameterName(
"Halfy",
false,
false);
397 halfyCmd->SetDefaultUnit(
"cm");
401 halfzCmd->SetGuidance(
"Set z half length of source.(obsolete!)");
402 halfzCmd->SetParameterName(
"Halfz",
false,
false);
403 halfzCmd->SetDefaultUnit(
"cm");
407 radiusCmd->SetGuidance(
"Set radius of source.(obsolete!)");
408 radiusCmd->SetParameterName(
"Radius",
false,
false);
409 radiusCmd->SetDefaultUnit(
"cm");
413 radius0Cmd->SetGuidance(
"Set inner radius of source.(obsolete!)");
414 radius0Cmd->SetParameterName(
"Radius0",
false,
false);
415 radius0Cmd->SetDefaultUnit(
"cm");
419 possigmarCmd->SetGuidance(
"Set standard deviation of beam position in radial(obsolete!)");
420 possigmarCmd->SetParameterName(
"Sigmar",
false,
false);
421 possigmarCmd->SetDefaultUnit(
"cm");
425 possigmaxCmd->SetGuidance(
"Set standard deviation of beam position in x-dir(obsolete!)");
426 possigmaxCmd->SetParameterName(
"Sigmax",
false,
false);
427 possigmaxCmd->SetDefaultUnit(
"cm");
431 possigmayCmd->SetGuidance(
"Set standard deviation of beam position in y-dir(obsolete!)");
432 possigmayCmd->SetParameterName(
"Sigmay",
false,
false);
433 possigmayCmd->SetDefaultUnit(
"cm");
437 paralpCmd->SetGuidance(
"Angle from y-axis of y' in Para(obsolete!)");
438 paralpCmd->SetParameterName(
"paralp",
false,
false);
439 paralpCmd->SetDefaultUnit(
"rad");
443 partheCmd->SetGuidance(
"Polar angle through centres of z faces(obsolete!)");
444 partheCmd->SetParameterName(
"parthe",
false,
false);
445 partheCmd->SetDefaultUnit(
"rad");
449 parphiCmd->SetGuidance(
"Azimuth angle through centres of z faces(obsolete!)");
450 parphiCmd->SetParameterName(
"parphi",
false,
false);
451 parphiCmd->SetDefaultUnit(
"rad");
455 confineCmd->SetGuidance(
"Confine source to volume (NULL to unset)(obsolete!) .");
456 confineCmd->SetGuidance(
"usage: confine VolName");
457 confineCmd->SetParameterName(
"VolName",
false,
false);
458 confineCmd->SetDefaultValue(
"NULL");
462 angularDirectory->SetGuidance(
"Angular commands sub-directory");
465 angtypeCmd1->SetGuidance(
"Sets angular source distribution type");
466 angtypeCmd1->SetGuidance(
"Possible variables are: iso, cos, planar, beam1d, beam2d, focused or user");
467 angtypeCmd1->SetParameterName(
"AngDis",
false,
false);
468 angtypeCmd1->SetDefaultValue(
"iso");
469 angtypeCmd1->SetCandidates(
"iso cos planar beam1d beam2d focused user");
472 angrot1Cmd1->SetGuidance(
"Sets the 1st vector for angular distribution rotation matrix");
473 angrot1Cmd1->SetGuidance(
"Need not be a unit vector");
474 angrot1Cmd1->SetParameterName(
"AR1x",
"AR1y",
"AR1z",
false,
false);
475 angrot1Cmd1->SetRange(
"AR1x != 0 || AR1y != 0 || AR1z != 0");
478 angrot2Cmd1->SetGuidance(
"Sets the 2nd vector for angular distribution rotation matrix");
479 angrot2Cmd1->SetGuidance(
"Need not be a unit vector");
480 angrot2Cmd1->SetParameterName(
"AR2x",
"AR2y",
"AR2z",
false,
false);
481 angrot2Cmd1->SetRange(
"AR2x != 0 || AR2y != 0 || AR2z != 0");
484 minthetaCmd1->SetGuidance(
"Set minimum theta");
485 minthetaCmd1->SetParameterName(
"MinTheta",
false,
false);
486 minthetaCmd1->SetDefaultValue(0.);
487 minthetaCmd1->SetDefaultUnit(
"rad");
491 maxthetaCmd1->SetGuidance(
"Set maximum theta");
492 maxthetaCmd1->SetParameterName(
"MaxTheta",
false,
false);
493 maxthetaCmd1->SetDefaultValue(
pi);
494 maxthetaCmd1->SetDefaultUnit(
"rad");
498 minphiCmd1->SetGuidance(
"Set minimum phi");
499 minphiCmd1->SetParameterName(
"MinPhi",
false,
false);
500 minphiCmd1->SetDefaultUnit(
"rad");
504 maxphiCmd1->SetGuidance(
"Set maximum phi");
505 maxphiCmd1->SetParameterName(
"MaxPhi",
false,
false);
506 maxphiCmd1->SetDefaultValue(
pi);
507 maxphiCmd1->SetDefaultUnit(
"rad");
511 angsigmarCmd1->SetGuidance(
"Set standard deviation in direction for 1D beam.");
512 angsigmarCmd1->SetParameterName(
"Sigmara",
false,
false);
513 angsigmarCmd1->SetDefaultUnit(
"rad");
517 angsigmaxCmd1->SetGuidance(
"Set standard deviation in direction in x-direc. for 2D beam");
518 angsigmaxCmd1->SetParameterName(
"Sigmaxa",
false,
false);
519 angsigmaxCmd1->SetDefaultUnit(
"rad");
523 angsigmayCmd1->SetGuidance(
"Set standard deviation in direction in y-direc. for 2D beam");
524 angsigmayCmd1->SetParameterName(
"Sigmaya",
false,
false);
525 angsigmayCmd1->SetDefaultUnit(
"rad");
529 angfocusCmd->SetGuidance(
"Set the focusing point for the beam");
530 angfocusCmd->SetParameterName(
"x",
"y",
"z",
false,
false);
531 angfocusCmd->SetDefaultUnit(
"cm");
535 useuserangaxisCmd1->SetGuidance(
"true for using user defined angular co-ordinates");
536 useuserangaxisCmd1->SetGuidance(
"Default is false");
537 useuserangaxisCmd1->SetParameterName(
"useuserangaxis",
true);
538 useuserangaxisCmd1->SetDefaultValue(
false);
541 surfnormCmd1->SetGuidance(
"Makes a user-defined distribution with respect to surface normals rather than x,y,z axes.");
542 surfnormCmd1->SetGuidance(
"Default is false");
543 surfnormCmd1->SetParameterName(
"surfnorm",
true);
544 surfnormCmd1->SetDefaultValue(
false);
548 angtypeCmd->SetGuidance(
"Sets angular source distribution type (obsolete!)");
549 angtypeCmd->SetGuidance(
"Possible variables are: iso, cos planar beam1d beam2d or user");
550 angtypeCmd->SetParameterName(
"AngDis",
false,
false);
551 angtypeCmd->SetDefaultValue(
"iso");
552 angtypeCmd->SetCandidates(
"iso cos planar beam1d beam2d user");
555 angrot1Cmd->SetGuidance(
"Sets the x' vector for angular distribution(obsolete!) ");
556 angrot1Cmd->SetGuidance(
"Need not be a unit vector");
557 angrot1Cmd->SetParameterName(
"AR1x",
"AR1y",
"AR1z",
false,
false);
558 angrot1Cmd->SetRange(
"AR1x != 0 || AR1y != 0 || AR1z != 0");
561 angrot2Cmd->SetGuidance(
"Sets the y' vector for angular distribution (obsolete!)");
562 angrot2Cmd->SetGuidance(
"Need not be a unit vector");
563 angrot2Cmd->SetParameterName(
"AR2x",
"AR2y",
"AR2z",
false,
false);
564 angrot2Cmd->SetRange(
"AR2x != 0 || AR2y != 0 || AR2z != 0");
567 minthetaCmd->SetGuidance(
"Set minimum theta (obsolete!)");
568 minthetaCmd->SetParameterName(
"MinTheta",
false,
false);
569 minthetaCmd->SetDefaultUnit(
"rad");
573 maxthetaCmd->SetGuidance(
"Set maximum theta (obsolete!)");
574 maxthetaCmd->SetParameterName(
"MaxTheta",
false,
false);
575 maxthetaCmd->SetDefaultValue(3.1416);
576 maxthetaCmd->SetDefaultUnit(
"rad");
580 minphiCmd->SetGuidance(
"Set minimum phi (obsolete!)");
581 minphiCmd->SetParameterName(
"MinPhi",
false,
false);
582 minphiCmd->SetDefaultUnit(
"rad");
586 maxphiCmd->SetGuidance(
"Set maximum phi(obsolete!)");
587 maxphiCmd->SetParameterName(
"MaxPhi",
false,
false);
588 maxphiCmd->SetDefaultUnit(
"rad");
592 angsigmarCmd->SetGuidance(
"Set standard deviation of beam direction in radial(obsolete!).");
593 angsigmarCmd->SetParameterName(
"Sigmara",
false,
false);
594 angsigmarCmd->SetDefaultUnit(
"rad");
598 angsigmaxCmd->SetGuidance(
"Set standard deviation of beam direction in x-direc(obsolete!).");
599 angsigmaxCmd->SetParameterName(
"Sigmaxa",
false,
false);
600 angsigmaxCmd->SetDefaultUnit(
"rad");
604 angsigmayCmd->SetGuidance(
"Set standard deviation of beam direction in y-direc.(obsolete!)");
605 angsigmayCmd->SetParameterName(
"Sigmaya",
false,
false);
606 angsigmayCmd->SetDefaultUnit(
"rad");
610 useuserangaxisCmd->SetGuidance(
"true for using user defined angular co-ordinates(obsolete!)");
611 useuserangaxisCmd->SetGuidance(
"Default is false");
612 useuserangaxisCmd->SetParameterName(
"useuserangaxis",
true);
613 useuserangaxisCmd->SetDefaultValue(
false);
616 surfnormCmd->SetGuidance(
"Makes a user-defined distribution with respect to surface normals rather than x,y,z axes (obsolete!).");
617 surfnormCmd->SetGuidance(
"Default is false");
618 surfnormCmd->SetParameterName(
"surfnorm",
true);
619 surfnormCmd->SetDefaultValue(
false);
624 energyDirectory->SetGuidance(
"Spectral commands sub-directory");
627 energytypeCmd1->SetGuidance(
"Sets energy distribution type");
628 energytypeCmd1->SetParameterName(
"EnergyDis",
false,
false);
629 energytypeCmd1->SetDefaultValue(
"Mono");
630 energytypeCmd1->SetCandidates(
"Mono Lin Pow Exp Gauss Brem Bbody Cdg User Arb Epn");
633 eminCmd1->SetGuidance(
"Sets minimum energy");
634 eminCmd1->SetParameterName(
"emin",
false,
false);
635 eminCmd1->SetDefaultUnit(
"keV");
639 emaxCmd1->SetGuidance(
"Sets maximum energy");
640 emaxCmd1->SetParameterName(
"emax",
false,
false);
641 emaxCmd1->SetDefaultUnit(
"keV");
645 monoenergyCmd1->SetGuidance(
"Sets a monocromatic energy (same as gps/energy)");
646 monoenergyCmd1->SetParameterName(
"monoenergy",
false,
false);
647 monoenergyCmd1->SetDefaultUnit(
"keV");
651 engsigmaCmd1->SetGuidance(
"Sets the standard deviation for Gaussian energy dist.");
652 engsigmaCmd1->SetParameterName(
"Sigmae",
false,
false);
653 engsigmaCmd1->SetDefaultUnit(
"keV");
657 alphaCmd1->SetGuidance(
"Sets Alpha (index) for power-law energy dist.");
658 alphaCmd1->SetParameterName(
"alpha",
false,
false);
661 tempCmd1->SetGuidance(
"Sets the temperature for Brem and BBody distributions (in Kelvin)");
662 tempCmd1->SetParameterName(
"temp",
false,
false);
665 ezeroCmd1->SetGuidance(
"Sets E_0 for exponential distribution (in MeV)");
666 ezeroCmd1->SetParameterName(
"ezero",
false,
false);
669 gradientCmd1->SetGuidance(
"Sets the gradient for Lin distribution (in 1/MeV)");
670 gradientCmd1->SetParameterName(
"gradient",
false,
false);
673 interceptCmd1->SetGuidance(
"Sets the intercept for Lin distributions (in MeV)");
674 interceptCmd1->SetParameterName(
"intercept",
false,
false);
677 arbeintCmd1->SetGuidance(
"Set the power-law index for the energy sampling distri. )");
678 arbeintCmd1->SetParameterName(
"arbeint",
false,
false);
681 calculateCmd1->SetGuidance(
"Calculates the distributions for Cdg and BBody");
684 energyspecCmd1->SetGuidance(
"True for energy and false for momentum spectra");
685 energyspecCmd1->SetParameterName(
"energyspec",
true);
686 energyspecCmd1->SetDefaultValue(
true);
689 diffspecCmd1->SetGuidance(
"True for differential and flase for integral spectra");
690 diffspecCmd1->SetParameterName(
"diffspec",
true);
691 diffspecCmd1->SetDefaultValue(
true);
695 energytypeCmd->SetGuidance(
"Sets energy distribution type (obsolete!)");
696 energytypeCmd->SetParameterName(
"EnergyDis",
false,
false);
697 energytypeCmd->SetDefaultValue(
"Mono");
698 energytypeCmd->SetCandidates(
"Mono Lin Pow Exp Gauss Brem Bbody Cdg User Arb Epn");
701 eminCmd->SetGuidance(
"Sets Emin (obsolete!)");
702 eminCmd->SetParameterName(
"emin",
false,
false);
703 eminCmd->SetDefaultUnit(
"keV");
707 emaxCmd->SetGuidance(
"Sets Emax (obsolete!)");
708 emaxCmd->SetParameterName(
"emax",
false,
false);
709 emaxCmd->SetDefaultUnit(
"keV");
713 monoenergyCmd->SetGuidance(
"Sets Monoenergy (obsolete, use gps/energy instead!)");
714 monoenergyCmd->SetParameterName(
"monoenergy",
false,
false);
715 monoenergyCmd->SetDefaultUnit(
"keV");
719 engsigmaCmd->SetGuidance(
"Sets the standard deviation for Gaussian energy dist.(obsolete!)");
720 engsigmaCmd->SetParameterName(
"Sigmae",
false,
false);
721 engsigmaCmd->SetDefaultUnit(
"keV");
725 alphaCmd->SetGuidance(
"Sets Alpha (index) for power-law energy dist(obsolete!).");
726 alphaCmd->SetParameterName(
"alpha",
false,
false);
729 tempCmd->SetGuidance(
"Sets the temperature for Brem and BBody (in Kelvin)(obsolete!)");
730 tempCmd->SetParameterName(
"temp",
false,
false);
733 ezeroCmd->SetGuidance(
"Sets ezero exponential distributions (in MeV)(obsolete!)");
734 ezeroCmd->SetParameterName(
"ezero",
false,
false);
737 gradientCmd->SetGuidance(
"Sets the gradient for Lin distributions (in 1/MeV)(obsolete!)");
738 gradientCmd->SetParameterName(
"gradient",
false,
false);
741 interceptCmd->SetGuidance(
"Sets the intercept for Lin distributions (in MeV)(obsolete!)");
742 interceptCmd->SetParameterName(
"intercept",
false,
false);
745 calculateCmd->SetGuidance(
"Calculates distributions for Cdg and BBody(obsolete!)");
748 energyspecCmd->SetGuidance(
"True for energy and false for momentum spectra(obsolete!)");
749 energyspecCmd->SetParameterName(
"energyspec",
true);
750 energyspecCmd->SetDefaultValue(
true);
753 diffspecCmd->SetGuidance(
"True for differential and flase for integral spectra(obsolete!)");
754 diffspecCmd->SetParameterName(
"diffspec",
true);
755 diffspecCmd->SetDefaultValue(
true);
759 histDirectory->SetGuidance(
"Histogram, biasing commands sub-directory");
762 histnameCmd1->SetGuidance(
"Sets histogram type");
763 histnameCmd1->SetParameterName(
"HistType",
false,
false);
764 histnameCmd1->SetDefaultValue(
"biasx");
765 histnameCmd1->SetCandidates(
"biasx biasy biasz biast biasp biase biaspt biaspp theta phi energy arb epn");
768 resethistCmd1->SetGuidance(
"Reset (clean) the histogram ");
769 resethistCmd1->SetParameterName(
"HistType",
false,
false);
770 resethistCmd1->SetDefaultValue(
"energy");
771 resethistCmd1->SetCandidates(
"biasx biasy biasz biast biasp biase biaspt biaspp theta phi energy arb epn");
774 histpointCmd1->SetGuidance(
"Allows user to define a histogram");
775 histpointCmd1->SetGuidance(
"Enter: Ehi Weight");
776 histpointCmd1->SetParameterName(
"Ehi",
"Weight",
"Junk",
true,
true);
777 histpointCmd1->SetRange(
"Ehi >= 0. && Weight >= 0.");
780 histfileCmd1->SetGuidance(
"import the arb energy hist in an ASCII file");
781 histfileCmd1->SetParameterName(
"HistFile",
false,
false);
784 arbintCmd1->SetGuidance(
"Sets the interpolation method for arbitrary distribution.");
785 arbintCmd1->SetParameterName(
"int",
false,
false);
786 arbintCmd1->SetDefaultValue(
"Lin");
787 arbintCmd1->SetCandidates(
"Lin Log Exp Spline");
791 histnameCmd->SetGuidance(
"Sets histogram type (obsolete!)");
792 histnameCmd->SetParameterName(
"HistType",
false,
false);
793 histnameCmd->SetDefaultValue(
"biasx");
794 histnameCmd->SetCandidates(
"biasx biasy biasz biast biasp biase biaspt biaspp theta phi energy arb epn");
798 resethistCmd->SetGuidance(
"Re-Set the histogram (obsolete!)");
799 resethistCmd->SetParameterName(
"HistType",
false,
false);
800 resethistCmd->SetDefaultValue(
"energy");
801 resethistCmd->SetCandidates(
"biasx biasy biasz biast biasp biase biaspt biaspp theta phi energy arb epn");
804 histpointCmd->SetGuidance(
"Allows user to define a histogram (obsolete!)");
805 histpointCmd->SetGuidance(
"Enter: Ehi Weight");
806 histpointCmd->SetParameterName(
"Ehi",
"Weight",
"Junk",
false,
false);
807 histpointCmd->SetRange(
"Ehi >= 0. && Weight >= 0.");
810 arbintCmd->SetGuidance(
"Sets Arbitrary Interpolation type.(obsolete!) ");
811 arbintCmd->SetParameterName(
"int",
false,
false);
812 arbintCmd->SetDefaultValue(
"NULL");
813 arbintCmd->SetCandidates(
"Lin Log Exp Spline");
819 delete positionDirectory;
847 delete possigmarCmd1;
848 delete possigmaxCmd1;
849 delete possigmayCmd1;
855 delete angularDirectory;
866 delete useuserangaxisCmd;
875 delete angsigmarCmd1;
876 delete angsigmaxCmd1;
877 delete angsigmayCmd1;
879 delete useuserangaxisCmd1;
882 delete energyDirectory;
883 delete energytypeCmd;
886 delete monoenergyCmd;
894 delete energyspecCmd;
896 delete energytypeCmd1;
899 delete monoenergyCmd1;
905 delete interceptCmd1;
907 delete calculateCmd1;
908 delete energyspecCmd1;
911 delete histDirectory;
917 delete resethistCmd1;
918 delete histpointCmd1;
934 delete sourceDirectory;
936 delete listsourceCmd;
937 delete clearsourceCmd;
940 delete setintensityCmd;
941 delete deletesourceCmd;
942 delete multiplevertexCmd;
943 delete flatsamplingCmd;
951 if(command == typeCmd)
954 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
955 <<
" The command is obsolete and will be removed soon." <<
G4endl
956 <<
" Please try to use the new structured commands!" <<
G4endl;
958 else if(command == shapeCmd)
961 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
962 <<
" The command is obsolete and will be removed soon." <<
G4endl
963 <<
" Please try to use the new structured commands!" <<
G4endl;
965 else if(command == centreCmd)
968 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
969 <<
" The command is obsolete and will be removed soon." <<
G4endl
970 <<
" Please try to use the new structured commands!" <<
G4endl;
972 else if(command == posrot1Cmd)
975 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
976 <<
" The command is obsolete and will be removed soon." <<
G4endl
977 <<
" Please try to use the new structured commands!" <<
G4endl;
979 else if(command == posrot2Cmd)
982 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
983 <<
" The command is obsolete and will be removed soon." <<
G4endl
984 <<
" Please try to use the new structured commands!" <<
G4endl;
986 else if(command == halfxCmd)
989 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
990 <<
" The command is obsolete and will be removed soon." <<
G4endl
991 <<
" Please try to use the new structured commands!" <<
G4endl;
993 else if(command == halfyCmd)
996 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
997 <<
" The command is obsolete and will be removed soon." <<
G4endl
998 <<
" Please try to use the new structured commands!" <<
G4endl;
1000 else if(command == halfzCmd)
1003 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1004 <<
" The command is obsolete and will be removed soon." <<
G4endl
1005 <<
" Please try to use the new structured commands!" <<
G4endl;
1007 else if(command == radiusCmd)
1010 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1011 <<
" The command is obsolete and will be removed soon." <<
G4endl
1012 <<
" Please try to use the new structured commands!" <<
G4endl;
1014 else if(command == radius0Cmd)
1017 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1018 <<
" The command is obsolete and will be removed soon." <<
G4endl
1019 <<
" Please try to use the new structured commands!" <<
G4endl;
1021 else if(command == possigmarCmd)
1024 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1025 <<
" The command is obsolete and will be removed soon." <<
G4endl
1026 <<
" Please try to use the new structured commands!" <<
G4endl;
1028 else if(command == possigmaxCmd)
1031 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1032 <<
" The command is obsolete and will be removed soon." <<
G4endl
1033 <<
" Please try to use the new structured commands!" <<
G4endl;
1035 else if(command == possigmayCmd)
1038 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1039 <<
" The command is obsolete and will be removed soon." <<
G4endl
1040 <<
" Please try to use the new structured commands!" <<
G4endl;
1042 else if(command == paralpCmd)
1045 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1046 <<
" The command is obsolete and will be removed soon." <<
G4endl
1047 <<
" Please try to use the new structured commands!" <<
G4endl;
1049 else if(command == partheCmd)
1052 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1053 <<
" The command is obsolete and will be removed soon." <<
G4endl
1054 <<
" Please try to use the new structured commands!" <<
G4endl;
1056 else if(command == parphiCmd)
1059 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1060 <<
" The command is obsolete and will be removed soon." <<
G4endl
1061 <<
" Please try to use the new structured commands!" <<
G4endl;
1063 else if(command == confineCmd)
1066 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1067 <<
" The command is obsolete and will be removed soon." <<
G4endl
1068 <<
" Please try to use the new structured commands!" <<
G4endl;
1070 else if(command == angtypeCmd)
1073 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1074 <<
" The command is obsolete and will be removed soon." <<
G4endl
1075 <<
" Please try to use the new structured commands!" <<
G4endl;
1077 else if(command == angrot1Cmd)
1081 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1082 <<
" The command is obsolete and will be removed soon." <<
G4endl
1083 <<
" Please try to use the new structured commands!" <<
G4endl;
1085 else if(command == angrot2Cmd)
1089 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1090 <<
" The command is obsolete and will be removed soon." <<
G4endl
1091 <<
" Please try to use the new structured commands!" <<
G4endl;
1093 else if(command == minthetaCmd)
1096 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1097 <<
" The command is obsolete and will be removed soon." <<
G4endl
1098 <<
" Please try to use the new structured commands!" <<
G4endl;
1100 else if(command == minphiCmd)
1103 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1104 <<
" The command is obsolete and will be removed soon." <<
G4endl
1105 <<
" Please try to use the new structured commands!" <<
G4endl;
1107 else if(command == maxthetaCmd)
1110 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1111 <<
" The command is obsolete and will be removed soon." <<
G4endl
1112 <<
" Please try to use the new structured commands!" <<
G4endl;
1114 else if(command == maxphiCmd)
1117 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1118 <<
" The command is obsolete and will be removed soon." <<
G4endl
1119 <<
" Please try to use the new structured commands!" <<
G4endl;
1121 else if(command == angsigmarCmd)
1124 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1125 <<
" The command is obsolete and will be removed soon." <<
G4endl
1126 <<
" Please try to use the new structured commands!" <<
G4endl;
1128 else if(command == angsigmaxCmd)
1131 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1132 <<
" The command is obsolete and will be removed soon." <<
G4endl
1133 <<
" Please try to use the new structured commands!" <<
G4endl;
1135 else if(command == angsigmayCmd)
1138 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1139 <<
" The command is obsolete and will be removed soon." <<
G4endl
1140 <<
" Please try to use the new structured commands!" <<
G4endl;
1142 else if(command == useuserangaxisCmd)
1145 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1146 <<
" The command is obsolete and will be removed soon." <<
G4endl
1147 <<
" Please try to use the new structured commands!" <<
G4endl;
1149 else if(command == surfnormCmd)
1152 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1153 <<
" The command is obsolete and will be removed soon." <<
G4endl
1154 <<
" Please try to use the new structured commands!" <<
G4endl;
1156 else if(command == energytypeCmd)
1159 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1160 <<
" The command is obsolete and will be removed soon." <<
G4endl
1161 <<
" Please try to use the new structured commands!" <<
G4endl;
1163 else if(command == eminCmd)
1166 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1167 <<
" The command is obsolete and will be removed soon." <<
G4endl
1168 <<
" Please try to use the new structured commands!" <<
G4endl;
1170 else if(command == emaxCmd)
1173 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1174 <<
" The command is obsolete and will be removed soon." <<
G4endl
1175 <<
" Please try to use the new structured commands!" <<
G4endl;
1177 else if(command == monoenergyCmd)
1180 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1181 <<
" The command is obsolete and will be removed soon." <<
G4endl
1182 <<
" Please try to use the new structured commands!" <<
G4endl;
1184 else if(command == engsigmaCmd)
1187 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1188 <<
" The command is obsolete and will be removed soon." <<
G4endl
1189 <<
" Please try to use the new structured commands!" <<
G4endl;
1191 else if(command == alphaCmd)
1194 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1195 <<
" The command is obsolete and will be removed soon." <<
G4endl
1196 <<
" Please try to use the new structured commands!" <<
G4endl;
1198 else if(command == tempCmd)
1201 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1202 <<
" The command is obsolete and will be removed soon." <<
G4endl
1203 <<
" Please try to use the new structured commands!" <<
G4endl;
1205 else if(command == ezeroCmd)
1208 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1209 <<
" The command is obsolete and will be removed soon." <<
G4endl
1210 <<
" Please try to use the new structured commands!" <<
G4endl;
1212 else if(command == gradientCmd)
1215 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1216 <<
" The command is obsolete and will be removed soon." <<
G4endl
1217 <<
" Please try to use the new structured commands!" <<
G4endl;
1219 else if(command == interceptCmd)
1222 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1223 <<
" The command is obsolete and will be removed soon." <<
G4endl
1224 <<
" Please try to use the new structured commands!" <<
G4endl;
1226 else if(command == calculateCmd)
1229 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1230 <<
" The command is obsolete and will be removed soon." <<
G4endl
1231 <<
" Please try to use the new structured commands!" <<
G4endl;
1233 else if(command == energyspecCmd)
1236 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1237 <<
" The command is obsolete and will be removed soon." <<
G4endl
1238 <<
" Please try to use the new structured commands!" <<
G4endl;
1240 else if(command == diffspecCmd)
1243 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1244 <<
" The command is obsolete and will be removed soon." <<
G4endl
1245 <<
" Please try to use the new structured commands!" <<
G4endl;
1247 else if(command == histnameCmd)
1249 histtype = newValues;
1250 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1251 <<
" The command is obsolete and will be removed soon." <<
G4endl
1252 <<
" Please try to use the new structured commands!" <<
G4endl;
1254 else if(command == histpointCmd)
1256 if(histtype ==
"biasx")
1258 if(histtype ==
"biasy")
1260 if(histtype ==
"biasz")
1262 if(histtype ==
"biast")
1264 if(histtype ==
"biasp")
1266 if(histtype ==
"biase")
1268 if(histtype ==
"theta")
1270 if(histtype ==
"phi")
1272 if(histtype ==
"energy")
1274 if(histtype ==
"arb")
1276 if(histtype ==
"epn")
1278 G4cout <<
" G4GeneralParticleSourceMessenger - Warning: The command is obsolete and will be removed soon. Please try to use the new structured commands!" <<
G4endl;
1280 else if(command == resethistCmd)
1282 if(newValues ==
"theta" || newValues ==
"phi") {
1284 }
else if (newValues ==
"energy" || newValues ==
"arb" || newValues ==
"epn") {
1289 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1290 <<
" The command is obsolete and will be removed soon." <<
G4endl
1291 <<
" Please try to use the new structured commands!" <<
G4endl;
1293 else if(command == arbintCmd)
1296 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1297 <<
" The command is obsolete and will be removed soon." <<
G4endl
1298 <<
" Please try to use the new structured commands!" <<
G4endl;
1300 else if( command==directionCmd )
1305 else if( command==energyCmd )
1310 else if( command==positionCmd )
1315 else if(command == verbosityCmd)
1319 else if( command==particleCmd )
1321 if (newValues ==
"ion") {
1330 else if( command==timeCmd )
1332 else if( command==polCmd )
1334 else if( command==numberCmd )
1336 else if( command==ionCmd )
1337 { IonCommand(newValues); }
1338 else if( command==ionLvlCmd )
1339 { IonLvlCommand(newValues); }
1340 else if( command==listCmd ){
1343 else if( command==addsourceCmd )
1347 else if( command==listsourceCmd )
1351 else if( command==clearsourceCmd )
1355 else if( command==getsourceCmd )
1360 else if( command==setsourceCmd )
1364 else if( command==setintensityCmd )
1368 else if( command==deletesourceCmd )
1372 else if(command == multiplevertexCmd)
1376 else if(command == flatsamplingCmd)
1384 else if(command == typeCmd1)
1388 else if(command == shapeCmd1)
1392 else if(command == centreCmd1)
1396 else if(command == posrot1Cmd1)
1400 else if(command == posrot2Cmd1)
1404 else if(command == halfxCmd1)
1408 else if(command == halfyCmd1)
1412 else if(command == halfzCmd1)
1416 else if(command == radiusCmd1)
1420 else if(command == radius0Cmd1)
1424 else if(command == possigmarCmd1)
1428 else if(command == possigmaxCmd1)
1432 else if(command == possigmayCmd1)
1436 else if(command == paralpCmd1)
1440 else if(command == partheCmd1)
1444 else if(command == parphiCmd1)
1448 else if(command == confineCmd1)
1452 else if(command == angtypeCmd1)
1456 else if(command == angrot1Cmd1)
1461 else if(command == angrot2Cmd1)
1466 else if(command == minthetaCmd1)
1470 else if(command == minphiCmd1)
1474 else if(command == maxthetaCmd1)
1478 else if(command == maxphiCmd1)
1482 else if(command == angsigmarCmd1)
1486 else if(command == angsigmaxCmd1)
1490 else if(command == angsigmayCmd1)
1494 else if(command == angfocusCmd)
1498 else if(command == useuserangaxisCmd1)
1502 else if(command == surfnormCmd1)
1506 else if(command == energytypeCmd1)
1510 else if(command == eminCmd1)
1514 else if(command == emaxCmd1)
1518 else if(command == monoenergyCmd1)
1522 else if(command == engsigmaCmd1)
1526 else if(command == alphaCmd1)
1530 else if(command == tempCmd1)
1534 else if(command == ezeroCmd1)
1538 else if(command == gradientCmd1)
1542 else if(command == interceptCmd1)
1546 else if(command == arbeintCmd1)
1550 else if(command == calculateCmd1)
1554 else if(command == energyspecCmd1)
1558 else if(command == diffspecCmd1)
1562 else if(command == histnameCmd1)
1564 histtype = newValues;
1566 else if(command == histfileCmd1)
1571 else if(command == histpointCmd1)
1573 if(histtype ==
"biasx")
1575 if(histtype ==
"biasy")
1577 if(histtype ==
"biasz")
1579 if(histtype ==
"biast")
1581 if(histtype ==
"biasp")
1583 if(histtype ==
"biaspt")
1585 if(histtype ==
"biaspp")
1587 if(histtype ==
"biase")
1589 if(histtype ==
"theta")
1591 if(histtype ==
"phi")
1593 if(histtype ==
"energy")
1595 if(histtype ==
"arb")
1597 if(histtype ==
"epn")
1600 else if(command == resethistCmd1)
1602 if(newValues ==
"theta" || newValues ==
"phi") {
1604 }
else if (newValues ==
"energy" || newValues ==
"arb" || newValues ==
"epn") {
1610 else if(command == arbintCmd1)
1637 cv =
"Not implemented yet";
1642 void G4GeneralParticleSourceMessenger::IonCommand(
G4String newValues)
1650 fAtomicNumber =
StoI(next());
1651 fAtomicMass =
StoI(next());
1655 fIonCharge = fAtomicNumber;
1659 fIonCharge =
StoI(sQ);
1663 fIonExciteEnergy = 0.0;
1667 fIonExciteEnergy =
StoD(sQ) *
keV;
1671 ion = particleTable->
GetIon( fAtomicNumber, fAtomicMass, fIonExciteEnergy);
1674 G4cout <<
"Ion with Z=" << fAtomicNumber;
1675 G4cout <<
" A=" << fAtomicMass <<
"is not be defined" <<
G4endl;
1685 G4cout <<
"Set /gps/particle to ion before using /gps/ion command";
1690 void G4GeneralParticleSourceMessenger::IonLvlCommand(
G4String newValues)
1697 fAtomicNumberL =
StoI(next());
1698 fAtomicMassL =
StoI(next());
1701 fIonChargeL = fAtomicNumberL;
1703 fIonChargeL =
StoI(sQ);
1706 fIonEnergyLevel = 0;
1708 fIonEnergyLevel =
StoI(sQ);
1713 ion = particleTable->
GetIon(fAtomicNumberL, fAtomicMassL, fIonEnergyLevel);
1715 G4cout <<
"Ion with Z=" << fAtomicNumberL;
1716 G4cout <<
" A=" << fAtomicMass <<
"is not be defined" <<
G4endl;
1723 G4cout <<
"Set /gps/particle to ion before using /gps/ionLvl command";
void SetBeamSigmaInE(G4double)
G4SPSRandomGenerator * GetBiasRndm()
G4SPSEneDistribution * GetEneDist()
void SetParticleTime(G4double aTime)
G4ParticleDefinition * FindParticle(G4int PDGEncoding)
G4int GetCurrentSourceIndex()
~G4GeneralParticleSourceMessenger()
void AddaSource(G4double)
void DumpTable(const G4String &particle_name="ALL")
void SetPosDisType(G4String)
void SetParTheta(G4double)
void SetBeamSigmaInX(G4double)
void ArbEnergyHisto(G4ThreeVector)
static G4int GetNewIntValue(const char *paramString)
void SetBeamSigmaInAngR(G4double)
G4ParticleDefinition * GetIon(G4int atomicNumber, G4int atomicMass, G4double excitationEnergy)
G4SPSPosDistribution * GetPosDist()
void SetMultipleVertex(G4bool av)
static G4ThreeVector GetNew3VectorValue(const char *paramString)
void SetDefaultValue(const char *theDefaultValue)
void SetParAlpha(G4double)
void SetBeamSigmaInAngY(G4double)
void SetMinTheta(G4double)
void SetEnergyBias(G4ThreeVector)
void SetNewValue(G4UIcommand *command, G4String newValues)
void SetUseUserAngAxis(G4bool)
void SetYBias(G4ThreeVector)
static G4double GetNewDoubleValue(const char *paramString)
void SetCurrentSourceIntensity(G4double)
void SetPosThetaBias(G4ThreeVector)
static G4bool GetNewBoolValue(const char *paramString)
void SetThetaBias(G4ThreeVector)
void SetZBias(G4ThreeVector)
void SetXBias(G4ThreeVector)
void UserDefAngPhi(G4ThreeVector)
void UserDefAngTheta(G4ThreeVector)
G4GLOB_DLL std::ostream G4cout
void SetCentreCoords(G4ThreeVector)
static G4ThreeVector GetNew3VectorValue(const char *paramString)
void SetEnergyDisType(G4String)
void SetBeamSigmaInR(G4double)
G4GeneralParticleSourceMessenger(G4GeneralParticleSource *)
static G4double GetNewDoubleValue(const char *paramString)
void DefineAngRefAxes(G4String, G4ThreeVector)
void SetParticlePolarization(G4ThreeVector aVal)
void SetParticleDefinition(G4ParticleDefinition *aParticleDefinition)
void SetPosRot1(G4ThreeVector)
G4double GetCurrentSourceIntensity()
G4SPSAngDistribution * GetAngDist()
void SetPosDisShape(G4String)
void ArbInterpolate(G4String)
void EpnEnergyHisto(G4ThreeVector)
G4String GetCurrentValue(G4UIcommand *command)
void SetPhiBias(G4ThreeVector)
void InputEnergySpectra(G4bool)
void SetAngDistType(G4String)
static G4ParticleTable * GetParticleTable()
void SetGradient(G4double)
void UserEnergyHisto(G4ThreeVector)
G4double StoD(G4String s)
void SetPosRot2(G4ThreeVector)
void SetInterCept(G4double)
void InputDifferentialSpectra(G4bool)
void SetFocusPoint(G4ThreeVector)
void SetParticleMomentumDirection(G4ParticleMomentum aMomentumDirection)
void SetBiasAlpha(G4double)
void DeleteaSource(G4int)
void SetCurrentSourceto(G4int)
void ArbEnergyHistoFile(G4String)
void SetUserWRTSurface(G4bool)
void SetParticleCharge(G4double aCharge)
void ConfineSourceToVolume(G4String)
void SetFlatSampling(G4bool av)
void SetMaxTheta(G4double)
void SetRadius0(G4double)
void SetBeamSigmaInY(G4double)
void SetNumberOfParticles(G4int i)
void SetMonoEnergy(G4double)
void SetPosPhiBias(G4ThreeVector)
void SetBeamSigmaInAngX(G4double)