Back to home page

sPhenix code displayed by LXR

 
 

    


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

0001     
0002 C*********************************************************************  
0003     
0004       FUNCTION PLU(I,J) 
0005     
0006 C...Purpose: to provide various real-valued event related data. 
0007       COMMON/LUJETS/N,K(9000,5),P(9000,5),V(9000,5)
0008       SAVE /LUJETS/ 
0009       COMMON/LUDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) 
0010       SAVE /LUDAT1/ 
0011       COMMON/LUDAT2/KCHG(500,3),PMAS(500,4),PARF(2000),VCKM(4,4)    
0012       SAVE /LUDAT2/ 
0013       DIMENSION PSUM(4) 
0014     
0015 C...Set default value. For I = 0 sum of momenta or charges, 
0016 C...or invariant mass of system.    
0017       PLU=0.    
0018       IF(I.LT.0.OR.I.GT.MSTU(4).OR.J.LE.0) THEN 
0019       ELSEIF(I.EQ.0.AND.J.LE.4) THEN    
0020         DO 100 I1=1,N   
0021   100   IF(K(I1,1).GT.0.AND.K(I1,1).LE.10) PLU=PLU+P(I1,J)  
0022       ELSEIF(I.EQ.0.AND.J.EQ.5) THEN    
0023         DO 110 J1=1,4   
0024         PSUM(J1)=0. 
0025         DO 110 I1=1,N   
0026   110   IF(K(I1,1).GT.0.AND.K(I1,1).LE.10) PSUM(J1)=PSUM(J1)+P(I1,J1)   
0027         PLU=SQRT(MAX(0.,PSUM(4)**2-PSUM(1)**2-PSUM(2)**2-PSUM(3)**2))   
0028       ELSEIF(I.EQ.0.AND.J.EQ.6) THEN    
0029         DO 120 I1=1,N   
0030   120   IF(K(I1,1).GT.0.AND.K(I1,1).LE.10) PLU=PLU+LUCHGE(K(I1,2))/3.   
0031       ELSEIF(I.EQ.0) THEN   
0032     
0033 C...Direct readout of P matrix. 
0034       ELSEIF(J.LE.5) THEN   
0035         PLU=P(I,J)  
0036     
0037 C...Charge, total momentum, transverse momentum, transverse mass.   
0038       ELSEIF(J.LE.12) THEN  
0039         IF(J.EQ.6) PLU=LUCHGE(K(I,2))/3.    
0040         IF(J.EQ.7.OR.J.EQ.8) PLU=P(I,1)**2+P(I,2)**2+P(I,3)**2  
0041         IF(J.EQ.9.OR.J.EQ.10) PLU=P(I,1)**2+P(I,2)**2   
0042         IF(J.EQ.11.OR.J.EQ.12) PLU=P(I,5)**2+P(I,1)**2+P(I,2)**2    
0043         IF(J.EQ.8.OR.J.EQ.10.OR.J.EQ.12) PLU=SQRT(PLU)  
0044     
0045 C...Theta and phi angle in radians or degrees.  
0046       ELSEIF(J.LE.16) THEN  
0047         IF(J.LE.14) PLU=ULANGL(P(I,3),SQRT(P(I,1)**2+P(I,2)**2))    
0048         IF(J.GE.15) PLU=ULANGL(P(I,1),P(I,2))   
0049         IF(J.EQ.14.OR.J.EQ.16) PLU=PLU*180./PARU(1) 
0050     
0051 C...True rapidity, rapidity with pion mass, pseudorapidity. 
0052       ELSEIF(J.LE.19) THEN  
0053         PMR=0.  
0054         IF(J.EQ.17) PMR=P(I,5)  
0055         IF(J.EQ.18) PMR=ULMASS(211) 
0056         PR=MAX(1E-20,PMR**2+P(I,1)**2+P(I,2)**2)    
0057         PLU=SIGN(LOG(MIN((SQRT(PR+P(I,3)**2)+ABS(P(I,3)))/SQRT(PR), 
0058      &  1E20)),P(I,3))  
0059     
0060 C...Energy and momentum fractions (only to be used in CM frame).    
0061       ELSEIF(J.LE.25) THEN  
0062         IF(J.EQ.20) PLU=2.*SQRT(P(I,1)**2+P(I,2)**2+P(I,3)**2)/PARU(21) 
0063         IF(J.EQ.21) PLU=2.*P(I,3)/PARU(21)  
0064         IF(J.EQ.22) PLU=2.*SQRT(P(I,1)**2+P(I,2)**2)/PARU(21)   
0065         IF(J.EQ.23) PLU=2.*P(I,4)/PARU(21)  
0066         IF(J.EQ.24) PLU=(P(I,4)+P(I,3))/PARU(21)    
0067         IF(J.EQ.25) PLU=(P(I,4)-P(I,3))/PARU(21)    
0068       ENDIF 
0069     
0070       RETURN    
0071       END