18 |
include 'common_reduction.f' |
include 'common_reduction.f' |
19 |
include 'calib.f' |
include 'calib.f' |
20 |
|
|
21 |
|
data eventn_old/nviews*0/ |
22 |
|
|
23 |
integer ierror |
integer ierror |
24 |
ierror = 0 |
ierror = 0 |
25 |
|
|
30 |
c call stripmask !called later, after CN computation |
c call stripmask !called later, after CN computation |
31 |
call init_level1 |
call init_level1 |
32 |
|
|
33 |
good1 = good0 |
c good1 = good0 |
34 |
|
c-------------------------------------------------- |
35 |
|
c check the LEVEL0 event status for missing |
36 |
|
c sections or DSP alarms |
37 |
|
c ==> set the variable GOOD1(12) |
38 |
|
c-------------------------------------------------- |
39 |
|
do iv=1,nviews |
40 |
|
if(DSPnumber(iv).gt.0.and.DSPnumber(iv).le.12)then |
41 |
|
c ------------------------ |
42 |
|
c GOOD |
43 |
|
c ------------------------ |
44 |
|
GOOD1(DSPnumber(iv))=0 !OK |
45 |
|
c ------------------------ |
46 |
|
c CRC error |
47 |
|
c ------------------------ |
48 |
|
if(crc(iv).eq.1) then |
49 |
|
GOOD1(DSPnumber(iv)) = 2 |
50 |
|
goto 18 !next view |
51 |
|
endif |
52 |
|
c ------------------------ |
53 |
|
c online-software alarm |
54 |
|
c ------------------------ |
55 |
|
if( |
56 |
|
$ fl1(iv).ne.0.or. |
57 |
|
$ fl2(iv).ne.0.or. |
58 |
|
$ fl3(iv).ne.0.or. |
59 |
|
$ fl4(iv).ne.0.or. |
60 |
|
$ fl5(iv).ne.0.or. |
61 |
|
$ fl6(iv).ne.0.or. |
62 |
|
$ fc(iv).ne.0.or. |
63 |
|
$ DATAlength(iv).eq.0.or. |
64 |
|
$ .false.)then |
65 |
|
GOOD1(DSPnumber(iv))=3 |
66 |
|
goto 18 |
67 |
|
endif |
68 |
|
c ------------------------ |
69 |
|
c DSP-counter jump |
70 |
|
c ------------------------ |
71 |
|
if( |
72 |
|
$ eventn_old(iv).ne.0.and. !first event in this file |
73 |
|
$ eventn(iv).ne.1.and. !first event in run |
74 |
|
$ good_old(DSPnumber(iv)).ne.0.and. !previous event corrupted |
75 |
|
$ .true.)then |
76 |
|
|
77 |
|
if(eventn(iv).ne.(eventn_old(iv)+1))then |
78 |
|
GOOD1(DSPnumber(iv))=4 |
79 |
|
goto 18 |
80 |
|
endif |
81 |
|
|
82 |
|
endif |
83 |
|
c ------------------------ |
84 |
|
18 continue |
85 |
|
endif |
86 |
|
enddo |
87 |
|
|
88 |
|
ngood = 0 |
89 |
|
do iv = 1,nviews |
90 |
|
eventn_old(iv) = eventn(iv) |
91 |
|
good_old(iv) = good1(iv) |
92 |
|
ngood = ngood + good1(iv) |
93 |
|
enddo |
94 |
|
c if(ngood.ne.0)print*,'* WARNING * LEVEL0 event status: ' |
95 |
|
c $ ,(good1(i),i=1,nviews) |
96 |
c-------------------------------------------------- |
c-------------------------------------------------- |
97 |
c read the variable DATATRACKER from LEVEL0 |
c read the variable DATATRACKER from LEVEL0 |
98 |
c and fill the variable ADC (inverting view 11) |
c and fill the variable ADC (invertin view 11) |
99 |
c-------------------------------------------------- |
c-------------------------------------------------- |
100 |
call filladc(iflag) |
call filladc(iflag) |
101 |
if(iflag.ne.0)then |
if(iflag.ne.0)then |
102 |
good1=0 |
c good1=0!<<<<<<<<<<<<<<< |
103 |
c if(DEBUG)print*,'event ',eventn(1),' >>>>> decode ERROR' |
c if(DEBUG)print*,'event ',eventn(1),' >>>>> decode ERROR' |
104 |
ierror = 220 |
ierror = 220 |
105 |
goto 200 |
c goto 200 |
106 |
|
c print*,'filladc error' |
107 |
endif |
endif |
108 |
|
|
109 |
c-------------------------------------------------- |
c-------------------------------------------------- |
180 |
call save_cluster(iv) |
call save_cluster(iv) |
181 |
else |
else |
182 |
fshower(iv) = 1 |
fshower(iv) = 1 |
183 |
|
GOOD1(DSPn) = 11 |
184 |
endif |
endif |
185 |
enddo ! end loop on views |
enddo ! end loop on views |
186 |
do iv=1,nviews |
do iv=1,nviews |
195 |
C or the event has too many clusters |
C or the event has too many clusters |
196 |
C--------------------------------------------- |
C--------------------------------------------- |
197 |
200 continue |
200 continue |
198 |
|
|
199 |
|
ngood = 0 |
200 |
|
do iv = 1,nviews |
201 |
|
ngood = ngood + good1(iv) |
202 |
|
enddo |
203 |
|
if(ngood.ne.0)print*,'* WARNING * LEVEL1 event status: ' |
204 |
|
$ ,(good1(i),i=1,nviews) |
205 |
c------------------------------------------------------------------------ |
c------------------------------------------------------------------------ |
206 |
c |
c |
207 |
c closes files and exits |
c closes files and exits |
229 |
include 'level1.f' |
include 'level1.f' |
230 |
include 'level0.f' |
include 'level0.f' |
231 |
|
|
232 |
good1 = 0 |
c good1 = 0 |
233 |
|
do iv=1,12 |
234 |
|
good1(iv) = 1 !missing packet |
235 |
|
enddo |
236 |
nclstr1 = 0 |
nclstr1 = 0 |
237 |
totCLlength = 0 |
totCLlength = 0 |
238 |
do ic=1,nclstrmax |
do ic=1,nclstrmax |
329 |
first=first+3 |
first=first+3 |
330 |
last=last-3 |
last=last-3 |
331 |
endif |
endif |
332 |
|
|
333 |
do is=first,last !loop on strips in each ladder |
do is=first,last !loop on strips in each ladder |
334 |
|
|
335 |
if(is.le.iseed+1) goto 220 |
if(is.le.iseed+1) goto 220 |
336 |
******************************************************* |
******************************************************* |
337 |
* Elena 08/2006 |
* Elena 08/2006 |
338 |
* QUESTA PARTE NON E` ADEGUATA per cluster con grossi rilasci di carica |
* QUESTA PARTE NON E` ADEGUATA per cluster con grossi rilasci di carica |
339 |
* perche` salva molte volte lo stesso cluster |
* perche` salva molte volte lo stesso cluster |
340 |
* (salvo il cluster rispetto al massimo e basta...) |
* (salvo il cluster rispetto al primo massimo e basta...) |
341 |
******************************************************* |
******************************************************* |
342 |
c$$$c----------------------------------------- |
c$$$c----------------------------------------- |
343 |
c$$$c after a cluster seed as been found, |
c$$$c after a cluster seed as been found, |
378 |
c$$$ itemp=itemp+1 |
c$$$ itemp=itemp+1 |
379 |
c$$$ if(itemp.eq.last) goto 230 !stops if reaches last strip |
c$$$ if(itemp.eq.last) goto 230 !stops if reaches last strip |
380 |
c$$$ enddo ! of the ladder |
c$$$ enddo ! of the ladder |
381 |
do while(value(itemp).le.value(itemp+1)) |
do while( |
382 |
|
$ value(itemp).le.value(itemp+1) |
383 |
|
$ .and.value(itemp+1).gt.clseedcut(itemp+1)) |
384 |
itemp=itemp+1 |
itemp=itemp+1 |
385 |
if(itemp.eq.last) goto 230 !stops if reaches last strip |
if(itemp.eq.last) goto 230 !stops if reaches last strip |
386 |
enddo ! of the ladder |
enddo ! of the ladder |