95 if ( theInstance != 0 ) {
104 : fGPS(fPtclGun),fParticleGun(0),fShootIon(
false),
105 fAtomicNumber(0),fAtomicMass(0),fIonCharge(0),fIonExciteEnergy(0.),
106 fShootIonL(0),fAtomicNumberL(0),fAtomicMassL(0),fIonChargeL(0),fIonEnergyLevel(0)
120 commandsShouldBeInMaster =
true;
131 gpsDirectory->SetGuidance(
"General Paricle Source control commands.");
136 sourceDirectory->SetGuidance(
"Multiple source control sub-directory");
139 addsourceCmd->SetGuidance(
"add a new source defintion to the particle gun with the specified intensity");
140 addsourceCmd->SetParameterName(
"addsource",
false,
false);
141 addsourceCmd->SetRange(
"addsource > 0.");
144 listsourceCmd->SetGuidance(
"List the defined particle sources");
147 clearsourceCmd->SetGuidance(
"Remove all the defined particle sources");
150 getsourceCmd->SetGuidance(
"Show the current source index and intensity");
153 setsourceCmd->SetGuidance(
"set the indexed source as the current one");
154 setsourceCmd->SetGuidance(
" so one can change its source definition");
155 setsourceCmd->SetParameterName(
"setsource",
false,
false);
156 setsourceCmd->SetRange(
"setsource >= 0");
159 deletesourceCmd->SetGuidance(
"delete the indexed source from the list");
160 deletesourceCmd->SetParameterName(
"deletesource",
false,
false);
161 deletesourceCmd->SetRange(
"deletesource > 0");
164 setintensityCmd->SetGuidance(
"reset the current source to the specified intensity");
165 setintensityCmd->SetParameterName(
"setintensity",
false,
false);
166 setintensityCmd->SetRange(
"setintensity > 0.");
168 multiplevertexCmd =
new G4UIcmdWithABool(
"/gps/source/multiplevertex",
this);
169 multiplevertexCmd->SetGuidance(
"true for simulaneous generation mutiple vertex");
170 multiplevertexCmd->SetGuidance(
"Default is false");
171 multiplevertexCmd->SetParameterName(
"multiplevertex",
true);
172 multiplevertexCmd->SetDefaultValue(
false);
175 flatsamplingCmd->SetGuidance(
"true for appling flat (biased) sampling among the sources");
176 flatsamplingCmd->SetGuidance(
"Default is false");
177 flatsamplingCmd->SetParameterName(
"flatsampling",
true);
178 flatsamplingCmd->SetDefaultValue(
false);
183 listCmd->SetGuidance(
"List available particles.");
184 listCmd->SetGuidance(
" Invoke G4ParticleTable.");
187 particleCmd->SetGuidance(
"Set particle to be generated.");
188 particleCmd->SetGuidance(
" (geantino is default)");
189 particleCmd->SetGuidance(
" (ion can be specified for shooting ions)");
190 particleCmd->SetParameterName(
"particleName",
true);
191 particleCmd->SetDefaultValue(
"geantino");
193 G4int nPtcl = particleTable->entries();
194 for(
G4int i=0;i<nPtcl;i++)
196 candidateList += particleTable->GetParticleName(i);
197 candidateList +=
" ";
199 candidateList +=
"ion ";
200 particleCmd->SetCandidates(candidateList);
203 directionCmd->SetGuidance(
"Set momentum direction.");
204 directionCmd->SetGuidance(
"Direction needs not to be a unit vector.");
205 directionCmd->SetParameterName(
"Px",
"Py",
"Pz",
false,
false);
206 directionCmd->SetRange(
"Px != 0 || Py != 0 || Pz != 0");
209 energyCmd->SetGuidance(
"Set kinetic energy.");
210 energyCmd->SetParameterName(
"Energy",
false,
false);
211 energyCmd->SetDefaultUnit(
"GeV");
216 positionCmd->SetGuidance(
"Set starting position of the particle.");
217 positionCmd->SetParameterName(
"X",
"Y",
"Z",
false,
false);
218 positionCmd->SetDefaultUnit(
"cm");
223 ionCmd->SetGuidance(
"Set properties of ion to be generated.");
224 ionCmd->SetGuidance(
"[usage] /gps/ion Z A Q E");
225 ionCmd->SetGuidance(
" Z:(int) AtomicNumber");
226 ionCmd->SetGuidance(
" A:(int) AtomicMass");
227 ionCmd->SetGuidance(
" Q:(int) Charge of Ion (in unit of e)");
228 ionCmd->SetGuidance(
" E:(double) Excitation energy (in keV)");
233 ionCmd->SetParameter(param);
236 ionCmd->SetParameter(param);
239 ionCmd->SetParameter(param);
242 ionCmd->SetParameter(param);
245 ionLvlCmd->SetGuidance(
"Set properties of ion to be generated.");
246 ionLvlCmd->SetGuidance(
"[usage] /gps/ion Z A Q Lvl");
247 ionLvlCmd->SetGuidance(
" Z:(int) AtomicNumber");
248 ionLvlCmd->SetGuidance(
" A:(int) AtomicMass");
249 ionLvlCmd->SetGuidance(
" Q:(int) Charge of Ion (in unit of e)");
250 ionLvlCmd->SetGuidance(
" Lvl:(int) Number of metastable state excitation level (0-9)");
255 ionLvlCmd->SetParameter(paramL);
258 ionLvlCmd->SetParameter(paramL);
261 ionLvlCmd->SetParameter(paramL);
264 ionLvlCmd->SetParameter(paramL);
267 timeCmd->SetGuidance(
"Set initial time of the particle.");
268 timeCmd->SetParameterName(
"t0",
false,
false);
269 timeCmd->SetDefaultUnit(
"ns");
274 polCmd->SetGuidance(
"Set polarization.");
275 polCmd->SetParameterName(
"Px",
"Py",
"Pz",
false,
false);
276 polCmd->SetRange(
"Px>=-1.&&Px<=1.&&Py>=-1.&&Py<=1.&&Pz>=-1.&&Pz<=1.");
279 numberCmd->SetGuidance(
"Set number of particles to be generated per vertex.");
280 numberCmd->SetParameterName(
"N",
false,
false);
281 numberCmd->SetRange(
"N>0");
285 verbosityCmd->SetGuidance(
"Set Verbose level for GPS");
286 verbosityCmd->SetGuidance(
" 0 : Silent");
287 verbosityCmd->SetGuidance(
" 1 : Limited information");
288 verbosityCmd->SetGuidance(
" 2 : Detailed information");
289 verbosityCmd->SetParameterName(
"level",
false);
290 verbosityCmd->SetRange(
"level>=0 && level <=2");
295 positionDirectory->SetGuidance(
"Positional commands sub-directory");
298 typeCmd1->SetGuidance(
"Sets source distribution type.");
299 typeCmd1->SetGuidance(
"Either Point, Beam, Plane, Surface or Volume");
300 typeCmd1->SetParameterName(
"DisType",
false,
false);
301 typeCmd1->SetDefaultValue(
"Point");
302 typeCmd1->SetCandidates(
"Point Beam Plane Surface Volume");
305 shapeCmd1->SetGuidance(
"Sets source shape for Plan, Surface or Volume type source.");
306 shapeCmd1->SetParameterName(
"Shape",
false,
false);
307 shapeCmd1->SetDefaultValue(
"NULL");
308 shapeCmd1->SetCandidates(
"Circle Annulus Ellipse Square Rectangle Sphere Ellipsoid Cylinder Para");
311 centreCmd1->SetGuidance(
"Set centre coordinates of source.");
312 centreCmd1->SetGuidance(
" same effect as the /gps/position command");
313 centreCmd1->SetParameterName(
"X",
"Y",
"Z",
false,
false);
314 centreCmd1->SetDefaultUnit(
"cm");
318 posrot1Cmd1->SetGuidance(
"Set the 1st vector defining the rotation matrix'.");
319 posrot1Cmd1->SetGuidance(
"It does not need to be a unit vector.");
320 posrot1Cmd1->SetParameterName(
"R1x",
"R1y",
"R1z",
false,
false);
321 posrot1Cmd1->SetRange(
"R1x != 0 || R1y != 0 || R1z != 0");
324 posrot2Cmd1->SetGuidance(
"Set the 2nd vector defining the rotation matrix'.");
325 posrot2Cmd1->SetGuidance(
"It does not need to be a unit vector.");
326 posrot2Cmd1->SetParameterName(
"R2x",
"R2y",
"R2z",
false,
false);
327 posrot2Cmd1->SetRange(
"R2x != 0 || R2y != 0 || R2z != 0");
330 halfxCmd1->SetGuidance(
"Set x half length of source.");
331 halfxCmd1->SetParameterName(
"Halfx",
false,
false);
332 halfxCmd1->SetDefaultUnit(
"cm");
336 halfyCmd1->SetGuidance(
"Set y half length of source.");
337 halfyCmd1->SetParameterName(
"Halfy",
false,
false);
338 halfyCmd1->SetDefaultUnit(
"cm");
342 halfzCmd1->SetGuidance(
"Set z half length of source.");
343 halfzCmd1->SetParameterName(
"Halfz",
false,
false);
344 halfzCmd1->SetDefaultUnit(
"cm");
348 radiusCmd1->SetGuidance(
"Set radius of source.");
349 radiusCmd1->SetParameterName(
"Radius",
false,
false);
350 radiusCmd1->SetDefaultUnit(
"cm");
354 radius0Cmd1->SetGuidance(
"Set inner radius of source when required.");
355 radius0Cmd1->SetParameterName(
"Radius0",
false,
false);
356 radius0Cmd1->SetDefaultUnit(
"cm");
360 possigmarCmd1->SetGuidance(
"Set standard deviation in radial of the beam positional profile");
361 possigmarCmd1->SetGuidance(
" applicable to Beam type source only");
362 possigmarCmd1->SetParameterName(
"Sigmar",
false,
false);
363 possigmarCmd1->SetDefaultUnit(
"cm");
367 possigmaxCmd1->SetGuidance(
"Set standard deviation of beam positional profile in x-dir");
368 possigmaxCmd1->SetGuidance(
" applicable to Beam type source only");
369 possigmaxCmd1->SetParameterName(
"Sigmax",
false,
false);
370 possigmaxCmd1->SetDefaultUnit(
"cm");
374 possigmayCmd1->SetGuidance(
"Set standard deviation of beam positional profile in y-dir");
375 possigmayCmd1->SetGuidance(
" applicable to Beam type source only");
376 possigmayCmd1->SetParameterName(
"Sigmay",
false,
false);
377 possigmayCmd1->SetDefaultUnit(
"cm");
381 paralpCmd1->SetGuidance(
"Angle from y-axis of y' in Para");
382 paralpCmd1->SetParameterName(
"paralp",
false,
false);
383 paralpCmd1->SetDefaultUnit(
"rad");
387 partheCmd1->SetGuidance(
"Polar angle through centres of z faces");
388 partheCmd1->SetParameterName(
"parthe",
false,
false);
389 partheCmd1->SetDefaultUnit(
"rad");
393 parphiCmd1->SetGuidance(
"Azimuth angle through centres of z faces");
394 parphiCmd1->SetParameterName(
"parphi",
false,
false);
395 parphiCmd1->SetDefaultUnit(
"rad");
399 confineCmd1->SetGuidance(
"Confine source to volume (NULL to unset).");
400 confineCmd1->SetGuidance(
"usage: confine VolName");
401 confineCmd1->SetParameterName(
"VolName",
false,
false);
402 confineCmd1->SetDefaultValue(
"NULL");
406 typeCmd->SetGuidance(
"Sets source distribution type. (obsolete!)");
407 typeCmd->SetGuidance(
"Either Point, Beam, Plane, Surface or Volume");
408 typeCmd->SetParameterName(
"DisType",
false,
false);
409 typeCmd->SetDefaultValue(
"Point");
410 typeCmd->SetCandidates(
"Point Beam Plane Surface Volume");
413 shapeCmd->SetGuidance(
"Sets source shape type.(obsolete!)");
414 shapeCmd->SetParameterName(
"Shape",
false,
false);
415 shapeCmd->SetDefaultValue(
"NULL");
416 shapeCmd->SetCandidates(
"Circle Annulus Ellipse Square Rectangle Sphere Ellipsoid Cylinder Para");
419 centreCmd->SetGuidance(
"Set centre coordinates of source.(obsolete!)");
420 centreCmd->SetParameterName(
"X",
"Y",
"Z",
false,
false);
421 centreCmd->SetDefaultUnit(
"cm");
425 posrot1Cmd->SetGuidance(
"Set rotation matrix of x'.(obsolete!)");
426 posrot1Cmd->SetGuidance(
"Posrot1 does not need to be a unit vector.");
427 posrot1Cmd->SetParameterName(
"R1x",
"R1y",
"R1z",
false,
false);
428 posrot1Cmd->SetRange(
"R1x != 0 || R1y != 0 || R1z != 0");
431 posrot2Cmd->SetGuidance(
"Set rotation matrix of y'.(obsolete!)");
432 posrot2Cmd->SetGuidance(
"Posrot2 does not need to be a unit vector.");
433 posrot2Cmd->SetParameterName(
"R2x",
"R2y",
"R2z",
false,
false);
434 posrot2Cmd->SetRange(
"R2x != 0 || R2y != 0 || R2z != 0");
437 halfxCmd->SetGuidance(
"Set x half length of source.(obsolete!)");
438 halfxCmd->SetParameterName(
"Halfx",
false,
false);
439 halfxCmd->SetDefaultUnit(
"cm");
443 halfyCmd->SetGuidance(
"Set y half length of source.(obsolete!)");
444 halfyCmd->SetParameterName(
"Halfy",
false,
false);
445 halfyCmd->SetDefaultUnit(
"cm");
449 halfzCmd->SetGuidance(
"Set z half length of source.(obsolete!)");
450 halfzCmd->SetParameterName(
"Halfz",
false,
false);
451 halfzCmd->SetDefaultUnit(
"cm");
455 radiusCmd->SetGuidance(
"Set radius of source.(obsolete!)");
456 radiusCmd->SetParameterName(
"Radius",
false,
false);
457 radiusCmd->SetDefaultUnit(
"cm");
461 radius0Cmd->SetGuidance(
"Set inner radius of source.(obsolete!)");
462 radius0Cmd->SetParameterName(
"Radius0",
false,
false);
463 radius0Cmd->SetDefaultUnit(
"cm");
467 possigmarCmd->SetGuidance(
"Set standard deviation of beam position in radial(obsolete!)");
468 possigmarCmd->SetParameterName(
"Sigmar",
false,
false);
469 possigmarCmd->SetDefaultUnit(
"cm");
473 possigmaxCmd->SetGuidance(
"Set standard deviation of beam position in x-dir(obsolete!)");
474 possigmaxCmd->SetParameterName(
"Sigmax",
false,
false);
475 possigmaxCmd->SetDefaultUnit(
"cm");
479 possigmayCmd->SetGuidance(
"Set standard deviation of beam position in y-dir(obsolete!)");
480 possigmayCmd->SetParameterName(
"Sigmay",
false,
false);
481 possigmayCmd->SetDefaultUnit(
"cm");
485 paralpCmd->SetGuidance(
"Angle from y-axis of y' in Para(obsolete!)");
486 paralpCmd->SetParameterName(
"paralp",
false,
false);
487 paralpCmd->SetDefaultUnit(
"rad");
491 partheCmd->SetGuidance(
"Polar angle through centres of z faces(obsolete!)");
492 partheCmd->SetParameterName(
"parthe",
false,
false);
493 partheCmd->SetDefaultUnit(
"rad");
497 parphiCmd->SetGuidance(
"Azimuth angle through centres of z faces(obsolete!)");
498 parphiCmd->SetParameterName(
"parphi",
false,
false);
499 parphiCmd->SetDefaultUnit(
"rad");
503 confineCmd->SetGuidance(
"Confine source to volume (NULL to unset)(obsolete!) .");
504 confineCmd->SetGuidance(
"usage: confine VolName");
505 confineCmd->SetParameterName(
"VolName",
false,
false);
506 confineCmd->SetDefaultValue(
"NULL");
510 angularDirectory->SetGuidance(
"Angular commands sub-directory");
513 angtypeCmd1->SetGuidance(
"Sets angular source distribution type");
514 angtypeCmd1->SetGuidance(
"Possible variables are: iso, cos, planar, beam1d, beam2d, focused or user");
515 angtypeCmd1->SetParameterName(
"AngDis",
false,
false);
516 angtypeCmd1->SetDefaultValue(
"iso");
517 angtypeCmd1->SetCandidates(
"iso cos planar beam1d beam2d focused user");
520 angrot1Cmd1->SetGuidance(
"Sets the 1st vector for angular distribution rotation matrix");
521 angrot1Cmd1->SetGuidance(
"Need not be a unit vector");
522 angrot1Cmd1->SetParameterName(
"AR1x",
"AR1y",
"AR1z",
false,
false);
523 angrot1Cmd1->SetRange(
"AR1x != 0 || AR1y != 0 || AR1z != 0");
526 angrot2Cmd1->SetGuidance(
"Sets the 2nd vector for angular distribution rotation matrix");
527 angrot2Cmd1->SetGuidance(
"Need not be a unit vector");
528 angrot2Cmd1->SetParameterName(
"AR2x",
"AR2y",
"AR2z",
false,
false);
529 angrot2Cmd1->SetRange(
"AR2x != 0 || AR2y != 0 || AR2z != 0");
532 minthetaCmd1->SetGuidance(
"Set minimum theta");
533 minthetaCmd1->SetParameterName(
"MinTheta",
false,
false);
534 minthetaCmd1->SetDefaultValue(0.);
535 minthetaCmd1->SetDefaultUnit(
"rad");
539 maxthetaCmd1->SetGuidance(
"Set maximum theta");
540 maxthetaCmd1->SetParameterName(
"MaxTheta",
false,
false);
541 maxthetaCmd1->SetDefaultValue(
pi);
542 maxthetaCmd1->SetDefaultUnit(
"rad");
546 minphiCmd1->SetGuidance(
"Set minimum phi");
547 minphiCmd1->SetParameterName(
"MinPhi",
false,
false);
548 minphiCmd1->SetDefaultUnit(
"rad");
552 maxphiCmd1->SetGuidance(
"Set maximum phi");
553 maxphiCmd1->SetParameterName(
"MaxPhi",
false,
false);
554 maxphiCmd1->SetDefaultValue(
pi);
555 maxphiCmd1->SetDefaultUnit(
"rad");
559 angsigmarCmd1->SetGuidance(
"Set standard deviation in direction for 1D beam.");
560 angsigmarCmd1->SetParameterName(
"Sigmara",
false,
false);
561 angsigmarCmd1->SetDefaultUnit(
"rad");
565 angsigmaxCmd1->SetGuidance(
"Set standard deviation in direction in x-direc. for 2D beam");
566 angsigmaxCmd1->SetParameterName(
"Sigmaxa",
false,
false);
567 angsigmaxCmd1->SetDefaultUnit(
"rad");
571 angsigmayCmd1->SetGuidance(
"Set standard deviation in direction in y-direc. for 2D beam");
572 angsigmayCmd1->SetParameterName(
"Sigmaya",
false,
false);
573 angsigmayCmd1->SetDefaultUnit(
"rad");
577 angfocusCmd->SetGuidance(
"Set the focusing point for the beam");
578 angfocusCmd->SetParameterName(
"x",
"y",
"z",
false,
false);
579 angfocusCmd->SetDefaultUnit(
"cm");
583 useuserangaxisCmd1->SetGuidance(
"true for using user defined angular co-ordinates");
584 useuserangaxisCmd1->SetGuidance(
"Default is false");
585 useuserangaxisCmd1->SetParameterName(
"useuserangaxis",
true);
586 useuserangaxisCmd1->SetDefaultValue(
false);
589 surfnormCmd1->SetGuidance(
"Makes a user-defined distribution with respect to surface normals rather than x,y,z axes.");
590 surfnormCmd1->SetGuidance(
"Default is false");
591 surfnormCmd1->SetParameterName(
"surfnorm",
true);
592 surfnormCmd1->SetDefaultValue(
false);
596 angtypeCmd->SetGuidance(
"Sets angular source distribution type (obsolete!)");
597 angtypeCmd->SetGuidance(
"Possible variables are: iso, cos planar beam1d beam2d or user");
598 angtypeCmd->SetParameterName(
"AngDis",
false,
false);
599 angtypeCmd->SetDefaultValue(
"iso");
600 angtypeCmd->SetCandidates(
"iso cos planar beam1d beam2d user");
603 angrot1Cmd->SetGuidance(
"Sets the x' vector for angular distribution(obsolete!) ");
604 angrot1Cmd->SetGuidance(
"Need not be a unit vector");
605 angrot1Cmd->SetParameterName(
"AR1x",
"AR1y",
"AR1z",
false,
false);
606 angrot1Cmd->SetRange(
"AR1x != 0 || AR1y != 0 || AR1z != 0");
609 angrot2Cmd->SetGuidance(
"Sets the y' vector for angular distribution (obsolete!)");
610 angrot2Cmd->SetGuidance(
"Need not be a unit vector");
611 angrot2Cmd->SetParameterName(
"AR2x",
"AR2y",
"AR2z",
false,
false);
612 angrot2Cmd->SetRange(
"AR2x != 0 || AR2y != 0 || AR2z != 0");
615 minthetaCmd->SetGuidance(
"Set minimum theta (obsolete!)");
616 minthetaCmd->SetParameterName(
"MinTheta",
false,
false);
617 minthetaCmd->SetDefaultUnit(
"rad");
621 maxthetaCmd->SetGuidance(
"Set maximum theta (obsolete!)");
622 maxthetaCmd->SetParameterName(
"MaxTheta",
false,
false);
623 maxthetaCmd->SetDefaultValue(3.1416);
624 maxthetaCmd->SetDefaultUnit(
"rad");
628 minphiCmd->SetGuidance(
"Set minimum phi (obsolete!)");
629 minphiCmd->SetParameterName(
"MinPhi",
false,
false);
630 minphiCmd->SetDefaultUnit(
"rad");
634 maxphiCmd->SetGuidance(
"Set maximum phi(obsolete!)");
635 maxphiCmd->SetParameterName(
"MaxPhi",
false,
false);
636 maxphiCmd->SetDefaultUnit(
"rad");
640 angsigmarCmd->SetGuidance(
"Set standard deviation of beam direction in radial(obsolete!).");
641 angsigmarCmd->SetParameterName(
"Sigmara",
false,
false);
642 angsigmarCmd->SetDefaultUnit(
"rad");
646 angsigmaxCmd->SetGuidance(
"Set standard deviation of beam direction in x-direc(obsolete!).");
647 angsigmaxCmd->SetParameterName(
"Sigmaxa",
false,
false);
648 angsigmaxCmd->SetDefaultUnit(
"rad");
652 angsigmayCmd->SetGuidance(
"Set standard deviation of beam direction in y-direc.(obsolete!)");
653 angsigmayCmd->SetParameterName(
"Sigmaya",
false,
false);
654 angsigmayCmd->SetDefaultUnit(
"rad");
658 useuserangaxisCmd->SetGuidance(
"true for using user defined angular co-ordinates(obsolete!)");
659 useuserangaxisCmd->SetGuidance(
"Default is false");
660 useuserangaxisCmd->SetParameterName(
"useuserangaxis",
true);
661 useuserangaxisCmd->SetDefaultValue(
false);
664 surfnormCmd->SetGuidance(
"Makes a user-defined distribution with respect to surface normals rather than x,y,z axes (obsolete!).");
665 surfnormCmd->SetGuidance(
"Default is false");
666 surfnormCmd->SetParameterName(
"surfnorm",
true);
667 surfnormCmd->SetDefaultValue(
false);
672 energyDirectory->SetGuidance(
"Spectral commands sub-directory");
675 energytypeCmd1->SetGuidance(
"Sets energy distribution type");
676 energytypeCmd1->SetParameterName(
"EnergyDis",
false,
false);
677 energytypeCmd1->SetDefaultValue(
"Mono");
678 energytypeCmd1->SetCandidates(
"Mono Lin Pow Exp Gauss Brem Bbody Cdg User Arb Epn");
681 eminCmd1->SetGuidance(
"Sets minimum energy");
682 eminCmd1->SetParameterName(
"emin",
false,
false);
683 eminCmd1->SetDefaultUnit(
"keV");
687 emaxCmd1->SetGuidance(
"Sets maximum energy");
688 emaxCmd1->SetParameterName(
"emax",
false,
false);
689 emaxCmd1->SetDefaultUnit(
"keV");
693 monoenergyCmd1->SetGuidance(
"Sets a monocromatic energy (same as gps/energy)");
694 monoenergyCmd1->SetParameterName(
"monoenergy",
false,
false);
695 monoenergyCmd1->SetDefaultUnit(
"keV");
699 engsigmaCmd1->SetGuidance(
"Sets the standard deviation for Gaussian energy dist.");
700 engsigmaCmd1->SetParameterName(
"Sigmae",
false,
false);
701 engsigmaCmd1->SetDefaultUnit(
"keV");
705 alphaCmd1->SetGuidance(
"Sets Alpha (index) for power-law energy dist.");
706 alphaCmd1->SetParameterName(
"alpha",
false,
false);
709 tempCmd1->SetGuidance(
"Sets the temperature for Brem and BBody distributions (in Kelvin)");
710 tempCmd1->SetParameterName(
"temp",
false,
false);
713 ezeroCmd1->SetGuidance(
"Sets E_0 for exponential distribution (in MeV)");
714 ezeroCmd1->SetParameterName(
"ezero",
false,
false);
717 gradientCmd1->SetGuidance(
"Sets the gradient for Lin distribution (in 1/MeV)");
718 gradientCmd1->SetParameterName(
"gradient",
false,
false);
721 interceptCmd1->SetGuidance(
"Sets the intercept for Lin distributions (in MeV)");
722 interceptCmd1->SetParameterName(
"intercept",
false,
false);
725 arbeintCmd1->SetGuidance(
"Set the power-law index for the energy sampling distri. )");
726 arbeintCmd1->SetParameterName(
"arbeint",
false,
false);
729 calculateCmd1->SetGuidance(
"Calculates the distributions for Cdg and BBody");
732 energyspecCmd1->SetGuidance(
"True for energy and false for momentum spectra");
733 energyspecCmd1->SetParameterName(
"energyspec",
true);
734 energyspecCmd1->SetDefaultValue(
true);
737 diffspecCmd1->SetGuidance(
"True for differential and flase for integral spectra");
738 diffspecCmd1->SetParameterName(
"diffspec",
true);
739 diffspecCmd1->SetDefaultValue(
true);
743 energytypeCmd->SetGuidance(
"Sets energy distribution type (obsolete!)");
744 energytypeCmd->SetParameterName(
"EnergyDis",
false,
false);
745 energytypeCmd->SetDefaultValue(
"Mono");
746 energytypeCmd->SetCandidates(
"Mono Lin Pow Exp Gauss Brem Bbody Cdg User Arb Epn");
749 eminCmd->SetGuidance(
"Sets Emin (obsolete!)");
750 eminCmd->SetParameterName(
"emin",
false,
false);
751 eminCmd->SetDefaultUnit(
"keV");
755 emaxCmd->SetGuidance(
"Sets Emax (obsolete!)");
756 emaxCmd->SetParameterName(
"emax",
false,
false);
757 emaxCmd->SetDefaultUnit(
"keV");
761 monoenergyCmd->SetGuidance(
"Sets Monoenergy (obsolete, use gps/energy instead!)");
762 monoenergyCmd->SetParameterName(
"monoenergy",
false,
false);
763 monoenergyCmd->SetDefaultUnit(
"keV");
767 engsigmaCmd->SetGuidance(
"Sets the standard deviation for Gaussian energy dist.(obsolete!)");
768 engsigmaCmd->SetParameterName(
"Sigmae",
false,
false);
769 engsigmaCmd->SetDefaultUnit(
"keV");
773 alphaCmd->SetGuidance(
"Sets Alpha (index) for power-law energy dist(obsolete!).");
774 alphaCmd->SetParameterName(
"alpha",
false,
false);
777 tempCmd->SetGuidance(
"Sets the temperature for Brem and BBody (in Kelvin)(obsolete!)");
778 tempCmd->SetParameterName(
"temp",
false,
false);
781 ezeroCmd->SetGuidance(
"Sets ezero exponential distributions (in MeV)(obsolete!)");
782 ezeroCmd->SetParameterName(
"ezero",
false,
false);
785 gradientCmd->SetGuidance(
"Sets the gradient for Lin distributions (in 1/MeV)(obsolete!)");
786 gradientCmd->SetParameterName(
"gradient",
false,
false);
789 interceptCmd->SetGuidance(
"Sets the intercept for Lin distributions (in MeV)(obsolete!)");
790 interceptCmd->SetParameterName(
"intercept",
false,
false);
793 calculateCmd->SetGuidance(
"Calculates distributions for Cdg and BBody(obsolete!)");
796 energyspecCmd->SetGuidance(
"True for energy and false for momentum spectra(obsolete!)");
797 energyspecCmd->SetParameterName(
"energyspec",
true);
798 energyspecCmd->SetDefaultValue(
true);
801 diffspecCmd->SetGuidance(
"True for differential and flase for integral spectra(obsolete!)");
802 diffspecCmd->SetParameterName(
"diffspec",
true);
803 diffspecCmd->SetDefaultValue(
true);
807 histDirectory->SetGuidance(
"Histogram, biasing commands sub-directory");
810 histnameCmd1->SetGuidance(
"Sets histogram type");
811 histnameCmd1->SetParameterName(
"HistType",
false,
false);
812 histnameCmd1->SetDefaultValue(
"biasx");
813 histnameCmd1->SetCandidates(
"biasx biasy biasz biast biasp biase biaspt biaspp theta phi energy arb epn");
816 resethistCmd1->SetGuidance(
"Reset (clean) the histogram ");
817 resethistCmd1->SetParameterName(
"HistType",
false,
false);
818 resethistCmd1->SetDefaultValue(
"energy");
819 resethistCmd1->SetCandidates(
"biasx biasy biasz biast biasp biase biaspt biaspp theta phi energy arb epn");
822 histpointCmd1->SetGuidance(
"Allows user to define a histogram");
823 histpointCmd1->SetGuidance(
"Enter: Ehi Weight");
824 histpointCmd1->SetParameterName(
"Ehi",
"Weight",
"Junk",
true,
true);
825 histpointCmd1->SetRange(
"Ehi >= 0. && Weight >= 0.");
828 histfileCmd1->SetGuidance(
"import the arb energy hist in an ASCII file");
829 histfileCmd1->SetParameterName(
"HistFile",
false,
false);
832 arbintCmd1->SetGuidance(
"Sets the interpolation method for arbitrary distribution.");
833 arbintCmd1->SetParameterName(
"int",
false,
false);
834 arbintCmd1->SetDefaultValue(
"Lin");
835 arbintCmd1->SetCandidates(
"Lin Log Exp Spline");
839 histnameCmd->SetGuidance(
"Sets histogram type (obsolete!)");
840 histnameCmd->SetParameterName(
"HistType",
false,
false);
841 histnameCmd->SetDefaultValue(
"biasx");
842 histnameCmd->SetCandidates(
"biasx biasy biasz biast biasp biase biaspt biaspp theta phi energy arb epn");
846 resethistCmd->SetGuidance(
"Re-Set the histogram (obsolete!)");
847 resethistCmd->SetParameterName(
"HistType",
false,
false);
848 resethistCmd->SetDefaultValue(
"energy");
849 resethistCmd->SetCandidates(
"biasx biasy biasz biast biasp biase biaspt biaspp theta phi energy arb epn");
852 histpointCmd->SetGuidance(
"Allows user to define a histogram (obsolete!)");
853 histpointCmd->SetGuidance(
"Enter: Ehi Weight");
854 histpointCmd->SetParameterName(
"Ehi",
"Weight",
"Junk",
false,
false);
855 histpointCmd->SetRange(
"Ehi >= 0. && Weight >= 0.");
858 arbintCmd->SetGuidance(
"Sets Arbitrary Interpolation type.(obsolete!) ");
859 arbintCmd->SetParameterName(
"int",
false,
false);
860 arbintCmd->SetDefaultValue(
"NULL");
861 arbintCmd->SetCandidates(
"Lin Log Exp Spline");
998 #define CHECKPG() { if (fParticleGun==NULL) { \
999 G4Exception("G4GeneralParticleSourceMessenger::SetNewValue","G4GPS003",\
1000 FatalException,"Before using this command set a partilce gun"); return;\
1009 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1010 <<
" The command is obsolete and will be removed soon." <<
G4endl
1011 <<
" Please try to use the new structured commands!" <<
G4endl;
1016 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1017 <<
" The command is obsolete and will be removed soon." <<
G4endl
1018 <<
" Please try to use the new structured commands!" <<
G4endl;
1023 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1024 <<
" The command is obsolete and will be removed soon." <<
G4endl
1025 <<
" Please try to use the new structured commands!" <<
G4endl;
1030 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1031 <<
" The command is obsolete and will be removed soon." <<
G4endl
1032 <<
" Please try to use the new structured commands!" <<
G4endl;
1037 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1038 <<
" The command is obsolete and will be removed soon." <<
G4endl
1039 <<
" Please try to use the new structured commands!" <<
G4endl;
1044 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1045 <<
" The command is obsolete and will be removed soon." <<
G4endl
1046 <<
" Please try to use the new structured commands!" <<
G4endl;
1051 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1052 <<
" The command is obsolete and will be removed soon." <<
G4endl
1053 <<
" Please try to use the new structured commands!" <<
G4endl;
1058 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1059 <<
" The command is obsolete and will be removed soon." <<
G4endl
1060 <<
" Please try to use the new structured commands!" <<
G4endl;
1065 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1066 <<
" The command is obsolete and will be removed soon." <<
G4endl
1067 <<
" Please try to use the new structured commands!" <<
G4endl;
1072 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1073 <<
" The command is obsolete and will be removed soon." <<
G4endl
1074 <<
" Please try to use the new structured commands!" <<
G4endl;
1079 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1080 <<
" The command is obsolete and will be removed soon." <<
G4endl
1081 <<
" Please try to use the new structured commands!" <<
G4endl;
1086 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1087 <<
" The command is obsolete and will be removed soon." <<
G4endl
1088 <<
" Please try to use the new structured commands!" <<
G4endl;
1093 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1094 <<
" The command is obsolete and will be removed soon." <<
G4endl
1095 <<
" Please try to use the new structured commands!" <<
G4endl;
1100 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1101 <<
" The command is obsolete and will be removed soon." <<
G4endl
1102 <<
" Please try to use the new structured commands!" <<
G4endl;
1107 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1108 <<
" The command is obsolete and will be removed soon." <<
G4endl
1109 <<
" Please try to use the new structured commands!" <<
G4endl;
1114 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1115 <<
" The command is obsolete and will be removed soon." <<
G4endl
1116 <<
" Please try to use the new structured commands!" <<
G4endl;
1121 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1122 <<
" The command is obsolete and will be removed soon." <<
G4endl
1123 <<
" Please try to use the new structured commands!" <<
G4endl;
1128 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1129 <<
" The command is obsolete and will be removed soon." <<
G4endl
1130 <<
" Please try to use the new structured commands!" <<
G4endl;
1137 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1138 <<
" The command is obsolete and will be removed soon." <<
G4endl
1139 <<
" Please try to use the new structured commands!" <<
G4endl;
1146 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1147 <<
" The command is obsolete and will be removed soon." <<
G4endl
1148 <<
" Please try to use the new structured commands!" <<
G4endl;
1153 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1154 <<
" The command is obsolete and will be removed soon." <<
G4endl
1155 <<
" Please try to use the new structured commands!" <<
G4endl;
1160 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1161 <<
" The command is obsolete and will be removed soon." <<
G4endl
1162 <<
" Please try to use the new structured commands!" <<
G4endl;
1167 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1168 <<
" The command is obsolete and will be removed soon." <<
G4endl
1169 <<
" Please try to use the new structured commands!" <<
G4endl;
1174 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1175 <<
" The command is obsolete and will be removed soon." <<
G4endl
1176 <<
" Please try to use the new structured commands!" <<
G4endl;
1181 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1182 <<
" The command is obsolete and will be removed soon." <<
G4endl
1183 <<
" Please try to use the new structured commands!" <<
G4endl;
1188 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1189 <<
" The command is obsolete and will be removed soon." <<
G4endl
1190 <<
" Please try to use the new structured commands!" <<
G4endl;
1195 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1196 <<
" The command is obsolete and will be removed soon." <<
G4endl
1197 <<
" Please try to use the new structured commands!" <<
G4endl;
1202 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1203 <<
" The command is obsolete and will be removed soon." <<
G4endl
1204 <<
" Please try to use the new structured commands!" <<
G4endl;
1209 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1210 <<
" The command is obsolete and will be removed soon." <<
G4endl
1211 <<
" Please try to use the new structured commands!" <<
G4endl;
1216 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1217 <<
" The command is obsolete and will be removed soon." <<
G4endl
1218 <<
" Please try to use the new structured commands!" <<
G4endl;
1223 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1224 <<
" The command is obsolete and will be removed soon." <<
G4endl
1225 <<
" Please try to use the new structured commands!" <<
G4endl;
1230 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1231 <<
" The command is obsolete and will be removed soon." <<
G4endl
1232 <<
" Please try to use the new structured commands!" <<
G4endl;
1237 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1238 <<
" The command is obsolete and will be removed soon." <<
G4endl
1239 <<
" Please try to use the new structured commands!" <<
G4endl;
1244 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1245 <<
" The command is obsolete and will be removed soon." <<
G4endl
1246 <<
" Please try to use the new structured commands!" <<
G4endl;
1251 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1252 <<
" The command is obsolete and will be removed soon." <<
G4endl
1253 <<
" Please try to use the new structured commands!" <<
G4endl;
1258 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1259 <<
" The command is obsolete and will be removed soon." <<
G4endl
1260 <<
" Please try to use the new structured commands!" <<
G4endl;
1265 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1266 <<
" The command is obsolete and will be removed soon." <<
G4endl
1267 <<
" Please try to use the new structured commands!" <<
G4endl;
1272 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1273 <<
" The command is obsolete and will be removed soon." <<
G4endl
1274 <<
" Please try to use the new structured commands!" <<
G4endl;
1279 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1280 <<
" The command is obsolete and will be removed soon." <<
G4endl
1281 <<
" Please try to use the new structured commands!" <<
G4endl;
1286 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1287 <<
" The command is obsolete and will be removed soon." <<
G4endl
1288 <<
" Please try to use the new structured commands!" <<
G4endl;
1293 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1294 <<
" The command is obsolete and will be removed soon." <<
G4endl
1295 <<
" Please try to use the new structured commands!" <<
G4endl;
1300 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1301 <<
" The command is obsolete and will be removed soon." <<
G4endl
1302 <<
" Please try to use the new structured commands!" <<
G4endl;
1307 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1308 <<
" The command is obsolete and will be removed soon." <<
G4endl
1309 <<
" Please try to use the new structured commands!" <<
G4endl;
1336 G4cout <<
" G4GeneralParticleSourceMessenger - Warning: The command is obsolete and will be removed soon. Please try to use the new structured commands!" <<
G4endl;
1341 if(newValues ==
"theta" || newValues ==
"phi") {
1343 }
else if (newValues ==
"energy" || newValues ==
"arb" || newValues ==
"epn") {
1348 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1349 <<
" The command is obsolete and will be removed soon." <<
G4endl
1350 <<
" Please try to use the new structured commands!" <<
G4endl;
1356 G4cout <<
" G4GeneralParticleSourceMessenger - Warning:" <<
G4endl
1357 <<
" The command is obsolete and will be removed soon." <<
G4endl
1358 <<
" Please try to use the new structured commands!" <<
G4endl;
1385 if (newValues ==
"ion") {
1396 else if( command==
polCmd )
1400 else if( command==
ionCmd )
1682 if(newValues ==
"theta" || newValues ==
"phi") {
1684 }
else if (newValues ==
"energy" || newValues ==
"arb" || newValues ==
"epn") {
1717 cv =
"Not implemented yet";
1765 G4cout <<
"Set /gps/particle to ion before using /gps/ion command";
1803 G4cout <<
"Set /gps/particle to ion before using /gps/ionLvl command";
void IonCommand(G4String newValues)
static G4GeneralParticleSourceMessenger * GetInstance(G4GeneralParticleSource *)
void SetBeamSigmaInE(G4double)
G4SPSAngDistribution * GetAngDist() const
G4UIcmdWithADoubleAndUnit * maxphiCmd
G4UIcmdWithADoubleAndUnit * possigmaxCmd1
G4SPSEneDistribution * GetEneDist() const
G4UIcmdWithABool * diffspecCmd1
G4UIdirectory * gpsDirectory
G4UIcmdWith3Vector * angrot2Cmd1
void SetParticleTime(G4double aTime)
G4ParticleDefinition * FindParticle(G4int PDGEncoding)
G4int GetCurrentSourceIndex()
~G4GeneralParticleSourceMessenger()
G4UIcmdWith3VectorAndUnit * angfocusCmd
G4UIcmdWithAString * histnameCmd
G4UIcmdWithADoubleAndUnit * possigmayCmd
void AddaSource(G4double)
G4SPSPosDistribution * GetPosDist() const
G4UIcmdWithoutParameter * calculateCmd1
void DumpTable(const G4String &particle_name="ALL")
void SetPosDisType(G4String)
Important: This is a shared class between threads.
void SetParTheta(G4double)
G4UIcmdWithADoubleAndUnit * maxthetaCmd
void SetBeamSigmaInX(G4double)
G4UIcmdWith3Vector * angrot1Cmd1
G4UIcmdWithADouble * arbeintCmd1
void ArbEnergyHisto(G4ThreeVector)
G4UIcmdWithADoubleAndUnit * halfzCmd
G4UIcmdWithADouble * gradientCmd1
static G4int GetNewIntValue(const char *paramString)
G4UIcmdWithAString * confineCmd
void SetBeamSigmaInAngR(G4double)
G4UIcmdWithADoubleAndUnit * radius0Cmd1
G4UIcmdWith3VectorAndUnit * centreCmd
G4UIcmdWithADouble * interceptCmd1
Andrea Dotti Feb 2015 GPS messenger design requires some explanation for what distributions parameter...
G4UIcmdWithAString * particleCmd
G4UIcmdWithAString * histfileCmd1
G4ParticleDefinition * GetIon(G4int Z, G4int A, G4int lvl=0)
G4UIcmdWithADoubleAndUnit * paralpCmd1
G4UIcmdWith3Vector * angrot2Cmd
void SetMultipleVertex(G4bool av)
G4UIcmdWith3Vector * histpointCmd1
G4UIcmdWithADoubleAndUnit * parphiCmd1
static G4ThreeVector GetNew3VectorValue(const char *paramString)
void SetDefaultValue(const char *theDefaultValue)
void SetParAlpha(G4double)
G4UIcmdWithADouble * gradientCmd
G4UIcmdWithADoubleAndUnit * paralpCmd
G4UIcmdWithADoubleAndUnit * halfxCmd1
void SetBeamSigmaInAngY(G4double)
G4UIdirectory * sourceDirectory
G4UIcmdWithADoubleAndUnit * minthetaCmd
void SetMinTheta(G4double)
void SetEnergyBias(G4ThreeVector)
void SetNewValue(G4UIcommand *command, G4String newValues)
void SetUseUserAngAxis(G4bool)
void SetYBias(G4ThreeVector)
G4UIcmdWithAString * angtypeCmd1
G4UIcmdWithADoubleAndUnit * emaxCmd1
static G4double GetNewDoubleValue(const char *paramString)
G4UIcmdWithABool * useuserangaxisCmd1
G4UIcmdWithAnInteger * setsourceCmd
void SetCurrentSourceIntensity(G4double)
void SetPosThetaBias(G4ThreeVector)
G4UIcmdWithoutParameter * clearsourceCmd
G4UIcmdWithABool * energyspecCmd1
G4UIcmdWithADouble * setintensityCmd
static G4bool GetNewBoolValue(const char *paramString)
#define G4MUTEX_INITIALIZER
G4UIcmdWithABool * multiplevertexCmd
void SetThetaBias(G4ThreeVector)
G4UIdirectory * positionDirectory
G4ParticleTable * particleTable
void SetZBias(G4ThreeVector)
void SetXBias(G4ThreeVector)
G4UIcmdWithAString * shapeCmd
G4UIcmdWithADouble * interceptCmd
G4UIdirectory * energyDirectory
G4UIcmdWithADoubleAndUnit * minphiCmd
G4UIcmdWithADouble * tempCmd
G4UIcmdWithAnInteger * numberCmd
G4UIcmdWithADoubleAndUnit * angsigmarCmd1
G4UIcmdWithADoubleAndUnit * possigmarCmd1
G4UIcmdWithABool * surfnormCmd1
void UserDefAngPhi(G4ThreeVector)
G4UIcmdWith3Vector * polCmd
G4UIcmdWithAString * arbintCmd1
void UserDefAngTheta(G4ThreeVector)
G4GLOB_DLL std::ostream G4cout
G4UIcmdWith3Vector * directionCmd
void SetCentreCoords(G4ThreeVector)
G4UIcmdWithABool * flatsamplingCmd
static G4ThreeVector GetNew3VectorValue(const char *paramString)
G4UIcmdWithADoubleAndUnit * angsigmayCmd1
G4UIcmdWith3Vector * angrot1Cmd
void SetEnergyDisType(G4String)
void SetBeamSigmaInR(G4double)
G4UIcmdWith3VectorAndUnit * positionCmd
G4UIcmdWithADoubleAndUnit * angsigmaxCmd1
G4UIcmdWithoutParameter * listsourceCmd
G4UIcmdWithADoubleAndUnit * angsigmaxCmd
G4UIcmdWithoutParameter * listCmd
G4UIcmdWithADoubleAndUnit * maxthetaCmd1
G4UIcmdWithABool * diffspecCmd
G4SPSRandomGenerator * GetBiasRndm() const
G4GeneralParticleSourceMessenger(G4GeneralParticleSource *)
G4UIcmdWith3Vector * posrot1Cmd1
G4UIcmdWithAString * shapeCmd1
static G4double GetNewDoubleValue(const char *paramString)
G4GeneralParticleSource * fGPS
G4UIcmdWithADoubleAndUnit * energyCmd
void DefineAngRefAxes(G4String, G4ThreeVector)
void SetParticlePolarization(G4ThreeVector aVal)
void SetParticleDefinition(G4ParticleDefinition *aParticleDefinition)
void SetPosRot1(G4ThreeVector)
G4UIdirectory * histDirectory
G4double GetCurrentSourceIntensity()
G4UIcmdWithAString * histnameCmd1
G4UIcmdWithAnInteger * verbosityCmd
G4UIcmdWithADoubleAndUnit * radiusCmd
G4UIcmdWithADoubleAndUnit * possigmayCmd1
void IonLvlCommand(G4String newValues)
void SetPosDisShape(G4String)
G4UIcmdWithoutParameter * getsourceCmd
G4UIcmdWithADoubleAndUnit * parphiCmd
G4UIcmdWithADoubleAndUnit * monoenergyCmd
G4UIcmdWithADoubleAndUnit * halfyCmd1
static G4IonTable * GetIonTable()
void ArbInterpolate(G4String)
void EpnEnergyHisto(G4ThreeVector)
G4String GetCurrentValue(G4UIcommand *command)
G4double fIonExciteEnergy
G4UIcmdWithADoubleAndUnit * angsigmayCmd
void SetPhiBias(G4ThreeVector)
G4UIcmdWithABool * energyspecCmd
G4UIcmdWith3Vector * posrot1Cmd
G4UIcmdWithADoubleAndUnit * engsigmaCmd1
void InputEnergySpectra(G4bool)
G4UIcmdWith3VectorAndUnit * centreCmd1
G4UIcmdWithADouble * tempCmd1
G4UIcmdWithAString * arbintCmd
G4UIcmdWithAString * confineCmd1
void SetAngDistType(G4String)
G4UIcmdWithADoubleAndUnit * halfzCmd1
Andrea Dotti Feb 2015 GPS messenger design requires some explanation for what distributions parameter...
G4UIcmdWithADoubleAndUnit * partheCmd1
G4UIcmdWithABool * useuserangaxisCmd
static G4ParticleTable * GetParticleTable()
G4SingleParticleSource * fParticleGun
G4UIcmdWithAString * typeCmd
G4UIcmdWithADoubleAndUnit * maxphiCmd1
G4UIcmdWith3Vector * histpointCmd
G4UIcmdWithADoubleAndUnit * partheCmd
G4UIcmdWithADoubleAndUnit * eminCmd
void SetGradient(G4double)
void UserEnergyHisto(G4ThreeVector)
G4double StoD(G4String s)
void SetPosRot2(G4ThreeVector)
G4UIcmdWith3Vector * posrot2Cmd1
void SetInterCept(G4double)
G4UIcmdWith3Vector * posrot2Cmd
void InputDifferentialSpectra(G4bool)
void SetFocusPoint(G4ThreeVector)
void SetParticleMomentumDirection(G4ParticleMomentum aMomentumDirection)
G4UIcmdWithAString * typeCmd1
G4UIcmdWithADoubleAndUnit * radius0Cmd
G4UIcmdWithoutParameter * calculateCmd
G4UIcmdWithADoubleAndUnit * possigmaxCmd
G4UIcmdWithADoubleAndUnit * halfxCmd
G4UIcmdWithADouble * alphaCmd1
G4UIcmdWithABool * surfnormCmd
void SetBiasAlpha(G4double)
G4UIcmdWithADoubleAndUnit * minphiCmd1
void DeleteaSource(G4int)
G4UIcmdWithADoubleAndUnit * eminCmd1
G4UIcmdWithADouble * ezeroCmd1
G4UIcmdWithADoubleAndUnit * minthetaCmd1
G4UIcmdWithADoubleAndUnit * radiusCmd1
G4UIcmdWithADoubleAndUnit * halfyCmd
G4UIcmdWithADouble * addsourceCmd
void SetCurrentSourceto(G4int)
G4UIcmdWithADoubleAndUnit * emaxCmd
G4UIcmdWithAString * angtypeCmd
void ArbEnergyHistoFile(G4String)
void SetUserWRTSurface(G4bool)
void SetParticleCharge(G4double aCharge)
G4UIcmdWithADoubleAndUnit * engsigmaCmd
G4UIcmdWithAnInteger * deletesourceCmd
G4UIcmdWithAString * energytypeCmd
static const double eplus
void ConfineSourceToVolume(G4String)
void SetFlatSampling(G4bool av)
void SetMaxTheta(G4double)
G4UIcmdWithADoubleAndUnit * monoenergyCmd1
G4UIcmdWithAString * energytypeCmd1
G4UIcmdWithAString * resethistCmd1
void SetRadius0(G4double)
G4UIcmdWithADoubleAndUnit * angsigmarCmd
G4UIcmdWithADouble * ezeroCmd
G4UIcmdWithADoubleAndUnit * possigmarCmd
G4UIcmdWithAString * resethistCmd
void SetBeamSigmaInY(G4double)
G4UIcmdWithADoubleAndUnit * timeCmd
void SetNumberOfParticles(G4int i)
void SetMonoEnergy(G4double)
G4UIdirectory * angularDirectory
void SetPosPhiBias(G4ThreeVector)
void SetBeamSigmaInAngX(G4double)
G4UIcmdWithADouble * alphaCmd