34#if ( defined(G4GEOM_USE_USOLIDS) || defined(G4GEOM_USE_PARTIAL_USOLIDS) )
47G4UParaboloid::G4UParaboloid(
const G4String& pName,
51 : Base_t(pName, rlo, rhi, dz)
59G4UParaboloid::G4UParaboloid( __void__& a )
67G4UParaboloid::~G4UParaboloid() =
default;
73G4UParaboloid::G4UParaboloid(
const G4UParaboloid& rhs)
81G4UParaboloid& G4UParaboloid::operator = (
const G4UParaboloid& rhs)
85 if (
this == &rhs) {
return *
this; }
89 Base_t::operator=(rhs);
98G4double G4UParaboloid::GetZHalfLength()
const
103G4double G4UParaboloid::GetRadiusMinusZ()
const
108G4double G4UParaboloid::GetRadiusPlusZ()
const
117void G4UParaboloid::SetZHalfLength(
G4double dz)
122void G4UParaboloid::SetRadiusMinusZ(
G4double r1)
127void G4UParaboloid::SetRadiusPlusZ(
G4double r2)
136G4VSolid* G4UParaboloid::Clone()
const
138 return new G4UParaboloid(*
this);
148 static G4bool checkBBox =
true;
152 pMin.
set(-r2,-r2,-dz);
153 pMax.
set( r2, r2, dz);
157 if (pMin.
x() >= pMax.
x() || pMin.
y() >= pMax.
y() || pMin.
z() >= pMax.
z())
159 std::ostringstream message;
160 message <<
"Bad bounding box (min >= max) for solid: "
162 <<
"\npMin = " << pMin
163 <<
"\npMax = " << pMax;
164 G4Exception(
"G4UParaboloid::BoundingLimits()",
"GeomMgt0001",
182 std::ostringstream message;
183 message <<
"Inconsistency in bounding boxes for solid: "
185 <<
"\nBBox min: wrapper = " << pMin <<
" solid = " << vmin
186 <<
"\nBBox max: wrapper = " << pMax <<
" solid = " << vmax;
187 G4Exception(
"G4UParaboloid::BoundingLimits()",
"GeomMgt0001",
199G4UParaboloid::CalculateExtent(
const EAxis pAxis,
207 BoundingLimits(bmin,bmax);
211 return bbox.CalculateExtent(pAxis,pVoxelLimit,pTransform,pMin,pMax);
222 GetZHalfLength(), 0., twopi);
const G4double kCarTolerance
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
G4GLOB_DLL std::ostream G4cout
void set(double x, double y, double z)