* * $Id: fcnk0.F,v 1.1.1.1 1996/03/07 14:31:32 mclareni Exp $ * * $Log: fcnk0.F,v $ * Revision 1.1.1.1 1996/03/07 14:31:32 mclareni * Minuit * * #include "minuit/pilot.h" SUBROUTINE FCNK0(NPAR,GIN,F,X,IFLAG) #include "minuit/d506dp.inc" REAL THPLUI, THMINI DIMENSION X(*),GIN(*) PARAMETER (MXBIN=50) DIMENSION THPLU(MXBIN),THMIN(MXBIN),T(MXBIN), + EVTP(MXBIN),EVTM(MXBIN) DATA NBINS,NEVTOT/ 30,250/ DATA (EVTP(IGOD),IGOD=1,30) + /11., 9., 13., 13., 17., 9., 1., 7., 8., 9., + 6., 4., 6., 3., 7., 4., 7., 3., 8., 4., + 6., 5., 7., 2., 7., 1., 4., 1., 4., 5./ DATA (EVTM(IGOD),IGOD=1,30) + / 0., 0., 0., 0., 0., 0., 0., 0., 1., 1., + 0., 2., 1., 4., 4., 2., 4., 2., 2., 0., + 2., 3., 7., 2., 3., 6., 2., 4., 1., 5./ C XRE = X(1) XIM = X(2) DM = X(5) GAMS = 1.0/X(10) GAML = 1.0/X(11) GAMLS = 0.5*(GAML+GAMS) IF (IFLAG .NE. 1) GO TO 300 C generate random data STHPLU = 0. STHMIN = 0. DO 200 I= 1, NBINS T(I) = 0.1*REAL(I) TI = T(I) EHALF = EXP(-TI*GAMLS) TH = ((1.0-XRE)**2 + XIM**2) * EXP(-TI*GAML) TH = TH + ((1.0+XRE)**2 + XIM**2) * EXP(-TI*GAMS) TH = TH - 4.0*XIM*SIN(DM*TI) * EHALF STERM = 2.0*(1.0-XRE**2-XIM**2)*COS(DM*TI) * EHALF THPLU(I) = TH + STERM THMIN(I) = TH - STERM STHPLU = STHPLU + THPLU(I) STHMIN = STHMIN + THMIN(I) 200 CONTINUE NEVPLU = REAL(NEVTOT)*(STHPLU/(STHPLU+STHMIN)) NEVMIN = REAL(NEVTOT)*(STHMIN/(STHPLU+STHMIN)) WRITE (6,'(A)') ' LEPTONIC K ZERO DECAYS' WRITE (6,'(A,3I10)') ' PLUS, MINUS, TOTAL=',NEVPLU,NEVMIN,NEVTOT WRITE (6,'(A)') + '0 TIME THEOR+ EXPTL+ THEOR- EXPTL-' SEVTP = 0. SEVTM = 0. DO 250 I= 1, NBINS THPLU(I) = THPLU(I)*REAL(NEVPLU) / STHPLU THMIN(I) = THMIN(I)*REAL(NEVMIN) / STHMIN THPLUI = THPLU(I) CCC CALL POISSN(THPLUI,NP,IERROR) CCC EVTP(I) = NP SEVTP = SEVTP + EVTP(I) THMINI = THMIN(I) CCC CALL POISSN(THMINI,NM,IERROR) CCC EVTM(I) = NM SEVTM = SEVTM + EVTM(I) IF (IFLAG .NE. 4) + WRITE (6,'(1X,5G12.4)') T(I),THPLU(I),EVTP(I),THMIN(I),EVTM(I) 250 CONTINUE WRITE (6, '(A,2F10.2)') ' DATA EVTS PLUS, MINUS=', SEVTP,SEVTM C calculate chisquared 300 CONTINUE CHISQ = 0. STHPLU = 0. STHMIN = 0. DO 400 I= 1, NBINS TI = T(I) EHALF = EXP(-TI*GAMLS) TH = ((1.0-XRE)**2 + XIM**2) * EXP(-TI*GAML) TH = TH + ((1.0+XRE)**2 + XIM**2) * EXP(-TI*GAMS) TH = TH - 4.0*XIM*SIN(DM*TI) * EHALF STERM = 2.0*(1.0-XRE**2-XIM**2)*COS(DM*TI) * EHALF THPLU(I) = TH + STERM THMIN(I) = TH - STERM STHPLU = STHPLU + THPLU(I) STHMIN = STHMIN + THMIN(I) 400 CONTINUE THP = 0. THM = 0. EVP = 0. EVM = 0. IF (IFLAG .NE. 4) WRITE (6,'(1H0,10X,A,20X,A)') + 'POSITIVE LEPTONS','NEGATIVE LEPTONS' IF (IFLAG .NE. 4) WRITE (6,'(A,3X,A)') + ' TIME THEOR EXPTL CHISQ', + ' TIME THEOR EXPTL CHISQ' C DO 450 I= 1, NBINS THPLU(I) = THPLU(I)*SEVTP / STHPLU THMIN(I) = THMIN(I)*SEVTM / STHMIN THP = THP + THPLU(I) THM = THM + THMIN(I) EVP = EVP + EVTP(I) EVM = EVM + EVTM(I) C Sum over bins until at least four events found IF (EVP .GT. 3.) THEN CHI1 = (EVP-THP)**2/EVP CHISQ = CHISQ + CHI1 IF (IFLAG .NE. 4) + WRITE (6,'(1X,4F9.3)') T(I),THP,EVP,CHI1 THP = 0. EVP = 0. ENDIF IF (EVM .GT. 3) THEN CHI2 = (EVM-THM)**2/EVM CHISQ = CHISQ + CHI2 IF (IFLAG .NE. 4) + WRITE (6,'(42X,4F9.3)') T(I),THM,EVM,CHI2 THM = 0. EVM = 0. ENDIF 450 CONTINUE F = CHISQ RETURN END