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

#include <geant4/tree/geant4-10.6-release/source/geometry/solids/Boolean/include/G4MultiUnion.hh>

+ Inheritance diagram for G4MultiUnion:
+ Collaboration diagram for G4MultiUnion:

Classes

struct  G4MultiUnionSurface
 

Public Member Functions

 G4MultiUnion ()
 
 G4MultiUnion (const G4String &name)
 
 ~G4MultiUnion ()
 
void AddNode (G4VSolid &solid, G4Transform3D &trans)
 
 G4MultiUnion (const G4MultiUnion &rhs)
 
G4MultiUnionoperator= (const G4MultiUnion &rhs)
 
const G4Transform3DGetTransformation (G4int index) const
 
G4VSolidGetSolid (G4int index) const
 
G4int GetNumberOfSolids () const
 
EInside Inside (const G4ThreeVector &aPoint) const
 
EInside InsideIterator (const G4ThreeVector &aPoint) const
 
G4double DistanceToIn (const G4ThreeVector &aPoint) const
 
G4double DistanceToOut (const G4ThreeVector &aPoint) const
 
void SetAccurateSafety (G4bool flag)
 
G4double DistanceToIn (const G4ThreeVector &aPoint, const G4ThreeVector &aDirection) const
 
G4double DistanceToOut (const G4ThreeVector &aPoint, const G4ThreeVector &aDirection, const G4bool calcNorm=false, G4bool *validNorm=nullptr, G4ThreeVector *aNormalVector=nullptr) const
 
G4double DistanceToInNoVoxels (const G4ThreeVector &aPoint, const G4ThreeVector &aDirection) const
 
G4double DistanceToOutVoxels (const G4ThreeVector &aPoint, const G4ThreeVector &aDirection, G4ThreeVector *aNormalVector) const
 
G4double DistanceToOutVoxelsCore (const G4ThreeVector &aPoint, const G4ThreeVector &aDirection, G4ThreeVector *aNormalVector, G4bool &aConvex, std::vector< G4int > &candidates) const
 
G4double DistanceToOutNoVoxels (const G4ThreeVector &aPoint, const G4ThreeVector &aDirection, G4ThreeVector *aNormalVector) const
 
G4ThreeVector SurfaceNormal (const G4ThreeVector &aPoint) const
 
void Extent (EAxis aAxis, G4double &aMin, G4double &aMax) const
 
void BoundingLimits (G4ThreeVector &aMin, G4ThreeVector &aMax) const
 
G4bool CalculateExtent (const EAxis pAxis, const G4VoxelLimits &pVoxelLimit, const G4AffineTransform &pTransform, G4double &pMin, G4double &pMax) const
 
G4double GetCubicVolume ()
 
G4double GetSurfaceArea ()
 
G4VSolidClone () const
 
G4GeometryType GetEntityType () const
 
void Voxelize ()
 
EInside InsideNoVoxels (const G4ThreeVector &aPoint) const
 
G4VoxelizerGetVoxels () const
 
std::ostream & StreamInfo (std::ostream &os) const
 
G4ThreeVector GetPointOnSurface () const
 
void DescribeYourselfTo (G4VGraphicsScene &scene) const
 
G4PolyhedronCreatePolyhedron () const
 
G4PolyhedronGetPolyhedron () const
 
 G4MultiUnion (__void__ &)
 
- 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 G4VisExtent GetExtent () 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

EInside InsideWithExclusion (const G4ThreeVector &aPoint, G4SurfBits *bits=0) const
 
G4int SafetyFromOutsideNumberNode (const G4ThreeVector &aPoint, G4double &safety) const
 
G4double DistanceToInCandidates (const G4ThreeVector &aPoint, const G4ThreeVector &aDirection, std::vector< G4int > &candidates, G4SurfBits &bits) const
 
G4ThreeVector GetLocalPoint (const G4Transform3D &trans, const G4ThreeVector &gpoint) const
 
