/[PAMELA software]/gpamela/gpcard/gpcardv.F
ViewVC logotype

Diff of /gpamela/gpcard/gpcardv.F

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1 by cafagna, Sun Apr 9 23:28:47 2006 UTC revision 1.3 by cafagna, Sun Dec 17 14:53:05 2006 UTC
# Line 4  Line 4 
4  * Volumes definition for the side anticoincidence counters             *  * Volumes definition for the side anticoincidence counters             *
5  * Called by: GPGEO                                                     *  * Called by: GPGEO                                                     *
6  *                                                                      *  *                                                                      *
7  * Author: Francesco Cafagna, 08/02/96 16.58.49                         *  * Authors: Francesco Cafagna, 08/02/96 16.58.49                        *
8    *          Alessandro Bruno, 20/11/06 20.30.00                         *
9  *                                                                      *  *                                                                      *
10  ************************************************************************  ************************************************************************
11  #include "gconst.inc"  #include "gconst.inc"
12  #include "gpgeo.inc"  #include "gpgeo.inc"
13  #include "gpmed.inc"  #include "gpmed.inc"
14  #include "gprot.inc"  #include "gprot.inc"
15        INTEGER IROT,IVOLU,N,NMED,NUM        INTEGER IROT,IVOLU,N,NMED,NUM,I
16        REAL X,Y,Z        REAL X,Y,Z
17        REAL CAR1(11),CR1P(11)        REAL ANGLCAR1,ANGLCAR2
18        REAL C1D1(11),C1N1(11),C1N2(11)        REAL H1,H2
19        REAL CAR2(11),CR2P(11)        REAL A1,B1,C1,D1,F1,ANG1C
20        REAL C2D1(11),C2N1(11),C2N2(11)        REAL A2,B2,C2,D2,F2,ANG2C
21        REAL CAR1H,CAR1D,CAR1U,CAR1T        REAL AA,BB,DD,ZH
22        REAL CAR2H,CAR2D,CAR2U,CAR2T  *
23        REAL BETA, ALPHA, ANGLCAR1, ANGLCAR2        H1=CAR(2)+CAR(3)
24          H2=CAR(1)-H1
25    *
26    * Greater Scintillator CAR1 (or type B)
27    *          
28          B1=CARB(2)+CAR(4)+CAR(5)+H1/TAN(DEGRAD*CAR(7))
29          C1=H2/TAN(DEGRAD*CAR(7))
30          A1=CARB(1)-C1
31          D1=CARB(1)-CARB(2)-CAR(4)-CAR(5)
32          F1=C1+H1/TAN(DEGRAD*CAR(7))
33          ANG1C=ATAN((B1/2.+D1-A1/2.)/CAR(1))
34          
35          C1D1(1) = CAR(1)/2.
36          C1D1(2) = -ANG1C*RADDEG
37          C1D1(3) = 0.
38          C1D1(4) = CAR(6)
39          C1D1(5) = A1/2.
40          C1D1(6) = A1/2.
41          C1D1(7) = 0.
42          C1D1(8) = CAR(6)
43          C1D1(9) = B1/2.
44          C1D1(10) = B1/2.
45          C1D1(11) = 0.
46    
47          NMED=MSCIN
48          CALL GSVOLU('C1D1','TRAP',NMED,C1D1,11,IVOLU)
49    *      
50    * Smaller Scintillator CAR2 (or type A)
51    *          
52          B2=CARA(2)+CAR(4)+CAR(5)+H1/TAN(DEGRAD*CAR(7))
53          C2=H2/TAN(DEGRAD*CAR(7))
54          A2=CARA(1)-C2
55          D2=CARA(1)-CARA(2)-CAR(4)-CAR(5)
56          F2=C2+H1/TAN(DEGRAD*CAR(7))
57          ANG2C=ATAN((B2/2.+D2-A2/2.)/CAR(1))
58    
59          C2D1(1) = CAR(1)/2.
60          C2D1(2) = -ANG2C*RADDEG
61          C2D1(3) = 0.
62          C2D1(4) = CAR(6)
63          C2D1(5) = A2/2.
64          C2D1(6) = A2/2.
65          C2D1(7) = 0.
66          C2D1(8) = CAR(6)
67          C2D1(9) = B2/2.
68          C2D1(10) = B2/2.
69          C2D1(11) = 0.
70    
71          NMED=MSCIN
72          CALL GSVOLU('C2D1','TRAP',NMED,C2D1,11,IVOLU)
73  *  *
74  * CAR1 Al box sheet  * CAR1 Al box sheet
75  *  *
76        NMED=MAL        BB=C1D1(9)+ATZ*(1./COS(ATAN(D1/CAR(1)))-
77        CAR1CF=3.012       +               D1/CAR(1)+1./TAN(DEGRAD*CAR(7))+
78        CAR1ANGL=16.83       +                       1./SIN(DEGRAD*CAR(7)))/2.
79        CAR1H=6.7*CAR1CF        AA=C1D1(5)+ATZ*(1./COS(ATAN(D1/CAR(1)))+
80        CAR1D=12*CAR1CF       +               D1/CAR(1)-1./TAN(DEGRAD*CAR(7))+
81        CAR1U=11.3*CAR1CF       +                       1./SIN(DEGRAD*CAR(7)))/2.
82        CAR1T=1.2        CAR1(1) = C1D1(1)+ATZ
83        CAR1(1) = 0.5*CAR1H        DD=2.*CAR1(1)*D1/CAR(1)
84        CAR1(2) = CAR1ANGL        CAR1(2) = -RADDEG*ATAN((BB+DD-AA)/(2.*CAR1(1)))
85        CAR1(3) = 0.        CAR1(3) = 0.
86        CAR1(4) = 0.5*CAR1T        CAR1(4) = C1D1(4)+ATY
87        CAR1(5) = 0.5*CAR1D        CAR1(5) = AA
88        CAR1(6) = CAR1(5)        CAR1(6) = CAR1(5)
89        CAR1(7) = 0.        CAR1(7) = 0.
90        CAR1(8) = 0.5*CAR1T        CAR1(8) = C1D1(8)+ATY
91        CAR1(9) = 0.5*CAR1U        CAR1(9) = BB
92        CAR1(10) = CAR1(9)        CAR1(10) = CAR1(9)
93        CAR1(11) = 0.        CAR1(11) = 0.
94    
95          NMED=MAL
96        CALL GSVOLU('CAR1','TRAP',NMED,CAR1,11,IVOLU)        CALL GSVOLU('CAR1','TRAP',NMED,CAR1,11,IVOLU)
97  *  *
98  * CR1P PLASTIC BOX TO CREATE RIM  * CR1P PLASTIC BOX TO CREATE RIM
99  *  *
100        NMED=MPLAS        BB=C1D1(9)+PT*(1./COS(ATAN(D1/CAR(1)))-
101        CR1P(1) = 0.5*(CAR1H-.7)       +              D1/CAR(1)+1./TAN(DEGRAD*CAR(7))+
102        CR1P(2) = CAR1ANGL       +                       1./SIN(DEGRAD*CAR(7)))/2.
103          AA=C1D1(5)+PT*(1./COS(ATAN(D1/CAR(1)))+
104         +              D1/CAR(1)-1./TAN(DEGRAD*CAR(7))+
105         +                       1./SIN(DEGRAD*CAR(7)))/2.
106          CR1P(1) = C1D1(1)+PT
107          DD=2.*CR1P(1)*D1/CAR(1)
108          CR1P(2) =-RADDEG*ATAN((BB+DD-AA)/(2.*CR1P(1)))
109        CR1P(3) = 0.        CR1P(3) = 0.
110        CR1P(4) = 0.5*(CAR1T-.4)        CR1P(4) = C1D1(4)
111        CR1P(5) = 0.5*(CAR1D-0.7)        CR1P(5) = AA
112        CR1P(6) = CR1P(5)        CR1P(6) = CR1P(5)
113        CR1P(7) = 0.        CR1P(7) = 0.
114        CR1P(8) = 0.5*(CAR1T-.4)        CR1P(8) = C1D1(8)
115        CR1P(9) = 0.5*(CAR1U-.7)        CR1P(9) = BB
116        CR1P(10) = CR1P(9)        CR1P(10) = CR1P(9)
117        CR1P(11) = 0.        CR1P(11) = 0.
118    
119          NMED=MPLAS
120        CALL GSVOLU('CR1P','TRAP',NMED,CR1P,11,IVOLU)        CALL GSVOLU('CR1P','TRAP',NMED,CR1P,11,IVOLU)
121  *  *
 * Scint sheet  
 *  
       NMED=MSCIN  
       C1D1(1) = 0.5*(CAR1H-1.3)  
       C1D1(2) = CAR1ANGL  
       C1D1(3) = 0.  
       C1D1(4) = 0.5*(CAR1T-.4)  
       C1D1(5) = 0.5*(CAR1D-1.3)  
       C1D1(6) = C1D1(5)  
       C1D1(7) = 0.  
       C1D1(8) = 0.5*(CAR1T-.4)  
       C1D1(9) = 0.5*(CAR1U-1.3)  
       C1D1(10) = C1D1(9)  
       C1D1(11) = 0.  
       CALL GSVOLU('C1D1','TRAP',NMED,C1D1,11,IVOLU)  
 *  
 * Empty volume to be subtracted from C1D1 sheet  
 *  
       NMED=MN2  
       BETA=ATAN(  
      +     2.*C1D1(1)/  
      +     (C1D1(9)-C1D1(5)+2.*C1D1(1)*TAN(C1D1(2)*3.14/180.)) )  
       A=3.*3.02  
       B=3.*3.02  
       C1N1(1) = 0.5*A*SIN(BETA)  
       C1N1(9) = 0.5*B  
       C1N1(2) = -RADDEG*ATAN(  
      +     (C1N1(9)-2.*C1N1(1)/TAN(BETA))*1./(2.*C1N1(1)) )  
       C1N1(3) = 0.  
       C1N1(4) = 0.5*(CAR1T)  
       C1N1(5) = 0.  
       C1N1(6) = C1N1(5)  
       C1N1(7) = 0.  
       C1N1(8) = 0.5*(CAR1T)  
       C1N1(10) = C1N1(9)  
       C1N1(11) = 0.  
       CALL GSVOLU('C1N1','TRAP',NMED,C1N1,11,IVOLU)  
       ALPHA=ATAN(  
      +     ABS(A*SIN(BETA)/(B - A*COS(BETA))) )  
       BETA=3.14-ALPHA  
   
       A=.6*3.02  
       B=1.1*3.02  
       C1N2(1) = ABS(0.5*A*SIN(BETA))  
       C1N2(9) = 0.5*B  
       C1N2(2) = -(90. - RADDEG*  
      +     ATAN( 2.*C1N2(1) /( C1N2(9) + (2.*C1N2(1)/ABS(TAN(BETA)))) ))  
       C1N2(3) = 0.  
       C1N2(4) = 0.5*CAR1T  
       C1N2(5) = 0.  
       C1N2(6) = C1N2(5)  
       C1N2(7) = 0.  
       C1N2(8) = 0.5*CAR1T  
       C1N2(10) = C1N2(9)  
       C1N2(11) = 0.  
       CALL GSVOLU('C1N2','TRAP',NMED,C1N2,11,IVOLU)  
 *  
