File indexing completed on 2025-01-18 09:58:50
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029 inline
0030 G4double G4Para::GetZHalfLength() const
0031 {
0032 return fDz;
0033 }
0034
0035 inline
0036 G4ThreeVector G4Para::GetSymAxis() const
0037 {
0038 return G4ThreeVector(fTthetaCphi,fTthetaSphi,1.).unit();
0039 }
0040
0041 inline
0042 G4double G4Para::GetYHalfLength() const
0043 {
0044 return fDy;
0045 }
0046
0047 inline
0048 G4double G4Para::GetXHalfLength() const
0049 {
0050 return fDx;
0051 }
0052
0053 inline
0054 G4double G4Para::GetTanAlpha() const
0055 {
0056 return fTalpha;
0057 }
0058
0059 inline
0060 void G4Para::SetXHalfLength(G4double val)
0061 {
0062 fDx = val;
0063
0064 fCubicVolume = 0.;
0065 fSurfaceArea = 0.;
0066 fRebuildPolyhedron = true;
0067
0068 CheckParameters();
0069 MakePlanes();
0070 }
0071
0072 inline
0073 void G4Para::SetYHalfLength(G4double val)
0074 {
0075 fDy = val;
0076
0077 fCubicVolume = 0.;
0078 fSurfaceArea = 0.;
0079 fRebuildPolyhedron = true;
0080
0081 CheckParameters();
0082 MakePlanes();
0083 }
0084
0085 inline
0086 void G4Para::SetZHalfLength(G4double val)
0087 {
0088 fDz = val;
0089
0090 fCubicVolume = 0.;
0091 fSurfaceArea = 0.;
0092 fRebuildPolyhedron = true;
0093
0094 CheckParameters();
0095 MakePlanes();
0096 }
0097
0098 inline
0099 void G4Para::SetAlpha(G4double alpha)
0100 {
0101 fTalpha = std::tan(alpha);
0102
0103 fSurfaceArea = 0.;
0104 fCubicVolume = 0.;
0105 fRebuildPolyhedron = true;
0106
0107 MakePlanes();
0108 }
0109
0110 inline
0111 void G4Para::SetTanAlpha(G4double val)
0112 {
0113 fTalpha = val;
0114
0115 fCubicVolume = 0.;
0116 fSurfaceArea = 0.;
0117 fRebuildPolyhedron = true;
0118
0119 MakePlanes();
0120 }
0121
0122 inline
0123 void G4Para::SetThetaAndPhi(G4double pTheta, G4double pPhi)
0124 {
0125 G4double tanTheta = std::tan(pTheta);
0126 fTthetaCphi = tanTheta*std::cos(pPhi);
0127 fTthetaSphi = tanTheta*std::sin(pPhi);
0128
0129 fCubicVolume = 0.;
0130 fSurfaceArea = 0.;
0131 fRebuildPolyhedron = true;
0132
0133 MakePlanes();
0134 }
0135
0136 inline G4double G4Para::GetPhi() const
0137 {
0138 return std::atan2(fTthetaSphi,fTthetaCphi);
0139 }
0140
0141 inline G4double G4Para::GetTheta() const
0142 {
0143 return std::atan(std::sqrt(fTthetaCphi*fTthetaCphi
0144 +fTthetaSphi*fTthetaSphi));
0145 }
0146
0147 inline G4double G4Para::GetAlpha() const
0148 {
0149 return std::atan(fTalpha);
0150 }