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

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

+ Inheritance diagram for G4TessellatedSolid:
+ Collaboration diagram for G4TessellatedSolid:

Public Member Functions

 G4TessellatedSolid ()
 
virtual ~G4TessellatedSolid ()
 
 G4TessellatedSolid (const G4String &name)
 
 G4TessellatedSolid (__void__ &)
 
 G4TessellatedSolid (const G4TessellatedSolid &ts)
 
G4TessellatedSolidoperator= (const G4TessellatedSolid &right)
 
G4TessellatedSolidoperator+= (const G4TessellatedSolid &right)
 
G4bool AddFacet (G4VFacet *aFacet)
 
G4VFacetGetFacet (G4int i) const
 
G4int GetNumberOfFacets () const
 
virtual EInside Inside (const G4ThreeVector &p) const
 
virtual G4ThreeVector SurfaceNormal (const G4ThreeVector &p) const
 
virtual G4double DistanceToIn (const G4ThreeVector &p, const G4ThreeVector &v) const
 
virtual G4double DistanceToIn (const G4ThreeVector &p) const
 
virtual G4double DistanceToOut (const G4ThreeVector &p) const
 
virtual G4double DistanceToOut (const G4ThreeVector &p, const G4ThreeVector &v, const G4bool calcNorm, G4bool *validNorm, G4ThreeVector *norm) const
 
virtual G4bool Normal (const G4ThreeVector &p, G4ThreeVector &n) const
 
virtual G4double SafetyFromOutside (const G4ThreeVector &p, G4bool aAccurate=false) const
 
virtual G4double SafetyFromInside (const G4ThreeVector &p, G4bool aAccurate=false) const
 
virtual G4GeometryType GetEntityType () const
 
virtual std::ostream & StreamInfo (std::ostream &os) const
 
virtual G4VSolidClone () const
 
virtual G4ThreeVector GetPointOnSurface () const
 
virtual G4double GetSurfaceArea ()
 
virtual G4double GetCubicVolume ()
 
void SetSolidClosed (const G4bool t)
 
G4bool GetSolidClosed () const
 
void SetMaxVoxels (G4int max)
 
G4VoxelizerGetVoxels ()
 
virtual G4bool CalculateExtent (const EAxis pAxis, const G4VoxelLimits &pVoxelLimit, const G4AffineTransform &pTransform, G4double &pMin, G4double &pMax) const
 
void BoundingLimits (G4ThreeVector &pMin, G4ThreeVector &pMax) const
 
G4double GetMinXExtent () const
 
G4double GetMaxXExtent () const
 
G4double GetMinYExtent () const
 
G4double GetMaxYExtent () const
 
G4double GetMinZExtent () const
 
G4double GetMaxZExtent () const
 
virtual G4PolyhedronCreatePolyhedron () const
 
virtual G4PolyhedronGetPolyhedron () const
 
virtual void DescribeYourselfTo (G4VGraphicsScene &scene) const
 
virtual G4VisExtent GetExtent () const
 
G4int AllocatedMemoryWithoutVoxels ()
 
G4int AllocatedMemory ()
 
void DisplayAllocatedMemory ()
 
- 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
 

Protected Attributes

G4double kCarToleranceHalf
 
- Protected Attributes inherited from G4VSolid
G4double kCarTolerance
 

Private Member Functions

void Initialize ()
 
G4double DistanceToOutNoVoxels (const G4ThreeVector &p, const G4ThreeVector &v, G4ThreeVector &aNormalVector, G4bool &aConvex, G4double aPstep=kInfinity) const
 
G4double DistanceToInCandidates (const std::vector< G4int > &candidates, const G4ThreeVector &aPoint, const G4ThreeVector &aDirection) const
 
void DistanceToOutCandidates (const std::vector< G4int > &candidates, const G4ThreeVector &aPoint, const G4ThreeVector &direction, G4double &minDist, G4ThreeVector &minNormal, G4int &minCandidate) const
 
G4double DistanceToInNoVoxels (const G4ThreeVector &p, const G4ThreeVector &v, G4double aPstep=kInfinity) const
 
void SetExtremeFacets ()
 
EInside InsideNoVoxels (const G4ThreeVector &p) const
 
EInside InsideVoxels (const G4ThreeVector &aPoint) const
 
void Voxelize ()
 
void CreateVertexList ()
 
void PrecalculateInsides ()
 
void SetRandomVectors ()
 
G4double DistanceToInCore (const G4ThreeVector &p, const G4ThreeVector &v, G4double aPstep=kInfinity) const
 
G4double DistanceToOutCore (const G4ThreeVector &p, const G4ThreeVector &v, G4ThreeVector &aNormalVector, G4bool &aConvex, G4double aPstep=kInfinity) const
 
G4int SetAllUsingStack (const std::vector< G4int > &voxel, const std::vector< G4int > &max, G4bool status, G4SurfBits &checked)
 
void DeleteObjects ()
 
void CopyObjects (const G4TessellatedSolid &s)
 
G4double MinDistanceFacet (const G4ThreeVector &p, G4bool simple, G4VFacet *&facet) const
 
G4bool OutsideOfExtent (const G4ThreeVector &p, G4double tolerance=0.0) const
 

Static Private Member Functions

static G4bool CompareSortedVoxel (const std::pair< G4int, G4double > &l, const std::pair< G4int, G4double > &r)
 

Private Attributes

G4bool fRebuildPolyhedron = false
 
G4PolyhedronfpPolyhedron = nullptr
 
std::vector< G4VFacet * > fFacets
 
