* * $Id: hcmom.F,v 1.1.1.1 1996/01/16 17:07:33 mclareni Exp $ * * $Log: hcmom.F,v $ * Revision 1.1.1.1 1996/01/16 17:07:33 mclareni * First import * * #include "hbook/pilot.h" *CMZ : 4.22/11 23/08/94 14.17.45 by Rene Brun *-- Author : SUBROUTINE HCMOM(IDD,CMOM) *.==========> *. CALCULATES INITIAL VALUES OF THE CHEBYSHEF COEFFICIENTS *. A1,A2,...,AN IN HPOLYN AS THE SUM OF CONTENTS/NCHAN, MEAN, RMS *. AND THIRD (UP TO THE 6-TH) CENTRAL MOMENTS OF HISTOGRAM IDD. *. *. OUTPUT ARGUMENT CMOM = ARRAY OF CMOMENTS *..=========> ( E.Lessner ) #include "hbook/hcfit2.inc" #include "hbook/hcfit3.inc" #include "hbook/hcbook.inc" #include "hbook/hcfitr.inc" DIMENSION XVAL(6), CMOM(*) * DO 10 I=1,7 CMOM(I)=0. 10 CONTINUE DO 15 I=1,6 XVAL(I)=0. 15 CONTINUE * IF (ALLCHA.EQ.0.) GO TO 99 NCHAN=IQ(LPRX) NCHANE=0 X=XMIN-BINWID*0.5 DO 30 I=1,NCHAN IF(IFTRNG.NE.0)THEN IF(I.LT.IFXLOW.OR.I.GT.IFXUP)GO TO 30 ENDIF X=X+BINWID NCHANE=NCHANE+1 W=HCX(I,1) W=ABS(W) DO 25 J=1,6 W=W*X XVAL(J)=XVAL(J)+W 25 CONTINUE 30 CONTINUE * CMOM(1)=ALLCHA/NCHANE IF (NPOLYN.EQ.0) GO TO 99 CMOM(2)=HSTATI(IDD,1,'HIST',1) IF (NPOLYN.EQ.1) GO TO 99 CMOM(3)=HSTATI(IDD,2,'HIST',1) IF (NPOLYN.EQ.2) GO TO 99 * CMOM(4)=(XVAL(3) - 3.*CMOM(2)*XVAL(2))/ALLCHA + + 2.*CMOM(2)**3 IF (NPOLYN.EQ.3) GO TO 99 * CMOM(5)=(XVAL(4) - 4.*CMOM(2)*XVAL(3) + 6.*CMOM(2)*CMOM(2) + *XVAL(2))/ALLCHA - 3.*CMOM(2)**4 IF (NPOLYN.EQ.4) GO TO 99 * CMOM(6)=(XVAL(5) - 5.*XVAL(4)*CMOM(2) + 10.*XVAL(3)* + CMOM(2)*CMOM(2) - 10.*XVAL(2)*CMOM(2)**3)/ALLCHA + + 4.*CMOM(2)**5 IF (NPOLYN.EQ.5) GO TO 99 * CMOM(7)=( XVAL(6) - 6.*XVAL(5)*CMOM(2) + + 15.*XVAL(4)*CMOM(2)*CMOM(2) - + 20.*XVAL(3)*CMOM(2)**3 + 15.*XVAL(2)*CMOM(2)**4)/ALLCHA - + 5.*CMOM(2)**6 99 END