54 #ifndef __G4TWISTEDTUBS__
55 #define __G4TWISTEDTUBS__
136 std::ostream &
StreamInfo(std::ostream& os)
const;
252 if (
this == &r) {
return *
this; }
281 if (&r ==
this) {
return *
this; }
305 if (
this == &r) {
return *
this; }
328 if (
this == &r) {
return *
this; }
360 fEndZ[0] = negativeEndz;
361 fEndZ[1] = positiveEndz;
363 fEndZ2[1] = fEndZ[1] * fEndZ[1];
369 if (std::fabs(fEndZ[0]) >= std::fabs(fEndZ[1])) {
377 G4double innerNumerator = std::fabs(fInnerRadius * tanHalfTwist) *
parity;
378 G4double outerNumerator = std::fabs(fOuterRadius * tanHalfTwist) *
parity;
396 G4cout <<
"/********* G4TwistedTubs::SetFields() Field Parameters ***************** " <<
G4endl;
398 G4cout <<
"/* fEndZ(0, 1) : " << fEndZ[0] <<
" , " << fEndZ[1] <<
G4endl;
400 G4cout <<
"/* fInnerRadius, fOuterRadius : " << fInnerRadius <<
" , " << fOuterRadius <<
G4endl;
407 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
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
G4bool CalculateExtent(const EAxis pAxis, const G4VoxelLimits &pVoxelLimit, const G4AffineTransform &pTransform, G4double &pMin, G4double &pMax) const
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
void Extent(G4ThreeVector &pMin, G4ThreeVector &pMax) 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
G4TwistedTubs & operator=(const G4TwistedTubs &rhs)
LastState(const LastState &r)