Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-05 08:21:10

0001  
0002 C*********************************************************************
0003  
0004 C...PYFILL
0005 C...Fills entry in histogram.
0006  
0007       SUBROUTINE PYFILL(ID,X,W)
0008  
0009 C...Double precision declaration.
0010       IMPLICIT DOUBLE PRECISION(A-H, O-Z)
0011       IMPLICIT INTEGER(I-N)
0012 C...Commonblock.
0013       COMMON/PYBINS/IHIST(4),INDX(1000),BIN(20000)
0014       SAVE /PYBINS/
0015  
0016 C...Find initial address in memory. Increase number of entries.
0017       IF(ID.LE.0.OR.ID.GT.IHIST(1)) CALL PYERRM(28,
0018      &'(PYFILL:) not allowed histogram number')
0019       IS=INDX(ID)
0020       IF(IS.EQ.0) CALL PYERRM(28,
0021      &'(PYFILL:) filling unbooked histogram')
0022       BIN(IS+5)=BIN(IS+5)+1D0
0023  
0024 C...Find bin in x, including under/overflow, and fill.
0025       IF(X.LT.BIN(IS+2)) THEN
0026         BIN(IS+6)=BIN(IS+6)+W
0027       ELSEIF(X.GE.BIN(IS+3)) THEN
0028         BIN(IS+8)=BIN(IS+8)+W
0029       ELSE
0030         BIN(IS+7)=BIN(IS+7)+W
0031         IX=(X-BIN(IS+2))/BIN(IS+4)
0032         IX=MAX(0,MIN(NINT(BIN(IS+1))-1,IX))
0033         BIN(IS+9+IX)=BIN(IS+9+IX)+W
0034       ENDIF
0035  
0036       RETURN
0037       END