Back to home page

sPhenix code displayed by LXR

 
 

    


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

0001     
0002 C*********************************************************************  
0003     
0004       SUBROUTINE PYHISPLI(KF,KFLIN,KFLCH,KFLSP)   
0005     
0006 C...In case of a hadron remnant which is more complicated than just a   
0007 C...quark or a diquark, split it into two (partons or hadron + parton). 
0008       DIMENSION KFL(3)  
0009     
0010 C...Preliminaries. Parton composition.  
0011       KFA=IABS(KF)  
0012       KFS=ISIGN(1,KF)   
0013       KFL(1)=MOD(KFA/1000,10)   
0014       KFL(2)=MOD(KFA/100,10)    
0015       KFL(3)=MOD(KFA/10,10) 
0016       KFLR=KFLIN*KFS    
0017       KFLCH=0   
0018     
0019 C...Subdivide meson.    
0020       IF(KFL(1).EQ.0) THEN  
0021         KFL(2)=KFL(2)*(-1)**KFL(2)  
0022         KFL(3)=-KFL(3)*(-1)**IABS(KFL(2))   
0023         IF(KFLR.EQ.KFL(2)) THEN 
0024           KFLSP=KFL(3)  
0025         ELSEIF(KFLR.EQ.KFL(3)) THEN 
0026           KFLSP=KFL(2)  
0027         ELSEIF(IABS(KFLR).EQ.21.AND.RLU(0).GT.0.5) THEN 
0028           KFLSP=KFL(2)  
0029           KFLCH=KFL(3)  
0030         ELSEIF(IABS(KFLR).EQ.21) THEN   
0031           KFLSP=KFL(3)  
0032           KFLCH=KFL(2)  
0033         ELSEIF(KFLR*KFL(2).GT.0) THEN   
0034           CALL LUKFDI(-KFLR,KFL(2),KFDUMP,KFLCH)    
0035           KFLSP=KFL(3)  
0036         ELSE    
0037           CALL LUKFDI(-KFLR,KFL(3),KFDUMP,KFLCH)    
0038           KFLSP=KFL(2)  
0039         ENDIF   
0040     
0041 C...Subdivide baryon.   
0042       ELSE  
0043         NAGR=0  
0044         DO 100 J=1,3    
0045   100   IF(KFLR.EQ.KFL(J)) NAGR=NAGR+1  
0046         IF(NAGR.GE.1) THEN  
0047           RAGR=0.00001+(NAGR-0.00002)*RLU(0)    
0048           IAGR=0    
0049           DO 110 J=1,3  
0050           IF(KFLR.EQ.KFL(J)) RAGR=RAGR-1.   
0051   110     IF(IAGR.EQ.0.AND.RAGR.LE.0.) IAGR=J   
0052         ELSE    
0053           IAGR=1.00001+2.99998*RLU(0)   
0054         ENDIF   
0055         ID1=1   
0056         IF(IAGR.EQ.1) ID1=2 
0057         IF(IAGR.EQ.1.AND.KFL(3).GT.KFL(2)) ID1=3    
0058         ID2=6-IAGR-ID1  
0059         KSP=3   
0060         IF(MOD(KFA,10).EQ.2.AND.KFL(1).EQ.KFL(2)) THEN  
0061           IF(IAGR.NE.3.AND.RLU(0).GT.0.25) KSP=1    
0062         ELSEIF(MOD(KFA,10).EQ.2.AND.KFL(2).GE.KFL(3)) THEN  
0063           IF(IAGR.NE.1.AND.RLU(0).GT.0.25) KSP=1    
0064         ELSEIF(MOD(KFA,10).EQ.2) THEN   
0065           IF(IAGR.EQ.1) KSP=1   
0066           IF(IAGR.NE.1.AND.RLU(0).GT.0.75) KSP=1    
0067         ENDIF   
0068         KFLSP=1000*KFL(ID1)+100*KFL(ID2)+KSP    
0069         IF(KFLIN.EQ.21) THEN    
0070           KFLCH=KFL(IAGR)   
0071         ELSEIF(NAGR.EQ.0.AND.KFLR.GT.0) THEN    
0072           CALL LUKFDI(-KFLR,KFL(IAGR),KFDUMP,KFLCH) 
0073         ELSEIF(NAGR.EQ.0) THEN  
0074           CALL LUKFDI(10000+KFLSP,-KFLR,KFDUMP,KFLCH)   
0075           KFLSP=KFL(IAGR)   
0076         ENDIF   
0077       ENDIF 
0078     
0079 C...Add on correct sign for result. 
0080       KFLCH=KFLCH*KFS   
0081       KFLSP=KFLSP*KFS   
0082     
0083       RETURN    
0084       END