| 
            Last change
 on this file since 2996 was             2403, checked in by cmv, 22 years ago           | 
        
        
          
            
Creation du module de code source de MINUIT (CERNLIB) extrait par CMV 
 
cmv 11/06/2003 
 
 
 
           | 
        
        
          | 
            File size:
            1.6 KB
           | 
        
      
      
| Rev | Line |   | 
|---|
| [2403] | 1 | *
 | 
|---|
 | 2 | * $Id: mnpfit.F,v 1.1.1.1 2003-06-11 14:18:28 cmv Exp $
 | 
|---|
 | 3 | *
 | 
|---|
 | 4 | * $Log: not supported by cvs2svn $
 | 
|---|
 | 5 | * Revision 1.1.1.1  1996/03/07 14:31:31  mclareni
 | 
|---|
 | 6 | * Minuit
 | 
|---|
 | 7 | *
 | 
|---|
 | 8 | *
 | 
|---|
 | 9 | #include "minuit/pilot.h"
 | 
|---|
 | 10 |       SUBROUTINE MNPFIT(PARX2P,PARY2P,NPAR2P,COEF2P,SDEV2P)
 | 
|---|
 | 11 | #include "minuit/d506dp.inc"
 | 
|---|
 | 12 | C
 | 
|---|
 | 13 | C     to fit a parabola to npar2p points
 | 
|---|
 | 14 | C
 | 
|---|
 | 15 | C   npar2p   no. of points
 | 
|---|
 | 16 | C   parx2p(i)   x value of point i
 | 
|---|
 | 17 | C   pary2p(i)   y value of point i
 | 
|---|
 | 18 | C
 | 
|---|
 | 19 | C   coef2p(1...3)  coefficients of the fitted parabola
 | 
|---|
 | 20 | C   y=coef2p(1) + coef2p(2)*x + coef2p(3)*x**2
 | 
|---|
 | 21 | C   sdev2p= variance
 | 
|---|
 | 22 | C   method : chi**2 = min equation solved explicitly
 | 
|---|
 | 23 |       DIMENSION PARX2P(NPAR2P),PARY2P(NPAR2P),COEF2P(NPAR2P)
 | 
|---|
 | 24 |       DIMENSION CZ(3)
 | 
|---|
 | 25 | C
 | 
|---|
 | 26 |       DO 3  I=1,3
 | 
|---|
 | 27 |     3 CZ(I)=0.
 | 
|---|
 | 28 |       SDEV2P=0.
 | 
|---|
 | 29 |       IF(NPAR2P.LT.3) GO TO 10
 | 
|---|
 | 30 |       F=NPAR2P
 | 
|---|
 | 31 | C--- center x values for reasons of machine precision
 | 
|---|
 | 32 |       XM=0.
 | 
|---|
 | 33 |       DO 2  I=1,NPAR2P
 | 
|---|
 | 34 |     2 XM=XM+PARX2P(I)
 | 
|---|
 | 35 |       XM=XM/F
 | 
|---|
 | 36 |       X2=0.
 | 
|---|
 | 37 |       X3=0.
 | 
|---|
 | 38 |       X4=0.
 | 
|---|
 | 39 |       Y=0.
 | 
|---|
 | 40 |       Y2=0.
 | 
|---|
 | 41 |       XY=0.
 | 
|---|
 | 42 |       X2Y=0.
 | 
|---|
 | 43 |       DO 1  I=1,NPAR2P
 | 
|---|
 | 44 |       S=PARX2P(I)-XM
 | 
|---|
 | 45 |       T=PARY2P(I)
 | 
|---|
 | 46 |       S2=S*S
 | 
|---|
 | 47 |       X2=X2+S2
 | 
|---|
 | 48 |       X3=X3+S*S2
 | 
|---|
 | 49 |       X4=X4+S2*S2
 | 
|---|
 | 50 |       Y=Y+T
 | 
|---|
 | 51 |       Y2=Y2+T*T
 | 
|---|
 | 52 |       XY=XY+S*T
 | 
|---|
 | 53 |       X2Y=X2Y+S2*T
 | 
|---|
 | 54 |     1 CONTINUE
 | 
|---|
 | 55 |       A=(F*X4-X2**2)*X2-F*X3**2
 | 
|---|
 | 56 |       IF(A.EQ.0.)  GOTO 10
 | 
|---|
 | 57 |       CZ(3)=(X2*(F*X2Y-X2*Y)-F*X3*XY)/A
 | 
|---|
 | 58 |       CZ(2)=(XY-X3*CZ(3))/X2
 | 
|---|
 | 59 |       CZ(1)=(Y-X2*CZ(3))/F
 | 
|---|
 | 60 |       IF(NPAR2P.EQ.3)  GOTO 6
 | 
|---|
 | 61 |       SDEV2P=Y2-(CZ(1)*Y+CZ(2)*XY+CZ(3)*X2Y)
 | 
|---|
 | 62 |       IF(SDEV2P.LT.0.)  SDEV2P=0.
 | 
|---|
 | 63 |       SDEV2P=SDEV2P/(F-3.)
 | 
|---|
 | 64 |     6 CZ(1)=CZ(1)+XM*(XM*CZ(3)-CZ(2))
 | 
|---|
 | 65 |       CZ(2)=CZ(2)-2.*XM*CZ(3)
 | 
|---|
 | 66 |    10 CONTINUE
 | 
|---|
 | 67 |       DO 11  I=1,3
 | 
|---|
 | 68 |    11 COEF2P(I)=CZ(I)
 | 
|---|
 | 69 |       RETURN
 | 
|---|
 | 70 |       END
 | 
|---|
       
      
  Note:
 See   
TracBrowser
 for help on using the repository browser.