std::set< G4VFacet * > fExtremeFacets
 
G4GeometryType fGeometryType
 
G4double fCubicVolume = 0.0
 
G4double fSurfaceArea = 0.0
 
std::vector< G4ThreeVectorfVertexList
 
std::set< G4VertexInfo,
G4VertexComparator
fFacetList
 
G4ThreeVector fMinExtent
 
G4ThreeVector fMaxExtent
 
G4bool fSolidClosed = false
 
std::vector< G4ThreeVectorfRandir
 
G4int fMaxTries
 
G4Voxelizer fVoxels
 
G4SurfBits fInsides
 

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
 

Detailed Description

Definition at line 127 of file G4TessellatedSolid.hh.

View newest version in sPHENIX GitHub at line 127 of file G4TessellatedSolid.hh

Constructor & Destructor Documentation

G4TessellatedSolid::G4TessellatedSolid ( )

Definition at line 86 of file G4TessellatedSolid.cc.

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

References Initialize().

Referenced by Clone().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4TessellatedSolid::~G4TessellatedSolid ( )
virtual

Definition at line 116 of file G4TessellatedSolid.cc.

View newest version in sPHENIX GitHub at line 116 of file G4TessellatedSolid.cc

References DeleteObjects().

+ Here is the call graph for this function:

G4TessellatedSolid::G4TessellatedSolid ( const G4String name)

Definition at line 96 of file G4TessellatedSolid.cc.

View newest version in sPHENIX GitHub at line 96 of file G4TessellatedSolid.cc

References Initialize().

+ Here is the call graph for this function:

G4TessellatedSolid::G4TessellatedSolid ( __void__ &  a)

Definition at line 107 of file G4TessellatedSolid.cc.

View newest version in sPHENIX GitHub at line 107 of file G4TessellatedSolid.cc

References fMaxExtent, fMinExtent, Initialize(), and CLHEP::Hep3Vector::set().

+ Here is the call graph for this function:

G4TessellatedSolid::G4TessellatedSolid ( const G4TessellatedSolid ts)

Definition at line 125 of file G4TessellatedSolid.cc.

View newest version in sPHENIX GitHub at line 125 of file G4TessellatedSolid.cc

References CopyObjects(), and Initialize().

+ Here is the call graph for this function:

Member Function Documentation

G4bool G4TessellatedSolid::AddFacet ( G4VFacet aFacet)

Definition at line 207 of file G4TessellatedSolid.cc.

View newest version in sPHENIX GitHub at line 207 of file G4TessellatedSolid.cc

References fFacetList, fFacets, fSolidClosed, G4cout, G4Exception(), G4VFacet::GetCircumcentre(), G4VertexInfo::id, G4VFacet::IsDefined(), it, JustWarning, G4VSolid::kCarTolerance, G4VertexInfo::mag2, OutsideOfExtent(), pos(), G4VFacet::StreamInfo(), CLHEP::Hep3Vector::x(), CLHEP::Hep3Vector::y(), and CLHEP::Hep3Vector::z().

Referenced by G4ExtrudedSolid::AddGeneralPolygonFacets(), CopyObjects(), G4GenericTrap::CreateTessellatedSolid(), G4tgbVolume::FindOrConstructG4Solid(), G4ExtrudedSolid::MakeFacets(), operator+=(), and G4GDMLReadSolids::TessellatedRead().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4int G4TessellatedSolid::AllocatedMemory ( )

Definition at line 2065 of file G4TessellatedSolid.cc.

View newest version in sPHENIX GitHub at line 2065 of file G4TessellatedSolid.cc

References G4Voxelizer::AllocatedMemory(), AllocatedMemoryWithoutVoxels(), fInsides, fVoxels, and G4SurfBits::GetNbytes().

Referenced by DisplayAllocatedMemory().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4int G4TessellatedSolid::AllocatedMemoryWithoutVoxels ( )

Definition at line 2042 of file G4TessellatedSolid.cc.

View newest version in sPHENIX GitHub at line 2042 of file G4TessellatedSolid.cc

References G4VFacet::AllocatedMemory(), fExtremeFacets, fFacets, fRandir, fVertexList, and it.

Referenced by AllocatedMemory(), and DisplayAllocatedMemory().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Reimplemented from G4VSolid.

Definition at line 1799 of file G4TessellatedSolid.cc.

View newest version in sPHENIX GitHub at line 1799 of file G4TessellatedSolid.cc

References G4VSolid::DumpInfo(), fMaxExtent, fMinExtent, G4Exception(), G4VSolid::GetName(), JustWarning, message(), pMax, CLHEP::Hep3Vector::x(), CLHEP::Hep3Vector::y(), and CLHEP::Hep3Vector::z().

Referenced by CalculateExtent().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4bool G4TessellatedSolid::CalculateExtent ( const EAxis  pAxis,
const G4VoxelLimits pVoxelLimit,
const G4AffineTransform pTransform,
G4double pMin,
G4double pMax 
) const
virtual

Implements G4VSolid.

Reimplemented in G4ExtrudedSolid.

Definition at line 1825 of file G4TessellatedSolid.cc.

View newest version in sPHENIX GitHub at line 1825 of file G4TessellatedSolid.cc

References kdfinder::abs(), G4BoundingEnvelope::BoundingBoxVsVoxelLimits(), BoundingLimits(), G4BoundingEnvelope::CalculateExtent(), emax, CEMC_TOWER::emin, GetFacet(), G4VoxelLimits::GetMaxExtent(), G4VoxelLimits::GetMinExtent(), GetNumberOfFacets(), G4VFacet::GetNumberOfVertices(), G4VFacet::GetSurfaceNormal(), G4VFacet::GetVertex(), k, kCarToleranceHalf, and kInfinity.