G4ThreeVector GetLocalVector (const G4Transform3D &trans, const G4ThreeVector &gvec) const
 
G4ThreeVector GetGlobalPoint (const G4Transform3D &trans, const G4ThreeVector &lpoint) const
 
G4ThreeVector GetGlobalVector (const G4Transform3D &trans, const G4ThreeVector &lvec) const
 
void TransformLimits (G4ThreeVector &min, G4ThreeVector &max, const G4Transform3D &transformation) const
 

Private Attributes

std::vector< G4VSolid * > fSolids
 
std::vector< G4Transform3DfTransformObjs
 
G4Voxelizer fVoxels
 
G4double fCubicVolume = 0.0
 
G4double fSurfaceArea = 0.0
 
G4double kRadTolerance
 
G4bool fAccurate = false
 
G4bool fRebuildPolyhedron = false
 
G4PolyhedronfpPolyhedron = nullptr
 

Friends

class G4Voxelizer
 

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 53 of file G4MultiUnion.hh.

View newest version in sPHENIX GitHub at line 53 of file G4MultiUnion.hh

Constructor & Destructor Documentation

G4MultiUnion::G4MultiUnion ( )
inline

Definition at line 59 of file G4MultiUnion.hh.

View newest version in sPHENIX GitHub at line 59 of file G4MultiUnion.hh

Referenced by Clone().

+ Here is the caller graph for this function:

G4MultiUnion::G4MultiUnion ( const G4String name)

Definition at line 54 of file G4MultiUnion.cc.

View newest version in sPHENIX GitHub at line 54 of file G4MultiUnion.cc

References fSolids, fTransformObjs, G4GeometryTolerance::GetInstance(), G4GeometryTolerance::GetRadialTolerance(), kRadTolerance, and G4VSolid::SetName().

+ Here is the call graph for this function:

G4MultiUnion::~G4MultiUnion ( )

Definition at line 64 of file G4MultiUnion.cc.

View newest version in sPHENIX GitHub at line 64 of file G4MultiUnion.cc

G4MultiUnion::G4MultiUnion ( const G4MultiUnion rhs)

Definition at line 83 of file G4MultiUnion.cc.

View newest version in sPHENIX GitHub at line 83 of file G4MultiUnion.cc

G4MultiUnion::G4MultiUnion ( __void__ &  a)

Definition at line 92 of file G4MultiUnion.cc.

View newest version in sPHENIX GitHub at line 92 of file G4MultiUnion.cc

Member Function Documentation

void G4MultiUnion::AddNode ( G4VSolid solid,
G4Transform3D trans 
)

Definition at line 69 of file G4MultiUnion.cc.

View newest version in sPHENIX GitHub at line 69 of file G4MultiUnion.cc

References fSolids, and fTransformObjs.

Referenced by G4GDMLReadSolids::MultiUnionNodeRead().

+ Here is the caller graph for this function:

void G4MultiUnion::BoundingLimits ( G4ThreeVector aMin,
G4ThreeVector aMax 
) const
virtual

Reimplemented from G4VSolid.

Definition at line 609 of file G4MultiUnion.cc.

View newest version in sPHENIX GitHub at line 609 of file G4MultiUnion.cc

References Extent(), kXAxis, kYAxis, and kZAxis.

Referenced by CalculateExtent(), and GetCubicVolume().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Implements G4VSolid.

Definition at line 619 of file G4MultiUnion.cc.

View newest version in sPHENIX GitHub at line 619 of file G4MultiUnion.cc

References BoundingLimits(), and G4BoundingEnvelope::CalculateExtent().

+ Here is the call graph for this function:

G4VSolid * G4MultiUnion::Clone ( ) const
virtual

Reimplemented from G4VSolid.

Definition at line 76 of file G4MultiUnion.cc.

View newest version in sPHENIX GitHub at line 76 of file G4MultiUnion.cc

References G4MultiUnion().

