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

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

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

revision 1.8 by pam-fi, Wed Oct 25 16:18:41 2006 UTC revision 1.9 by pam-fi, Fri Oct 27 16:08:19 2006 UTC
# Line 12  Line 12 
12        subroutine track_finding(iflag)        subroutine track_finding(iflag)
13    
14        include 'commontracker.f'        include 'commontracker.f'
15          include 'level1.f'
16        include 'common_momanhough.f'        include 'common_momanhough.f'
17        include 'common_mech.f'        include 'common_mech.f'
18        include 'common_xyzPAM.f'        include 'common_xyzPAM.f'
19        include 'common_mini_2.f'        include 'common_mini_2.f'
20        include 'calib.f'        include 'calib.f'
21        include 'level1.f'  c      include 'level1.f'
22        include 'level2.f'        include 'level2.f'
23    
24        include 'momanhough_init.f'  c      include 'momanhough_init.f'
25                
 c      logical DEBUG  
 c      common/dbg/DEBUG  
   
26  *-------------------------------------------------------------------------------  *-------------------------------------------------------------------------------
27  *     STEP 1  *     STEP 1
28  *-------------------------------------------------------------------------------  *-------------------------------------------------------------------------------
# Line 47  c      common/dbg/DEBUG Line 45  c      common/dbg/DEBUG
45  c      iflag=0  c      iflag=0
46        call cl_to_couples(iflag)        call cl_to_couples(iflag)
47        if(iflag.eq.1)then        !bad event        if(iflag.eq.1)then        !bad event
48           goto 880               !fill ntp and go to next event                       goto 880               !go to next event
49        endif        endif
50                
 *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 *     selezione di tracce pulite per diagnostica  
 *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
 c$$$         if(DEBUG)then  
 c$$$            do ip=1,nplanes  
 c$$$               if(ncp_plane(ip).ne.1)good2=.false.  
 c$$$            enddo  
 c$$$c            if(good2.eq.0)goto 100!next event  
 c$$$c            if(good2.eq.0)goto 880!fill ntp and go to next event  
 c$$$         endif  
           
   
   
51  *-----------------------------------------------------  *-----------------------------------------------------
52  *-----------------------------------------------------  *-----------------------------------------------------
53  *     HOUGH TRASFORM  *     HOUGH TRASFORM
# Line 94  c$$$         endif Line 79  c$$$         endif
79  c      iflag=0  c      iflag=0
80        call cp_to_doubtrip(iflag)        call cp_to_doubtrip(iflag)
81        if(iflag.eq.1)then        !bad event        if(iflag.eq.1)then        !bad event
82           goto 880               !fill ntp and go to next event                       goto 880               !go to next event            
83        endif        endif
84                
85                
# Line 123  c      iflag=0 Line 108  c      iflag=0
108  *     $     ,ptcloud_xz,tr_cloud,cpcloud_xz            *     $     ,ptcloud_xz,tr_cloud,cpcloud_xz          
109  *-------------------------------------------------------------------------------  *-------------------------------------------------------------------------------
110  *-------------------------------------------------------------------------------  *-------------------------------------------------------------------------------
111    *     count number of hit planes
112          planehit=0                
113          do np=1,nplanes          
114            if(ncp_plane(np).ne.0)then  
115              planehit=planehit+1  
116            endif                  
117          enddo                    
118          if(planehit.lt.3) goto 880 ! exit              
119          
120          nptxz_min=x_min_start              
121          nplxz_min=x_min_start              
122                
123          nptyz_min=y_min_start              
124          nplyz_min=y_min_start              
125    
126  c      iflag=0        cutdistyz=cutystart      
127          cutdistxz=cutxstart      
128    
129     878  continue
130        call doub_to_YZcloud(iflag)        call doub_to_YZcloud(iflag)
131        if(iflag.eq.1)then        !bad event        if(iflag.eq.1)then        !bad event
132           goto 880               !fill ntp and go to next event                       goto 880               !fill ntp and go to next event            
133        endif        endif
134  c      iflag=0        if(nclouds_yz.eq.0.and.cutdistyz.lt.maxcuty)then
135            if(cutdistyz.lt.maxcuty/2)then
136              cutdistyz=cutdistyz+cutystep
137            else
138              cutdistyz=cutdistyz+(3*cutystep)
139            endif
140            goto 878                
141          endif                    
142    
143          if(planehit.eq.3) goto 881          
144          
145     879  continue  
146        call trip_to_XZcloud(iflag)        call trip_to_XZcloud(iflag)
147        if(iflag.eq.1)then        !bad event        if(iflag.eq.1)then        !bad event
148           goto 880               !fill ntp and go to next event                       goto 880               !fill ntp and go to next event            
149        endif        endif
150                                    
151          if(nclouds_xz.eq.0.and.cutdistxz.lt.maxcutx)then
152            cutdistxz=cutdistxz+cutxstep
153            goto 879                
154          endif                    
155    
156        
157     881  continue  
158    *     if there is at least three planes on the Y view decreases cuts on X view
159          if(nclouds_xz.eq.0.and.nclouds_yz.gt.0.and.
160         $     nplxz_min.ne.y_min_start)then
161            nptxz_min=x_min_step    
162            nplxz_min=x_min_start-x_min_step              
163            goto 879                
164          endif                    
165            
166   880  return   880  return
167        end        end
168    
# Line 144  c      iflag=0 Line 172  c      iflag=0
172        subroutine track_fitting(iflag)        subroutine track_fitting(iflag)
173    
174        include 'commontracker.f'        include 'commontracker.f'
175          include 'level1.f'
176        include 'common_momanhough.f'        include 'common_momanhough.f'
177        include 'common_mech.f'        include 'common_mech.f'
178        include 'common_xyzPAM.f'        include 'common_xyzPAM.f'
179        include 'common_mini_2.f'        include 'common_mini_2.f'
180        include 'calib.f'        include 'calib.f'
       include 'level1.f'  