+ Here is the call graph for this function:

G4VSolid * G4TessellatedSolid::Clone ( ) const
virtual

Reimplemented from G4VSolid.

Reimplemented in G4ExtrudedSolid.

Definition at line 1600 of file G4TessellatedSolid.cc.

View newest version in sPHENIX GitHub at line 1600 of file G4TessellatedSolid.cc

References G4TessellatedSolid().

+ Here is the call graph for this function:

G4bool G4TessellatedSolid::CompareSortedVoxel ( const std::pair< G4int, G4double > &  l,
const std::pair< G4int, G4double > &  r 
)
staticprivate

Definition at line 1402 of file G4TessellatedSolid.cc.

View newest version in sPHENIX GitHub at line 1402 of file G4TessellatedSolid.cc

Referenced by MinDistanceFacet().

+ Here is the caller graph for this function:

void G4TessellatedSolid::CopyObjects ( const G4TessellatedSolid s)
private

Definition at line 184 of file G4TessellatedSolid.cc.

View newest version in sPHENIX GitHub at line 184 of file G4TessellatedSolid.cc

References AddFacet(), fVoxels, GetFacet(), G4Voxelizer::GetMaxVoxels(), GetNumberOfFacets(), GetSolidClosed(), n, G4Voxelizer::SetMaxVoxels(), and SetSolidClosed().

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

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4Polyhedron * G4TessellatedSolid::CreatePolyhedron ( ) const
virtual

Reimplemented from G4VSolid.

Definition at line 1745 of file G4TessellatedSolid.cc.

View newest version in sPHENIX GitHub at line 1745 of file G4TessellatedSolid.cc

References G4PolyhedronArbitrary::AddFacet(), G4PolyhedronArbitrary::AddVertex(), fFacets, fVertexList, G4VFacet::GetNumberOfVertices(), G4VFacet::GetVertexIndex(), k, n, G4PolyhedronArbitrary::SetReferences(), and v.

Referenced by G4GenericTrap::CreatePolyhedron(), and GetPolyhedron().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4TessellatedSolid::CreateVertexList ( )
private

Definition at line 421 of file G4TessellatedSolid.cc.

View newest version in sPHENIX GitHub at line 421 of file G4TessellatedSolid.cc

References e, fFacets, fMaxExtent, fMinExtent, fVertexList, G4cout, G4endl, G4VFacet::GetNumberOfVertices(), G4VFacet::GetVertex(), G4VertexInfo::id, it, k, G4VSolid::kCarTolerance, G4VertexInfo::mag2, max, OutsideOfExtent(), pos(), G4VFacet::SetVertexIndex(), G4VFacet::SetVertices(), CLHEP::Hep3Vector::setX(), CLHEP::Hep3Vector::setY(), CLHEP::Hep3Vector::setZ(), boost::swap(), CLHEP::Hep3Vector::x(), CLHEP::Hep3Vector::y(), and CLHEP::Hep3Vector::z().

Referenced by SetSolidClosed().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4TessellatedSolid::DeleteObjects ( )
private

Definition at line 174 of file G4TessellatedSolid.cc.

View newest version in sPHENIX GitHub at line 174 of file G4TessellatedSolid.cc

References fFacets, and fpPolyhedron.

Referenced by operator=(), and ~G4TessellatedSolid().

+ Here is the caller graph for this function:

void G4TessellatedSolid::DescribeYourselfTo ( G4VGraphicsScene scene) const
virtual

Implements G4VSolid.

Definition at line 1738 of file G4TessellatedSolid.cc.

View newest version in sPHENIX GitHub at line 1738 of file G4TessellatedSolid.cc

References G4VGraphicsScene::AddSolid().

Referenced by G4GenericTrap::DescribeYourselfTo().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4TessellatedSolid::DisplayAllocatedMemory ( )

Definition at line 555 of file G4TessellatedSolid.cc.

View newest version in sPHENIX GitHub at line 555 of file G4TessellatedSolid.cc

References AllocatedMemory(), AllocatedMemoryWithoutVoxels(), G4cout, G4endl, and ratio.

Referenced by SetSolidClosed().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Implements G4VSolid.

Reimplemented in G4ExtrudedSolid.

Definition at line 1653 of file G4TessellatedSolid.cc.

View newest version in sPHENIX GitHub at line 1653 of file G4TessellatedSolid.cc

References DistanceToInCore(), G4endl, G4Exception(), G4VSolid::GetName(), Inside(), JustWarning, kInfinity, kSurface, message(), and v.

Referenced by G4GenericTrap::DistanceToIn(), G4ExtrudedSolid::DistanceToIn(), DistanceToOutNoVoxels(), and SafetyFromInside().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Implements G4VSolid.

Reimplemented in G4ExtrudedSolid.

Definition at line 1646 of file G4TessellatedSolid.cc.

View newest version in sPHENIX GitHub at line 1646 of file G4TessellatedSolid.cc

References SafetyFromOutside().

+ Here is the call graph for this function:

G4double G4TessellatedSolid::DistanceToInCandidates ( const std::vector< G4int > &  candidates,
const G4ThreeVector aPoint,
const G4ThreeVector aDirection 
) const
private

Definition at line 1300 of file G4TessellatedSolid.cc.

View newest version in sPHENIX GitHub at line 1300 of file G4TessellatedSolid.cc

