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

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

+ Inheritance diagram for G4PolyhedraSide:
+ Collaboration diagram for G4PolyhedraSide:

Classes

struct  sG4PolyhedraSideEdge
 
struct  sG4PolyhedraSideVec
 

Public Types

typedef struct
G4PolyhedraSide::sG4PolyhedraSideEdge 
G4PolyhedraSideEdge
 
typedef struct
G4PolyhedraSide::sG4PolyhedraSideVec 
G4PolyhedraSideVec
 

Public Member Functions

 G4PolyhedraSide (const G4PolyhedraSideRZ *prevRZ, const G4PolyhedraSideRZ *tail, const G4PolyhedraSideRZ *head, const G4PolyhedraSideRZ *nextRZ, G4int numSide, G4double phiStart, G4double phiTotal, G4bool phiIsOpen, G4bool isAllBehind=false)
 
virtual ~G4PolyhedraSide ()
 
 G4PolyhedraSide (const G4PolyhedraSide &source)
 
G4PolyhedraSideoperator= (const G4PolyhedraSide &source)
 
G4bool Intersect (const G4ThreeVector &p, const G4ThreeVector &v, G4bool outgoing, G4double surfTolerance, G4double &distance, G4double &distFromSurface, G4ThreeVector &normal, G4bool &allBehind)
 
G4double Distance (const G4ThreeVector &p, G4bool outgoing)
 
EInside Inside (const G4ThreeVector &p, G4double tolerance, G4double *bestDistance)
 
G4ThreeVector Normal (const G4ThreeVector &p, G4double *bestDistance)
 
G4double Extent (const G4ThreeVector axis)
 
void CalculateExtent (const EAxis axis, const G4VoxelLimits &voxelLimit, const G4AffineTransform &tranform, G4SolidExtentList &extentList)
 
G4VCSGfaceClone ()
 
G4double SurfaceTriangle (G4ThreeVector p1, G4ThreeVector p2, G4ThreeVector p3, G4ThreeVector *p4)
 
G4ThreeVector GetPointOnPlane (G4ThreeVector p0, G4ThreeVector p1, G4ThreeVector p2, G4ThreeVector p3, G4double *Area)
 
G4double SurfaceArea ()
 
G4ThreeVector GetPointOnFace ()
 
 G4PolyhedraSide (__void__ &)
 
G4int GetInstanceID () const
 
- Public Member Functions inherited from G4VCSGface
 G4VCSGface ()
 
virtual ~G4VCSGface ()
 

Static Public Member Functions

static const G4PhSideManagerGetSubInstanceManager ()
 

Protected Member Functions

G4bool IntersectSidePlane (const G4ThreeVector &p, const G4ThreeVector &v, const G4PolyhedraSideVec &vec, G4double normSign, G4double surfTolerance, G4double &distance, G4double &distFromSurface)
 
G4int LineHitsSegments (const G4ThreeVector &p, const G4ThreeVector &v, G4int *i1, G4int *i2)
 
G4int ClosestPhiSegment (G4double phi)
 
G4int PhiSegment (G4double phi)
 
G4double GetPhi (const G4ThreeVector &p)
 
G4double DistanceToOneSide (const G4ThreeVector &p, const G4PolyhedraSideVec &vec, G4double *normDist)
 
G4double DistanceAway (const G4ThreeVector &p, const G4PolyhedraSideVec &vec, G4double *normDist)
 
void CopyStuff (const G4PolyhedraSide &source)
 

Protected Attributes

G4int numSide = 0
 
G4double r [2]
 
G4double z [2]
 
G4double startPhi
 
G4double deltaPhi
 
G4double endPhi
 
G4bool phiIsOpen = false
 
G4bool allBehind = false
 
G4IntersectingConecone = nullptr
 
G4PolyhedraSideVecvecs = nullptr
 
G4PolyhedraSideEdgeedges = nullptr
 
G4double lenRZ
 
G4double lenPhi [2]
 
