integer ia(10000),ib(10000),array(10000) real max_volt, min_volt,a integer no_steps,event_step ,iss,iadc(64,20) real*8 sum_b(64),sumsq_b(64) real average_b(64),sigma_b(64),weight_b(64),fitx_b(64),adata(200) real*8 sum_p(50),sumsq_p(50) real average_p(50),sigma_p(50),weight_p(50),fitx_p(50) character*6 tag1(7) character*45 title real afil(7) common/pawc/hmemory(8000000) c c c open(unit=10,file='test_1.dat',form='formatted',status='old') open(unit=26,form='unformatted',recl=4096,access='direct') tag1(1)='event' tag1(2)='chnl' tag1(3)='adc' tag1(4)='sample' tag1(5)='chdif' tag1(6)='smpdif' call hlimit(8000000) call hrfile(26,'adctest','n') call hbookn(500,' data ntuple ', 6, '//adctest',16384,tag1) 9000 format(1x, 'channel', i3,' averge ADC value') 9001 format(1x, 'channel', i3,' sigma on average TDC value') 9002 format(1x, 'channel', i3,' 1st sample ') write(unit=title,fmt=9000) i call hbook1(100,title,64,0.,64.,0.) write(unit=title,fmt=9001) i call hbook1(200,title,64,0.,64.,0.) i=1 write(unit=title,fmt=9002) i call hbook1(300,title,16384,0.,16384.,0.) c c c nsample =12 nevent = 5000 do i=1,64 sum_b(i)=0 sumsq_b(i)=0 end do c i1 = ishft(ia(2),-16) c i2 = iand(i1,"7777) c i3 = iand(ia(2),"7777) c i4 = ishft(i3 ,12) c i = i2+i4 c print 1009, i c c c do ik=1,nevent read(10,1002) j read(10,1002) j do i=1,(4*nsample) read(10,1050) (ia(k+(i-1)*8), k=1,8) c print 1051, (ia(k+(i-1)*6), k=1,8) c read *, iss end do read(10,1002) j do i=1,32 do k=1,nsample iadc(((i-1)*2+1),k) = iand(ia((i-1)*nsample+k),o'37777') iadc((i*2),k) = iand(ishft(ia((i-1)*nsample+k), -16),o'37777') end do end do do i=1,64 print 1052, (iadc(i,j), j=1,nsample) c read *, iss end do c read *, iss c c c iskip=0 do j=1, nsample-1 if ((iadc(2,j) .gt. 1040) .and. (iadc(2,j) .lt. 1140)) then if (iskip .eq. 0) then if (iadc(2,j+1) .gt. 1140) then iskip=1 call hf1(300, float(iadc(2,j+1)),1.) end if end if end if end do afil(1) = ik do i=1,64 afil(2) = i do j=1,nsample afil(3)=iadc(i,j) afil(4)=j c if(i .lt. 64) then afil(5)= iadc(i,j) - iadc((i+1), j) else afil(5)= iadc(i,j) end if c if(j .lt. nsample) then afil(6)= iadc(i,(j+1)) - iadc(i,j) else afil(6)= iadc(i,j) end if c call hfn(500,afil) sum_b(i) = sum_b(i)+iadc(i,j) sumsq_b(i) = sumsq_b(i) + iadc(i,j)*iadc(i,j) end do end do end do c c c do ik=1, 64 a=ik b= nevent*nsample average_b(ik)=sum_b(ik)/(nevent*nsample) sigma_b(ik) = sqrt(sumsq_b(ik)- ((sum_b(ik)**2)/b))/sqrt(b) call hf1(100, a, average_b(ik)) call hf1(200, a, sigma_b(ik)) end do c c call hrout(0,icycle,' ') call hrend('adctest') c c print 1002, ia(1) close(10) stop 1001 format(z8) 1002 format(1x,z8) 1003 format(5(1x,z8)) 1004 format(8(1x,z8)) 1006 format(z8,5(1x,z8)) 1007 format(6(1x,z8)) 1008 format(i8) 1009 format(1x,i8) 1010 format(1x,i4,1x,i4,1x,f10.1,1x,f10.1) 1011 format(2x,i2,8(1x,z8)) 1012 format(2x,i2,1x,z8) 1013 format(8(1x,z8)) 1020 format(' first word of the event =', z8) 1021 format(' channel=',i8,' id =',i8) 1022 format(' 2 header words - frame', i8,' sample',i8) 1023 format(' sampe ',i8,' adc',i8) 1024 format(' sampe ',i8,' adc',i8,'---- last sample') 1025 format(' last word of the event =', z8) 1026 format(' wrong word =', z8) c 1031 format(1x,i3,8(1x,z8)) 1032 format(1x,i3,1x,z8) 1033 format(i4,8(1x,z8)) 1034 format(i4,1x,z8) 1041 format(1x,i8,1x,i8) 2004 format(1x,z8) 1050 format(8(z9)) 1051 format(8(1x,z8)) 1052 format(12(1x,z4)) end