References fFacets, G4VFacet::Intersect(), kCarToleranceHalf, kInfinity, and CLHEP::normal().

Referenced by DistanceToInCore().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4TessellatedSolid::DistanceToInCore ( const G4ThreeVector p,
const G4ThreeVector v,
G4double  aPstep = kInfinity 
) const
private

Definition at line 1348 of file G4TessellatedSolid.cc.

View newest version in sPHENIX GitHub at line 1348 of file G4TessellatedSolid.cc

References G4Voxelizer::DistanceToFirst(), DistanceToInCandidates(), DistanceToInNoVoxels(), G4Voxelizer::DistanceToNext(), fVoxels, G4Voxelizer::GetCandidates(), G4Voxelizer::GetCountOfVoxels(), G4Voxelizer::GetVoxel(), G4VSolid::kCarTolerance, kInfinity, CLHEP::Hep3Vector::unit(), and G4Voxelizer::UpdateCurrentVoxel().

Referenced by DistanceToIn().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4TessellatedSolid::DistanceToInNoVoxels ( const G4ThreeVector p,
const G4ThreeVector v,
G4double  aPstep = kInfinity 
) const
private

Definition at line 1050 of file G4TessellatedSolid.cc.

View newest version in sPHENIX GitHub at line 1050 of file G4TessellatedSolid.cc

References DistanceToOut(), fFacets, G4endl, G4Exception(), Inside(), G4VFacet::Intersect(), JustWarning, kCarToleranceHalf, kInfinity, kInside, message(), mm, CLHEP::normal(), CLHEP::Hep3Vector::x(), CLHEP::Hep3Vector::y(), and CLHEP::Hep3Vector::z().

Referenced by DistanceToInCore().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Implements G4VSolid.

Reimplemented in G4ExtrudedSolid.

Definition at line 1681 of file G4TessellatedSolid.cc.

View newest version in sPHENIX GitHub at line 1681 of file G4TessellatedSolid.cc

References SafetyFromInside().

Referenced by DistanceToInNoVoxels(), G4GenericTrap::DistanceToOut(), G4ExtrudedSolid::DistanceToOut(), and SafetyFromOutside().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4TessellatedSolid::DistanceToOut ( const G4ThreeVector p,
const G4ThreeVector v,
const G4bool  calcNorm,
G4bool validNorm,
G4ThreeVector norm 
) const
virtual

Implements G4VSolid.

Reimplemented in G4ExtrudedSolid.

Definition at line 1704 of file G4TessellatedSolid.cc.

View newest version in sPHENIX GitHub at line 1704 of file G4TessellatedSolid.cc

References DistanceToOutCore(), G4endl, G4Exception(), G4VSolid::GetName(), Inside(), JustWarning, kInfinity, kSurface, message(), n, v, and Acts::IntegrationTest::valid().

+ Here is the call graph for this function:

void G4TessellatedSolid::DistanceToOutCandidates ( const std::vector< G4int > &  candidates,
const G4ThreeVector aPoint,
const G4ThreeVector direction,
G4double minDist,
G4ThreeVector minNormal,
G4int minCandidate 
) const
private

Definition at line 1187 of file G4TessellatedSolid.cc.

View newest version in sPHENIX GitHub at line 1187 of file G4TessellatedSolid.cc

References G4VFacet::Distance(), fFacets, G4VFacet::Intersect(), G4VSolid::kCarTolerance, kCarToleranceHalf, and CLHEP::normal().

Referenced by DistanceToOutCore().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4TessellatedSolid::DistanceToOutCore ( const G4ThreeVector p,
const G4ThreeVector v,
G4ThreeVector aNormalVector,
G4bool aConvex,
G4double  aPstep = kInfinity 
) const
private

Definition at line 1227 of file G4TessellatedSolid.cc.

View newest version in sPHENIX GitHub at line 1227 of file G4TessellatedSolid.cc

References G4Voxelizer::Contains(), G4Voxelizer::DistanceToNext(), DistanceToOutCandidates(), DistanceToOutNoVoxels(), fExtremeFacets, fFacets, fVoxels, G4Voxelizer::GetCandidates(), G4Voxelizer::GetCountOfVoxels(), G4Voxelizer::GetVoxel(), G4VSolid::kCarTolerance, kInfinity, Normal(), CLHEP::Hep3Vector::unit(), and G4Voxelizer::UpdateCurrentVoxel().

Referenced by DistanceToOut().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4TessellatedSolid::DistanceToOutNoVoxels ( const G4ThreeVector p,
const G4ThreeVector v,
G4ThreeVector aNormalVector,
G4bool aConvex,
G4double  aPstep = kInfinity 
) const
private

Definition at line 1116 of file G4TessellatedSolid.cc.

View newest version in sPHENIX GitHub at line 1116 of file G4TessellatedSolid.cc

References G4VFacet::Distance(), DistanceToIn(), fExtremeFacets, fFacets, G4endl, G4Exception(), Inside(), G4VFacet::Intersect(), JustWarning, G4VSolid::kCarTolerance, kCarToleranceHalf, kInfinity, kOutside, message(), mm, CLHEP::normal(), Normal(), CLHEP::Hep3Vector::x(), CLHEP::Hep3Vector::y(), and CLHEP::Hep3Vector::z().

Referenced by DistanceToOutCore().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4TessellatedSolid::GetCubicVolume ( )
virtual

Reimplemented from G4VSolid.

Definition at line 1939 of file G4TessellatedSolid.cc.