G4double edgeNorm
 

Private Attributes

G4double kCarTolerance
 
G4double fSurfaceArea = 0.0
 
G4int instanceID
 

Static Private Attributes

static G4GEOM_DLL G4PhSideManager subInstanceManager
 

Friends

struct sG4PolyhedraSideVec
 

Detailed Description

Definition at line 88 of file G4PolyhedraSide.hh.

View newest version in sPHENIX GitHub at line 88 of file G4PolyhedraSide.hh

Member Typedef Documentation

Constructor & Destructor Documentation

G4PolyhedraSide::G4PolyhedraSide ( const G4PolyhedraSideRZ prevRZ,
const G4PolyhedraSideRZ tail,
const G4PolyhedraSideRZ head,
const G4PolyhedraSideRZ nextRZ,
G4int  numSide,
G4double  phiStart,
G4double  phiTotal,
G4bool  phiIsOpen,
G4bool  isAllBehind = false 
)
G4PolyhedraSide::~G4PolyhedraSide ( )
virtual

Definition at line 319 of file G4PolyhedraSide.cc.

View newest version in sPHENIX GitHub at line 319 of file G4PolyhedraSide.cc

References cone, edges, and vecs.

G4PolyhedraSide::G4PolyhedraSide ( const G4PolyhedraSide source)

Definition at line 328 of file G4PolyhedraSide.cc.

View newest version in sPHENIX GitHub at line 328 of file G4PolyhedraSide.cc

References CopyStuff(), G4GeomSplitter< T >::CreateSubInstance(), instanceID, and subInstanceManager.

+ Here is the call graph for this function:

G4PolyhedraSide::G4PolyhedraSide ( __void__ &  )

Definition at line 307 of file G4PolyhedraSide.cc.

View newest version in sPHENIX GitHub at line 307 of file G4PolyhedraSide.cc

References lenPhi, r, and z.

Member Function Documentation

void G4PolyhedraSide::CalculateExtent ( const EAxis  axis,
const G4VoxelLimits voxelLimit,
const G4AffineTransform tranform,
G4SolidExtentList extentList 
)
virtual

Implements G4VCSGface.

Definition at line 706 of file G4PolyhedraSide.cc.

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

References G4SolidExtentList::AddSurface(), G4ClippablePolygon::AddVertexInOrder(), G4PolyhedraSide::sG4PolyhedraSideEdge::corner, G4PolyhedraSide::sG4PolyhedraSideVec::edges, G4PolyhedraSide::sG4PolyhedraSideVec::normal, numSide, G4ClippablePolygon::PartialClip(), G4ClippablePolygon::SetNormal(), G4AffineTransform::TransformAxis(), and vecs.

+ Here is the call graph for this function:

G4VCSGface* G4PolyhedraSide::Clone ( )
inlinevirtual

Implements G4VCSGface.

Definition at line 124 of file G4PolyhedraSide.hh.

View newest version in sPHENIX GitHub at line 124 of file G4PolyhedraSide.hh

References G4PolyhedraSide().

+ Here is the call graph for this function:

G4int G4PolyhedraSide::ClosestPhiSegment ( G4double  phi)
protected

Definition at line 912 of file G4PolyhedraSide.cc.

View newest version in sPHENIX GitHub at line 912 of file G4PolyhedraSide.cc

References d1, d2, endPhi, numSide, phi, PhiSegment(), startPhi, and twopi.

Referenced by Distance(), Inside(), and Normal().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4PolyhedraSide::CopyStuff ( const G4PolyhedraSide source)
protected

Definition at line 355 of file G4PolyhedraSide.cc.

View newest version in sPHENIX GitHub at line 355 of file G4PolyhedraSide.cc

References allBehind, cone, deltaPhi, edgeNorm, G4PolyhedraSide::sG4PolyhedraSideVec::edges, edges, endPhi, fSurfaceArea, kCarTolerance, lenPhi, lenRZ, numSide, phiIsOpen, r, startPhi, vecs, and z.

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

