--- DarthVader/TrackerLevel2/src/F77/mini.f 2006/11/21 17:12:26 1.9 +++ DarthVader/TrackerLevel2/src/F77/mini.f 2006/11/30 17:01:52 1.10 @@ -43,8 +43,8 @@ c DATA ALMAX/dinf,dinf,1.,dinf,dinf/ !limits on alpha vector components c DATA ALMIN/-dinf,-dinf,-1.,-dinf,-dinf/ !" - DATA ALMAX/dinf,dinf,dinf,dinf,dinf/ !limits on alpha vector components - DATA ALMIN/-dinf,-dinf,-dinf,-dinf,-dinf/ !" + DATA ALMAX/dinf,dinf,1.,dinf,dinf/ !limits on alpha vector components + DATA ALMIN/-dinf,-dinf,-1.,-dinf,-dinf/ !" DIMENSION DAL(5) !increment of vector alfa DIMENSION CHI2DD_R(4,4),CHI2D_R(4) !hessiano e gradiente di chi2 @@ -140,7 +140,7 @@ RETURN ENDIF - COST=1e-7 + COST=1e-5 DO I=1,5 DO J=1,5 CHI2DD(I,J)=CHI2DD(I,J)*COST @@ -466,8 +466,16 @@ + *( XGOOD(I)*(1-YGOOD(I)) ) + +((XV(I)-XM(I))**2+(YV(I)-YM(I))**2)/RESY(i)**2 + *( (1-XGOOD(I))*YGOOD(I) ) +c$$$ print*,(XV(I)-XM(I))**2/RESX(i)**2 *( XGOOD(I)*YGOOD(I) ) +c$$$ print*,(YV(I)-YM(I))**2/RESY(i)**2 *( YGOOD(I)*XGOOD(I) ) +c$$$ print*,((XV(I)-XM(I))**2+(YV(I)-YM(I))**2)/RESX(i)**2 +c$$$ + *( XGOOD(I)*(1-YGOOD(I)) ) +c$$$ print*,((XV(I)-XM(I))**2+(YV(I)-YM(I))**2)/RESY(i)**2 +c$$$ + *( (1-XGOOD(I))*YGOOD(I) ) +c$$$ print*,XV(I),XM(I),XGOOD(I) +c$$$ print*,YV(I),YM(I),YGOOD(I) ENDDO -c print*,'CHISQ ',chi2 +c$$$ print*,'CHISQ ',chi2 * ------------------------------------------------ * * calculation of derivatives (dX/dAL_fa and dY/dAL_fa) @@ -643,7 +651,7 @@ IF(AL_P(5).NE.0.) VOUT(7)=DABS(1./AL_P(5)) IF(AL_P(5).EQ.0.) VOUT(7)=1.E8 -c$$$ print*,'POSXY ',vout +c$$$ print*,'POSXY (prima) ',vout DO I=1,nplanes step=vout(3)-zv(i) @@ -678,6 +686,7 @@ GOTO 11 ENDIF + * ----------------------------------------------- * evaluate track coordinates 100 XV(I)=VOUT(1) @@ -689,6 +698,9 @@ ENDDO +c$$$ print*,'POSXY (dopo) ',vout + + RETURN END @@ -814,8 +826,8 @@ IF(XC.GT.0)DEF=-DEF IF(ABS(X0).GT.30)THEN - PRINT*,'STRANGE GUESS: XC,ZC,R ',XC,ZC,RADIUS - $ ,' - CHI ',CHI,' - X0,AX,DEF ',X0,AX,DEF +c$$$ PRINT*,'STRANGE GUESS: XC,ZC,R ',XC,ZC,RADIUS +c$$$ $ ,' - CHI ',CHI,' - X0,AX,DEF ',X0,AX,DEF GOTO 10 !straigth fit ENDIF GOTO 20 !guess is ok @@ -859,14 +871,43 @@ AL(2) = Y0 tath = sqrt(AY**2+AX**2) AL(3) = tath/sqrt(1+tath**2) - IF(AX.NE.0)THEN - AL(4)= atan(AY/AX) - ELSE - AL(4) = acos(-1.)/2 - IF(AY.LT.0)AL(4) = AL(4)+acos(-1.) +c$$$ IF(AX.NE.0)THEN +c$$$ AL(4)= atan(AY/AX) +c$$$ ELSE +c$$$ AL(4) = acos(-1.)/2 +c$$$ IF(AY.LT.0)AL(4) = AL(4)+acos(-1.) +c$$$ ENDIF +c$$$ IF(AX.LT.0)AL(4)= acos(-1.)+ AL(4) +c$$$ AL(4) = -acos(-1.) + AL(4) !from incidence direction to tracking ref.sys. + +c$$$ AL(4) = 0. +c$$$ IF(AX.NE.0.AND.AY.NE.0)THEN +c$$$ AL(4)= atan(AY/AX) +c$$$ ELSEIF(AY.EQ.0)THEN +c$$$ AL(4) = 0. +c$$$ IF(AX.LT.0)AL(4) = AL(4)+acos(-1.) +c$$$ ELSEIF(AX.EQ.0)THEN +c$$$ AL(4) = acos(-1.)/2 +c$$$ IF(AY.LT.0)AL(4) = AL(4)+acos(-1.) +c$$$ ENDIF +c$$$ IF(AX.LT.0)AL(4)= acos(-1.)+ AL(4) +c$$$ AL(4) = -acos(-1.) + AL(4) !from incidence direction to tracking ref.sys. + +c$$$ AL(4)=0. +c$$$ IF( AX.NE.0.OR.AY.NE.0. ) THEN +c$$$ AL(4) = ASIN(AY/SQRT(AX**2+AY**2)) +c$$$ IF(AX.LT.0.) AL(4) = ACOS(-1.0)-AL(4) +c$$$ ENDIF + + AL(4)=0. + IF( AX.NE.0.OR.AY.NE.0. ) THEN + AL(4) = ASIN(AY/SQRT(AX**2+AY**2)) + IF(AX.LT.0.AND.AY.GE.0) AL(4) = ACOS(-1.0)-AL(4) + IF(AX.LT.0.AND.AY.LT.0) AL(4) = -ACOS(-1.0)-AL(4) ENDIF - IF(AX.LT.0)AL(4)= acos(-1.)+ AL(4) - AL(4) = -acos(-1.) + AL(4) !from incidence direction to tracking rs + IF(AY.GT.0.) AL(4) = AL(4)-ACOS(-1.0) + IF(AY.LE.0.) AL(4) = AL(4)+ACOS(-1.0) + AL(5) = DEF c print*,' guess: ',(al(i),i=1,5)