34#if ( defined(G4GEOM_USE_USOLIDS) || defined(G4GEOM_USE_PARTIAL_USOLIDS) )
47G4UParaboloid::G4UParaboloid(
const G4String& pName,
51 : Base_t(pName, rlo, rhi, dz)
58G4UParaboloid::G4UParaboloid(
const G4UParaboloid& rhs)
66G4UParaboloid& G4UParaboloid::operator = (
const G4UParaboloid& rhs)
70 if (
this == &rhs) {
return *
this; }
74 Base_t::operator=(rhs);
83G4double G4UParaboloid::GetZHalfLength()
const
88G4double G4UParaboloid::GetRadiusMinusZ()
const
93G4double G4UParaboloid::GetRadiusPlusZ()
const
102void G4UParaboloid::SetZHalfLength(
G4double dz)
107void G4UParaboloid::SetRadiusMinusZ(
G4double r1)
112void G4UParaboloid::SetRadiusPlusZ(
G4double r2)
121G4VSolid* G4UParaboloid::Clone()
const
123 return new G4UParaboloid(*
this);
133 static G4bool checkBBox =
true;
137 pMin.
set(-r2,-r2,-dz);
138 pMax.
set( r2, r2, dz);
142 if (pMin.
x() >= pMax.
x() || pMin.
y() >= pMax.
y() || pMin.
z() >= pMax.
z())
144 std::ostringstream message;
145 message <<
"Bad bounding box (min >= max) for solid: "
147 <<
"\npMin = " << pMin
148 <<
"\npMax = " << pMax;
149 G4Exception(
"G4UParaboloid::BoundingLimits()",
"GeomMgt0001",
167 std::ostringstream message;
168 message <<
"Inconsistency in bounding boxes for solid: "
170 <<
"\nBBox min: wrapper = " << pMin <<
" solid = " << vmin
171 <<
"\nBBox max: wrapper = " << pMax <<
" solid = " << vmax;
172 G4Exception(
"G4UParaboloid::BoundingLimits()",
"GeomMgt0001",
184G4UParaboloid::CalculateExtent(
const EAxis pAxis,
192 BoundingLimits(bmin,bmax);
196 return bbox.CalculateExtent(pAxis,pVoxelLimit,pTransform,pMin,pMax);
207 GetZHalfLength(), 0., twopi);
const G4double kCarTolerance
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
CLHEP::Hep3Vector G4ThreeVector
G4GLOB_DLL std::ostream G4cout
void set(double x, double y, double z)
G4BoundingEnvelope is a helper class to facilitate calculation of the extent of a solid within the li...
G4VSolid is an abstract base class for solids, physical shapes that can be tracked through....
G4VoxelLimits represents limitation/restrictions of space, where restrictions are only made perpendic...