83 TGTRA::TGTRA (
const char *name,
const char *title,
const char *material, Float_t dz, Float_t theta,
84 Float_t phi, Float_t twist, Float_t h1, Float_t bl1, Float_t tl1, Float_t alpha1,
85 Float_t h2, Float_t bl2, Float_t tl2, Float_t alpha2)
86 : TBRIK (name, title, material, theta, phi, dz)
109 void TGTRA::SetPoints (Double_t *points)
const
111 Double_t x, y, dx, dy, dx1, dx2, dz, theta, phi, alpha1, alpha2, twist;
112 const Float_t pi = Float_t (TMath::Pi());
114 alpha1 = fAlpha1 * pi/180.0;
115 alpha2 = fAlpha2 * pi/180.0;
116 theta = TBRIK::fDx * pi/180.0;
117 phi = TBRIK::fDy * pi/180.0;
118 twist = fTwist * pi/180.0;
120 dx = 2*fDz*TMath::Sin(theta)*TMath::Cos(phi);
121 dy = 2*fDz*TMath::Sin(theta)*TMath::Sin(phi);
124 dx1 = 2*fH1*TMath::Tan(alpha1);
125 dx2 = 2*fH2*TMath::Tan(alpha2);
128 points[ 0] = -fBl1; points[ 1] = -fH1; points[ 2] = -dz;
129 points[ 9] = fBl1; points[10] = -fH1; points[11] = -dz;
130 points[ 6] = fTl1+dx1; points[ 7] = fH1; points[ 8] = -dz;
131 points[ 3] = -fTl1+dx1; points[4] = fH1; points[5] = -dz;
132 points[12] = -fBl2+dx; points[13] = -fH2+dy; points[14] = dz;
133 points[21] = fBl2+dx; points[22] = -fH2+dy; points[23] = dz;
134 points[18] = fTl2+dx+dx2; points[19] = fH2+dy; points[20] = dz;
135 points[15] = -fTl2+dx+dx2; points[16] = fH2+dy; points[17] = dz;
136 for (Int_t i = 12; i < 24; i+=3) {
139 points[i] = x*TMath::Cos(twist) + y*TMath::Sin(twist);
140 points[i+1] = -x*TMath::Sin(twist) + y*TMath::Cos(twist);