Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions
G4UPolycone Class Reference

#include <G4UPolycone.hh>

Inheritance diagram for G4UPolycone:
G4USolid G4VSolid

Public Member Functions

 G4UPolycone (const G4String &name, G4double phiStart, G4double phiTotal, G4int numZPlanes, const G4double zPlane[], const G4double rInner[], const G4double rOuter[])
 
 G4UPolycone (const G4String &name, G4double phiStart, G4double phiTotal, G4int numRZ, const G4double r[], const G4double z[])
 
 ~G4UPolycone ()
 
void ComputeDimensions (G4VPVParameterisation *p, const G4int n, const G4VPhysicalVolume *pRep)
 
G4VSolid * Clone () const
 
UPolycone * GetShape () const
 
G4double GetStartPhi () const
 
G4double GetEndPhi () const
 
G4bool IsOpen () const
 
G4int GetNumRZCorner () const
 
G4PolyconeSideRZ GetCorner (G4int index) const
 
G4PolyconeHistorical * GetOriginalParameters () const
 
void SetOriginalParameters (G4PolyconeHistorical *pars)
 
G4bool Reset ()
 
 G4UPolycone (__void__ &)
 
 G4UPolycone (const G4UPolycone &source)
 
G4UPolycone & operator= (const G4UPolycone &source)
 
G4Polyhedron * CreatePolyhedron () const
 
- Public Member Functions inherited from G4USolid
 G4USolid (const G4String &pName, VUSolid *shape)
 
virtual ~G4USolid ()
 
G4bool operator== (const G4USolid &s) const
 
virtual G4bool CalculateExtent (const EAxis pAxis, const G4VoxelLimits &pVoxelLimit, const G4AffineTransform &pTransform, G4double &pMin, G4double &pMax) const
 
virtual EInside Inside (const G4ThreeVector &p) const
 
virtual G4ThreeVector SurfaceNormal (const G4ThreeVector &p) const
 
virtual G4double DistanceToIn (const G4ThreeVector &p, const G4ThreeVector &v) const
 
virtual G4double DistanceToIn (const G4ThreeVector &p) const
 
virtual G4double DistanceToOut (const G4ThreeVector &p, const G4ThreeVector &v, const G4bool calcNorm=false, G4bool *validNorm=0, G4ThreeVector *n=0) const
 
virtual G4double DistanceToOut (const G4ThreeVector &p) const
 
virtual G4double GetCubicVolume ()
 
virtual G4double GetSurfaceArea ()
 
virtual G4GeometryType GetEntityType () const
 
virtual G4ThreeVector GetPointOnSurface () const
 
virtual std::ostream & StreamInfo (std::ostream &os) const
 
virtual void DescribeYourselfTo (G4VGraphicsScene &scene) const
 
virtual G4VisExtent GetExtent () const
 
G4Polyhedron * CreatePolyhedron () const
 
virtual G4Polyhedron * GetPolyhedron () const
 
 G4USolid (__void__ &)
 
 G4USolid (const G4USolid &rhs)
 
G4USolid & operator= (const G4USolid &rhs)
 
VUSolid * GetSolid () const
 
- 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 const G4VSolid * GetConstituentSolid (G4int no) const
 
virtual G4VSolid * GetConstituentSolid (G4int no)
 
virtual const G4DisplacedSolid * GetDisplacedSolidPtr () const
 
virtual G4DisplacedSolid * GetDisplacedSolidPtr ()
 
 G4VSolid (__void__ &)
 
 G4VSolid (const G4VSolid &rhs)
 
G4VSolid & operator= (const G4VSolid &rhs)
 

Additional Inherited Members

- Protected Member Functions inherited from G4USolid
G4ThreeVectorList * CreateRotatedVertices (const G4AffineTransform &pT) 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
 
G4double EstimateCubicVolume (G4int nStat, G4double epsilon) const
 
G4double EstimateSurfaceArea (G4int nStat, G4double ell) const
 
- Protected Attributes inherited from G4USolid
VUSolid * fShape
 
G4Polyhedron * fPolyhedron
 
- Protected Attributes inherited from G4VSolid
G4double kCarTolerance
 

Detailed Description

Definition at line 51 of file G4UPolycone.hh.

Constructor & Destructor Documentation

G4UPolycone::G4UPolycone ( const G4String &  name,
G4double  phiStart,
G4double  phiTotal,
G4int  numZPlanes,
const G4double  zPlane[],
const G4double  rInner[],
const G4double  rOuter[] 
)

Definition at line 41 of file G4UPolycone.cc.

Referenced by Clone().

48  : G4USolid(name, new UPolycone(name, phiStart, phiTotal,
49  numZPlanes, zPlane, rInner, rOuter))
50 {
51 }
G4USolid(const G4String &pName, VUSolid *shape)
Definition: G4USolid.cc:44
G4UPolycone::G4UPolycone ( const G4String &  name,
G4double  phiStart,
G4double  phiTotal,
G4int  numRZ,
const G4double  r[],
const G4double  z[] 
)

