Geant4 11.4.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4TwistedTrap Class Reference

G4TwistedTrap is a general twisted trapezoid. The faces perpendicular to the Z planes are trapezia, and their centres are not necessarily on a line parallel to the Z axis. More...

#include <G4TwistedTrap.hh>

Inheritance diagram for G4TwistedTrap:

Public Member Functions

 G4TwistedTrap (const G4String &pName, G4double pPhiTwist, G4double pDx1, G4double pDx2, G4double pDy, G4double pDz)
 G4TwistedTrap (const G4String &pName, G4double pPhiTwist, G4double pDz, G4double pTheta, G4double pPhi, G4double pDy1, G4double pDx1, G4double pDx2, G4double pDy2, G4double pDx3, G4double pDx4, G4double pAlph)
 ~G4TwistedTrap () override=default
G4double GetY1HalfLength () const
G4double GetX1HalfLength () const
G4double GetX2HalfLength () const
G4double GetY2HalfLength () const
G4double GetX3HalfLength () const
G4double GetX4HalfLength () const
G4double GetZHalfLength () const
G4double GetPhiTwist () const
G4double GetTiltAngleAlpha () const
G4double GetPolarAngleTheta () const
G4double GetAzimuthalAnglePhi () const
G4GeometryType GetEntityType () const override
G4VSolidClone () const override
std::ostream & StreamInfo (std::ostream &os) const override
 G4TwistedTrap (__void__ &)
 G4TwistedTrap (const G4TwistedTrap &rhs)
G4TwistedTrapoperator= (const G4TwistedTrap &rhs)
Public Member Functions inherited from G4VTwistedFaceted
 G4VTwistedFaceted (const G4String &pname, G4double PhiTwist, G4double pDz, G4double pTheta, G4double pPhi, G4double pDy1, G4double pDx1, G4double pDx2, G4double pDy2, G4double pDx3, G4double pDx4, G4double pAlph)
 ~G4VTwistedFaceted () override
void ComputeDimensions (G4VPVParameterisation *, const G4int, const G4VPhysicalVolume *) override
void BoundingLimits (G4ThreeVector &pMin, G4ThreeVector &pMax) const override
G4bool CalculateExtent (const EAxis pAxis, const G4VoxelLimits &pVoxelLimit, const G4AffineTransform &pTransform, G4double &pMin, G4double &pMax) const override
G4double DistanceToIn (const G4ThreeVector &p, const G4ThreeVector &v) const override
G4double DistanceToIn (const G4ThreeVector &p) const override
G4double DistanceToOut (const G4ThreeVector &p, const G4ThreeVector &v, const G4bool calcnorm=false, G4bool *validnorm=nullptr, G4ThreeVector *n=nullptr) const override
G4double DistanceToOut (const G4ThreeVector &p) const override
EInside Inside (const G4ThreeVector &p) const override
G4ThreeVector SurfaceNormal (const G4ThreeVector &p) const override
G4ThreeVector GetPointOnSurface () const override
G4double GetCubicVolume () override
G4double GetSurfaceArea () override
void DescribeYourselfTo (G4VGraphicsScene &scene) const override
G4PolyhedronCreatePolyhedron () const override
G4PolyhedronGetPolyhedron () const override
G4VisExtent GetExtent () const override
std::ostream & StreamInfo (std::ostream &os) const override
G4double GetTwistAngle () const
G4double GetDx1 () const
G4double GetDx2 () const
G4double GetDx3 () const
G4double GetDx4 () const
G4double GetDy1 () const
G4double GetDy2 () const
G4double GetDz () const
G4double GetPhi () const
G4double GetTheta () const
G4double GetAlpha () const
G4double Xcoef (G4double u, G4double phi, G4double ftg) const
G4double GetValueA (G4double phi) const
G4double GetValueB (G4double phi) const
G4double GetValueD (G4double phi) const
G4GeometryType GetEntityType () const override
 G4VTwistedFaceted (__void__ &)
 G4VTwistedFaceted (const G4VTwistedFaceted &rhs)
G4VTwistedFacetedoperator= (const G4VTwistedFaceted &rhs)
Public Member Functions inherited from G4VSolid
 G4VSolid (const G4String &name)
