ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4EllipticalTube Class Reference

#include <geant4/tree/geant4-10.6-release/source/geometry/solids/specific/include/G4EllipticalTube.hh>

+ Inheritance diagram for G4EllipticalTube:
+ Collaboration diagram for G4EllipticalTube:

Public Member Functions

 G4EllipticalTube (const G4String &name, G4double Dx, G4double Dy, G4double Dz)
 
virtual ~G4EllipticalTube ()
 
void BoundingLimits (G4ThreeVector &pMin, G4ThreeVector &pMax) const
 
G4bool CalculateExtent (const EAxis pAxis, const G4VoxelLimits &pVoxelLimit, const G4AffineTransform &pTransform, G4double &pmin, G4double &pmax) const
 
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=false, G4bool *validNorm=nullptr, G4ThreeVector *n=nullptr) 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
 
G4PolyhedronCreatePolyhedron () const
 
G4PolyhedronGetPolyhedron () const
 
void DescribeYourselfTo (G4VGraphicsScene &scene) const
 
G4VisExtent GetExtent () const
 
G4double GetDx () const
 
G4double GetDy () const
 
G4double GetDz () const
 
void SetDx (G4double Dx)
 
void SetDy (G4double Dy)
 
void SetDz (G4double Dz)
 
 G4EllipticalTube (__void__ &)
 
 G4EllipticalTube (const G4EllipticalTube &rhs)
 
