62#if defined(G4GEOM_USE_USOLIDS)
63#define G4GEOM_USE_UCONS 1
66#if defined(G4GEOM_USE_UCONS)
67 #define G4UCons G4Cons
184 const G4bool calcNorm =
false,
185 G4bool* validNorm =
nullptr,
209 std::ostream&
StreamInfo(std::ostream& os)
const override;
235 inline void Initialize();
240 inline void CheckSPhiAngle(
G4double sPhi);
241 inline void CheckDPhiAngle(
G4double dPhi);
247 inline void InitializeTrigonometry();
258 G4double kRadTolerance, kAngTolerance;
261 G4double fRmin1, fRmin2, fRmax1, fRmax2, fDz, fSPhi, fDPhi;
264 G4double sinCPhi, cosCPhi, cosHDPhi, cosHDPhiOT, cosHDPhiIT,
265 sinSPhi, cosSPhi, sinEPhi, cosEPhi;
268 G4bool fPhiFullCone =
false;
271 G4double halfCarTolerance, halfRadTolerance, halfAngTolerance;
CLHEP::Hep3Vector G4ThreeVector
G4CSGSolid(const G4String &pName)
G4double GetOuterRadiusPlusZ() const
void ComputeDimensions(G4VPVParameterisation *p, const G4int n, const G4VPhysicalVolume *pRep) override
G4double GetCosStartPhi() const
G4ThreeVector GetPointOnSurface() const override
void SetInnerRadiusPlusZ(G4double Rmin2)
void SetZHalfLength(G4double newDz)
G4double GetStartPhiAngle() const
EInside Inside(const G4ThreeVector &p) const override
G4double GetDeltaPhiAngle() const
void SetStartPhiAngle(G4double newSPhi, G4bool trig=true)
void BoundingLimits(G4ThreeVector &pMin, G4ThreeVector &pMax) const override
void SetOuterRadiusMinusZ(G4double Rmax1)
G4double GetInnerRadiusMinusZ() const
void SetOuterRadiusPlusZ(G4double Rmax2)
G4double GetCubicVolume() override
G4Polyhedron * CreatePolyhedron() const override
G4double GetInnerRadiusPlusZ() const
G4double DistanceToOut(const G4ThreeVector &p, const G4ThreeVector &v, const G4bool calcNorm=false, G4bool *validNorm=nullptr, G4ThreeVector *n=nullptr) const override
G4ThreeVector SurfaceNormal(const G4ThreeVector &p) const override
~G4Cons() override=default
G4double DistanceToIn(const G4ThreeVector &p, const G4ThreeVector &v) const override
void SetDeltaPhiAngle(G4double newDPhi)
G4bool CalculateExtent(const EAxis pAxis, const G4VoxelLimits &pVoxelLimit, const G4AffineTransform &pTransform, G4double &pMin, G4double &pMax) const override
void SetInnerRadiusMinusZ(G4double Rmin1)
G4double GetCosEndPhi() const
G4VSolid * Clone() const override
G4Cons(const G4String &pName, G4double pRmin1, G4double pRmax1, G4double pRmin2, G4double pRmax2, G4double pDz, G4double pSPhi, G4double pDPhi)
G4double GetOuterRadiusMinusZ() const
G4double GetSinEndPhi() const
std::ostream & StreamInfo(std::ostream &os) const override
G4Cons & operator=(const G4Cons &rhs)
G4double GetSinStartPhi() const
void DescribeYourselfTo(G4VGraphicsScene &scene) const override
G4double GetZHalfLength() const
G4Cons(const G4Cons &rhs)=default
G4double GetSurfaceArea() override
G4GeometryType GetEntityType() const override
G4VPVParameterisation ia an abstract base class for Parameterisation, able to compute the transformat...
G4VPhysicalVolume is an abstract base class for the representation of a positioned volume....
G4VSolid(const G4String &name)
G4VoxelLimits represents limitation/restrictions of space, where restrictions are only made perpendic...