virtual ~G4VSolid ()
 G4VSolid (const G4VSolid &rhs)
G4VSolidoperator= (const G4VSolid &rhs)
G4bool operator== (const G4VSolid &s) const
G4String GetName () const
void SetName (const G4String &name)
G4double GetTolerance () const
virtual G4int GetNumOfConstituents () const
virtual G4bool IsFaceted () const
void DumpInfo () const
virtual const G4VSolidGetConstituentSolid (G4int no) const
virtual G4VSolidGetConstituentSolid (G4int no)
virtual const G4DisplacedSolidGetDisplacedSolidPtr () const
virtual G4DisplacedSolidGetDisplacedSolidPtr ()
 G4VSolid (__void__ &)
G4double EstimateCubicVolume (G4int nStat, G4double epsilon) const
G4double EstimateSurfaceArea (G4int nStat, G4double epsilon) const

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 G4VTwistedFaceted
G4bool fRebuildPolyhedron = false
G4PolyhedronfpPolyhedron = nullptr
G4double fCubicVolume = 0.0
G4double fSurfaceArea = 0.0
Protected Attributes inherited from G4VSolid
G4double kCarTolerance

Detailed Description

G4TwistedTrap is a general twisted trapezoid. The faces perpendicular to the Z planes are trapezia, and their centres are not necessarily on a line parallel to the Z axis.

Definition at line 66 of file G4TwistedTrap.hh.

Constructor & Destructor Documentation

◆ G4TwistedTrap() [1/4]

G4TwistedTrap::G4TwistedTrap ( const G4String & pName,
G4double pPhiTwist,
G4double pDx1,
G4double pDx2,
G4double pDy,
G4double pDz )

Constructs a twisted trapezoid, given its parameters.

Parameters
[in]pNameThe solid name.
[in]pPhiTwistThe twist angle.
[in]pDx1Half X length at -pDz,-pDy.
[in]pDx2Half X length at -pDz,+pDy.
[in]pDyHalf-length along the Y axis.
[in]pDzHalf-length along the Z axis.

Definition at line 38 of file G4TwistedTrap.cc.

44 : G4VTwistedFaceted( pName, pPhiTwist,pDz,0.,0.,
45 pDy, pDx1, pDx2, pDy, pDx1, pDx2,0. )
46{
47}
G4VTwistedFaceted(const G4String &pname, G4double PhiTwist, G4double pDz, G4double pTheta, G4double pPhi, G4double pDy1, G4double pDx1, G4double pDx2, G4double pDy2, G4double pDx3, G4double pDx4, G4double pAlph)

Referenced by Clone(), G4TwistedTrap(), and operator=().

◆ G4TwistedTrap() [2/4]

G4TwistedTrap::G4TwistedTrap ( const G4String & pName,
G4double pPhiTwist,
G4double pDz,
G4double pTheta,
G4double pPhi,
G4double pDy1,
G4double pDx1,
G4double pDx2,
G4double pDy2,
G4double pDx3,
G4double pDx4,
G4double pAlph )

Alternative construct of a twisted trapezoid, given its parameters.

Parameters
[in]pNameThe solid name.
[in]pPhiTwistThe twist angle.
[in]pDzHalf-length along the Z axis.
[in]pThetaPolar angle of the line joining the centres of the faces at -/+pDz.
[in]pPhiAzimuthal angle of the line joining the centres of the faces at -/+pDz.
[in]pDy1Half Y length at -pDz.
[in]pDx1Half X length at -pDz, y=-pDy1.
[in]pDx2Half X length at -pDz, y=+pDy1.
[in]pDy2Half Y length at +pDz.
[in]pDx3Half X length at +pDz, y=-pDy2.
[in]pDx4Half X length at +pDz, y=+pDy2.
[in]pAlphAngle with respect to the Y axis from centre of side.

Definition at line 49 of file G4TwistedTrap.cc.

62 : G4VTwistedFaceted( pName, pPhiTwist, pDz, pTheta,
63 pPhi, pDy1, pDx1, pDx2, pDy2, pDx3, pDx4, pAlph )
64{
65}

◆ ~G4TwistedTrap()

G4TwistedTrap::~G4TwistedTrap ( )
overridedefault

Default destructor.