122  * CAR2 Al box sheet  * CAR2 Al box sheet
123  *  *
124        NMED=MAL        BB=C2D1(9)+ATZ*(1./COS(ATAN(D2/CAR(1)))-
125        CAR2CF=3.012       +               D2/CAR(1)+1./TAN(DEGRAD*CAR(7))+
126        CAR2ANGL=16.24       +                       1./SIN(DEGRAD*CAR(7)))/2.
127        CAR2H=6.7*CAR2CF        AA=C2D1(5)+ATZ*(1./COS(ATAN(D2/CAR(1)))+
128        CAR2D=10.35*CAR2CF       +               D2/CAR(1)-1./TAN(DEGRAD*CAR(7))+
129        CAR2U=10.2*CAR2CF       +                       1./SIN(DEGRAD*CAR(7)))/2.
130        CAR2T=1.2        CAR2(1) = C1D1(1)+ATZ
131        CAR2(1) = 0.5*CAR2H        DD=2.*CAR2(1)*D2/CAR(1)
132        CAR2(2) = CAR2ANGL        CAR2(2) = -RADDEG*ATAN((BB+DD-AA)/(2.*CAR2(1)))
133        CAR2(3) = 0.        CAR2(3) = 0.
134        CAR2(4) = 0.5*CAR2T        CAR2(4) = C2D1(4)+ATY
135        CAR2(5) = 0.5*CAR2D        CAR2(5) = AA
136        CAR2(6) = CAR2(5)        CAR2(6) = CAR2(5)
137        CAR2(7) = 0.        CAR2(7) = 0.
138        CAR2(8) = 0.5*CAR2T        CAR2(8) = C2D1(8)+ATY
139        CAR2(9) = 0.5*CAR2U        CAR2(9) = BB
140        CAR2(10) = CAR2(9)        CAR2(10) = CAR2(9)
141        CAR2(11) = 0.        CAR2(11) = 0.
142                
143          NMED=MAL
144        CALL GSVOLU('CAR2','TRAP',NMED,CAR2,11,IVOLU)        CALL GSVOLU('CAR2','TRAP',NMED,CAR2,11,IVOLU)
145  *  *
146  * CR1P PLASTIC BOX TO CREATE RIM  * CR1P PLASTIC BOX TO CREATE RIM
147  *  *
148        NMED=MPLAS        BB=C2D1(9)+PT*(1./COS(ATAN(D2/CAR(1)))-
149        CR2P(1) = 0.5*(CAR2H-.7)       +              D2/CAR(1)+1./TAN(DEGRAD*CAR(7))+
150        CR2P(2) = CAR2ANGL       +                       1./SIN(DEGRAD*CAR(7)))/2.
151          AA=C2D1(5)+PT*(1./COS(ATAN(D2/CAR(1)))+
152         +              D2/CAR(1)-1./TAN(DEGRAD*CAR(7))+
153         +                       1./SIN(DEGRAD*CAR(7)))/2.
154          CR2P(1) = C2D1(1)+PT
155          DD=2.*CR2P(1)*D2/CAR(1)
156          CR2P(2) =-RADDEG*ATAN((BB+DD-AA)/(2.*CR2P(1)))
157        CR2P(3) = 0.        CR2P(3) = 0.
158        CR2P(4) = 0.5*(CAR2T-.4)        CR2P(4) = C2D1(4)
159        CR2P(5) = 0.5*(CAR2D-0.7)        CR2P(5) = AA
160        CR2P(6) = CR2P(5)        CR2P(6) = CR2P(5)
161        CR2P(7) = 0.        CR2P(7) = 0.
162        CR2P(8) = 0.5*(CAR2T-.4)        CR2P(8) = C2D1(8)
163        CR2P(9) = 0.5*(CAR2U-.7)        CR2P(9) = BB
164        CR2P(10) = CR2P(9)        CR2P(10) = CR2P(9)
165        CR2P(11) = 0.        CR2P(11) = 0.
166    
167          NMED=MPLAS      
168        CALL GSVOLU('CR2P','TRAP',NMED,CR2P,11,IVOLU)        CALL GSVOLU('CR2P','TRAP',NMED,CR2P,11,IVOLU)
169  *  *
170  * Scint sheet  *  Volumes to be subtracted from C1D1 and C2D1
171  *  *
172        NMED=MSCIN        AA=CAR(2)+CAR(3)
173        C2D1(1) = 0.5*(CAR2H-1.3)        BB=AA/TAN(DEGRAD*CAR(7))+AA*CAR(4)/CAR(2)
174        C2D1(2) = CAR2ANGL      
175        C2D1(3) = 0.        VSN1(1) = 0.5*AA
176        C2D1(4) = 0.5*(CAR2T-.4)        VSN1(2) = RADDEG*ATAN((BB/2.-AA/TAN(DEGRAD*CAR(7)))/AA)
177        C2D1(5) = 0.5*(CAR2D-1.3)        VSN1(3) = 0.
178        C2D1(6) = C2D1(5)        VSN1(4) = C1D1(4)
179        C2D1(7) = 0.        VSN1(5) = 0.
180        C2D1(8) = 0.5*(CAR2T-.4)        VSN1(6) = VSN1(5)
181        C2D1(9) = 0.5*(CAR2U-1.3)        VSN1(7) = 0.
182        C2D1(10) = C2D1(9)        VSN1(8) = C1D1(8)
183        C2D1(11) = 0.        VSN1(9) = 0.5*BB
184        CALL GSVOLU('C2D1','TRAP',NMED,C2D1,11,IVOLU)        VSN1(10) = VSN1(9)
185          VSN1(11) = 0.
186    
187          AA=CAR(3)
188          BB=AA*(CAR(5)/CAR(3)-CAR(4)/CAR(2))
189        
190          VSN2(1) = 0.5*AA
191          VSN2(2) = RADDEG*ATAN((BB/2.+(AA)*CAR(4)/CAR(2))/AA)
192          VSN2(3) = 0.
193          VSN2(4) = C1D1(4)
194          VSN2(5) = 0.
195          VSN2(6) = VSN2(5)
196          VSN2(7) = 0.
197          VSN2(8) = C1D1(8)
198          VSN2(9) = 0.5*BB
199          VSN2(10) = VSN2(9)
200          VSN2(11) = 0.
201    
202          NMED=MN2
203          CALL GSVOLU('VSN1','TRAP',NMED,VSN1,11,IVOLU)
204          NMED=MPLAS
205          CALL GSVOLU('VSN2','TRAP',NMED,VSN2,11,IVOLU)
206  *  *
207  * Empty volume to be subtracted from C2D1 sheet  *  Volumes to be subtracted from CR1P and CR2P
208  *  *
209          AA=(PT/SIN(DEGRAD*CAR(7)))/(1./TAN(DEGRAD*CAR(7))+
210         +    CAR(4)/CAR(2))+CAR(2)+CAR(3)+PT
211          BB=AA/TAN(DEGRAD*CAR(7))+AA*CAR(4)/CAR(2)
212      
213          VPN1(1) = 0.5*AA
214          VPN1(2) = VSN1(2)
215          VPN1(3) = 0.
216          VPN1(4) = CR1P(4)
217          VPN1(5) = 0.
218          VPN1(6) = VPN1(5)
219          VPN1(7) = 0.
220          VPN1(8) = CR1P(8)
221          VPN1(9) = 0.5*BB
222          VPN1(10) = VPN1(9)
223          VPN1(11) = 0.
224          
225          AA=CAR(3) + PT -
226         +    COS(ATAN(CAR(4)/CAR(2)))*PT/SIN(ATAN(CAR(5)/CAR(3))-
227         +    ATAN(CAR(4)/CAR(2)))
228          BB=AA*(CAR(5)/CAR(3)-CAR(4)/CAR(2))
229        
230          VPN2(1) = 0.5*AA
231          VPN2(2) = RADDEG*ATAN((BB/2.+AA*CAR(4)/CAR(2))/AA)
232          VPN2(3) = 0.
233          VPN2(4) = CAR1(4)
234          VPN2(5) = 0.
235          VPN2(6) = VPN2(5)
236          VPN2(7) = 0.
237          VPN2(8) = CAR1(8)
238          VPN2(9) = 0.5*BB
239          VPN2(10) = VPN2(9)
240          VPN2(11) = 0.
241    
242          NMED=MAL
243          CALL GSVOLU('VPN2','TRAP',NMED,VPN2,11,IVOLU)
244        NMED=MN2        NMED=MN2
245        BETA=ATAN(        CALL GSVOLU('VPN1','TRAP',NMED,VPN1,11,IVOLU)
      +     2.*C2D1(1)/  
      +     (C2D1(9)-C2D1(5)+2.*C2D1(1)*TAN(C2D1(2)*3.14/180.)) )  
       A=3.*3.02  
       B=3.*3.02  
       C2N1(1) = 0.5*A*SIN(BETA)  
       C2N1(9) = 0.5*B  
       C2N1(2) = -RADDEG*ATAN(  
      +     (C2N1(9)-2.*C2N1(1)/TAN(BETA))*1./(2.*C2N1(1)) )  
       C2N1(3) = 0.  
       C2N1(4) = 0.5*(CAR2T)  
       C2N1(5) = 0.  
       C2N1(6) = C2N1(5)  
       C2N1(7) = 0.  
       C2N1(8) = 0.5*(CAR2T)  
       C2N1(10) = C2N1(9)  
       C2N1(11) = 0.  
       CALL GSVOLU('C2N1','TRAP',NMED,C2N1,11,IVOLU)  
       ALPHA=ATAN(  
      +     ABS(A*SIN(BETA)/(B - A*COS(BETA))) )  
       BETA=3.14-ALPHA  
   
       A=.6*3.02  
       B=1.1*3.02  
       C2N2(1) = ABS(0.5*A*SIN(BETA))  
       C2N2(9) = 0.5*B  
       C2N2(2) = -(90. - RADDEG*  
      +     ATAN( 2.*C2N2(1) /( C2N2(9) + (2.*C2N2(1)/ABS(TAN(BETA)))) ))  
       C2N2(3) = 0.  
       C2N2(4) = 0.5*CAR2T  
       C2N2(5) = 0.  
       C2N2(6) = C2N2(5)  
       C2N2(7) = 0.  
       C2N2(8) = 0.5*CAR2T  
       C2N2(10) = C2N2(9)  
       C2N2(11) = 0.  
       CALL GSVOLU('C2N2','TRAP',NMED,C2N2,11,IVOLU)  
