source: Sophya/trunk/SophyaExt/CodeMinuit/code/mnwerr.F@ 2403

Last change on this file since 2403 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.7 KB
Line 
1*
2* $Id: mnwerr.F,v 1.1.1.1 2003-06-11 14:18:30 cmv Exp $
3*
4* $Log: not supported by cvs2svn $
5* Revision 1.1.1.1 1996/03/07 14:31:32 mclareni
6* Minuit
7*
8*
9#include "minuit/pilot.h"
10 SUBROUTINE MNWERR
11#include "minuit/d506dp.inc"
12CC Calculates the WERR, external parameter errors,
13CC and the global correlation coefficients, to be called
14CC whenever a new covariance matrix is available.
15CC
16#include "minuit/d506cm.inc"
17C calculate external error if v exists
18 IF (ISW(2) .GE. 1) THEN
19 DO 100 L= 1, NPAR
20 NDEX = L*(L+1)/2
21 DX = SQRT(ABS(VHMAT(NDEX)*UP))
22 I = NEXOFI(L)
23 IF (NVARL(I) .GT. 1) THEN
24 AL = ALIM(I)
25 BA = BLIM(I) - AL
26 DU1 = AL + 0.5 *(SIN(X(L)+DX) +1.0) * BA - U(I)
27 DU2 = AL + 0.5 *(SIN(X(L)-DX) +1.0) * BA - U(I)
28 IF (DX .GT. 1.0) DU1 = BA
29 DX = 0.5 * (ABS(DU1) + ABS(DU2))
30 ENDIF
31 WERR(L) = DX
32 100 CONTINUE
33 ENDIF
34C global correlation coefficients
35 IF (ISW(2) .GE. 1) THEN
36 DO 130 I= 1, NPAR
37 GLOBCC(I) = 0.
38 K1 = I*(I-1)/2
39 DO 130 J= 1, I
40 K = K1 + J
41 P(I,J) = VHMAT(K)
42 130 P(J,I) = P(I,J)
43 CALL MNVERT(P,MAXINT,MAXINT,NPAR,IERR)
44 IF (IERR .EQ. 0) THEN
45 DO 150 IIN= 1, NPAR
46 NDIAG = IIN*(IIN+1)/2
47 DENOM = P(IIN,IIN)*VHMAT(NDIAG)
48 IF (DENOM.LE.ONE .AND. DENOM.GE.ZERO) THEN
49 GLOBCC(IIN) = 0.
50 ELSE
51 GLOBCC(IIN) = SQRT(1.0-1.0/DENOM)
52 ENDIF
53 150 CONTINUE
54 ENDIF
55 ENDIF
56 RETURN
57 END
Note: See TracBrowser for help on using the repository browser.