+ Here is the caller graph for this function:

G4double G4PolyhedraSide::Distance ( const G4ThreeVector p,
G4bool  outgoing 
)
virtual

Implements G4VCSGface.

Definition at line 569 of file G4PolyhedraSide.cc.

View newest version in sPHENIX GitHub at line 569 of file G4PolyhedraSide.cc

References G4PolyhedraSide::sG4PolyhedraSideVec::center, ClosestPhiSegment(), DistanceAway(), CLHEP::Hep3Vector::dot(), GetPhi(), kCarTolerance, kInfinity, CLHEP::normal(), and vecs.

+ Here is the call graph for this function:

G4double G4PolyhedraSide::DistanceAway ( const G4ThreeVector p,
const G4PolyhedraSideVec vec,
G4double normDist 
)
protected

Definition at line 1026 of file G4PolyhedraSide.cc.

View newest version in sPHENIX GitHub at line 1026 of file G4PolyhedraSide.cc

References G4PolyhedraSide::sG4PolyhedraSideVec::center, G4PolyhedraSide::sG4PolyhedraSideEdge::corner, G4PolyhedraSide::sG4PolyhedraSideEdge::cornNorm, CLHEP::Hep3Vector::dot(), G4PolyhedraSide::sG4PolyhedraSideVec::edgeNorm, edgeNorm, G4PolyhedraSide::sG4PolyhedraSideVec::edges, lenPhi, lenRZ, G4PolyhedraSide::sG4PolyhedraSideEdge::normal, G4PolyhedraSide::sG4PolyhedraSideVec::surfPhi, and G4PolyhedraSide::sG4PolyhedraSideVec::surfRZ.

Referenced by Distance(), and DistanceToOneSide().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4PolyhedraSide::DistanceToOneSide ( const G4ThreeVector p,
const G4PolyhedraSideVec vec,
G4double normDist 
)
protected

Definition at line 1004 of file G4PolyhedraSide.cc.

View newest version in sPHENIX GitHub at line 1004 of file G4PolyhedraSide.cc

References G4PolyhedraSide::sG4PolyhedraSideVec::center, DistanceAway(), CLHEP::Hep3Vector::dot(), and G4PolyhedraSide::sG4PolyhedraSideVec::normal.

Referenced by Inside(), and Normal().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4PolyhedraSide::Extent ( const G4ThreeVector  axis)
virtual

Implements G4VCSGface.

Definition at line 648 of file G4PolyhedraSide.cc.

View newest version in sPHENIX GitHub at line 648 of file G4PolyhedraSide.cc

References cone, G4PolyhedraSide::sG4PolyhedraSideEdge::corner, DBL_MIN, CLHEP::Hep3Vector::dot(), G4PolyhedraSide::sG4PolyhedraSideVec::edges, GetPhi(), kInfinity, numSide, CLHEP::Hep3Vector::perp2(), PhiSegment(), vecs, CLHEP::Hep3Vector::z(), G4IntersectingCone::ZHi(), and G4IntersectingCone::ZLo().

+ Here is the call graph for this function:

G4int G4PolyhedraSide::GetInstanceID ( ) const
inline

Definition at line 147 of file G4PolyhedraSide.hh.

View newest version in sPHENIX GitHub at line 147 of file G4PolyhedraSide.hh

References instanceID.

G4double G4PolyhedraSide::GetPhi ( const G4ThreeVector p)
protected

Definition at line 978 of file G4PolyhedraSide.cc.

View newest version in sPHENIX GitHub at line 978 of file G4PolyhedraSide.cc

References G4MT_phphik, G4MT_phphix, G4MT_phphiy, G4MT_phphiz, CLHEP::Hep3Vector::phi(), CLHEP::Hep3Vector::x(), CLHEP::Hep3Vector::y(), and CLHEP::Hep3Vector::z().

Referenced by Distance(), Extent(), Inside(), and Normal().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4ThreeVector G4PolyhedraSide::GetPointOnFace ( )
virtual

