/[PAMELA software]/gpamela/gpcal/gpcalv.F
ViewVC logotype

Contents of /gpamela/gpcal/gpcalv.F

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3.2 - (show annotations) (download)
Thu Dec 5 10:17:41 2002 UTC (21 years, 11 months ago) by pamela
Branch: MAIN
CVS Tags: v3r3, v3r1, v3r2
Changes since 3.1: +170 -32 lines
Update CAS and CALO geometries and positions. Makefile updated as well

1 *
2 * $Id: gpcalv.F,v 3.1.1.1 2002/07/11 16:02:14 cafagna Exp $
3 *
4 * $Log: gpcalv.F,v $
5 * Revision 3.1.1.1 2002/07/11 16:02:14 cafagna
6 * First GPAMELA release on CVS
7 *
8 *
9 *CMZ : 3.00/00 14/11/2000 10.17.50 by Emiliano Mocchiutti
10 *CMZ : 2.02/00 12/10/2000 18.19.42 by Francesco Cafagna
11 *CMZ : 2.01/00 05/04/2000 14.35.18 by Marialuigia Ambriola
12 *CMZ : 2.00/00 03/03/2000 15.39.06 by Francesco Cafagna
13 *CMZ : 1.02/00 21/10/99 14.46.25 by Francesco Cafagna
14 *CMZ : 1.00/02 13/03/96 18.39.55 by Francesco Cafagna
15 *-- Author : Francesco Cafagna 09/12/95
16 SUBROUTINE GPCALV
17 ************************************************************************
18 * *
19 * Volumes definition for the silicon calorimeter *
20 * Called by: GPGEM *
21 * Author: Francesco Cafagna, 05/12/95 13.39.41 *
22 * *
23 ************************************************************************
24 #include "gpgeo.inc"
25 #include "gpmed.inc"
26 #include "gpkey.inc"
27 *
28 INTEGER IROT,IVOLU,N,NMED
29 REAL X,Y,Z
30 *
31 * Define the CALB volume
32 *
33 NMED= MN2
34 CALL GSVOLU('CALB','BOX ',NMED,CALB, 3,IVOLU)
35 *
36 * Define the CALS volume
37 *
38 NMED= MAL
39 CALL GSVOLU('CALS','BOX ',NMED,CALS, 3,IVOLU)
40 *
41 * Define the CAPL volume
42 *
43 NMED= MN2
44 CALL GSVOLU('CAPL','BOX ',NMED,CAPL, 3,IVOLU)
45 * F.V.&ML:
46 *
47 * Define the CANS volume
48 *
49 NMED= MN2
50 CALL GSVOLU('CANS','BOX ',NMED,CANS, 3,IVOLU)
51 * END F.V.&ML.
52 *
53 * Define the CAPD volume
54 *
55 NMED= MN2
56 CALL GSVOLU('CAPD','BOX ',NMED,CAPD, 3,IVOLU)
57 *
58 * Define the CASI volume
59 *
60 NMED= MSIC
61 CALL GSVOLU('CASI','BOX ',NMED,CASI, 3,IVOLU)
62 *
63 * Division in CASI
64 *
65 * ML:
66 C CALL GSDVN ('CAST','CASI',NCASTR,1)
67 CALL GSDVN ('CAST','CASI',NCASTR,2)
68 * END ML:
69 *
70 * Define the CG10 volume
71 *
72 NMED= MG10C
73 CALL GSVOLU('C10C','BOX ',NMED,C10C, 3,IVOLU)
74 *
75 * Define the CAAB volume
76 *
77 NMED= MW2
78 CALL GSVOLU('CAAB','BOX ',NMED,CAAB, 3,IVOLU)
79 *EM:
80 *
81 * Define the CAAD volume
82 *
83 NMED= MAL
84 CALL GSVOLU('CAAD','BOX ',NMED,CAAD, 3,IVOLU)
85 *
86 * Define the CAKA volume
87 *
88 NMED= MCER
89 CALL GSVOLU('CAKA','BOX ',NMED,CAKA, 3,IVOLU)
90 *
91 * Define the CAKP volume
92 *
93 NMED= MKAP
94 CALL GSVOLU('CAKP','BOX ',NMED,CAKP, 3,IVOLU)
95 *
96 * Define the CAGL volume (Silicon glue)
97 *
98 NMED= MSIC
99 CALL GSVOLU('CAGL','BOX ',NMED,CAGL, 3,IVOLU)
100 *END EM.
101 *
102 * Positioning volumes CAKA, C10C, CAGL, CAKP into the mother CAPL and CAPD
103 * (Kaolite and G10 only for CAPD)
104 *
105 N = 1
106 X = 0.
107 Y = 0.
108 *EM:
109 *F.V.&ML:
110 CALL GPVOLU(-2)
111 C Z = -CAPL(3) + CAKA(3)
112 C CALL GSPOS('CAKA',N,'CAPL',X,Y,Z,0,'ONLY')
113 Z = -CANS(3) + CAKA(3)
114 CALL GSPOS('CAKA',N,'CANS',X,Y,Z,0,'ONLY')
115 C CALL GSPOS('CAKA',N,'CAPD',X,Y,Z,0,'ONLY')
116 Z = Z + CAKA(3) + C10C(3)
117 C CALL GSPOS('C10C',N,'CAPL',X,Y,Z,0,'ONLY')
118 CALL GSPOS('C10C',N,'CANS',X,Y,Z,0,'ONLY')
119 C CALL GSPOS('C10C',N,'CAPD',X,Y,Z,0,'ONLY')
120 Z = Z + C10C(3) + CAGL(3)
121 C CALL GSPOS('CAGL',N,'CAPL',X,Y,Z,0,'ONLY')
122 CALL GSPOS('CAGL',N,'CANS',X,Y,Z,0,'ONLY')
123 Z = Z + CAGL(3) + CAKP(3)
124 C CALL GSPOS('CAKP',N,'CAPL',X,Y,Z,0,'ONLY')
125 CALL GSPOS('CAKP',N,'CANS',X,Y,Z,0,'ONLY')
126 * END F.V.&ML
127 *
128 * Positioning volume CASI into the mother CAPL
129 *
130 N = 0
131 * F.V.&ML:
132 C Z= Z + CAKP(3) + CASI(3)
133 Z = -CAPL(3)+CASI(3)
134 * END F.V.&ML
135 DO I=-1,1
136 Y = I*(2.*CASI(2)+ DCASIY)
137 DO II=-1,1
138 N= N + 1
139 X = II*(2.*CASI(1)+ DCASIX)
140 *
141 * Check if detector is excluded
142 *
143 IF(.NOT.NOCASI(N))
144 + CALL GSPOS('CASI',N,'CAPL',X,Y,Z,0,'ONLY')
145 ENDDO
146 ENDDO
147 *END EM.
148 *F.V.&ML:
149 C commenting the original code with a 'C' per raw:
150 C*
151 C* Positioning volume CAPL and CAAB into the mother CALB
152 C*
153 C X= 0.
154 C Y= 0.
155 CC Z= CALB(3) + CAPL(3)
156 C*EM:
157 C Z= CALB(3) + CAPL(3) - DCASIZ/2.
158 C*END EM. (we have 0.15 cm from the top to the first Si)
159 C N= 0
160 C DO I=1,NCAPL
161 C*
162 C* X view, absorber and Y view on the other
163 C*
164 C Z= Z - 2*CAPL(3)
165 C N= N + 1
166 C*
167 C* Check if this plane is excluded
168 C*
169 C IF(.NOT.NOCAPL(N))
170 C + CALL GSPOS('CAPL',N,'CALB',X,Y,Z,0,'ONLY')
171 C Z= Z - CAPL(3) - CAAB(3)
172 C*
173 C* Check if this absorber is excluded
174 C*
175 C IF(.NOT.NOCAAB(I))
176 C + CALL GSPOS('CAAB',(I-1),'CALB',X,Y,Z,0,'ONLY')
177 C Z= Z - CAAB(3) - CAPL(3)
178 C N= N + 1
179 C*
180 C* Check if this detector is excluded
181 C*
182 C IF(.NOT.NOCAPL(N))
183 C + CALL GSPOS('CAPL',N,'CALB',X,Y,Z,3,'ONLY')
184 C ENDDO
185 C end comments.
186 *
187 * Positioning volume CANS ,CAPL and CAAB into the mother CALB
188 *
189 X= 0.
190 Y= 0.
191 Z= CALB(3) + CAPL(3) - DCASIZ/2.
192 *END EM. (we have 0.15 cm from the top to the first Si)
193 N= 0
194 *
195 * I DISPARI
196 DO I=1,NCAPL,2
197 *
198 * X view, absorber and Y view on the other
199 *
200 X=0.10
201 Y=0.05
202 Z= Z - 2*CAPL(3)
203 N= N + 1
204 *
205 * Check if this plane is excluded
206 *
207 *
208 IF(.NOT.NOCAPL(N))
209 + CALL GSPOS('CAPL',N,'CALB',X,Y,Z,0,'ONLY')
210 *
211 X = 0.
212 Y = 0.
213 Z= Z - CAPL(3) - CANS(3)
214 *
215 CALL GSPOS('CANS',N,'CALB',X,Y,Z,0,'ONLY')
216 *
217 Z= Z - CANS(3) - CAAB(3)
218 *
219 * Check if this absorber is excluded
220 *
221 *
222 IF(.NOT.NOCAAB(I))
223 + CALL GSPOS('CAAB',(I-1),'CALB',X,Y,Z,0,'ONLY')
224 *
225 Z = Z - CAAB(3)- CANS(3)
226 N = N + 1
227 *
228 CALL GSPOS('CANS',N,'CALB',X,Y,Z,3,'ONLY')
229 Z= Z - CANS(3) - CAPL(3)
230 X=0.05
231 Y=-0.10
232 *
233 * Check if this detector is excluded
234 *
235 IF(.NOT.NOCAPL(N))
236 + CALL GSPOS('CAPL',N,'CALB',X,Y,Z,3,'ONLY')
237 N=N+2
238 Z = Z -2*(2*CAPL(3)+2*CANS(3)+CAAB(3))
239 ENDDO
240 *
241 * I PARI
242 *
243 X= 0.
244 Y= 0.
245 Z= CALB(3) + CAPL(3) - DCASIZ/2.
246 *END EM. (we have 0.15 cm from the top to the first Si)
247 N= 2
248 *
249 *
250 DO I=2,NCAPL,2
251 *
252 * X view, absorber and Y view on the other
253 *
254 Z= Z - 2*CAPL(3)-2*(2*CAPL(3)+2*CANS(3)+CAAB(3))
255 N= N + 1
256 *
257 * Check if this plane is excluded
258 X = -0.10
259 Y = -0.05
260 *
261 IF(.NOT.NOCAPL(N))
262 + CALL GSPOS('CAPL',N,'CALB',X,Y,Z,0,'ONLY')
263 X = 0.
264 Y = 0.
265 Z = Z - CAPL(3) - CANS(3)
266 *
267 CALL GSPOS('CANS',N,'CALB',X,Y,Z,0,'ONLY')
268 *
269 * Check if this absorber is excluded
270 *
271 N = N + 1
272 Z = Z - CANS(3) - CAAB(3)
273 *
274 IF(.NOT.NOCAAB(I))
275 + CALL GSPOS('CAAB',(I-1),'CALB',X,Y,Z,0,'ONLY')
276 *
277 Z= Z - CAAB(3) - CANS(3)
278 *
279 CALL GSPOS('CANS',N,'CALB',X,Y,Z,3,'ONLY')
280 Z= Z - CANS(3) - CAPL(3)
281 X = -0.05
282 Y = -0.10
283 *
284 *
285 * Check if this detector is excluded
286 *
287 IF(.NOT.NOCAPL(N))
288 + CALL GSPOS('CAPL',N,'CALB',X,Y,Z,3,'ONLY')
289 N = N + 2
290 *
291 ENDDO
292 *END F.V.&ML.
293 * F.V.&ML.:
294 * again we have to comment with a 'C' per raw:
295 C*
296 C* Positioning volume CAPD and CAAD into the mother CALB
297 C*
298 C N= 0
299 C DO I=1,NCAPLD
300 C IF(I.EQ.1) THEN
301 C Z= Z - CAPD(3) - CAPL(3)
302 C ELSE
303 C Z= Z - 2*CAPD(3)
304 C ENDIF
305 C N= N + 1
306 C CALL GSPOS('CAPD',N,'CALB',X,Y,Z,0,'ONLY')
307 C Z= Z - CAPD(3) - CAAD(3)
308 C CALL GSPOS('CAAD',(I-1),'CALB',X,Y,Z,0,'ONLY')
309 C Z= Z - CAAD(3) - CAPD(3)
310 C N= N + 1
311 C CALL GSPOS('CAPD',N,'CALB',X,Y,Z,3,'ONLY')
312 C ENDDO
313 * end comments.
314 *END F.V.&ML.
315 *
316 * Put the shell around it
317 *
318 X= 0.
319 Y= 0.
320 Z= CALS(3)-CALB(3)
321 N= 1
322 CALL GSPOS('CALB',N,'CALS',X,Y,Z,0,'ONLY')
323 *
324 RETURN
325 END

  ViewVC Help
Powered by ViewVC 1.1.23