--- DarthVader/TrackerLevel2/src/F77/mini.f 2006/11/14 16:21:09 1.6 +++ DarthVader/TrackerLevel2/src/F77/mini.f 2006/11/15 14:54:06 1.7 @@ -36,13 +36,13 @@ c DATA XGOOD,YGOOD/nplanes*1.,nplanes*1./ !planes to be used in the tracking DATA STEPAL/5*1.d-7/ !alpha vector step - DATA ISTEPMAX/120/ !maximum number of steps in the chi^2 minimization + DATA ISTEPMAX/100/ !maximum number of steps in the chi^2 minimization DATA TOLL/1.d-8/ !tolerance in reaching the next plane during * !the tracking procedure DATA STEPMAX/100./ !maximum number of steps in the trackin gprocess - 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 @@ -138,18 +138,7 @@ RETURN ENDIF - COST=1e-9 - costfac=1.1 - flagstep=0 - - 7 continue - - IF(costfac.le.1.) THEN - IFAIL=1 - PRINT *,'=== WARNING ===> no matrix inversion ' - RETURN - ENDIF - + COST=1e-7 DO I=1,5 DO J=1,5 CHI2DD(I,J)=CHI2DD(I,J)*COST @@ -163,30 +152,17 @@ * track fitting with FREE deflection *------------------------------------------------------------* CALL DSFACT(5,CHI2DD,5,IFA,DET,JFA) !CHI2DD matrix determinant - IF(IFA.NE.0.or.jfa.ne.0) THEN !not positive-defined - if(ifa.eq.-1)then - if(TRKVERBOSE)then + IF(IFA.NE.0) THEN !not positive-defined + if(TRKVERBOSE)then PRINT *, $ '*** ERROR in mini ***'// $ 'on matrix inversion (not pos-def)' $ ,DET - endif - IF(CHI2.EQ.0) CHI2=-9999. - IF(CHI2.GT.0) CHI2=-CHI2 - IFAIL=1 - RETURN - endif - if(jfa.eq.-1)then - if(flagstep.eq.-1.) costfac=(costfac-1)/2+1 - cost=cost*costfact - flagstep=1. - goto 7 - elseif(jfa.eq.1)then - if(flagstep.eq.1.) costfac=(costfac-1)/2+1 - cost=cost/costfac - flagstep=-1. - goto 7 - endif + endif + IF(CHI2.EQ.0) CHI2=-9999. + IF(CHI2.GT.0) CHI2=-CHI2 + IFAIL=1 + RETURN ENDIF CALL DSFINV(5,CHI2DD,5) !CHI2DD matrix inversion * ******************************************* @@ -269,10 +245,10 @@ * check number of steps: *------------------------------------------------------------* IF(ISTEP.ge.ISTEPMAX) then - IFAIL=1 - if(TRKVERBOSE) - $ PRINT *,'*** WARNING in mini *** ISTEP.GT.ISTEPMAX=', - $ ISTEPMAX +c$$$ IFAIL=1 +c$$$ if(TRKVERBOSE) +c$$$ $ PRINT *,'*** WARNING in mini *** ISTEP.GT.ISTEPMAX=', +c$$$ $ ISTEPMAX goto 11 endif *------------------------------------------------------------*