Geant4  10.03
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)
 
void Extent (G4ThreeVector &pMin, G4ThreeVector &pMax) const
 
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)
 
G4double EstimateCubicVolume (G4int nStat, G4double epsilon) const
 
G4double EstimateSurfaceArea (G4int nStat, G4double ell) const
 

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
 

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])
 

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 183 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

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

Definition at line 1091 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 1033 of file G4Hype.cc.

References DBL_MIN.

Referenced by DistanceToIn(), and DistanceToOut().

+ Here is the caller graph for this function:

G4double G4Hype::asinh ( G4double  arg)
private

Definition at line 1336 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

Implements G4VSolid.

Definition at line 246 of file G4Hype.cc.

References G4BoundingEnvelope::CalculateExtent(), and Extent().

+ Here is the call graph for this function:

G4VSolid * G4Hype::Clone ( ) const
virtual

Reimplemented from G4VSolid.

Definition at line 1124 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 1306 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 1284 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 355 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 650 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 731 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 902 of file G4Hype.cc.

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

+ Here is the call graph for this function:

void G4Hype::Extent ( G4ThreeVector pMin,
G4ThreeVector pMax 
) const
virtual

Reimplemented from G4VSolid.

Definition at line 223 of file G4Hype.cc.

References G4VSolid::DumpInfo(), endOuterRadius, G4Exception(), G4VSolid::GetName(), halfLenZ, and JustWarning.

Referenced by CalculateExtent().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4Hype::GetCubicVolume ( )
virtual

Reimplemented from G4VSolid.

Definition at line 1133 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 1115 of file G4Hype.cc.

G4VisExtent G4Hype::GetExtent ( ) const
virtual

Reimplemented from G4VSolid.

Definition at line 1293 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 1179 of file G4Hype.cc.

References alpha, halfLenZ, innerRadius, innerRadius2, innerStereo, outerRadius, outerRadius2, outerStereo, 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 1316 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 1144 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 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 265 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 965 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 1155 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 309 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 178 of file G4Hype.hh.

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

G4double G4Hype::endInnerRadius2
protected

Definition at line 176 of file G4Hype.hh.

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

G4double G4Hype::endOuterRadius
protected

Definition at line 179 of file G4Hype.hh.

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

G4double G4Hype::endOuterRadius2
protected

Definition at line 177 of file G4Hype.hh.

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

G4double G4Hype::fCubicVolume
private

Definition at line 191 of file G4Hype.hh.

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

G4double G4Hype::fHalfTol
private

Definition at line 194 of file G4Hype.hh.

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

G4Polyhedron* G4Hype::fpPolyhedron
mutableprivate

Definition at line 197 of file G4Hype.hh.

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

G4bool G4Hype::fRebuildPolyhedron
mutableprivate

Definition at line 196 of file G4Hype.hh.

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

G4double G4Hype::fSurfaceArea
private

Definition at line 192 of file G4Hype.hh.

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

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

Definition at line 174 of file G4Hype.hh.

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

G4double G4Hype::innerStereo
protected

Definition at line 165 of file G4Hype.hh.

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

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

Definition at line 175 of file G4Hype.hh.

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

G4double G4Hype::outerStereo
protected

Definition at line 166 of file G4Hype.hh.

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

G4double G4Hype::tanInnerStereo
protected

Definition at line 170 of file G4Hype.hh.

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

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

Definition at line 171 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: