38 #if ( defined(G4GEOM_USE_USOLIDS) || defined(G4GEOM_USE_PARTIAL_USOLIDS) )
51 G4UParaboloid::G4UParaboloid(
const G4String& pName,
55 : G4USolid(pName, new UParaboloid(pName, rlo, rhi, dz))
63 G4UParaboloid::G4UParaboloid( __void__&
a )
71 G4UParaboloid::~G4UParaboloid() { }
77 G4UParaboloid::G4UParaboloid(
const G4UParaboloid& rhs)
85 G4UParaboloid& G4UParaboloid::operator = (
const G4UParaboloid& rhs)
89 if (
this == &rhs) {
return *
this; }
93 G4USolid::operator=(rhs);
102 G4double G4UParaboloid::GetZHalfLength()
const
104 return GetShape()->GetDz();
107 G4double G4UParaboloid::GetRadiusMinusZ()
const
109 return GetShape()->GetRlo();
112 G4double G4UParaboloid::GetRadiusPlusZ()
const
114 return GetShape()->GetRhi();
121 G4VSolid* G4UParaboloid::Clone()
const
123 return new G4UParaboloid(*
this);
132 static G4bool checkBBox =
true;
136 pMin.set(-r2,-r2,-dz);
137 pMax.set( r2, r2, dz);
141 if (pMin.x() >= pMax.x() || pMin.y() >= pMax.y() || pMin.z() >= pMax.z())
143 std::ostringstream message;
144 message <<
"Bad bounding box (min >= max) for solid: "
146 <<
"\npMin = " << pMin
147 <<
"\npMax = " << pMax;
157 GetShape()->Extent(vmin,vmax);
165 std::ostringstream message;
166 message <<
"Inconsistency in bounding boxes for solid: "
168 <<
"\nBBox min: wrapper = " << pMin <<
" solid = " << vmin
169 <<
"\nBBox max: wrapper = " << pMax <<
" solid = " << vmax;
181 G4UParaboloid::CalculateExtent(
const EAxis pAxis,
193 return bbox.CalculateExtent(pAxis,pVoxelLimit,pTransform,pMin,pMax);
204 GetZHalfLength(), 0.,
twopi);
207 #endif // G4GEOM_USE_USOLIDS
CLHEP::Hep3Vector G4ThreeVector
std::vector< ExP01TrackerHit * > a
static constexpr double twopi
G4GLOB_DLL std::ostream G4cout
const G4double kCarTolerance
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)