Implements G4VCSGface.

Definition at line 1244 of file G4PolyhedraSide.cc.

View newest version in sPHENIX GitHub at line 1244 of file G4PolyhedraSide.cc

References G4PolyhedraSide::sG4PolyhedraSideEdge::corner, G4PolyhedraSide::sG4PolyhedraSideVec::edges, G4UniformRand, GetPointOnPlane(), numSide, v1, v2, v3, v4, and vecs.

+ Here is the call graph for this function:

G4ThreeVector G4PolyhedraSide::GetPointOnPlane ( G4ThreeVector  p0,
G4ThreeVector  p1,
G4ThreeVector  p2,
G4ThreeVector  p3,
G4double Area 
)

Definition at line 1191 of file G4PolyhedraSide.cc.

View newest version in sPHENIX GitHub at line 1191 of file G4PolyhedraSide.cc

References G4UniformRand, and SurfaceTriangle().

Referenced by GetPointOnFace(), and SurfaceArea().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

const G4PhSideManager & G4PolyhedraSide::GetSubInstanceManager ( )
static

Definition at line 56 of file G4PolyhedraSide.cc.

View newest version in sPHENIX GitHub at line 56 of file G4PolyhedraSide.cc

References subInstanceManager.

Referenced by G4SolidsWorkspace::G4SolidsWorkspace().

+ Here is the caller graph for this function:

EInside G4PolyhedraSide::Inside ( const G4ThreeVector p,
G4double  tolerance,
G4double bestDistance 
)
virtual

Implements G4VCSGface.

Definition at line 600 of file G4PolyhedraSide.cc.

View newest version in sPHENIX GitHub at line 600 of file G4PolyhedraSide.cc

References ClosestPhiSegment(), DistanceToOneSide(), GetPhi(), kInside, kOutside, kSurface, norm, and vecs.

+ Here is the call graph for this function:

G4bool G4PolyhedraSide::Intersect ( const G4ThreeVector p,
const G4ThreeVector v,
G4bool  outgoing,
G4double  surfTolerance,
G4double distance,
G4double distFromSurface,
G4ThreeVector normal,
G4bool allBehind 
)
virtual
G4bool G4PolyhedraSide::IntersectSidePlane ( const G4ThreeVector p,
const G4ThreeVector v,
const G4PolyhedraSideVec vec,
G4double  normSign,
G4double  surfTolerance,
G4double distance,
G4double distFromSurface 
)
protected

Definition at line 775 of file G4PolyhedraSide.cc.

View newest version in sPHENIX GitHub at line 775 of file G4PolyhedraSide.cc

References G4PolyhedraSide::sG4PolyhedraSideVec::center, G4PolyhedraSide::sG4PolyhedraSideEdge::corner, CLHEP::Hep3Vector::cross(), Acts::Test::delta, CLHEP::Hep3Vector::dot(), G4PolyhedraSide::sG4PolyhedraSideVec::edges, lenRZ, G4PolyhedraSide::sG4PolyhedraSideVec::normal, r, G4PolyhedraSide::sG4PolyhedraSideVec::surfRZ, and v.

+ Here is the call graph for this function:

G4int G4PolyhedraSide::LineHitsSegments ( const G4ThreeVector p,
const G4ThreeVector v,
G4int i1,
G4int i2 
)
protected

Definition at line 868 of file G4PolyhedraSide.cc.

View newest version in sPHENIX GitHub at line 868 of file G4PolyhedraSide.cc

References cone, G4IntersectingCone::LineHitsCone(), n, PhiSegment(), s1, CLHEP::Hep3Vector::x(), and CLHEP::Hep3Vector::y().

+ Here is the call graph for this function:

G4ThreeVector G4PolyhedraSide::Normal ( const G4ThreeVector p,
G4double bestDistance 
)
virtual

Implements G4VCSGface.

Definition at line 629 of file G4PolyhedraSide.cc.

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