+ Here is the call graph for this function:

G4Polyhedron * G4MultiUnion::CreatePolyhedron ( ) const
virtual

Reimplemented from G4VSolid.

Definition at line 961 of file G4MultiUnion.cc.

View newest version in sPHENIX GitHub at line 961 of file G4MultiUnion.cc

References HepPolyhedronProcessor::execute(), GetNumberOfSolids(), G4DisplacedSolid::GetPolyhedron(), GetSolid(), GetTransformation(), operand(), processor, HepPolyhedronProcessor::push_back(), Acts::Test::transform, and HepPolyhedronProcessor::UNION.

Referenced by GetPolyhedron().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4MultiUnion::DescribeYourselfTo ( G4VGraphicsScene scene) const
virtual

Implements G4VSolid.

Definition at line 955 of file G4MultiUnion.cc.

View newest version in sPHENIX GitHub at line 955 of file G4MultiUnion.cc

References G4VGraphicsScene::AddSolid().

+ Here is the call graph for this function:

G4double G4MultiUnion::DistanceToIn ( const G4ThreeVector aPoint) const
virtual

Implements G4VSolid.

Definition at line 753 of file G4MultiUnion.cc.

View newest version in sPHENIX GitHub at line 753 of file G4MultiUnion.cc

References kdfinder::abs(), G4Voxelizer::DistanceToBoundingBox(), G4VSolid::DistanceToIn(), fAccurate, fSolids, fTransformObjs, fVoxels, G4Voxelizer::GetBoxes(), GetLocalPoint(), kInfinity, pos(), and Acts::Test::transform.

+ Here is the call graph for this function:

G4double G4MultiUnion::DistanceToIn ( const G4ThreeVector aPoint,
const G4ThreeVector aDirection 
) const
virtual

Implements G4VSolid.

Definition at line 205 of file G4MultiUnion.cc.

View newest version in sPHENIX GitHub at line 205 of file G4MultiUnion.cc

References G4Voxelizer::DistanceToFirst(), DistanceToInCandidates(), G4Voxelizer::DistanceToNext(), fVoxels, G4Voxelizer::GetBitsPerSlice(), G4Voxelizer::GetCandidatesVoxelArray(), G4Voxelizer::GetVoxel(), kInfinity, and CLHEP::Hep3Vector::unit().

+ Here is the call graph for this function:

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

Definition at line 169 of file G4MultiUnion.cc.

View newest version in sPHENIX GitHub at line 169 of file G4MultiUnion.cc

References G4VSolid::DistanceToIn(), fSolids, fTransformObjs, GetLocalPoint(), GetLocalVector(), kInfinity, G4SurfBits::SetBitNumber(), and Acts::Test::transform.

Referenced by DistanceToIn().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4MultiUnion::DistanceToInNoVoxels ( const G4ThreeVector aPoint,
const G4ThreeVector aDirection 
) const

Definition at line 146 of file G4MultiUnion.cc.

View newest version in sPHENIX GitHub at line 146 of file G4MultiUnion.cc

References G4VSolid::DistanceToIn(), fSolids, fTransformObjs, GetLocalPoint(), GetLocalVector(), kInfinity, Acts::Test::transform, and CLHEP::Hep3Vector::unit().

+ Here is the call graph for this function:

G4double G4MultiUnion::DistanceToOut ( const G4ThreeVector aPoint) const
virtual

Implements G4VSolid.

Definition at line 716 of file G4MultiUnion.cc.

View newest version in sPHENIX GitHub at line 716 of file G4MultiUnion.cc

References G4VSolid::DistanceToOut(), fSolids, fTransformObjs, fVoxels, G4Voxelizer::GetCandidatesVoxelArray(), GetLocalPoint(), G4VSolid::Inside(), kInfinity, kInside, and Acts::Test::transform.

+ Here is the call graph for this function:

G4double G4MultiUnion::DistanceToOut ( const G4ThreeVector aPoint,
const G4ThreeVector aDirection,
const G4bool  calcNorm = false,
G4bool validNorm = nullptr,
G4ThreeVector aNormalVector = nullptr 
) const
virtual

Implements G4VSolid.

Definition at line 290 of file G4MultiUnion.cc.

View newest version in sPHENIX GitHub at line 290 of file G4MultiUnion.cc

References DistanceToOutVoxels().

+ Here is the call graph for this function:

G4double G4MultiUnion::DistanceToOutNoVoxels ( const G4ThreeVector aPoint,
const G4ThreeVector aDirection,
G4ThreeVector aNormalVector 
) const

Definition at line 239 of file G4MultiUnion.cc.

View newest version in sPHENIX GitHub at line 239 of file G4MultiUnion.cc

References G4VSolid::DistanceToOut(), fSolids, fTransformObjs, GetGlobalPoint(), GetLocalPoint(), GetLocalVector(), G4VSolid::Inside(), kInfinity, kOutside, Acts::Test::transform, and CLHEP::Hep3Vector::unit().

+ Here is the call graph for this function:

G4double G4MultiUnion::DistanceToOutVoxels ( const G4ThreeVector aPoint,
const G4ThreeVector aDirection,
G4ThreeVector aNormalVector 
) const

Definition at line 300 of file G4MultiUnion.cc.

View newest version in sPHENIX GitHub at line 300 of file G4MultiUnion.cc

References G4VSolid::DistanceToOut(), fSolids, fTransformObjs, fVoxels, G4Voxelizer::GetBitsPerSlice(), G4Voxelizer::GetCandidatesVoxelArray(), GetGlobalVector(), GetLocalPoint(), GetLocalVector(), G4VSolid::Inside(), InsideWithExclusion(), kInfinity, kOutside, Acts::Test::transform, and CLHEP::Hep3Vector::unit().

Referenced by DistanceToOut().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4MultiUnion::DistanceToOutVoxelsCore ( const G4ThreeVector aPoint,
const G4ThreeVector aDirection,
G4ThreeVector aNormalVector,
G4bool aConvex,
std::vector< G4int > &  candidates 
) const
void G4MultiUnion::Extent ( EAxis  aAxis,
G4double aMin,
G4double aMax 
) const

Definition at line 544 of file G4MultiUnion.cc.

View newest version in sPHENIX GitHub at line 544 of file G4MultiUnion.cc

References G4VSolid::BoundingLimits(), fSolids, GetTransformation(), kXAxis, kYAxis, kZAxis, max, min, Acts::Test::transform, TransformLimits(), CLHEP::Hep3Vector::x(), CLHEP::Hep3Vector::y(), and CLHEP::Hep3Vector::z().

Referenced by BoundingLimits().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4MultiUnion::GetCubicVolume ( )
virtual

Reimplemented from G4VSolid.

Definition at line 116 of file G4MultiUnion.cc.

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

References BoundingLimits(), d, fCubicVolume, G4UniformRand, Inside(), kOutside, left, BTOF::length, CLHEP::Hep3Vector::x(), CLHEP::Hep3Vector::y(), and CLHEP::Hep3Vector::z().

+ Here is the call graph for this function:

G4GeometryType G4MultiUnion::GetEntityType ( ) const
inlinevirtual

Implements G4VSolid.

Definition at line 120 of file G4MultiUnion.hh.

View newest version in sPHENIX GitHub at line 120 of file G4MultiUnion.hh

G4ThreeVector G4MultiUnion::GetGlobalPoint ( const G4Transform3D trans,
const G4ThreeVector lpoint 
) const
inlineprivate

Definition at line 245 of file G4MultiUnion.hh.

View newest version in sPHENIX GitHub at line 245 of file G4MultiUnion.hh

Referenced by DistanceToOutNoVoxels(), GetPointOnSurface(), and TransformLimits().

+ Here is the caller graph for this function:

