207 |
c$$$ end |
c$$$ end |
208 |
|
|
209 |
|
|
210 |
c------------------------------------------------------------------------ |
c$$$c------------------------------------------------------------------------ |
211 |
|
c$$$ |
212 |
c NB: le coordinate in mech_pos.dat sono calcolate a partire da alcuni dati |
c$$$c NB: le coordinate in mech_pos.dat sono calcolate a partire da alcuni dati |
213 |
c contenuti in commontracker.f. forse si puo' evitare mech_pos.dat e mettere |
c$$$c contenuti in commontracker.f. forse si puo' evitare mech_pos.dat e mettere |
214 |
c tutto in commontracker.f |
c$$$c tutto in commontracker.f |
215 |
|
c$$$ |
216 |
|
c$$$ |
217 |
subroutine mech_sensor |
c$$$ subroutine mech_sensor |
218 |
c !it reads sensors coordinates (in PAMELA reference |
c$$$c !it reads sensors coordinates (in PAMELA reference |
219 |
c ! frame) from a text file and it uses them to fill |
c$$$c ! frame) from a text file and it uses them to fill |
220 |
c ! x/y/z_mech_sensor variables, taking into account |
c$$$c ! x/y/z_mech_sensor variables, taking into account |
221 |
c ! last plane inversion |
c$$$c ! last plane inversion |
222 |
|
c$$$ |
223 |
include './commontracker.f' |
c$$$ include './commontracker.f' |
224 |
include './common_tracks.f' |
c$$$ include './common_tracks.f' |
225 |
|
c$$$ |
226 |
real xvec(nladders_view),yvec(2),zvec(nplanes) |
c$$$ real xvec(nladders_view),yvec(2),zvec(nplanes) |
227 |
|
c$$$ |
228 |
integer id !file identifier |
c$$$ integer id !file identifier |
229 |
logical od !.true. if the specified unit is connected to a file |
c$$$ logical od !.true. if the specified unit is connected to a file |
230 |
|
c$$$ |
231 |
do id=20,100,1 !opens the file using a free file id |
c$$$ do id=20,100,1 !opens the file using a free file id |
232 |
inquire (id, opened=od) |
c$$$ inquire (id, opened=od) |
233 |
if(.not.od) goto 666 |
c$$$ if(.not.od) goto 666 |
234 |
enddo |
c$$$ enddo |
235 |
666 continue |
c$$$ 666 continue |
236 |
|
c$$$ |
237 |
c open(id,FILE='../common/mech_pos.dat') !sensors centres coordinates in mm in |
c$$$c open(id,FILE='../common/mech_pos.dat') !sensors centres coordinates in mm in |
238 |
c open(id,FILE='source/common/mech_pos.dat') |
c$$$c open(id,FILE='source/common/mech_pos.dat') |
239 |
c call system('cp $TRK_GRND/source/common/mech_pos.dat .') |
c$$$c call system('cp $TRK_GRND/source/common/mech_pos.dat .') |
240 |
print *,'Opening file: mech_pos.dat' |
c$$$ print *,'Opening file: mech_pos.dat' |
241 |
open(id,FILE='./bin-aux/mech_pos.dat',IOSTAT=iostat) |
c$$$ open(id,FILE='./bin-aux/mech_pos.dat',IOSTAT=iostat) |
242 |
c !sensors centres coordinates in mm in |
c$$$c !sensors centres coordinates in mm in |
243 |
c ! PAMELA reference frame: |
c$$$c ! PAMELA reference frame: |
244 |
c ! the first plane is the one with lowest Z (the one |
c$$$c ! the first plane is the one with lowest Z (the one |
245 |
c ! nearest the calorimeter) |
c$$$c ! nearest the calorimeter) |
246 |
c ! the first ladder is the one with lowest X (the |
c$$$c ! the first ladder is the one with lowest X (the |
247 |
c ! one on which the first X strip is) |
c$$$c ! one on which the first X strip is) |
248 |
c ! the first sensor is the one with lowest Y (the |
c$$$c ! the first sensor is the one with lowest Y (the |
249 |
c ! one on which the first Y strip is) for planes |
c$$$c ! one on which the first Y strip is) for planes |
250 |
c ! 2..6. for plane 1 the first sensor has higher Y |
c$$$c ! 2..6. for plane 1 the first sensor has higher Y |
251 |
|
c$$$ |
252 |
if(iostat.ne.0)then |
c$$$ if(iostat.ne.0)then |
253 |
print*,'MECH_SENSOR: *** Error in opening file ***' |
c$$$ print*,'MECH_SENSOR: *** Error in opening file ***' |
254 |
return |
c$$$ return |
255 |
endif |
c$$$ endif |
256 |
|
c$$$ |
257 |
read(id,*) xvec |
c$$$ read(id,*) xvec |
258 |
read(id,*) yvec |
c$$$ read(id,*) yvec |
259 |
read(id,*) zvec |
c$$$ read(id,*) zvec |
260 |
|
c$$$ |
261 |
do i=1,nplanes |
c$$$ do i=1,nplanes |
262 |
do j=1,nladders_view |
c$$$ do j=1,nladders_view |
|
do k=1,2 |
|
|
x_mech_sensor(i,j,k)=xvec(j) |
|
|
y_mech_sensor(i,j,k)=yvec(k) |
|
|
z_mech_sensor(i,j,k)=zvec(i) |
|
|
if(i.eq.1) then !y coordinates of first plane (11th view) are |
|
|
y_mech_sensor(i,j,k)=-yvec(k) ! exchanged due to last plane inversion |
|
|
endif |
|
|
enddo |
|
|
enddo |
|
|
enddo |
|
|
|
|
|
close(id) |
|
|
c call system('rm -f mech_pos.dat') |
|
|
|
|
|
c$$$ ! *** INIZIO DEBUG *** |
|
|
c$$$ do i=1,6 |
|
|
c$$$c do j=1,3 |
|
263 |
c$$$ do k=1,2 |
c$$$ do k=1,2 |
264 |
c$$$ j=1 |
c$$$ x_mech_sensor(i,j,k)=xvec(j) |
265 |
c$$$c print*,x_mech_sensor(1,j,k) |
c$$$ y_mech_sensor(i,j,k)=yvec(k) |
266 |
c$$$ print*,y_mech_sensor(i,j,k) |
c$$$ z_mech_sensor(i,j,k)=zvec(i) |
267 |
c$$$c print*,z_mech_sensor(i,j,k) |
c$$$ if(i.eq.1) then !y coordinates of first plane (11th view) are |
268 |
|
c$$$ y_mech_sensor(i,j,k)=-yvec(k) ! exchanged due to last plane inversion |
269 |
|
c$$$ endif |
270 |
c$$$ enddo |
c$$$ enddo |
271 |
c$$$c enddo |
c$$$ enddo |
|
c$$$ print*,' ' |
|
272 |
c$$$ enddo |
c$$$ enddo |
273 |
c$$$ ! *** FINE DEBUG *** |
c$$$ |
274 |
|
c$$$ close(id) |
275 |
|
c$$$c call system('rm -f mech_pos.dat') |
276 |
return |
c$$$ |
277 |
end |
c$$$c$$$ ! *** INIZIO DEBUG *** |
278 |
|
c$$$c$$$ do i=1,6 |
279 |
|
c$$$c$$$c do j=1,3 |
280 |
|
c$$$c$$$ do k=1,2 |
281 |
|
c$$$c$$$ j=1 |
282 |
|
c$$$c$$$c print*,x_mech_sensor(1,j,k) |
283 |
|
c$$$c$$$ print*,y_mech_sensor(i,j,k) |
284 |
|
c$$$c$$$c print*,z_mech_sensor(i,j,k) |
285 |
|
c$$$c$$$ enddo |
286 |
|
c$$$c$$$c enddo |
287 |
|
c$$$c$$$ print*,' ' |
288 |
|
c$$$c$$$ enddo |
289 |
|
c$$$c$$$ ! *** FINE DEBUG *** |
290 |
|
c$$$ |
291 |
|
c$$$ |
292 |
|
c$$$ return |
293 |
|
c$$$ end |
294 |
|
c$$$ |
295 |
|
|
296 |
c------------------------------------------------------------------------ |
c------------------------------------------------------------------------ |
297 |
|
|