Geant4  10.03
G4Cons Class Reference

#include <G4Cons.hh>

+ Inheritance diagram for G4Cons:
+ Collaboration diagram for G4Cons:

Public Member Functions

 G4Cons (const G4String &pName, G4double pRmin1, G4double pRmax1, G4double pRmin2, G4double pRmax2, G4double pDz, G4double pSPhi, G4double pDPhi)
 
 ~G4Cons ()
 
G4double GetInnerRadiusMinusZ () const
 
G4double GetOuterRadiusMinusZ () const
 
G4double GetInnerRadiusPlusZ () const
 
G4double GetOuterRadiusPlusZ () const
 
G4double GetZHalfLength () const
 
G4double GetStartPhiAngle () const
 
G4double GetDeltaPhiAngle () const
 
G4double GetSinStartPhi () const
 
G4double GetCosStartPhi () const
 
G4double GetSinEndPhi () const
 
G4double GetCosEndPhi () const
 
void SetInnerRadiusMinusZ (G4double Rmin1)
 
void SetOuterRadiusMinusZ (G4double Rmax1)
 
void SetInnerRadiusPlusZ (G4double Rmin2)
 
void SetOuterRadiusPlusZ (G4double Rmax2)
 
void SetZHalfLength (G4double newDz)
 
void SetStartPhiAngle (G4double newSPhi, G4bool trig=true)
 
void SetDeltaPhiAngle (G4double newDPhi)
 
G4double GetCubicVolume ()
 
G4double GetSurfaceArea ()
 
void ComputeDimensions (G4VPVParameterisation *p, const G4int n, const G4VPhysicalVolume *pRep)
 
void Extent (G4ThreeVector &pMin, G4ThreeVector &pMax) const
 
G4bool CalculateExtent (const EAxis pAxis, const G4VoxelLimits &pVoxelLimit, const G4AffineTransform &pTransform, G4double &pMin, G4double &pMax) const
 
EInside Inside (const G4ThreeVector &p) const
 
G4ThreeVector SurfaceNormal (const G4ThreeVector &p) const
 
G4double DistanceToIn (const G4ThreeVector &p, const G4ThreeVector &v) const
 
G4double DistanceToIn (const G4ThreeVector &p) const
 
G4double DistanceToOut (const G4ThreeVector &p, const G4ThreeVector &v, const G4bool calcNorm=G4bool(false), G4bool *validNorm=0, G4ThreeVector *n=0) const
 
G4double DistanceToOut (const G4ThreeVector &p) const
 
G4GeometryType GetEntityType () const
 
G4ThreeVector GetPointOnSurface () const
 
G4VSolidClone () const
 
std::ostream & StreamInfo (std::ostream &os) const
 
void DescribeYourselfTo (G4VGraphicsScene &scene) const
 
G4PolyhedronCreatePolyhedron () const
 
 G4Cons (__void__ &)
 
 G4Cons (const G4Cons &rhs)
 
G4Consoperator= (const G4Cons &rhs)
 
G4double GetRmin1 () const
 
G4double GetRmax1 () const
 
G4double GetRmin2 () const
 
G4double GetRmax2 () const
 
G4double GetDz () const
 
G4double GetSPhi () const
 
G4double GetDPhi () const
 
- Public Member Functions inherited from G4CSGSolid
 G4CSGSolid (const G4String &pName)
 
virtual ~G4CSGSolid ()
 
virtual G4PolyhedronGetPolyhedron () const
 
 G4CSGSolid (__void__ &)
 
 G4CSGSolid (const G4CSGSolid &rhs)
 