View newest version in sPHENIX GitHub at line 1939 of file G4TessellatedSolid.cc

References CLHEP::Hep3Vector::dot(), fCubicVolume, fFacets, G4VFacet::GetArea(), G4VFacet::GetSurfaceNormal(), and G4VFacet::GetVertex().

+ Here is the call graph for this function:

G4GeometryType G4TessellatedSolid::GetEntityType ( ) const
virtual

Implements G4VSolid.

Reimplemented in G4ExtrudedSolid.

Definition at line 1570 of file G4TessellatedSolid.cc.

View newest version in sPHENIX GitHub at line 1570 of file G4TessellatedSolid.cc

References fGeometryType.

G4VisExtent G4TessellatedSolid::GetExtent ( ) const
virtual

Reimplemented from G4VSolid.

Definition at line 1930 of file G4TessellatedSolid.cc.

View newest version in sPHENIX GitHub at line 1930 of file G4TessellatedSolid.cc

References fMaxExtent, fMinExtent, CLHEP::Hep3Vector::x(), CLHEP::Hep3Vector::y(), and CLHEP::Hep3Vector::z().

Referenced by G4GenericTrap::GetExtent().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4VFacet * G4TessellatedSolid::GetFacet ( G4int  i) const
inline

Definition at line 302 of file G4TessellatedSolid.hh.

View newest version in sPHENIX GitHub at line 302 of file G4TessellatedSolid.hh

References fFacets.

Referenced by CalculateExtent(), CopyObjects(), operator+=(), PHG4GDMLWriteSolids::TessellatedWrite(), and G4GDMLWriteSolids::TessellatedWrite().

+ Here is the caller graph for this function:

G4double G4TessellatedSolid::GetMaxXExtent ( ) const

Definition at line 1895 of file G4TessellatedSolid.cc.

View newest version in sPHENIX GitHub at line 1895 of file G4TessellatedSolid.cc

References fMaxExtent, and CLHEP::Hep3Vector::x().

Referenced by G4ExtrudedSolid::Inside().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4TessellatedSolid::GetMaxYExtent ( ) const

Definition at line 1909 of file G4TessellatedSolid.cc.

View newest version in sPHENIX GitHub at line 1909 of file G4TessellatedSolid.cc

References fMaxExtent, and CLHEP::Hep3Vector::y().

Referenced by G4ExtrudedSolid::Inside().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4TessellatedSolid::GetMaxZExtent ( ) const

Definition at line 1923 of file G4TessellatedSolid.cc.

View newest version in sPHENIX GitHub at line 1923 of file G4TessellatedSolid.cc

References fMaxExtent, and CLHEP::Hep3Vector::z().

Referenced by G4ExtrudedSolid::Inside().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4TessellatedSolid::GetMinXExtent ( ) const

Definition at line 1888 of file G4TessellatedSolid.cc.

View newest version in sPHENIX GitHub at line 1888 of file G4TessellatedSolid.cc

References fMinExtent, and CLHEP::Hep3Vector::x().

Referenced by G4ExtrudedSolid::Inside().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4TessellatedSolid::GetMinYExtent ( ) const

Definition at line 1902 of file G4TessellatedSolid.cc.

View newest version in sPHENIX GitHub at line 1902 of file G4TessellatedSolid.cc

References fMinExtent, and CLHEP::Hep3Vector::y().

Referenced by G4ExtrudedSolid::Inside().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4TessellatedSolid::GetMinZExtent ( ) const

Definition at line 1916 of file G4TessellatedSolid.cc.

View newest version in sPHENIX GitHub at line 1916 of file G4TessellatedSolid.cc

References fMinExtent, and CLHEP::Hep3Vector::z().

Referenced by G4ExtrudedSolid::Inside().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4int G4TessellatedSolid::GetNumberOfFacets ( ) const

Definition at line 627 of file G4TessellatedSolid.cc.

View newest version in sPHENIX GitHub at line 627 of file G4TessellatedSolid.cc

References fFacets.

Referenced by CalculateExtent(), CopyObjects(), operator+=(), PHG4GDMLWriteSolids::TessellatedWrite(), and G4GDMLWriteSolids::TessellatedWrite().

+ Here is the caller graph for this function:

G4ThreeVector G4TessellatedSolid::GetPointOnSurface ( ) const
virtual

Reimplemented from G4VSolid.

Definition at line 1976 of file G4TessellatedSolid.cc.

View newest version in sPHENIX GitHub at line 1976 of file G4TessellatedSolid.cc

References fFacets, and G4INCL::DeJongSpin::shoot().

Referenced by G4GenericTrap::GetPointOnSurface().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4Polyhedron * G4TessellatedSolid::GetPolyhedron ( ) const
virtual

Reimplemented from G4VSolid.

Definition at line 1779 of file G4TessellatedSolid.cc.

View newest version in sPHENIX GitHub at line 1779 of file G4TessellatedSolid.cc

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

Referenced by G4GenericTrap::GetPolyhedron().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4bool G4TessellatedSolid::GetSolidClosed ( ) const

Definition at line 599 of file G4TessellatedSolid.cc.

View newest version in sPHENIX GitHub at line 599 of file G4TessellatedSolid.cc

References fSolidClosed.

Referenced by CopyObjects().

+ Here is the caller graph for this function:

G4double G4TessellatedSolid::GetSurfaceArea ( )
virtual

Reimplemented from G4VSolid.

Definition at line 1961 of file G4TessellatedSolid.cc.

View newest version in sPHENIX GitHub at line 1961 of file G4TessellatedSolid.cc

