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

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

+ Inheritance diagram for G4GenericTrap:
+ Collaboration diagram for G4GenericTrap:

Public Member Functions

 G4GenericTrap (const G4String &name, G4double halfZ, const std::vector< G4TwoVector > &vertices)
 
 ~G4GenericTrap ()
 
G4double GetZHalfLength () const
 
G4int GetNofVertices () const
 
G4TwoVector GetVertex (G4int index) const
 
const std::vector< G4TwoVector > & GetVertices () const
 
G4double GetTwistAngle (G4int index) const
 
G4bool IsTwisted () const
 
G4int GetVisSubdivisions () const
 
void SetVisSubdivisions (G4int subdiv)
 
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
 
void BoundingLimits (G4ThreeVector &pMin, G4ThreeVector &pMax) const
 
G4bool CalculateExtent (const EAxis pAxis, const G4VoxelLimits &pVoxelLimit, const G4AffineTransform &pTransform, G4double &pmin, G4double &pmax) const
 
G4GeometryType GetEntityType () const
 
G4VSolidClone () const
 
std::ostream & StreamInfo (std::ostream &os) const
 
G4ThreeVector GetPointOnSurface () const
 
G4double GetCubicVolume ()
 
G4double GetSurfaceArea ()
 
G4PolyhedronGetPolyhedron () const
 
void DescribeYourselfTo (G4VGraphicsScene &scene) const
 
G4VisExtent GetExtent () const
 
G4PolyhedronCreatePolyhedron () const
 
 G4GenericTrap (__void__ &)
 
 G4GenericTrap (const G4GenericTrap &rhs)
 
