Geant4  10.01.p02
G4Hype Class Reference

#include <G4Hype.hh>

+ Inheritance diagram for G4Hype:
+ Collaboration diagram for G4Hype:

Public Member Functions

 G4Hype (const G4String &pName, G4double newInnerRadius, G4double newOuterRadius, G4double newInnerStereo, G4double newOuterStereo, G4double newHalfLenZ)
 
virtual ~G4Hype ()
 
void ComputeDimensions (G4VPVParameterisation *p, const G4int n, const G4VPhysicalVolume *pRep)
 
G4bool CalculateExtent (const EAxis pAxis, const G4VoxelLimits &pVoxelLimit, const G4AffineTransform &pTransform, G4double &pmin, G4double &pmax) const
 
G4double GetInnerRadius () const
 
G4double GetOuterRadius () const
 
G4double GetZHalfLength () const
 
G4double GetInnerStereo () const
 
G4double GetOuterStereo () const
 
void SetInnerRadius (G4double newIRad)
 
void SetOuterRadius (G4double newORad)
 
void SetZHalfLength (G4double newHLZ)
 
void SetInnerStereo (G4double newISte)
 
void SetOuterStereo (G4double newOSte)
 
EInside Inside (const G4ThreeVector &p) const
 
G4ThreeVector SurfaceNormal (const G4ThreeVector &p) const
 
G4double DistanceToIn (const G4ThreeVector &p, const G4ThreeVector &v) const
 
G4double DistanceToIn (const G4ThreeVector &p) const
 
G4double DistanceToOut (const G4ThreeVector &p, const G4ThreeVector &v, const G4bool calcNorm=G4bool(false), G4bool *validNorm=0, G4ThreeVector *n=0) const
 
G4double DistanceToOut (const G4ThreeVector &p) const
 
G4GeometryType GetEntityType () const
 
G4VSolidClone () const
 
std::ostream & StreamInfo (std::ostream &os) const
 
G4double GetCubicVolume ()
 
G4double GetSurfaceArea ()
 
G4ThreeVector GetPointOnSurface () const
 
void DescribeYourselfTo (G4VGraphicsScene &scene) const
 
G4VisExtent GetExtent () const
 
G4PolyhedronCreatePolyhedron () const
 
G4PolyhedronGetPolyhedron () const
 
 G4Hype (__void__ &)
 
 G4Hype (const G4Hype &rhs)
 
G4Hypeoperator= (const G4Hype &rhs)
 
- Public Member Functions inherited from G4VSolid
 G4VSolid (const G4String &name)
 
virtual ~G4VSolid ()
 
G4bool operator== (const G4VSolid &s) const
 
G4String GetName () const
 
void SetName (const G4String &name)
 
G4double GetTolerance () const
 
void DumpInfo () const
 
virtual const G4VSolidGetConstituentSolid (G4int no) const
 
virtual G4VSolidGetConstituentSolid (G4int no)
 
virtual const G4DisplacedSolidGetDisplacedSolidPtr () const
 
virtual G4DisplacedSolidGetDisplacedSolidPtr ()
 
 G4VSolid (__void__ &)
 
 G4VSolid (const G4VSolid &rhs)
 
G4VSolidoperator= (const G4VSolid &rhs)
 

Protected Types

enum  ESide { outerFace, innerFace, leftCap, rightCap }
 

Protected Member Functions

G4bool InnerSurfaceExists () const
 
G4double HypeInnerRadius2 (G4double zVal) const
 
G4double HypeOuterRadius2 (G4double zVal) const
 
- Protected Member Functions inherited from G4VSolid
void CalculateClippedPolygonExtent (G4ThreeVectorList &pPolygon, const G4VoxelLimits &pVoxelLimit, const EAxis pAxis, G4double &pMin, G4double &pMax) const
 
void ClipCrossSection (G4ThreeVectorList *pVertices, const G4int pSectionIndex, const G4VoxelLimits &pVoxelLimit, const EAxis pAxis, G4double &pMin, G4double &pMax) const
 
void ClipBetweenSections (G4ThreeVectorList *pVertices, const G4int pSectionIndex, const G4VoxelLimits &pVoxelLimit, const EAxis pAxis, G4double &pMin, G4double &pMax) const
 
void ClipPolygon (G4ThreeVectorList &pPolygon, const G4VoxelLimits &pVoxelLimit, const EAxis pAxis) const
 
G4double EstimateCubicVolume (G4int nStat, G4double epsilon) const
 
G4double EstimateSurfaceArea (G4int nStat, G4double ell) const
 

Static Protected Member Functions