Definition at line 58 of file G4UPolycone.cc.

64  : G4USolid(name, new UPolycone(name, phiStart, phiTotal, numRZ, r, z))
65 {
66 }
G4double z
Definition: TRTMaterials.hh:39
G4USolid(const G4String &pName, VUSolid *shape)
Definition: G4USolid.cc:44
G4UPolycone::~G4UPolycone ( )

Definition at line 84 of file G4UPolycone.cc.

85 {
86 }
G4UPolycone::G4UPolycone ( __void__ &  a)

Definition at line 74 of file G4UPolycone.cc.

75  : G4USolid(a)
76 {
77 }
G4USolid(const G4String &pName, VUSolid *shape)
Definition: G4USolid.cc:44
G4UPolycone::G4UPolycone ( const G4UPolycone &  source)

Definition at line 93 of file G4UPolycone.cc.

94  : G4USolid( source )
95 {
96 }
G4USolid(const G4String &pName, VUSolid *shape)
Definition: G4USolid.cc:44

Member Function Documentation

G4VSolid * G4UPolycone::Clone ( ) const
virtual

Reimplemented from G4USolid.

Definition at line 130 of file G4UPolycone.cc.

References G4UPolycone().

131 {
132  return new G4UPolycone(*this);
133 }
G4UPolycone(const G4String &name, G4double phiStart, G4double phiTotal, G4int numZPlanes, const G4double zPlane[], const G4double rInner[], const G4double rOuter[])
Definition: G4UPolycone.cc:41
void G4UPolycone::ComputeDimensions ( G4VPVParameterisation *  p,
const G4int  n,
const G4VPhysicalVolume *  pRep 
)
virtual

Reimplemented from G4USolid.

Definition at line 118 of file G4UPolycone.cc.

References G4VPVParameterisation::ComputeDimensions().

121 {
122  p->ComputeDimensions(*(G4Polycone*)this,n,pRep);
123 }
const G4int n
virtual void ComputeDimensions(G4Box &, const G4int, const G4VPhysicalVolume *) const
G4Polyhedron * G4UPolycone::CreatePolyhedron ( ) const
virtual

Reimplemented from G4VSolid.

Definition at line 140 of file G4UPolycone.cc.

References GetOriginalParameters(), G4PolyconeHistorical::Num_z_planes, G4PolyconeHistorical::Opening_angle, G4PolyconeHistorical::Rmax, G4PolyconeHistorical::Rmin, G4PolyconeHistorical::Start_angle, and G4PolyconeHistorical::Z_values.

141 {
142  G4PolyconeHistorical* original_parameters = GetOriginalParameters();
144  polyhedron = new G4PolyhedronPcon( original_parameters->Start_angle,
145  original_parameters->Opening_angle,
146  original_parameters->Num_z_planes,
147  original_parameters->Z_values,
148  original_parameters->Rmin,
149  original_parameters->Rmax );
150 
151  delete original_parameters; // delete local copy
152 
153  return polyhedron;
154 }
G4PolyconeHistorical * GetOriginalParameters() const
Definition: G4UPolycone.hh:137
G4PolyconeSideRZ G4UPolycone::GetCorner ( G4int  index) const
inline

Definition at line 130 of file G4UPolycone.hh.

References UPolycone::GetCorner(), GetShape(), UPolyconeSideRZ::r, and UPolyconeSideRZ::z.

131 {
132  UPolyconeSideRZ pside = GetShape()->GetCorner(index);
133  G4PolyconeSideRZ psiderz = { pside.r, pside.z };
134 
135  return psiderz;
136 }
UPolyconeSideRZ GetCorner(int index) const
Definition: UPolycone.hh:192
UPolycone * GetShape() const
Definition: G4UPolycone.hh:109
G4double G4UPolycone::GetEndPhi ( ) const
inline

Definition at line 118 of file G4UPolycone.hh.

References UPolycone::GetEndPhi(), and GetShape().

119 {
120  return GetShape()->GetEndPhi();
121 }
double GetEndPhi() const
Definition: UPolycone.hh:172
UPolycone * GetShape() const
Definition: G4UPolycone.hh:109
G4int G4UPolycone::GetNumRZCorner ( ) const
inline

Definition at line 126 of file G4UPolycone.hh.

References UPolycone::GetNumRZCorner(), and GetShape().

127 {
128  return GetShape()->GetNumRZCorner();
129 }
UPolycone * GetShape() const
Definition: G4UPolycone.hh:109
int GetNumRZCorner() const
Definition: UPolycone.hh:187
G4PolyconeHistorical * G4UPolycone::GetOriginalParameters ( ) const
inline

Definition at line 137 of file G4UPolycone.hh.

References UPolyconeHistorical::fNumZPlanes, UPolyconeHistorical::fOpeningAngle, UPolyconeHistorical::fStartAngle, UPolyconeHistorical::fZValues, UPolycone::GetOriginalParameters(), GetShape(), G4PolyconeHistorical::Opening_angle, G4PolyconeHistorical::Rmax, UPolyconeHistorical::Rmax, G4PolyconeHistorical::Rmin, UPolyconeHistorical::Rmin, G4PolyconeHistorical::Start_angle, and G4PolyconeHistorical::Z_values.

