/[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.30 by pam-fi, Tue Aug 28 13:25:50 2007 UTC revision 1.31 by pam-fi, Fri Aug 31 14:56:52 2007 UTC
# Line 727  c      print*,'## xyz_PAM: ',icx,icy,sen Line 727  c      print*,'## xyz_PAM: ',icx,icy,sen
727           viewx   = VIEW(icx)           viewx   = VIEW(icx)
728           nldx    = nld(MAXS(icx),VIEW(icx))           nldx    = nld(MAXS(icx),VIEW(icx))
729           nplx    = npl(VIEW(icx))           nplx    = npl(VIEW(icx))
730           resxPAM = RESXAV  c         resxPAM = RESXAV
731           stripx  = float(MAXS(icx))           stripx  = float(MAXS(icx))
732    
733           if(           if(
# Line 747  c      print*,'## xyz_PAM: ',icx,icy,sen Line 747  c      print*,'## xyz_PAM: ',icx,icy,sen
747  *        --------------------------  *        --------------------------
748  *        magnetic-field corrections  *        magnetic-field corrections
749  *        --------------------------  *        --------------------------
750           angtemp  = ax           stripx  = stripx +  fieldcorr(viewx,bfy)      
751           bfytemp  = bfy           angx    = effectiveangle(ax,viewx,bfy)
 *        /////////////////////////////////  
 *        AAAAHHHHHHHH!!!!!!!!!!!!!!!!!!!!!  
 *        *grvzkkjsdgjhhhgngbn###>:(  
 *        /////////////////////////////////  
 c         if(nplx.eq.6) angtemp = -1. * ax  
 c         if(nplx.eq.6) bfytemp = -1. * bfy  
          if(viewx.eq.12) angtemp = -1. * ax  
          if(viewx.eq.12) bfytemp = -1. * bfy  
          tgtemp   = tan(angtemp*acos(-1.)/180.) + pmuH_h*bfytemp*0.00001  
          angx     = 180.*atan(tgtemp)/acos(-1.)  
          stripx   = stripx - 0.5*pmuH_h*bfytemp*0.00001*SiDimZ/pitchX  
 c$$$         print*,nplx,ax,bfy/10.  
 c$$$         print*,angx,0.5*pmuH_h*bfytemp*0.00001*SiDimZ/pitchX  
 c$$$         print*,'========================'  
 c$$$         if(bfy.ne.0.)print*,viewx,'-x- '  
 c$$$     $        ,bfy,-1*0.5*pmuH_h*bfytemp*0.00001*SiDimZ  
 *        --------------------------  
   
 c$$$         print*,'--- x-cl ---'  
 c$$$         istart = INDSTART(ICX)  
 c$$$         istop  = TOTCLLENGTH  
 c$$$         if(icx.lt.NCLSTR1)istop=INDSTART(ICX+1)-1  
 c$$$         print*,(CLSIGNAL(i)/CLSIGMA(i),i=istart,istop)  
 c$$$         print*,(CLSIGNAL(i),i=istart,istop)  
 c$$$         print*,INDMAX(icx)  
 c$$$         print*,cog(4,icx)  
 c$$$         print*,fbad_cog(4,icx)  
752                    
753             call applypfa(PFAx,icx,angx,corr,res)
754           if(PFAx.eq.'COG1')then           stripx  = stripx + corr
755             resxPAM = res
             stripx  = stripx  
             resxPAM = 1e-4*pitchX/sqrt(12.)!!resxPAM  
   
          elseif(PFAx.eq.'COG2')then  
   
             stripx  = stripx + cog(2,icx)              
             resxPAM = risx_cog(abs(angx))!TEMPORANEO                
             resxPAM = resxPAM*fbad_cog(2,icx)  
   
          elseif(PFAx.eq.'COG3')then  
   
             stripx  = stripx + cog(3,icx)              
             resxPAM = risx_cog(abs(angx))!TEMPORANEO                        
             resxPAM = resxPAM*fbad_cog(3,icx)  
   
          elseif(PFAx.eq.'COG4')then  
   
             stripx  = stripx + cog(4,icx)              
             resxPAM = risx_cog(abs(angx))!TEMPORANEO                        
             resxPAM = resxPAM*fbad_cog(4,icx)  
   
          elseif(PFAx.eq.'ETA2')then  
   
             stripx  = stripx + pfaeta2(icx,angx)            
             resxPAM = risxeta2(abs(angx))  
             resxPAM = resxPAM*fbad_cog(2,icx)  
 c$$$            if(DEBUG.EQ.1.and.fbad_cog(2,icx).ne.1)  
 c$$$     $           print*,'BAD icx >>> ',viewx,fbad_cog(2,icx)  
   
          elseif(PFAx.eq.'ETA3')then                          
   
             stripx  = stripx + pfaeta3(icx,angx)            
             resxPAM = risxeta3(abs(angx))                        
             resxPAM = resxPAM*fbad_cog(3,icx)                
 c            if(DEBUG.and.fbad_cog(3,icx).ne.1)              
 c     $           print*,'BAD icx >>> ',viewx,fbad_cog(3,icx)  
   
          elseif(PFAx.eq.'ETA4')then                          
   
             stripx  = stripx + pfaeta4(icx,angx)              
             resxPAM = risxeta4(abs(angx))                        
             resxPAM = resxPAM*fbad_cog(4,icx)                
 c            if(DEBUG.and.fbad_cog(4,icx).ne.1)                
 c     $           print*,'BAD icx >>> ',viewx,fbad_cog(4,icx)  
   
          elseif(PFAx.eq.'ETA')then    
   
             stripx  = stripx + pfaeta(icx,angx)              
 c            resxPAM = riseta(icx,angx)                      
             resxPAM = riseta(viewx,angx)                      
             resxPAM = resxPAM*fbad_eta(icx,angx)              
 c            if(DEBUG.and.fbad_cog(2,icx).ne.1)                
 c     $           print*,'BAD icx >>> ',viewx,fbad_cog(2,icx)  
   
          elseif(PFAx.eq.'ETAL')then    
   
             stripx  = stripx + pfaetal(icx,angx)              
             resxPAM = riseta(viewx,angx)                      
             resxPAM = resxPAM*fbad_eta(icx,angx)              
 c            if(DEBUG.and.fbad_cog(2,icx).ne.1)                
 c     $           print*,'BAD icx >>> ',viewx,fbad_cog(2,icx)  
   
          elseif(PFAx.eq.'COG')then            
   
             stripx  = stripx + cog(0,icx)              
             resxPAM = risx_cog(abs(angx))                      
             resxPAM = resxPAM*fbad_cog(0,icx)  
   
          else  
             if(DEBUG.EQ.1) print*,'*** Non valid p.f.a. (x) --> ',PFAx  
          endif  
   
   
 *     ======================================  
 *     temporary patch for saturated clusters  
 *     ======================================  
          if( nsatstrips(icx).gt.0 )then  
             stripx  = stripx + cog(4,icx)              
             resxPAM = pitchX*1e-4/sqrt(12.)  
 cc            cc=cog(4,icx)  
 c$$$            print*,icx,' *** ',cc  
 c$$$            print*,icx,' *** ',resxPAM  
          endif  
756    
757   10   endif   10   endif
   
758            
759  *     -----------------  *     -----------------
760  *     CLUSTER Y  *     CLUSTER Y
# Line 876  c$$$            print*,icx,' *** ',resxP Line 765  c$$$            print*,icx,' *** ',resxP
765           viewy = VIEW(icy)           viewy = VIEW(icy)
766           nldy = nld(MAXS(icy),VIEW(icy))           nldy = nld(MAXS(icy),VIEW(icy))
767           nply = npl(VIEW(icy))           nply = npl(VIEW(icy))
768           resyPAM = RESYAV  c         resyPAM = RESYAV
769           stripy = float(MAXS(icy))           stripy = float(MAXS(icy))
770    
771           if(           if(
# Line 900  c$$$            print*,icx,' *** ',resxP Line 789  c$$$            print*,icx,' *** ',resxP
789              endif              endif
790              goto 100              goto 100
791           endif           endif
792    
793  *        --------------------------  *        --------------------------
794  *        magnetic-field corrections  *        magnetic-field corrections
795  *        --------------------------  *        --------------------------
796           tgtemp = tan(ay*acos(-1.)/180.)+pmuH_e*bfx*0.00001                   stripy  = stripy +  fieldcorr(viewy,bfx)      
797           angy    = 180.*atan(tgtemp)/acos(-1.)           angy    = effectiveangle(ay,viewy,bfx)
          stripy = stripy + 0.5*pmuH_e*bfx*0.00001*SiDimZ/pitchY  
 c$$$         if(bfx.ne.0.)print*,viewy,'-y- '  
 c$$$     $        ,bfx,0.5*pmuH_e*bfx*0.00001*SiDimZ  
 *        --------------------------  
798                    
799  c$$$         print*,'--- y-cl ---'           call applypfa(PFAy,icy,angy,corr,res)
800  c$$$         istart = INDSTART(ICY)           stripy  = stripy + corr
801  c$$$         istop  = TOTCLLENGTH           resyPAM = res
 c$$$         if(icy.lt.NCLSTR1)istop=INDSTART(ICY+1)-1  
 c$$$         print*,(CLSIGNAL(i)/CLSIGMA(i),i=istart,istop)  
 c$$$         print*,(CLSIGNAL(i),i=istart,istop)  
 c$$$         print*,INDMAX(icy)  
 c$$$         print*,cog(4,icy)  
 c$$$         print*,fbad_cog(4,icy)  
   
          if(PFAy.eq.'COG1')then  
   
             stripy  = stripy      
             resyPAM = 1e-4*pitchY/sqrt(12.)!resyPAM    
   
          elseif(PFAy.eq.'COG2')then  
   
             stripy  = stripy + cog(2,icy)  
             resyPAM = risy_cog(abs(angy))!TEMPORANEO  
             resyPAM = resyPAM*fbad_cog(2,icy)  
   
          elseif(PFAy.eq.'COG3')then  
   
             stripy  = stripy + cog(3,icy)  
             resyPAM = risy_cog(abs(angy))!TEMPORANEO  
             resyPAM = resyPAM*fbad_cog(3,icy)  
   
          elseif(PFAy.eq.'COG4')then  
   
             stripy  = stripy + cog(4,icy)  
             resyPAM = risy_cog(abs(angy))!TEMPORANEO  
             resyPAM = resyPAM*fbad_cog(4,icy)  
   
          elseif(PFAy.eq.'ETA2')then  
   
             stripy  = stripy + pfaeta2(icy,angy)            
             resyPAM = risyeta2(abs(angy))                
             resyPAM = resyPAM*fbad_cog(2,icy)  
 c            if(DEBUG.and.fbad_cog(2,icy).ne.1)  
 c     $           print*,'BAD icy >>> ',viewy,fbad_cog(2,icy)  
   
          elseif(PFAy.eq.'ETA3')then                        
   
             stripy  = stripy + pfaeta3(icy,angy)  
             resyPAM = resyPAM*fbad_cog(3,icy)    
 c            if(DEBUG.and.fbad_cog(3,icy).ne.1)  
 c     $           print*,'BAD icy >>> ',viewy,fbad_cog(3,icy)  
   
          elseif(PFAy.eq.'ETA4')then    
   
             stripy  = stripy + pfaeta4(icy,angy)  
             resyPAM = resyPAM*fbad_cog(4,icy)  
 c            if(DEBUG.and.fbad_cog(4,icy).ne.1)  
 c     $           print*,'BAD icy >>> ',viewy,fbad_cog(4,icy)  
   
          elseif(PFAy.eq.'ETA')then  
   
             stripy  = stripy + pfaeta(icy,angy)  
 c            resyPAM = riseta(icy,angy)    
             resyPAM = riseta(viewy,angy)    
             resyPAM = resyPAM*fbad_eta(icy,angy)  
 c            if(DEBUG.and.fbad_cog(2,icy).ne.1)  
 c     $           print*,'BAD icy >>> ',viewy,fbad_cog(2,icy)  
   
          elseif(PFAy.eq.'ETAL')then  
   
             stripy  = stripy + pfaetal(icy,angy)  
             resyPAM = riseta(viewy,angy)    
             resyPAM = resyPAM*fbad_eta(icy,angy)  
 c            if(DEBUG.and.fbad_cog(2,icy).ne.1)  
 c     $           print*,'BAD icy >>> ',viewy,fbad_cog(2,icy)  
   
          elseif(PFAy.eq.'COG')then  
   
             stripy  = stripy + cog(0,icy)              
             resyPAM = risy_cog(abs(angy))  
             resyPAM = resyPAM*fbad_cog(0,icy)  
   
          else  
             if(DEBUG.EQ.1) print*,'*** Non valid p.f.a. (x) --> ',PFAx  
          endif  
   
   
 *     ======================================  
 *     temporary patch for saturated clusters  
 *     ======================================  
          if( nsatstrips(icy).gt.0 )then  
             stripy  = stripy + cog(4,icy)              
             resyPAM = pitchY*1e-4/sqrt(12.)  
 cc            cc=cog(4,icy)  
 c$$$            print*,icy,' *** ',cc  
 c$$$            print*,icy,' *** ',resyPAM  
          endif  
   
802    
803   20   endif   20   endif
804    
# Line 1028  c--------------------------------------- Line 823  c---------------------------------------
823           yi = acoordsi(stripy,viewy)           yi = acoordsi(stripy,viewy)
824           zi = 0.           zi = 0.
825                    
   
826  c------------------------------------------------------------------------  c------------------------------------------------------------------------
827  c     (xrt,yrt,zrt) = rototranslated coordinates in the silicon sensor frame  c     (xrt,yrt,zrt) = rototranslated coordinates in the silicon sensor frame
828  c------------------------------------------------------------------------  c------------------------------------------------------------------------
# Line 3732  c$$$               cl_used(icl)=ntrk   ! Line 3526  c$$$               cl_used(icl)=ntrk   !
3526              DEDX_Y(IP,IT) = 0              DEDX_Y(IP,IT) = 0
3527              CLTRX(IP,IT) = 0              CLTRX(IP,IT) = 0
3528              CLTRY(IP,IT) = 0              CLTRY(IP,IT) = 0
3529                multmaxx(ip,it) = 0
3530                seedx(ip,it)    = 0
3531                xpu(ip,it)      = 0
3532                multmaxy(ip,it) = 0
3533                seedy(ip,it)    = 0
3534                ypu(ip,it)      = 0
3535           enddo           enddo
3536           do ipa=1,5           do ipa=1,5
3537              AL_nt(IPA,IT) = 0              AL_nt(IPA,IT) = 0
# Line 3924  c$$$               cl_used(icl)=ntrk   ! Line 3724  c$$$               cl_used(icl)=ntrk   !
3724           ay   = ayv_nt(ip,ntr)           ay   = ayv_nt(ip,ntr)
3725           bfx  = BX_STORE(ip,IDCAND)           bfx  = BX_STORE(ip,IDCAND)
3726           bfy  = BY_STORE(ip,IDCAND)           bfy  = BY_STORE(ip,IDCAND)
3727           if(ip.eq.6) ax = -1. * axv_nt(ip,ntr)  c$$$         if(ip.eq.6) ax = -1. * axv_nt(ip,ntr)
3728           if(ip.eq.6) bfy = -1. * BY_STORE(ip,IDCAND)  c$$$         if(ip.eq.6) bfy = -1. * BY_STORE(ip,IDCAND)
3729           tgtemp   = tan(ax*acos(-1.)/180.) + pmuH_h*bfy*0.00001  c$$$         tgtemp   = tan(ax*acos(-1.)/180.) + pmuH_h*bfy*0.00001
3730           angx     = 180.*atan(tgtemp)/acos(-1.)  c$$$         angx     = 180.*atan(tgtemp)/acos(-1.)
3731           tgtemp = tan(ay*acos(-1.)/180.)+pmuH_e*bfx*0.00001          c$$$         tgtemp = tan(ay*acos(-1.)/180.)+pmuH_e*bfx*0.00001        
3732           angy    = 180.*atan(tgtemp)/acos(-1.)  c$$$         angy    = 180.*atan(tgtemp)/acos(-1.)
3733    
3734             angx = effectiveangle(ax,2*ip,bfy)
3735             angy = effectiveangle(ay,2*ip-1,bfx)
3736            
3737                    
3738  c         print*,'* ',ip,bfx,bfy,angx,angy  c         print*,'* ',ip,bfx,bfy,angx,angy
3739    
# Line 3950  c           >>> is a couple Line 3754  c           >>> is a couple
3754              cl_used(cltrx(ip,ntr)) = 1     !tag used clusters                        cl_used(cltrx(ip,ntr)) = 1     !tag used clusters          
3755              cl_used(cltry(ip,ntr)) = 1     !tag used clusters                        cl_used(cltry(ip,ntr)) = 1     !tag used clusters          
3756    
 c$$$            nnnnx = npfastrips(clx(nplanes-ip+1,icp_cp(id)),PFA,angx)  
 c$$$            nnnny = npfastrips(cly(nplanes-ip+1,icp_cp(id)),PFA,angy)              
 c$$$            xbad(ip,ntr)= nbadstrips(nnnnx,clx(nplanes-ip+1,icp_cp(id)))  
 c$$$            ybad(ip,ntr)= nbadstrips(nnnny,cly(nplanes-ip+1,icp_cp(id)))  
3757              xbad(ip,ntr)= nbadstrips(4,clx(nplanes-ip+1,icp_cp(id)))              xbad(ip,ntr)= nbadstrips(4,clx(nplanes-ip+1,icp_cp(id)))
3758              ybad(ip,ntr)= nbadstrips(4,cly(nplanes-ip+1,icp_cp(id)))              ybad(ip,ntr)= nbadstrips(4,cly(nplanes-ip+1,icp_cp(id)))
3759    
# Line 3963  c$$$            ybad(ip,ntr)= nbadstrips Line 3763  c$$$            ybad(ip,ntr)= nbadstrips
3763              if(nsatstrips(cly(nplanes-ip+1,icp_cp(id))).gt.0)              if(nsatstrips(cly(nplanes-ip+1,icp_cp(id))).gt.0)
3764       $           dedx_y(ip,ntr)=-dedx_y(ip,ntr)       $           dedx_y(ip,ntr)=-dedx_y(ip,ntr)
3765    
3766                multmaxx(ip,ntr) = maxs(cltrx(ip,ntr))
3767         $                         +10000*mult(cltrx(ip,ntr))
3768                seedx(ip,ntr)    = clsignal(indmax(cltrx(ip,ntr)))
3769         $           /clsigma(indmax(cltrx(ip,ntr)))
3770                call applypfa(PFA,cltrx(ip,ntr),angx,corr,res)
3771                xpu(ip,ntr)      = corr
3772    
3773                multmaxy(ip,ntr) = maxs(cltry(ip,ntr))
3774         $                         +10000*mult(cltry(ip,ntr))
3775                seedy(ip,ntr)    = clsignal(indmax(cltry(ip,ntr)))
3776         $           /clsigma(indmax(cltry(ip,ntr)))
3777                call applypfa(PFA,cltry(ip,ntr),angy,corr,res)
3778                ypu(ip,ntr)      = corr
3779    
3780           elseif(icl.ne.0)then           elseif(icl.ne.0)then
3781    
3782              cl_used(icl) = 1    !tag used clusters                        cl_used(icl) = 1    !tag used clusters          
3783    
3784              if(mod(VIEW(icl),2).eq.0)then              if(mod(VIEW(icl),2).eq.0)then
3785                 cltrx(ip,ntr)=icl                 cltrx(ip,ntr)=icl
3786  c$$$               nnnnn = npfastrips(icl,PFA,angx)  
 c$$$               xbad(ip,ntr) = nbadstrips(nnnnn,icl)  
3787                 xbad(ip,ntr) = nbadstrips(4,icl)                 xbad(ip,ntr) = nbadstrips(4,icl)
3788    
3789                 if(nsatstrips(icl).gt.0)dedx_x(ip,ntr)=-dedx_x(ip,ntr)                 if(nsatstrips(icl).gt.0)dedx_x(ip,ntr)=-dedx_x(ip,ntr)
3790    
3791                   multmaxx(ip,ntr) = maxs(cltrx(ip,ntr))
3792         $                         +10000*mult(cltrx(ip,ntr))
3793                   seedx(ip,ntr)    = clsignal(indmax(cltrx(ip,ntr)))
3794         $           /clsigma(indmax(cltrx(ip,ntr)))
3795                   call applypfa(PFA,cltrx(ip,ntr),angx,corr,res)
3796                   xpu(ip,ntr)      = corr
3797    
3798              elseif(mod(VIEW(icl),2).eq.1)then              elseif(mod(VIEW(icl),2).eq.1)then
3799                 cltry(ip,ntr)=icl                 cltry(ip,ntr)=icl
3800  c$$$               nnnnn = npfastrips(icl,PFA,angy)  
 c$$$               ybad(ip,ntr) = nbadstrips(nnnnn,icl)  
3801                 ybad(ip,ntr) = nbadstrips(4,icl)                 ybad(ip,ntr) = nbadstrips(4,icl)
3802    
3803                 if(nsatstrips(icl).gt.0)dedx_y(ip,ntr)=-dedx_y(ip,ntr)                 if(nsatstrips(icl).gt.0)dedx_y(ip,ntr)=-dedx_y(ip,ntr)
3804    
3805                   multmaxy(ip,ntr) = maxs(cltry(ip,ntr))
3806         $                         +10000*mult(cltry(ip,ntr))
3807                   seedy(ip,ntr)    = clsignal(indmax(cltry(ip,ntr)))
3808         $           /clsigma(indmax(cltry(ip,ntr)))
3809                   call applypfa(PFA,cltry(ip,ntr),angy,corr,res)
3810                   ypu(ip,ntr)      = corr
3811                  
3812              endif              endif
3813    
3814           endif                     endif          

Legend:
Removed from v.1.30  
changed lines
  Added in v.1.31

  ViewVC Help
Powered by ViewVC 1.1.23