static G4double ApproxDistOutside (G4double pr, G4double pz, G4double r0, G4double tanPhi)
 
static G4double ApproxDistInside (G4double pr, G4double pz, G4double r0, G4double tan2Phi)
 
static G4int IntersectHype (const G4ThreeVector &p, const G4ThreeVector &v, G4double r2, G4double tan2Phi, G4double s[2])
 
static void AddPolyToExtent (const G4ThreeVector &v0, const G4ThreeVector &v1, const G4ThreeVector &w1, const G4ThreeVector &w0, const G4VoxelLimits &voxelLimit, const EAxis axis, G4SolidExtentList &extentList)
 

Protected Attributes

G4double innerRadius
 
G4double outerRadius
 
G4double halfLenZ
 
G4double innerStereo
 
G4double outerStereo
 
G4double tanInnerStereo
 
G4double tanOuterStereo
 
G4double tanInnerStereo2
 
G4double tanOuterStereo2
 
G4double innerRadius2
 
G4double outerRadius2
 
G4double endInnerRadius2
 
G4double endOuterRadius2
 
G4double endInnerRadius
 
G4double endOuterRadius
 
- Protected Attributes inherited from G4VSolid
G4double kCarTolerance
 

Private Member Functions

G4double asinh (G4double arg)
 

Private Attributes

G4double fCubicVolume
 
G4double fSurfaceArea
 
G4double fHalfTol
 
G4bool fRebuildPolyhedron
 
G4PolyhedronfpPolyhedron
 

Detailed Description

Definition at line 67 of file G4Hype.hh.

Member Enumeration Documentation

enum G4Hype::ESide
protected
Enumerator
outerFace 
innerFace 
leftCap 
rightCap 

Definition at line 189 of file G4Hype.hh.

Constructor & Destructor Documentation

G4Hype::G4Hype ( const G4String pName,
G4double  newInnerRadius,
G4double  newOuterRadius,
G4double  newInnerStereo,
G4double  newOuterStereo,
G4double  newHalfLenZ 
)

Definition at line 74 of file G4Hype.cc.

References FatalErrorInArgument, fHalfTol, G4endl, G4Exception(), G4VSolid::GetName(), halfLenZ, innerRadius, innerRadius2, G4VSolid::kCarTolerance, mm, outerRadius, outerRadius2, SetInnerStereo(), and SetOuterStereo().

Referenced by Clone().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4Hype::~G4Hype ( )
virtual

Definition at line 152 of file G4Hype.cc.

References fpPolyhedron.

G4Hype::G4Hype ( __void__ &  a)

Definition at line 138 of file G4Hype.cc.

G4Hype::G4Hype ( const G4Hype rhs)

Definition at line 161 of file G4Hype.cc.

Member Function Documentation

void G4Hype::AddPolyToExtent ( const G4ThreeVector v0,
const G4ThreeVector v1,
const G4ThreeVector w1,
const G4ThreeVector w0,
const G4VoxelLimits voxelLimit,
const EAxis  axis,
G4SolidExtentList extentList 
)
staticprotected

Definition at line 487 of file G4Hype.cc.

References G4SolidExtentList::AddSurface(), G4ClippablePolygon::AddVertexInOrder(), G4ClippablePolygon::PartialClip(), and G4ClippablePolygon::SetNormal().

Referenced by CalculateExtent().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4Hype::ApproxDistInside ( G4double  pr,
G4double  pz,
G4double  r0,
G4double  tan2Phi 
)
staticprotected

Definition at line 1338 of file G4Hype.cc.

References DBL_MIN.

Referenced by DistanceToIn(), and DistanceToOut().

+ Here is the caller graph for this function:

G4double G4Hype::ApproxDistOutside ( G4double  pr,
G4double  pz,
G4double  r0,
G4double  tanPhi 
)
staticprotected

Definition at line 1280 of file G4Hype.cc.

References DBL_MIN, and r0.

Referenced by DistanceToIn(), and DistanceToOut().

+ Here is the caller graph for this function:

G4double G4Hype::asinh ( G4double  arg)
private

Definition at line 1581 of file G4Hype.cc.

References sqr().

+ Here is the call graph for this function:

G4bool G4Hype::CalculateExtent ( const EAxis  pAxis,
const G4VoxelLimits pVoxelLimit,
const G4AffineTransform pTransform,
G4double pmin,
G4double pmax 
) const
virtual
G4VSolid * G4Hype::Clone ( ) const
virtual

Reimplemented from G4VSolid.

Definition at line 1371 of file G4Hype.cc.

References G4Hype().

+ Here is the call graph for this function:

void G4Hype::ComputeDimensions ( G4VPVParameterisation p,
const G4int  n,
const G4VPhysicalVolume pRep 
)
virtual

Reimplemented from G4VSolid.

Definition at line 212 of file G4Hype.cc.

References G4VPVParameterisation::ComputeDimensions().

+ Here is the call graph for this function:

G4Polyhedron * G4Hype::CreatePolyhedron ( ) const
virtual

Reimplemented from G4VSolid.

Definition at line 1551 of file G4Hype.cc.

References halfLenZ, innerRadius, outerRadius, tanInnerStereo2, and tanOuterStereo2.

Referenced by GetPolyhedron().

+ Here is the caller graph for this function:

void G4Hype::DescribeYourselfTo ( G4VGraphicsScene scene) const
virtual

Implements G4VSolid.

Definition at line 1529 of file G4Hype.cc.

References G4VGraphicsScene::AddSolid().

+ Here is the call graph for this function:

G4double G4Hype::DistanceToIn ( const G4ThreeVector p,
const G4ThreeVector v 
) const
virtual

Implements G4VSolid.

Definition at line 603 of file G4Hype.cc.

References DBL_EPSILON, DBL_MIN, endInnerRadius, endInnerRadius2, endOuterRadius, endOuterRadius2, fHalfTol, halfLenZ, HypeInnerRadius2(), HypeOuterRadius2(), innerRadius2, innerStereo, InnerSurfaceExists(), IntersectHype(), G4VSolid::kCarTolerance, kInfinity, n, outerRadius2, tanInnerStereo2, and tanOuterStereo2.

+ Here is the call graph for this function:

G4double G4Hype::DistanceToIn ( const G4ThreeVector p) const
virtual

Implements G4VSolid.

Definition at line 898 of file G4Hype.cc.

References ApproxDistInside(), ApproxDistOutside(), endInnerRadius, endOuterRadius, fHalfTol, halfLenZ, HypeInnerRadius2(), innerRadius, InnerSurfaceExists(), G4VSolid::kCarTolerance, outerRadius, tanInnerStereo2, tanOuterStereo, and tanOuterStereo2.

+ Here is the call graph for this function:

G4double G4Hype::DistanceToOut ( const G4ThreeVector p,
const G4ThreeVector v,
const G4bool  calcNorm = G4bool(false),
G4bool validNorm = 0,
G4ThreeVector n = 0 
) const
virtual

Implements G4VSolid.

Definition at line 979 of file G4Hype.cc.

References DBL_MIN, endInnerRadius, endOuterRadius, fHalfTol, halfLenZ, HypeInnerRadius2(), HypeOuterRadius2(), innerRadius2, InnerSurfaceExists(), IntersectHype(), G4VSolid::kCarTolerance, kInfinity, n, outerRadius2, tanInnerStereo2, and tanOuterStereo2.

+ Here is the call graph for this function:

G4double G4Hype::DistanceToOut ( const G4ThreeVector p) const
virtual

Implements G4VSolid.

Definition at line 1150 of file G4Hype.cc.

References ApproxDistInside(), ApproxDistOutside(), halfLenZ, innerRadius, InnerSurfaceExists(), G4VSolid::kCarTolerance, outerRadius, tanInnerStereo, and tanOuterStereo2.

+ Here is the call graph for this function:

G4double G4Hype::GetCubicVolume ( )
virtual

Reimplemented from G4VSolid.

Definition at line 1380 of file G4Hype.cc.

References fCubicVolume, and G4VSolid::GetCubicVolume().

+ Here is the call graph for this function:

G4GeometryType G4Hype::GetEntityType ( ) const
virtual

Implements G4VSolid.

Definition at line 1362 of file G4Hype.cc.

G4VisExtent G4Hype::GetExtent ( ) const
virtual

Reimplemented from G4VSolid.

Definition at line 1538 of file G4Hype.cc.

References endOuterRadius, and halfLenZ.

G4double G4Hype::GetInnerRadius ( ) const
inline

Referenced by export_G4Hype(), G4tgbGeometryDumper::GetSolidParams(), G4GDMLWriteParamvol::Hype_dimensionsWrite(), and G4GDMLWriteSolids::HypeWrite().

+ Here is the caller graph for this function:

G4double G4Hype::GetInnerStereo ( ) const
inline

Referenced by export_G4Hype(), G4tgbGeometryDumper::GetSolidParams(), G4GDMLWriteParamvol::Hype_dimensionsWrite(), and G4GDMLWriteSolids::HypeWrite().

+ Here is the caller graph for this function:

