Geant4
10.01
|
#include <UTubs.hh>
Public Member Functions | |
UTubs (const std::string &pName, double pRMin, double pRMax, double pDz, double pSPhi, double pDPhi) | |
virtual | ~UTubs () |
double | GetInnerRadius () const |
double | GetOuterRadius () const |
double | GetZHalfLength () const |
double | GetStartPhiAngle () const |
double | GetDeltaPhiAngle () const |
void | SetInnerRadius (double newRMin) |
void | SetOuterRadius (double newRMax) |
void | SetZHalfLength (double newDz) |
void | SetStartPhiAngle (double newSPhi, bool trig=true) |
void | SetDeltaPhiAngle (double newDPhi) |
double | Capacity () |
double | SurfaceArea () |
VUSolid::EnumInside | Inside (const UVector3 &p) const |
bool | Normal (const UVector3 &p, UVector3 &normal) const |
double | DistanceToIn (const UVector3 &p, const UVector3 &v, double aPstep=UUtils::kInfinity) const |
double | SafetyFromInside (const UVector3 &p, bool precise=false) const |
double | DistanceToOut (const UVector3 &p, const UVector3 &v, UVector3 &n, bool &validNorm, double aPstep=UUtils::kInfinity) const |
double | SafetyFromOutside (const UVector3 &p, bool precise=false) const |
double | SafetyFromInsideR (const UVector3 &p, const double rho, bool precise=false) const |
double | SafetyFromOutsideR (const UVector3 &p, const double rho, bool precise=false) const |
UGeometryType | GetEntityType () const |
UVector3 | GetPointOnSurface () const |
VUSolid * | Clone () const |
std::ostream & | StreamInfo (std::ostream &os) const |
void | Extent (UVector3 &aMin, UVector3 &aMax) const |
virtual void | GetParametersList (int, double *) const |
virtual void | ComputeBBox (UBBox *, bool) |
UTubs () | |
UTubs (const UTubs &rhs) | |
UTubs & | operator= (const UTubs &rhs) |
double | GetRMin () const |
double | GetRMax () const |
double | GetDz () const |
double | GetSPhi () const |
double | GetDPhi () const |
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 Types | |
enum | ESide { kNull, kRMin, kRMax, kSPhi, kEPhi, kPZ, kMZ } |
enum | ENorm { kNRMin, kNRMax, kNSPhi, kNEPhi, kNZ } |
Protected Member Functions | |
void | Initialize () |
void | CheckSPhiAngle (double sPhi) |
void | CheckDPhiAngle (double dPhi) |
void | CheckPhiAngles (double sPhi, double dPhi) |
void | InitializeTrigonometry () |
virtual UVector3 | ApproxSurfaceNormal (const UVector3 &p) const |
double | SafetyToPhi (const UVector3 &p, const double rho, bool &outside) const |
Protected Attributes | |
double | fCubicVolume |
double | fSurfaceArea |
double | kRadTolerance |
double | kAngTolerance |
double | fRMin |
double | fRMax |
double | fDz |
double | fSPhi |
double | fDPhi |
double | fSinCPhi |
double | fCosCPhi |
double | fCosHDPhiOT |
double | fCosHDPhiIT |
double | fSinSPhi |
double | fCosSPhi |
double | fSinEPhi |
double | fCosEPhi |
double | fSinSPhiDPhi |
double | fCosSPhiDPhi |
bool | fPhiFullTube |
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 |
|
protected |
|
protected |
UTubs::UTubs | ( | const std::string & | pName, |
double | pRMin, | ||
double | pRMax, | ||
double | pDz, | ||
double | pSPhi, | ||
double | pDPhi | ||
) |
Definition at line 30 of file UTubs.cc.
References CheckPhiAngles(), UUtils::Exception(), FatalErrorInArguments, VUSolid::faTolerance, fCubicVolume, VUSolid::frTolerance, fSurfaceArea, VUSolid::GetName(), kAngTolerance, and kRadTolerance.
UTubs::UTubs | ( | ) |
Definition at line 473 of file UTubs.cc.
References UUtils::Exception(), fCosSPhi, fCosSPhiDPhi, fDPhi, fDz, fPhiFullTube, fRMax, fRMin, fSinSPhi, fSinSPhiDPhi, fSPhi, kNEPhi, kNRMax, kNRMin, kNSPhi, kNZ, UUtils::kPi, Warning, UVector3::x, UVector3::y, and UVector3::z.
Referenced by Normal().
|
inlinevirtual |
Implements VUSolid.
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
virtual |
|
inlinevirtual |
|
virtual |
Implements VUSolid.
Definition at line 614 of file UTubs.cc.
References fCosCPhi, fCosEPhi, fCosHDPhiIT, fCosSPhi, fDz, fPhiFullTube, fRMax, fRMin, fSinCPhi, fSinEPhi, fSinSPhi, UUtils::kInfinity, kRadTolerance, VUSolid::Tolerance(), UVector3::x, UVector3::y, and UVector3::z.
Referenced by UEnclosingCylinder::DistanceTo().
|
virtual |
Implements VUSolid.
Definition at line 1095 of file UTubs.cc.
References d2, UUtils::Exception(), fCosCPhi, fCosEPhi, fCosSPhi, fDPhi, fDz, fPhiFullTube, fRMax, fRMin, fSinCPhi, fSinEPhi, fSinSPhi, fSPhi, kAngTolerance, kEPhi, UUtils::kInfinity, kMZ, kNull, UUtils::kPi, kPZ, kRadTolerance, kRMax, kRMin, kSPhi, VUSolid::Tolerance(), Warning, UVector3::x, UVector3::y, and UVector3::z.
|
inline |
Referenced by G4UTubs::GetDeltaPhiAngle(), and GetParametersList().
|
inline |
|
inline |
|
virtual |
|
inline |
Referenced by G4UTubs::GetInnerRadius(), and GetParametersList().
|
inline |
Referenced by G4UTubs::GetOuterRadius(), and GetParametersList().
|
virtual |
Implements VUSolid.
Definition at line 1690 of file UTubs.cc.
References GetDeltaPhiAngle(), GetInnerRadius(), GetOuterRadius(), GetStartPhiAngle(), and GetZHalfLength().
|
virtual |
Implements VUSolid.
Definition at line 1615 of file UTubs.cc.
References fCosSPhi, fCosSPhiDPhi, fDPhi, fDz, fRMax, fRMin, fSinSPhi, fSinSPhiDPhi, fSPhi, UUtils::GetRadiusInRing(), UUtils::kPi, and UUtils::Random().
|
inline |
|
inline |
|
inline |
|
inline |
Referenced by GetParametersList(), and G4UTubs::GetStartPhiAngle().
|
inline |
Referenced by GetParametersList(), and G4UTubs::GetZHalfLength().
|
inlineprotected |
|
inlineprotected |
|
inlinevirtual |
Implements VUSolid.
Definition at line 153 of file UTubs.cc.
References VUSolid::eInside, VUSolid::eOutside, VUSolid::eSurface, fDPhi, fDz, fPhiFullTube, fRMax, fRMin, fSPhi, kAngTolerance, UUtils::kPi, kRadTolerance, VUSolid::Tolerance(), UVector3::x, UVector3::y, and UVector3::z.
Referenced by SafetyFromInside().
Implements VUSolid.
Definition at line 356 of file UTubs.cc.
References ApproxSurfaceNormal(), UUtils::Exception(), fCosSPhi, fCosSPhiDPhi, fDPhi, fDz, fPhiFullTube, fRMax, fRMin, fSinSPhi, fSinSPhiDPhi, fSPhi, kAngTolerance, UUtils::kInfinity, UUtils::kPi, VUSolid::Tolerance(), UVector3::Unit(), Warning, UVector3::x, UVector3::y, and UVector3::z.
Definition at line 108 of file UTubs.cc.
References fCosCPhi, fCosEPhi, fCosHDPhiIT, fCosHDPhiOT, fCosSPhi, fCosSPhiDPhi, fCubicVolume, fDPhi, fDz, fPhiFullTube, fRMax, fRMin, fSinCPhi, fSinEPhi, fSinSPhi, fSinSPhiDPhi, fSPhi, fSurfaceArea, kAngTolerance, and kRadTolerance.
|
virtual |
Implements VUSolid.
Definition at line 1534 of file UTubs.cc.
References VUSolid::eOutside, UUtils::Exception(), fDz, Inside(), SafetyFromInsideR(), Warning, UVector3::x, UVector3::y, and UVector3::z.
|
inline |
Referenced by SafetyFromInside(), and UPolycone::SafetyFromInsideSection().
|
virtual |
Implements VUSolid.
Definition at line 1030 of file UTubs.cc.
References fDz, fPhiFullTube, fRMax, fRMin, SafetyToPhi(), UVector3::x, UVector3::y, and UVector3::z.
Referenced by UEnclosingCylinder::SafetyFromOutside().
|
inline |
|
inlineprotected |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
virtual |
Implements VUSolid.
Definition at line 1592 of file UTubs.cc.
References fDPhi, fDz, fRMax, fRMin, fSPhi, VUSolid::GetName(), and UUtils::kPi.
|
inlinevirtual |
Implements VUSolid.
|
protected |
Definition at line 180 of file UTubs.hh.
Referenced by DistanceToIn(), DistanceToOut(), and operator=().
|
protected |
Definition at line 180 of file UTubs.hh.
Referenced by DistanceToIn(), DistanceToOut(), and operator=().
|
protected |
Definition at line 180 of file UTubs.hh.
Referenced by DistanceToIn(), and operator=().
|
protected |
Definition at line 180 of file UTubs.hh.
Referenced by operator=().
|
protected |
Definition at line 180 of file UTubs.hh.
Referenced by ApproxSurfaceNormal(), DistanceToIn(), DistanceToOut(), GetPointOnSurface(), Normal(), and operator=().
|
protected |
Definition at line 180 of file UTubs.hh.
Referenced by ApproxSurfaceNormal(), GetPointOnSurface(), Normal(), and operator=().
|
protected |
Definition at line 163 of file UTubs.hh.
Referenced by operator=(), and UTubs().
|
protected |
Definition at line 176 of file UTubs.hh.
Referenced by ApproxSurfaceNormal(), DistanceToOut(), GetPointOnSurface(), Inside(), Normal(), operator=(), and StreamInfo().
|
protected |
Definition at line 176 of file UTubs.hh.
Referenced by ApproxSurfaceNormal(), DistanceToIn(), DistanceToOut(), Extent(), GetPointOnSurface(), Inside(), Normal(), operator=(), SafetyFromInside(), SafetyFromOutside(), and StreamInfo().
|
protected |
Definition at line 185 of file UTubs.hh.
Referenced by ApproxSurfaceNormal(), DistanceToIn(), DistanceToOut(), Inside(), Normal(), operator=(), and SafetyFromOutside().
|
protected |
Definition at line 176 of file UTubs.hh.
Referenced by ApproxSurfaceNormal(), DistanceToIn(), DistanceToOut(), Extent(), GetPointOnSurface(), Inside(), Normal(), operator=(), SafetyFromOutside(), and StreamInfo().
|
protected |
Definition at line 176 of file UTubs.hh.
Referenced by ApproxSurfaceNormal(), DistanceToIn(), DistanceToOut(), GetPointOnSurface(), Inside(), Normal(), operator=(), SafetyFromOutside(), and StreamInfo().
|
protected |
Definition at line 180 of file UTubs.hh.
Referenced by DistanceToIn(), DistanceToOut(), and operator=().
|
protected |
Definition at line 180 of file UTubs.hh.
Referenced by DistanceToIn(), DistanceToOut(), and operator=().
|
protected |
Definition at line 180 of file UTubs.hh.
Referenced by ApproxSurfaceNormal(), DistanceToIn(), DistanceToOut(), GetPointOnSurface(), Normal(), and operator=().
|
protected |
Definition at line 180 of file UTubs.hh.
Referenced by ApproxSurfaceNormal(), GetPointOnSurface(), Normal(), and operator=().
|
protected |
Definition at line 176 of file UTubs.hh.
Referenced by ApproxSurfaceNormal(), DistanceToOut(), GetPointOnSurface(), Inside(), Normal(), operator=(), and StreamInfo().
|
protected |
Definition at line 163 of file UTubs.hh.
Referenced by operator=(), and UTubs().
|
protected |
Definition at line 172 of file UTubs.hh.
Referenced by DistanceToOut(), Inside(), Normal(), operator=(), and UTubs().
|
protected |
Definition at line 172 of file UTubs.hh.
Referenced by DistanceToIn(), DistanceToOut(), Inside(), operator=(), and UTubs().