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

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

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

revision 1.11 by pam-fi, Tue May 15 16:22:18 2007 UTC revision 1.13 by pam-fi, Thu May 24 13:29:09 2007 UTC
# Line 170  c      real function riseta(ic,angle) Line 170  c      real function riseta(ic,angle)
170  *     this function returns the average spatial resolution  *     this function returns the average spatial resolution
171  *     (in cm) for the ETA algorithm (function pfaeta(ic,angle))  *     (in cm) for the ETA algorithm (function pfaeta(ic,angle))
172  *     it calls:  *     it calls:
173  *     - risx_eta2(angle)  *     - risxeta2(angle)
174  *     - risy_eta2(angle)  *     - risyeta2(angle)
175  *     - risx_eta3(angle)  *     - risxeta3(angle)
176  *     - risx_eta4(angle)  *     - risxeta4(angle)
177  *     according to the angle  *     according to the angle
178  *--------------------------------------------------------------  *--------------------------------------------------------------
179        include 'commontracker.f'        include 'commontracker.f'
# Line 187  c      if(mod(int(VIEW(ic)),2).eq.1)then Line 187  c      if(mod(int(VIEW(ic)),2).eq.1)then
187                
188    
189           if( abs(angle).ge.e2fay.and.abs(angle).le.e2tay )then           if( abs(angle).ge.e2fay.and.abs(angle).le.e2tay )then
190              riseta = risy_eta2(angle)              riseta = risyeta2(angle)
191           elseif( abs(angle).ge.e3fay.and.abs(angle).le.e3tay )then           elseif( abs(angle).ge.e3fay.and.abs(angle).le.e3tay )then
192              riseta = risy_cog(angle) !ATTENZIONE!!              riseta = risy_cog(angle) !ATTENZIONE!!
193           elseif( abs(angle).ge.e4fay.and.abs(angle).le.e4tay )then           elseif( abs(angle).ge.e4fay.and.abs(angle).le.e4tay )then
# Line 199  c      if(mod(int(VIEW(ic)),2).eq.1)then Line 199  c      if(mod(int(VIEW(ic)),2).eq.1)then
199        else                      !X-view        else                      !X-view
200    
201           if( abs(angle).ge.e2fax.and.abs(angle).le.e2tax )then           if( abs(angle).ge.e2fax.and.abs(angle).le.e2tax )then
202              riseta = risx_eta2(angle)              riseta = risxeta2(angle)
203           elseif( abs(angle).ge.e3fax.and.abs(angle).le.e3tax )then           elseif( abs(angle).ge.e3fax.and.abs(angle).le.e3tax )then
204              riseta = risx_eta3(angle)              riseta = risxeta3(angle)
205           elseif( abs(angle).ge.e4fax.and.abs(angle).le.e4tax )then           elseif( abs(angle).ge.e4fax.and.abs(angle).le.e4tax )then
206              riseta = risx_eta4(angle)              riseta = risxeta4(angle)
207           else           else
208              riseta = risx_cog(angle)              riseta = risx_cog(angle)
209           endif                       endif            
# Line 785  c         print*,'## ',sl2,sl1,sc,sr1,sr Line 785  c         print*,'## ',sl2,sl1,sc,sr1,sr
785                 if((sl2+sl1+sc+sr1).ne.0)                 if((sl2+sl1+sc+sr1).ne.0)
786       $              COG = (sr1-sl1-2*sl2)/(sl2+sl1+sc+sr1)       $              COG = (sr1-sl1-2*sl2)/(sl2+sl1+sc+sr1)
787              elseif(sl2.le.sr2)then              elseif(sl2.le.sr2)then
788                  if((sl2+sl1+sc+sr1).ne.0)                  if((sr2+sl1+sc+sr1).ne.0)
789       $              COG = (2*sr2+sr1-sl1)/(sl2+sl1+sc+sr1)       $              COG = (2*sr2+sr1-sl1)/(sr2+sl1+sc+sr1)
790              endif              endif
791           else           else
792              print*,'function COG(NCOG,IC) ==> WARNING!! NCOG=',NCOG              print*,'function COG(NCOG,IC) ==> WARNING!! NCOG=',NCOG
# Line 818  c         print*,'-------' Line 818  c         print*,'-------'
818                 COG = COG + ipos*CLSIGNAL(i)                 COG = COG + ipos*CLSIGNAL(i)
819                 SGN = SGN + CLSIGNAL(i)                 SGN = SGN + CLSIGNAL(i)
820                 mu = mu + 1                 mu = mu + 1
821                 print*,ipos,CLSIGNAL(i)  c               print*,ipos,CLSIGNAL(i)
822              else              else
823                 goto 10                 goto 10
824              endif              endif
# Line 831  c         print*,'-------' Line 831  c         print*,'-------'
831                 COG = COG + ipos*CLSIGNAL(i)                 COG = COG + ipos*CLSIGNAL(i)
832                 SGN = SGN + CLSIGNAL(i)                 SGN = SGN + CLSIGNAL(i)
833                 mu = mu + 1                 mu = mu + 1
834                 print*,ipos,CLSIGNAL(i)  c               print*,ipos,CLSIGNAL(i)
835              else              else
836                 goto 20                 goto 20
837              endif              endif
838           enddo           enddo
839   20      continue   20      continue
840           if(SGN.le.0)then           if(SGN.le.0)then
841  c            print*,'cog(0,ic) --> ic, dedx ',ic,SGN              print*,'cog(0,ic) --> ic, dedx ',ic,SGN
842              print*,(CLSIGNAL(i)/CLSIGMA(i),i=istart,istop)              print*,(CLSIGNAL(i)/CLSIGMA(i),i=istart,istop)
843              print*,(CLSIGNAL(i),i=istart,istop)              print*,(CLSIGNAL(i),i=istart,istop)
844  c            print*,'cog(0,ic) --> NOT EVALUATED '  c            print*,'cog(0,ic) --> NOT EVALUATED '
# Line 1193  c         if(BAD(VIEW(ic),nvk(MAXS(ic)), Line 1193  c         if(BAD(VIEW(ic),nvk(MAXS(ic)),
1193    
1194  *** * * * *** * * * *** * * * *** * * * *** * * * *** * * * ***  *** * * * *** * * * *** * * * *** * * * *** * * * *** * * * ***
1195    
1196        FUNCTION risx_eta2(x)        FUNCTION risxeta2(x)
1197    
1198        DOUBLE PRECISION V( 1)        DOUBLE PRECISION V( 1)
1199        INTEGER NPAR, NDIM, IMQFUN, I, J        INTEGER NPAR, NDIM, IMQFUN, I, J
# Line 1280  c         if(BAD(VIEW(ic),nvk(MAXS(ic)), Line 1280  c         if(BAD(VIEW(ic),nvk(MAXS(ic)),
1280     20 CONTINUE     20 CONTINUE
1281        IF (IMQFUN .EQ. 2) HQUADF = VCONST * EXP (HQUADF)        IF (IMQFUN .EQ. 2) HQUADF = VCONST * EXP (HQUADF)
1282                
1283        risx_eta2=HQUADF* 1e-4        risxeta2=HQUADF* 1e-4
1284    
1285        END        END
1286    
1287  *** * * * *** * * * *** * * * *** * * * *** * * * *** * * * ***  *** * * * *** * * * *** * * * *** * * * *** * * * *** * * * ***
1288        FUNCTION risx_eta3(x)        FUNCTION risxeta3(x)
1289        DOUBLE PRECISION V( 1)        DOUBLE PRECISION V( 1)
1290        INTEGER NPAR, NDIM, IMQFUN, I, J        INTEGER NPAR, NDIM, IMQFUN, I, J
1291        DOUBLE PRECISION HQDJ, VV, VCONST        DOUBLE PRECISION HQDJ, VV, VCONST
# Line 1371  c         if(BAD(VIEW(ic),nvk(MAXS(ic)), Line 1371  c         if(BAD(VIEW(ic),nvk(MAXS(ic)),
1371     20 CONTINUE     20 CONTINUE
1372        IF (IMQFUN .EQ. 2) HQUADF = VCONST * EXP (HQUADF)        IF (IMQFUN .EQ. 2) HQUADF = VCONST * EXP (HQUADF)
1373                
1374        risx_eta3 = HQUADF* 1e-4        risxeta3 = HQUADF* 1e-4
1375    
1376        END        END
1377  *** * * * *** * * * *** * * * *** * * * *** * * * *** * * * ***  *** * * * *** * * * *** * * * *** * * * *** * * * *** * * * ***
1378        FUNCTION risx_eta4(x)        FUNCTION risxeta4(x)
1379        DOUBLE PRECISION V( 1)        DOUBLE PRECISION V( 1)
1380        INTEGER NPAR, NDIM, IMQFUN, I, J        INTEGER NPAR, NDIM, IMQFUN, I, J
1381        DOUBLE PRECISION HQDJ, VV, VCONST        DOUBLE PRECISION HQDJ, VV, VCONST
# Line 1461  c         if(BAD(VIEW(ic),nvk(MAXS(ic)), Line 1461  c         if(BAD(VIEW(ic),nvk(MAXS(ic)),
1461     20 CONTINUE     20 CONTINUE
1462        IF (IMQFUN .EQ. 2) HQUADF = VCONST * EXP (HQUADF)        IF (IMQFUN .EQ. 2) HQUADF = VCONST * EXP (HQUADF)
1463                
1464        risx_eta4=HQUADF* 1e-4        risxeta4=HQUADF* 1e-4
1465    
1466        END        END
1467  *** * * * *** * * * *** * * * *** * * * *** * * * *** * * * ***  *** * * * *** * * * *** * * * *** * * * *** * * * *** * * * ***
1468        FUNCTION risy_eta2(x)        FUNCTION risyeta2(x)
1469        DOUBLE PRECISION V( 1)        DOUBLE PRECISION V( 1)
1470        INTEGER NPAR, NDIM, IMQFUN, I, J        INTEGER NPAR, NDIM, IMQFUN, I, J
1471        DOUBLE PRECISION HQDJ, VV, VCONST        DOUBLE PRECISION HQDJ, VV, VCONST
# Line 1533  c         if(BAD(VIEW(ic),nvk(MAXS(ic)), Line 1533  c         if(BAD(VIEW(ic),nvk(MAXS(ic)),
1533     20 CONTINUE     20 CONTINUE
1534        IF (IMQFUN .EQ. 2) HQUADF = VCONST * EXP (HQUADF)        IF (IMQFUN .EQ. 2) HQUADF = VCONST * EXP (HQUADF)
1535    
1536        risy_eta2=HQUADF* 1e-4        risyeta2=HQUADF* 1e-4
1537    
1538        END        END
1539  *** * * * *** * * * *** * * * *** * * * *** * * * *** * * * ***  *** * * * *** * * * *** * * * *** * * * *** * * * *** * * * ***

Legend:
Removed from v.1.11  
changed lines
  Added in v.1.13

  ViewVC Help
Powered by ViewVC 1.1.23