Referenced by CreatePolyhedron().

138 {
141  pdata->Start_angle = pars->fStartAngle;
142  pdata->Opening_angle = pars->fOpeningAngle;
143  for (G4int i=0; i<pars->fNumZPlanes; ++i)
144  {
145  pdata->Z_values[i] = pars->fZValues[i];
146  pdata->Rmin[i] = pars->Rmin[i];
147  pdata->Rmax[i] = pars->Rmax[i];
148  }
149  return pdata;
150 }
std::vector< double > Rmin
Definition: UPolycone.hh:65
std::vector< double > fZValues
Definition: UPolycone.hh:64
UPolyconeHistorical * GetOriginalParameters() const
Definition: UPolycone.hh:197
int G4int
Definition: G4Types.hh:78
std::vector< double > Rmax
Definition: UPolycone.hh:66
UPolycone * GetShape() const
Definition: G4UPolycone.hh:109
UPolycone * G4UPolycone::GetShape ( ) const
inline

Definition at line 109 of file G4UPolycone.hh.

References G4USolid::fShape.

Referenced by GetCorner(), GetEndPhi(), GetNumRZCorner(), GetOriginalParameters(), GetStartPhi(), IsOpen(), Reset(), and SetOriginalParameters().

110 {
111  return (UPolycone*) fShape;
112 }
VUSolid * fShape
Definition: G4USolid.hh:182
G4double G4UPolycone::GetStartPhi ( ) const
inline

Definition at line 114 of file G4UPolycone.hh.

References GetShape(), and UPolycone::GetStartPhi().

115 {
116  return GetShape()->GetStartPhi();
117 }
double GetStartPhi() const
Definition: UPolycone.hh:167
UPolycone * GetShape() const
Definition: G4UPolycone.hh:109
G4bool G4UPolycone::IsOpen ( ) const
inline

Definition at line 122 of file G4UPolycone.hh.

References GetShape(), and UPolycone::IsOpen().

123 {
124  return GetShape()->IsOpen();
125 }
bool IsOpen() const
Definition: UPolycone.hh:177
UPolycone * GetShape() const
Definition: G4UPolycone.hh:109
G4UPolycone & G4UPolycone::operator= ( const G4UPolycone &  source)

Definition at line 103 of file G4UPolycone.cc.

References G4USolid::operator=().

104 {
105  if (this == &source) return *this;
106 
107  G4USolid::operator=( source );
108 
109  return *this;
110 }
G4USolid & operator=(const G4USolid &rhs)
Definition: G4USolid.cc:370
G4bool G4UPolycone::Reset ( )
inline

Definition at line 165 of file G4UPolycone.hh.

References GetShape(), and UPolycone::Reset().

166 {
167  GetShape()->Reset();
168  return 0;
169 }
void Reset()
Definition: UPolycone.cc:1505
UPolycone * GetShape() const
Definition: G4UPolycone.hh:109
void G4UPolycone::SetOriginalParameters ( G4PolyconeHistorical *  pars)
inline

Definition at line 151 of file G4UPolycone.hh.

References UPolyconeHistorical::fNumZPlanes, UPolyconeHistorical::fOpeningAngle, G4USolid::fPolyhedron, UPolyconeHistorical::fStartAngle, UPolyconeHistorical::fZValues, UPolycone::GetOriginalParameters(), GetShape(), G4PolyconeHistorical::Num_z_planes, G4PolyconeHistorical::Opening_angle, G4PolyconeHistorical::Rmax, UPolyconeHistorical::Rmax, G4PolyconeHistorical::Rmin, UPolyconeHistorical::Rmin, G4PolyconeHistorical::Start_angle, and G4PolyconeHistorical::Z_values.

152 {
154  pdata->fStartAngle = pars->Start_angle;
155  pdata->fOpeningAngle = pars->Opening_angle;
156  pdata->fNumZPlanes = pars->Num_z_planes;
157  for (G4int i=0; i<pdata->fNumZPlanes; ++i)
158  {
159  pdata->fZValues[i] = pars->Z_values[i];
160  pdata->Rmin[i] = pars->Rmin[i];
161  pdata->Rmax[i] = pars->Rmax[i];
162  }
163  fPolyhedron = 0;
164 }
std::vector< double > Rmin
Definition: UPolycone.hh:65
std::vector< double > fZValues
Definition: UPolycone.hh:64
UPolyconeHistorical * GetOriginalParameters() const
Definition: UPolycone.hh:197
int G4int
Definition: G4Types.hh:78
std::vector< double > Rmax
Definition: UPolycone.hh:66
G4Polyhedron * fPolyhedron
Definition: G4USolid.hh:183
UPolycone * GetShape() const
Definition: G4UPolycone.hh:109

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