1533 if (r1 < 0. || r2 <= 0.) k = 1;
1535 if (dz <= 0.) k += 2;
1541 phi2 = sPhi; phi1 = phi2 + dPhi;
1545 phi1 = sPhi; phi2 = phi1 + wholeCircle;
1549 phi1 = sPhi; phi2 = phi1 + dPhi;
1553 if (std::abs(dphi-wholeCircle) <
perMillion) dphi = wholeCircle;
1554 if (dphi > wholeCircle) k += 4;
1557 std::cerr <<
"HepPolyhedronParaboloid: error in input parameters";
1558 if ((k & 1) != 0) std::cerr <<
" (radiuses)";
1559 if ((k & 2) != 0) std::cerr <<
" (half-length)";
1560 if ((k & 4) != 0) std::cerr <<
" (angles)";
1561 std::cerr << std::endl;
1562 std::cerr <<
" r1=" << r1;
1563 std::cerr <<
" r2=" << r2;
1564 std::cerr <<
" dz=" << dz <<
" sPhi=" << sPhi <<
" dPhi=" << dPhi
1573 G4double k1 = (r2*r2 - r1*r1) / 2 / dz;
1581 for(
G4int i = 1; i < n - 1; i++)
1583 rr[i] = rr[i-1] - dl;
1584 zz[i] = (rr[i]*rr[i] - k2) / k1;
static constexpr double perMillion
static constexpr double twopi
void RotateAroundZ(G4int nstep, G4double phi, G4double dphi, G4int np1, G4int np2, const G4double *z, G4double *r, G4int nodeVis, G4int edgeVis)
static G4int GetNumberOfRotationSteps()