39#if ( defined(G4GEOM_USE_USOLIDS) || defined(G4GEOM_USE_PARTIAL_USOLIDS) )
41#include <VecGeom/volumes/UnplacedCone.h>
49class G4UCons :
public G4UAdapter<vecgeom::GenericUnplacedCone>
51 using Shape_t = vecgeom::GenericUnplacedCone;
52 using Base_t = G4UAdapter<vecgeom::GenericUnplacedCone>;
67 G4UCons(
const G4String& pName,
76 ~G4UCons()
override =
default;
82 void ComputeDimensions( G4VPVParameterisation* p,
84 const G4VPhysicalVolume* pRep )
override;
90 G4VSolid* Clone()
const override;
95 G4double GetInnerRadiusMinusZ()
const;
96 G4double GetOuterRadiusMinusZ()
const;
97 G4double GetInnerRadiusPlusZ()
const;
98 G4double GetOuterRadiusPlusZ()
const;
110 void SetInnerRadiusMinusZ (
G4double Rmin1 );
111 void SetOuterRadiusMinusZ (
G4double Rmax1 );
112 void SetInnerRadiusPlusZ (
G4double Rmin2 );
113 void SetOuterRadiusPlusZ (
G4double Rmax2 );
114 void SetZHalfLength (
G4double newDz );
116 void SetDeltaPhiAngle (
G4double newDPhi);
141 const G4VoxelLimits& pVoxelLimit,
142 const G4AffineTransform& pTransform,
148 G4Polyhedron* CreatePolyhedron()
const override;
153 G4UCons(
const G4UCons& rhs);
G4PVDivision & operator=(const G4PVDivision &)=delete
CLHEP::Hep3Vector G4ThreeVector