]> git.uio.no Git - u/mrichter/AliRoot.git/blame - GEANT321/ggeom/gtrain.F
Makefile added to PDF8
[u/mrichter/AliRoot.git] / GEANT321 / ggeom / gtrain.F
CommitLineData
fe4da5cc 1*
2* $Id$
3*
4* $Log$
5* Revision 1.1.1.1 1995/10/24 10:20:56 cernlib
6* Geant
7*
8*
9#include "geant321/pilot.h"
10*CMZ : 3.21/02 29/03/94 15.41.30 by S.Giani
11*-- Author :
12 SUBROUTINE GTRAIN(PARU,P)
13C.
14C. ******************************************************************
15C. * *
16C. * *
17C. * SUBROUTINE GTRAIN(PARU,P) *
18C. * Routine to convert from user supplied parameters PARU to *
19C. * internal parameters P for the twisted trapezoidal shape *
20C. * GTRA. *
21C. * Called by : GSPOSP, GSVOLU *
22C. * A.C.McPherson 22nd April 1985. *
23C. * *
24C. * *
25C. ******************************************************************
26C.
27#include "geant321/gconsp.inc"
28 DIMENSION PARU(12),P(30),CORN(3,8)
29C.
30C. -------------------------------------
31C.
32C First copy the 12 user parameters into the internal
33C parameter array.
34C
35 DO 10 I=1,12
36 P(I)=PARU(I)
37 10 CONTINUE
38C
39C Now some trignometrical quantities including the first
40C two extra parameters.
41C
42 P(13) = TAN(P(2)*DEGRAD)*COS(P(3)*DEGRAD)
43 P(14) = TAN(P(2)*DEGRAD)*SIN(P(3)*DEGRAD)
44 STWIS = SIN(P(4)*DEGRAD)
45 CTWIS = COS(P(4)*DEGRAD)
46 DXDY1 = TAN(P(8)*DEGRAD)
47 DXDY2 = TAN(P(12)*DEGRAD)
48C
49C Next the edges outside the constant z faces (derived
50C from the eight corner points).
51C
52 P(15) = (CTWIS*(P(5)*DXDY1+P(7)+P(9)*DXDY2+P(11)) +
53 +STWIS*(P(5)-P(9)))*0.5
54 P(16) = (CTWIS*(P(5)+P(9)) -
55 +STWIS*(P(5)*DXDY1+P(7)-P(9)*DXDY2-P(11)))*0.5
56 P(17) = P(13) - (CTWIS*(P(5)*DXDY1+P(7)-P(9)*DXDY2-P(11)) +
57 +STWIS*(P(5)+P(9)))*0.5/P(1)
58 P(18) = P(14) - (CTWIS*(P(5)-P(9)) -
59 +STWIS*(P(5)*DXDY1+P(7)+P(9)*DXDY2+P(11)))*0.5/P(1)
60C
61 P(19) = (CTWIS*(P(5)*DXDY1-P(7)+P(9)*DXDY2-P(11)) +
62 +STWIS*(P(5)-P(9)))*0.5
63 P(20) = (CTWIS*(P(5)+P(9)) -
64 +STWIS*(P(5)*DXDY1-P(7)-P(9)*DXDY2+P(11)))*0.5
65 P(21) = P(13) - (CTWIS*(P(5)*DXDY1-P(7)-P(9)*DXDY2+P(11)) +
66 +STWIS*(P(5)+P(9)))*0.5/P(1)
67 P(22) = P(14) - (CTWIS*(P(5)-P(9)) -
68 +STWIS*(P(5)*DXDY1-P(7)+P(9)*DXDY2-P(11)))*0.5/P(1)
69C
70 P(23) = -(CTWIS*(P(5)*DXDY1+P(6)+P(9)*DXDY2+P(10)) +
71 +STWIS*(P(5)-P(9)))*0.5
72 P(24) = -(CTWIS*(P(5)+P(9)) -
73 +STWIS*(P(5)*DXDY1+P(6)-P(9)*DXDY2-P(10)))*0.5
74 P(25) = P(13) + (CTWIS*(P(5)*DXDY1+P(6)-P(9)*DXDY2-P(10)) +
75 +STWIS*(P(5)+P(9)))*0.5/P(1)
76 P(26) = P(14) + (CTWIS*(P(5)-P(9)) -
77 +STWIS*(P(5)*DXDY1+P(6)+P(9)*DXDY2+P(10)))*0.5/P(1)
78C
79 P(27) = -(CTWIS*(P(5)*DXDY1-P(6)+P(9)*DXDY2-P(10)) +
80 +STWIS*(P(5)-P(9)))*0.5
81 P(28) = -(CTWIS*(P(5)+P(9)) -
82 +STWIS*(P(5)*DXDY1-P(6)-P(9)*DXDY2+P(10)))*0.5
83 P(29) = P(13) + (CTWIS*(P(5)*DXDY1-P(6)-P(9)*DXDY2+P(10)) +
84 +STWIS*(P(5)+P(9)))*0.5/P(1)
85 P(30) = P(14) + (CTWIS*(P(5)-P(9)) -
86 +STWIS*(P(5)*DXDY1-P(6)+P(9)*DXDY2-P(10)))*0.5/P(1)
87C
88C All done.
89C
90 DO 970 IL=1,4
91 I0=IL*4+11
92 CORN(3,IL)=-P(1)
93 CORN(1,IL)=P(I0)+P(I0+2)*CORN(3,IL)
94 CORN(2,IL)=P(I0+1)+P(I0+3)*CORN(3,IL)
95 CORN(3,IL+4)=P(1)
96 CORN(1,IL+4)=P(I0)+P(I0+2)*CORN(3,IL+4)
97 CORN(2,IL+4)=P(I0+1)+P(I0+3)*CORN(3,IL+4)
98 970 CONTINUE
99C
100#if defined(CERNLIB_DEBUG)
101C WRITE(CHMAIL,1000) P,CORN
102C CALL GMAIL(0,0)
103C 1000 FORMAT(' P =',10F10.4,/,4X,10F10.4,/,4X,10F10.4,/,' CORN =',
104C +3F10.4,7X,3F10.4,3(/,7X,3F10.4,7X,3F10.4))
105#endif
106C
107 RETURN
108 END