/[PAMELA software]/yoda/techmodel/forroutines/tracker/readraw/trkunpack.f
ViewVC logotype

Contents of /yoda/techmodel/forroutines/tracker/readraw/trkunpack.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 4.0 - (show annotations) (download)
Sun Mar 6 04:33:02 2005 UTC (19 years, 9 months ago) by kusanagi
Branch: MAIN
CVS Tags: YODA4_1/00, YODA4_0/04, YODA4_0/03, YODA4_0/02, YODA4_0/01, YODA4_2/01, YODA4_2/00
Changes since 3.0: +0 -0 lines
Stable version 4.0 - 6 March 2005 - Maurizio Nagni

1 subroutine trkeventpkt(runerror,event_file_name)
2
3 include '../commonyoda/commontracker.f'
4 include '../commonyoda/dataformat.f'
5 c include '../commonyoda/trk_calib_parameters.f'
6 include '../commonyoda/level0.f'
7
8 logical DEBUG
9 common/DEBUGflag/DEBUG
10 c data DEBUG/.true./
11 data DEBUG/.false./
12
13
14 integer ndummy
15 data ndummy/1000/
16
17 integer runerror !readevent error flag
18 integer ffd_pkt !pkt file descriptor
19 !(file temporaneo)
20 character*60 event_file_name !nome file
21
22 integer lun_pkt
23 data lun_pkt/10/
24
25
26 open(unit=lun_pkt,
27 $ name=EVENT_FILE_NAME(1:lnblnk(EVENT_FILE_NAME)),
28 $ status='old',
29 $ form='unformatted'
30 $ )
31 ffd_pkt = FNum(lun_pkt) !reads unix file descriptor
32
33
34 call initlevel0
35
36 TOTDATAlength = 0. !total length of data buffer
37 do iview=1,ndummy !loop on views
38 call searchtrkheader(runerror,ffd_pkt)
39 c if(runerror.eq.-1) goto 24
40 if(runerror.eq.-1) goto 2222
41 if(runerror.eq.1) then
42 c print*,' '
43 c print*,'readraw: END OF CPU PACKET '
44 c print*,'______________________________________ '
45 c goto 9900 !end loop on files
46 c goto 8800 !end loop on views (DSP pkt)
47 goto 2222
48 endif
49
50 if(checkheader.ne.2) then
51 c print*,'>>>> ERROR <<<< (trkeventpkt)'
52 c print*,'>>>> CPU packet type ',!pkt_type,
53 c $ ' does not match DSP type ',checkheader
54 c goto 9909 ! next event (==> search another CPU header)
55 DAQmode_temp = ishft(iand(header(1),z'03f0'),-4)
56 DSPnumber_temp = iand(header(1),z'000f')
57 c print*,' -----------------------------------'
58 c $ ,iview
59 c print*,' DSP number-----',int(DSPnumber_temp)
60 c print*,' DAQ mode-------',int(DAQmode_temp)
61 c print*,' -----------------------------------'
62 goto 2525 !next view (==> search another DSP header)
63 endif
64
65 call unpackdata(runerror,ffd_pkt)
66 c if(runerror.eq.-1) goto 24
67 if(runerror.eq.-1) goto 2222
68 c if(runerror.eq.1) goto 23
69 if(runerror.eq.1) goto 2222
70
71 if(DEBUG)then
72 print*,' '
73 print*,' -----------------------------------',iview
74 print*,' DSP number-----',DSPnumber_dat
75 print*,' DAQ mode-------',DAQmode_dat
76 print*,' event number ',eventn_dat
77 print*,' datalength (13-bit w) ---- ',datalength_dat
78 c print*,' NCLUST---',nclust_dat
79 c print*,' CUTC-----',cutc_dat
80 c print*,' CUTCL----',cutcl_dat
81 print*,' L-1 addr---',addrcluster_dat(1)
82 print*,' signal-',signcluster_dat(1)
83 print*,' L-2 addr---',addrcluster_dat(2)
84 print*,' signal-',signcluster_dat(2)
85 print*,' L-3 addr---',addrcluster_dat(3)
86 print*,' signal-',signcluster_dat(3)
87 print*,' FC------',fc_dat
88 print*,' compression time ',compressiontime_dat
89 print*,' FL1--',fl1_dat
90 print*,' FL2--',fl2_dat
91 print*,' FL3--',fl3_dat
92 print*,' FL4--',fl4_dat
93 print*,' FL5--',fl5_dat
94 print*,' FL6--',fl6_dat
95 c print*,' checksum-',checksum_dat
96 endif
97
98 trk_DSP_ok(DSPnumber_dat)=1
99
100 call fillview(iview)
101
102 2525 continue
103 enddo !end loop on views
104
105 2222 continue
106
107 close (lun_pkt)
108 return
109 end
110
111 * **********************************************
112
113 c subroutine trk_calib_pkt(runerror,ffd_pkt)
114 subroutine trkcalibpkt(runerror,event_file_name)
115
116 include '../commonyoda/commontracker.f'
117 include '../commonyoda/dataformat.f'
118 include '../commonyoda/trk_calib_parameters.f'
119
120 integer ndummy
121 data ndummy/1000/
122
123 integer runerror !readevent error flag
124 integer ffd_pkt !pkt file descriptor
125 !(file temporaneo)
126 character*60 event_file_name !nome file
127
128 logical DEBUG
129 c data DEBUG/.true./
130 data DEBUG/.false./
131 ccc common/DEBUGflag/DEBUG
132
133
134 integer lun_pkt
135 data lun_pkt/10/
136
137
138 open(unit=lun_pkt,
139 $ name=EVENT_FILE_NAME(1:lnblnk(EVENT_FILE_NAME)),
140 $ status='old',
141 $ form='unformatted'
142 $ )
143 ffd_pkt = FNum(lun_pkt) !reads unix file descriptor
144
145
146
147 do iview=1,ndummy !loop on views (DSP pkt)
148 call searchtrkheader(runerror,ffd_pkt)
149 c if(runerror.eq.-1) goto 24
150 if(runerror.eq.-1) goto 2222
151 if(runerror.eq.1) then
152 c print*,' '
153 c print*,'readraw: END OF CPU PACKET '
154 c print*,'______________________________________ '
155 goto 2222 !end loop on views (DSP pkt)
156 endif
157 if(checkheader.ne.3) then
158 c print*,'>>>> ERROR <<<< (trkcalibpkt)'
159 c print*,'>>>> CPU packet type ',!pkt_type,
160 c $ ' does not match DSP type ',checkheader
161 DAQmode_temp = ishft(iand(header(1),z'03f0'),-4)
162 DSPnumber_temp = iand(header(1),z'000f')
163 c print*,' -----------------------------------'
164 c $ ,iview
165 c print*,' DSP number-----',int(DSPnumber_temp)
166 c print*,' DAQ mode-------',int(DAQmode_temp)
167 c print*,' -----------------------------------'
168 goto 2424 !next view (==> search another DSP header)
169 endif
170
171 call unpackcalibration(runerror,ffd_pkt)
172 c if(runerror.eq.-1) goto 24
173 if(runerror.eq.-1) goto 2222
174 c if(runerror.eq.1) goto 23
175 if(runerror.eq.1) goto 2222
176
177 if(DEBUG)then
178
179 print*,'Calibration packet ==> ',iview
180
181 print*,'---- Calibration packet ',iview,' ----'
182 print*,' DSP number ',DSPnumber_cal
183 print*,' DAQ mode ',DAQmode_cal
184 print*,' calibration run ',calibrationnumber
185 print*,' n. event used ',nused_event
186 print*,' <PED> ladder 1 ',ped_1
187 print*,' <PED> ladder 2 ',ped_2
188 print*,' <PED> ladder 3 ',ped_3
189 print*,' <SIG> ladder 1 ',sig_1
190 print*,' <SIG> ladder 2 ',sig_2
191 print*,' <SIG> ladder 3 ',sig_3
192 print*,' n.BAD ladder 1 ',nbad_1
193 print*,' n.BAD ladder 2 ',nbad_2
194 print*,' n.BAD ladder 3 ',nbad_3
195 print*,' error flag ',ff
196 if(nused_event.ne.0.or.ff.ne.0)then
197 print*,'*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*'
198 print*,'* !!! CALIBRATION FAILURE !!! *'
199 print*,'*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*'
200 endif
201 endif
202
203 DAQmode(iview)=DAQmode_cal
204 DSPnumber(iview)=DSPnumber_cal
205 calibnumber(iview)=calibrationnumber
206 ncalib_event(iview)=nused_event
207 ped_l1(iview)=ped_1
208 ped_l2(iview)=ped_2
209 ped_l3(iview)=ped_3
210 sig_l1(iview)=sig_1
211 sig_l2(iview)=sig_2
212 sig_l3(iview)=sig_3
213 nbad_l1(iview)=nbad_1
214 nbad_l2(iview)=nbad_2
215 nbad_l3(iview)=nbad_3
216 cal_flag(iview)=ff
217
218 do is=1,nstrips_view
219 DSPbad_par(iview,is)=DSPbad_o(DSPnumber_cal,is)
220 DSPped_par(iview,is)=DSPped_o(DSPnumber_cal,is)
221 DSPsig_par(iview,is)=DSPsig_o(DSPnumber_cal,is)
222 enddo
223 c
224 trk_DSP_ok(DSPnumber_cal)=1
225 c----------------------------------------------------------
226 c NVIEWS calibration packets should have been found
227 c----------------------------------------------------------
228 c if(n_cal_pkt.eq.nviews)then
229 c found_cal_pkt = .true.
230 c n_cal_pkt = 0
231 c endif
232 2424 continue
233 enddo ! end loop on views (calibration pkt)
234 2222 continue
235
236 close (lun_pkt)
237
238 return
239 end
240
241 ***...***...***...***...***...***...***...***...***...***...***...***...***...***...***...***
242 *
243 *
244 *
245 *
246 *
247 *
248 *
249 *
250 ***...***...***...***...***...***...***...***...***...***...***...***...***...***...***...***
251
252 subroutine searchtrkheader(runerror,ffd)
253 C.............................................................
254 C Search for a valid tracker DSP header (=>one view)
255 C and return the type of header
256 C.............................................................
257
258 include '../commonyoda/commontracker.f'
259 include '../commonyoda/dataformat.f'
260
261 integer ffd !input file descriptor
262 integer runerror !readevent error flag
263
264 c--------------------------------------------------
265 c N.B.13 bit packing is done for each DSP header+datablock,
266 C so each DSP 13 bit
267 c first word starts at the beginnig of a 16 bit word
268 c--------------------------------------------------
269 9100 continue
270 runerror=0 !error flag initialization
271 checkheader=0
272
273 c--------------------------------------------------
274 c looks for a DSP header beginning
275 C (a word beginning with 1110)
276 c--------------------------------------------------
277 call findstart(runerror,ffd)
278
279 if(runerror.eq.1) goto 200
280 if(runerror.eq.-1)then
281 runerror=1 !in this case I dont want the
282 !the program to crash
283 goto 200
284 endif
285 c--------------------------------------------------
286 c the first word could be a DSP header first word:
287 C reads 13 8-bit words and
288 c writes them in 16 13-bit words to check for all
289 C DSP header features
290 c--------------------------------------------------
291 runerror=0
292
293 call hunpacker(header,runerror,ffd)
294
295 if(runerror.eq.1) goto 200
296 c if(runerror.eq.-1) goto 200
297 if(runerror.eq.-1)then
298 runerror=1 !in this case I dont want the
299 !the program to crash
300 goto 200
301 endif
302 c--------------------------------------------------
303 c extracts and controls header:
304 c--------------------------------------------------
305 C last header word must be:
306 c |0001|1100|0000|0000| for acquisition
307 c |0001|1111|1111|1111| for calibration
308 c--------------------------------------------------
309 if(iand(header(16),z'ffff').eq.z'1c00') then !last header
310 checkheader=2 ! event
311 elseif(iand(header(16),z'ffff').eq.z'1fff') then !last header
312 checkheader=3 ! calibration packet
313 else
314 checkheader=1 ! not a valid DSP header
315 endif
316 c--------------------------------------------------
317 c first header word must be:
318 c |0001|110x|xxxx|xxxx|
319 c--------------------------------------------------
320 if(iand(header(1),z'fe00').ne.z'1c00')
321 $ checkheader=1 !not a valid DSP header
322 c--------------------------------------------------
323 c intermediate header words must be:
324 c |0001|010x|xxxx|xxxx|
325 c--------------------------------------------------
326 do i=2,15
327 if(iand(header(i),z'fc00').ne.z'1400')
328 $ checkheader=1 !not a valid DSP header
329 enddo
330 c--------------------------------------------------
331 c if checkheader = 1
332 c then this is not a DSP header (or some
333 c noise lurks around) so go a word ahead and
334 c try again
335 c--------------------------------------------------
336 if(checkheader.eq.1) then
337 call skipbyte(ffd)
338 goto 9100
339 endif
340 200 continue
341 end
342
343 *.............................................................
344
345
346 *.............................................................
347
348 subroutine unpackcalibration(runerror,ffd)
349 *.............................................................
350 * decode calibration data
351 * header + data(PED SIG BAD) + trailer
352 *............................................................
353 include '../commonyoda/commontracker.f'
354 include '../commonyoda/dataformat.f'
355
356 integer ffd !input file descriptor
357 integer runerror !readevent error flag
358 c buffer temporanei
359 integer*2 templ(nstrips_ladder)
360 real*4 tempf(nstrips_ladder)
361
362
363 12 format(z4)
364
365 *-----------------------------------------------------------
366 * HEADER
367 * (N.B. during test 2003 the header of calibration packets
368 * was only partially filled)
369 *
370 * the following is the final calibration header
371 *-----------------------------------------------------------
372 DAQmode_cal = ishft(iand(header(1),z'03f0'),-4)
373 DSPnumber_cal = iand(header(1),z'000f')
374 dataword = ior(ishft(iand(header(2),z'03ff')
375 $ ,10),iand(header(3),z'03ff'))
376 c calibrationnumber = ior(ishft(iand(header(4)
377 c $ ,z'03ff'),10),iand(header(5),z'03ff'))
378 calibrationnumber = iand(header(4),z'03ff')
379 nused_event = iand(header(5),z'03ff')
380 ped_1 = iand(header(6),z'03ff')
381 ped_2 = iand(header(7),z'03ff')
382 ped_3 = iand(header(8),z'03ff')
383 ped_1 = ped_1 * 4
384 ped_2 = ped_2 * 4
385 ped_3 = ped_3 * 4
386 sig_1 = iand(header(9),z'03ff')
387 sig_2 = iand(header(10),z'03ff')
388 sig_3 = iand(header(11),z'03ff')
389 nbad_1 = iand(header(12),z'03ff')
390 nbad_2 = iand(header(13),z'03ff')
391 nbad_3 = iand(header(14),z'03ff')
392 ff = ishft(iand(header(15),z'0300'),-8)
393 checksum_cal = iand(header(15),z'00ff')
394
395 runerror=0
396 call readtrailer(trailer,runerror,ffd)
397 c$$$ do i=1,3
398 c$$$ write(*,12)trailer(i)
399 c$$$ enddo
400 c-----------------------------------------------------------
401 c the checksum is a 8-bit word calculated as the
402 c XOR of the 16-bit data words,
403 c hence the XOR between the two halfs
404 C----------------------------------------------------------
405 do il=1,3 !loop on ladders
406
407 call readped(tempf,runerror,ffd)
408 do is=1,nstrips_ladder
409 iss=is+nstrips_ladder*(il-1)
410 DSPped_o(DSPnumber_cal,iss)=tempf(is)
411 c print*,il,iss,DSPped_o(DSPnumber,iss)
412 c print *,DSPnumber_cal,iss,tempf(is)
413
414 enddo
415
416 call readsig(tempf,runerror,ffd)
417 do is=1,nstrips_ladder
418 iss=is+nstrips_ladder*(il-1)
419 DSPsig_o(DSPnumber_cal,iss)=tempf(is)
420 c print*,DSPsig_o(DSPnumber,iss)
421 enddo
422
423 call readbad(templ,runerror,ffd)
424 do is=1,nstrips_ladder
425 iss=is+nstrips_ladder*(il-1)
426 DSPbad_o(DSPnumber_cal,iss)=templ(is)
427 c print*,il,is,iss,DSPbad_o(DSPnumber,iss)
428 enddo
429
430 C//// CAPIRE PERCHE` NON C'E` LA PAROLA DI FINE LADDER \\\\
431 c call readeol(word,runerror,ffd)
432 11 format(i1,' ',z4)
433 c write(*,11)il,word
434 call readtrailer(trailer,runerror,ffd)
435 c$$$ do i=1,3
436 c$$$ write(*,12)trailer(i)
437 c$$$ enddo
438
439 c print*,'fine ladder' !???
440
441 enddo !end loop on ladders
442
443 return
444 end
445 *.............................................................
446
447
448 subroutine unpackdata(runerror,ffd)
449 *.............................................................
450 * decode event data
451 * header + data + trailer
452 *............................................................
453 include '../commonyoda/commontracker.f'
454 include '../commonyoda/dataformat.f'
455 include '../commonyoda/level0.f'
456
457 integer ffd !input file descriptor
458 integer runerror !readevent error flag
459 integer l_tra
460
461
462 12 format(z4)
463
464 *-----------------------------------------------------------
465 * HEADER
466 *-----------------------------------------------------------
467
468 DAQmode_dat = ishft(iand(header(1),z'03f0'),-4)
469 DSPnumber_dat = iand(header(1),z'000f')
470 C ------------------------------------------------------
471 c words 2 and 3 give tshe number of transmitted 16-bit
472 c words ( 13 header words + data )
473 c NB: data are packed from 13-bit to 16-bit words,
474 c so the stream is complited with zeros in order to have
475 c a number of bits multiple of 16
476 l_tra = ior(ishft(iand(header(2),z'03ff')
477 $ ,10),iand(header(3),z'03ff'))
478 l_tra=l_tra-13
479 C ------------------------------------------------------
480 eventn_dat = ior(ishft(iand(header(4),z'03ff')
481 $ ,10),iand(header(5),z'03ff'))
482 nclust_dat = ishft(iand(header(6),z'0380'),-7)
483 cutc_dat = ishft(iand(header(6),z'0070'),-4)
484 cutcl_dat = iand(header(6),z'000f')
485 addrcluster_dat(1) = iand(header(7),z'03ff')
486 signcluster_dat(1) = iand(header(8),z'03ff')
487 addrcluster_dat(2) = iand(header(9),z'03ff')
488 signcluster_dat(2) = iand(header(10),z'03ff')
489 addrcluster_dat(3) = iand(header(11),z'03ff')
490 signcluster_dat(3) = iand(header(12),z'03ff')
491 fc_dat = ishft(iand(header(13),z'0300'),-8)
492 compressiontime_dat = iand(header(13),z'00ff')
493 fl5_dat = ishft(iand(header(14),z'0300'),-8)
494 fl4_dat = ishft(iand(header(14),z'0300'),-6)
495 fl3_dat = ishft(iand(header(14),z'0300'),-4)
496 fl2_dat = ishft(iand(header(14),z'0300'),-2)
497 fl1_dat = iand(header(14),z'0300')
498 fl6_dat = ishft(iand(header(15),z'0300'),-8)
499 checksum_dat = iand(header(15),z'00ff')
500 c-----------------------------------------------------------
501 c the cheacksum is a 8-bit word calculated as the
502 c XOR of the 16-bit data words,
503 c hence the XOR between the two halfs
504 C----------------------------------------------------------
505 runerror=0
506 nqualcosa=0
507 if(l_tra.eq.0)then
508 c call skipbyte(ffd)
509 goto 18 !empty buffer
510 endif
511 call dunpacker(l_tra,b_tra,runerror,ffd)
512 nqualcosa = (real(l_tra))/13*16
513 xx = b_tra(nqualcosa)
514 if (xx.eq.0) nqualcosa=nqualcosa -1
515
516 18 datalength_dat= nqualcosa
517
518 c$$$ TOTDATAlength = TOTDATAlength + datalength_dat
519 c$$$ do i=1,datalength_dat
520 c$$$ id = id + 1
521 c$$$ datatracker(id) = b_tra(i)
522 c$$$ enddo
523
524
525
526 11 format(i1,' ',z4)
527 c write(*,11)il,word
528 call readtrailer(trailer,runerror,ffd)
529 c$$$ do i=1,3
530 c$$$ write(*,12)trailer(i)
531 c$$$ enddo
532
533 ***************************************************************
534 * TRAILER *
535 ***************************************************************
536
537 pnum_dat=ishft(iand(trailer(1),z'f000'),-12)
538 cmdnum_dat=ishft(iand(trailer(1),z'0f00'),-8)
539 bid1_dat=ishft(iand(trailer(1),z'00c0'),-6)
540 bid2_dat=ishft(iand(trailer(1),z'0030'),-4)
541 bid3_dat=ishft(iand(trailer(1),z'000c'),-2)
542 bid4_dat=iand(trailer(1),z'0003')
543 bid5_dat=ishft(iand(trailer(2),z'c000'),-14)
544 bid6_dat=ishft(iand(trailer(2),z'3000'),-12)
545 bid7_dat=ishft(iand(trailer(2),z'0c00'),-10)
546 alarm_dat=ishft(iand(trailer(2),z'0300'),-8)
547 aswr_dat=ior(ishft(iand(trailer(2),z'00ff'),8)
548 $ ,ishft(iand(trailer(3),z'ff00'),-8))
549 crc_dat=iand(trailer(3),z'00ff')
550
551 bid_dat_sum = (bid1_dat + bid2_dat + bid3_dat + bid4_dat +
552 & bid5_dat + bid6_dat + bid7_dat)
553
554 bid_dat = bid_dat_sum/7
555
556 if (bid_dat.ne.1.and.bid_dat.ne.2) then
557 c write(*,*) '*** *** *** *** *** *** *** *** *** ***'
558 c write (*,*) 'unpack_data: TRAILER PACKET CORRUPTED - BID '
559 c $ ,bid_dat
560 c write(*,*) '*** *** *** *** *** *** *** *** *** ***'
561 endif
562 if (mod(bid_dat_sum,7).ne.0) then
563 bid_dat = 0
564 c write(*,*) '*** *** *** *** *** *** *** *** *** ***'
565 c write (*,*) 'unpack_data: TRAILER PACKET CORRUPTED - BID '
566 c $ ,bid_dat
567 c write(*,*) '*** *** *** *** *** *** *** *** *** ***'
568 endif
569
570 if (alarm_dat.eq.3) then
571 c write(*,*) '*** *** *** *** *** *** *** *** *** ***'
572 c write(*,*) 'unpack_data: AQUISITION ALARM'
573 c write(*,*) '*** *** *** *** *** *** *** *** *** ***'
574
575 endif
576
577 if (alarm_dat.ne.3.and.alarm_dat.ne.0) then
578 c write(*,*) '*** *** *** *** *** *** *** *** *** ***'
579 c write(*,*) 'unpack_data: TRAILER PACKET CORRUPTED - ALARM '
580 c $ ,alarm_dat
581 c write(*,*) '*** *** *** *** *** *** *** *** *** ***'
582
583 endif
584
585
586 return
587 end
588
589
590 *.............................................................................
591 subroutine initlevel0
592
593 include '../commonyoda/level0.f'
594
595
596 do i=1, nviews
597
598 DAQmode(i) = 0
599 DSPnumber(i) = 0
600 eventn(i) = 0
601 nclust(i) = 0
602 cutc(i) = 0
603 cutcl(i) = 0
604 addrcluster(i,1) = 0
605 signcluster(i,1) = 0
606 addrcluster(i,2) = 0
607 signcluster(i,2) = 0
608 addrcluster(i,3) = 0
609 signcluster(i,3) = 0
610 fc(i) = 0
611 compressiontime(i) = 0
612 fl5(i) = 0
613 fl4(i) = 0
614 fl3(i) = 0
615 fl2(i) = 0
616 fl1(i) = 0
617 fl6(i) = 0
618 checksum(i) = 0
619 DATAlength(i) = 0
620 pnum(i)= 0
621 cmdnum(i)= 0
622 bid(i) = 1
623 alarm(i)= 0
624 aswr(i) = 0
625 enddo
626
627 TOTDATAlength = 0
628 good0=.true.
629
630 return
631 end
632
633
634 * *** *** *** *** *** *** *** *** ***
635 *
636 *
637 *
638 *
639 *
640 *
641 * *** *** *** *** *** *** *** *** ***
642 subroutine fillview(i)
643 c -----------------------------------------------------
644 c fill variables related to view i
645 c which will be stored in the level0 nt-ple
646 c at the end of loop on views
647 c ----------------------------------------------------
648
649 include '../commonyoda/commontracker.f'
650 include '../commonyoda/level0.f'
651 include '../commonyoda/dataformat.f'
652
653 logical DEBUG
654 common/DEBUGflag/DEBUG
655
656
657 DAQmode(i) = DAQmode_dat
658 DSPnumber(i) = DSPnumber_dat
659 eventn(i) = eventn_dat
660 nclust(i) = nclust_dat
661 cutc(i) = cutc_dat
662 cutcl(i) = cutcl_dat
663 addrcluster(i,1) = addrcluster_dat(1)
664 signcluster(i,1) = signcluster_dat(1)
665 addrcluster(i,2) = addrcluster_dat(2)
666 signcluster(i,2) = signcluster_dat(2)
667 addrcluster(i,3) = addrcluster_dat(3)
668 signcluster(i,3) = signcluster_dat(3)
669 fc(i) = fc_dat
670 compressiontime(i) = compressiontime_dat
671 fl5(i) = fl5_dat
672 fl4(i) = fl4_dat
673 fl3(i) = fl3_dat
674 fl2(i) = fl2_dat
675 fl1(i) = fl1_dat
676 fl6(i) = fl6_dat
677 checksum(i) = checksum_dat
678 DATAlength(i) = datalength_dat
679
680 c -----------------------------------------------------------------------
681 c filling TRAILER variables
682 c ----------------------------------------------------------------------
683
684 pnum(i)= pnum_dat
685 cmdnum(i)= cmdnum_dat
686 bid(i) = bid_dat
687 alarm(i)= alarm_dat
688 aswr(i) = aswr_dat
689
690 if(DEBUG)then
691
692 print*,'*-*-*-*-*-*-TRAILER-*-*-*-*-*-*'
693 print*,'* PNUM (periferal num) ',pnum_dat
694 print*,'* CMDNUM (command) ',cmdnum_dat
695 print*,'* BID (board id) ',bid_dat
696 print*,'* ALARM ',alarm_dat
697 print*,'*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*'
698
699 endif
700
701 do idat=1,datalength_dat
702 id = TOTDATAlength + idat
703 datatracker(id) = b_tra(idat)
704 enddo
705 TOTDATAlength = TOTDATAlength + datalength_dat
706
707 c print*,'TOTDATALENGTH ',TOTDATAlength
708
709
710 return
711 end
712

  ViewVC Help
Powered by ViewVC 1.1.23