References ClosestPhiSegment(), DistanceToOneSide(), GetPhi(), norm, G4PolyhedraSide::sG4PolyhedraSideVec::normal, and vecs.

+ Here is the call graph for this function:

G4PolyhedraSide & G4PolyhedraSide::operator= ( const G4PolyhedraSide source)

Definition at line 340 of file G4PolyhedraSide.cc.

View newest version in sPHENIX GitHub at line 340 of file G4PolyhedraSide.cc

References cone, CopyStuff(), edges, and vecs.

+ Here is the call graph for this function:

G4int G4PolyhedraSide::PhiSegment ( G4double  phi)
protected

Definition at line 940 of file G4PolyhedraSide.cc.

View newest version in sPHENIX GitHub at line 940 of file G4PolyhedraSide.cc

References deltaPhi, numSide, phi, phiIsOpen, startPhi, and twopi.

Referenced by ClosestPhiSegment(), Extent(), and LineHitsSegments().

+ Here is the caller graph for this function:

G4double G4PolyhedraSide::SurfaceArea ( )
virtual

Implements G4VCSGface.

Definition at line 1211 of file G4PolyhedraSide.cc.

View newest version in sPHENIX GitHub at line 1211 of file G4PolyhedraSide.cc

References G4PolyhedraSide::sG4PolyhedraSideEdge::corner, G4PolyhedraSide::sG4PolyhedraSideVec::edges, fSurfaceArea, GetPointOnPlane(), numSide, v1, v2, v3, v4, and vecs.

+ Here is the call graph for this function:

G4double G4PolyhedraSide::SurfaceTriangle ( G4ThreeVector  p1,
G4ThreeVector  p2,
G4ThreeVector  p3,
G4ThreeVector p4 
)

Definition at line 1170 of file G4PolyhedraSide.cc.

View newest version in sPHENIX GitHub at line 1170 of file G4PolyhedraSide.cc

References G4UniformRand, v, and w.

Referenced by GetPointOnPlane().

+ Here is the caller graph for this function:

Friends And Related Function Documentation

friend struct sG4PolyhedraSideVec
friend

Definition at line 156 of file G4PolyhedraSide.hh.

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

Member Data Documentation

G4bool G4PolyhedraSide::allBehind = false
protected

Definition at line 214 of file G4PolyhedraSide.hh.

View newest version in sPHENIX GitHub at line 214 of file G4PolyhedraSide.hh

Referenced by CopyStuff(), G4PolyhedraSide(), and Intersect().

G4IntersectingCone* G4PolyhedraSide::cone = nullptr
protected

Definition at line 216 of file G4PolyhedraSide.hh.

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

Referenced by CopyStuff(), Extent(), G4PolyhedraSide(), LineHitsSegments(), operator=(), and ~G4PolyhedraSide().

G4double G4PolyhedraSide::deltaPhi
protected

Definition at line 210 of file G4PolyhedraSide.hh.

View newest version in sPHENIX GitHub at line 210 of file G4PolyhedraSide.hh

Referenced by CopyStuff(), G4PolyhedraSide(), and PhiSegment().

G4double G4PolyhedraSide::edgeNorm
protected

Definition at line 222 of file G4PolyhedraSide.hh.

View newest version in sPHENIX GitHub at line 222 of file G4PolyhedraSide.hh

Referenced by CopyStuff(), DistanceAway(), and G4PolyhedraSide().

G4PolyhedraSideEdge* G4PolyhedraSide::edges = nullptr
protected

Definition at line 219 of file G4PolyhedraSide.hh.

View newest version in sPHENIX GitHub at line 219 of file G4PolyhedraSide.hh

Referenced by CopyStuff(), G4PolyhedraSide(), operator=(), and ~G4PolyhedraSide().

G4double G4PolyhedraSide::endPhi
protected

Definition at line 210 of file G4PolyhedraSide.hh.

View newest version in sPHENIX GitHub at line 210 of file G4PolyhedraSide.hh