References fFacets, fSurfaceArea, and G4VFacet::GetArea().

+ Here is the call graph for this function:

G4Voxelizer & G4TessellatedSolid::GetVoxels ( )
inline

Definition at line 312 of file G4TessellatedSolid.hh.

View newest version in sPHENIX GitHub at line 312 of file G4TessellatedSolid.hh

References fVoxels.

void G4TessellatedSolid::Initialize ( )
private

Definition at line 156 of file G4TessellatedSolid.cc.

View newest version in sPHENIX GitHub at line 156 of file G4TessellatedSolid.cc

References fCubicVolume, fGeometryType, fMaxExtent, fMinExtent, fpPolyhedron, fRebuildPolyhedron, fSolidClosed, fSurfaceArea, G4VSolid::kCarTolerance, kCarToleranceHalf, kInfinity, CLHEP::Hep3Vector::set(), and SetRandomVectors().

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

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Implements G4VSolid.

Reimplemented in G4ExtrudedSolid.

Definition at line 1615 of file G4TessellatedSolid.cc.

View newest version in sPHENIX GitHub at line 1615 of file G4TessellatedSolid.cc

References fVoxels, G4Voxelizer::GetCountOfVoxels(), InsideNoVoxels(), and InsideVoxels().

Referenced by DistanceToIn(), DistanceToInNoVoxels(), DistanceToOut(), DistanceToOutNoVoxels(), G4GenericTrap::Inside(), SafetyFromInside(), and SafetyFromOutside().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

EInside G4TessellatedSolid::InsideNoVoxels ( const G4ThreeVector p) const
private

Definition at line 825 of file G4TessellatedSolid.cc.

View newest version in sPHENIX GitHub at line 825 of file G4TessellatedSolid.cc

References G4VFacet::Distance(), CLHEP::Hep3Vector::dot(), f, fFacets, fGeometryType, fMaxTries, fRandir, G4endl, G4Exception(), G4VSolid::GetName(), JustWarning, G4VSolid::kCarTolerance, kCarToleranceHalf, kInfinity, kInside, kOutside, kSurface, message(), mm, OutsideOfExtent(), G4InuclParticleNames::sm, v, CLHEP::Hep3Vector::x(), CLHEP::Hep3Vector::y(), and CLHEP::Hep3Vector::z().

Referenced by Inside(), and PrecalculateInsides().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

EInside G4TessellatedSolid::InsideVoxels ( const G4ThreeVector aPoint) const
private

Definition at line 634 of file G4TessellatedSolid.cc.

View newest version in sPHENIX GitHub at line 634 of file G4TessellatedSolid.cc

References G4VFacet::Distance(), G4Voxelizer::DistanceToNext(), CLHEP::Hep3Vector::dot(), fFacets, fGeometryType, fInsides, fMaxTries, fRandir, fVoxels, G4endl, G4Exception(), G4Voxelizer::GetCandidates(), G4VSolid::GetName(), G4SurfBits::GetNbits(), G4Voxelizer::GetPointIndex(), G4Voxelizer::GetVoxel(), G4Voxelizer::GetVoxelsIndex(), G4VFacet::Intersect(), JustWarning, G4VSolid::kCarTolerance, kCarToleranceHalf, kInfinity, kInside, kOutside, kSurface, message(), mm, OutsideOfExtent(), G4InuclParticleNames::sm, CLHEP::Hep3Vector::unit(), G4Voxelizer::UpdateCurrentVoxel(), v, CLHEP::Hep3Vector::x(), CLHEP::Hep3Vector::y(), and CLHEP::Hep3Vector::z().

Referenced by Inside().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4TessellatedSolid::MinDistanceFacet ( const G4ThreeVector p,
G4bool  simple,
G4VFacet *&  facet 
) const
private

Definition at line 1411 of file G4TessellatedSolid.cc.

View newest version in sPHENIX GitHub at line 1411 of file G4TessellatedSolid.cc

References CompareSortedVoxel(), G4VFacet::Distance(), fFacets, fVoxels, G4Voxelizer::GetVoxelBox(), G4Voxelizer::GetVoxelBoxCandidates(), G4Voxelizer::GetVoxelBoxesSize(), G4VoxelBox::hlen, inf, kInfinity, G4Voxelizer::MinDistanceToBox(), and G4VoxelBox::pos.

Referenced by Normal(), SafetyFromInside(), and SafetyFromOutside().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4bool G4TessellatedSolid::Normal ( const G4ThreeVector p,
G4ThreeVector n 
) const
virtual

Definition at line 971 of file G4TessellatedSolid.cc.

View newest version in sPHENIX GitHub at line 971 of file G4TessellatedSolid.cc

References G4VFacet::Distance(), f, fFacets, fVoxels, G4endl, G4Exception(), G4Voxelizer::GetCandidates(), G4Voxelizer::GetCountOfVoxels(), G4VFacet::GetSurfaceNormal(), G4Voxelizer::GetVoxel(), JustWarning, kCarToleranceHalf, kInfinity, message(), MinDistanceFacet(), and CLHEP::Hep3Vector::z().

Referenced by DistanceToOutCore(), DistanceToOutNoVoxels(), and SurfaceNormal().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4TessellatedSolid & G4TessellatedSolid::operator+= ( const G4TessellatedSolid right)

Definition at line 614 of file G4TessellatedSolid.cc.

View newest version in sPHENIX GitHub at line 614 of file G4TessellatedSolid.cc

References AddFacet(), G4VFacet::GetClone(), GetFacet(), and GetNumberOfFacets().

