How to fit 2-D vectors in PAW ?
Here is an example showing how to proceed:
MACRO FIT2D
*
* Macro to test 2-D fits of functions F(x1,x2) = Y to data.
*
ZONE 2 2
OPT NSTA
H/DEL *
VECT/DEL *
NP= 3
VECT/CREA PAR([NP]) R 100.0 1.0 1.0
VECT/CREA STEP([NP]) R 1.0 1.0 1.0
VECT/CREA PMIN([NP]) R 1.0 0.0 1.0
VECT/CREA PMAX([NP]) R 1.0 1.0 1.0
*
* Define number of bins in X and Y, then book vectors:
*
NX= 6
NY= 8
MINX= 0.0
MAXX= 3.0
MINY= 0.0
MAXY= 4.0
N= [NX]*[NY]
VECT/CREA Y([N])
VECT/CREA EY([N])
VECT/CREA X([N],2)
*
* Make dummy data using random function HRNDM2. Observe that here the values to
* be expected from the fits are defined:
* | |
FUN2 20 EXP(-0.5*(((1.5-X)**2+(2.0-Y)**2)/(3.**2))) 20 [MINX] [MAXX] _
20 [MINY] [MAXY]
2D 30 'DATA' [NX] [MINX] [MAXX] [NY] [MINY] [MAXY]
APPLICATION COMIS QUIT
SUBROUTINE RNDM
DO 10 I=1,10000
CALL HRNDM2(20,RX,RY)
CALL HFILL(30,RX,RY,1.0)
10 CONTINUE
END
CALL RNDM
END
QUIT
H/PL 30 LEGO
GET/CON 30 Y
GET/ERR 30 EY
*
* Put coordinates x1 and x2 into vector X:
*
BINWX= ([MAXX]-[MINX])/[NX]
BINWY= ([MAXY]-[MINY])/[NY]
DO I=1,[NY]
DO J=1,[NX]
ZX= $SIGMA( [MINX]+[BINWX]*([J]-0.5) )
ZY= $SIGMA( [MINY]+[BINWY]*([I]-0.5) )
N= $SIGMA( ([I]-1)*[NX]+[J] )
VECT/INP X([N],1) [ZX]
VECT/INP X([N],2) [ZY]
ENDDO
ENDDO
*
* Do the fit:
*
V/IN PAR 100.0 1.0 1.0
V/FIT X Y EY FUNXY.FOR 0 [NP] PAR STEP PMIN PMAX
| Plot result:
P1= PAR(1)
P2= PAR(2)
P3= PAR(3)
ZONE 1 2 2 S
FUN2 50 [P1]*EXP(-0.5*((([P2]-X)**2+([P3]-Y)**2)/(3.**2))) [NX] [MINX] [MAXX] _
[NY] [MINY] [MAXY] ' '
H/PL 50 LEGO
RETURN
Where the COMIS function FUNXY.FOR is:
FUNCTION FUNXY(X)
DIMENSION X(2)
COMMON/PAWPAR/PAR(3)
FUNXY= PAR(1)
& *EXP( -0.5*(((PAR(2)-X(1))**2+(PAR(3)-X(2))**2)/(3.**2)) )
END
|
PAW > exe fit2d
**********************************************
* *
* Function minimization by SUBROUTINE HFITV *
* Variable-metric method *
* ID = 0 CHOPT = 0 *
* *
**********************************************
Convergence when estimated distance to minimum (EDM) .LT. 0.10E+01
FCN= 44.38704 FROM MIGRAD STATUS=CONVERGED 70 CALLS 71 TOTAL
EDM= 0.92E-04 STRATEGY= 1 ERROR MATRIX ACCURATE
EXT PARAMETER STEP FIRST
NO. NAME VALUE ERROR SIZE DERIVATIVE
1 P1 232.45 2.4176 0.58806 0.23439E-04
2 P2 1.7379 0.10665 0.24700E-01 0.10854
3 P3 2.0745 0.81073E-01 0.19395E-01 -0.86093E-01
CHISQUARE = 0.9864E+00 NPFIT = 48
PAW >
|
Paw.Support@cern.ch