| 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 |