246  *  *
247        NMED=MN2  *  Volumes to be subtracted from CAR1 and CAR2
248        CARDB(1)=1.5*CAR2(9)  *
249        CARDB(2)=1.5*CAR1(9)        AA=(ATZ/SIN(DEGRAD*CAR(7)))/(1./TAN(DEGRAD*CAR(7))+
250        CARDB(3)=CAR1(1)       +    CAR(4)/CAR(2))+CAR(2)+CAR(3)+ATZ
251        CALL GSVOLU('CARD','BOX ',NMED,CARDB, 3,IVOLU)        BB=AA/TAN(DEGRAD*CAR(7))+AA*CAR(4)/CAR(2)
252        
253          VAN1(1) = 0.5*AA
254          VAN1(2) = VSN1(2)
255          VAN1(3) = 0.
256          VAN1(4) = CAR1(4)
257          VAN1(5) = 0.
258          VAN1(6) = VAN1(5)
259          VAN1(7) = 0.
260          VAN1(8) = CAR1(8)
261          VAN1(9) = 0.5*BB
262          VAN1(10) = VAN1(9)
263          VAN1(11) = 0.
264    
265          AA=CAR(3) + ATZ -
266         +    COS(ATAN(CAR(4)/CAR(2)))*ATZ/SIN(ATAN(CAR(5)/CAR(3))-
267         +    ATAN(CAR(4)/CAR(2)))
268          BB=AA*(CAR(5)/CAR(3)-CAR(4)/CAR(2))
269        
270          VAN2(1) = 0.5*AA
271          VAN2(2) = RADDEG*ATAN((BB/2.+(AA)*CAR(4)/CAR(2))/AA)
272          VAN2(3) = 0.
273          VAN2(4) = CAR1(4)
274          VAN2(5) = 0.
275          VAN2(6) = VAN2(5)
276          VAN2(7) = 0.
277          VAN2(8) = CAR1(8)
278          VAN2(9) = 0.5*BB
279          VAN2(10) = VAN2(9)
280          VAN2(11) = 0.
281    
282          NMED=MN2    
283          CALL GSVOLU('VAN1','TRAP',NMED,VAN1,11,IVOLU)
284          CALL GSVOLU('VAN2','TRAP',NMED,VAN2,11,IVOLU)
285  *  *
286  * The zenihtal angle of the paddles  * The zenihtal angle of the paddles
287  *  *
288        ANGLCAR2=ASIN( 0.5*(CAR1D-(CAR1U-2.*(C1N2(9)+C1N1(9)))) / CAR1H )        ANGLCAR2=CARA(3)*DEGRAD   !CAR2 inclination
289        ANGLCAR1=ASIN( 0.5*(CAR2D-(CAR2U-2.*(C2N2(9)+C2N1(9)))) / CAR2H )        ANGLCAR1=CARB(3)*DEGRAD   !CAR1 inclination
290    
291          NMED=MN2
292          CALL GSVOLU('CARD','BOX ',NMED,CARDB, 3,IVOLU)
293  *  *
294  *  Define ANGLCAR rotation around Z axis  *  Define ANGLCAR rotation around Z axis
295  *  *
296        IRZCAR2=11  *    CAR1A
297        CALL GSROTM(IRZCAR2,90.,0.,(90.-ANGLCAR2*RADDEG),        IRZCAR1B=11
298       +     90.,(180.-ANGLCAR2*RADDEG),90.)        CALL GSROTM(IRZCAR1B,90.,0.,(90.-ANGLCAR1*RADDEG),
299        IRZCAR22=12       +     90.,(180.-ANGLCAR1*RADDEG),90.)
300        CALL GSROTM(IRZCAR22,90.,180.,(270.-ANGLCAR2*RADDEG),  *    CAR1B
301       +     270.,(180.-ANGLCAR2*RADDEG),270.)        IRZCAR1A=12
302        IRZCAR1=13        CALL GSROTM(IRZCAR1A,90.,180.,(270.-ANGLCAR1*RADDEG),
303        CALL GSROTM(IRZCAR1,90.,270.,(90.-ANGLCAR1*RADDEG),       +     270.,(180.-ANGLCAR1*RADDEG),270.)
304       +     0.,(180.-ANGLCAR1*RADDEG),0.)  *    CAR2A
305        IRZCAR12=14        IRZCAR2B=13
306        CALL GSROTM(IRZCAR12,90.,90.,(90.-ANGLCAR1*RADDEG),        CALL GSROTM(IRZCAR2B,90.,270.,(90.-ANGLCAR2*RADDEG),
307       +     180.,(180.-ANGLCAR1*RADDEG),180.)       +     0.,(180.-ANGLCAR2*RADDEG),0.)
308    *    CAR2B
309          IRZCAR2A=14
310          CALL GSROTM(IRZCAR2A,90.,90.,(90.-ANGLCAR2*RADDEG),
311         +     180.,(180.-ANGLCAR2*RADDEG),180.)
312    
313  *  *
314  * Positioning in CAR1  * Positioning in CAR1
315  *  *
316        N=1        N=1
       X=0  