G4double G4Hype::GetOuterRadius ( ) const
inline

Referenced by export_G4Hype(), G4tgbGeometryDumper::GetSolidParams(), G4GDMLWriteParamvol::Hype_dimensionsWrite(), and G4GDMLWriteSolids::HypeWrite().

+ Here is the caller graph for this function:

G4double G4Hype::GetOuterStereo ( ) const
inline

Referenced by export_G4Hype(), G4tgbGeometryDumper::GetSolidParams(), G4GDMLWriteParamvol::Hype_dimensionsWrite(), and G4GDMLWriteSolids::HypeWrite().

+ Here is the caller graph for this function:

G4ThreeVector G4Hype::GetPointOnSurface ( ) const
virtual

Reimplemented from G4VSolid.

Definition at line 1426 of file G4Hype.cc.

References alpha, halfLenZ, innerRadius, innerRadius2, innerStereo, outerRadius, outerRadius2, outerStereo, G4INCL::Math::pi, G4INCL::DeJongSpin::shoot(), sqr(), tanInnerStereo, tanInnerStereo2, tanOuterStereo, and tanOuterStereo2.

+ Here is the call graph for this function:

G4Polyhedron * G4Hype::GetPolyhedron ( ) const
virtual

Reimplemented from G4VSolid.

Definition at line 1561 of file G4Hype.cc.

References CreatePolyhedron(), fpPolyhedron, fRebuildPolyhedron, G4Polyhedron::GetNumberOfRotationStepsAtTimeOfCreation(), and G4TemplateAutoLock< M, L, U >::unlock().

+ Here is the call graph for this function:

G4double G4Hype::GetSurfaceArea ( )
virtual

Reimplemented from G4VSolid.

Definition at line 1391 of file G4Hype.cc.

References fSurfaceArea, and G4VSolid::GetSurfaceArea().

+ Here is the call graph for this function:

G4double G4Hype::GetZHalfLength ( ) const
inline

Referenced by export_G4Hype(), G4tgbGeometryDumper::GetSolidParams(), G4GDMLWriteParamvol::Hype_dimensionsWrite(), and G4GDMLWriteSolids::HypeWrite().

+ Here is the caller graph for this function:

G4double G4Hype::HypeInnerRadius2 ( G4double  zVal) const
inlineprotected

Referenced by DistanceToIn(), DistanceToOut(), Inside(), and SurfaceNormal().

+ Here is the caller graph for this function:

G4double G4Hype::HypeOuterRadius2 ( G4double  zVal) const
inlineprotected

Referenced by DistanceToIn(), DistanceToOut(), Inside(), and SurfaceNormal().

+ Here is the caller graph for this function:

G4bool G4Hype::InnerSurfaceExists ( ) const
inlineprotected

Referenced by CalculateExtent(), DistanceToIn(), DistanceToOut(), Inside(), and SurfaceNormal().

+ Here is the caller graph for this function:

EInside G4Hype::Inside ( const G4ThreeVector p) const
virtual

Implements G4VSolid.

Definition at line 513 of file G4Hype.cc.

References endInnerRadius, endOuterRadius, fHalfTol, halfLenZ, HypeInnerRadius2(), HypeOuterRadius2(), InnerSurfaceExists(), G4VSolid::kCarTolerance, kInside, kOutside, and kSurface.

+ Here is the call graph for this function:

G4int G4Hype::IntersectHype ( const G4ThreeVector p,
const G4ThreeVector v,
G4double  r2,
G4double  tan2Phi,
G4double  s[2] 
)
staticprotected

Definition at line 1213 of file G4Hype.cc.

References a, DBL_MIN, and G4InuclParticleNames::z0.

Referenced by DistanceToIn(), and DistanceToOut().

+ Here is the caller graph for this function:

G4Hype & G4Hype::operator= ( const G4Hype rhs)

Definition at line 179 of file G4Hype.cc.

References endInnerRadius, endInnerRadius2, endOuterRadius, endOuterRadius2, fCubicVolume, fHalfTol, fpPolyhedron, fRebuildPolyhedron, fSurfaceArea, halfLenZ, innerRadius, innerRadius2, innerStereo, G4VSolid::operator=(), outerRadius, outerRadius2, outerStereo, tanInnerStereo, tanInnerStereo2, tanOuterStereo, and tanOuterStereo2.

+ Here is the call graph for this function:

void G4Hype::SetInnerRadius ( G4double  newIRad)
inline

Referenced by G4GDMLParameterisation::ComputeDimensions(), and export_G4Hype().

+ Here is the caller graph for this function:

void G4Hype::SetInnerStereo ( G4double  newISte)
inline

