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

Annotation of /gpamela/gpcal/gpcalv.F

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3.2 - (hide 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 cafagna 3.1 *
2 pamela 3.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 cafagna 3.1 *
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 pamela 3.2 * 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 cafagna 3.1 *
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 pamela 3.2 * ML:
66     C CALL GSDVN ('CAST','CASI',NCASTR,1)
67     CALL GSDVN ('CAST','CASI',NCASTR,2)
68     * END ML:
69 cafagna 3.1 *
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 pamela 3.2 *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 cafagna 3.1 Z = Z + CAKA(3) + C10C(3)
117 pamela 3.2 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 cafagna 3.1 Z = Z + C10C(3) + CAGL(3)
121 pamela 3.2 C CALL GSPOS('CAGL',N,'CAPL',X,Y,Z,0,'ONLY')
122     CALL GSPOS('CAGL',N,'CANS',X,Y,Z,0,'ONLY')
123 cafagna 3.1 Z = Z + CAGL(3) + CAKP(3)
124 pamela 3.2 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 cafagna 3.1 *
128     * Positioning volume CASI into the mother CAPL
129     *
130     N = 0
131 pamela 3.2 * F.V.&ML:
132     C Z= Z + CAKP(3) + CASI(3)
133     Z = -CAPL(3)+CASI(3)
134     * END F.V.&ML
135 cafagna 3.1 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 pamela 3.2 *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 cafagna 3.1 *
187 pamela 3.2 * Positioning volume CANS ,CAPL and CAAB into the mother CALB
188 cafagna 3.1 *
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 pamela 3.2 *
195     * I DISPARI
196     DO I=1,NCAPL,2
197 cafagna 3.1 *
198     * X view, absorber and Y view on the other
199     *
200 pamela 3.2 X=0.10
201     Y=0.05
202 cafagna 3.1 Z= Z - 2*CAPL(3)
203     N= N + 1
204     *
205     * Check if this plane is excluded
206     *
207 pamela 3.2 *
208 cafagna 3.1 IF(.NOT.NOCAPL(N))
209     + CALL GSPOS('CAPL',N,'CALB',X,Y,Z,0,'ONLY')
210 pamela 3.2 *
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 cafagna 3.1 *
219     * Check if this absorber is excluded
220     *
221 pamela 3.2 *
222 cafagna 3.1 IF(.NOT.NOCAAB(I))
223     + CALL GSPOS('CAAB',(I-1),'CALB',X,Y,Z,0,'ONLY')
224 pamela 3.2 *
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 cafagna 3.1 *
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 pamela 3.2 N=N+2
238     Z = Z -2*(2*CAPL(3)+2*CANS(3)+CAAB(3))
239 cafagna 3.1 ENDDO
240     *
241 pamela 3.2 * 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 cafagna 3.1 *
254 pamela 3.2 Z= Z - 2*CAPL(3)-2*(2*CAPL(3)+2*CANS(3)+CAAB(3))
255 cafagna 3.1 N= N + 1
256 pamela 3.2 *
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 cafagna 3.1 ENDDO
292 pamela 3.2 *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 cafagna 3.1 *
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