| [2403] | 1 | * | 
|---|
|  | 2 | * $Id: fcnk0.F,v 1.1.1.1 2003-06-11 14:18:31 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 FCNK0(NPAR,GIN,F,X,IFLAG) | 
|---|
|  | 11 | #include "minuit/d506dp.inc" | 
|---|
|  | 12 | REAL THPLUI, THMINI | 
|---|
|  | 13 | DIMENSION X(*),GIN(*) | 
|---|
|  | 14 | PARAMETER (MXBIN=50) | 
|---|
|  | 15 | DIMENSION THPLU(MXBIN),THMIN(MXBIN),T(MXBIN), | 
|---|
|  | 16 | +    EVTP(MXBIN),EVTM(MXBIN) | 
|---|
|  | 17 | DATA  NBINS,NEVTOT/ 30,250/ | 
|---|
|  | 18 | DATA (EVTP(IGOD),IGOD=1,30) | 
|---|
|  | 19 | +         /11.,  9., 13., 13., 17.,  9.,  1.,  7.,  8.,  9., | 
|---|
|  | 20 | +           6.,  4.,  6.,  3.,  7.,  4.,  7.,  3.,  8.,  4., | 
|---|
|  | 21 | +           6.,  5.,  7.,  2.,  7.,  1.,  4.,  1.,  4.,  5./ | 
|---|
|  | 22 | DATA (EVTM(IGOD),IGOD=1,30) | 
|---|
|  | 23 | +         / 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  1.,  1., | 
|---|
|  | 24 | +           0.,  2.,  1.,  4.,  4.,  2.,  4.,  2.,  2.,  0., | 
|---|
|  | 25 | +           2.,  3.,  7.,  2.,  3.,  6.,  2.,  4.,  1.,  5./ | 
|---|
|  | 26 | C | 
|---|
|  | 27 | XRE = X(1) | 
|---|
|  | 28 | XIM = X(2) | 
|---|
|  | 29 | DM = X(5) | 
|---|
|  | 30 | GAMS = 1.0/X(10) | 
|---|
|  | 31 | GAML = 1.0/X(11) | 
|---|
|  | 32 | GAMLS = 0.5*(GAML+GAMS) | 
|---|
|  | 33 | IF (IFLAG .NE. 1)  GO TO 300 | 
|---|
|  | 34 | C                        generate random data | 
|---|
|  | 35 | STHPLU = 0. | 
|---|
|  | 36 | STHMIN = 0. | 
|---|
|  | 37 | DO 200 I= 1, NBINS | 
|---|
|  | 38 | T(I) = 0.1*REAL(I) | 
|---|
|  | 39 | TI = T(I) | 
|---|
|  | 40 | EHALF = EXP(-TI*GAMLS) | 
|---|
|  | 41 | TH =      ((1.0-XRE)**2 + XIM**2) * EXP(-TI*GAML) | 
|---|
|  | 42 | TH = TH + ((1.0+XRE)**2 + XIM**2) * EXP(-TI*GAMS) | 
|---|
|  | 43 | TH = TH -               4.0*XIM*SIN(DM*TI) * EHALF | 
|---|
|  | 44 | STERM = 2.0*(1.0-XRE**2-XIM**2)*COS(DM*TI) * EHALF | 
|---|
|  | 45 | THPLU(I) = TH + STERM | 
|---|
|  | 46 | THMIN(I) = TH - STERM | 
|---|
|  | 47 | STHPLU = STHPLU + THPLU(I) | 
|---|
|  | 48 | STHMIN = STHMIN + THMIN(I) | 
|---|
|  | 49 | 200 CONTINUE | 
|---|
|  | 50 | NEVPLU = REAL(NEVTOT)*(STHPLU/(STHPLU+STHMIN)) | 
|---|
|  | 51 | NEVMIN = REAL(NEVTOT)*(STHMIN/(STHPLU+STHMIN)) | 
|---|
|  | 52 | WRITE (6,'(A)') '  LEPTONIC K ZERO DECAYS' | 
|---|
|  | 53 | WRITE (6,'(A,3I10)') ' PLUS, MINUS, TOTAL=',NEVPLU,NEVMIN,NEVTOT | 
|---|
|  | 54 | WRITE (6,'(A)') | 
|---|
|  | 55 | +  '0    TIME        THEOR+      EXPTL+     THEOR-      EXPTL-' | 
|---|
|  | 56 | SEVTP = 0. | 
|---|
|  | 57 | SEVTM = 0. | 
|---|
|  | 58 | DO 250 I= 1, NBINS | 
|---|
|  | 59 | THPLU(I) = THPLU(I)*REAL(NEVPLU) / STHPLU | 
|---|
|  | 60 | THMIN(I) = THMIN(I)*REAL(NEVMIN) / STHMIN | 
|---|
|  | 61 | THPLUI = THPLU(I) | 
|---|
|  | 62 | CCC      CALL POISSN(THPLUI,NP,IERROR) | 
|---|
|  | 63 | CCC      EVTP(I) = NP | 
|---|
|  | 64 | SEVTP = SEVTP + EVTP(I) | 
|---|
|  | 65 | THMINI = THMIN(I) | 
|---|
|  | 66 | CCC      CALL POISSN(THMINI,NM,IERROR) | 
|---|
|  | 67 | CCC      EVTM(I) = NM | 
|---|
|  | 68 | SEVTM = SEVTM + EVTM(I) | 
|---|
|  | 69 | IF (IFLAG .NE. 4) | 
|---|
|  | 70 | + WRITE (6,'(1X,5G12.4)') T(I),THPLU(I),EVTP(I),THMIN(I),EVTM(I) | 
|---|
|  | 71 | 250 CONTINUE | 
|---|
|  | 72 | WRITE (6, '(A,2F10.2)') ' DATA EVTS PLUS, MINUS=', SEVTP,SEVTM | 
|---|
|  | 73 | C                      calculate chisquared | 
|---|
|  | 74 | 300 CONTINUE | 
|---|
|  | 75 | CHISQ = 0. | 
|---|
|  | 76 | STHPLU = 0. | 
|---|
|  | 77 | STHMIN = 0. | 
|---|
|  | 78 | DO 400 I= 1, NBINS | 
|---|
|  | 79 | TI = T(I) | 
|---|
|  | 80 | EHALF = EXP(-TI*GAMLS) | 
|---|
|  | 81 | TH =      ((1.0-XRE)**2 + XIM**2) * EXP(-TI*GAML) | 
|---|
|  | 82 | TH = TH + ((1.0+XRE)**2 + XIM**2) * EXP(-TI*GAMS) | 
|---|
|  | 83 | TH = TH -               4.0*XIM*SIN(DM*TI) * EHALF | 
|---|
|  | 84 | STERM = 2.0*(1.0-XRE**2-XIM**2)*COS(DM*TI) * EHALF | 
|---|
|  | 85 | THPLU(I) = TH + STERM | 
|---|
|  | 86 | THMIN(I) = TH - STERM | 
|---|
|  | 87 | STHPLU = STHPLU + THPLU(I) | 
|---|
|  | 88 | STHMIN = STHMIN + THMIN(I) | 
|---|
|  | 89 | 400 CONTINUE | 
|---|
|  | 90 | THP = 0. | 
|---|
|  | 91 | THM = 0. | 
|---|
|  | 92 | EVP = 0. | 
|---|
|  | 93 | EVM = 0. | 
|---|
|  | 94 | IF (IFLAG .NE. 4) WRITE (6,'(1H0,10X,A,20X,A)') | 
|---|
|  | 95 | +  'POSITIVE LEPTONS','NEGATIVE LEPTONS' | 
|---|
|  | 96 | IF (IFLAG .NE. 4) WRITE (6,'(A,3X,A)') | 
|---|
|  | 97 | +    '      TIME    THEOR    EXPTL    CHISQ', | 
|---|
|  | 98 | +    '      TIME    THEOR    EXPTL    CHISQ' | 
|---|
|  | 99 | C | 
|---|
|  | 100 | DO 450 I= 1, NBINS | 
|---|
|  | 101 | THPLU(I) = THPLU(I)*SEVTP / STHPLU | 
|---|
|  | 102 | THMIN(I) = THMIN(I)*SEVTM / STHMIN | 
|---|
|  | 103 | THP = THP + THPLU(I) | 
|---|
|  | 104 | THM = THM + THMIN(I) | 
|---|
|  | 105 | EVP = EVP + EVTP(I) | 
|---|
|  | 106 | EVM = EVM + EVTM(I) | 
|---|
|  | 107 | C  Sum over bins until at least four events found | 
|---|
|  | 108 | IF (EVP .GT. 3.)  THEN | 
|---|
|  | 109 | CHI1 = (EVP-THP)**2/EVP | 
|---|
|  | 110 | CHISQ = CHISQ + CHI1 | 
|---|
|  | 111 | IF (IFLAG .NE. 4) | 
|---|
|  | 112 | +      WRITE (6,'(1X,4F9.3)') T(I),THP,EVP,CHI1 | 
|---|
|  | 113 | THP = 0. | 
|---|
|  | 114 | EVP = 0. | 
|---|
|  | 115 | ENDIF | 
|---|
|  | 116 | IF (EVM .GT. 3)  THEN | 
|---|
|  | 117 | CHI2 = (EVM-THM)**2/EVM | 
|---|
|  | 118 | CHISQ = CHISQ + CHI2 | 
|---|
|  | 119 | IF (IFLAG .NE. 4) | 
|---|
|  | 120 | +      WRITE (6,'(42X,4F9.3)') T(I),THM,EVM,CHI2 | 
|---|
|  | 121 | THM = 0. | 
|---|
|  | 122 | EVM = 0. | 
|---|
|  | 123 | ENDIF | 
|---|
|  | 124 | 450 CONTINUE | 
|---|
|  | 125 | F = CHISQ | 
|---|
|  | 126 | RETURN | 
|---|
|  | 127 | END | 
|---|