35#if ( defined(G4GEOM_USE_USOLIDS) || defined(G4GEOM_USE_PARTIAL_USOLIDS) )
46G4UHype::G4UHype(
const G4String& pName,
52 : Base_t(pName, newInnerRadius, newOuterRadius,
53 newInnerStereo, newOuterStereo, newHalfLenZ)
60G4UHype::G4UHype(
const G4UHype& rhs)
68G4UHype& G4UHype::operator = (
const G4UHype& rhs)
72 if (
this == &rhs) {
return *
this; }
76 Base_t::operator=(rhs);
85G4double G4UHype::GetInnerRadius ()
const
90G4double G4UHype::GetOuterRadius ()
const
95G4double G4UHype::GetZHalfLength ()
const
100G4double G4UHype::GetInnerStereo ()
const
105G4double G4UHype::GetOuterStereo ()
const
114void G4UHype::SetInnerRadius (
G4double newIRad)
116 SetParameters(newIRad, GetRmax(), GetStIn(), GetStOut(), GetDz());
117 fRebuildPolyhedron =
true;
120void G4UHype::SetOuterRadius (
G4double newORad)
122 SetParameters(GetRmin(), newORad, GetStIn(), GetStOut(), GetDz());
123 fRebuildPolyhedron =
true;
126void G4UHype::SetZHalfLength (
G4double newHLZ)
128 SetParameters(GetRmin(), GetRmax(), GetStIn(), GetStOut(), newHLZ);
129 fRebuildPolyhedron =
true;
132void G4UHype::SetInnerStereo (
G4double newISte)
134 SetParameters(GetRmin(), GetRmax(), newISte, GetStOut(), GetDz());
135 fRebuildPolyhedron =
true;
138void G4UHype::SetOuterStereo (
G4double newOSte)
140 SetParameters(GetRmin(), GetRmax(), GetStIn(), newOSte, GetDz());
141 fRebuildPolyhedron =
true;
164 return new G4UHype(*
this);
174 G4double endORadius = GetEndInnerRadius();
175 pMin.
set(-endORadius,-endORadius,-GetDz());
176 pMax.
set( endORadius, endORadius, GetDz());
180 if (pMin.
x() >= pMax.
x() || pMin.
y() >= pMax.
y() || pMin.
z() >= pMax.
z())
182 std::ostringstream message;
183 message <<
"Bad bounding box (min >= max) for solid: "
185 <<
"\npMin = " << pMin
186 <<
"\npMax = " << pMax;
187 G4Exception(
"G4UHype::BoundingLimits()",
"GeomMgt0001",
198G4UHype::CalculateExtent(
const EAxis pAxis,
206 BoundingLimits(bmin,bmax);
210 return bbox.CalculateExtent(pAxis,pVoxelLimit,pTransform,pMin,pMax);
220 GetTIn2(), GetTOut2(), GetDz());
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...
G4Hype is a tube with hyperbolic profile; it describes an hyperbolic volume with curved sides paralle...
G4VPVParameterisation ia an abstract base class for Parameterisation, able to compute the transformat...
virtual void ComputeDimensions(G4Box &, const G4int, const G4VPhysicalVolume *) const
G4VPhysicalVolume is an abstract base class for the representation of a positioned volume....
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...