+ Here is the call graph for this function:

G4TessellatedSolid & G4TessellatedSolid::operator= ( const G4TessellatedSolid right)

Definition at line 138 of file G4TessellatedSolid.cc.

View newest version in sPHENIX GitHub at line 138 of file G4TessellatedSolid.cc

References CopyObjects(), DeleteObjects(), Initialize(), and G4VSolid::operator=().

Referenced by G4ExtrudedSolid::operator=().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4bool G4TessellatedSolid::OutsideOfExtent ( const G4ThreeVector p,
G4double  tolerance = 0.0 
) const
inlineprivate

Definition at line 317 of file G4TessellatedSolid.hh.

View newest version in sPHENIX GitHub at line 317 of file G4TessellatedSolid.hh

References fMaxExtent, fMinExtent, CLHEP::Hep3Vector::x(), CLHEP::Hep3Vector::y(), and CLHEP::Hep3Vector::z().

Referenced by AddFacet(), CreateVertexList(), InsideNoVoxels(), InsideVoxels(), SafetyFromInside(), and SafetyFromOutside().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4TessellatedSolid::PrecalculateInsides ( )
private

Definition at line 335 of file G4TessellatedSolid.cc.

View newest version in sPHENIX GitHub at line 335 of file G4TessellatedSolid.cc

References G4SurfBits::Clear(), fInsides, fVoxels, G4Voxelizer::GetBoundary(), G4Voxelizer::GetVoxelsIndex(), InsideNoVoxels(), G4Voxelizer::IsEmpty(), kInside, G4SurfBits::ResetBitNumber(), SetAllUsingStack(), and G4SurfBits::SetBitNumber().

Referenced by Voxelize().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4TessellatedSolid::SafetyFromInside ( const G4ThreeVector p,
G4bool  aAccurate = false 
) const
virtual

Definition at line 1521 of file G4TessellatedSolid.cc.

View newest version in sPHENIX GitHub at line 1521 of file G4TessellatedSolid.cc

References G4VFacet::Distance(), DistanceToIn(), fFacets, fVoxels, G4endl, G4Exception(), G4Voxelizer::GetCountOfVoxels(), Inside(), JustWarning, G4VSolid::kCarTolerance, kInfinity, kOutside, message(), MinDistanceFacet(), mm, OutsideOfExtent(), CLHEP::Hep3Vector::x(), CLHEP::Hep3Vector::y(), and CLHEP::Hep3Vector::z().

Referenced by DistanceToOut().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4TessellatedSolid::SafetyFromOutside ( const G4ThreeVector p,
G4bool  aAccurate = false 
) const
virtual

Definition at line 1462 of file G4TessellatedSolid.cc.

View newest version in sPHENIX GitHub at line 1462 of file G4TessellatedSolid.cc

References G4VFacet::Distance(), G4Voxelizer::DistanceToBoundingBox(), DistanceToOut(), fFacets, fInsides, fVoxels, G4endl, G4Exception(), G4Voxelizer::GetCandidates(), G4Voxelizer::GetCountOfVoxels(), G4SurfBits::GetNbits(), G4Voxelizer::GetPointIndex(), G4Voxelizer::GetVoxel(), Inside(), JustWarning, G4VSolid::kCarTolerance, kInfinity, kInside, message(), MinDistanceFacet(), mm, OutsideOfExtent(), CLHEP::Hep3Vector::x(), CLHEP::Hep3Vector::y(), and CLHEP::Hep3Vector::z().

Referenced by DistanceToIn().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4int G4TessellatedSolid::SetAllUsingStack ( const std::vector< G4int > &  voxel,
const std::vector< G4int > &  max,
G4bool  status,
G4SurfBits checked 
)
private

Definition at line 279 of file G4TessellatedSolid.cc.

View newest version in sPHENIX GitHub at line 279 of file G4TessellatedSolid.cc

References fInsides, fVoxels, G4Voxelizer::GetVoxelsIndex(), G4Voxelizer::IsEmpty(), pos(), and G4SurfBits::SetBitNumber().

Referenced by PrecalculateInsides().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4TessellatedSolid::SetExtremeFacets ( )
private

Definition at line 398 of file G4TessellatedSolid.cc.

View newest version in sPHENIX GitHub at line 398 of file G4TessellatedSolid.cc

References fExtremeFacets, fFacets, fVertexList, and G4VFacet::IsInside().

Referenced by SetSolidClosed().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4TessellatedSolid::SetMaxVoxels ( G4int  max)
inline

Definition at line 307 of file G4TessellatedSolid.hh.

View newest version in sPHENIX GitHub at line 307 of file G4TessellatedSolid.hh

References fVoxels, and G4Voxelizer::SetMaxVoxels().

+ Here is the call graph for this function:

void G4TessellatedSolid::SetRandomVectors ( )
private

Definition at line 1993 of file G4TessellatedSolid.cc.

View newest version in sPHENIX GitHub at line 1993 of file G4TessellatedSolid.cc

References fMaxTries, and fRandir.

Referenced by Initialize().

+ Here is the caller graph for this function:

void G4TessellatedSolid::SetSolidClosed ( const G4bool  t)

Definition at line 566 of file G4TessellatedSolid.cc.

View newest version in sPHENIX GitHub at line 566 of file G4TessellatedSolid.cc

References CreateVertexList(), DisplayAllocatedMemory(), fSolidClosed, G4cout, G4endl, SetExtremeFacets(), t, and Voxelize().

