54 #ifndef __G4TWISTEDTUBS__
55 #define __G4TWISTEDTUBS__
134 std::ostream &
StreamInfo(std::ostream& os)
const;
257 if (
this == &r) {
return *
this; }
286 if (&r ==
this) {
return *
this; }
310 if (
this == &r) {
return *
this; }
333 if (
this == &r) {
return *
this; }
365 fEndZ[0] = negativeEndz;
366 fEndZ[1] = positiveEndz;
368 fEndZ2[1] = fEndZ[1] * fEndZ[1];
374 if (std::fabs(fEndZ[0]) >= std::fabs(fEndZ[1])) {
382 G4double innerNumerator = std::fabs(fInnerRadius * tanHalfTwist) *
parity;
383 G4double outerNumerator = std::fabs(fOuterRadius * tanHalfTwist) *
parity;
401 G4cout <<
"/********* G4TwistedTubs::SetFields() Field Parameters ***************** " <<
G4endl;
403 G4cout <<
"/* fEndZ(0, 1) : " << fEndZ[0] <<
" , " << fEndZ[1] <<
G4endl;
405 G4cout <<
"/* fInnerRadius, fOuterRadius : " << fInnerRadius <<
" , " << fOuterRadius <<
G4endl;
412 G4cout <<
"/*********************************************************************** " <<
G4endl;
LastValueWithDoubleVector & operator=(const LastValueWithDoubleVector &r)
LastVector(const LastVector &r)
G4double GetEndInnerRadius() const
static const G4double kInfinity
CLHEP::Hep3Vector G4ThreeVector
G4ThreeVector GetPointOnSurface() const
LastValueWithDoubleVector(const LastValueWithDoubleVector &r)
G4double GetEndPhi(G4int i) const
static void AddPolyToExtent(const G4ThreeVector &v0, const G4ThreeVector &v1, const G4ThreeVector &w1, const G4ThreeVector &w0, const G4VoxelLimits &voxellimit, const EAxis axis, G4SolidExtentList &extentlist)
std::ostream & StreamInfo(std::ostream &os) const
G4Polyhedron * CreatePolyhedron() const
G4VTwistSurface * fFormerTwisted
G4double GetOuterStereo() const
G4double fEndOuterRadius[2]
LastValueWithDoubleVector fLastDistanceToInWithV
LastValue fLastDistanceToIn
EInside Inside(const G4ThreeVector &p) const
G4double GetKappa() const
G4double GetInnerRadius() const
void ComputeDimensions(G4VPVParameterisation *, const G4int, const G4VPhysicalVolume *)
G4double GetEndOuterRadius(G4int i) const
G4double fEndInnerRadius[2]
G4GeometryType GetEntityType() const
G4VTwistSurface * fUpperEndcap
G4double GetEndOuterRadius() const
G4ThreeVector SurfaceNormal(const G4ThreeVector &p) const
G4double GetPhiTwist() const
G4VTwistSurface * fOuterHype
G4GLOB_DLL std::ostream G4cout
void DescribeYourselfTo(G4VGraphicsScene &scene) const
G4VTwistSurface ** surface
void SetFields(G4double phitwist, G4double innerrad, G4double outerrad, G4double negativeEndz, G4double positiveEndz)
G4double GetTanInnerStereo() const
G4bool fRebuildPolyhedron
LastValueWithDoubleVector fLastDistanceToOutWithV
G4double DistanceToOut(const G4ThreeVector &p, const G4ThreeVector &v, const G4bool calcnorm=G4bool(false), G4bool *validnorm=0, G4ThreeVector *n=0) const
LastVector & operator=(const LastVector &r)
G4double GetTanInnerStereo2() const
G4double GetSurfaceArea()
LastValue fLastDistanceToOut
G4double GetTanOuterStereo() const
G4double GetEndInnerRadius(G4int i) const
G4VTwistSurface * fLatterTwisted
G4double GetZHalfLength() const
LastValueWithDoubleVector()
G4double DistanceToIn(const G4ThreeVector &p, const G4ThreeVector &v) const
G4double GetEndZ(G4int i) const
G4VTwistSurface * fInnerHype
~LastValueWithDoubleVector()
LastValue & operator=(const LastValue &r)
G4double GetTanOuterStereo2() const
G4double fTanInnerStereo2
G4Polyhedron * fpPolyhedron
G4double GetInnerStereo() const
G4TwistedTubs(const G4String &pname, G4double twistedangle, G4double endinnerrad, G4double endouterrad, G4double halfzlen, G4double dphi)
G4double fTanOuterStereo2
G4double GetCubicVolume()
G4VTwistSurface * fLowerEndcap
G4VisExtent GetExtent() const
G4double GetOuterRadius() const
LastState & operator=(const LastState &r)
LastValue(const LastValue &r)
G4Polyhedron * GetPolyhedron() const
G4bool CalculateExtent(const EAxis paxis, const G4VoxelLimits &pvoxellimit, const G4AffineTransform &ptransform, G4double &pmin, G4double &pmax) const
G4TwistedTubs & operator=(const G4TwistedTubs &rhs)
LastState(const LastState &r)