/[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 6.1 - (show annotations) (download)
Mon Feb 27 09:25:41 2006 UTC (18 years, 9 months ago) by kusanagi
Branch: MAIN
CVS Tags: yodaPreTermistors2_1/00, YODA6_2/01, YODA6_2/00, YODA6_1/00, YODA6_3/00, yodaPreTermistores2_0/00
Changes since 6.0: +13 -7 lines
Bug fix from Florence group: wrong decoding of a flag of the tracker.
Received by mail 23 February 2006.

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

  ViewVC Help
Powered by ViewVC 1.1.23