85 if (!pGPSData)
return;
88 for (
G4int iSource = 0; iSource < nSources; ++iSource) {
91 if (!pCurrentSingleSource)
return;
94 if (!pSPSPosDistribution)
return;
125 G4double smallHalfThickness = 10.*surfaceTolerance;
131 if (
Type ==
"Point") {
141 }
else if (
Type ==
"Plane") {
145 if (Shape ==
"Circle") {
147 (
G4Tubs(
"GPS_Circle",0.,Radius,smallHalfThickness,0.,twopi));
148 }
else if (Shape ==
"Annulus") {
150 (
G4Tubs(
"GPS_Annulus",Radius0,Radius,smallHalfThickness,0.,twopi));
151 }
else if (Shape ==
"Ellipse") {
154 }
else if (Shape ==
"Square") {
156 (
G4Box(
"GPS_Ellipse",halfx,halfx,smallHalfThickness));
157 }
else if (Shape ==
"Rectangle") {
159 (
G4Box(
"GPS_Rectangle",halfx,halfy,smallHalfThickness));
163 }
else if (
Type ==
"Surface" ||
Type ==
"Volume") {
168 if (Shape ==
"Sphere") {
170 (
G4Orb(
"GPS_Sphere",Radius));
171 }
else if (Shape ==
"Ellipsoid") {
174 }
else if (Shape ==
"Cylinder") {
176 (
G4Tubs(
"GPS_Cylinder",0.,Radius, halfz, 0., twopi));
177 }
else if (Shape ==
"Para") {
179 (
G4Para(
"GPS_Para",halfx,halfy,halfz,ParAlpha,ParTheta,ParPhi));
G4SingleParticleSource * GetCurrentSource(G4int idx)
G4int GetSourceVectorSize() const
static G4GeneralParticleSourceData * Instance()
G4SPSPosDistribution * GetPosDist() const