46 pDy1, pDx1, pDx1, pDy2, pDx2, pDx2,0.)
82 if (
this == &rhs) {
return *
this; }
100 os <<
"-----------------------------------------------------------\n"
101 <<
" *** Dump for solid - " <<
GetName() <<
" ***\n"
102 <<
" ===================================================\n"
103 <<
" Solid type: G4TwistedTrd\n"
111 <<
"-----------------------------------------------------------\n";
144 fCubicVolume = h*((x1 + x2)*(y1 + y2) + (x2 - x1)*(y2 - y1)/3.);
167 G4double hx = std::sqrt(delY*delY + hh);
168 G4double hy = std::sqrt(delX*delX + hh);
170 2.*(x1 + x2)*hx + 2.*(y1 + y2)*hy + 4.*(x1*y1 + x2*y2);
182 areaX = (U1*std::sqrt(hh + U1*U1) + hh*std::asinh(U1/h) -
183 V1*std::sqrt(hh +
V1*
V1) - hh*std::asinh(
V1/h))/ang;
188 areaX += ((hh + U2*U2)*std::sqrt(hh + U2*U2) -
189 (hh + U1*U1)*std::sqrt(hh + U1*U1))/3.
190 + hh*(U2*std::asinh(U2/h) - U1*std::asinh(U1/h))
191 - hh*(std::sqrt(hh + U2*U2) - std::sqrt(hh + U1*U1));
193 areaX += ((hh +
V2*
V2)*std::sqrt(hh +
V2*
V2) -
194 (hh +
V1*
V1)*std::sqrt(hh +
V1*
V1))/3.
195 + hh*(
V2*std::asinh(
V2/h) -
V1*std::asinh(
V1/h))
196 - hh*(std::sqrt(hh +
V2*
V2) - std::sqrt(hh +
V1*
V1));
197 areaX /= delX*ang*ang;
208 areaY = (U1*std::sqrt(hh + U1*U1) + hh*std::asinh(U1/h) -
209 V1*std::sqrt(hh +
V1*
V1) - hh*std::asinh(
V1/h))/ang;
214 areaY += ((hh + U2*U2)*std::sqrt(hh + U2*U2) -
215 (hh + U1*U1)*std::sqrt(hh + U1*U1))/3.
216 + hh*(U2*std::asinh(U2/h) - U1*std::asinh(U1/h))
217 - hh*(std::sqrt(hh + U2*U2) - std::sqrt(hh + U1*U1));
219 areaY += ((hh +
V2*
V2)*std::sqrt(hh +
V2*
V2) -
220 (hh +
V1*
V1)*std::sqrt(hh +
V1*
V1))/3.
221 + hh*(
V2*std::asinh(
V2/h) -
V1*std::asinh(
V1/h))
222 - hh*(std::sqrt(hh +
V2*
V2) - std::sqrt(hh +
V1*
V1));
223 areaY /= delY*ang*ang;
G4TwistedTrd & operator=(const G4TwistedTrd &rhs)
G4TwistedTrd(const G4String &pName, G4double pDx1, G4double pDx2, G4double pDy1, G4double pDy2, G4double pDz, G4double pPhiTwist)
G4double GetCubicVolume()
G4double GetX2HalfLength() const
G4double GetY2HalfLength() const
std::ostream & StreamInfo(std::ostream &os) const
G4double GetY1HalfLength() const
G4double GetZHalfLength() const
G4GeometryType GetEntityType() const
G4double GetPhiTwist() const
G4double GetX1HalfLength() const
G4double GetSurfaceArea()
G4VTwistedFaceted & operator=(const G4VTwistedFaceted &rhs)
G4Polyhedron * fpPolyhedron
virtual G4Polyhedron * GetPolyhedron() const