317        Y=0        Y=0
318        Z=0        Z=C1D1(1)-VSN1(1)
319        CALL GSPOS('CR1P',N,'CAR1',X,Y,Z,0,'MANY')        X=-(C1D1(9)+C1D1(1)*TAN(ANG1C)-
320         +     (VSN1(9)-VSN1(1)*TAN(VSN1(2)*DEGRAD)))
321          CALL GSPOS('VSN1',N,'C1D1',X,Y,Z,0,'ONLY')
322    *
323        N=1        N=1
       X=( CAR1(9)+CAR1(1)*TAN(CAR1(2)*DEGRAD) ) -  
      +     (C1N1(9)+C1N1(1)*TAN(C1N1(2)*DEGRAD))  
324        Y=0        Y=0
325        Z=CAR1(1)-C1N1(1)        Z=CR1P(1)-VPN1(1)
326        CALL GSPOS('C1N1',N,'CAR1',X,Y,Z,0,'ONLY')        X=-(CR1P(9)-CR1P(1)*TAN(CR1P(2)*DEGRAD)-
327         +     (VPN1(9)-VPN1(1)*TAN(VPN1(2)*DEGRAD)))
328          CALL GSPOS('VPN1',N,'CR1P',X,Y,Z,0,'ONLY')
329    *
330        N=1        N=1
       X=( CAR1(9)+CAR1(1)*TAN(CAR1(2)*DEGRAD) ) - 2.*C1N1(9) -  
      +     (C1N2(9)+C1N2(1)*TAN(C1N2(2)*DEGRAD))  