181        include 'level2.f'        include 'level2.f'
182    
183        include 'momanhough_init.f'  c      include 'momanhough_init.f'
184                
 c      logical DEBUG  
 c      common/dbg/DEBUG  
   
185        logical FIMAGE            !        logical FIMAGE            !
186    
187  *-------------------------------------------------------------------------------  *-------------------------------------------------------------------------------
# Line 198  c         iflag=0 Line 223  c         iflag=0
223           ibest=0                !best track among candidates           ibest=0                !best track among candidates
224           iimage=0               !track image           iimage=0               !track image
225  *     ------------- select the best track -------------  *     ------------- select the best track -------------
226    c$$$         rchi2best=1000000000.
227    c$$$         do i=1,ntracks
228    c$$$            if(RCHI2_STORE(i).lt.rchi2best.and.
229    c$$$     $         RCHI2_STORE(i).gt.0)then
230    c$$$               ibest=i
231    c$$$               rchi2best=RCHI2_STORE(i)
232    c$$$            endif
233    c$$$         enddo
234    c$$$         if(ibest.eq.0)goto 880 !>> no good candidates
235    
236           rchi2best=1000000000.           rchi2best=1000000000.
237             ndofbest=0             !(1)
238           do i=1,ntracks           do i=1,ntracks
239              if(RCHI2_STORE(i).lt.rchi2best.and.             if(RCHI2_STORE(i).lt.rchi2best.and.
240       $         RCHI2_STORE(i).gt.0)then       $          RCHI2_STORE(i).gt.0)then
241                 ndof=0             !(1)
242                 do ii=1,nplanes    !(1)
243                   ndof=ndof        !(1)
244         $              +int(xgood_store(ii,i)) !(1)
245         $              +int(ygood_store(ii,i)) !(1)
246                 enddo              !(1)
247                 if(ndof.ge.ndofbest)then !(1)
248                 ibest=i                 ibest=i
249                 rchi2best=RCHI2_STORE(i)                 rchi2best=RCHI2_STORE(i)
250              endif                 ndofbest=ndof    !(1)
251                 endif              !(1)
252               endif
253           enddo           enddo
254           if(ibest.eq.0)goto 880 !>> no good candidates           if(ibest.eq.0)goto 880 !>> no good candidates
255  *-------------------------------------------------------------------------------      *-------------------------------------------------------------------------------    
# Line 242  c         iflag=0 Line 287  c         iflag=0
287           IDCAND = icand         !fitted track-candidate           IDCAND = icand         !fitted track-candidate
288           ifail=0                !error flag in chi2 computation           ifail=0                !error flag in chi2 computation
289           jstep=0                !# minimization steps           jstep=0                !# minimization steps
290    
291           iprint=0           iprint=0
292           if(DEBUG)iprint=1           if(DEBUG)iprint=1
293           call mini2(jstep,ifail,iprint)           call mini2(jstep,ifail,iprint)
# Line 608  c                (implemented variable r Line 654  c                (implemented variable r
654  c*****************************************************  c*****************************************************
655                
656        include 'commontracker.f'        include 'commontracker.f'
       include 'calib.f'  
657        include 'level1.f'        include 'level1.f'
658          include 'calib.f'
659    c      include 'level1.f'
660        include 'common_align.f'        include 'common_align.f'
661        include 'common_mech.f'        include 'common_mech.f'
662        include 'common_xyzPAM.f'        include 'common_xyzPAM.f'
# Line 1285  c     $              ,iv,xvv(iv),yvv(iv) Line 1332  c     $              ,iv,xvv(iv),yvv(iv)
1332  *     it returns the plane number  *     it returns the plane number
1333  *      *    
1334        include 'commontracker.f'        include 'commontracker.f'
1335          include 'level1.f'
1336  c      include 'common_analysis.f'  c      include 'common_analysis.f'
1337        include 'common_momanhough.f'        include 'common_momanhough.f'
1338                
# Line 1322  c      include 'common_analysis.f' Line 1370  c      include 'common_analysis.f'
1370  *     it returns the id number ON THE PLANE  *     it returns the id number ON THE PLANE
1371  *      *    
1372        include 'commontracker.f'        include 'commontracker.f'
1373          include 'level1.f'
1374  c      include 'common_analysis.f'  c      include 'common_analysis.f'
1375        include 'common_momanhough.f'        include 'common_momanhough.f'
1376                
# Line 1350  c      include 'common_analysis.f' Line 1399  c      include 'common_analysis.f'
1399  *     positive if sensor =2  *     positive if sensor =2
1400  *  *
1401        include 'commontracker.f'        include 'commontracker.f'
1402          include 'level1.f'
1403  c      include 'calib.f'  c      include 'calib.f'
1404  c      include 'level1.f'  c      include 'level1.f'
1405  c      include 'common_analysis.f'  c      include 'common_analysis.f'
# Line 1661  c$$$      end Line 1711  c$$$      end
1711        subroutine cl_to_couples(iflag)        subroutine cl_to_couples(iflag)
1712    
1713        include 'commontracker.f'        include 'commontracker.f'
1714          include 'level1.f'
1715        include 'common_momanhough.f'        include 'common_momanhough.f'
1716        include 'momanhough_init.f'  c      include 'momanhough_init.f'
1717        include 'calib.f'        include 'calib.f'
1718        include 'level1.f'  c      include 'level1.f'
   
 c      logical DEBUG  
 c      common/dbg/DEBUG  
1719    
1720  *     output flag  *     output flag
1721  *     --------------  *     --------------
# Line 1692  c      common/dbg/DEBUG Line 1740  c      common/dbg/DEBUG
1740           ncls(ip)=0           ncls(ip)=0
1741        enddo        enddo
1742        do icl=1,nclstrmax_level2        do icl=1,nclstrmax_level2
1743           cl_single(icl)=1           cl_single(icl) = 1
1744           cl_good(icl)=0           cl_good(icl)   = 0
1745          enddo
1746          do iv=1,nviews
1747             ncl_view(iv)  = 0
1748             mask_view(iv) = 0      !all included
1749        enddo        enddo
1750                
1751    *     count number of cluster per view
1752          do icl=1,nclstr1
1753             ncl_view(VIEW(icl)) = ncl_view(VIEW(icl)) + 1        
1754          enddo
1755    *     mask views with too many clusters
1756          do iv=1,nviews
1757             if( ncl_view(iv).gt. nclustermax)then
1758                mask_view(iv) = 1
1759                print*,' * WARNING * cl_to_couple: n.clusters > '
1760         $           ,nclustermax,' on view ', iv,' --> masked!'
1761             endif
1762          enddo
1763    
1764    
1765  *     start association  *     start association
1766        ncouples=0        ncouples=0
1767        do icx=1,nclstr1          !loop on cluster (X)        do icx=1,nclstr1          !loop on cluster (X)
1768           if(mod(VIEW(icx),2).eq.1)goto 10           if(mod(VIEW(icx),2).eq.1)goto 10
1769                    
1770  *     ----------------------------------------------------  *     ----------------------------------------------------
1771  *     cut on charge (X VIEW)  *     jump masked views (X VIEW)
1772  *     ----------------------------------------------------  *     ----------------------------------------------------
1773           if(dedx(icx).lt.dedx_x_min)then           if( mask_view(VIEW(icx)).ne.0 ) goto 10
             cl_single(icx)=0  
             goto 10  
          endif  
1774  *     ----------------------------------------------------  *     ----------------------------------------------------
1775  *     cut on multiplicity (X VIEW)  *     cut on charge (X VIEW)
1776  *     ----------------------------------------------------  *     ----------------------------------------------------
1777           if(mult(icx).ge.mult_x_max)then           if(dedx(icx).lt.dedx_x_min)then
1778              cl_single(icx)=0              cl_single(icx)=0
1779              goto 10              goto 10
1780           endif           endif
# Line 1754  c     endif Line 1817  c     endif
1817              if(mod(VIEW(icy),2).eq.0)goto 20              if(mod(VIEW(icy),2).eq.0)goto 20
1818                            
1819  *     ----------------------------------------------------  *     ----------------------------------------------------
1820  *     cut on charge (Y VIEW)  *     jump masked views (Y VIEW)
1821  *     ----------------------------------------------------  *     ----------------------------------------------------
1822              if(dedx(icy).lt.dedx_y_min)then              if( mask_view(VIEW(icy)).ne.0 ) goto 20
1823                 cl_single(icy)=0  
                goto 20  
             endif  
1824  *     ----------------------------------------------------  *     ----------------------------------------------------
1825  *     cut on multiplicity (X VIEW)  *     cut on charge (Y VIEW)
1826  *     ----------------------------------------------------  *     ----------------------------------------------------
1827              if(mult(icy).ge.mult_y_max)then              if(dedx(icy).lt.dedx_y_min)then
1828                 cl_single(icy)=0                 cl_single(icy)=0
1829                 goto 20                 goto 20
1830              endif              endif
# Line 1809  c     endif Line 1870  c     endif
1870  *     charge correlation  *     charge correlation
1871  *     (modified to be applied only below saturation... obviously)  *     (modified to be applied only below saturation... obviously)
1872    
 *     -------------------------------------------------------------  
 *     >>> eliminata (TEMPORANEAMENTE) la correlazione di carica <<<  
 *     -------------------------------------------------------------  
1873                 if(  .not.(dedx(icy).gt.chsaty.and.dedx(icx).gt.chsatx)                 if(  .not.(dedx(icy).gt.chsaty.and.dedx(icx).gt.chsatx)
1874       $              .and.       $              .and.
1875       $              .not.(dedx(icy).lt.chmipy.and.dedx(icx).lt.chmipx)       $              .not.(dedx(icy).lt.chmipy.and.dedx(icx).lt.chmipx)
# Line 1855  c$$$               endif Line 1913  c$$$               endif
1913       $                 '** warning ** number of identified '//       $                 '** warning ** number of identified '//
1914       $                 'couples on plane ',nplx,       $                 'couples on plane ',nplx,
1915       $                 'exceeds vector dimention '       $                 'exceeds vector dimention '
1916       $                 ,'( ',ncouplemax,' )'       $                 ,'( ',ncouplemax,' ) NB - THIS SHOULD NOT HAPPEN'
1917  c     good2=.false.  c     good2=.false.
1918  c     goto 880   !fill ntp and go to next event                      c     goto 880   !fill ntp and go to next event                    
1919                    iflag=1                    iflag=1
# Line 1923  c     goto 880       !fill ntp and go to Line 1981  c     goto 880       !fill ntp and go to
1981        subroutine cl_to_couples_nocharge(iflag)        subroutine cl_to_couples_nocharge(iflag)
1982    
1983        include 'commontracker.f'        include 'commontracker.f'
1984          include 'level1.f'
1985        include 'common_momanhough.f'        include 'common_momanhough.f'
1986        include 'momanhough_init.f'  c      include 'momanhough_init.f'
1987        include 'calib.f'        include 'calib.f'
1988        include 'level1.f'  c      include 'level1.f'
1989    
 c      logical DEBUG  
 c      common/dbg/DEBUG  
1990    
1991  *     output flag  *     output flag
1992  *     --------------  *     --------------
# Line 2148  c     02/02/2006 modified by Elena Vannu Line 2205  c     02/02/2006 modified by Elena Vannu
2205  c*****************************************************  c*****************************************************
2206    
2207        include 'commontracker.f'        include 'commontracker.f'
2208          include 'level1.f'
2209        include 'common_momanhough.f'        include 'common_momanhough.f'
2210        include 'momanhough_init.f'  c      include 'momanhough_init.f'
2211        include 'common_xyzPAM.f'        include 'common_xyzPAM.f'
2212        include 'common_mini_2.f'        include 'common_mini_2.f'
2213        include 'calib.f'        include 'calib.f'
2214        include 'level1.f'  c      include 'level1.f'
2215    
 c      logical DEBUG  
 c      common/dbg/DEBUG  
2216    
2217  *     output flag  *     output flag
2218  *     --------------  *     --------------
# Line 2374  c     goto 880               !ntp fill Line 2430  c     goto 880               !ntp fill
2430        subroutine doub_to_YZcloud(iflag)        subroutine doub_to_YZcloud(iflag)
2431    
2432        include 'commontracker.f'        include 'commontracker.f'
2433          include 'level1.f'
2434        include 'common_momanhough.f'        include 'common_momanhough.f'
2435        include 'momanhough_init.f'  c      include 'momanhough_init.f'
2436    
 c      logical DEBUG  
 c      common/dbg/DEBUG  
2437    
2438  *     output flag  *     output flag
2439  *     --------------  *     --------------
# Line 2410  c      common/dbg/DEBUG Line 2465  c      common/dbg/DEBUG
2465        distance=0        distance=0
2466        nclouds_yz=0              !number of clouds        nclouds_yz=0              !number of clouds
2467        npt_tot=0        npt_tot=0
2468          nloop=0                  
2469     90   continue                  
2470        do idb1=1,ndblt           !loop (1) on DOUBLETS        do idb1=1,ndblt           !loop (1) on DOUBLETS
2471           if(db_used(idb1).eq.1)goto 2228 !db already included in a cloud           if(db_used(idb1).eq.1)goto 2228 !db already included in a cloud
2472                            
# Line 2513  c     print*,'*   idbref,idb2 ',idbref,i Line 2570  c     print*,'*   idbref,idb2 ',idbref,i
2570              nplused=nplused+ hit_plane(ip)              nplused=nplused+ hit_plane(ip)
2571           enddo           enddo
2572  c     print*,'>>>> ',ncpused,npt,nplused  c     print*,'>>>> ',ncpused,npt,nplused
2573           if(ncpused.lt.ncpyz_min)goto 2228 !next doublet  c         if(ncpused.lt.ncpyz_min)goto 2228 !next doublet
2574           if(npt.lt.nptyz_min)goto 2228 !next doublet           if(npt.lt.nptyz_min)goto 2228 !next doublet
2575           if(nplused.lt.nplyz_min)goto 2228 !next doublet           if(nplused.lt.nplyz_min)goto 2228 !next doublet
2576                    
# Line 2564  c$$$     $           ,(db_cloud(iii),iii Line 2621  c$$$     $           ,(db_cloud(iii),iii
2621        enddo                     !end loop (1) on DOUBLETS        enddo                     !end loop (1) on DOUBLETS
2622                
2623                
2624          if(nloop.lt.nstepy)then      
2625            cutdistyz = cutdistyz+cutystep
2626            nloop     = nloop+1          
2627            goto 90                
2628          endif                    
2629          
2630        if(DEBUG)then        if(DEBUG)then
2631           print*,'---------------------- '           print*,'---------------------- '
2632           print*,'Y-Z total clouds ',nclouds_yz           print*,'Y-Z total clouds ',nclouds_yz
# Line 2590  c$$$     $           ,(db_cloud(iii),iii Line 2653  c$$$     $           ,(db_cloud(iii),iii
2653        subroutine trip_to_XZcloud(iflag)        subroutine trip_to_XZcloud(iflag)
2654    
2655        include 'commontracker.f'        include 'commontracker.f'
2656          include 'level1.f'
2657        include 'common_momanhough.f'        include 'common_momanhough.f'
2658        include 'momanhough_init.f'  c      include 'momanhough_init.f'
2659    
 c      logical DEBUG  
 c      common/dbg/DEBUG  
2660    
2661  *     output flag  *     output flag
2662  *     --------------  *     --------------
# Line 2625  c      common/dbg/DEBUG Line 2687  c      common/dbg/DEBUG
2687        distance=0        distance=0
2688        nclouds_xz=0              !number of clouds                nclouds_xz=0              !number of clouds        
2689        npt_tot=0                 !total number of selected triplets        npt_tot=0                 !total number of selected triplets
2690          nloop=0                  
2691     91   continue                  
2692        do itr1=1,ntrpt           !loop (1) on TRIPLETS        do itr1=1,ntrpt           !loop (1) on TRIPLETS
2693           if(tr_used(itr1).eq.1)goto 22288 !already included in a cloud           if(tr_used(itr1).eq.1)goto 22288 !already included in a cloud
2694  c     print*,'--------------'  c     print*,'--------------'
# Line 2726  c     print*,'check cp_used' Line 2790  c     print*,'check cp_used'
2790           do ip=1,nplanes           do ip=1,nplanes
2791              nplused=nplused+ hit_plane(ip)              nplused=nplused+ hit_plane(ip)
2792           enddo           enddo
2793           if(ncpused.lt.ncpxz_min)goto 22288 !next triplet  c         if(ncpused.lt.ncpxz_min)goto 22288 !next triplet
2794           if(npt.lt.nptxz_min)goto 22288     !next triplet           if(npt.lt.nptxz_min)goto 22288     !next triplet
2795           if(nplused.lt.nplxz_min)goto 22288 !next doublet           if(nplused.lt.nplxz_min)goto 22288 !next doublet
2796                    
# Line 2774  c$$$     $           ,(tr_cloud(iii),iii Line 2838  c$$$     $           ,(tr_cloud(iii),iii
2838  *     ~~~~~~~~~~~~~~~~~  *     ~~~~~~~~~~~~~~~~~
2839  22288    continue  22288    continue
2840        enddo                     !end loop (1) on DOUBLETS        enddo                     !end loop (1) on DOUBLETS
2841          
2842           if(nloop.lt.nstepx)then      
2843             cutdistxz=cutdistxz+cutxstep
2844             nloop=nloop+1          
2845             goto 91                
2846           endif                    
2847          
2848        if(DEBUG)then        if(DEBUG)then
2849           print*,'---------------------- '           print*,'---------------------- '
2850           print*,'X-Z total clouds ',nclouds_xz           print*,'X-Z total clouds ',nclouds_xz
# Line 2801  c     02/02/2006 modified by Elena Vannu Line 2871  c     02/02/2006 modified by Elena Vannu
2871  c*****************************************************  c*****************************************************
2872    
2873        include 'commontracker.f'        include 'commontracker.f'
2874          include 'level1.f'
2875        include 'common_momanhough.f'        include 'common_momanhough.f'
2876        include 'common_xyzPAM.f'        include 'common_xyzPAM.f'
2877        include 'common_mini_2.f'        include 'common_mini_2.f'
2878        include 'common_mech.f'        include 'common_mech.f'
2879        include 'momanhough_init.f'  c      include 'momanhough_init.f'
2880    
 c      logical DEBUG  
 c      common/dbg/DEBUG  
2881    
2882  *     output flag  *     output flag
2883  *     --------------  *     --------------
# Line 2824  c      common/dbg/DEBUG Line 2893  c      common/dbg/DEBUG
2893  *     -----------------------------------------------------------  *     -----------------------------------------------------------
2894  *     list of matching couples in the combination  *     list of matching couples in the combination
2895  *     between a XZ and YZ cloud  *     between a XZ and YZ cloud
2896        integer cp_match(nplanes,ncouplemax)        integer cp_match(nplanes,2*ncouplemax)
2897        integer ncp_match(nplanes)        integer ncp_match(nplanes)
2898  *     -----------------------------------------------------------  *     -----------------------------------------------------------
2899        integer hit_plane(nplanes)        integer hit_plane(nplanes)
# Line 2924  c$$$  print*,'6 -- ',(cly(6,i),i=1,ncp_p Line 2993  c$$$  print*,'6 -- ',(cly(6,i),i=1,ncp_p
2993  c$$$  print*,'~~~~~~~~~~~~~~~~~~~~~~~~~'  c$$$  print*,'~~~~~~~~~~~~~~~~~~~~~~~~~'
2994                            
2995  *     -------> INITIAL GUESS <-------  *     -------> INITIAL GUESS <-------
2996              AL_INI(1)=dreal(alfaxz1_av(ixz))              AL_INI(1) = dreal(alfaxz1_av(ixz))
2997              AL_INI(2)=dreal(alfayz1_av(iyz))              AL_INI(2) = dreal(alfayz1_av(iyz))
2998              AL_INI(4)=datan(dreal(alfayz2_av(iyz))              AL_INI(4) = PIGR + datan(dreal(alfayz2_av(iyz))
2999       $           /dreal(alfaxz2_av(ixz)))       $           /dreal(alfaxz2_av(ixz)))
3000              tath=-dreal(alfaxz2_av(ixz))/dcos(AL_INI(4))              tath      = -dreal(alfaxz2_av(ixz))/dcos(AL_INI(4))
3001              AL_INI(3)=tath/sqrt(1+tath**2)              AL_INI(3) = tath/sqrt(1+tath**2)
3002              AL_INI(5)=(1.e2*alfaxz3_av(ixz))/(0.3*0.43) !0.              AL_INI(5) = (1.e2*alfaxz3_av(ixz))/(0.3*0.43) !0.
3003                            
3004  c     print*,'*******',AL_INI(5)  c     print*,'*******',AL_INI(5)
3005              if(AL_INI(5).gt.defmax)goto 888 !next cloud              if(AL_INI(5).gt.defmax)goto 888 !next cloud
# Line 3139  cccccc 12/08/2006 modified by elena vann Line 3208  cccccc 12/08/2006 modified by elena vann
3208  c******************************************************  c******************************************************
3209    
3210        include 'commontracker.f'        include 'commontracker.f'
3211          include 'level1.f'
3212        include 'common_momanhough.f'        include 'common_momanhough.f'
3213        include 'common_xyzPAM.f'        include 'common_xyzPAM.f'
3214        include 'common_mini_2.f'        include 'common_mini_2.f'
3215        include 'common_mech.f'        include 'common_mech.f'
3216        include 'momanhough_init.f'  c      include 'momanhough_init.f'
3217        include 'level1.f'  c      include 'level1.f'
3218        include 'calib.f'        include 'calib.f'
3219    
 c      logical DEBUG  
 c      common/dbg/DEBUG  
3220    
3221  *     flag to chose PFA  *     flag to chose PFA
3222        character*10 PFA        character*10 PFA
# Line 3469  cccccc 12/08/2006 modified by elena ---> Line 3537  cccccc 12/08/2006 modified by elena --->
3537        subroutine clean_XYclouds(ibest,iflag)        subroutine clean_XYclouds(ibest,iflag)
3538    
3539        include 'commontracker.f'        include 'commontracker.f'
3540          include 'level1.f'
3541        include 'common_momanhough.f'        include 'common_momanhough.f'
3542        include 'momanhough_init.f'  c      include 'momanhough_init.f'
3543        include 'level2.f'        !(1)        include 'level2.f'        !(1)
3544  c      include 'calib.f'  c      include 'calib.f'
3545  c      include 'level1.f'  c      include 'level1.f'
3546    
 c      logical DEBUG  
 c      common/dbg/DEBUG  
3547    
3548    
3549        do ip=1,nplanes           !loop on planes        do ip=1,nplanes           !loop on planes
# Line 3652  c$$$ Line 3719  c$$$
3719    
3720        subroutine init_level2        subroutine init_level2
3721    
 c*****************************************************  
 c     07/10/2005 modified by elena vannuccini --> (1)  
 c*****************************************************  
   
3722        include 'commontracker.f'        include 'commontracker.f'
3723          include 'level1.f'
3724        include 'common_momanhough.f'        include 'common_momanhough.f'
3725        include 'level2.f'        include 'level2.f'
3726        include 'level1.f'  c      include 'level1.f'
3727    
3728        do i=1,nviews        do i=1,nviews
3729           good2(i)=good1(i)           good2(i)=good1(i)
3730        enddo        enddo
3731    
 c      good2 = 0!.false.  
 c$$$      nev2 = nev1  
   
 c$$$# ifndef TEST2003  
 c$$$c*****************************************************  
 c$$$cccccc 11/9/2005 modified by david fedele  
 c$$$c      pkt_type = pkt_type1  
 c$$$c      pkt_num = pkt_num1  
 c$$$c      obt = obt1  
 c$$$c      which_calib = which_calib1  
 c$$$      swcode = 302  
 c$$$  
 c$$$      which_calib = which_calib1  
 c$$$      pkt_type = pkt_type1  
 c$$$      pkt_num = pkt_num1  
 c$$$      obt = obt1  
 c$$$      cpu_crc = cpu_crc1  
 c$$$      do iv=1,12  
 c$$$         crc(iv)=crc1(iv)  
 c$$$      enddo  
 c$$$# endif  
 c*****************************************************  
3732    
3733        NTRK = 0        NTRK = 0
3734        do it=1,NTRKMAX!NTRACKSMAX        do it=1,NTRKMAX
3735           IMAGE(IT)=0           IMAGE(IT)=0
3736           CHI2_nt(IT) = -100000.           CHI2_nt(IT) = -100000.
 c         BdL(IT) = 0.  
3737           do ip=1,nplanes           do ip=1,nplanes
3738              XM_nt(IP,IT) = 0              XM_nt(IP,IT) = 0
3739              YM_nt(IP,IT) = 0              YM_nt(IP,IT) = 0
# Line 3701  c         BdL(IT) = 0. Line 3742  c         BdL(IT) = 0.
3742              RESY_nt(IP,IT) = 0              RESY_nt(IP,IT) = 0
3743              XGOOD_nt(IP,IT) = 0              XGOOD_nt(IP,IT) = 0
3744              YGOOD_nt(IP,IT) = 0              YGOOD_nt(IP,IT) = 0
 c*****************************************************  
 cccccc 11/9/2005 modified by david fedele  
3745              DEDX_X(IP,IT) = 0              DEDX_X(IP,IT) = 0
3746              DEDX_Y(IP,IT) = 0              DEDX_Y(IP,IT) = 0
 c******************************************************  
 cccccc 17/8/2006 modified by elena  
3747              CLTRX(IP,IT) = 0              CLTRX(IP,IT) = 0
3748              CLTRY(IP,IT) = 0              CLTRY(IP,IT) = 0
3749           enddo           enddo
# Line 3717  cccccc 17/8/2006 modified by elena Line 3754  cccccc 17/8/2006 modified by elena
3754              enddo                                enddo                  
3755           enddo                             enddo                  
3756        enddo        enddo
         
         
 c*****************************************************  
 cccccc 11/9/2005 modified by david fedele  
3757        nclsx=0        nclsx=0
3758        nclsy=0              nclsy=0      
3759        do ip=1,NSINGMAX        do ip=1,NSINGMAX
3760          planex(ip)=0          planex(ip)=0
 c        xs(ip)=0  
3761          xs(1,ip)=0          xs(1,ip)=0
3762          xs(2,ip)=0          xs(2,ip)=0
3763          sgnlxs(ip)=0          sgnlxs(ip)=0
3764          planey(ip)=0          planey(ip)=0
 c        ys(ip)=0  
3765          ys(1,ip)=0          ys(1,ip)=0
3766          ys(2,ip)=0          ys(2,ip)=0
3767          sgnlys(ip)=0          sgnlys(ip)=0
3768        enddo        enddo
 c*******************************************************  
3769        end        end
3770    
3771    
# Line 3750  c*************************************** Line 3780  c***************************************
3780  ************************************************************  ************************************************************
3781    
3782    
3783          subroutine init_hough
3784    
3785          include 'commontracker.f'
3786          include 'level1.f'
3787          include 'common_momanhough.f'
3788          include 'common_hough.f'
3789          include 'level2.f'
3790    
3791          ntrpt_nt=0
3792          ndblt_nt=0
3793          NCLOUDS_XZ_nt=0
3794          NCLOUDS_YZ_nt=0
3795          do idb=1,ndblt_max_nt
3796             db_cloud_nt(idb)=0
3797             alfayz1_nt(idb)=0      
3798             alfayz2_nt(idb)=0      
3799          enddo
3800          do itr=1,ntrpl_max_nt
3801             tr_cloud_nt(itr)=0
3802             alfaxz1_nt(itr)=0      
3803             alfaxz2_nt(itr)=0      
3804             alfaxz3_nt(itr)=0      
3805          enddo
3806          do idb=1,ncloyz_max      
3807            ptcloud_yz_nt(idb)=0    
3808            alfayz1_av_nt(idb)=0    
3809            alfayz2_av_nt(idb)=0    
3810          enddo                    
3811          do itr=1,ncloxz_max      
3812            ptcloud_xz_nt(itr)=0    
3813            alfaxz1_av_nt(itr)=0    
3814            alfaxz2_av_nt(itr)=0    
3815            alfaxz3_av_nt(itr)=0    
3816          enddo                    
3817    
3818          ntrpt=0                  
3819          ndblt=0                  
3820          NCLOUDS_XZ=0              
3821          NCLOUDS_YZ=0              
3822          do idb=1,ndblt_max        
3823            db_cloud(idb)=0        
3824            cpyz1(idb)=0            
3825            cpyz2(idb)=0            
3826            alfayz1(idb)=0          
3827            alfayz2(idb)=0          
3828          enddo                    
3829          do itr=1,ntrpl_max        
3830            tr_cloud(itr)=0        
3831            cpxz1(itr)=0            
3832            cpxz2(itr)=0            
3833            cpxz3(itr)=0            
3834            alfaxz1(itr)=0          
3835            alfaxz2(itr)=0          
3836            alfaxz3(itr)=0          
3837          enddo                    
3838          do idb=1,ncloyz_max      
3839            ptcloud_yz(idb)=0      
3840            alfayz1_av(idb)=0      
3841            alfayz2_av(idb)=0      
3842            do idbb=1,ncouplemaxtot
3843              cpcloud_yz(idb,idbb)=0
3844            enddo                  
3845          enddo                    
3846          do itr=1,ncloxz_max      
3847            ptcloud_xz(itr)=0      
3848            alfaxz1_av(itr)=0      
3849            alfaxz2_av(itr)=0      
3850            alfaxz3_av(itr)=0      
3851            do itrr=1,ncouplemaxtot
3852              cpcloud_xz(itr,itrr)=0
3853            enddo                  
3854          enddo                    
3855          end
3856    ************************************************************
3857    *
3858    *
3859    *
3860    *
3861    *
3862    *
3863    *
3864    ************************************************************
3865    
3866    
3867        subroutine fill_level2_tracks(ntr)        subroutine fill_level2_tracks(ntr)
3868    
3869  *     -------------------------------------------------------  *     -------------------------------------------------------
# Line 3760  c*************************************** Line 3874  c***************************************
3874    
3875            
3876        include 'commontracker.f'        include 'commontracker.f'
3877    c      include 'level1.f'
3878        include 'level1.f'        include 'level1.f'
3879          include 'common_momanhough.f'
3880        include 'level2.f'        include 'level2.f'
3881        include 'common_mini_2.f'        include 'common_mini_2.f'
3882        include 'common_momanhough.f'        real sinth,phi,pig      
       real sinth,phi,pig        !(4)  
3883        pig=acos(-1.)        pig=acos(-1.)
3884    
 c      good2=1!.true.  
3885        chi2_nt(ntr)        = sngl(chi2)        chi2_nt(ntr)        = sngl(chi2)
3886        nstep_nt(ntr)       = nstep        nstep_nt(ntr)       = nstep
3887    
3888        phi   = al(4)             !(4)        phi   = al(4)          
3889        sinth = al(3)             !(4)        sinth = al(3)            
3890        if(sinth.lt.0)then        !(4)        if(sinth.lt.0)then      
3891           sinth = -sinth         !(4)           sinth = -sinth        
3892           phi = phi + pig        !(4)           phi = phi + pig      
3893        endif                     !(4)        endif                    
3894        npig = aint(phi/(2*pig))  !(4)        npig = aint(phi/(2*pig))
3895        phi = phi - npig*2*pig    !(4)        phi = phi - npig*2*pig  
3896        if(phi.lt.0)              !(4)        if(phi.lt.0)            
3897       $     phi = phi + 2*pig    !(4)       $     phi = phi + 2*pig  
3898        al(4) = phi               !(4)        al(4) = phi              
3899        al(3) = sinth             !(4)        al(3) = sinth            
3900  *****************************************************  
3901        do i=1,5        do i=1,5
3902           al_nt(i,ntr)     = sngl(al(i))           al_nt(i,ntr)     = sngl(al(i))
3903           do j=1,5           do j=1,5
3904              coval(i,j,ntr) = sngl(cov(i,j))              coval(i,j,ntr) = sngl(cov(i,j))
3905           enddo           enddo
 c     print*,al_nt(i,ntr)  
3906        enddo        enddo
3907                
3908        do ip=1,nplanes           ! loop on planes        do ip=1,nplanes           ! loop on planes
# Line 3805  c     print*,al_nt(i,ntr) Line 3918  c     print*,al_nt(i,ntr)
3918           zv_nt(ip,ntr)    = sngl(zv(ip))           zv_nt(ip,ntr)    = sngl(zv(ip))
3919           axv_nt(ip,ntr)   = sngl(axv(ip))           axv_nt(ip,ntr)   = sngl(axv(ip))
3920           ayv_nt(ip,ntr)   = sngl(ayv(ip))           ayv_nt(ip,ntr)   = sngl(ayv(ip))
 c        dedxp(ip,ntr)    = sngl(dedxtrk(ip))   !(1)  
3921           dedx_x(ip,ntr)   = sngl(dedxtrk_x(ip)) !(2)           dedx_x(ip,ntr)   = sngl(dedxtrk_x(ip)) !(2)
3922           dedx_y(ip,ntr)   = sngl(dedxtrk_y(ip)) !(2)             dedx_y(ip,ntr)   = sngl(dedxtrk_y(ip)) !(2)  
3923        
# Line 3822  c            print*,ip,' ',cltrx(ip,ntr) Line 3934  c            print*,ip,' ',cltrx(ip,ntr)
3934           endif                     endif          
3935    
3936        enddo        enddo
 c      call CalcBdL(100,xxxx,IFAIL)  
 c      if(ifps(xxxx).eq.1)BdL(ntr) = xxxx  
 c$$$      print*,'xgood(ip,ntr) ',(xgood_nt(ip,ntr),ip=1,6)  
 c$$$      print*,'ygood(ip,ntr) ',(ygood_nt(ip,ntr),ip=1,6)  
 c$$$      print*,'dedx_x(ip,ntr) ',(dedx_x(ip,ntr),ip=1,6)  
 c$$$      print*,'dedx_y(ip,ntr) ',(dedx_y(ip,ntr),ip=1,6)  
3937    
3938    
3939        end        end
3940    
3941        subroutine fill_level2_siglets        subroutine fill_level2_siglets
 c*****************************************************  
 c     07/10/2005 created by elena vannuccini  
 c     31/01/2006 modified by elena vannuccini  
 *     to convert adc to mip  --> (2)  
 c*****************************************************  
3942    
3943  *     -------------------------------------------------------  *     -------------------------------------------------------
3944  *     This routine fills the  elements of the variables  *     This routine fills the  elements of the variables
# Line 3846  c*************************************** Line 3947  c***************************************
3947  *     -------------------------------------------------------  *     -------------------------------------------------------
3948    
3949        include 'commontracker.f'        include 'commontracker.f'
3950        include 'level1.f'  c      include 'level1.f'
       include 'level2.f'  
3951        include 'calib.f'        include 'calib.f'
3952          include 'level1.f'
3953        include 'common_momanhough.f'        include 'common_momanhough.f'
3954          include 'level2.f'
3955        include 'common_xyzPAM.f'        include 'common_xyzPAM.f'
3956    
3957  *     count #cluster per plane not associated to any track  *     count #cluster per plane not associated to any track
# Line 3857  c      good2=1!.true. Line 3959  c      good2=1!.true.
3959        nclsx = 0        nclsx = 0
3960        nclsy = 0        nclsy = 0
3961    
3962          do iv = 1,nviews
3963             if( mask_view(iv).ne.0 )good2(iv) = 20+mask_view(iv)
3964          enddo
3965    
3966        do icl=1,nclstr1        do icl=1,nclstr1
3967           if(cl_used(icl).eq.0)then !cluster not included in any track           if(cl_used(icl).eq.0)then !cluster not included in any track
3968              ip=nplanes-npl(VIEW(icl))+1                          ip=nplanes-npl(VIEW(icl))+1            
# Line 3900  c      print*,icl,cl_used(icl),cl_good(i Line 4006  c      print*,icl,cl_used(icl),cl_good(i
4006        enddo        enddo
4007        end        end
4008    
4009    ***************************************************
4010    *                                                 *
4011    *                                                 *
4012    *                                                 *
4013    *                                                 *
4014    *                                                 *
4015    *                                                 *
4016    **************************************************
4017    
4018          subroutine fill_hough
4019    
4020    *     -------------------------------------------------------
4021    *     This routine fills the  variables related to the hough
4022    *     transform, for the debig n-tuple
4023    *     -------------------------------------------------------
4024    
4025          include 'commontracker.f'
4026          include 'level1.f'
4027          include 'common_momanhough.f'
4028          include 'common_hough.f'
4029          include 'level2.f'
4030    
4031          if(.false.
4032         $     .or.ntrpt.gt.ntrpt_max_nt
4033         $     .or.ndblt.gt.ndblt_max_nt
4034         $     .or.NCLOUDS_XZ.gt.ncloxz_max
4035         $     .or.NCLOUDS_yZ.gt.ncloyz_max
4036         $     )then
4037             ntrpt_nt=0
4038             ndblt_nt=0
4039             NCLOUDS_XZ_nt=0
4040             NCLOUDS_YZ_nt=0
4041          else
4042             ndblt_nt=ndblt
4043             ntrpt_nt=ntrpt
4044             if(ndblt.ne.0)then
4045                do id=1,ndblt
4046                   alfayz1_nt(id)=alfayz1(id) !Y0
4047                   alfayz2_nt(id)=alfayz2(id) !tg theta-yz
4048                enddo
4049             endif
4050             if(ndblt.ne.0)then
4051                do it=1,ntrpt
4052                   alfaxz1_nt(it)=alfaxz1(it) !X0
4053                   alfaxz2_nt(it)=alfaxz2(it) !tg theta-xz
4054                   alfaxz3_nt(it)=alfaxz3(it) !1/r
4055                enddo
4056             endif
4057             nclouds_yz_nt=nclouds_yz
4058             nclouds_xz_nt=nclouds_xz
4059             if(nclouds_yz.ne.0)then
4060                nnn=0
4061                do iyz=1,nclouds_yz
4062                   ptcloud_yz_nt(iyz)=ptcloud_yz(iyz)
4063                   alfayz1_av_nt(iyz)=alfayz1_av(iyz)
4064                   alfayz2_av_nt(iyz)=alfayz2_av(iyz)
4065                   nnn=nnn+ptcloud_yz(iyz)
4066                enddo
4067                do ipt=1,nnn
4068                   db_cloud_nt(ipt)=db_cloud(ipt)
4069                 enddo
4070             endif
4071             if(nclouds_xz.ne.0)then
4072                nnn=0
4073                do ixz=1,nclouds_xz
4074                   ptcloud_xz_nt(ixz)=ptcloud_xz(ixz)
4075                   alfaxz1_av_nt(ixz)=alfaxz1_av(ixz)
4076                   alfaxz2_av_nt(ixz)=alfaxz2_av(ixz)
4077                   alfaxz3_av_nt(ixz)=alfaxz3_av(ixz)
4078                   nnn=nnn+ptcloud_xz(ixz)              
4079                enddo
4080                do ipt=1,nnn
4081                  tr_cloud_nt(ipt)=tr_cloud(ipt)
4082                 enddo
4083             endif
4084          endif
4085          end
4086          

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

  ViewVC Help
Powered by ViewVC 1.1.23