G4EllipticalTubeoperator= (const G4EllipticalTube &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
 
virtual void ComputeDimensions (G4VPVParameterisation *p, const G4int n, const G4VPhysicalVolume *pRep)
 
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
 

Private Member Functions

void CheckParameters ()
 
G4ThreeVector ApproxSurfaceNormal (const G4ThreeVector &p) const
 
G4double GetCachedSurfaceArea () const
 

Private Attributes

G4double halfTolerance
 
G4double fDx
 
G4double fDy
 
G4double fDz
 
G4double fCubicVolume = 0.0
 
G4double fSurfaceArea = 0.0
 
G4double fRsph
 
G4double fDDx
 
G4double fDDy
 
G4double fSx
 
G4double fSy
 
G4double fR
 
G4double fQ1
 
G4double fQ2
 
G4double fScratch
 
G4bool fRebuildPolyhedron = false
 
G4PolyhedronfpPolyhedron = nullptr
 

Additional Inherited Members

- 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
 
- Protected Attributes inherited from G4VSolid
G4double kCarTolerance
 

Detailed Description

Definition at line 60 of file G4EllipticalTube.hh.

View newest version in sPHENIX GitHub at line 60 of file G4EllipticalTube.hh

Constructor & Destructor Documentation

G4EllipticalTube::G4EllipticalTube ( const G4String name,
G4double  Dx,
G4double  Dy,
G4double  Dz 
)

Definition at line 61 of file G4EllipticalTube.cc.

View newest version in sPHENIX GitHub at line 61 of file G4EllipticalTube.cc

References CheckParameters().

Referenced by Clone().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4EllipticalTube::~G4EllipticalTube ( )
virtual

Definition at line 86 of file G4EllipticalTube.cc.

View newest version in sPHENIX GitHub at line 86 of file G4EllipticalTube.cc

References fpPolyhedron.

G4EllipticalTube::G4EllipticalTube ( __void__ &  a)

Definition at line 75 of file G4EllipticalTube.cc.

View newest version in sPHENIX GitHub at line 75 of file G4EllipticalTube.cc

G4EllipticalTube::G4EllipticalTube ( const G4EllipticalTube rhs)

Definition at line 95 of file G4EllipticalTube.cc.

View newest version in sPHENIX GitHub at line 95 of file G4EllipticalTube.cc

Member Function Documentation

G4ThreeVector G4EllipticalTube::ApproxSurfaceNormal ( const G4ThreeVector p) const
private

Definition at line 332 of file G4EllipticalTube.cc.

View newest version in sPHENIX GitHub at line 332 of file G4EllipticalTube.cc

References kdfinder::abs(), fDDx, fDDy, fDz, fQ1, fQ2, fSx, fSy, CLHEP::Hep3Vector::unit(), CLHEP::Hep3Vector::x(), x, CLHEP::Hep3Vector::y(), y, and CLHEP::Hep3Vector::z().

Referenced by DistanceToOut(), and SurfaceNormal().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4EllipticalTube::BoundingLimits ( G4ThreeVector pMin,
G4ThreeVector pMax 
) const
virtual

Reimplemented from G4VSolid.

Definition at line 187 of file G4EllipticalTube.cc.

View newest version in sPHENIX GitHub at line 187 of file G4EllipticalTube.cc

References fDx, fDy, fDz, and CLHEP::Hep3Vector::set().

Referenced by CalculateExtent().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4bool G4EllipticalTube::CalculateExtent ( const EAxis  pAxis,
const G4VoxelLimits pVoxelLimit,
const G4AffineTransform pTransform,
G4double pmin,
G4double pmax 
) const
virtual

Implements G4VSolid.

Definition at line 199 of file G4EllipticalTube.cc.

View newest version in sPHENIX GitHub at line 199 of file G4EllipticalTube.cc

References G4BoundingEnvelope::BoundingBoxVsVoxelLimits(), BoundingLimits(), G4BoundingEnvelope::CalculateExtent(), dx, dy, dz, fDx, fDy, fDz, k, pMax, and twopi.

+ Here is the call graph for this function:

void G4EllipticalTube::CheckParameters ( )
private

Definition at line 148 of file G4EllipticalTube.cc.

View newest version in sPHENIX GitHub at line 148 of file G4EllipticalTube.cc

References DBL_EPSILON, FatalException, fDDx, fDDy, fDx, fDy, fDz, fQ1, fQ2, fR, fRsph, fScratch, fSx, fSy, G4Exception(), G4VSolid::GetName(), halfTolerance, G4VSolid::kCarTolerance, message(), and min.

Referenced by G4EllipticalTube().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4VSolid * G4EllipticalTube::Clone ( ) const
virtual

Reimplemented from G4VSolid.

Definition at line 629 of file G4EllipticalTube.cc.

View newest version in sPHENIX GitHub at line 629 of file G4EllipticalTube.cc

References G4EllipticalTube().

+ Here is the call graph for this function:

G4Polyhedron * G4EllipticalTube::CreatePolyhedron ( ) const
virtual

Reimplemented from G4VSolid.

Definition at line 749 of file G4EllipticalTube.cc.

View newest version in sPHENIX GitHub at line 749 of file G4EllipticalTube.cc

References fDx, fDy, fDz, and HepPolyhedron::Transform().

Referenced by GetPolyhedron().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4EllipticalTube::DescribeYourselfTo ( G4VGraphicsScene scene) const
virtual

Implements G4VSolid.

Definition at line 785 of file G4EllipticalTube.cc.

View newest version in sPHENIX GitHub at line 785 of file G4EllipticalTube.cc

References G4VGraphicsScene::AddSolid().

+ Here is the call graph for this function:

G4double G4EllipticalTube::DistanceToIn ( const G4ThreeVector p,
const G4ThreeVector v 
) const
virtual

Implements G4VSolid.

Definition at line 349 of file G4EllipticalTube.cc.

View newest version in sPHENIX GitHub at line 349 of file G4EllipticalTube.cc

References A(), kdfinder::abs(), B(), C(), D(), DBL_MAX, dz, fDx, fDy, fDz, fQ1, fQ2, fR, fRsph, fScratch, fSx, fSy, halfTolerance, kInfinity, CLHEP::Hep3Vector::mag(), max, min, offset, t1, t2, tmp, v, CLHEP::Hep3Vector::x(), CLHEP::Hep3Vector::y(), and CLHEP::Hep3Vector::z().

+ Here is the call graph for this function:

G4double G4EllipticalTube::DistanceToIn ( const G4ThreeVector p) const
virtual

Implements G4VSolid.

Definition at line 433 of file G4EllipticalTube.cc.

View newest version in sPHENIX GitHub at line 433 of file G4EllipticalTube.cc

References kdfinder::abs(), distB, fDx, fDy, fDz, fR, fSx, fSy, max, CLHEP::Hep3Vector::x(), x, CLHEP::Hep3Vector::y(), y, and CLHEP::Hep3Vector::z().

+ Here is the call graph for this function:

G4double G4EllipticalTube::DistanceToOut ( const G4ThreeVector p,
const G4ThreeVector v,
const G4bool  calcNorm = false,
G4bool validNorm = nullptr,
G4ThreeVector n = nullptr 
) const
virtual

Implements G4VSolid.

Definition at line 458 of file G4EllipticalTube.cc.

View newest version in sPHENIX GitHub at line 458 of file G4EllipticalTube.cc

References A(), kdfinder::abs(), ApproxSurfaceNormal(), B(), C(), D(), DBL_MAX, G4VSolid::DumpInfo(), fDDx, fDDy, fDz, fQ1, fQ2, fR, fScratch, fSx, fSy, G4cout, G4endl, G4Exception(), G4VSolid::GetName(), halfTolerance, JustWarning, max, message(), min, CLHEP::Hep3Vector::set(), t1, t2, tmp, CLHEP::Hep3Vector::unit(), v, CLHEP::Hep3Vector::x(), CLHEP::Hep3Vector::y(), and CLHEP::Hep3Vector::z().

+ Here is the call graph for this function:

G4double G4EllipticalTube::DistanceToOut ( const G4ThreeVector p) const
virtual

Implements G4VSolid.

Definition at line 585 of file G4EllipticalTube.cc.

View newest version in sPHENIX GitHub at line 585 of file G4EllipticalTube.cc

References kdfinder::abs(), G4VSolid::DumpInfo(), fDz, fR, fSx, fSy, G4Exception(), G4VSolid::GetName(), Inside(), JustWarning, kOutside, message(), min, mm, CLHEP::Hep3Vector::x(), x, CLHEP::Hep3Vector::y(), y, and CLHEP::Hep3Vector::z().

+ Here is the call graph for this function:

G4double G4EllipticalTube::GetCachedSurfaceArea ( ) const
private

Definition at line 651 of file G4EllipticalTube.cc.

View newest version in sPHENIX GitHub at line 651 of file G4EllipticalTube.cc

References G4GeomTools::EllipsePerimeter(), fDx, fDy, fDz, G4ThreadLocalStatic, and pi.

Referenced by GetPointOnSurface(), and GetSurfaceArea().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4EllipticalTube::GetCubicVolume ( )
virtual

Reimplemented from G4VSolid.

Definition at line 638 of file G4EllipticalTube.cc.

View newest version in sPHENIX GitHub at line 638 of file G4EllipticalTube.cc

References fCubicVolume, fDx, fDy, fDz, and twopi.

G4double G4EllipticalTube::GetDx ( ) const
inline

Referenced by PHG4GDMLWriteSolids::EltubeWrite(), G4GDMLWriteSolids::EltubeWrite(), export_G4EllipticalTube(), and G4tgbGeometryDumper::GetSolidParams().

+ Here is the caller graph for this function:

G4double G4EllipticalTube::GetDy ( ) const
inline

Referenced by PHG4GDMLWriteSolids::EltubeWrite(), G4GDMLWriteSolids::EltubeWrite(), export_G4EllipticalTube(), and G4tgbGeometryDumper::GetSolidParams().

+ Here is the caller graph for this function:

G4double G4EllipticalTube::GetDz ( ) const
inline

Referenced by PHG4GDMLWriteSolids::EltubeWrite(), G4GDMLWriteSolids::EltubeWrite(), export_G4EllipticalTube(), and G4tgbGeometryDumper::GetSolidParams().

+ Here is the caller graph for this function:

G4GeometryType G4EllipticalTube::GetEntityType ( ) const
virtual

Implements G4VSolid.

Definition at line 620 of file G4EllipticalTube.cc.

View newest version in sPHENIX GitHub at line 620 of file G4EllipticalTube.cc

G4VisExtent G4EllipticalTube::GetExtent ( ) const
virtual

Reimplemented from G4VSolid.

Definition at line 794 of file G4EllipticalTube.cc.

View newest version in sPHENIX GitHub at line 794 of file G4EllipticalTube.cc

References fDx, fDy, and fDz.

G4ThreeVector G4EllipticalTube::GetPointOnSurface ( ) const
virtual

Reimplemented from G4VSolid.

Definition at line 706 of file G4EllipticalTube.cc.

View newest version in sPHENIX GitHub at line 706 of file G4EllipticalTube.cc

References fDx, fDy, fDz, G4RandomPointInEllipse(), G4RandomPointOnEllipse(), G4UniformRand, GetCachedSurfaceArea(), k, pi, CLHEP::Hep3Vector::set(), CLHEP::Hep2Vector::x(), and CLHEP::Hep2Vector::y().

+ Here is the call graph for this function:

G4Polyhedron * G4EllipticalTube::GetPolyhedron ( ) const
virtual

Reimplemented from G4VSolid.

Definition at line 765 of file G4EllipticalTube.cc.

View newest version in sPHENIX GitHub at line 765 of file G4EllipticalTube.cc

References CreatePolyhedron(), fpPolyhedron, fRebuildPolyhedron, HepPolyhedron::GetNumberOfRotationSteps(), G4Polyhedron::GetNumberOfRotationStepsAtTimeOfCreation(), and G4TemplateAutoLock< _Mutex_t >::unlock().

+ Here is the call graph for this function:

G4double G4EllipticalTube::GetSurfaceArea ( )
virtual

Reimplemented from G4VSolid.

Definition at line 671 of file G4EllipticalTube.cc.

View newest version in sPHENIX GitHub at line 671 of file G4EllipticalTube.cc

References fSurfaceArea, and GetCachedSurfaceArea().

+ Here is the call graph for this function:

EInside G4EllipticalTube::Inside ( const G4ThreeVector p) const
virtual

Implements G4VSolid.

Definition at line 261 of file G4EllipticalTube.cc.

View newest version in sPHENIX GitHub at line 261 of file G4EllipticalTube.cc

References kdfinder::abs(), fDz, fQ1, fQ2, fSx, fSy, halfTolerance, kInside, kOutside, kSurface, max, CLHEP::Hep3Vector::x(), x, CLHEP::Hep3Vector::y(), y, and CLHEP::Hep3Vector::z().

Referenced by DistanceToOut().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4EllipticalTube & G4EllipticalTube::operator= ( const G4EllipticalTube rhs)

Definition at line 109 of file G4EllipticalTube.cc.

View newest version in sPHENIX GitHub at line 109 of file G4EllipticalTube.cc

References fCubicVolume, fDDx, fDDy, fDx, fDy, fDz, fpPolyhedron, fQ1, fQ2, fR, fRebuildPolyhedron, fRsph, fScratch, fSurfaceArea, fSx, fSy, halfTolerance, and G4VSolid::operator=().

+ Here is the call graph for this function:

void G4EllipticalTube::SetDx ( G4double  Dx)
inline

Referenced by export_G4EllipticalTube().

+ Here is the caller graph for this function:

void G4EllipticalTube::SetDy ( G4double  Dy)
inline

Referenced by export_G4EllipticalTube().

+ Here is the caller graph for this function:

void G4EllipticalTube::SetDz ( G4double  Dz)
inline

Referenced by export_G4EllipticalTube().

+ Here is the caller graph for this function:

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

Implements G4VSolid.

Definition at line 684 of file G4EllipticalTube.cc.

View newest version in sPHENIX GitHub at line 684 of file G4EllipticalTube.cc

References fDx, fDy, fDz, G4VSolid::GetName(), and mm.

+ Here is the call graph for this function:

G4ThreeVector G4EllipticalTube::SurfaceNormal ( const G4ThreeVector p) const
virtual

Implements G4VSolid.

Definition at line 277 of file G4EllipticalTube.cc.

View newest version in sPHENIX GitHub at line 277 of file G4EllipticalTube.cc

References kdfinder::abs(), ApproxSurfaceNormal(), G4VSolid::DumpInfo(), fDDx, fDDy, fDz, fQ1, fQ2, fSx, fSy, G4cout, G4endl, G4Exception(), G4VSolid::GetName(), halfTolerance, JustWarning, message(), mm, norm, CLHEP::Hep3Vector::setZ(), CLHEP::Hep3Vector::unit(), CLHEP::Hep3Vector::x(), x, CLHEP::Hep3Vector::y(), y, and CLHEP::Hep3Vector::z().

+ Here is the call graph for this function:

Member Data Documentation

G4double G4EllipticalTube::fCubicVolume = 0.0
private

Definition at line 156 of file G4EllipticalTube.hh.

View newest version in sPHENIX GitHub at line 156 of file G4EllipticalTube.hh

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

G4double G4EllipticalTube::fDDx
private

Definition at line 161 of file G4EllipticalTube.hh.

View newest version in sPHENIX GitHub at line 161 of file G4EllipticalTube.hh

Referenced by ApproxSurfaceNormal(), CheckParameters(), DistanceToOut(), operator=(), and SurfaceNormal().

G4double G4EllipticalTube::fDDy
private

Definition at line 162 of file G4EllipticalTube.hh.

View newest version in sPHENIX GitHub at line 162 of file G4EllipticalTube.hh

Referenced by ApproxSurfaceNormal(), CheckParameters(), DistanceToOut(), operator=(), and SurfaceNormal().

G4double G4EllipticalTube::fDx
private
G4double G4EllipticalTube::fDy
private
G4Polyhedron* G4EllipticalTube::fpPolyhedron = nullptr
mutableprivate

Definition at line 171 of file G4EllipticalTube.hh.

View newest version in sPHENIX GitHub at line 171 of file G4EllipticalTube.hh

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

G4double G4EllipticalTube::fQ1
private

Definition at line 166 of file G4EllipticalTube.hh.

View newest version in sPHENIX GitHub at line 166 of file G4EllipticalTube.hh

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

G4double G4EllipticalTube::fQ2
private

Definition at line 167 of file G4EllipticalTube.hh.

View newest version in sPHENIX GitHub at line 167 of file G4EllipticalTube.hh

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

G4double G4EllipticalTube::fR
private

Definition at line 165 of file G4EllipticalTube.hh.

View newest version in sPHENIX GitHub at line 165 of file G4EllipticalTube.hh

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

G4bool G4EllipticalTube::fRebuildPolyhedron = false
mutableprivate

Definition at line 170 of file G4EllipticalTube.hh.

View newest version in sPHENIX GitHub at line 170 of file G4EllipticalTube.hh

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

G4double G4EllipticalTube::fRsph
private

Definition at line 160 of file G4EllipticalTube.hh.

View newest version in sPHENIX GitHub at line 160 of file G4EllipticalTube.hh

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

G4double G4EllipticalTube::fScratch
private

Definition at line 168 of file G4EllipticalTube.hh.

View newest version in sPHENIX GitHub at line 168 of file G4EllipticalTube.hh

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

G4double G4EllipticalTube::fSurfaceArea = 0.0
private

Definition at line 157 of file G4EllipticalTube.hh.

View newest version in sPHENIX GitHub at line 157 of file G4EllipticalTube.hh

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

G4double G4EllipticalTube::fSx
private

Definition at line 163 of file G4EllipticalTube.hh.

View newest version in sPHENIX GitHub at line 163 of file G4EllipticalTube.hh

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

G4double G4EllipticalTube::fSy
private

Definition at line 164 of file G4EllipticalTube.hh.

View newest version in sPHENIX GitHub at line 164 of file G4EllipticalTube.hh

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

G4double G4EllipticalTube::halfTolerance
private

Definition at line 150 of file G4EllipticalTube.hh.

View newest version in sPHENIX GitHub at line 150 of file G4EllipticalTube.hh

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


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