331        Y=0        Y=0
332        Z=CAR1(1)-C1N2(1)        Z=CAR1(1)-VAN1(1)
333        CALL GSPOS('C1N2',N,'CAR1',X,Y,Z,0,'ONLY')        X=-(CAR1(9)-CAR1(1)*TAN(CAR1(2)*DEGRAD)-
334         +     (VAN1(9)-VAN1(1)*TAN(VAN1(2)*DEGRAD)))
335          CALL GSPOS('VAN1',N,'CAR1',X,Y,Z,0,'ONLY')
336    *
337        N=1        N=1
       X=0  
338        Y=0        Y=0
339        Z=0        Z=C1D1(1)-VSN2(1)
340        CALL GSPOS('C1D1',N,'CR1P',X,Y,Z,0,'ONLY')        X=-(C1D1(9)+C1D1(1)*TAN(ANG1C)-
341         +     (2.*VSN1(9)+VSN2(9)-VSN2(1)*TAN(VSN2(2)*DEGRAD)))
342          CALL GSPOS('VSN2',N,'C1D1',X,Y,Z,0,'ONLY')
343  *  *
344  * Positioning in CAR2        N=1
345          Y=0
346          Z=CR1P(1)-VPN2(1)
347          X=-(CR1P(9)-CR1P(1)*TAN(CR1P(2)*DEGRAD)-
348         +     (2.*VPN1(9)+VPN2(9)-VPN2(1)*TAN(VPN2(2)*DEGRAD)))
349          CALL GSPOS('VPN2',N,'CR1P',X,Y,Z,0,'ONLY')
350  *  *
351        N=1        N=1
       X=0  