G4ThreeVector G4MultiUnion::GetGlobalVector ( const G4Transform3D trans,
const G4ThreeVector lvec 
) const
inlineprivate

Definition at line 257 of file G4MultiUnion.hh.

View newest version in sPHENIX GitHub at line 257 of file G4MultiUnion.hh

References HepGeom::Transform3D::getDecomposition(), and scale.

Referenced by DistanceToOutVoxels(), and SurfaceNormal().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4ThreeVector G4MultiUnion::GetLocalPoint ( const G4Transform3D trans,
const G4ThreeVector gpoint 
) const
inlineprivate

Definition at line 216 of file G4MultiUnion.hh.

View newest version in sPHENIX GitHub at line 216 of file G4MultiUnion.hh

References HepGeom::Transform3D::inverse().

Referenced by DistanceToIn(), DistanceToInCandidates(), DistanceToInNoVoxels(), DistanceToOut(), DistanceToOutNoVoxels(), DistanceToOutVoxels(), InsideNoVoxels(), InsideWithExclusion(), SafetyFromOutsideNumberNode(), and SurfaceNormal().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4ThreeVector G4MultiUnion::GetLocalVector ( const G4Transform3D trans,
const G4ThreeVector gvec 
) const
inlineprivate

Definition at line 228 of file G4MultiUnion.hh.

View newest version in sPHENIX GitHub at line 228 of file G4MultiUnion.hh

References HepGeom::Transform3D::getDecomposition(), HepGeom::Transform3D::inverse(), and scale.

Referenced by DistanceToInCandidates(), DistanceToInNoVoxels(), DistanceToOutNoVoxels(), and DistanceToOutVoxels().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4int G4MultiUnion::GetNumberOfSolids ( ) const
inline

Definition at line 203 of file G4MultiUnion.hh.

View newest version in sPHENIX GitHub at line 203 of file G4MultiUnion.hh

References fSolids.

Referenced by CreatePolyhedron(), and G4GDMLWriteSolids::MultiUnionWrite().

+ Here is the caller graph for this function:

G4ThreeVector G4MultiUnion::GetPointOnSurface ( ) const
virtual

Reimplemented from G4VSolid.

Definition at line 934 of file G4MultiUnion.cc.

View newest version in sPHENIX GitHub at line 934 of file G4MultiUnion.cc

References fSolids, fTransformObjs, GetGlobalPoint(), G4VSolid::GetPointOnSurface(), Inside(), kSurface, and Acts::Test::transform.

+ Here is the call graph for this function:

G4Polyhedron * G4MultiUnion::GetPolyhedron ( ) const
virtual

Reimplemented from G4VSolid.

Definition at line 986 of file G4MultiUnion.cc.

View newest version in sPHENIX GitHub at line 986 of file G4MultiUnion.cc

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

+ Here is the call graph for this function:

G4VSolid * G4MultiUnion::GetSolid ( G4int  index) const
inline

Definition at line 197 of file G4MultiUnion.hh.

View newest version in sPHENIX GitHub at line 197 of file G4MultiUnion.hh

References fSolids.

Referenced by CreatePolyhedron(), and G4GDMLWriteSolids::MultiUnionWrite().

+ Here is the caller graph for this function:

G4double G4MultiUnion::GetSurfaceArea ( )
virtual

Reimplemented from G4VSolid.

Definition at line 804 of file G4MultiUnion.cc.

View newest version in sPHENIX GitHub at line 804 of file G4MultiUnion.cc

References G4VSolid::EstimateSurfaceArea(), and fSurfaceArea.

+ Here is the call graph for this function:

const G4Transform3D & G4MultiUnion::GetTransformation ( G4int  index) const
inline

Definition at line 191 of file G4MultiUnion.hh.

View newest version in sPHENIX GitHub at line 191 of file G4MultiUnion.hh

References fTransformObjs.

