/[PAMELA software]/gpamela/gpnd/gpndv.F
ViewVC logotype

Contents of /gpamela/gpnd/gpndv.F

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.6 - (show annotations) (download)
Tue Oct 2 17:58:31 2007 UTC (17 years, 2 months ago) by cafagna
Branch: MAIN
CVS Tags: v4r14, v4r13, HEAD
Changes since 1.5: +1 -1 lines
Power law spectra introduced

1 SUBROUTINE GPNDV
2 ************************************************************************
3 * *
4 * Volumes definition for the neutron detector *
5 * Called by: GPGEOM *
6 * Author: Francesco Cafagna, 05-sep-05 *
7 * *
8 ************************************************************************
9 #include "gpgeo.inc"
10 #include "gpmed.inc"
11 #include "gpkey.inc"
12 *
13 INTEGER IROT,IVOLU,N,NMED
14 REAL X,Y,Z
15
16 *
17 * Define the NDBO volume
18 *
19 NMED= MN2
20 CALL GSVOLU('NDBO','BOX ',NMED,NDBO, 3,IVOLU)
21 *
22 * Define the NDBX volume
23 *
24 NMED= MAL
25 CALL GSVOLU('NDBX','BOX ',NMED,NDBX, 3,IVOLU)
26 *
27 * Define the NDCD volume
28 *
29 NMED= MCAD
30 CALL GSVOLU('NDCD','BOX ',NMED,NDCD, 3,IVOLU)
31 *
32 * Define the NDBI volume
33 *
34 NMED= MN2
35 CALL GSVOLU('NDBI','BOX ',NMED,NDBI, 3,IVOLU)
36 *
37 * Define the NDTU volume
38 *
39 NMED= MIRON
40 * NMED= MSCIN
41 CALL GSVOLU('NDTU','TUBE',NMED,NDTU, 3,IVOLU)
42 *
43 * Define the NDTI volume
44 *
45 NMED= MHE3
46 CALL GSVOLU('NDTI','TUBE',NMED,NDTI, 3,IVOLU)
47 *
48 * Define the NDPB volume
49 *
50 NMED= MCH2
51 CALL GSVOLU('NDPB','BOX ',NMED,NDPB, 3,IVOLU)
52 *
53 * Define the NDCO volume
54 *
55 NMED= MAL
56 CALL GSVOLU('NDCO','BOX ',NMED,NDCO, 3,IVOLU)
57 *
58 * Define the NDBS volume
59 *
60 NMED= MAL
61 CALL GSVOLU('NDBS','BOX ',NMED,NDBS, 3,IVOLU)
62 *
63 * Define the NDSS volume
64 *
65 NMED= MN2
66 CALL GSVOLU('NDSS','BOX ',NMED,NDSS, 3,IVOLU)
67 *
68 * Define the NDCI volume
69 *
70 NMED= MN2
71 CALL GSVOLU('NDCI','BOX ',NMED,NDCI, 3,IVOLU)
72 *
73 * Define the NDCM volume
74 *
75 NMED= MN2
76 CALL GSVOLU('NDCM','BOX ',NMED,NDCM, 3,IVOLU)
77 *
78 * Define the NDCE volume
79 *
80 NMED= MN2
81 CALL GSVOLU('NDCE','BOX ',NMED,NDCE, 3,IVOLU)
82 *
83 * Define the NDSI volume
84 *
85 NMED= MN2
86 CALL GSVOLU('NDSI','BOX ',NMED,NDSI, 3,IVOLU)
87 *
88 * Define the NDSM volume
89 *
90 NMED= MN2
91 CALL GSVOLU('NDSM','BOX ',NMED,NDSM, 3,IVOLU)
92 *
93 * Define the NDSE volume
94 *
95 NMED= MN2
96 CALL GSVOLU('NDSE','BOX ',NMED,NDSE, 3,IVOLU)
97 *
98 * Positioning volumes NDTI inside NDTU.
99 *
100 N = 1
101 X = 0.
102 Y = 0.
103 Z = 0.
104 CALL GSPOS('NDTI',N,'NDTU',X,Y,Z,0,'ONLY')
105 *
106 * Positioning volume NDTU inside the mother NDPB
107 *
108 N = 0
109 Y = 0.
110 C #
111 C # Start to put tube on top of a cmd and 3 pholyetilene planes
112 C #
113 DO I=1,2
114 C #
115 cC # Place a tube layer at a 4 mm distance each
116 C # Place a tube layer at a 5 mm distance each
117 C #
118 c X = -NDBI(2) + 0.2 + 1.1
119 X = -NDBI(1) + 0.3 + NDTU(2)
120 C Z = -NDBI(3) + 2.*NDCD(3) + 3.*(2.*NDPB(3)) + NDTU(2)
121 C + + (I-1)*4*NDPB(3)
122 Z = -NDBI(3)+3.*(2.*NDPB(3))+NDTU(2)
123 + + (I-1)*2*NDPB(3)+(I-1)*2*NDTU(2)
124 DO II=1,18
125 N= N + 1
126 C CALL GSPOS('NDTU',N,'NDBI',X,Y,Z,2,'MANY')
127 CALL GSPOS('NDTU',N,'NDBI',X,Y,Z,2,'ONLY')
128 C X = X + 2.2
129 X=X+2*NDTU(2)+GNDTU
130 ENDDO
131 ENDDO
132 *
133 * Positioning volume NDPB inside the mother NDBI
134 *
135 N = 0
136 X = 0.
137 Y = 0.
138 C #
139 C # Stack 3 planes then leave the tube gap between the last two
140 C #
141 DO I=1,3
142 N= N + 1
143 c Z = -NDBI(3) + 2.*NDCD(3) + (I-1)*2.*NDPB(3) + NDPB(3)
144 Z=-NDBI(3)+(I-1)*2.*NDPB(3)+NDPB(3)
145 C CALL GSPOS('NDPB',N,'NDBI',X,Y,Z,0,'MANY')
146 CALL GSPOS('NDPB',N,'NDBI',X,Y,Z,0,'ONLY')
147 ENDDO
148 DO I=1,2
149 C Z = -NDBI(3) + 2.*NDCD(3) + 4.*2.*NDPB(3) + NDPB(3)
150 C + + (I-1)*4.*NDPB(3)
151 Z = -NDBI(3) + 3.*2.*NDPB(3) + NDPB(3)
152 + + (I-1)*2.*NDPB(3)+I*2*NDTU(2)
153 N= N + 1
154 C CALL GSPOS('NDPB',N,'NDBI',X,Y,Z,0,'MANY')
155 CALL GSPOS('NDPB',N,'NDBI',X,Y,Z,0,'ONLY')
156 ENDDO
157 C #
158 C # Now put the internal volume inside the cadmium box
159 C # *
160 N = 1
161 X = 0.
162 Y = 0.
163 Z=-NDCD(3)+NDBI(3)+TNDCD
164 CALL GSPOS('NDBI',N,'NDCD',X,Y,Z,0,'ONLY')
165 C #
166 C # Positioning the NDCD inside NDBX
167 C #
168 N=1
169 X = 0
170 Y = 0
171 Z=-NDBX(3)+NDCD(3)+TNDBX
172 CALL GSPOS('NDCD',N,'NDBX',X,Y,Z,0,'ONLY')
173 C #
174 C # Positioning the NDBX inside NDBO
175 C #
176 N=1
177 X = 0
178 Y = 0
179 Z=-NDBO(3)+NDBX(3)
180 CALL GSPOS('NDBX',N,'NDBO',X,Y,Z,0,'ONLY')
181 C #
182 C # Positioning the NDCM inside NDCO
183 C #
184 N=0
185 X = 0
186 Z=NDCO(3)-NDCM(3)
187 DO I=-1,1,2
188 N=N+1
189 Y = I*(NDCI(2)+1.4+NDCM(2))
190 CALL GSPOS('NDCM',N,'NDCO',X,Y,Z,0,'ONLY')
191 ENDDO
192 C #
193 C # Positioning the NDCI inside NDCO
194 C #
195 N=1
196 X = 0
197 Y = 0
198 Z=NDCO(3)-NDCI(3)
199 CALL GSPOS('NDCI',N,'NDCO',X,Y,Z,0,'ONLY')
200 C #
201 C # Positioning the NDCE inside NDCO
202 C #
203 N=0
204 X = 0
205 Z=NDCO(3)-NDCE(3)
206 DO I=-1,1,2
207 N=N+1
208 Y = I*(NDCI(2)+1.4+2*NDCM(2)+1.4+NDCE(2))
209 CALL GSPOS('NDCE',N,'NDCO',X,Y,Z,0,'ONLY')
210 ENDDO
211 C #
212 C # Positioning the NDSM inside NDCO
213 C #
214 N=0
215 Z=NDCO(3)-NDSM(3)
216 DO I=-1,1,2
217 Y = I*(NDCO(2)-9.6-NDSM(2))
218 DO j=-1,1,2
219 N=N+1
220 X=J*(NDCO(1)-2.9-NDSM(1))
221 CALL GSPOS('NDSM',N,'NDCO',X,Y,Z,0,'ONLY')
222 ENDDO
223 ENDDO
224 C #
225 C # Positioning the NDSI inside NDCO
226 C #
227 N=0
228 Z=NDCO(3)-NDSI(3)
229 Y=0.
230 DO j=-1,1,2
231 N=N+1
232 X=J*(NDCO(1)-2.9-NDSI(1))
233 CALL GSPOS('NDSI',N,'NDCO',X,Y,Z,0,'ONLY')
234 ENDDO
235 C #
236 C # Positioning the NDSE inside NDCO
237 C #
238 N=0
239 Z=NDCO(3)-NDSE(3)
240 DO I=-1,1,2
241 Y = I*(NDCI(2)+1.4+2*NDCM(2)+1.4+NDSE(2))
242 DO j=-1,1,2
243 N=N+1
244 X=J*(NDCE(1)+1.6+NDSE(1))
245 CALL GSPOS('NDSE',N,'NDCO',X,Y,Z,0,'ONLY')
246 ENDDO
247 ENDDO
248 C #
249 C # Positioning the NDCO inside NDBO
250 C #
251 N=1
252 X = 0
253 Y = 0
254 Z=NDBO(3)-NDCO(3)
255 CALL GSPOS('NDCO',N,'NDBO',X,Y,Z,0,'ONLY')
256 C #
257 C # Positioning the NDBS inside NDBO
258 C #
259 N=0
260 DO I=-1,1,2
261 N=N+1
262 X = 0.
263 Y = I*NDBO(2)-I*NDBS(2)
264 Z=-NDBO(3)+NDBS(3)
265 CALL GSPOS('NDBS',N,'NDBO',X,Y,Z,0,'ONLY')
266 ENDDO
267 N=1
268 X = 0.
269 Y = 0.
270 Z=0.
271 CALL GSPOS('NDSS',N,'NDBS',X,Y,Z,0,'ONLY')
272 RETURN
273 END

  ViewVC Help
Powered by ViewVC 1.1.23