Back to home page

sPhenix code displayed by LXR

 
 

    


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

0001     
0002 C*********************************************************************  
0003     
0004       SUBROUTINE LUNAME(KF,CHAU)    
0005     
0006 C...Purpose: to give the particle/parton name as a character string.    
0007       COMMON/LUDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) 
0008       SAVE /LUDAT1/ 
0009       COMMON/LUDAT2/KCHG(500,3),PMAS(500,4),PARF(2000),VCKM(4,4)    
0010       SAVE /LUDAT2/ 
0011       COMMON/LUDAT4/CHAF(500)   
0012       CHARACTER CHAF*8  
0013       SAVE /LUDAT4/ 
0014       CHARACTER CHAU*16 
0015     
0016 C...Initial values. Charge. Subdivide code. 
0017       CHAU=' '  
0018       KFA=IABS(KF)  
0019       KC=LUCOMP(KF) 
0020       IF(KC.EQ.0) RETURN    
0021       KQ=LUCHGE(KF) 
0022       KFLA=MOD(KFA/1000,10) 
0023       KFLB=MOD(KFA/100,10)  
0024       KFLC=MOD(KFA/10,10)   
0025       KFLS=MOD(KFA,10)  
0026       KFLR=MOD(KFA/10000,10)    
0027     
0028 C...Read out root name and spin for simple particle.    
0029       IF(KFA.LE.100.OR.(KFA.GT.100.AND.KC.GT.100)) THEN 
0030         CHAU=CHAF(KC)   
0031         LEN=0   
0032         DO 100 LEM=1,8  
0033   100   IF(CHAU(LEM:LEM).NE.' ') LEN=LEM    
0034     
0035 C...Construct root name for diquark. Add on spin.   
0036       ELSEIF(KFLC.EQ.0) THEN    
0037         CHAU(1:2)=CHAF(KFLA)(1:1)//CHAF(KFLB)(1:1)  
0038         IF(KFLS.EQ.1) CHAU(3:4)='_0'    
0039         IF(KFLS.EQ.3) CHAU(3:4)='_1'    
0040         LEN=4   
0041     
0042 C...Construct root name for heavy meson. Add on spin and heavy flavour. 
0043       ELSEIF(KFLA.EQ.0) THEN    
0044         IF(KFLB.EQ.5) CHAU(1:1)='B' 
0045         IF(KFLB.EQ.6) CHAU(1:1)='T' 
0046         IF(KFLB.EQ.7) CHAU(1:1)='L' 
0047         IF(KFLB.EQ.8) CHAU(1:1)='H' 
0048         LEN=1   
0049         IF(KFLR.EQ.0.AND.KFLS.EQ.1) THEN    
0050         ELSEIF(KFLR.EQ.0.AND.KFLS.EQ.3) THEN    
0051           CHAU(2:2)='*' 
0052           LEN=2 
0053         ELSEIF(KFLR.EQ.1.AND.KFLS.EQ.3) THEN    
0054           CHAU(2:3)='_1'    
0055           LEN=3 
0056         ELSEIF(KFLR.EQ.1.AND.KFLS.EQ.1) THEN    
0057           CHAU(2:4)='*_0'   
0058           LEN=4 
0059         ELSEIF(KFLR.EQ.2) THEN  
0060           CHAU(2:4)='*_1'   
0061           LEN=4 
0062         ELSEIF(KFLS.EQ.5) THEN  
0063           CHAU(2:4)='*_2'   
0064           LEN=4 
0065         ENDIF   
0066         IF(KFLC.GE.3.AND.KFLR.EQ.0.AND.KFLS.LE.3) THEN  
0067           CHAU(LEN+1:LEN+2)='_'//CHAF(KFLC)(1:1)    
0068           LEN=LEN+2 
0069         ELSEIF(KFLC.GE.3) THEN  
0070           CHAU(LEN+1:LEN+1)=CHAF(KFLC)(1:1) 
0071           LEN=LEN+1 
0072         ENDIF   
0073     
0074 C...Construct root name and spin for heavy baryon.  
0075       ELSE  
0076         IF(KFLB.LE.2.AND.KFLC.LE.2) THEN    
0077           CHAU='Sigma ' 
0078           IF(KFLC.GT.KFLB) CHAU='Lambda'    
0079           IF(KFLS.EQ.4) CHAU='Sigma*'   
0080           LEN=5 
0081           IF(CHAU(6:6).NE.' ') LEN=6    
0082         ELSEIF(KFLB.LE.2.OR.KFLC.LE.2) THEN 
0083           CHAU='Xi '    
0084           IF(KFLA.GT.KFLB.AND.KFLB.GT.KFLC) CHAU='Xi''' 
0085           IF(KFLS.EQ.4) CHAU='Xi*'  
0086           LEN=2 
0087           IF(CHAU(3:3).NE.' ') LEN=3    
0088         ELSE    
0089           CHAU='Omega ' 
0090           IF(KFLA.GT.KFLB.AND.KFLB.GT.KFLC) CHAU='Omega'''  
0091           IF(KFLS.EQ.4) CHAU='Omega*'   
0092           LEN=5 
0093           IF(CHAU(6:6).NE.' ') LEN=6    
0094         ENDIF   
0095     
0096 C...Add on heavy flavour content for heavy baryon.  
0097         CHAU(LEN+1:LEN+2)='_'//CHAF(KFLA)(1:1)  
0098         LEN=LEN+2   
0099         IF(KFLB.GE.KFLC.AND.KFLC.GE.4) THEN 
0100           CHAU(LEN+1:LEN+2)=CHAF(KFLB)(1:1)//CHAF(KFLC)(1:1)    
0101           LEN=LEN+2 
0102         ELSEIF(KFLB.GE.KFLC.AND.KFLB.GE.4) THEN 
0103           CHAU(LEN+1:LEN+1)=CHAF(KFLB)(1:1) 
0104           LEN=LEN+1 
0105         ELSEIF(KFLC.GT.KFLB.AND.KFLB.GE.4) THEN 
0106           CHAU(LEN+1:LEN+2)=CHAF(KFLC)(1:1)//CHAF(KFLB)(1:1)    
0107           LEN=LEN+2 
0108         ELSEIF(KFLC.GT.KFLB.AND.KFLC.GE.4) THEN 
0109           CHAU(LEN+1:LEN+1)=CHAF(KFLC)(1:1) 
0110           LEN=LEN+1 
0111         ENDIF   
0112       ENDIF 
0113     
0114 C...Add on bar sign for antiparticle (where necessary). 
0115       IF(KF.GT.0.OR.LEN.EQ.0) THEN  
0116       ELSEIF(KFA.GT.10.AND.KFA.LE.40.AND.KQ.NE.0) THEN  
0117       ELSEIF(KFA.EQ.89.OR.(KFA.GE.91.AND.KFA.LE.99)) THEN   
0118       ELSEIF(KFA.GT.100.AND.KFLA.EQ.0.AND.KQ.NE.0) THEN 
0119       ELSEIF(MSTU(15).LE.1) THEN    
0120         CHAU(LEN+1:LEN+1)='~'   
0121         LEN=LEN+1   
0122       ELSE  
0123         CHAU(LEN+1:LEN+3)='bar' 
0124         LEN=LEN+3   
0125       ENDIF 
0126     
0127 C...Add on charge where applicable (conventional cases skipped).    
0128       IF(KQ.EQ.6) CHAU(LEN+1:LEN+2)='++'    
0129       IF(KQ.EQ.-6) CHAU(LEN+1:LEN+2)='--'   
0130       IF(KQ.EQ.3) CHAU(LEN+1:LEN+1)='+' 
0131       IF(KQ.EQ.-3) CHAU(LEN+1:LEN+1)='-'    
0132       IF(KQ.EQ.0.AND.(KFA.LE.22.OR.LEN.EQ.0)) THEN  
0133       ELSEIF(KQ.EQ.0.AND.(KFA.GE.81.AND.KFA.LE.100)) THEN   
0134       ELSEIF(KFA.GT.100.AND.KFLA.EQ.0.AND.KFLB.EQ.KFLC.AND. 
0135      &KFLB.NE.1) THEN   
0136       ELSEIF(KQ.EQ.0) THEN  
0137         CHAU(LEN+1:LEN+1)='0'   
0138       ENDIF 
0139     
0140       RETURN    
0141       END