Referenced by ClosestPhiSegment(), CopyStuff(), and G4PolyhedraSide().

G4double G4PolyhedraSide::fSurfaceArea = 0.0
private

Definition at line 227 of file G4PolyhedraSide.hh.

View newest version in sPHENIX GitHub at line 227 of file G4PolyhedraSide.hh

Referenced by CopyStuff(), and SurfaceArea().

G4int G4PolyhedraSide::instanceID
private

Definition at line 229 of file G4PolyhedraSide.hh.

View newest version in sPHENIX GitHub at line 229 of file G4PolyhedraSide.hh

Referenced by G4PolyhedraSide(), and GetInstanceID().

G4double G4PolyhedraSide::kCarTolerance
private

Definition at line 226 of file G4PolyhedraSide.hh.

View newest version in sPHENIX GitHub at line 226 of file G4PolyhedraSide.hh

Referenced by CopyStuff(), Distance(), and G4PolyhedraSide().

G4double G4PolyhedraSide::lenPhi[2]
protected

Definition at line 220 of file G4PolyhedraSide.hh.

View newest version in sPHENIX GitHub at line 220 of file G4PolyhedraSide.hh

Referenced by CopyStuff(), DistanceAway(), G4PolyhedraSide(), and Intersect().

G4double G4PolyhedraSide::lenRZ
protected

Definition at line 220 of file G4PolyhedraSide.hh.

View newest version in sPHENIX GitHub at line 220 of file G4PolyhedraSide.hh

Referenced by CopyStuff(), DistanceAway(), G4PolyhedraSide(), Intersect(), and IntersectSidePlane().

G4int G4PolyhedraSide::numSide = 0
protected

Definition at line 208 of file G4PolyhedraSide.hh.

View newest version in sPHENIX GitHub at line 208 of file G4PolyhedraSide.hh

Referenced by CalculateExtent(), ClosestPhiSegment(), CopyStuff(), Extent(), G4PolyhedraSide(), GetPointOnFace(), Intersect(), PhiSegment(), and SurfaceArea().

G4bool G4PolyhedraSide::phiIsOpen = false
protected

Definition at line 213 of file G4PolyhedraSide.hh.

View newest version in sPHENIX GitHub at line 213 of file G4PolyhedraSide.hh

Referenced by CopyStuff(), G4PolyhedraSide(), and PhiSegment().

G4double G4PolyhedraSide::r[2]
protected

Definition at line 209 of file G4PolyhedraSide.hh.

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

Referenced by CopyStuff(), G4PolyhedraSide(), Intersect(), and IntersectSidePlane().

G4double G4PolyhedraSide::startPhi
protected

Definition at line 210 of file G4PolyhedraSide.hh.

View newest version in sPHENIX GitHub at line 210 of file G4PolyhedraSide.hh

Referenced by ClosestPhiSegment(), CopyStuff(), G4PolyhedraSide(), and PhiSegment().

G4PhSideManager G4PolyhedraSide::subInstanceManager
staticprivate

Definition at line 231 of file G4PolyhedraSide.hh.

View newest version in sPHENIX GitHub at line 231 of file G4PolyhedraSide.hh

Referenced by G4PolyhedraSide(), and GetSubInstanceManager().

G4PolyhedraSideVec* G4PolyhedraSide::vecs = nullptr
protected

Definition at line 218 of file G4PolyhedraSide.hh.

View newest version in sPHENIX GitHub at line 218 of file G4PolyhedraSide.hh

Referenced by CalculateExtent(), CopyStuff(), Distance(), Extent(), G4PolyhedraSide(), GetPointOnFace(), Inside(), Intersect(), Normal(), operator=(), SurfaceArea(), and ~G4PolyhedraSide().

G4double G4PolyhedraSide::z[2]
protected

Definition at line 209 of file G4PolyhedraSide.hh.

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

Referenced by CopyStuff(), and G4PolyhedraSide().


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