Referenced by CreatePolyhedron(), Extent(), InsideNoVoxels(), and G4GDMLWriteSolids::MultiUnionWrite().

+ Here is the caller graph for this function:

G4Voxelizer & G4MultiUnion::GetVoxels ( ) const
inline

Definition at line 185 of file G4MultiUnion.hh.

View newest version in sPHENIX GitHub at line 185 of file G4MultiUnion.hh

References fVoxels.

EInside G4MultiUnion::Inside ( const G4ThreeVector aPoint) const
virtual

Implements G4VSolid.

Definition at line 496 of file G4MultiUnion.cc.

View newest version in sPHENIX GitHub at line 496 of file G4MultiUnion.cc

References InsideWithExclusion().

Referenced by GetCubicVolume(), and GetPointOnSurface().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

EInside G4MultiUnion::InsideIterator ( const G4ThreeVector aPoint) const
EInside G4MultiUnion::InsideNoVoxels ( const G4ThreeVector aPoint) const

Definition at line 516 of file G4MultiUnion.cc.

View newest version in sPHENIX GitHub at line 516 of file G4MultiUnion.cc

References fSolids, GetLocalPoint(), GetTransformation(), G4VSolid::Inside(), kInside, kOutside, kSurface, and Acts::Test::transform.

+ Here is the call graph for this function:

EInside G4MultiUnion::InsideWithExclusion ( const G4ThreeVector aPoint,
G4SurfBits bits = 0 
) const
private

Definition at line 422 of file G4MultiUnion.cc.

View newest version in sPHENIX GitHub at line 422 of file G4MultiUnion.cc

References fSolids, fTransformObjs, fVoxels, G4Voxelizer::GetCandidatesVoxelArray(), GetLocalPoint(), G4VSolid::Inside(), kInside, kOutside, kRadTolerance, kSurface, left, n, G4MultiUnion::G4MultiUnionSurface::point, right, G4MultiUnion::G4MultiUnionSurface::solid, surface(), G4VSolid::SurfaceNormal(), and Acts::Test::transform.

Referenced by DistanceToOutVoxels(), and Inside().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Definition at line 99 of file G4MultiUnion.cc.

View newest version in sPHENIX GitHub at line 99 of file G4MultiUnion.cc

References G4VSolid::operator=().

+ Here is the call graph for this function:

G4int G4MultiUnion::SafetyFromOutsideNumberNode ( const G4ThreeVector aPoint,
G4double safety 
) const
private

Definition at line 820 of file G4MultiUnion.cc.

View newest version in sPHENIX GitHub at line 820 of file G4MultiUnion.cc

References kdfinder::abs(), G4VSolid::DistanceToIn(), fAccurate, fSolids, fTransformObjs, fVoxels, G4Voxelizer::GetBoxes(), GetLocalPoint(), kInfinity, Acts::Test::transform, CLHEP::Hep3Vector::x(), CLHEP::Hep3Vector::y(), and CLHEP::Hep3Vector::z().

Referenced by SurfaceNormal().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4MultiUnion::SetAccurateSafety ( G4bool  flag)
inline

Definition at line 209 of file G4MultiUnion.hh.

View newest version in sPHENIX GitHub at line 209 of file G4MultiUnion.hh

References fAccurate.

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

Implements G4VSolid.

Definition at line 908 of file G4MultiUnion.cc.

View newest version in sPHENIX GitHub at line 908 of file G4MultiUnion.cc

References fSolids, fTransformObjs, G4VSolid::GetName(), HepGeom::Transform3D::getRotation(), HepGeom::Transform3D::getTranslation(), G4VSolid::StreamInfo(), and Acts::Test::transform.

+ Here is the call graph for this function:

G4ThreeVector G4MultiUnion::SurfaceNormal ( const G4ThreeVector aPoint) const
virtual

Implements G4VSolid.

Definition at line 635 of file G4MultiUnion.cc.

View newest version in sPHENIX GitHub at line 635 of file G4MultiUnion.cc

