36#ifndef G4TWISTTUBSHYPESIDE_HH
37#define G4TWISTTUBSHYPESIDE_HH
50 const G4int handedness,
94 G4bool isglobal =
false)
const ;
166 G4ThreeVector SurfPoint (rho*std::cos(phi), rho*std::sin(phi), z) ;
168 if (isGlobal) {
return (
fRot * SurfPoint +
fTrans); }
178 return std::atan2( lowerlimit.
y(), lowerlimit.
x() ) ;
187 return std::atan2( upperlimit.
y(), upperlimit.
x() ) ;
static constexpr double m
HepRotation inverse() const
virtual G4ThreeVector GetNormal(const G4ThreeVector &xx, G4bool isGlobal=false)
virtual G4int DistanceToSurface(const G4ThreeVector &gp, const G4ThreeVector &gv, G4ThreeVector gxx[], G4double distance[], G4int areacode[], G4bool isvalid[], EValidate validate=kValidateWithTol)
virtual void SetBoundaries()
virtual G4double GetBoundaryMin(G4double phi)
virtual EInside Inside(const G4ThreeVector &gp)
virtual void SetCorners()
virtual G4int GetAreaCode(const G4ThreeVector &xx, G4bool withTol=true)
virtual G4ThreeVector SurfacePoint(G4double, G4double, G4bool isGlobal=false)
G4TwistTubsHypeSide(const G4String &name, const G4RotationMatrix &rot, const G4ThreeVector &tlate, const G4int handedness, const G4double kappa, const G4double tanstereo, const G4double r0, const EAxis axis0=kPhi, const EAxis axis1=kZAxis, G4double axis0min=-kInfinity, G4double axis1min=-kInfinity, G4double axis0max=kInfinity, G4double axis1max=kInfinity)
virtual void GetFacets(G4int m, G4int n, G4double xyz[][3], G4int faces[][4], G4int iside)
virtual ~G4TwistTubsHypeSide()
virtual G4double GetRhoAtPZ(const G4ThreeVector &p, G4bool isglobal=false) const
virtual G4int GetAreaCodeInPhi(const G4ThreeVector &xx, G4bool withTol=true)
virtual G4double GetSurfaceArea()
virtual G4double GetBoundaryMax(G4double phi)
static const G4int sAxisMax
static const G4int sAxis0
static const G4int sAxisMin
virtual G4ThreeVector GetBoundaryAtPZ(G4int areacode, const G4ThreeVector &p) const
static const G4double kInfinity
const char * name(G4int ptype)