Geant4  10.00.p02
UPolyconeSide Class Reference

#include <UPolyconeSide.hh>

+ Inheritance diagram for UPolyconeSide:
+ Collaboration diagram for UPolyconeSide:

Public Member Functions

 UPolyconeSide (const UPolyconeSideRZ *prevRZ, const UPolyconeSideRZ *tail, const UPolyconeSideRZ *head, const UPolyconeSideRZ *nextRZ, double phiStart, double deltaPhi, bool phiIsOpen, bool isAllBehind=false)
 
virtual ~UPolyconeSide ()
 
 UPolyconeSide (const UPolyconeSide &source)
 
UPolyconeSideoperator= (const UPolyconeSide &source)
 
bool Distance (const UVector3 &p, const UVector3 &v, bool outgoing, double surfTolerance, double &distance, double &distFromSurface, UVector3 &normal, bool &isAllBehind)
 
double Safety (const UVector3 &p, bool outgoing)
 
VUSolid::EnumInside Inside (const UVector3 &p, double tolerance, double *bestDistance)
 
UVector3 Normal (const UVector3 &p, double *bestDistance)
 
double Extent (const UVector3 axis)
 
UVCSGfaceClone ()
 
double SurfaceArea ()
 
UVector3 GetPointOnFace ()
 
 UPolyconeSide (__void__ &)
 
- Public Member Functions inherited from UVCSGface
 UVCSGface ()
 
virtual ~UVCSGface ()
 

Protected Member Functions

double DistanceAway (const UVector3 &p, bool opposite, double &distOutside2, double *rzNorm=0)
 
bool PointOnCone (const UVector3 &hit, double normSign, const UVector3 &p, const UVector3 &v, UVector3 &normal)
 
void CopyStuff (const UPolyconeSide &source)
 
double GetPhi (const UVector3 &p)
 

Static Protected Member Functions

static void FindLineIntersect (double x1, double y1, double tx1, double ty1, double x2, double y2, double tx2, double ty2, double &x, double &y)
 

Protected Attributes

double r [2]
 
double z [2]
 
double startPhi
 
double deltaPhi
 
bool phiIsOpen
 
bool allBehind
 
UIntersectingConecone
 
double rNorm
 
double zNorm
 
double rS
 
double zS
 
double length
 
double prevRS
 
double prevZS
 
double nextRS
 
double nextZS
 
double rNormEdge [2]
 
double zNormEdge [2]
 
int ncorners
 
UVector3corners
 

Private Attributes

double tolerance
 
double fSurfaceArea
 

Detailed Description

Definition at line 56 of file UPolyconeSide.hh.

Constructor & Destructor Documentation

UPolyconeSide::UPolyconeSide ( const UPolyconeSideRZ prevRZ,
const UPolyconeSideRZ tail,
const UPolyconeSideRZ head,
const UPolyconeSideRZ nextRZ,
double  phiStart,
double  deltaPhi,
bool  phiIsOpen,
bool  isAllBehind = false 
)

Definition at line 31 of file UPolyconeSide.cc.

References allBehind, cone, corners, deltaPhi, fSurfaceArea, UUtils::kPi, length, ncorners, nextRS, nextZS, phiIsOpen, prevRS, prevZS, UPolyconeSideRZ::r, r, rNorm, rNormEdge, rS, startPhi, VUSolid::Tolerance(), tolerance, UPolyconeSideRZ::z, z, zNorm, zNormEdge, and zS.

Referenced by Clone().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

UPolyconeSide::~UPolyconeSide ( )
virtual

Definition at line 152 of file UPolyconeSide.cc.

References cone, corners, and phiIsOpen.

UPolyconeSide::UPolyconeSide ( const UPolyconeSide source)

Definition at line 165 of file UPolyconeSide.cc.

References CopyStuff().

+ Here is the call graph for this function:

UPolyconeSide::UPolyconeSide ( __void__ &  )

Definition at line 137 of file UPolyconeSide.cc.

References r, rNormEdge, z, and zNormEdge.

Member Function Documentation

UVCSGface* UPolyconeSide::Clone ( )
inlinevirtual

Implements UVCSGface.

Definition at line 92 of file UPolyconeSide.hh.

References UPolyconeSide().

+ Here is the call graph for this function:

void UPolyconeSide::CopyStuff ( const UPolyconeSide source)
protected

Definition at line 198 of file UPolyconeSide.cc.

References allBehind, cone, corners, deltaPhi, fSurfaceArea, length, ncorners, nextRS, nextZS, phiIsOpen, prevRS, prevZS, r, rNorm, rNormEdge, rS, startPhi, tolerance, z, zNorm, zNormEdge, and zS.

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

+ Here is the caller graph for this function:

bool UPolyconeSide::Distance ( const UVector3 p,
const UVector3 v,
bool  outgoing,
double  surfTolerance,
double &  distance,
double &  distFromSurface,
UVector3 normal,
bool &  isAllBehind 
)
virtual

Implements UVCSGface.

Definition at line 246 of file UPolyconeSide.cc.

References allBehind, cone, DBL_MIN, DistanceAway(), UIntersectingCone::LineHitsCone(), UVector3::Perp(), PointOnCone(), rNorm, UVector3::x, UVector3::y, and zNorm.

+ Here is the call graph for this function:

double UPolyconeSide::DistanceAway ( const UVector3 p,
bool  opposite,
double &  distOutside2,
double *  rzNorm = 0 
)
protected

Definition at line 894 of file UPolyconeSide.cc.

References d1, d2, deltaPhi, GetPhi(), UUtils::kPi, length, G4INCL::Math::max(), UVector3::Perp(), phiIsOpen, r, rNorm, rNormEdge, rS, UUtils::sqr(), startPhi, z, UVector3::z, zNorm, zNormEdge, and zS.

Referenced by Distance(), Inside(), Normal(), and Safety().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

double UPolyconeSide::Extent ( const UVector3  axis)
virtual

Implements UVCSGface.

Definition at line 480 of file UPolyconeSide.cc.

References a, cd, cone, DBL_MIN, deltaPhi, UVector3::Dot(), GetPhi(), UUtils::kPi, UVector3::Perp(), UVector3::Perp2(), phiIsOpen, r, startPhi, z, UVector3::z, UIntersectingCone::ZHi(), and UIntersectingCone::ZLo().

+ Here is the call graph for this function:

void UPolyconeSide::FindLineIntersect ( double  x1,
double  y1,
double  tx1,
double  ty1,
double  x2,
double  y2,
double  tx2,
double  ty2,
double &  x,
double &  y 
)
staticprotected

Definition at line 1050 of file UPolyconeSide.cc.

double UPolyconeSide::GetPhi ( const UVector3 p)
protected

Definition at line 867 of file UPolyconeSide.cc.

References UVector3::Phi().

Referenced by DistanceAway(), Extent(), and PointOnCone().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

UVector3 UPolyconeSide::GetPointOnFace ( )
virtual

Implements UVCSGface.

Definition at line 1088 of file UPolyconeSide.cc.

References deltaPhi, r, UUtils::Random(), startPhi, and z.

+ Here is the call graph for this function:

VUSolid::EnumInside UPolyconeSide::Inside ( const UVector3 p,
double  tolerance,
double *  bestDistance 
)
virtual

Implements UVCSGface.

Definition at line 415 of file UPolyconeSide.cc.

References DistanceAway(), VUSolid::eInside, VUSolid::eOutside, and VUSolid::eSurface.

+ Here is the call graph for this function:

UVector3 UPolyconeSide::Normal ( const UVector3 p,
double *  bestDistance 
)
virtual

Implements UVCSGface.

Definition at line 454 of file UPolyconeSide.cc.

References DistanceAway(), UVector3::Perp(), rNorm, UVector3::Unit(), UVector3::x, UVector3::y, and zNorm.

+ Here is the call graph for this function:

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

Definition at line 176 of file UPolyconeSide.cc.

References cone, CopyStuff(), corners, and phiIsOpen.

+ Here is the call graph for this function:

bool UPolyconeSide::PointOnCone ( const UVector3 hit,
double  normSign,
const UVector3 p,
const UVector3 v,
UVector3 normal 
)
protected

Definition at line 981 of file UPolyconeSide.cc.