Referenced by CopyObjects(), G4GenericTrap::CreateTessellatedSolid(), G4ExtrudedSolid::MakeFacets(), and G4GDMLReadSolids::TessellatedRead().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Implements G4VSolid.

Reimplemented in G4ExtrudedSolid.

Definition at line 1577 of file G4TessellatedSolid.cc.

View newest version in sPHENIX GitHub at line 1577 of file G4TessellatedSolid.cc

References fFacets, fGeometryType, G4endl, G4VSolid::GetName(), and G4VFacet::StreamInfo().

+ Here is the call graph for this function:

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

Implements G4VSolid.

Reimplemented in G4ExtrudedSolid.

Definition at line 1632 of file G4TessellatedSolid.cc.

View newest version in sPHENIX GitHub at line 1632 of file G4TessellatedSolid.cc

References n, and Normal().

Referenced by G4GenericTrap::NormalToPlane(), G4GenericTrap::SurfaceNormal(), and G4ExtrudedSolid::SurfaceNormal().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4TessellatedSolid::Voxelize ( )
private

Definition at line 370 of file G4TessellatedSolid.cc.

View newest version in sPHENIX GitHub at line 370 of file G4TessellatedSolid.cc

References G4Voxelizer::Empty(), fFacets, fVoxels, G4cout, G4endl, G4SurfBits::GetNbits(), PrecalculateInsides(), and G4Voxelizer::Voxelize().

Referenced by SetSolidClosed().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Member Data Documentation

G4double G4TessellatedSolid::fCubicVolume = 0.0
private

Definition at line 278 of file G4TessellatedSolid.hh.

View newest version in sPHENIX GitHub at line 278 of file G4TessellatedSolid.hh

Referenced by GetCubicVolume(), and Initialize().

std::set<G4VFacet*> G4TessellatedSolid::fExtremeFacets
private

Definition at line 274 of file G4TessellatedSolid.hh.

View newest version in sPHENIX GitHub at line 274 of file G4TessellatedSolid.hh

Referenced by AllocatedMemoryWithoutVoxels(), DistanceToOutCore(), DistanceToOutNoVoxels(), and SetExtremeFacets().

std::set<G4VertexInfo,G4VertexComparator> G4TessellatedSolid::fFacetList
private

Definition at line 283 of file G4TessellatedSolid.hh.

View newest version in sPHENIX GitHub at line 283 of file G4TessellatedSolid.hh

Referenced by AddFacet().

G4GeometryType G4TessellatedSolid::fGeometryType
private

Definition at line 277 of file G4TessellatedSolid.hh.

View newest version in sPHENIX GitHub at line 277 of file G4TessellatedSolid.hh

Referenced by GetEntityType(), Initialize(), InsideNoVoxels(), InsideVoxels(), and StreamInfo().

G4SurfBits G4TessellatedSolid::fInsides
private

Definition at line 295 of file G4TessellatedSolid.hh.

View newest version in sPHENIX GitHub at line 295 of file G4TessellatedSolid.hh

Referenced by AllocatedMemory(), InsideVoxels(), PrecalculateInsides(), SafetyFromOutside(), and SetAllUsingStack().

G4ThreeVector G4TessellatedSolid::fMaxExtent
private
G4int G4TessellatedSolid::fMaxTries
private

Definition at line 291 of file G4TessellatedSolid.hh.

View newest version in sPHENIX GitHub at line 291 of file G4TessellatedSolid.hh

Referenced by InsideNoVoxels(), InsideVoxels(), and SetRandomVectors().

G4ThreeVector G4TessellatedSolid::fMinExtent
private
G4Polyhedron* G4TessellatedSolid::fpPolyhedron = nullptr
mutableprivate

Definition at line 271 of file G4TessellatedSolid.hh.

View newest version in sPHENIX GitHub at line 271 of file G4TessellatedSolid.hh

Referenced by DeleteObjects(), GetPolyhedron(), and Initialize().

std::vector<G4ThreeVector> G4TessellatedSolid::fRandir
private

Definition at line 289 of file G4TessellatedSolid.hh.

View newest version in sPHENIX GitHub at line 289 of file G4TessellatedSolid.hh

Referenced by AllocatedMemoryWithoutVoxels(), InsideNoVoxels(), InsideVoxels(), and SetRandomVectors().

G4bool G4TessellatedSolid::fRebuildPolyhedron = false
mutableprivate

Definition at line 270 of file G4TessellatedSolid.hh.

View newest version in sPHENIX GitHub at line 270 of file G4TessellatedSolid.hh

Referenced by GetPolyhedron(), and Initialize().

G4bool G4TessellatedSolid::fSolidClosed = false
private

Definition at line 287 of file G4TessellatedSolid.hh.

View newest version in sPHENIX GitHub at line 287 of file G4TessellatedSolid.hh

Referenced by AddFacet(), GetSolidClosed(), Initialize(), and SetSolidClosed().

G4double G4TessellatedSolid::fSurfaceArea = 0.0
private

Definition at line 279 of file G4TessellatedSolid.hh.

View newest version in sPHENIX GitHub at line 279 of file G4TessellatedSolid.hh

Referenced by GetSurfaceArea(), and Initialize().

std::vector<G4ThreeVector> G4TessellatedSolid::fVertexList
private

Definition at line 281 of file G4TessellatedSolid.hh.

View newest version in sPHENIX GitHub at line 281 of file G4TessellatedSolid.hh

Referenced by AllocatedMemoryWithoutVoxels(), CreatePolyhedron(), CreateVertexList(), and SetExtremeFacets().


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