00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042 #include "G4TwistedTrap.hh"
00043 #include "G4SystemOfUnits.hh"
00044 #include "G4Polyhedron.hh"
00045
00046 G4TwistedTrap::G4TwistedTrap( const G4String &pName,
00047 G4double pPhiTwist,
00048 G4double pDx1,
00049 G4double pDx2,
00050 G4double pDy,
00051 G4double pDz)
00052 : G4VTwistedFaceted( pName, pPhiTwist,pDz,0.,0.,
00053 pDy, pDx1, pDx2, pDy, pDx1, pDx2,0. )
00054 {
00055 }
00056
00057 G4TwistedTrap::
00058 G4TwistedTrap(const G4String &pName,
00059 G4double pPhiTwist,
00060 G4double pDz,
00061 G4double pTheta,
00062 G4double pPhi,
00063 G4double pDy1,
00064 G4double pDx1,
00065 G4double pDx2,
00066 G4double pDy2,
00067 G4double pDx3,
00068 G4double pDx4,
00069 G4double pAlph
00070 )
00071 : G4VTwistedFaceted( pName, pPhiTwist, pDz, pTheta,
00072 pPhi, pDy1, pDx1, pDx2, pDy2, pDx3, pDx4, pAlph )
00073 {
00074 }
00075
00076
00077
00078
00079 G4TwistedTrap::G4TwistedTrap( __void__& a )
00080 : G4VTwistedFaceted(a)
00081 {
00082 }
00083
00084 G4TwistedTrap::~G4TwistedTrap()
00085 {
00086 }
00087
00088
00089
00090 G4TwistedTrap::G4TwistedTrap(const G4TwistedTrap& rhs)
00091 : G4VTwistedFaceted(rhs)
00092 {
00093 }
00094
00095
00096
00097 G4TwistedTrap& G4TwistedTrap::operator = (const G4TwistedTrap& rhs)
00098 {
00099
00100
00101 if (this == &rhs) { return *this; }
00102
00103
00104
00105 G4VTwistedFaceted::operator=(rhs);
00106
00107 return *this;
00108 }
00109
00110 std::ostream& G4TwistedTrap::StreamInfo(std::ostream& os) const
00111 {
00112
00113
00114
00115 os << "-----------------------------------------------------------\n"
00116 << " *** Dump for solid - " << GetName() << " ***\n"
00117 << " ===================================================\n"
00118 << " Solid type: G4TwistedTrap\n"
00119 << " Parameters: \n"
00120 << " Twist angle = " << GetPhiTwist()/degree << " deg"
00121 << G4endl
00122 << " Polar Angle Theta = " << GetPolarAngleTheta()/degree << " deg"
00123 << G4endl
00124 << " Azimuthal Angle Phi = " << GetAzimuthalAnglePhi()/degree << " deg"
00125 << G4endl
00126 << " pDy1 = " << GetY1HalfLength()/cm << " cm" << G4endl
00127 << " pDx1 = " << GetX1HalfLength()/cm << " cm" << G4endl
00128 << " pDx2 = " << GetX2HalfLength()/cm << " cm" << G4endl
00129 << " pDy2 = " << GetY2HalfLength()/cm << " cm" << G4endl
00130 << " pDx3 = " << GetX3HalfLength()/cm << " cm" << G4endl
00131 << " pDx4 = " << GetX4HalfLength()/cm << " cm" << G4endl
00132 << " pDz = " << GetZHalfLength()/cm << " cm" << G4endl
00133 << " Tilt Angle Alpha = " << GetTiltAngleAlpha()/degree << " deg"
00134 << G4endl
00135 << "-----------------------------------------------------------\n";
00136
00137 return os;
00138 }
00139
00140
00141
00142
00143
00144 G4GeometryType G4TwistedTrap::GetEntityType() const
00145 {
00146 return G4String("G4TwistedTrap");
00147 }
00148
00149
00150
00151
00152 G4VSolid* G4TwistedTrap::Clone() const
00153 {
00154 return new G4TwistedTrap(*this);
00155 }