44#ifndef __G4TWISTTRAPPARALLELSIDE__
45#define __G4TWISTTRAPPARALLELSIDE__
99 virtual void SetCorners();
100 virtual void SetBoundaries();
165 return ( fDy2plus1 + fDy2minus1 * ( 2 * phi ) / fPhiTwist ) ;
171 return GetValueB(phi)/2. ;
175G4TwistTrapParallelSide::
180 G4ThreeVector SurfPoint ( u*std::cos(phi) - Xcoef(phi)*std::sin(phi)
181 + fdeltaX*phi/fPhiTwist,
182 u*std::sin(phi) + Xcoef(phi)*std::cos(phi)
183 + fdeltaY*phi/fPhiTwist,
184 2*fDz*phi/fPhiTwist );
185 if (isGlobal) {
return (
fRot * SurfPoint +
fTrans); }
193 return -(fPhiTwist*(fDx2 + fDx4 - fDy2plus1*fTAlph)
194 + 2*fDx4minus2*phi - 2*fDy2minus1*fTAlph*phi)/(2.*fPhiTwist) ;
200 return (fDx2 + fDx4 + fDy2plus1*fTAlph)/ 2.
201 + ((fDx4minus2 + fDy2minus1*fTAlph)*phi)/fPhiTwist ;
205G4double G4TwistTrapParallelSide::GetSurfaceArea()
207 return 2*fDx4plus2*fDz ;
217 2*fDz*std::cos(phi) ,
218 -(fDy2minus1 + fPhiTwist*u + fdeltaY*std::cos(phi)
219 -fdeltaX*std::sin(phi))) ;
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 ~G4TwistTrapParallelSide()