/[PAMELA software]/DarthVader/TrackerLevel2/src/F77/cncomp.f
ViewVC logotype

Diff of /DarthVader/TrackerLevel2/src/F77/cncomp.f

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.2 by pam-fi, Tue May 30 16:30:37 2006 UTC revision 1.9 by pam-fi, Fri Aug 31 14:56:52 2007 UTC
# Line 10  Line 10 
10        subroutine cncomp(i,j,errflag)    !(view, VA1)        subroutine cncomp(i,j,errflag)    !(view, VA1)
11    
12        include 'commontracker.f'        include 'commontracker.f'
13          include 'level1.f'
14        include 'common_reduction.f'        include 'common_reduction.f'
15        include 'calib.f'        include 'calib.f'
16    
# Line 32  c--------------------------------------- Line 33  c---------------------------------------
33           strange(i,j,k)=1       !initializes unusually high or low signal           strange(i,j,k)=1       !initializes unusually high or low signal
34        enddo                     ! affected strips flag        enddo                     ! affected strips flag
35    
36    c------------------------------------------------------------------------
37    c     (september 2007)
38    c     remove from CN computation the first and the last 3 channels of
39    c     each X view, becouse they ar not connected to any strip
40    c------------------------------------------------------------------------
41          if(mod(i,2).eq.0)then
42             if(j.eq.1)then
43                do k=1,3
44                   strange(i,j,k)=0
45                enddo
46             elseif(j.eq.nva1_ladder)then
47                do k=nstrips_va1,nstrips_va1-2,-1
48                   strange(i,j,k)=0
49                enddo
50             endif
51          endif
52    
53        newclstr=1                !flag to warn about new found signal        newclstr=1                !flag to warn about new found signal
54  c                               ! affected strips  c                               ! affected strips
55  c------------------------------------------------------------------------  c------------------------------------------------------------------------
# Line 50  c--------------------------------------- Line 68  c---------------------------------------
68                
69        do k=1,nstrips_va1        do k=1,nstrips_va1
70           nstr = nstr + strange(i,j,k) !uses only           nstr = nstr + strange(i,j,k) !uses only
71           if(mod(i,2).eq.1) then !odd strip ---> Y view           if(mod(i,2).eq.1) then ! ---> Y view
72              signal(k) = - (DBLE(adc(i,j,k)) - pedestal(i,j,k)) !negative signal              signal(k) = - (DBLE(adc(i,j,k)) - pedestal(i,j,k)) !negative signal
73           else                   !even strip ---> X view           else                   ! ---> X view
74              signal(k) =    DBLE(adc(i,j,k)) - pedestal(i,j,k) !positive signal              signal(k) =    DBLE(adc(i,j,k)) - pedestal(i,j,k) !positive signal
75           endif           endif
76           smean = smean + signal(k)*strange(i,j,k)           smean = smean + signal(k)*strange(i,j,k)
77           ssigma = ssigma + (signal(k)**2)*strange(i,j,k)           ssigma = ssigma + (signal(k)**2)*strange(i,j,k)
78        enddo        enddo
79                
80        smean=smean/nstr          !strips value distribution mean        smean=smean/nstr          !strips value distribution mean      
         
81        ssigma=SQRT((ssigma/nstr)-smean**2) !strips value distribution sigma        ssigma=SQRT((ssigma/nstr)-smean**2) !strips value distribution sigma
82                
83        cut=scut*ssigma           !exclusion cut        cut=scut*ssigma           !exclusion cut
84                
85          nco=0
86          nbo=0
87        do k=1,nstrips_va1        do k=1,nstrips_va1
88           if(ABS(signal(k)-smean).gt.cut) then           if(ABS(signal(k)-smean).gt.cut) then
89              strange(i,j,k)=0    !marks strips exceeding cut              strange(i,j,k)=0    !marks strips exceeding cut
90    c            print*,i,j,k,signal(k),smean
91           endif           endif
92             nco=nco+strange(i,j,k)
93             nbo=nbo+bad(i,j,k)
94        enddo                     ! in order not to use them in CN computation        enddo                     ! in order not to use them in CN computation
95    
96    c$$$      if(i.eq.12.and.(j.eq.2.or.j.eq.3))then
97    c$$$         print*,'view ',i,' vk ',j
98    c$$$         print*,'ADC (1-51-128) = ',adc(i,j,1),adc(i,j,52),adc(i,j,128)
99    c$$$         print*,'<ADC-PED> = ',smean
100    c$$$         print*,'s         = ',ssigma
101    c$$$         print*,'nstrange  = ',128-nco
102    c$$$         print*,'nbad      = ',128-nbo
103    c$$$      endif
104    
105        countme = countme + 1         !???        countme = countme + 1         !???
106        if (countme.le.3) goto 666 !???        if (countme.le.3) goto 666 !???
# Line 133  c--------------------------------------- Line 163  c---------------------------------------
163        subroutine cnoise(i,j,gulp) !(view, VA1)        subroutine cnoise(i,j,gulp) !(view, VA1)
164    
165        include 'commontracker.f'        include 'commontracker.f'
166          include 'level0.f'
167          include 'level1.f'
168        include 'common_reduction.f'        include 'common_reduction.f'
169        include 'calib.f'        include 'calib.f'
170                
# Line 141  c--------------------------------------- Line 173  c---------------------------------------
173                
174        ncn=0                     !number of strips in cn computation        ncn=0                     !number of strips in cn computation
175        cn(i,j)=0                 !initializes cn variable        cn(i,j)=0                 !initializes cn variable
176          cnrms(i,j)=0              !initializes cn rms
177          cnn(i,j)=0                !initialize cn flag
178    
179        do k=1,nstrips_va1        !loops on strips        do k=1,nstrips_va1        !loops on strips
180  *        tags strange, bad or signal-affected strips  *        tags strange, bad or signal-affected strips
181           iok=strange(i,j,k)*bad(i,j,k)*clstr(i,j,k)           iok = strange(i,j,k)*bad(i,j,k)*clstr(i,j,k)
182           cn(i,j)=cn(i,j) + (DBLE(adc(i,j,k)) - pedestal(i,j,k))*iok           cn(i,j) = cn(i,j) + (DBLE(adc(i,j,k)) - pedestal(i,j,k))*iok
183             cnrms(i,j) = cnrms(i,j)
184         $        + (DBLE(adc(i,j,k)) - pedestal(i,j,k))
185         $        *(DBLE(adc(i,j,k)) - pedestal(i,j,k))*iok
186           ncn = ncn + iok            !counts number of strips in cn computation           ncn = ncn + iok            !counts number of strips in cn computation
187        enddo        enddo
188                
189        NSTRIPMAX=10        if(ncn.lt.NSTRIPMIN) then         !no signal free strips on this VA1...
       if(ncn.lt.NSTRIPMAX) then         !no signal free strips on this VA1...  
190           if(ncn.eq.0)then           if(ncn.eq.0)then
191              if(debug)print*,' WARNING - cnoise: ',              if(debug.eq.1)print*,' WARNING - cnoise: ',
192       $        'no strips for CN computation on VA1 ',j,       $        'no strips for CN computation on VA1 ',j,
193       $        ', VIEW ',i       $        ', VIEW ',i,'  >>> FAILED '
194           else           else
195              if(debug)print*,' WARNING - cnoise: ',              if(debug.eq.1)print*,' WARNING - cnoise: ',
196       $        'less than ',NSTRIPMAX       $        'less than ',NSTRIPMIN
197       $           ,'strips for CN computation on VA1 ',j,       $           ,' strips for CN computation on VA1 ',j,
198       $        ', VIEW ',i       $        ', VIEW ',i,'  >>> FAILED '
199           endif           endif
200           gulp=1           gulp=1
201             cnn(i,j) = 0
202        else        else
203           cn(i,j)=cn(i,j)/DBLE(ncn) !<<<< computes common noise           cn(i,j)=cn(i,j)/DBLE(ncn) !<<<< computes common noise
204             cnrms(i,j)= SQRT( cnrms(i,j)/DBLE(ncn) - cn(i,j)**2 )
205             cnn(i,j) = ncn
206           gulp=0                           gulp=0                
207    c$$$         print*,'Event ',eventn(1)
208    c$$$     $        ,': cn(',i,',',j,')= ',cn(i,j),' ncn ',ncn
209            
210             if(debug.eq.1.and.ABS(cn(i,j)).gt.1000)
211         $        print*,'Event ',eventn(1)
212         $        ,': cn(',i,',',j,')= ',cn(i,j),' ncn ',ncn
213        endif        endif
214    
215        return        return
# Line 191  c--------------------------------------- Line 236  c---------------------------------------
236        subroutine cutcn(i,j)     !(view, VA1)        subroutine cutcn(i,j)     !(view, VA1)
237    
238        include 'commontracker.f'        include 'commontracker.f'
239          include 'level1.f'
240        include 'common_reduction.f'        include 'common_reduction.f'
241        include 'calib.f'        include 'calib.f'
242    

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.9

  ViewVC Help
Powered by ViewVC 1.1.23