Geant4  10.01.p03
UGenericPolycone Class Reference

#include <UGenericPolycone.hh>

+ Inheritance diagram for UGenericPolycone:
+ Collaboration diagram for UGenericPolycone:

Public Member Functions

 UGenericPolycone (const std::string &name, double phiStart, double phiTotal, int numZPlanes, const double zPlane[], const double rInner[], const double rOuter[])
 
 UGenericPolycone (const std::string &name, double phiStart, double phiTotal, int numRZ, const double r[], const double z[])
 
virtual ~UGenericPolycone ()
 
VUSolid::EnumInside Inside (const UVector3 &p) const
 
double DistanceToIn (const UVector3 &p, const UVector3 &v, double aPstep=UUtils::kInfinity) const
 
UVector3 GetPointOnSurface () const
 
UGeometryType GetEntityType () const
 
VUSolidClone () const
 
std::ostream & StreamInfo (std::ostream &os) const
 
bool Reset ()
 
double GetStartPhi () const
 
double GetEndPhi () const
 
bool IsOpen () const
 
int GetNumRZCorner () const
 
UPolyconeSideRZ GetCorner (int index) const
 
 UGenericPolycone (const UGenericPolycone &source)
 
UGenericPolyconeoperator= (const UGenericPolycone &source)
 
- Public Member Functions inherited from UVCSGfaceted
 UVCSGfaceted (const std::string &name)
 
virtual ~UVCSGfaceted ()
 
 UVCSGfaceted (const UVCSGfaceted &source)
 
UVCSGfacetedoperator= (const UVCSGfaceted &source)
 
VUSolid::EnumInside InsideNoVoxels (const UVector3 &p) const
 
virtual bool Normal (const UVector3 &p, UVector3 &n) const
 
double DistanceToInNoVoxels (const UVector3 &p, const UVector3 &v) const
 
virtual double SafetyFromOutside (const UVector3 &aPoint, bool aAccurate=false) const
 
double DistanceTo (const UVector3 &p, const bool outgoing) const
 
double DistanceToOutNoVoxels (const UVector3 &p, const UVector3 &v, UVector3 &n, bool &aConvex) const
 
virtual double DistanceToOut (const UVector3 &p, const UVector3 &v, UVector3 &n, bool &aConvex, double aPstep=UUtils::kInfinity) const
 
virtual double SafetyFromInside (const UVector3 &aPoint, bool aAccurate=false) const
 
virtual double SafetyFromInsideNoVoxels (const UVector3 &aPoint, bool aAccurate=false) const
 
int GetCubVolStatistics () const
 
double GetCubVolEpsilon () const
 
void SetCubVolStatistics (int st)
 
void SetCubVolEpsilon (double ep)
 
int GetAreaStatistics () const
 
double GetAreaAccuracy () const
 
void SetAreaStatistics (int st)
 
void SetAreaAccuracy (double ep)
 
virtual double Capacity ()
 
virtual double SurfaceArea ()
 
- Public Member Functions inherited from VUSolid
 VUSolid ()
 
 VUSolid (const std::string &name)
 
virtual ~VUSolid ()
 
double GetCarTolerance () const
 
double GetRadTolerance () const
 
double GetAngTolerance () const
 
void SetCarTolerance (double eps)
 
void SetRadTolerance (double eps)
 
void SetAngTolerance (double eps)
 
virtual void ExtentAxis (EAxisType aAxis, double &aMin, double &aMax) const
 
const std::string & GetName () const
 
void SetName (const std::string &aName)
 
virtual void SamplePointsInside (int, UVector3 *) const
 
virtual void SamplePointsOnSurface (int, UVector3 *) const
 
virtual void SamplePointsOnEdge (int, UVector3 *) const
 
double EstimateCubicVolume (int nStat, double epsilon) const
 
double EstimateSurfaceArea (int nStat, double ell) const
 

Protected Member Functions

void Create (double phiStart, double phiTotal, UReduciblePolygon *rz)
 
void CopyStuff (const UGenericPolycone &source)
 
void GetParametersList (int, double *) const
 
void ComputeBBox (UBBox *, bool)
 
void Extent (UVector3 &aMin, UVector3 &aMax) const
 
- Protected Member Functions inherited from UVCSGfaceted
double SafetyFromInsideSection (int index, const UVector3 &p, UBits &bits) const
 
int GetSection (double z) const
 
UVector3 GetPointOnSurfaceGeneric () const
 
void CopyStuff (const UVCSGfaceted &source)
 
void DeleteStuff ()
 
void FindCandidates (double z, std::vector< int > &candidates, bool sides=false)
 
void InitVoxels (UReduciblePolygon &z, double radius)
 

Protected Attributes

double startPhi
 
double endPhi
 
bool phiIsOpen
 
int numCorner
 
UPolyconeSideRZcorners
 
UEnclosingCylinderenclosingCylinder
 
- Protected Attributes inherited from UVCSGfaceted
int numFace
 
UVCSGface ** faces
 
double fCubicVolume
 
double fSurfaceArea
 
std::vector< double > fZs
 
std::vector< std::vector< int > > fCandidates
 
int fMaxSection
 
UBox fBox
 
double fBoxShift
 
bool fNoVoxels
 

Additional Inherited Members

- Public Types inherited from VUSolid
enum  EnumInside { eInside =0, eSurface =1, eOutside =2 }
 
enum  EAxisType { eXaxis =0, eYaxis =1, eZaxis =2 }
 
- Static Public Member Functions inherited from VUSolid
static double Tolerance ()
 
- Static Protected Attributes inherited from VUSolid
static double fgTolerance = 1.0E-9
 
static double frTolerance = 1.0E-9
 
static double faTolerance = 1.0E-9
 

Detailed Description

Definition at line 39 of file UGenericPolycone.hh.

Constructor & Destructor Documentation

UGenericPolycone::UGenericPolycone ( const std::string &  name,
double  phiStart,
double  phiTotal,
int  numZPlanes,
const double  zPlane[],
const double  rInner[],
const double  rOuter[] 
)

Referenced by Clone().

+ Here is the caller graph for this function:

UGenericPolycone::UGenericPolycone ( const std::string &  name,
double  phiStart,
double  phiTotal,
int  numRZ,
const double  r[],
const double  z[] 
)

Definition at line 32 of file UGenericPolycone.cc.

References Create().

+ Here is the call graph for this function:

UGenericPolycone::~UGenericPolycone ( )
virtual

Definition at line 242 of file UGenericPolycone.cc.

References corners, and enclosingCylinder.

UGenericPolycone::UGenericPolycone ( const UGenericPolycone source)

Definition at line 252 of file UGenericPolycone.cc.

References CopyStuff().

+ Here is the call graph for this function:

Member Function Documentation

VUSolid * UGenericPolycone::Clone ( ) const
virtual

Implements VUSolid.

Definition at line 379 of file UGenericPolycone.cc.

References UGenericPolycone().

+ Here is the call graph for this function:

void UGenericPolycone::ComputeBBox ( UBBox ,
bool   
)
inlineprotectedvirtual

Implements VUSolid.

Definition at line 119 of file UGenericPolycone.hh.

void UGenericPolycone::CopyStuff ( const UGenericPolycone source)
protected

Definition at line 281 of file UGenericPolycone.cc.

References corners, enclosingCylinder, endPhi, numCorner, phiIsOpen, and startPhi.

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

+ Here is the caller graph for this function:

double UGenericPolycone::DistanceToIn ( const UVector3 p,
const UVector3 v,
double  aPstep = UUtils::kInfinity 
) const
virtual

Reimplemented from UVCSGfaceted.

Definition at line 353 of file UGenericPolycone.cc.

References UVCSGfaceted::DistanceToIn(), enclosingCylinder, UUtils::kInfinity, and UEnclosingCylinder::ShouldMiss().

+ Here is the call graph for this function:

void UGenericPolycone::Extent ( UVector3 aMin,
UVector3 aMax 
) const
protectedvirtual

Implements VUSolid.

Definition at line 422 of file UGenericPolycone.cc.

References enclosingCylinder, and UEnclosingCylinder::Extent().

+ Here is the call graph for this function:

UPolyconeSideRZ UGenericPolycone::GetCorner ( int  index) const
inline

Referenced by G4UGenericPolycone::GetCorner().

+ Here is the caller graph for this function:

double UGenericPolycone::GetEndPhi ( ) const
inline

Referenced by G4UGenericPolycone::GetEndPhi().

+ Here is the caller graph for this function:

UGeometryType UGenericPolycone::GetEntityType ( ) const
virtual

Reimplemented from UVCSGfaceted.

Definition at line 371 of file UGenericPolycone.cc.

int UGenericPolycone::GetNumRZCorner ( ) const
inline

Referenced by G4UGenericPolycone::GetNumRZCorner().

+ Here is the caller graph for this function:

void UGenericPolycone::GetParametersList ( int  ,
double *   
) const
inlineprotectedvirtual

Implements VUSolid.

Definition at line 117 of file UGenericPolycone.hh.

UVector3 UGenericPolycone::GetPointOnSurface ( ) const
virtual

Implements VUSolid.

Definition at line 416 of file UGenericPolycone.cc.

References UVCSGfaceted::GetPointOnSurfaceGeneric().

+ Here is the call graph for this function:

double UGenericPolycone::GetStartPhi ( ) const
inline

Referenced by G4UGenericPolycone::GetStartPhi().

+ Here is the caller graph for this function:

VUSolid::EnumInside UGenericPolycone::Inside ( const UVector3 p) const
virtual

Reimplemented from UVCSGfaceted.

Definition at line 333 of file UGenericPolycone.cc.

References enclosingCylinder, VUSolid::eOutside, UVCSGfaceted::Inside(), and UEnclosingCylinder::MustBeOutside().

+ Here is the call graph for this function:

bool UGenericPolycone::IsOpen ( ) const
inline

Referenced by G4UGenericPolycone::IsOpen().

+ Here is the caller graph for this function:

UGenericPolycone & UGenericPolycone::operator= ( const UGenericPolycone source)

Definition at line 262 of file UGenericPolycone.cc.

References CopyStuff(), corners, enclosingCylinder, and UVCSGfaceted::operator=().

+ Here is the call graph for this function:

bool UGenericPolycone::Reset ( )

Definition at line 314 of file UGenericPolycone.cc.

References VUSolid::GetName().

+ Here is the call graph for this function:

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

Reimplemented from UVCSGfaceted.

Definition at line 387 of file UGenericPolycone.cc.

References corners, endPhi, VUSolid::GetName(), UUtils::kPi, numCorner, UPolyconeSideRZ::r, startPhi, and UPolyconeSideRZ::z.

+ Here is the call graph for this function:

Member Data Documentation

UPolyconeSideRZ* UGenericPolycone::corners
protected

Definition at line 135 of file UGenericPolycone.hh.

Referenced by CopyStuff(), Create(), operator=(), StreamInfo(), and ~UGenericPolycone().

UEnclosingCylinder* UGenericPolycone::enclosingCylinder
protected
double UGenericPolycone::endPhi
protected

Definition at line 132 of file UGenericPolycone.hh.

Referenced by CopyStuff(), Create(), and StreamInfo().

int UGenericPolycone::numCorner
protected

Definition at line 134 of file UGenericPolycone.hh.

Referenced by CopyStuff(), Create(), and StreamInfo().

bool UGenericPolycone::phiIsOpen
protected

Definition at line 133 of file UGenericPolycone.hh.

Referenced by CopyStuff(), and Create().

double UGenericPolycone::startPhi
protected

Definition at line 131 of file UGenericPolycone.hh.

Referenced by CopyStuff(), Create(), and StreamInfo().


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