References cone, corners, UVector3::Cross(), DBL_MIN, deltaPhi, UVector3::Dot(), GetPhi(), UIntersectingCone::HitOn(), UUtils::kPi, UVector3::Perp(), phiIsOpen, rNorm, startPhi, VUSolid::Tolerance(), UVector3::x, UVector3::y, UVector3::z, and zNorm.

Referenced by Distance().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

double UPolyconeSide::Safety ( const UVector3 p,
bool  outgoing 
)
virtual

Implements UVCSGface.

Definition at line 375 of file UPolyconeSide.cc.

References DistanceAway(), UUtils::kInfinity, and VUSolid::Tolerance().

+ Here is the call graph for this function:

double UPolyconeSide::SurfaceArea ( )
virtual

Implements UVCSGface.

Definition at line 1075 of file UPolyconeSide.cc.

References deltaPhi, fSurfaceArea, r, UUtils::sqr(), and z.

+ Here is the call graph for this function:

Member Data Documentation

bool UPolyconeSide::allBehind
protected

Definition at line 132 of file UPolyconeSide.hh.

Referenced by CopyStuff(), Distance(), and UPolyconeSide().

UIntersectingCone* UPolyconeSide::cone
protected
UVector3* UPolyconeSide::corners
protected

Definition at line 148 of file UPolyconeSide.hh.

Referenced by CopyStuff(), operator=(), PointOnCone(), UPolyconeSide(), and ~UPolyconeSide().

double UPolyconeSide::deltaPhi
protected
double UPolyconeSide::fSurfaceArea
private

Definition at line 152 of file UPolyconeSide.hh.

Referenced by CopyStuff(), SurfaceArea(), and UPolyconeSide().

double UPolyconeSide::length
protected

Definition at line 138 of file UPolyconeSide.hh.

Referenced by CopyStuff(), DistanceAway(), and UPolyconeSide().

int UPolyconeSide::ncorners
protected

Definition at line 147 of file UPolyconeSide.hh.

Referenced by CopyStuff(), and UPolyconeSide().

double UPolyconeSide::nextRS
protected

Definition at line 141 of file UPolyconeSide.hh.

Referenced by CopyStuff(), and UPolyconeSide().

double UPolyconeSide::nextZS
protected

Definition at line 141 of file UPolyconeSide.hh.

Referenced by CopyStuff(), and UPolyconeSide().

bool UPolyconeSide::phiIsOpen
protected
double UPolyconeSide::prevRS
protected

Definition at line 139 of file UPolyconeSide.hh.

Referenced by CopyStuff(), and UPolyconeSide().

double UPolyconeSide::prevZS
protected

Definition at line 139 of file UPolyconeSide.hh.

Referenced by CopyStuff(), and UPolyconeSide().

double UPolyconeSide::r[2]
protected
double UPolyconeSide::rNorm
protected

Definition at line 136 of file UPolyconeSide.hh.

Referenced by CopyStuff(), Distance(), DistanceAway(), Normal(), PointOnCone(), and UPolyconeSide().

double UPolyconeSide::rNormEdge[2]
protected

Definition at line 144 of file UPolyconeSide.hh.

Referenced by CopyStuff(), DistanceAway(), and UPolyconeSide().

double UPolyconeSide::rS
protected

Definition at line 137 of file UPolyconeSide.hh.

Referenced by CopyStuff(), DistanceAway(), and UPolyconeSide().

double UPolyconeSide::startPhi
protected
double UPolyconeSide::tolerance
private

Definition at line 151 of file UPolyconeSide.hh.

Referenced by CopyStuff(), and UPolyconeSide().

double UPolyconeSide::z[2]
protected
double UPolyconeSide::zNorm
protected

Definition at line 136 of file UPolyconeSide.hh.

Referenced by CopyStuff(), Distance(), DistanceAway(), Normal(), PointOnCone(), and UPolyconeSide().

double UPolyconeSide::zNormEdge[2]
protected

Definition at line 144 of file UPolyconeSide.hh.

Referenced by CopyStuff(), DistanceAway(), and UPolyconeSide().

double UPolyconeSide::zS
protected

Definition at line 137 of file UPolyconeSide.hh.

Referenced by CopyStuff(), DistanceAway(), and UPolyconeSide().


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