G4GenericTrapoperator= (const G4GenericTrap &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
 

Protected Attributes

G4bool fRebuildPolyhedron = false
 
G4PolyhedronfpPolyhedron = nullptr
 
- Protected Attributes inherited from G4VSolid
G4double kCarTolerance
 

Private Types

enum  ESide {
  kUndef, kXY0, kXY1, kXY2,
  kXY3, kMZ, kPZ
}
 

Private Member Functions

void SetTwistAngle (G4int index, G4double twist)
 
G4bool ComputeIsTwisted ()
 
G4bool CheckOrder (const std::vector< G4TwoVector > &vertices) const
 
G4bool IsSegCrossing (const G4TwoVector &a, const G4TwoVector &b, const G4TwoVector &c, const G4TwoVector &d) const
 
G4bool IsSegCrossingZ (const G4TwoVector &a, const G4TwoVector &b, const G4TwoVector &c, const G4TwoVector &d) const
 
void ReorderVertices (std::vector< G4ThreeVector > &vertices) const
 
void ComputeBBox ()
 
G4ThreeVector GetMinimumBBox () const
 
G4ThreeVector GetMaximumBBox () const
 
G4VFacetMakeDownFacet (const std::vector< G4ThreeVector > &fromVertices, G4int ind1, G4int ind2, G4int ind3) const
 
G4VFacetMakeUpFacet (const std::vector< G4ThreeVector > &fromVertices, G4int ind1, G4int ind2, G4int ind3) const
 
G4VFacetMakeSideFacet (const G4ThreeVector &downVertex0, const G4ThreeVector &downVertex1, const G4ThreeVector &upVertex1, const G4ThreeVector &upVertex0) const
 
G4TessellatedSolidCreateTessellatedSolid () const
 
EInside InsidePolygone (const G4ThreeVector &p, const std::vector< G4TwoVector > &poly) const
 
G4double DistToPlane (const G4ThreeVector &p, const G4ThreeVector &v, const G4int ipl) const
 
G4double DistToTriangle (const G4ThreeVector &p, const G4ThreeVector &v, const G4int ipl) const
 
G4ThreeVector NormalToPlane (const G4ThreeVector &p, const G4int ipl) const
 
G4double SafetyToFace (const G4ThreeVector &p, const G4int iseg) const
 
G4double GetFaceSurfaceArea (const G4ThreeVector &p0, const G4ThreeVector &p1, const G4ThreeVector &p2, const G4ThreeVector &p3) const
 
G4double GetFaceCubicVolume (const G4ThreeVector &p0, const G4ThreeVector &p1, const G4ThreeVector &p2, const G4ThreeVector &p3) const
 

Private Attributes

G4double halfCarTolerance
 
G4double fDz
 
std::vector< G4TwoVectorfVertices
 
G4bool fIsTwisted = false
 
G4double fTwist [4]
 
G4TessellatedSolidfTessellatedSolid = nullptr
 
G4ThreeVector fMinBBoxVector
 
G4ThreeVector fMaxBBoxVector
 
G4int fVisSubdivisions = 0
 
G4double fSurfaceArea = 0.0
 
G4double fCubicVolume = 0.0
 

Static Private Attributes

static const G4int fgkNofVertices = 8
 
static const G4double fgkTolerance = 1E-3
 

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 79 of file G4GenericTrap.hh.

View newest version in sPHENIX GitHub at line 79 of file G4GenericTrap.hh

Member Enumeration Documentation

enum G4GenericTrap::ESide
private
Enumerator:
kUndef 
kXY0 
kXY1 
kXY2 
kXY3 
kMZ 
kPZ 

Definition at line 217 of file G4GenericTrap.hh.

View newest version in sPHENIX GitHub at line 217 of file G4GenericTrap.hh

Constructor & Destructor Documentation

G4GenericTrap::G4GenericTrap ( const G4String name,
G4double  halfZ,
const std::vector< G4TwoVector > &  vertices 
)

Definition at line 65 of file G4GenericTrap.cc.

View newest version in sPHENIX GitHub at line 65 of file G4GenericTrap.cc

References CheckOrder(), ComputeBBox(), ComputeIsTwisted(), CreateTessellatedSolid(), FatalErrorInArgument, fgkNofVertices, fIsTwisted, fTessellatedSolid, fTwist, fVertices, G4endl, G4Exception(), halfCarTolerance, JustWarning, k, G4VSolid::kCarTolerance, BTOF::length, and message().

Referenced by Clone().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4GenericTrap::~G4GenericTrap ( )

Definition at line 158 of file G4GenericTrap.cc.

View newest version in sPHENIX GitHub at line 158 of file G4GenericTrap.cc

References fTessellatedSolid.

G4GenericTrap::G4GenericTrap ( __void__ &  a)

Definition at line 148 of file G4GenericTrap.cc.

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

G4GenericTrap::G4GenericTrap ( const G4GenericTrap rhs)

Definition at line 165 of file G4GenericTrap.cc.

View newest version in sPHENIX GitHub at line 165 of file G4GenericTrap.cc

References CreateTessellatedSolid(), fIsTwisted, fTessellatedSolid, and fTwist.

+ Here is the call graph for this function:

Member Function Documentation

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

Reimplemented from G4VSolid.

Definition at line 1176 of file G4GenericTrap.cc.

View newest version in sPHENIX GitHub at line 1176 of file G4GenericTrap.cc

References G4VSolid::DumpInfo(), G4Exception(), GetMaximumBBox(), GetMinimumBBox(), 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 G4GenericTrap::CalculateExtent ( const EAxis  pAxis,
const G4VoxelLimits pVoxelLimit,
const G4AffineTransform pTransform,
G4double pmin,
G4double pmax 
) const
virtual

Implements G4VSolid.

Definition at line 1200 of file G4GenericTrap.cc.

View newest version in sPHENIX GitHub at line 1200 of file G4GenericTrap.cc

References KF_timing::ax, G4BoundingEnvelope::BoundingBoxVsVoxelLimits(), BoundingLimits(), G4BoundingEnvelope::CalculateExtent(), dz, GetVertex(), GetZHalfLength(), k1, k2, pMax, CLHEP::Hep2Vector::x(), and CLHEP::Hep2Vector::y().

+ Here is the call graph for this function:

G4bool G4GenericTrap::CheckOrder ( const std::vector< G4TwoVector > &  vertices) const
private

Definition at line 1523 of file G4GenericTrap.cc.

View newest version in sPHENIX GitHub at line 1523 of file G4GenericTrap.cc

References FatalException, fgkTolerance, G4Exception(), G4VSolid::GetName(), IsSegCrossing(), IsSegCrossingZ(), JustWarning, and message().

Referenced by G4GenericTrap().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4VSolid * G4GenericTrap::Clone ( ) const
virtual

Reimplemented from G4VSolid.

Definition at line 1266 of file G4GenericTrap.cc.

View newest version in sPHENIX GitHub at line 1266 of file G4GenericTrap.cc

References G4GenericTrap().

+ Here is the call graph for this function:

void G4GenericTrap::ComputeBBox ( )
private

Definition at line 1922 of file G4GenericTrap.cc.

View newest version in sPHENIX GitHub at line 1922 of file G4GenericTrap.cc

References fDz, fgkNofVertices, fMaxBBoxVector, fMinBBoxVector, fVertices, maxY, minY, x, and y.

Referenced by G4GenericTrap().

+ Here is the caller graph for this function:

G4bool G4GenericTrap::ComputeIsTwisted ( )
private

Definition at line 1475 of file G4GenericTrap.cc.

View newest version in sPHENIX GitHub at line 1475 of file G4GenericTrap.cc

References fgkNofVertices, fgkTolerance, fVertices, G4endl, G4Exception(), G4VSolid::GetName(), JustWarning, G4VSolid::kCarTolerance, message(), pi, SetTwistAngle(), x, and y.

Referenced by G4GenericTrap().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4Polyhedron * G4GenericTrap::CreatePolyhedron ( ) const
virtual

Reimplemented from G4VSolid.

Definition at line 2004 of file G4GenericTrap.cc.

View newest version in sPHENIX GitHub at line 2004 of file G4GenericTrap.cc

References G4PolyhedronArbitrary::AddFacet(), G4PolyhedronArbitrary::AddVertex(), G4TessellatedSolid::CreatePolyhedron(), Dx, Dy, fDz, fIsTwisted, fTessellatedSolid, fVertices, GetMaximumBBox(), GetMinimumBBox(), GetTwistAngle(), GetVisSubdivisions(), G4PolyhedronArbitrary::InvertFacets(), G4PolyhedronArbitrary::SetReferences(), Acts::UnitConstants::u, CLHEP::Hep2Vector::x(), CLHEP::Hep3Vector::x(), x, CLHEP::Hep2Vector::y(), CLHEP::Hep3Vector::y(), and y.

Referenced by GetPolyhedron().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4TessellatedSolid * G4GenericTrap::CreateTessellatedSolid ( ) const
private

Definition at line 1861 of file G4GenericTrap.cc.

View newest version in sPHENIX GitHub at line 1861 of file G4GenericTrap.cc

References G4TessellatedSolid::AddFacet(), Acts::VectorHelpers::cross(), fDz, fgkNofVertices, fVertices, G4VSolid::GetName(), MakeDownFacet(), MakeSideFacet(), MakeUpFacet(), ReorderVertices(), G4TessellatedSolid::SetSolidClosed(), x, y, and CLHEP::Hep3Vector::z().

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

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4GenericTrap::DescribeYourselfTo ( G4VGraphicsScene scene) const
virtual

Implements G4VSolid.

Definition at line 1969 of file G4GenericTrap.cc.

View newest version in sPHENIX GitHub at line 1969 of file G4GenericTrap.cc

References G4VGraphicsScene::AddSolid(), G4TessellatedSolid::DescribeYourselfTo(), and fTessellatedSolid.

+ Here is the call graph for this function:

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

Implements G4VSolid.

Definition at line 732 of file G4GenericTrap.cc.

View newest version in sPHENIX GitHub at line 732 of file G4GenericTrap.cc

References G4TessellatedSolid::DistanceToIn(), DistToPlane(), CLHEP::Hep3Vector::dot(), fDz, fTessellatedSolid, halfCarTolerance, Inside(), kInfinity, kOutside, n, pt, v, and CLHEP::Hep3Vector::z().

+ Here is the call graph for this function:

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

Implements G4VSolid.

Definition at line 800 of file G4GenericTrap.cc.

View newest version in sPHENIX GitHub at line 800 of file G4GenericTrap.cc

References G4TessellatedSolid::DistanceToIn(), fDz, fTessellatedSolid, SafetyToFace(), and CLHEP::Hep3Vector::z().

+ Here is the call graph for this function:

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

Implements G4VSolid.

Definition at line 904 of file G4GenericTrap.cc.

View newest version in sPHENIX GitHub at line 904 of file G4GenericTrap.cc

References a, b, c, d, G4TessellatedSolid::DistanceToOut(), DistToTriangle(), CLHEP::Hep3Vector::dot(), G4VSolid::DumpInfo(), dz2, fDz, fTessellatedSolid, fVertices, G4endl, G4Exception(), halfCarTolerance, InsidePolygone(), JustWarning, G4VSolid::kCarTolerance, kInfinity, kMZ, kOutside, kPZ, kUndef, kXY0, kXY1, kXY2, kXY3, message(), mm, NormalToPlane(), pt, v, CLHEP::Hep3Vector::x(), CLHEP::Hep3Vector::y(), and CLHEP::Hep3Vector::z().

+ Here is the call graph for this function:

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

Implements G4VSolid.

Definition at line 1149 of file G4GenericTrap.cc.

View newest version in sPHENIX GitHub at line 1149 of file G4GenericTrap.cc

References G4TessellatedSolid::DistanceToOut(), fDz, fTessellatedSolid, SafetyToFace(), and CLHEP::Hep3Vector::z().

+ Here is the call graph for this function:

G4double G4GenericTrap::DistToPlane ( const G4ThreeVector p,
const G4ThreeVector v,
const G4int  ipl 
) const
private

Definition at line 574 of file G4GenericTrap.cc.

View newest version in sPHENIX GitHub at line 574 of file G4GenericTrap.cc

References a, b, c, d, CLHEP::Hep3Vector::dot(), dz2, fDz, fVertices, halfCarTolerance, Inside(), G4VSolid::kCarTolerance, kInfinity, kOutside, NormalToPlane(), CLHEP::Hep3Vector::x(), x1, x2, CLHEP::Hep3Vector::y(), y1, y2, and CLHEP::Hep3Vector::z().

Referenced by DistanceToIn().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4GenericTrap::DistToTriangle ( const G4ThreeVector p,
const G4ThreeVector v,
const G4int  ipl 
) const
private

Definition at line 849 of file G4GenericTrap.cc.

View newest version in sPHENIX GitHub at line 849 of file G4GenericTrap.cc

References a, b, c, d, CLHEP::Hep3Vector::dot(), fDz, fVertices, halfCarTolerance, Inside(), G4VSolid::kCarTolerance, kInfinity, kSurface, NormalToPlane(), t, 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 G4GenericTrap::GetCubicVolume ( )
virtual

Reimplemented from G4VSolid.

Definition at line 1418 of file G4GenericTrap.cc.

View newest version in sPHENIX GitHub at line 1418 of file G4GenericTrap.cc

References fCubicVolume, fDz, fIsTwisted, fVertices, G4VSolid::GetCubicVolume(), GetFaceCubicVolume(), x, and y.

+ Here is the call graph for this function:

G4GeometryType G4GenericTrap::GetEntityType ( ) const
virtual

Implements G4VSolid.

Definition at line 1259 of file G4GenericTrap.cc.

View newest version in sPHENIX GitHub at line 1259 of file G4GenericTrap.cc

Referenced by StreamInfo().

+ Here is the caller graph for this function:

G4VisExtent G4GenericTrap::GetExtent ( ) const
virtual

Reimplemented from G4VSolid.

Definition at line 1984 of file G4GenericTrap.cc.

View newest version in sPHENIX GitHub at line 1984 of file G4GenericTrap.cc

References fTessellatedSolid, G4TessellatedSolid::GetExtent(), GetMaximumBBox(), GetMinimumBBox(), CLHEP::Hep3Vector::x(), CLHEP::Hep3Vector::y(), and CLHEP::Hep3Vector::z().

+ Here is the call graph for this function:

G4double G4GenericTrap::GetFaceCubicVolume ( const G4ThreeVector p0,
const G4ThreeVector p1,
const G4ThreeVector p2,
const G4ThreeVector p3 
) const
private

Definition at line 1463 of file G4GenericTrap.cc.

View newest version in sPHENIX GitHub at line 1463 of file G4GenericTrap.cc

References Acts::VectorHelpers::cross().

Referenced by GetCubicVolume().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4GenericTrap::GetFaceSurfaceArea ( const G4ThreeVector p0,
const G4ThreeVector p1,
const G4ThreeVector p2,
const G4ThreeVector p3 
) const
private

Definition at line 1452 of file G4GenericTrap.cc.

View newest version in sPHENIX GitHub at line 1452 of file G4GenericTrap.cc

References Acts::VectorHelpers::cross().

Referenced by GetPointOnSurface(), and GetSurfaceArea().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4ThreeVector G4GenericTrap::GetMaximumBBox ( ) const
inlineprivate

Referenced by BoundingLimits(), CreatePolyhedron(), and GetExtent().

+ Here is the caller graph for this function:

G4ThreeVector G4GenericTrap::GetMinimumBBox ( ) const
inlineprivate

Referenced by BoundingLimits(), CreatePolyhedron(), and GetExtent().

+ Here is the caller graph for this function:

G4int G4GenericTrap::GetNofVertices ( ) const
inline
G4ThreeVector G4GenericTrap::GetPointOnSurface ( ) const
virtual

Reimplemented from G4VSolid.

Definition at line 1296 of file G4GenericTrap.cc.

View newest version in sPHENIX GitHub at line 1296 of file G4GenericTrap.cc

References fDz, fTessellatedSolid, fVertices, G4UniformRand, GetFaceSurfaceArea(), G4TessellatedSolid::GetPointOnSurface(), Acts::UnitConstants::u, v, w, CLHEP::Hep2Vector::x(), x, CLHEP::Hep2Vector::y(), and y.

+ Here is the call graph for this function:

G4Polyhedron * G4GenericTrap::GetPolyhedron ( ) const
virtual

Reimplemented from G4VSolid.

Definition at line 1943 of file G4GenericTrap.cc.

View newest version in sPHENIX GitHub at line 1943 of file G4GenericTrap.cc

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

+ Here is the call graph for this function:

G4double G4GenericTrap::GetSurfaceArea ( )
virtual

Reimplemented from G4VSolid.

Definition at line 1384 of file G4GenericTrap.cc.

View newest version in sPHENIX GitHub at line 1384 of file G4GenericTrap.cc

References fDz, fIsTwisted, fSurfaceArea, fVertices, GetFaceSurfaceArea(), G4VSolid::GetSurfaceArea(), x, and y.

+ Here is the call graph for this function:

G4double G4GenericTrap::GetTwistAngle ( G4int  index) const
inline

Referenced by CreatePolyhedron(), NormalToPlane(), and SurfaceNormal().

+ Here is the caller graph for this function:

G4TwoVector G4GenericTrap::GetVertex ( G4int  index) const
inline

Referenced by CalculateExtent().

+ Here is the caller graph for this function:

const std::vector<G4TwoVector>& G4GenericTrap::GetVertices ( ) const
inline

Referenced by PHG4GDMLWriteSolids::GenTrapWrite(), and G4GDMLWriteSolids::GenTrapWrite().

+ Here is the caller graph for this function:

G4int G4GenericTrap::GetVisSubdivisions ( ) const
inline

Referenced by CreatePolyhedron().

+ Here is the caller graph for this function:

G4double G4GenericTrap::GetZHalfLength ( ) const
inline

Referenced by CalculateExtent(), PHG4GDMLWriteSolids::GenTrapWrite(), and G4GDMLWriteSolids::GenTrapWrite().

+ Here is the caller graph for this function:

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

Implements G4VSolid.

Definition at line 318 of file G4GenericTrap.cc.

View newest version in sPHENIX GitHub at line 318 of file G4GenericTrap.cc

References fDz, fTessellatedSolid, fVertices, halfCarTolerance, G4TessellatedSolid::Inside(), InsidePolygone(), kInside, kOutside, kSurface, and CLHEP::Hep3Vector::z().

Referenced by DistanceToIn(), DistToPlane(), and DistToTriangle().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

EInside G4GenericTrap::InsidePolygone ( const G4ThreeVector p,
const std::vector< G4TwoVector > &  poly 
) const
private

Definition at line 216 of file G4GenericTrap.cc.

View newest version in sPHENIX GitHub at line 216 of file G4GenericTrap.cc

References Acts::VectorHelpers::cross(), halfCarTolerance, in, G4VSolid::kCarTolerance, kInside, kOutside, kSurface, test(), CLHEP::Hep3Vector::x(), x, CLHEP::Hep3Vector::y(), and y.

Referenced by DistanceToOut(), and Inside().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4bool G4GenericTrap::IsSegCrossing ( const G4TwoVector a,
const G4TwoVector b,
const G4TwoVector c,
const G4TwoVector d 
) const
private

Definition at line 1619 of file G4GenericTrap.cc.

View newest version in sPHENIX GitHub at line 1619 of file G4GenericTrap.cc

References a, c, fgkTolerance, CLHEP::Hep2Vector::x(), x, CLHEP::Hep2Vector::y(), and y.

Referenced by CheckOrder().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4bool G4GenericTrap::IsSegCrossingZ ( const G4TwoVector a,
const G4TwoVector b,
const G4TwoVector c,
const G4TwoVector d 
) const
private

Definition at line 1709 of file G4GenericTrap.cc.

View newest version in sPHENIX GitHub at line 1709 of file G4GenericTrap.cc

References CLHEP::Hep3Vector::cross(), Acts::VectorHelpers::cross(), CLHEP::Hep3Vector::dot(), fDz, G4VSolid::kCarTolerance, CLHEP::Hep3Vector::mag(), temp1, temp2, v1, v2, CLHEP::Hep2Vector::x(), CLHEP::Hep3Vector::x(), CLHEP::Hep2Vector::y(), CLHEP::Hep3Vector::y(), y, and CLHEP::Hep3Vector::z().

Referenced by CheckOrder().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4bool G4GenericTrap::IsTwisted ( ) const
inline
G4VFacet * G4GenericTrap::MakeDownFacet ( const std::vector< G4ThreeVector > &  fromVertices,
G4int  ind1,
G4int  ind2,
G4int  ind3 
) const
private

Definition at line 1759 of file G4GenericTrap.cc.

View newest version in sPHENIX GitHub at line 1759 of file G4GenericTrap.cc

References ABSOLUTE, Acts::VectorHelpers::cross(), FatalException, G4Exception(), G4VSolid::GetName(), message(), and CLHEP::Hep3Vector::z().

Referenced by CreateTessellatedSolid().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4VFacet * G4GenericTrap::MakeSideFacet ( const G4ThreeVector downVertex0,
const G4ThreeVector downVertex1,
const G4ThreeVector upVertex1,
const G4ThreeVector upVertex0 
) const
private

Definition at line 1832 of file G4GenericTrap.cc.

View newest version in sPHENIX GitHub at line 1832 of file G4GenericTrap.cc

References ABSOLUTE.

Referenced by CreateTessellatedSolid().

+ Here is the caller graph for this function:

G4VFacet * G4GenericTrap::MakeUpFacet ( const std::vector< G4ThreeVector > &  fromVertices,
G4int  ind1,
G4int  ind2,
G4int  ind3 
) const
private

Definition at line 1795 of file G4GenericTrap.cc.

View newest version in sPHENIX GitHub at line 1795 of file G4GenericTrap.cc

References ABSOLUTE, Acts::VectorHelpers::cross(), FatalException, G4Exception(), G4VSolid::GetName(), message(), and CLHEP::Hep3Vector::z().

Referenced by CreateTessellatedSolid().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4ThreeVector G4GenericTrap::NormalToPlane ( const G4ThreeVector p,
const G4int  ipl 
) const
private

Definition at line 489 of file G4GenericTrap.cc.

View newest version in sPHENIX GitHub at line 489 of file G4GenericTrap.cc

References CLHEP::Hep3Vector::cross(), Acts::VectorHelpers::cross(), fDz, fIsTwisted, fTessellatedSolid, fVertices, GetTwistAngle(), halfCarTolerance, G4VSolid::kCarTolerance, norm, proj, r1, r2, G4TessellatedSolid::SurfaceNormal(), Acts::UnitConstants::u, CLHEP::Hep3Vector::unit(), v, CLHEP::Hep2Vector::x(), x, CLHEP::Hep2Vector::y(), y, and CLHEP::Hep3Vector::z().

Referenced by DistanceToOut(), DistToPlane(), DistToTriangle(), and SafetyToFace().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Definition at line 183 of file G4GenericTrap.cc.

View newest version in sPHENIX GitHub at line 183 of file G4GenericTrap.cc

References CreateTessellatedSolid(), fCubicVolume, fDz, fIsTwisted, fMaxBBoxVector, fMinBBoxVector, fpPolyhedron, fRebuildPolyhedron, fSurfaceArea, fTessellatedSolid, fTwist, fVertices, fVisSubdivisions, halfCarTolerance, and G4VSolid::operator=().

+ Here is the call graph for this function:

void G4GenericTrap::ReorderVertices ( std::vector< G4ThreeVector > &  vertices) const
private

Definition at line 1604 of file G4GenericTrap.cc.

View newest version in sPHENIX GitHub at line 1604 of file G4GenericTrap.cc

Referenced by CreateTessellatedSolid().

+ Here is the caller graph for this function:

G4double G4GenericTrap::SafetyToFace ( const G4ThreeVector p,
const G4int  iseg 
) const
private

Definition at line 830 of file G4GenericTrap.cc.

View newest version in sPHENIX GitHub at line 830 of file G4GenericTrap.cc

References fDz, fVertices, norm, NormalToPlane(), x, and y.

Referenced by DistanceToIn(), and DistanceToOut().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4GenericTrap::SetTwistAngle ( G4int  index,
G4double  twist 
)
inlineprivate

Referenced by ComputeIsTwisted().

+ Here is the caller graph for this function:

void G4GenericTrap::SetVisSubdivisions ( G4int  subdiv)
inline
std::ostream & G4GenericTrap::StreamInfo ( std::ostream &  os) const
virtual

Implements G4VSolid.

Definition at line 1273 of file G4GenericTrap.cc.

View newest version in sPHENIX GitHub at line 1273 of file G4GenericTrap.cc

References fDz, fgkNofVertices, fVertices, G4endl, GetEntityType(), G4VSolid::GetName(), and mm.

+ Here is the call graph for this function:

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

Implements G4VSolid.

Definition at line 354 of file G4GenericTrap.cc.

View newest version in sPHENIX GitHub at line 354 of file G4GenericTrap.cc

References CLHEP::Hep3Vector::cross(), Acts::VectorHelpers::cross(), fDz, fIsTwisted, fTessellatedSolid, fVertices, G4Exception(), GetTwistAngle(), halfCarTolerance, JustWarning, G4VSolid::kCarTolerance, proj, r1, r2, G4TessellatedSolid::SurfaceNormal(), CLHEP::Hep3Vector::unit(), x, y, and CLHEP::Hep3Vector::z().

+ Here is the call graph for this function:

Member Data Documentation

G4double G4GenericTrap::fCubicVolume = 0.0
private

Definition at line 221 of file G4GenericTrap.hh.

View newest version in sPHENIX GitHub at line 221 of file G4GenericTrap.hh

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

const G4int G4GenericTrap::fgkNofVertices = 8
staticprivate

Definition at line 201 of file G4GenericTrap.hh.

View newest version in sPHENIX GitHub at line 201 of file G4GenericTrap.hh

Referenced by ComputeBBox(), ComputeIsTwisted(), CreateTessellatedSolid(), G4GenericTrap(), and StreamInfo().

const G4double G4GenericTrap::fgkTolerance = 1E-3
staticprivate

Definition at line 202 of file G4GenericTrap.hh.

View newest version in sPHENIX GitHub at line 202 of file G4GenericTrap.hh

Referenced by CheckOrder(), ComputeIsTwisted(), and IsSegCrossing().

G4bool G4GenericTrap::fIsTwisted = false
private

Definition at line 210 of file G4GenericTrap.hh.

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

Referenced by CreatePolyhedron(), G4GenericTrap(), GetCubicVolume(), GetSurfaceArea(), NormalToPlane(), operator=(), and SurfaceNormal().

G4ThreeVector G4GenericTrap::fMaxBBoxVector
private

Definition at line 214 of file G4GenericTrap.hh.

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

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

G4ThreeVector G4GenericTrap::fMinBBoxVector
private

Definition at line 213 of file G4GenericTrap.hh.

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

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

G4Polyhedron* G4GenericTrap::fpPolyhedron = nullptr
mutableprotected

Definition at line 195 of file G4GenericTrap.hh.

View newest version in sPHENIX GitHub at line 195 of file G4GenericTrap.hh

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

G4bool G4GenericTrap::fRebuildPolyhedron = false
mutableprotected

Definition at line 194 of file G4GenericTrap.hh.

View newest version in sPHENIX GitHub at line 194 of file G4GenericTrap.hh

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

G4double G4GenericTrap::fSurfaceArea = 0.0
private

Definition at line 220 of file G4GenericTrap.hh.

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

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

G4TessellatedSolid* G4GenericTrap::fTessellatedSolid = nullptr
private
G4double G4GenericTrap::fTwist[4]
private

Definition at line 211 of file G4GenericTrap.hh.

View newest version in sPHENIX GitHub at line 211 of file G4GenericTrap.hh

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

G4int G4GenericTrap::fVisSubdivisions = 0
private

Definition at line 215 of file G4GenericTrap.hh.

View newest version in sPHENIX GitHub at line 215 of file G4GenericTrap.hh

Referenced by operator=().

G4double G4GenericTrap::halfCarTolerance
private

Definition at line 204 of file G4GenericTrap.hh.

View newest version in sPHENIX GitHub at line 204 of file G4GenericTrap.hh

Referenced by DistanceToIn(), DistanceToOut(), DistToPlane(), DistToTriangle(), G4GenericTrap(), Inside(), InsidePolygone(), NormalToPlane(), operator=(), and SurfaceNormal().


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