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 LUXDIF(NC,NJET,KFL,ECM,CHI,THE,PHI)    
0005     
0006 C...Purpose: to give the angular orientation of events. 
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     
0014 C...Charge. Factors depending on polarization for QED case. 
0015       QF=KCHG(KFL,1)/3. 
0016       POLL=1.-PARJ(131)*PARJ(132)   
0017       POLD=PARJ(132)-PARJ(131)  
0018       IF(MSTJ(102).LE.1.OR.MSTJ(109).EQ.1) THEN 
0019         HF1=POLL    
0020         HF2=0.  
0021         HF3=PARJ(133)**2    
0022         HF4=0.  
0023     
0024 C...Factors depending on flavour, energy and polarization for QFD case. 
0025       ELSE  
0026         SFF=1./(16.*PARU(102)*(1.-PARU(102)))   
0027         SFW=ECM**4/((ECM**2-PARJ(123)**2)**2+(PARJ(123)*PARJ(124))**2)  
0028         SFI=SFW*(1.-(PARJ(123)/ECM)**2) 
0029         AE=-1.  
0030         VE=4.*PARU(102)-1.  
0031         AF=SIGN(1.,QF)  
0032         VF=AF-4.*QF*PARU(102)   
0033         HF1=QF**2*POLL-2.*QF*VF*SFI*SFF*(VE*POLL-AE*POLD)+  
0034      &  (VF**2+AF**2)*SFW*SFF**2*((VE**2+AE**2)*POLL-2.*VE*AE*POLD) 
0035         HF2=-2.*QF*AF*SFI*SFF*(AE*POLL-VE*POLD)+2.*VF*AF*SFW*SFF**2*    
0036      &  (2.*VE*AE*POLL-(VE**2+AE**2)*POLD)  
0037         HF3=PARJ(133)**2*(QF**2-2.*QF*VF*SFI*SFF*VE+(VF**2+AF**2)*  
0038      &  SFW*SFF**2*(VE**2-AE**2))   
0039         HF4=-PARJ(133)**2*2.*QF*VF*SFW*(PARJ(123)*PARJ(124)/ECM**2)*    
0040      &  SFF*AE  
0041       ENDIF 
0042     
0043 C...Mass factor. Differential cross-sections for two-jet events.    
0044       SQ2=SQRT(2.)  
0045       QME=0.    
0046       IF(MSTJ(103).GE.4.AND.IABS(MSTJ(101)).LE.1.AND.MSTJ(102).LE.1.AND.    
0047      &MSTJ(109).NE.1) QME=(2.*ULMASS(KFL)/ECM)**2   
0048       IF(NJET.EQ.2) THEN    
0049         SIGU=4.*SQRT(1.-QME)    
0050         SIGL=2.*QME*SQRT(1.-QME)    
0051         SIGT=0. 
0052         SIGI=0. 
0053         SIGA=0. 
0054         SIGP=4. 
0055     
0056 C...Kinematical variables. Reduce four-jet event to three-jet one.  
0057       ELSE  
0058         IF(NJET.EQ.3) THEN  
0059           X1=2.*P(NC+1,4)/ECM   
0060           X2=2.*P(NC+3,4)/ECM   
0061         ELSE    
0062           ECMR=P(NC+1,4)+P(NC+4,4)+SQRT((P(NC+2,1)+P(NC+3,1))**2+   
0063      &    (P(NC+2,2)+P(NC+3,2))**2+(P(NC+2,3)+P(NC+3,3))**2)    
0064           X1=2.*P(NC+1,4)/ECMR  
0065           X2=2.*P(NC+4,4)/ECMR  
0066         ENDIF   
0067     
0068 C...Differential cross-sections for three-jet (or reduced four-jet).    
0069         XQ=(1.-X1)/(1.-X2)  
0070         CT12=(X1*X2-2.*X1-2.*X2+2.+QME)/SQRT((X1**2-QME)*(X2**2-QME))   
0071         ST12=SQRT(1.-CT12**2)   
0072         IF(MSTJ(109).NE.1) THEN 
0073           SIGU=2.*X1**2+X2**2*(1.+CT12**2)-QME*(3.+CT12**2-X1-X2)-  
0074      &    QME*X1/XQ+0.5*QME*((X2**2-QME)*ST12**2-2.*X2)*XQ  
0075           SIGL=(X2*ST12)**2-QME*(3.-CT12**2-2.5*(X1+X2)+X1*X2+QME)+ 
0076      &    0.5*QME*(X1**2-X1-QME)/XQ+0.5*QME*((X2**2-QME)*CT12**2-X2)*XQ 
0077           SIGT=0.5*(X2**2-QME-0.5*QME*(X2**2-QME)/XQ)*ST12**2   
0078           SIGI=((1.-0.5*QME*XQ)*(X2**2-QME)*ST12*CT12+QME*(1.-X1-X2+    
0079      &    0.5*X1*X2+0.5*QME)*ST12/CT12)/SQ2 
0080           SIGA=X2**2*ST12/SQ2   
0081           SIGP=2.*(X1**2-X2**2*CT12)    
0082     
0083 C...Differential cross-sect for scalar gluons (no mass or QFD effects). 
0084         ELSE    
0085           SIGU=2.*(2.-X1-X2)**2-(X2*ST12)**2    
0086           SIGL=(X2*ST12)**2 
0087           SIGT=0.5*SIGL 
0088           SIGI=-(2.-X1-X2)*X2*ST12/SQ2  
0089           SIGA=0.   
0090           SIGP=0.   
0091         ENDIF   
0092       ENDIF 
0093     
0094 C...Upper bounds for differential cross-section.    
0095       HF1A=ABS(HF1) 
0096       HF2A=ABS(HF2) 
0097       HF3A=ABS(HF3) 
0098       HF4A=ABS(HF4) 
0099       SIGMAX=(2.*HF1A+HF3A+HF4A)*ABS(SIGU)+2.*(HF1A+HF3A+HF4A)* 
0100      &ABS(SIGL)+2.*(HF1A+2.*HF3A+2.*HF4A)*ABS(SIGT)+2.*SQ2* 
0101      &(HF1A+2.*HF3A+2.*HF4A)*ABS(SIGI)+4.*SQ2*HF2A*ABS(SIGA)+   
0102      &2.*HF2A*ABS(SIGP) 
0103     
0104 C...Generate angular orientation according to differential cross-sect.  
0105   100 CHI=PARU(2)*RLU(0)    
0106       CTHE=2.*RLU(0)-1. 
0107       PHI=PARU(2)*RLU(0)    
0108       CCHI=COS(CHI) 
0109       SCHI=SIN(CHI) 
0110       C2CHI=COS(2.*CHI) 
0111       S2CHI=SIN(2.*CHI) 
0112       THE=ACOS(CTHE)    
0113       STHE=SIN(THE) 
0114       C2PHI=COS(2.*(PHI-PARJ(134))) 
0115       S2PHI=SIN(2.*(PHI-PARJ(134))) 
0116       SIG=((1.+CTHE**2)*HF1+STHE**2*(C2PHI*HF3-S2PHI*HF4))*SIGU+    
0117      &2.*(STHE**2*HF1-STHE**2*(C2PHI*HF3-S2PHI*HF4))*SIGL+  
0118      &2.*(STHE**2*C2CHI*HF1+((1.+CTHE**2)*C2CHI*C2PHI-2.*CTHE*S2CHI*    
0119      &S2PHI)*HF3-((1.+CTHE**2)*C2CHI*S2PHI+2.*CTHE*S2CHI*C2PHI)*HF4)*   
0120      &SIGT-2.*SQ2*(2.*STHE*CTHE*CCHI*HF1-2.*STHE*(CTHE*CCHI*C2PHI-  
0121      &SCHI*S2PHI)*HF3+2.*STHE*(CTHE*CCHI*S2PHI+SCHI*C2PHI)*HF4)*SIGI+   
0122      &4.*SQ2*STHE*CCHI*HF2*SIGA+2.*CTHE*HF2*SIGP    
0123       IF(SIG.LT.SIGMAX*RLU(0)) GOTO 100 
0124     
0125       RETURN    
0126       END