References G4VSolid::DistanceToIn(), G4VSolid::DistanceToOut(), fSolids, fTransformObjs, fVoxels, G4Voxelizer::GetCandidatesVoxelArray(), GetGlobalVector(), GetLocalPoint(), G4VSolid::Inside(), kInfinity, kInside, kSurface, CLHEP::normal(), SafetyFromOutsideNumberNode(), G4VSolid::SurfaceNormal(), Acts::Test::transform, and CLHEP::Hep3Vector::unit().

+ Here is the call graph for this function:

void G4MultiUnion::TransformLimits ( G4ThreeVector min,
G4ThreeVector max,
const G4Transform3D transformation 
) const
private

Definition at line 864 of file G4MultiUnion.cc.

View newest version in sPHENIX GitHub at line 864 of file G4MultiUnion.cc

References GetGlobalPoint(), kInfinity, CLHEP::Hep3Vector::set(), CLHEP::Hep3Vector::setX(), CLHEP::Hep3Vector::setY(), CLHEP::Hep3Vector::setZ(), CLHEP::Hep3Vector::x(), CLHEP::Hep3Vector::y(), and CLHEP::Hep3Vector::z().

Referenced by Extent().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4MultiUnion::Voxelize ( )

Definition at line 814 of file G4MultiUnion.cc.

View newest version in sPHENIX GitHub at line 814 of file G4MultiUnion.cc

References fSolids, fTransformObjs, fVoxels, and G4Voxelizer::Voxelize().

Referenced by G4GDMLReadSolids::MultiUnionRead().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Friends And Related Function Documentation

friend class G4Voxelizer
friend

Definition at line 55 of file G4MultiUnion.hh.

View newest version in sPHENIX GitHub at line 55 of file G4MultiUnion.hh

Member Data Documentation

G4bool G4MultiUnion::fAccurate = false
mutableprivate

Definition at line 178 of file G4MultiUnion.hh.

View newest version in sPHENIX GitHub at line 178 of file G4MultiUnion.hh

Referenced by DistanceToIn(), SafetyFromOutsideNumberNode(), and SetAccurateSafety().

G4double G4MultiUnion::fCubicVolume = 0.0
private

Definition at line 175 of file G4MultiUnion.hh.

View newest version in sPHENIX GitHub at line 175 of file G4MultiUnion.hh

Referenced by GetCubicVolume().

G4Polyhedron* G4MultiUnion::fpPolyhedron = nullptr
mutableprivate

Definition at line 181 of file G4MultiUnion.hh.

View newest version in sPHENIX GitHub at line 181 of file G4MultiUnion.hh

Referenced by GetPolyhedron().

G4bool G4MultiUnion::fRebuildPolyhedron = false
mutableprivate

Definition at line 180 of file G4MultiUnion.hh.

View newest version in sPHENIX GitHub at line 180 of file G4MultiUnion.hh

Referenced by GetPolyhedron().

G4double G4MultiUnion::fSurfaceArea = 0.0
private

Definition at line 176 of file G4MultiUnion.hh.

View newest version in sPHENIX GitHub at line 176 of file G4MultiUnion.hh

Referenced by GetSurfaceArea().

G4Voxelizer G4MultiUnion::fVoxels
private

Definition at line 174 of file G4MultiUnion.hh.

View newest version in sPHENIX GitHub at line 174 of file G4MultiUnion.hh

Referenced by DistanceToIn(), DistanceToOut(), DistanceToOutVoxels(), GetVoxels(), InsideWithExclusion(), SafetyFromOutsideNumberNode(), SurfaceNormal(), and Voxelize().

G4double G4MultiUnion::kRadTolerance
private

Definition at line 177 of file G4MultiUnion.hh.

View newest version in sPHENIX GitHub at line 177 of file G4MultiUnion.hh

Referenced by G4MultiUnion(), and InsideWithExclusion().


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