Back to home page

sPhenix code displayed by LXR

 
 

    


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

0001     
0002 C*********************************************************************  
0003     
0004       FUNCTION LUCOMP(KF)   
0005     
0006 C...Purpose: to compress the standard KF codes for use in mass and decay    
0007 C...arrays; also to check whether a given code actually is defined. 
0008       COMMON/LUDAT2/KCHG(500,3),PMAS(500,4),PARF(2000),VCKM(4,4)    
0009       SAVE /LUDAT2/ 
0010     
0011 C...Subdivide KF code into constituent pieces.  
0012       LUCOMP=0  
0013       KFA=IABS(KF)  
0014       KFLA=MOD(KFA/1000,10) 
0015       KFLB=MOD(KFA/100,10)  
0016       KFLC=MOD(KFA/10,10)   
0017       KFLS=MOD(KFA,10)  
0018       KFLR=MOD(KFA/10000,10)    
0019     
0020 C...Simple cases: direct translation or special codes.  
0021       IF(KFA.EQ.0.OR.KFA.GE.100000) THEN    
0022       ELSEIF(KFA.LE.100) THEN   
0023         LUCOMP=KFA  
0024         IF(KF.LT.0.AND.KCHG(KFA,3).EQ.0) LUCOMP=0   
0025       ELSEIF(KFLS.EQ.0) THEN    
0026         IF(KF.EQ.130) LUCOMP=221    
0027         IF(KF.EQ.310) LUCOMP=222    
0028         IF(KFA.EQ.210) LUCOMP=281   
0029         IF(KFA.EQ.2110) LUCOMP=282  
0030         IF(KFA.EQ.2210) LUCOMP=283  
0031     
0032 C...Mesons. 
0033       ELSEIF(KFA-10000*KFLR.LT.1000) THEN   
0034         IF(KFLB.EQ.0.OR.KFLB.EQ.9.OR.KFLC.EQ.0.OR.KFLC.EQ.9) THEN   
0035         ELSEIF(KFLB.LT.KFLC) THEN   
0036         ELSEIF(KF.LT.0.AND.KFLB.EQ.KFLC) THEN   
0037         ELSEIF(KFLB.EQ.KFLC) THEN   
0038           IF(KFLR.EQ.0.AND.KFLS.EQ.1) THEN  
0039             LUCOMP=110+KFLB 
0040           ELSEIF(KFLR.EQ.0.AND.KFLS.EQ.3) THEN  
0041             LUCOMP=130+KFLB 
0042           ELSEIF(KFLR.EQ.1.AND.KFLS.EQ.3) THEN  
0043             LUCOMP=150+KFLB 
0044           ELSEIF(KFLR.EQ.1.AND.KFLS.EQ.1) THEN  
0045             LUCOMP=170+KFLB 
0046           ELSEIF(KFLR.EQ.2.AND.KFLS.EQ.3) THEN  
0047             LUCOMP=190+KFLB 
0048           ELSEIF(KFLR.EQ.0.AND.KFLS.EQ.5) THEN  
0049             LUCOMP=210+KFLB 
0050           ENDIF 
0051         ELSEIF(KFLB.LE.5.AND.KFLC.LE.3) THEN    
0052           IF(KFLR.EQ.0.AND.KFLS.EQ.1) THEN  
0053             LUCOMP=100+((KFLB-1)*(KFLB-2))/2+KFLC   
0054           ELSEIF(KFLR.EQ.0.AND.KFLS.EQ.3) THEN  
0055             LUCOMP=120+((KFLB-1)*(KFLB-2))/2+KFLC   
0056           ELSEIF(KFLR.EQ.1.AND.KFLS.EQ.3) THEN  
0057             LUCOMP=140+((KFLB-1)*(KFLB-2))/2+KFLC   
0058           ELSEIF(KFLR.EQ.1.AND.KFLS.EQ.1) THEN  
0059             LUCOMP=160+((KFLB-1)*(KFLB-2))/2+KFLC   
0060           ELSEIF(KFLR.EQ.2.AND.KFLS.EQ.3) THEN  
0061             LUCOMP=180+((KFLB-1)*(KFLB-2))/2+KFLC   
0062           ELSEIF(KFLR.EQ.0.AND.KFLS.EQ.5) THEN  
0063             LUCOMP=200+((KFLB-1)*(KFLB-2))/2+KFLC   
0064           ENDIF 
0065         ELSEIF((KFLS.EQ.1.AND.KFLR.LE.1).OR.(KFLS.EQ.3.AND.KFLR.LE.2).  
0066      &  OR.(KFLS.EQ.5.AND.KFLR.EQ.0)) THEN  
0067           LUCOMP=80+KFLB    
0068         ENDIF   
0069     
0070 C...Diquarks.   
0071       ELSEIF((KFLR.EQ.0.OR.KFLR.EQ.1).AND.KFLC.EQ.0) THEN   
0072         IF(KFLS.NE.1.AND.KFLS.NE.3) THEN    
0073         ELSEIF(KFLA.EQ.9.OR.KFLB.EQ.0.OR.KFLB.EQ.9) THEN    
0074         ELSEIF(KFLA.LT.KFLB) THEN   
0075         ELSEIF(KFLS.EQ.1.AND.KFLA.EQ.KFLB) THEN 
0076         ELSE    
0077           LUCOMP=90 
0078         ENDIF   
0079     
0080 C...Spin 1/2 baryons.   
0081       ELSEIF(KFLR.EQ.0.AND.KFLS.EQ.2) THEN  
0082         IF(KFLA.EQ.9.OR.KFLB.EQ.0.OR.KFLB.EQ.9.OR.KFLC.EQ.9) THEN   
0083         ELSEIF(KFLA.LE.KFLC.OR.KFLA.LT.KFLB) THEN   
0084         ELSEIF(KFLA.GE.6.OR.KFLB.GE.4.OR.KFLC.GE.4) THEN    
0085           LUCOMP=80+KFLA    
0086         ELSEIF(KFLB.LT.KFLC) THEN   
0087           LUCOMP=300+((KFLA+1)*KFLA*(KFLA-1))/6+(KFLC*(KFLC-1))/2+KFLB  
0088         ELSE    
0089           LUCOMP=330+((KFLA+1)*KFLA*(KFLA-1))/6+(KFLB*(KFLB-1))/2+KFLC  
0090         ENDIF   
0091     
0092 C...Spin 3/2 baryons.   
0093       ELSEIF(KFLR.EQ.0.AND.KFLS.EQ.4) THEN  
0094         IF(KFLA.EQ.9.OR.KFLB.EQ.0.OR.KFLB.EQ.9.OR.KFLC.EQ.9) THEN   
0095         ELSEIF(KFLA.LT.KFLB.OR.KFLB.LT.KFLC) THEN   
0096         ELSEIF(KFLA.GE.6.OR.KFLB.GE.4) THEN 
0097           LUCOMP=80+KFLA    
0098         ELSE    
0099           LUCOMP=360+((KFLA+1)*KFLA*(KFLA-1))/6+(KFLB*(KFLB-1))/2+KFLC  
0100         ENDIF   
0101       ENDIF 
0102     
0103       RETURN    
0104       END