352        Y=0        Y=0
353        Z=0        Z=CAR1(1)-VAN2(1)
354        CALL GSPOS('CR2P',N,'CAR2',X,Y,Z,0,'MANY')        X=-(CAR1(9)-CAR1(1)*TAN(CAR1(2)*DEGRAD)-
355         +     (2.*VAN1(9)+VAN2(9)-VAN2(1)*TAN(VAN2(2)*DEGRAD)))
356          CALL GSPOS('VAN2',N,'CAR1',X,Y,Z,0,'ONLY')
357    *  
358        N=1        N=1
359        X=( CAR2(9)+CAR2(1)*TAN(CAR2(2)*DEGRAD) ) -        X=PT*(1./COS(ATAN(D1/CAR(1)))-
360       +     (C2N1(9)+C2N1(1)*TAN(C2N1(2)*DEGRAD))       +    (1./SIN(DEGRAD*CAR(7))))/2.
361        Y=0        Y=0
362        Z=CAR2(1)-C2N1(1)        Z=0
363        CALL GSPOS('C2N1',N,'CAR2',X,Y,Z,0,'ONLY')        CALL GSPOS('C1D1',N,'CR1P',X,Y,Z,0,'ONLY')
364    *
365        N=1        N=1
366        X=( CAR2(9)+CAR2(1)*TAN(CAR2(2)*DEGRAD) ) - 2.*C2N1(9) -        X=(ATZ-PT)*(1./COS(ATAN(D1/CAR(1)))-
367       +     (C2N2(9)+C2N2(1)*TAN(C2N2(2)*DEGRAD))       +    (1./SIN(DEGRAD*CAR(7))))/2.
368          Y=0
369          Z=0
370          CALL GSPOS('CR1P',N,'CAR1',X,Y,Z,0,'ONLY')
371    *
372    * Positioning in CAR2
373    *
374          N=2
375          Y=0
376          Z=C2D1(1)-VSN1(1)
377          X=-(C2D1(9)+C2D1(1)*TAN(ANG2C)-
378         +     (VSN1(9)-VSN1(1)*TAN(VSN1(2)*DEGRAD)))
379          CALL GSPOS('VSN1',N,'C2D1',X,Y,Z,0,'ONLY')
380    *
381          N=2
382          Y=0
383          Z=CR2P(1)-VPN1(1)
384          X=-(CR2P(9)+CR2P(1)*TAN(ANG2C)-
385         +     (VPN1(9)-VPN1(1)*TAN(VPN1(2)*DEGRAD)))
386          CALL GSPOS('VPN1',N,'CR2P',X,Y,Z,0,'ONLY')
387    *
388          N=2
389        Y=0        Y=0
390        Z=CAR2(1)-C2N2(1)        Z=CAR2(1)-VAN1(1)
391        CALL GSPOS('C2N2',N,'CAR2',X,Y,Z,0,'ONLY')        X=-(CAR2(9)-CAR2(1)*TAN(CAR2(2)*DEGRAD)-
392         +     (VAN1(9)-VAN1(1)*TAN(VAN1(2)*DEGRAD)))
393          CALL GSPOS('VAN1',N,'CAR2',X,Y,Z,0,'ONLY')
394    *
395          N=2
396          Y=0
397          Z=C2D1(1)-VSN2(1)
398          X=-(C2D1(9)+C2D1(1)*TAN(ANG2C)-
399         +   (2.*VSN1(9)+VSN2(9)-VSN2(1)*TAN(VSN2(2)*DEGRAD)))
400          CALL GSPOS('VSN2',N,'C2D1',X,Y,Z,0,'ONLY')
401    *
402          N=2
403          Y=0
404          Z=CR2P(1)-VPN2(1)
405          X=-(CR2P(9)-CR2P(1)*TAN(CR2P(2)*DEGRAD)-
406         +   (2.*VPN1(9)+VPN2(9)-VPN2(1)*TAN(VPN2(2)*DEGRAD)))
407          CALL GSPOS('VPN2',N,'CR2P',X,Y,Z,0,'ONLY')
408    *
409          N=2
410          Y=0
411          Z=CAR2(1)-VAN2(1)
412          X=-(CAR2(9)-CAR2(1)*TAN(CAR2(2)*DEGRAD)-
413         +   (2.*VAN1(9)+VAN2(9)-VAN2(1)*TAN(VAN2(2)*DEGRAD)))
414          CALL GSPOS('VAN2',N,'CAR2',X,Y,Z,0,'ONLY')
415    *  
416        N=1        N=1
417        X=0        X=PT*(1./COS(ATAN(D2/CAR(1)))-1./SIN(DEGRAD*CAR(7)))/2.
418        Y=0        Y=0
419        Z=0        Z=0
420        CALL GSPOS('C2D1',N,'CR2P',X,Y,Z,0,'ONLY')        CALL GSPOS('C2D1',N,'CR2P',X,Y,Z,0,'ONLY')
421  *  *
422          N=1
423          X=(ATZ-PT)*(1./COS(ATAN(D2/CAR(1)))-
424         +                       1./SIN(DEGRAD*CAR(7)))/2.
425          Y=0
426          Z=0
427          CALL GSPOS('CR2P',N,'CAR2',X,Y,Z,0,'ONLY')
428    *
429  * Positioning in card  * Positioning in card
430  *  *
431    *
432    *           CAR1A
433    * CAR2B                CAR2A
434    *           CAR1B
435    *
436          ZH=49.229-ZTPLA-TPLA(3)
437    *--- CAR1B      
438        N=1        N=1
439        X=-(C2N1(9) + C2N2(9)) + CAR2(1)*ABS(TAN(CAR2(2)*DEGRAD))        Y=-CARB(5)+CAR(8)/2.*SIN(ANGLCAR1)
440        Y=(CAR1(9) - (C1N1(9)+C1N2(9)))        Z=CARB(6)+ZH-CARDB(3)-CAR(8)*COS(ANGLCAR1)/2.
441       +     + CAR2(1)*ABS(COS(ANGLCAR2*RADDEG)) - 2.*CAR2(4)        X=((CARB(7)/2.)-TAN(ANG1C)*CAR(8)/2.)-CARB(4)
442        Z=0        CALL GSPOS('CAR1',N,'CARD',X,Y,Z,IRZCAR1B,'ONLY')
443        CALL GSPOS('CAR2',N,'CARD',X,Y,Z,IRZCAR22,'ONLY')  *--- CAR1A      
444        N=2        N=2
445        X=-X + 2.*CAR1(4)        X=-X
446        Y=-Y + 2.*CAR1(4)        Y=-Y
447        CALL GSPOS('CAR2',N,'CARD',X,Y,Z,IRZCAR2 ,'ONLY')        CALL GSPOS('CAR1',N,'CARD',X,Y,Z,IRZCAR1A,'ONLY')
448    *--- CAR2A
449          N=1
450          X=CARA(4)-CAR(8)/2.*SIN(ANGLCAR2)
451          Z=CARA(6)+ZH-CARDB(3)-CAR(8)*COS(ANGLCAR2)/2.
452          Y=(CARA(7)/2.-TAN(ANG2C)*CAR(8)/2.)-CARA(5)
453          CALL GSPOS('CAR2',N,'CARD',X,Y,Z,IRZCAR2A,'ONLY')
454    *--- CAR2B      
455          N=2
456          X=-X
457          Y=-Y
458          CALL GSPOS('CAR2',N,'CARD',X,Y,Z,IRZCAR2B ,'ONLY')
459    c---------------------------------------------------------------
460    *
461    *     LEGS
462    *
463          NMED=MAL
464          CALL GSVOLU('LEGB','BOX ',NMED,LEGB, 3,IVOLU)
465    *
466    *     empty volumes to be subtracted from LEGB      
467    *
468          NMED=MN2
469          CALL GSVOLU('LEG1','TRAP',NMED,LEG1, 11,IVOLU)            
470          X=-LEGB(1)+LEG1(1)
471          Y=-LEGB(2)+LEG1(4)
472          Z=0.
473          CALL GSPOS('LEG1',1,'LEGB',X,Y,Z,RY90,'ONLY')      
474          Y=-LEGB(2)+2.*LEGP(1)-LEG1(4)
475          CALL GSPOS('LEG1',2,'LEGB',X,Y,Z,RY90,'ONLY')      
476    *      
477          CALL GSVOLU('LEG2','BOX ',NMED,LEG2, 3,IVOLU)      
478          X=-LEGB(1)+LEG2(1)
479          Y=-LEGB(2)+LEGP(1)
480          Z=0.
481          CALL GSPOS('LEG2',1,'LEGB',X,Y,Z,0,'ONLY')
482    *
483          CALL GSVOLU('LEG3','BOX ',NMED,LEG3, 3,IVOLU)      
484          X=-LEGB(1)+LEGP(2)*2.+LEG3(1)+0.2
485          Y=LEGB(2)-LEG3(2)
486          Z=LEGB(3)-LEG3(3)
487          CALL GSPOS('LEG3',1,'LEGB',X,Y,Z,0,'ONLY')
488          Z=-LEGB(3)+LEG3(3)
489          CALL GSPOS('LEG3',2,'LEGB',X,Y,Z,0,'ONLY')      
490    *
491          CALL GSVOLU('LEG4','BOX ',NMED,LEG4, 3,IVOLU)      
492          X=-LEGB(1)+LEG4(1)
493          Y=LEGB(2)-LEG4(2)
494          Z=0.
495          CALL GSPOS('LEG4',1,'LEGB',X,Y,Z,0,'ONLY')
496    *      
497          CALL GSVOLU('LEG5','BOX ',NMED,LEG5, 3,IVOLU)      
498          X=LEGB(1)-LEG5(1)
499          Y=LEGB(2)-LEG5(2)
500          Z=0.
501          CALL GSPOS('LEG5',1,'LEGB',X,Y,Z,0,'ONLY')
502    *
503          CALL GSVOLU('LEG6','BOX ',NMED,LEG6, 3,IVOLU)      
504          X=-LEGB(1)+LEGP(2)*2.+LEG3(1)
505          Y=LEGB(2)-LEG6(2)
506          Z=0.
507          CALL GSPOS('LEG6',1,'LEGB',X,Y,Z,0,'ONLY')      
508    *
509          CALL GSVOLU('LEG7','BOX ',NMED,LEG7, 3,IVOLU)      
510          X=LEGB(1)-LEGP(3)-LEGP(4)
511          Y=-LEGB(2)+LEG7(2)
512          Z=LEGP(5)-LEGP(8)-LEG7(3)
513          CALL GSPOS('LEG7',1,'LEGB',X,Y,Z,0,'ONLY')      
514    *
515          CALL GSVOLU('LEG8','BOX ',NMED,LEG8, 3,IVOLU)      
516          Z=0.
517          CALL GSPOS('LEG8',1,'LEGB',X,Y,Z,0,'ONLY')      
518    *
519          CALL GSVOLU('LEG9','BOX ',NMED,LEG9, 3,IVOLU)      
520          Z=-(LEGP(5)-LEGP(8)-LEG7(3))
521          CALL GSPOS('LEG9',1,'LEGB',X,Y,Z,0,'ONLY')      
522    *
523    *     Positioning LEG BOXES in CARD
524    *
525          N=1
526          X=-CARDB(1)+LEGB(1)+LEGP(6)
527          Y=-CARDB(2)+LEGB(2)+LEGP(7)
528          Z=-0.5
529          CALL GSPOS('LEGB',N,'CARD',X,Y,Z,0,'MANY')
530          N=2
531          X=X
532          Y=-Y
533          CALL GSPOS('LEGB',N,'CARD',X,Y,Z,RX180,'MANY')
534          N=3
535          X=-X
536          Y=Y
537          CALL GSROTM(RZALEX180,90.,180.,90.,
538         +     270.,180.,0.)
539          CALL GSPOS('LEGB',N,'CARD',X,Y,Z,RZ180,'MANY')
540          N=4
541          X=X
542          Y=-Y
543          CALL GSPOS('LEGB',N,'CARD',X,Y,Z,RY180,'MANY')
544    *
545    c---------------------------------------------------------------
546    *
547    *     CARD TOP PLATE
548    *
549    *     TPLT
550    *
551          NMED=MAL
552          CALL GSVOLU('TPLT','BOX ',NMED,TPLT, 3,IVOLU)
553    *
554    * Empty volumes to be subtracted from TPLT
555    *
556          NMED=MN2
557          CALL GSVOLU('TOPC','BOX ',NMED,TOPC, 3,IVOLU)
558    *
559          CALL GSVOLU('TH11','BOX ',NMED,TH11, 3,IVOLU)
560          CALL GSVOLU('TH12','BOX ',NMED,TH12, 3,IVOLU)
561          CALL GSVOLU('TH21','BOX ',NMED,TH21, 3,IVOLU)      
562          CALL GSVOLU('TH22','BOX ',NMED,TH22, 3,IVOLU)                      
563    *
564          CALL GSVOLU('TOPT','TRAP',NMED,TOPT,11,IVOLU)
565    *
566          CALL GSVOLU('TOHO','TUBE',NMED,TOHO,3,IVOLU)
567    
568    *
569    *     Positioning empty volumes...
570    *
571    *     Positioning TOPC in TPLT
572    *
573        N=1        N=1
574        Y=(C1N1(9) + C1N2(9)) - CAR1(1)*ABS(TAN(CAR1(2)*DEGRAD))        X=0.
575       +     + 2.* CAR2(4)        Y=0.
576        X=(CAR2(9) - (C2N1(9)+C2N2(9)))        Z=0.    
577       +     + CAR1(1)*ABS(SIN(ANGLCAR1*RADDEG)) + 2.*CAR1(4)        CALL GSPOS('TOPC',N,'TPLT',X,Y,Z,0,'ONLY')      
578        Z=0  *
579        CALL GSPOS('CAR1',N,'CARD',X,Y,Z,IRZCAR12,'ONLY')  *
580    *     Positioning H11 in TPLT
581    *
582          N=1
583          X=-TOPP(1)
584          Y=TOPP(2)
585          Z=0.
586          CALL GSPOS('TH11',N,'TPLT',X,Y,Z,0,'ONLY')                
587          N=2
588          X=-TOPP(1)
589          Y=-TOPP(2)
590          CALL GSPOS('TH11',N,'TPLT',X,Y,Z,0,'ONLY')                
591          N=3
592          X=TOPP(1)
593          Y=TOPP(2)
594          CALL GSPOS('TH11',N,'TPLT',X,Y,Z,0,'ONLY')                
595          N=4
596          X=TOPP(1)
597          Y=-TOPP(2)
598          CALL GSPOS('TH11',N,'TPLT',X,Y,Z,0,'ONLY')                
599    *
600    *     Positioning H12 in TPLT
601    *
602          N=1
603          X=-TOPP(1)
604          Y=TOPP(3)
605          Z=0.
606          CALL GSPOS('TH12',N,'TPLT',X,Y,Z,0,'ONLY')                
607          N=2
608          X=-TOPP(1)
609          Y=-TOPP(3)
610          CALL GSPOS('TH12',N,'TPLT',X,Y,Z,0,'ONLY')                
611          N=3
612          X=TOPP(1)
613          Y=TOPP(3)
614          CALL GSPOS('TH12',N,'TPLT',X,Y,Z,0,'ONLY')                
615          N=4
616          X=TOPP(1)
617          Y=-TOPP(3)
618          CALL GSPOS('TH12',N,'TPLT',X,Y,Z,0,'ONLY')                
619    *
620    *     Positioning H21 in TPLT
621    *
622          N=1
623          X=-TOPP(4)
624          Y=TOPP(5)
625          Z=0.
626          CALL GSPOS('TH21',N,'TPLT',X,Y,Z,0,'ONLY')                
627          N=2
628          X=-TOPP(4)
629          Y=-TOPP(5)
630          CALL GSPOS('TH21',N,'TPLT',X,Y,Z,0,'ONLY')                
631          N=3
632          X=TOPP(4)
633          Y=TOPP(5)
634          CALL GSPOS('TH21',N,'TPLT',X,Y,Z,0,'ONLY')                
635          N=4
636          X=TOPP(4)
637          Y=-TOPP(5)
638          CALL GSPOS('TH21',N,'TPLT',X,Y,Z,0,'ONLY')                
639    *
640    *     Positioning H22 in TPLT
641    *
642          N=1
643          X=-TOPP(6)
644          Y=TOPP(5)
645          Z=0.
646          CALL GSPOS('TH22',N,'TPLT',X,Y,Z,0,'ONLY')                
647          N=2
648          X=-TOPP(6)
649          Y=-TOPP(5)
650          CALL GSPOS('TH22',N,'TPLT',X,Y,Z,0,'ONLY')                
651          N=3
652          X=TOPP(6)
653          Y=TOPP(5)
654          CALL GSPOS('TH22',N,'TPLT',X,Y,Z,0,'ONLY')                
655          N=4
656          X=TOPP(6)
657          Y=-TOPP(5)
658          CALL GSPOS('TH22',N,'TPLT',X,Y,Z,0,'ONLY')                
659          N=5
660          X=0.
661          Y=TOPP(5)
662          CALL GSPOS('TH22',N,'TPLT',X,Y,Z,0,'ONLY')                
663          N=6
664          X=0.
665          Y=-TOPP(5)
666          CALL GSPOS('TH22',N,'TPLT',X,Y,Z,0,'ONLY')                
667    *
668    *     Positioning TOPT in TPLT
669    *
670          N=1
671          X=-CARDB(1)+TOPP(7)/4.
672          Y=-CARDB(2)+TOPP(7)/2.
673          Z=0.
674          CALL GSPOS('TOPT',N,'TPLT',X,Y,Z,0,'ONLY')
675          N=2
676          X=X
677          Y=-Y
678          CALL GSPOS('TOPT',N,'TPLT',X,Y,Z,RX180,'ONLY')
679          N=3
680          X=-X
681          Y=Y
682          CALL GSPOS('TOPT',N,'TPLT',X,Y,Z,RZ180,'ONLY')
683          N=4
684          X=X
685          Y=-Y
686          CALL GSPOS('TOPT',N,'TPLT',X,Y,Z,RY180,'ONLY')
687    *
688    *     Positioning TOHO in TPLT
689    *
690          N=1
691          X=TPLT(1)-TOPP(8)-TOHO(1)
692          Y=TPLT(2)-TOPP(9)-TOHO(2)
693          CALL GSPOS('TOHO',N,'TPLT',X,Y,Z,0,'ONLY')
694        N=2        N=2
695        Y=-Y + 2.* CAR2(4)        X=-X
696        X=-X + 2.* CAR2(4)        Y=Y
697        CALL GSPOS('CAR1',N,'CARD',X,Y,Z,IRZCAR1,'ONLY')        CALL GSPOS('TOHO',N,'TPLT',X,Y,Z,0,'ONLY')
698          N=3
699          X=X
700          Y=-Y
701          CALL GSPOS('TOHO',N,'TPLT',X,Y,Z,0,'ONLY')
702          N=4
703          X=-X
704          Y=Y
705          CALL GSPOS('TOHO',N,'TPLT',X,Y,Z,0,'ONLY')
706    *
707    *     Positioning TPLT in CARD volume
708    *
709          N=1
710          X=0.
711          Y=0.
712          Z=CARDB(3)-TPLT(3)
713          CALL GSPOS('TPLT',N,'CARD',X,Y,Z,0,'ONLY')    
714    C---------------------------------------------------------------      
715    *
716    *     MAGNETIC SCREEN
717    *
718          NMED=10
719          CALL GSVOLU('MGSC','BOX ',NMED,MGSC, 3,IVOLU)      
720    *
721    *  Empty volume to be subtracted from MGSC
722    *
723          NMED=MN2
724          CALL GSVOLU('MGSH','BOX ',NMED,MGSH, 3,IVOLU)      
725    
726    *
727    *     Positioning in CARD...
728    *    
729          N=1
730          X=0.
731          Y=0.
732          Z=0.
733          CALL GSPOS('MGSH',N,'MGSC',X,Y,Z,0,'ONLY')
734          Z=-CARDB(3)+MGSC(3)
735          CALL GSPOS('MGSC',N,'CARD',X,Y,Z,0,'ONLY')
736    c---------------------------------------------------------------      
737        RETURN        RETURN
738        END        END

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.3

  ViewVC Help
Powered by ViewVC 1.1.23