--- DarthVader/TrackerLevel2/src/F77/cncomp.f 2006/05/30 16:30:37 1.2 +++ DarthVader/TrackerLevel2/src/F77/cncomp.f 2007/05/24 16:45:48 1.7 @@ -10,6 +10,7 @@ subroutine cncomp(i,j,errflag) !(view, VA1) include 'commontracker.f' + include 'level1.f' include 'common_reduction.f' include 'calib.f' @@ -50,27 +51,39 @@ do k=1,nstrips_va1 nstr = nstr + strange(i,j,k) !uses only - if(mod(i,2).eq.1) then !odd strip ---> Y view + if(mod(i,2).eq.1) then ! ---> Y view signal(k) = - (DBLE(adc(i,j,k)) - pedestal(i,j,k)) !negative signal - else !even strip ---> X view + else ! ---> X view signal(k) = DBLE(adc(i,j,k)) - pedestal(i,j,k) !positive signal endif smean = smean + signal(k)*strange(i,j,k) ssigma = ssigma + (signal(k)**2)*strange(i,j,k) enddo - smean=smean/nstr !strips value distribution mean - + smean=smean/nstr !strips value distribution mean ssigma=SQRT((ssigma/nstr)-smean**2) !strips value distribution sigma cut=scut*ssigma !exclusion cut + nco=0 + nbo=0 do k=1,nstrips_va1 if(ABS(signal(k)-smean).gt.cut) then strange(i,j,k)=0 !marks strips exceeding cut +c print*,i,j,k,signal(k),smean endif + nco=nco+strange(i,j,k) + nbo=nbo+bad(i,j,k) enddo ! in order not to use them in CN computation +c$$$ if(i.eq.12.and.(j.eq.2.or.j.eq.3))then +c$$$ print*,'view ',i,' vk ',j +c$$$ print*,'ADC (1-51-128) = ',adc(i,j,1),adc(i,j,52),adc(i,j,128) +c$$$ print*,' = ',smean +c$$$ print*,'s = ',ssigma +c$$$ print*,'nstrange = ',128-nco +c$$$ print*,'nbad = ',128-nbo +c$$$ endif countme = countme + 1 !??? if (countme.le.3) goto 666 !??? @@ -133,6 +146,8 @@ subroutine cnoise(i,j,gulp) !(view, VA1) include 'commontracker.f' + include 'level0.f' + include 'level1.f' include 'common_reduction.f' include 'calib.f' @@ -141,30 +156,43 @@ ncn=0 !number of strips in cn computation cn(i,j)=0 !initializes cn variable + cnrms(i,j)=0 !initializes cn rms + cnn(i,j)=0 !initialize cn flag do k=1,nstrips_va1 !loops on strips * tags strange, bad or signal-affected strips - iok=strange(i,j,k)*bad(i,j,k)*clstr(i,j,k) - cn(i,j)=cn(i,j) + (DBLE(adc(i,j,k)) - pedestal(i,j,k))*iok + iok = strange(i,j,k)*bad(i,j,k)*clstr(i,j,k) + cn(i,j) = cn(i,j) + (DBLE(adc(i,j,k)) - pedestal(i,j,k))*iok + cnrms(i,j) = cnrms(i,j) + $ + (DBLE(adc(i,j,k)) - pedestal(i,j,k)) + $ *(DBLE(adc(i,j,k)) - pedestal(i,j,k))*iok ncn = ncn + iok !counts number of strips in cn computation enddo - NSTRIPMAX=10 - if(ncn.lt.NSTRIPMAX) then !no signal free strips on this VA1... + if(ncn.lt.NSTRIPMIN) then !no signal free strips on this VA1... if(ncn.eq.0)then if(debug)print*,' WARNING - cnoise: ', $ 'no strips for CN computation on VA1 ',j, - $ ', VIEW ',i + $ ', VIEW ',i,' >>> FAILED ' else if(debug)print*,' WARNING - cnoise: ', - $ 'less than ',NSTRIPMAX - $ ,'strips for CN computation on VA1 ',j, - $ ', VIEW ',i + $ 'less than ',NSTRIPMIN + $ ,' strips for CN computation on VA1 ',j, + $ ', VIEW ',i,' >>> FAILED ' endif gulp=1 + cnn(i,j) = 0 else cn(i,j)=cn(i,j)/DBLE(ncn) !<<<< computes common noise + cnrms(i,j)= SQRT( cnrms(i,j)/DBLE(ncn) - cn(i,j)**2 ) + cnn(i,j) = ncn gulp=0 +c$$$ print*,'Event ',eventn(1) +c$$$ $ ,': cn(',i,',',j,')= ',cn(i,j),' ncn ',ncn + + if(debug.and.ABS(cn(i,j)).gt.1000) + $ print*,'Event ',eventn(1) + $ ,': cn(',i,',',j,')= ',cn(i,j),' ncn ',ncn endif return @@ -191,6 +219,7 @@ subroutine cutcn(i,j) !(view, VA1) include 'commontracker.f' + include 'level1.f' include 'common_reduction.f' include 'calib.f'