◆ G4TwistedTrap() [3/4]

G4TwistedTrap::G4TwistedTrap ( __void__ & a)

Fake default constructor for usage restricted to direct object persistency for clients requiring preallocation of memory for persistifiable objects.

Definition at line 71 of file G4TwistedTrap.cc.

73{
74}

◆ G4TwistedTrap() [4/4]

G4TwistedTrap::G4TwistedTrap ( const G4TwistedTrap & rhs)

Copy constructor and assignment operator.

Definition at line 79 of file G4TwistedTrap.cc.

81{
83}
G4Polyhedron * GetPolyhedron() const override
G4Polyhedron * fpPolyhedron

Member Function Documentation

◆ Clone()

G4VSolid * G4TwistedTrap::Clone ( ) const
overridevirtual

Makes a clone of the object for use in multi-treading.

Returns
A pointer to the new cloned allocated solid.

Reimplemented from G4VSolid.

Definition at line 146 of file G4TwistedTrap.cc.

147{
148 return new G4TwistedTrap(*this);
149}
G4TwistedTrap(const G4String &pName, G4double pPhiTwist, G4double pDx1, G4double pDx2, G4double pDy, G4double pDz)

◆ GetAzimuthalAnglePhi()

G4double G4TwistedTrap::GetAzimuthalAnglePhi ( ) const
inline

Definition at line 135 of file G4TwistedTrap.hh.

135{ return GetPhi() ; }
G4double GetPhi() const

Referenced by G4tgbGeometryDumper::GetSolidParams(), StreamInfo(), and G4GDMLWriteSolids::TwistedtrapWrite().

◆ GetEntityType()

G4GeometryType G4TwistedTrap::GetEntityType ( ) const
overridevirtual

Returns the type ID, "G4TwistedTrap" of the solid.

Implements G4VSolid.

Definition at line 138 of file G4TwistedTrap.cc.

139{
140 return {"G4TwistedTrap"};
141}

◆ GetPhiTwist()

G4double G4TwistedTrap::GetPhiTwist ( ) const
inline

Definition at line 132 of file G4TwistedTrap.hh.

132{ return GetTwistAngle() ; }
G4double GetTwistAngle() const

Referenced by G4tgbGeometryDumper::GetSolidParams(), StreamInfo(), and G4GDMLWriteSolids::TwistedtrapWrite().

◆ GetPolarAngleTheta()

G4double G4TwistedTrap::GetPolarAngleTheta ( ) const
inline

Definition at line 134 of file G4TwistedTrap.hh.

134{ return GetTheta() ; }
G4double GetTheta() const

Referenced by G4tgbGeometryDumper::GetSolidParams(), StreamInfo(), and G4GDMLWriteSolids::TwistedtrapWrite().

◆ GetTiltAngleAlpha()

G4double G4TwistedTrap::GetTiltAngleAlpha ( ) const
inline

Definition at line 133 of file G4TwistedTrap.hh.

133{ return GetAlpha() ; }
G4double GetAlpha() const

Referenced by G4tgbGeometryDumper::GetSolidParams(), StreamInfo(), and G4GDMLWriteSolids::TwistedtrapWrite().

◆ GetX1HalfLength()

G4double G4TwistedTrap::GetX1HalfLength ( ) const
inline

Definition at line 126 of file G4TwistedTrap.hh.

126{ return GetDx1() ; }
G4double GetDx1() const

Referenced by G4tgbGeometryDumper::GetSolidParams(), StreamInfo(), and G4GDMLWriteSolids::TwistedtrapWrite().

◆ GetX2HalfLength()

G4double G4TwistedTrap::GetX2HalfLength ( ) const
inline

Definition at line 127 of file G4TwistedTrap.hh.

127{ return GetDx2() ; }
G4double GetDx2() const

Referenced by G4tgbGeometryDumper::GetSolidParams(), StreamInfo(), and G4GDMLWriteSolids::TwistedtrapWrite().

◆ GetX3HalfLength()

G4double G4TwistedTrap::GetX3HalfLength ( ) const
inline

Definition at line 129 of file G4TwistedTrap.hh.

129{ return GetDx3() ; }
G4double GetDx3() const

