Geant4
10.01.p02
|
#include <UPolycone.hh>
Classes | |
struct | UPolyconeSection |
Public Member Functions | |
void | Init (double phiStart, double phiTotal, int numZPlanes, const double zPlane[], const double rInner[], const double rOuter[]) |
UPolycone (const std::string &name) | |
UPolycone (const std::string &name, double phiStart, double phiTotal, int numZPlanes, const double zPlane[], const double rInner[], const double rOuter[]) | |
UPolycone (const std::string &name, double phiStart, double phiTotal, int numRZ, const double r[], const double z[]) | |
virtual | ~UPolycone () |
void | Reset () |
std::ostream & | StreamInfo (std::ostream &os) const |
VUSolid::EnumInside | Inside (const UVector3 &p) const |
double | DistanceToIn (const UVector3 &p, const UVector3 &v, double aPstep=UUtils::kInfinity) const |
double | SafetyFromInside (const UVector3 &aPoint, bool aAccurate=false) const |
double | SafetyFromOutside (const UVector3 &aPoint, bool aAccurate=false) const |
double | DistanceToOut (const UVector3 &aPoint, const UVector3 &aDirection, UVector3 &aNormalVector, bool &aConvex, double aPstep=UUtils::kInfinity) const |
bool | Normal (const UVector3 &aPoint, UVector3 &aNormal) const |
void | Extent (UVector3 &aMin, UVector3 &aMax) const |
double | Capacity () |
double | SurfaceArea () |
UGeometryType | GetEntityType () const |
void | ComputeBBox (UBBox *, bool) |
void | GetParametersList (int, double *) const |
VUSolid * | Clone () const |
UPolycone (const UPolycone &source) | |
UPolycone & | operator= (const UPolycone &source) |
void | CopyStuff (const UPolycone &source) |
UVector3 | GetPointOnSurface () const |
UVector3 | GetPointOnCone (double fRmin1, double fRmax1, double fRmin2, double fRmax2, double zOne, double zTwo, double &totArea) const |
UVector3 | GetPointOnTubs (double fRMin, double fRMax, double zOne, double zTwo, double &totArea) const |
UVector3 | GetPointOnCut (double fRMin1, double fRMax1, double fRMin2, double fRMax2, double zOne, double zTwo, double &totArea) const |
UVector3 | GetPointOnRing (double fRMin, double fRMax, double fRMin2, double fRMax2, double zOne) const |
double | GetStartPhi () const |
double | GetEndPhi () const |
bool | IsOpen () const |
bool | IsGeneric () const |
int | GetNumRZCorner () const |
UPolyconeSideRZ | GetCorner (int index) const |
UPolyconeHistorical * | GetOriginalParameters () const |
void | SetOriginalParameters (UPolyconeHistorical *pars) |
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 | |
bool | SetOriginalParameters (UReduciblePolygon *rz) |
void | SetOriginalParameters () |
VUSolid::EnumInside | InsideSection (int index, const UVector3 &p) const |
double | SafetyFromInsideSection (int index, const double rho, const UVector3 &p) const |
double | SafetyFromOutsideSection (int index, const double rho, const UVector3 &p) const |
double | SafetyFromOutsideSection (int index, const UVector3 &p) const |
bool | NormalSection (int index, const UVector3 &p, UVector3 &n) const |
int | GetSection (double z) const |
Protected Attributes | |
double | startPhi |
double | endPhi |
bool | phiIsOpen |
int | numCorner |
UPolyconeSideRZ * | corners |
UPolyconeHistorical * | fOriginalParameters |
double | fCubicVolume |
double | fSurfaceArea |
UBox | fBox |
UEnclosingCylinder * | enclosingCylinder |
std::vector< double > | fZs |
std::vector< UPolyconeSection > | fSections |
int | fMaxSection |
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 |
Definition at line 69 of file UPolycone.hh.
|
inline |
Definition at line 82 of file UPolycone.hh.
Referenced by Clone().
UPolycone::UPolycone | ( | const std::string & | name, |
double | phiStart, | ||
double | phiTotal, | ||
int | numZPlanes, | ||
const double | zPlane[], | ||
const double | rInner[], | ||
const double | rOuter[] | ||
) |
Definition at line 32 of file UPolycone.cc.
References fCubicVolume, fSurfaceArea, and Init().
UPolycone::UPolycone | ( | const std::string & | name, |
double | phiStart, | ||
double | phiTotal, | ||
int | numRZ, | ||
const double | r[], | ||
const double | z[] | ||
) |
Definition at line 47 of file UPolycone.cc.
References UUtils::Exception(), UPolyconeHistorical::fNumZPlanes, fOriginalParameters, UPolyconeHistorical::fZValues, VUSolid::GetName(), Init(), UPolyconeHistorical::Rmax, UPolyconeHistorical::Rmin, SetOriginalParameters(), and UFatalError.
|
virtual |
Definition at line 340 of file UPolycone.cc.
UPolycone::UPolycone | ( | const UPolycone & | source | ) |
Definition at line 1330 of file UPolycone.cc.
References CopyStuff().
|
virtual |
Implements VUSolid.
Definition at line 867 of file UPolycone.cc.
References VUSolid::Capacity(), fCubicVolume, fMaxSection, fSections, and UPolycone::UPolyconeSection::solid.
|
virtual |
Implements VUSolid.
Definition at line 1323 of file UPolycone.cc.
References UPolycone().
|
inlinevirtual |
Implements VUSolid.
Definition at line 135 of file UPolycone.hh.
void UPolycone::CopyStuff | ( | const UPolycone & | source | ) |
Definition at line 1356 of file UPolycone.cc.
References enclosingCylinder, endPhi, fBox, fCubicVolume, fOriginalParameters, fSurfaceArea, phiIsOpen, and startPhi.
Referenced by operator=(), and UPolycone().
|
virtual |
Implements VUSolid.
Definition at line 539 of file UPolycone.cc.
References VUSolid::DistanceToIn(), UBox::DistanceToIn(), fBox, VUSolid::fgTolerance, fMaxSection, fSections, fZs, GetSection(), UBox::GetZHalfLength(), UUtils::kInfinity, UPolycone::UPolyconeSection::shift, UPolycone::UPolyconeSection::solid, UVector3::x(), UVector3::y(), and UVector3::z().
|
virtual |
Implements VUSolid.
Definition at line 584 of file UPolycone.cc.
References UPolycone::UPolyconeSection::convex, VUSolid::DistanceToOut(), VUSolid::eOutside, VUSolid::fgTolerance, fMaxSection, UPolyconeHistorical::fNumZPlanes, fOriginalParameters, fSections, fZs, GetSection(), VUSolid::Inside(), G4InuclParticleNames::pn, UVector3::Set(), UPolycone::UPolyconeSection::shift, UPolycone::UPolyconeSection::solid, and UVector3::z().
Implements VUSolid.
Definition at line 860 of file UPolycone.cc.
References enclosingCylinder, fZs, UEnclosingCylinder::radius, and UVector3::Set().
|
inline |
Definition at line 192 of file UPolycone.hh.
References corners.
Referenced by G4UPolycone::GetCorner().
|
inline |
Definition at line 172 of file UPolycone.hh.
References endPhi.
Referenced by G4UPolycone::GetEndPhi().
|
virtual |
Implements VUSolid.
Definition at line 1380 of file UPolycone.cc.
|
inline |
Definition at line 187 of file UPolycone.hh.
References numCorner.
Referenced by G4UPolycone::GetNumRZCorner().
|
inline |
Definition at line 197 of file UPolycone.hh.
References fOriginalParameters.
Referenced by G4UPolycone::GetOriginalParameters(), and G4UPolycone::SetOriginalParameters().
|
inlinevirtual |
Implements VUSolid.
Definition at line 138 of file UPolycone.hh.
UVector3 UPolycone::GetPointOnCone | ( | double | fRmin1, |
double | fRmax1, | ||
double | fRmin2, | ||
double | fRmax2, | ||
double | zOne, | ||
double | zTwo, | ||
double & | totArea | ||
) | const |
Definition at line 951 of file UPolycone.cc.
References endPhi, UUtils::kPi, UUtils::Random(), UUtils::sqr(), and startPhi.
Referenced by GetPointOnCut().
UVector3 UPolycone::GetPointOnCut | ( | double | fRMin1, |
double | fRMax1, | ||
double | fRMin2, | ||
double | fRMax2, | ||
double | zOne, | ||
double | zTwo, | ||
double & | totArea | ||
) | const |
Definition at line 1162 of file UPolycone.cc.
References GetPointOnCone(), GetPointOnRing(), and GetPointOnTubs().
Referenced by GetPointOnSurface().
UVector3 UPolycone::GetPointOnRing | ( | double | fRMin, |
double | fRMax, | ||
double | fRMin2, | ||
double | fRMax2, | ||
double | zOne | ||
) | const |
Definition at line 1114 of file UPolycone.cc.
References endPhi, UUtils::Random(), and startPhi.
Referenced by GetPointOnCut().
|
virtual |
Implements VUSolid.
Definition at line 1182 of file UPolycone.cc.
References endPhi, UPolyconeHistorical::fNumZPlanes, fOriginalParameters, UPolyconeHistorical::fZValues, GetPointOnCut(), UUtils::kPi, UUtils::Random(), UPolyconeHistorical::Rmax, UPolyconeHistorical::Rmin, UUtils::sqr(), and startPhi.
UVector3 UPolycone::GetPointOnTubs | ( | double | fRMin, |
double | fRMax, | ||
double | zOne, | ||
double | zTwo, | ||
double & | totArea | ||
) | const |
Definition at line 1055 of file UPolycone.cc.
References endPhi, UUtils::kPi, UUtils::Random(), and startPhi.
Referenced by GetPointOnCut().
|
inlineprotected |
Definition at line 327 of file UPolycone.hh.
References UVoxelizer::BinarySearch(), and fMaxSection.
Referenced by DistanceToIn(), DistanceToOut(), Inside(), Normal(), and SafetyFromOutside().
|
inline |
Definition at line 167 of file UPolycone.hh.
References startPhi.
Referenced by G4UPolycone::GetStartPhi().
void UPolycone::Init | ( | double | phiStart, |
double | phiTotal, | ||
int | numZPlanes, | ||
const double | zPlane[], | ||
const double | rInner[], | ||
const double | rOuter[] | ||
) |
Definition at line 103 of file UPolycone.cc.
References UReduciblePolygon::Amax(), UReduciblePolygon::Amin(), UReduciblePolygon::Bmax(), UReduciblePolygon::Bmin(), UPolycone::UPolyconeSection::convex, enclosingCylinder, endPhi, UUtils::Exception(), fBox, VUSolid::fgTolerance, fMaxSection, UPolyconeHistorical::fNumZPlanes, UPolyconeHistorical::fOpeningAngle, fOriginalParameters, fSections, UPolyconeHistorical::fStartAngle, fZs, UPolyconeHistorical::fZValues, VUSolid::GetName(), UUtils::kTwoPi, phiIsOpen, UPolyconeHistorical::Rmax, UPolyconeHistorical::Rmin, UBox::Set(), UPolycone::UPolyconeSection::shift, UPolycone::UPolyconeSection::solid, startPhi, UPolycone::UPolyconeSection::tubular, UFatalErrorInArguments, and z.
Referenced by Reset(), and UPolycone().
|
virtual |
Implements VUSolid.
Definition at line 491 of file UPolycone.cc.
References VUSolid::eInside, VUSolid::eOutside, VUSolid::eSurface, fBox, VUSolid::fgTolerance, fMaxSection, VUSolid::frTolerance, fZs, GetSection(), UBox::GetZHalfLength(), UBox::Inside(), InsideSection(), n, NormalSection(), pos, UVector3::x(), UVector3::y(), and UVector3::z().
|
inlineprotected |
Definition at line 388 of file UPolycone.cc.
References VUSolid::eInside, endPhi, VUSolid::eOutside, VUSolid::eSurface, VUSolid::fgTolerance, VUSolid::frTolerance, fSections, UTubs::GetDz(), UCons::GetDz(), UTubs::GetRMax(), UCons::GetRmax1(), UCons::GetRmax2(), UTubs::GetRMin(), UCons::GetRmin1(), UCons::GetRmin2(), UUtils::kTwoPi, phiIsOpen, pos, UPolycone::UPolyconeSection::shift, UPolycone::UPolyconeSection::solid, startPhi, UPolycone::UPolyconeSection::tubular, UVector3::x(), UVector3::y(), and UVector3::z().
Referenced by Inside(), and Normal().
|
inline |
Definition at line 182 of file UPolycone.hh.
|
inline |
Definition at line 177 of file UPolycone.hh.
References phiIsOpen.
Referenced by G4UPolycone::IsOpen().
Implements VUSolid.
Definition at line 795 of file UPolycone.cc.
References VUSolid::eInside, VUSolid::eSurface, VUSolid::fgTolerance, fMaxSection, VUSolid::frTolerance, fSections, fZs, GetSection(), InsideSection(), VUSolid::Normal(), NormalSection(), pos, UPolycone::UPolyconeSection::shift, UPolycone::UPolyconeSection::solid, UVector3::x(), UVector3::y(), and UVector3::z().
Definition at line 319 of file UPolycone.hh.
References VUSolid::Normal(), UPolycone::UPolyconeSection::shift, UPolycone::UPolyconeSection::solid, UVector3::x(), UVector3::y(), and UVector3::z().
Referenced by Inside(), and Normal().
Definition at line 1339 of file UPolycone.cc.
References CopyStuff(), and enclosingCylinder.
void UPolycone::Reset | ( | ) |
Definition at line 1606 of file UPolycone.cc.
References enclosingCylinder, fCubicVolume, UPolyconeHistorical::fNumZPlanes, UPolyconeHistorical::fOpeningAngle, fOriginalParameters, UPolyconeHistorical::fStartAngle, fSurfaceArea, UPolyconeHistorical::fZValues, Init(), UPolyconeHistorical::Rmax, and UPolyconeHistorical::Rmin.
Referenced by G4UPolycone::Reset().
|
virtual |
Implements VUSolid.
Definition at line 717 of file UPolycone.cc.
References UVoxelizer::BinarySearch(), fMaxSection, fZs, UUtils::kInfinity, minSafety, SafetyFromInsideSection(), SafetyFromOutsideSection(), UVector3::x(), UVector3::y(), and UVector3::z().
|
inlineprotected |
Definition at line 265 of file UPolycone.hh.
References UTubs::SafetyFromInsideR(), UCons::SafetyFromInsideR(), UPolycone::UPolyconeSection::shift, UPolycone::UPolyconeSection::solid, UPolycone::UPolyconeSection::tubular, UVector3::x(), UVector3::y(), and UVector3::z().
Referenced by SafetyFromInside().
|
virtual |
Implements VUSolid.
Definition at line 766 of file UPolycone.cc.
References enclosingCylinder, fMaxSection, fZs, GetSection(), minSafety, UEnclosingCylinder::SafetyFromOutside(), SafetyFromOutsideSection(), and UVector3::z().
|
inlineprotected |
Definition at line 287 of file UPolycone.hh.
References UTubs::SafetyFromOutsideR(), UCons::SafetyFromOutsideR(), UPolycone::UPolyconeSection::solid, UPolycone::UPolyconeSection::tubular, UVector3::x(), UVector3::y(), and UVector3::z().
Referenced by SafetyFromInside(), and SafetyFromOutside().
|
inlineprotected |
Definition at line 309 of file UPolycone.hh.
References VUSolid::SafetyFromOutside(), UPolycone::UPolyconeSection::shift, UPolycone::UPolyconeSection::solid, UVector3::x(), UVector3::y(), and UVector3::z().
|
inline |
Definition at line 202 of file UPolycone.hh.
References fOriginalParameters.
|
protected |
Definition at line 1387 of file UPolycone.cc.
References UReduciblePolygon::Bmax(), corners, endPhi, UUtils::Exception(), UPolyconeHistorical::fNumZPlanes, UPolyconeHistorical::fOpeningAngle, fOriginalParameters, VUSolid::frTolerance, UPolyconeHistorical::fStartAngle, UPolyconeHistorical::fZValues, VUSolid::GetName(), numCorner, UPolyconeSideRZ::r, UPolyconeHistorical::Rmax, UPolyconeHistorical::Rmin, startPhi, UReduciblePolygon::StartWithZMin(), UWarning, z, and UPolyconeSideRZ::z.
|
inlineprotected |
Definition at line 226 of file UPolycone.hh.
References UPolyconeHistorical::fNumZPlanes, UPolyconeHistorical::fOpeningAngle, UPolyconeHistorical::fStartAngle, UPolyconeHistorical::fZValues, UPolyconeSideRZ::r, UPolyconeHistorical::Rmax, UPolyconeHistorical::Rmin, startPhi, and UPolyconeSideRZ::z.
Referenced by UPolycone().
|
virtual |
Implements VUSolid.
Definition at line 351 of file UPolycone.cc.
References endPhi, UPolyconeHistorical::fNumZPlanes, fOriginalParameters, UPolyconeHistorical::fZValues, VUSolid::GetName(), UUtils::kPi, UPolyconeHistorical::Rmax, UPolyconeHistorical::Rmin, and startPhi.
|
virtual |
Implements VUSolid.
Definition at line 884 of file UPolycone.cc.
References endPhi, UPolyconeHistorical::fNumZPlanes, UPolyconeHistorical::fOpeningAngle, fOriginalParameters, fSurfaceArea, UPolyconeHistorical::fZValues, UUtils::kPi, UPolyconeHistorical::Rmax, UPolyconeHistorical::Rmin, UUtils::sqr(), and startPhi.
|
protected |
Definition at line 220 of file UPolycone.hh.
Referenced by GetCorner(), and SetOriginalParameters().
|
protected |
Definition at line 248 of file UPolycone.hh.
Referenced by CopyStuff(), Extent(), Init(), operator=(), Reset(), and SafetyFromOutside().
|
protected |
Definition at line 217 of file UPolycone.hh.
Referenced by CopyStuff(), GetEndPhi(), GetPointOnCone(), GetPointOnRing(), GetPointOnSurface(), GetPointOnTubs(), Init(), InsideSection(), SetOriginalParameters(), StreamInfo(), and SurfaceArea().
|
mutableprotected |
Definition at line 224 of file UPolycone.hh.
Referenced by CopyStuff(), DistanceToIn(), Init(), and Inside().
|
protected |
Definition at line 222 of file UPolycone.hh.
Referenced by Capacity(), CopyStuff(), Reset(), and UPolycone().
|
protected |
Definition at line 261 of file UPolycone.hh.
Referenced by Capacity(), DistanceToIn(), DistanceToOut(), GetSection(), Init(), Inside(), Normal(), SafetyFromInside(), and SafetyFromOutside().
|
protected |
Definition at line 221 of file UPolycone.hh.
Referenced by CopyStuff(), DistanceToOut(), GetOriginalParameters(), GetPointOnSurface(), Init(), Reset(), SetOriginalParameters(), StreamInfo(), SurfaceArea(), and UPolycone().
|
protected |
Definition at line 260 of file UPolycone.hh.
Referenced by Capacity(), DistanceToIn(), DistanceToOut(), Init(), InsideSection(), and Normal().
|
protected |
Definition at line 223 of file UPolycone.hh.
Referenced by CopyStuff(), Reset(), SurfaceArea(), and UPolycone().
|
protected |
Definition at line 259 of file UPolycone.hh.
Referenced by DistanceToIn(), DistanceToOut(), Extent(), Init(), Inside(), Normal(), SafetyFromInside(), and SafetyFromOutside().
|
protected |
Definition at line 219 of file UPolycone.hh.
Referenced by GetNumRZCorner(), and SetOriginalParameters().
|
protected |
Definition at line 218 of file UPolycone.hh.
Referenced by CopyStuff(), Init(), InsideSection(), and IsOpen().
|
protected |
Definition at line 216 of file UPolycone.hh.
Referenced by CopyStuff(), GetPointOnCone(), GetPointOnRing(), GetPointOnSurface(), GetPointOnTubs(), GetStartPhi(), Init(), InsideSection(), SetOriginalParameters(), StreamInfo(), and SurfaceArea().