Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-05 08:15:44

0001     
0002 C*********************************************************************  
0003     
0004       SUBROUTINE PYHIOVLY(MOVLY)  
0005     
0006 C...Initializes multiplicity distribution and selects mutliplicity  
0007 C...of overlayed events, i.e. several events occuring at the same   
0008 C...beam crossing.  
0009       COMMON/LUDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) 
0010       SAVE /LUDAT1/ 
0011       COMMON/PYHIPARS/MSTP(200),PARP(200),MSTI(200),PARI(200) 
0012       SAVE /PYHIPARS/ 
0013       COMMON/PYHIINT1/MINT(400),VINT(400) 
0014       SAVE /PYHIINT1/ 
0015       DIMENSION WTI(0:100)  
0016       SAVE IMAX,WTI,WTS 
0017     
0018 C...Sum of allowed cross-sections for overlayed events. 
0019       IF(MOVLY.EQ.1) THEN   
0020         VINT(131)=VINT(106) 
0021         IF(MSTP(132).GE.2) VINT(131)=VINT(131)+VINT(104)    
0022         IF(MSTP(132).GE.3) VINT(131)=VINT(131)+VINT(103)    
0023         IF(MSTP(132).GE.4) VINT(131)=VINT(131)+VINT(102)    
0024     
0025 C...Initialize multiplicity distribution for unbiased events.   
0026         IF(MSTP(133).EQ.1) THEN 
0027           XNAVE=VINT(131)*PARP(131) 
0028           IF(XNAVE.GT.40.) WRITE(MSTU(11),1000) XNAVE   
0029           WTI(0)=EXP(-MIN(50.,XNAVE))   
0030           WTS=0.    
0031           WTN=0.    
0032           DO 100 I=1,100    
0033           WTI(I)=WTI(I-1)*XNAVE/I   
0034           IF(I-2.5.GT.XNAVE.AND.WTI(I).LT.1E-6) GOTO 110    
0035           WTS=WTS+WTI(I)    
0036           WTN=WTN+WTI(I)*I  
0037   100     IMAX=I    
0038   110     VINT(132)=XNAVE   
0039           VINT(133)=WTN/WTS 
0040           VINT(134)=WTS 
0041     
0042 C...Initialize mutiplicity distribution for biased events.  
0043         ELSEIF(MSTP(133).EQ.2) THEN 
0044           XNAVE=VINT(131)*PARP(131) 
0045           IF(XNAVE.GT.40.) WRITE(MSTU(11),1000) XNAVE   
0046           WTI(1)=EXP(-MIN(50.,XNAVE))*XNAVE 
0047           WTS=WTI(1)    
0048           WTN=WTI(1)    
0049           DO 120 I=2,100    
0050           WTI(I)=WTI(I-1)*XNAVE/(I-1)   
0051           IF(I-2.5.GT.XNAVE.AND.WTI(I).LT.1E-6) GOTO 130    
0052           WTS=WTS+WTI(I)    
0053           WTN=WTN+WTI(I)*I  
0054   120     IMAX=I    
0055   130     VINT(132)=XNAVE   
0056           VINT(133)=WTN/WTS 
0057           VINT(134)=WTS 
0058         ENDIF   
0059     
0060 C...Pick multiplicity of overlayed events.  
0061       ELSE  
0062         IF(MSTP(133).EQ.0) THEN 
0063           MINT(81)=MAX(1,MSTP(134)) 
0064         ELSE    
0065           WTR=WTS*RLU(0)    
0066           DO 140 I=1,IMAX   
0067           MINT(81)=I    
0068           WTR=WTR-WTI(I)    
0069           IF(WTR.LE.0.) GOTO 150    
0070   140     CONTINUE  
0071   150     CONTINUE  
0072         ENDIF   
0073       ENDIF 
0074     
0075 C...Format statement for error message. 
0076  1000 FORMAT(1X,'Warning: requested average number of events per bunch',    
0077      &'crossing too large, ',1P,E12.4)  
0078     
0079       RETURN    
0080       END