G4CSGSolidoperator= (const G4CSGSolid &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
 
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 Types

enum  ESide {
  kNull, kRMin, kRMax, kSPhi,
  kEPhi, kPZ, kMZ
}
 
enum  ENorm {
  kNRMin, kNRMax, kNSPhi, kNEPhi,
  kNZ
}
 

Private Member Functions

void Initialize ()
 
void CheckSPhiAngle (G4double sPhi)
 
void CheckDPhiAngle (G4double dPhi)
 
void CheckPhiAngles (G4double sPhi, G4double dPhi)
 
void InitializeTrigonometry ()
 
G4ThreeVector ApproxSurfaceNormal (const G4ThreeVector &p) const
 

Private Attributes

G4double kRadTolerance
 
G4double kAngTolerance
 
G4double fRmin1
 
G4double fRmin2
 
G4double fRmax1
 
G4double fRmax2
 
G4double fDz
 
G4double fSPhi
 
G4double fDPhi
 
G4double sinCPhi
 
G4double cosCPhi
 
G4double cosHDPhiOT
 
G4double cosHDPhiIT
 
G4double sinSPhi
 
G4double cosSPhi
 
G4double sinEPhi
 
G4double cosEPhi
 
G4bool fPhiFullCone
 
G4double halfCarTolerance
 
G4double halfRadTolerance
 
G4double halfAngTolerance
 

Additional Inherited Members

- Protected Member Functions inherited from G4CSGSolid
G4double GetRadiusInRing (G4double rmin, G4double rmax) const
 
- 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 G4CSGSolid
G4double fCubicVolume
 
G4double fSurfaceArea
 
G4bool fRebuildPolyhedron
 
G4PolyhedronfpPolyhedron
 
- Protected Attributes inherited from G4VSolid
G4double kCarTolerance
 

Detailed Description

Definition at line 83 of file G4Cons.hh.

Member Enumeration Documentation

enum G4Cons::ENorm
private
Enumerator
kNRMin 
kNRMax 
kNSPhi 
kNEPhi 
kNZ 

Definition at line 217 of file G4Cons.hh.

enum G4Cons::ESide
private
Enumerator
kNull 
kRMin 
kRMax 
kSPhi 
kEPhi 
kPZ 
kMZ 

Definition at line 213 of file G4Cons.hh.

Constructor & Destructor Documentation

G4Cons::G4Cons ( const G4String pName,
G4double  pRmin1,
G4double  pRmax1,
G4double  pRmin2,
G4double  pRmax2,
G4double  pDz,
G4double  pSPhi,
G4double  pDPhi 
)

Definition at line 87 of file G4Cons.cc.

References CheckPhiAngles(), FatalException, fRmin1, fRmin2, G4endl, G4Exception(), G4GeometryTolerance::GetAngularTolerance(), G4GeometryTolerance::GetInstance(), G4VSolid::GetName(), G4GeometryTolerance::GetRadialTolerance(), halfAngTolerance, halfCarTolerance, halfRadTolerance, kAngTolerance, G4VSolid::kCarTolerance, and kRadTolerance.

Referenced by Clone().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4Cons::~G4Cons ( )

Definition at line 151 of file G4Cons.cc.

G4Cons::G4Cons ( __void__ &  a)

Definition at line 137 of file G4Cons.cc.

G4Cons::G4Cons ( const G4Cons rhs)

Definition at line 159 of file G4Cons.cc.

Member Function Documentation

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

Definition at line 537 of file G4Cons.cc.

References G4VSolid::DumpInfo(), fDPhi, fDz, fPhiFullCone, fRmax1, fRmax2, fRmin1, fRmin2, fSPhi, G4Exception(), JustWarning, kNEPhi, kNRMax, kNRMin, kNSPhi, kNZ, and twopi.

Referenced by SurfaceNormal().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Implements G4VSolid.

Definition at line 318 of file G4Cons.cc.

References G4BoundingEnvelope::BoundingBoxVsVoxelLimits(), G4BoundingEnvelope::CalculateExtent(), deg, Extent(), GetCosEndPhi(), GetCosStartPhi(), GetDeltaPhiAngle(), GetInnerRadiusMinusZ(), GetInnerRadiusPlusZ(), GetOuterRadiusMinusZ(), GetOuterRadiusPlusZ(), GetSinEndPhi(), GetSinStartPhi(), GetZHalfLength(), and twopi.

+ Here is the call graph for this function:

void G4Cons::CheckDPhiAngle ( G4double  dPhi)
inlineprivate
void G4Cons::CheckPhiAngles ( G4double  sPhi,
G4double  dPhi 
)
inlineprivate

Referenced by G4Cons().

+ Here is the caller graph for this function:

void G4Cons::CheckSPhiAngle ( G4double  sPhi)
inlineprivate
G4VSolid * G4Cons::Clone ( ) const
virtual

Reimplemented from G4VSolid.

Definition at line 2105 of file G4Cons.cc.

References G4Cons().

+ Here is the call graph for this function:

void G4Cons::ComputeDimensions ( G4VPVParameterisation p,
const G4int  n,
const G4VPhysicalVolume pRep 
)
virtual

Reimplemented from G4VSolid.

Definition at line 265 of file G4Cons.cc.

References G4VPVParameterisation::ComputeDimensions().

+ Here is the call graph for this function:

G4Polyhedron * G4Cons::CreatePolyhedron ( ) const
virtual

Reimplemented from G4VSolid.

Definition at line 2233 of file G4Cons.cc.

References fDPhi, fDz, fRmax1, fRmax2, fRmin1, fRmin2, and fSPhi.

void G4Cons::DescribeYourselfTo ( G4VGraphicsScene scene) const
virtual

Implements G4VSolid.

Definition at line 2228 of file G4Cons.cc.

References G4VGraphicsScene::AddSolid().

+ Here is the call graph for this function:

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

Implements G4VSolid.

Definition at line 1333 of file G4Cons.cc.

References cosCPhi, cosEPhi, fDPhi, fDz, fPhiFullCone, fRmax1, fRmax2, fRmin1, fRmin2, fSPhi, sinCPhi, and sinEPhi.

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

Implements G4VSolid.

Definition at line 1395 of file G4Cons.cc.

References cosCPhi, cosEPhi, cosSPhi, degree, G4VSolid::DumpInfo(), fDPhi, fDz, fPhiFullCone, fRmax1, fRmax2, fRmin1, fRmin2, fSPhi, G4cout, G4endl, G4Exception(), halfAngTolerance, halfCarTolerance, halfRadTolerance, JustWarning, G4VSolid::kCarTolerance, kEPhi, kInfinity, kMZ, kNull, kPZ, kRadTolerance, kRMax, kRMin, kSPhi, mm, pi, sinCPhi, sinEPhi, sinSPhi, and twopi.

+ Here is the call graph for this function:

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

Implements G4VSolid.

Definition at line 2018 of file G4Cons.cc.

References cosCPhi, cosEPhi, cosSPhi, degree, G4VSolid::DumpInfo(), fDz, fPhiFullCone, fRmax1, fRmax2, fRmin1, fRmin2, G4cout, G4endl, G4Exception(), Inside(), JustWarning, kInfinity, kOutside, mm, sinCPhi, sinEPhi, and sinSPhi.

+ Here is the call graph for this function:

void G4Cons::Extent ( G4ThreeVector pMin,
G4ThreeVector pMax 
) const
virtual

Reimplemented from G4VSolid.

Definition at line 276 of file G4Cons.cc.

References G4GeomTools::DiskExtent(), G4VSolid::DumpInfo(), G4Exception(), GetCosEndPhi(), GetCosStartPhi(), GetDeltaPhiAngle(), GetInnerRadiusMinusZ(), GetInnerRadiusPlusZ(), G4VSolid::GetName(), GetOuterRadiusMinusZ(), GetOuterRadiusPlusZ(), GetSinEndPhi(), GetSinStartPhi(), GetZHalfLength(), JustWarning, G4INCL::Math::max(), G4INCL::Math::min(), and twopi.

Referenced by CalculateExtent().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4Cons::GetCosEndPhi ( ) const
inline

Referenced by CalculateExtent(), and Extent().

+ Here is the caller graph for this function:

G4double G4Cons::GetCosStartPhi ( ) const
inline

Referenced by CalculateExtent(), and Extent().

+ Here is the caller graph for this function:

G4double G4Cons::GetCubicVolume ( )
inlinevirtual

Reimplemented from G4VSolid.

G4double G4Cons::GetDPhi ( ) const
inline
G4double G4Cons::GetDz ( ) const
inline
G4GeometryType G4Cons::GetEntityType ( ) const
virtual

Implements G4VSolid.

Definition at line 2096 of file G4Cons.cc.

G4ThreeVector G4Cons::GetPointOnSurface ( ) const
virtual

Reimplemented from G4VSolid.

Definition at line 2141 of file G4Cons.cc.

References fDPhi, fDz, fPhiFullCone, fRmax1, fRmax2, fRmin1, fRmin2, fSPhi, G4CSGSolid::GetRadiusInRing(), G4INCL::DeJongSpin::shoot(), and sqr().

+ Here is the call graph for this function:

G4double G4Cons::GetRmax1 ( ) const
inline
G4double G4Cons::GetRmax2 ( ) const
inline
G4double G4Cons::GetRmin1 ( ) const
inline
G4double G4Cons::GetRmin2 ( ) const
inline
G4double G4Cons::GetSinEndPhi ( ) const
inline

Referenced by CalculateExtent(), and Extent().

+ Here is the caller graph for this function:

G4double G4Cons::GetSinStartPhi ( ) const
inline

Referenced by CalculateExtent(), and Extent().

+ Here is the caller graph for this function:

G4double G4Cons::GetSPhi ( ) const
inline
G4double G4Cons::GetSurfaceArea ( )
inlinevirtual

Reimplemented from G4VSolid.

void G4Cons::Initialize ( )
inlineprivate
void G4Cons::InitializeTrigonometry ( )
inlineprivate
EInside G4Cons::Inside ( const G4ThreeVector p) const
virtual

Implements G4VSolid.

Definition at line 210 of file G4Cons.cc.

References fDPhi, fDz, fPhiFullCone, fRmax1, fRmax2, fRmin1, fRmin2, fSPhi, halfAngTolerance, halfCarTolerance, halfRadTolerance, kInside, kOutside, kSurface, and twopi.

Referenced by DistanceToOut().

+ Here is the caller graph for this function:

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

Definition at line 177 of file G4Cons.cc.

References cosCPhi, cosEPhi, cosHDPhiIT, cosHDPhiOT, cosSPhi, fDPhi, fDz, fPhiFullCone, fRmax1, fRmax2, fRmin1, fRmin2, fSPhi, halfAngTolerance, halfCarTolerance, halfRadTolerance, kAngTolerance, kRadTolerance, G4CSGSolid::operator=(), sinCPhi, sinEPhi, and sinSPhi.

+ Here is the call graph for this function:

void G4Cons::SetDeltaPhiAngle ( G4double  newDPhi)
inline

Referenced by G4GDMLParameterisation::ComputeDimensions(), G4ParameterisationConsRho::ComputeDimensions(), G4ParameterisationConsPhi::ComputeDimensions(), G4ParameterisationConsZ::ComputeDimensions(), and export_G4Cons().

+ Here is the caller graph for this function:

void G4Cons::SetInnerRadiusMinusZ ( G4double  Rmin1)
inline
void G4Cons::SetInnerRadiusPlusZ ( G4double  Rmin2)
inline
void G4Cons::SetOuterRadiusMinusZ ( G4double  Rmax1)
inline

Referenced by UltraFresnelLensParameterisation::ComputeDimensions(), G4GDMLParameterisation::ComputeDimensions(), G4ParameterisationConsRho::ComputeDimensions(), G4ParameterisationConsPhi::ComputeDimensions(), G4ParameterisationConsZ::ComputeDimensions(), and export_G4Cons().

+ Here is the caller graph for this function:

void G4Cons::SetOuterRadiusPlusZ ( G4double  Rmax2)
inline

Referenced by UltraFresnelLensParameterisation::ComputeDimensions(), G4GDMLParameterisation::ComputeDimensions(), G4ParameterisationConsRho::ComputeDimensions(), G4ParameterisationConsPhi::ComputeDimensions(), G4ParameterisationConsZ::ComputeDimensions(), and export_G4Cons().

+ Here is the caller graph for this function:

void G4Cons::SetStartPhiAngle ( G4double  newSPhi,
G4bool  trig = true 
)
inline

Referenced by G4GDMLParameterisation::ComputeDimensions(), G4ParameterisationConsRho::ComputeDimensions(), G4ParameterisationConsPhi::ComputeDimensions(), G4ParameterisationConsZ::ComputeDimensions(), and export_G4Cons().

+ Here is the caller graph for this function:

void G4Cons::SetZHalfLength ( G4double  newDz)
inline

Referenced by UltraFresnelLensParameterisation::ComputeDimensions(), G4GDMLParameterisation::ComputeDimensions(), G4ParameterisationConsRho::ComputeDimensions(), G4ParameterisationConsPhi::ComputeDimensions(), G4ParameterisationConsZ::ComputeDimensions(), and export_G4Cons().

+ Here is the caller graph for this function:

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

Reimplemented from G4CSGSolid.

Definition at line 2114 of file G4Cons.cc.

References degree, fDPhi, fDz, fRmax1, fRmax2, fRmin1, fRmin2, fSPhi, G4VSolid::GetName(), and mm.

+ Here is the call graph for this function:

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

Implements G4VSolid.

Definition at line 433 of file G4Cons.cc.

References ApproxSurfaceNormal(), fDPhi, fDz, fPhiFullCone, fRmax1, fRmax2, fRmin1, fRmin2, fSPhi, G4Exception(), halfAngTolerance, halfCarTolerance, JustWarning, kInfinity, and twopi.

+ Here is the call graph for this function:

Member Data Documentation

G4double G4Cons::cosCPhi
private

Definition at line 227 of file G4Cons.hh.

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

G4double G4Cons::cosEPhi
private

Definition at line 227 of file G4Cons.hh.

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

G4double G4Cons::cosHDPhiIT
private

Definition at line 227 of file G4Cons.hh.

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

G4double G4Cons::cosHDPhiOT
private

Definition at line 227 of file G4Cons.hh.

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

G4double G4Cons::cosSPhi
private

Definition at line 227 of file G4Cons.hh.

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

G4bool G4Cons::fPhiFullCone
private
G4double G4Cons::halfAngTolerance
private

Definition at line 236 of file G4Cons.hh.

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

G4double G4Cons::halfCarTolerance
private

Definition at line 236 of file G4Cons.hh.

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

G4double G4Cons::halfRadTolerance
private

Definition at line 236 of file G4Cons.hh.

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

G4double G4Cons::kAngTolerance
private

Definition at line 219 of file G4Cons.hh.

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

G4double G4Cons::kRadTolerance
private

Definition at line 219 of file G4Cons.hh.

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

G4double G4Cons::sinCPhi
private

Definition at line 227 of file G4Cons.hh.

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

G4double G4Cons::sinEPhi
private

Definition at line 227 of file G4Cons.hh.

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

G4double G4Cons::sinSPhi
private

Definition at line 227 of file G4Cons.hh.

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


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