Referenced by G4tgbGeometryDumper::GetSolidParams(), StreamInfo(), and G4GDMLWriteSolids::TwistedtrapWrite().

◆ GetX4HalfLength()

G4double G4TwistedTrap::GetX4HalfLength ( ) const
inline

Definition at line 130 of file G4TwistedTrap.hh.

130{ return GetDx4() ; }
G4double GetDx4() const

Referenced by G4tgbGeometryDumper::GetSolidParams(), StreamInfo(), and G4GDMLWriteSolids::TwistedtrapWrite().

◆ GetY1HalfLength()

G4double G4TwistedTrap::GetY1HalfLength ( ) const
inline

Accessors.

Definition at line 125 of file G4TwistedTrap.hh.

125{ return GetDy1() ; }
G4double GetDy1() const

Referenced by G4tgbGeometryDumper::GetSolidParams(), StreamInfo(), and G4GDMLWriteSolids::TwistedtrapWrite().

◆ GetY2HalfLength()

G4double G4TwistedTrap::GetY2HalfLength ( ) const
inline

Definition at line 128 of file G4TwistedTrap.hh.

128{ return GetDy2() ; }
G4double GetDy2() const

Referenced by G4tgbGeometryDumper::GetSolidParams(), StreamInfo(), and G4GDMLWriteSolids::TwistedtrapWrite().

◆ GetZHalfLength()

G4double G4TwistedTrap::GetZHalfLength ( ) const
inline

Definition at line 131 of file G4TwistedTrap.hh.

131{ return GetDz() ; }
G4double GetDz() const

Referenced by G4tgbGeometryDumper::GetSolidParams(), StreamInfo(), and G4GDMLWriteSolids::TwistedtrapWrite().

◆ operator=()

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

Definition at line 88 of file G4TwistedTrap.cc.

89{
90 // Check assignment to self
91 //
92 if (this == &rhs) { return *this; }
93
94 // Copy base class data
95 //
98
99 return *this;
100}
G4VTwistedFaceted & operator=(const G4VTwistedFaceted &rhs)

◆ StreamInfo()

std::ostream & G4TwistedTrap::StreamInfo ( std::ostream & os) const
overridevirtual

Streams the object contents to an output stream.

Implements G4VSolid.

Definition at line 105 of file G4TwistedTrap.cc.

106{
107 //
108 // Stream object contents to an output stream
109 //
110 os << "-----------------------------------------------------------\n"
111 << " *** Dump for solid - " << GetName() << " ***\n"
112 << " ===================================================\n"
113 << " Solid type: G4TwistedTrap\n"
114 << " Parameters: \n"
115 << " Twist angle = " << GetPhiTwist()/degree << " deg"
116 << G4endl
117 << " Polar Angle Theta = " << GetPolarAngleTheta()/degree << " deg"
118 << G4endl
119 << " Azimuthal Angle Phi = " << GetAzimuthalAnglePhi()/degree << " deg"
120 << G4endl
121 << " pDy1 = " << GetY1HalfLength()/cm << " cm" << G4endl
122 << " pDx1 = " << GetX1HalfLength()/cm << " cm" << G4endl
123 << " pDx2 = " << GetX2HalfLength()/cm << " cm" << G4endl
124 << " pDy2 = " << GetY2HalfLength()/cm << " cm" << G4endl
125 << " pDx3 = " << GetX3HalfLength()/cm << " cm" << G4endl
126 << " pDx4 = " << GetX4HalfLength()/cm << " cm" << G4endl
127 << " pDz = " << GetZHalfLength()/cm << " cm" << G4endl
128 << " Tilt Angle Alpha = " << GetTiltAngleAlpha()/degree << " deg"
129 << G4endl
130 << "-----------------------------------------------------------\n";
131
132 return os;
133}
#define G4endl
Definition G4ios.hh:67
G4double GetPolarAngleTheta() const
G4double GetAzimuthalAnglePhi() const
G4double GetTiltAngleAlpha() const
G4double GetZHalfLength() const
G4double GetX1HalfLength() const
G4double GetX2HalfLength() const
G4double GetX3HalfLength() const
G4double GetX4HalfLength() const
G4double GetY2HalfLength() const
G4double GetPhiTwist() const
G4double GetY1HalfLength() const
G4String GetName() const

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