Referenced by G4GDMLParameterisation::ComputeDimensions(), export_G4Hype(), and G4Hype().

+ Here is the caller graph for this function:

void G4Hype::SetOuterRadius ( G4double  newORad)
inline

Referenced by G4GDMLParameterisation::ComputeDimensions(), and export_G4Hype().

+ Here is the caller graph for this function:

void G4Hype::SetOuterStereo ( G4double  newOSte)
inline

Referenced by G4GDMLParameterisation::ComputeDimensions(), export_G4Hype(), and G4Hype().

+ Here is the caller graph for this function:

void G4Hype::SetZHalfLength ( G4double  newHLZ)
inline

Referenced by G4GDMLParameterisation::ComputeDimensions(), and export_G4Hype().

+ Here is the caller graph for this function:

std::ostream & G4Hype::StreamInfo ( std::ostream &  os) const
virtual

Implements G4VSolid.

Definition at line 1402 of file G4Hype.cc.

References degree, G4VSolid::GetName(), halfLenZ, innerRadius, innerStereo, mm, outerRadius, and outerStereo.

+ Here is the call graph for this function:

G4ThreeVector G4Hype::SurfaceNormal ( const G4ThreeVector p) const
virtual

Implements G4VSolid.

Definition at line 557 of file G4Hype.cc.

References halfLenZ, HypeInnerRadius2(), HypeOuterRadius2(), InnerSurfaceExists(), tanInnerStereo2, and tanOuterStereo2.

+ Here is the call graph for this function:

Member Data Documentation

G4double G4Hype::endInnerRadius
protected

Definition at line 184 of file G4Hype.hh.

Referenced by CalculateExtent(), DistanceToIn(), DistanceToOut(), Inside(), and operator=().

G4double G4Hype::endInnerRadius2
protected

Definition at line 182 of file G4Hype.hh.

Referenced by DistanceToIn(), and operator=().

G4double G4Hype::endOuterRadius
protected

Definition at line 185 of file G4Hype.hh.

Referenced by CalculateExtent(), DistanceToIn(), DistanceToOut(), GetExtent(), Inside(), and operator=().

G4double G4Hype::endOuterRadius2
protected

Definition at line 183 of file G4Hype.hh.

Referenced by DistanceToIn(), and operator=().

G4double G4Hype::fCubicVolume
private

Definition at line 197 of file G4Hype.hh.

Referenced by GetCubicVolume(), and operator=().

G4double G4Hype::fHalfTol
private

Definition at line 200 of file G4Hype.hh.

Referenced by DistanceToIn(), DistanceToOut(), G4Hype(), Inside(), and operator=().

G4Polyhedron* G4Hype::fpPolyhedron
mutableprivate

Definition at line 203 of file G4Hype.hh.

Referenced by GetPolyhedron(), operator=(), and ~G4Hype().

G4bool G4Hype::fRebuildPolyhedron
mutableprivate

Definition at line 202 of file G4Hype.hh.

Referenced by GetPolyhedron(), and operator=().

G4double G4Hype::fSurfaceArea
private

Definition at line 198 of file G4Hype.hh.

Referenced by GetSurfaceArea(), and operator=().

G4double G4Hype::innerRadius
protected
G4double G4Hype::innerRadius2
protected

Definition at line 180 of file G4Hype.hh.

Referenced by DistanceToIn(), DistanceToOut(), G4Hype(), GetPointOnSurface(), and operator=().

G4double G4Hype::innerStereo
protected

Definition at line 171 of file G4Hype.hh.

Referenced by DistanceToIn(), GetPointOnSurface(), operator=(), and StreamInfo().

G4double G4Hype::outerRadius
protected
G4double G4Hype::outerRadius2
protected

Definition at line 181 of file G4Hype.hh.

Referenced by DistanceToIn(), DistanceToOut(), G4Hype(), GetPointOnSurface(), and operator=().

G4double G4Hype::outerStereo
protected

Definition at line 172 of file G4Hype.hh.

Referenced by GetPointOnSurface(), operator=(), and StreamInfo().

G4double G4Hype::tanInnerStereo
protected

Definition at line 176 of file G4Hype.hh.

Referenced by DistanceToOut(), GetPointOnSurface(), and operator=().

G4double G4Hype::tanInnerStereo2
protected
G4double G4Hype::tanOuterStereo
protected

Definition at line 177 of file G4Hype.hh.

Referenced by DistanceToIn(), GetPointOnSurface(), and operator=().

G4double G4Hype::tanOuterStereo2
protected

The documentation for this class was generated from the following files: