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

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

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

revision 1.26 by mocchiut, Thu Jan 16 15:29:56 2014 UTC revision 1.27 by mocchiut, Fri Jan 17 12:56:51 2014 UTC
# Line 24  c      common/dbg/DEBUG Line 24  c      common/dbg/DEBUG
24    
25        parameter (dinf=1.d15)      !just a huge number...        parameter (dinf=1.d15)      !just a huge number...
26        parameter (dinfneg=-dinf)   ! just a huge negative number...        parameter (dinfneg=-dinf)   ! just a huge negative number...
   
       double precision NX, NY ! EM GCC4.7  
27  c------------------------------------------------------------------------  c------------------------------------------------------------------------
28  c     variables used in the tracking procedure (mini and its subroutines)  c     variables used in the tracking procedure (mini and its subroutines)
29  c  c
# Line 104  c$$$      PRINT*,'==========' ! TEST Line 102  c$$$      PRINT*,'==========' ! TEST
102  *     ----------------------------------------------------------  *     ----------------------------------------------------------
103        AVRESX = RESXAV        AVRESX = RESXAV
104        AVRESY = RESYAV        AVRESY = RESYAV
105        NX = 0.0        NX = 0 !EM GCC4.7
106        NY = 0.0        NY = 0 !EM GCC4.7
107        DO IP=1,6        DO IP=1,6
108           IF( XGOOD(IP).EQ.1 )THEN           IF( XGOOD(IP).EQ.1 )THEN
109              NX=NX+1.0              NX=NX+1!EM GCC4.7
110              AVRESX=AVRESX+RESX(IP)              AVRESX=AVRESX+RESX(IP)
111           ENDIF           ENDIF
112           IF( YGOOD(IP).EQ.1 )THEN           IF( YGOOD(IP).EQ.1 )THEN
113              NY=NY+1.0              NY=NY+1!EM GCC4.7
114              AVRESY=AVRESY+RESY(IP)              AVRESY=AVRESY+RESY(IP)
115           ENDIF           ENDIF
116        ENDDO        ENDDO
# Line 1137  c$$$      print*,'POSXY (dopo) ',vout Line 1135  c$$$      print*,'POSXY (dopo) ',vout
1135    
1136        subroutine guess()        subroutine guess()
1137    
1138        IMPLICIT DOUBLE PRECISION (A-H,O-Z) ! EM GCC4.7  c      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
1139    
1140        include 'commontracker.f' !tracker general common        include 'commontracker.f' !tracker general common
1141        include 'common_mini_2.f' !common for the tracking procedure        include 'common_mini_2.f' !common for the tracking procedure
1142                
1143        REAL*8 XP(NPLANES),ZP(NPLANES),AP(NPLANES),RP(NPLANES) ! EM GCC4.7        REAL*4 XP(NPLANES),ZP(NPLANES),AP(NPLANES),RP(NPLANES)
1144        REAL*4 CHI,XC,ZC,RADIUS        REAL*4 CHI,XC,ZC,RADIUS
1145  *     ----------------------------------------  *     ----------------------------------------
1146  *     Y view  *     Y view
# Line 1157  c$$$      print*,'POSXY (dopo) ',vout Line 1155  c$$$      print*,'POSXY (dopo) ',vout
1155        S1=0.        S1=0.
1156        DO I=1,nplanes        DO I=1,nplanes
1157           IF(YGOOD(I).EQ.1)THEN           IF(YGOOD(I).EQ.1)THEN
1158              YY = YM(I)              YY = REAL(YM(I))!EM GCC4.7
1159              IF(XGOOD(I).EQ.0)THEN              IF(XGOOD(I).EQ.0)THEN
1160                 YY = (YM_A(I) + YM_B(I))/2                 YY = REAL((YM_A(I) + YM_B(I))/2.)!EM GCC4.7
1161              ENDIF              ENDIF
1162              SZZ=SZZ+ZM(I)*ZM(I)              SZZ=SZZ+REAL(ZM(I)*ZM(I))!EM GCC4.7
1163              SZY=SZY+ZM(I)*YY              SZY=SZY+REAL(ZM(I)*YY)!EM GCC4.7
1164              SSY=SSY+YY              SSY=SSY+YY
1165              SZ=SZ+ZM(I)              SZ=SZ+REAL(ZM(I))!EM GCC4.7
1166              S1=S1+1.              S1=S1+1.
1167           ENDIF           ENDIF
1168        ENDDO        ENDDO
1169        DET=SZZ*S1-SZ*SZ        DET=SZZ*S1-SZ*SZ
1170        AY=(SZY*S1-SZ*SSY)/DET        AY=(SZY*S1-SZ*SSY)/DET
1171        BY=(SZZ*SSY-SZY*SZ)/DET        BY=(SZZ*SSY-SZY*SZ)/DET
1172        Y0 = AY*ZINI+BY        Y0 = REAL(AY*ZINI+BY)!EM GCC4.7
1173  *     ----------------------------------------  *     ----------------------------------------
1174  *     X view  *     X view
1175  *     ----------------------------------------  *     ----------------------------------------
# Line 1181  c$$$      print*,'POSXY (dopo) ',vout Line 1179  c$$$      print*,'POSXY (dopo) ',vout
1179        NP=0        NP=0
1180        DO I=1,nplanes        DO I=1,nplanes
1181           IF(XGOOD(I).EQ.1)THEN           IF(XGOOD(I).EQ.1)THEN
1182              XX = XM(I)              XX = REAL(XM(I))!EM GCC4.7
1183              IF(YGOOD(I).EQ.0)THEN              IF(YGOOD(I).EQ.0)THEN
1184                 XX = (XM_A(I) + XM_B(I))/2                 XX = REAL((XM_A(I) + XM_B(I))/2.)!EM GCC4.7
1185              ENDIF              ENDIF
1186              NP=NP+1              NP=NP+1
1187              XP(NP)=XX              XP(NP)=XX
1188              ZP(NP)=ZM(I)              ZP(NP)=REAL(ZM(I))!EM GCC4.7
1189           ENDIF           ENDIF
1190        ENDDO        ENDDO
1191        IFLAG=0                   !no debug mode        IFLAG=0                   !no debug mode
# Line 1201  c$$$      print*,' XP ',(rp(i),i=1,np) Line 1199  c$$$      print*,' XP ',(rp(i),i=1,np)
1199    
1200        IF(IFLAG.NE.0)GOTO 10 !straigth fit        IF(IFLAG.NE.0)GOTO 10 !straigth fit
1201  c      if(CHI.gt.100)GOTO 10 !straigth fit  c      if(CHI.gt.100)GOTO 10 !straigth fit
1202        ARG = RADIUS**2-(ZINI-ZC)**2        ARG = REAL(RADIUS**2-(ZINI-ZC)**2)!EM GCC4.7
1203        IF(ARG.LT.0)GOTO 10       !straigth fit        IF(ARG.LT.0)GOTO 10       !straigth fit
1204        DC = SQRT(ARG)              DC = SQRT(ARG)      
1205        IF(XC.GT.0)DC=-DC        IF(XC.GT.0)DC=-DC
1206        X0=XC+DC        X0=XC+DC
1207        AX = -(ZINI-ZC)/DC        AX = REAL(-(ZINI-ZC)/DC)!EM GCC4.7
1208        DEF=100./(RADIUS*0.3*0.43)        DEF=100./(RADIUS*0.3*0.43)
1209        IF(XC.GT.0)DEF=-DEF        IF(XC.GT.0)DEF=-DEF
1210                
# Line 1232  c$$$     $     ,' - CHI ',CHI,' - X0,AX, Line 1230  c$$$     $     ,' - CHI ',CHI,' - X0,AX,
1230        S1=0.        S1=0.
1231        DO I=1,nplanes        DO I=1,nplanes
1232           IF(XGOOD(I).EQ.1)THEN           IF(XGOOD(I).EQ.1)THEN
1233              XX = XM(I)              XX = REAL(XM(I))!EM GCC4.7
1234              IF(YGOOD(I).EQ.0)THEN              IF(YGOOD(I).EQ.0)THEN
1235                 XX = (XM_A(I) + XM_B(I))/2                 XX = REAL((XM_A(I) + XM_B(I))/2.)!EM GCC4.7
1236              ENDIF              ENDIF
1237              SZZ=SZZ+ZM(I)*ZM(I)              SZZ=SZZ+REAL(ZM(I)*ZM(I))!EM GCC4.7
1238              SZX=SZX+ZM(I)*XX              SZX=SZX+REAL(ZM(I)*XX)!EM GCC4.7
1239              SSX=SSX+XX              SSX=SSX+XX
1240              SZ=SZ+ZM(I)              SZ=SZ+REAL(ZM(I))!EM GCC4.7
1241              S1=S1+1.              S1=S1+1.
1242           ENDIF           ENDIF
1243        ENDDO        ENDDO
# Line 1247  c$$$     $     ,' - CHI ',CHI,' - X0,AX, Line 1245  c$$$     $     ,' - CHI ',CHI,' - X0,AX,
1245        AX=(SZX*S1-SZ*SSX)/DET        AX=(SZX*S1-SZ*SSX)/DET
1246        BX=(SZZ*SSX-SZX*SZ)/DET        BX=(SZZ*SSX-SZX*SZ)/DET
1247        DEF = 0        DEF = 0
1248        X0  = AX*ZINI+BX        X0  = REAL(AX*ZINI+BX)!EM GCC4.7
1249    
1250   20   CONTINUE   20   CONTINUE
1251  *     ----------------------------------------  *     ----------------------------------------

Legend:
Removed from v.1.26  
changed lines
  Added in v.1.27

  ViewVC Help
Powered by ViewVC 1.1.23