]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HIJING/hipyset1_35/lu3ent_hijing.F
Removing obsolete dummy libraries
[u/mrichter/AliRoot.git] / HIJING / hipyset1_35 / lu3ent_hijing.F
1 * $Id$
2     
3 C*********************************************************************  
4     
5       SUBROUTINE LU3ENT_HIJING(IP,KF1,KF2,KF3,PECM,X1,X3)  
6     
7 C...Purpose: to store three partons or particles in their CM frame, 
8 C...with the first along the +z axis and the third in the (x,z) 
9 C...plane with x > 0.   
10 #include "lujets_hijing.inc"
11 #include "ludat1_hijing.inc"
12 #include "ludat2_hijing.inc"
13     
14 C...Standard checks.    
15       MSTU(28)=0    
16       IF(MSTU(12).GE.1) CALL LULIST_HIJING(0)  
17       IPA=MAX(1,IABS(IP))   
18       IF(IPA.GT.MSTU(4)-2) CALL LUERRM_HIJING(21,  
19      &'(LU3ENT_HIJING:) writing outside LUJETS_HIJING memory')    
20       KC1=LUCOMP_HIJING(KF1)   
21       KC2=LUCOMP_HIJING(KF2)   
22       KC3=LUCOMP_HIJING(KF3)   
23       IF(KC1.EQ.0.OR.KC2.EQ.0.OR.KC3.EQ.0) CALL LUERRM_HIJING(12,  
24      &'(LU3ENT_HIJING:) unknown flavour code') 
25     
26 C...Find masses. Reset K, P and V vectors.  
27       PM1=0.    
28       IF(MSTU(10).EQ.1) PM1=P(IPA,5)    
29       IF(MSTU(10).GE.2) PM1=ULMASS_HIJING(KF1) 
30       PM2=0.    
31       IF(MSTU(10).EQ.1) PM2=P(IPA+1,5)  
32       IF(MSTU(10).GE.2) PM2=ULMASS_HIJING(KF2) 
33       PM3=0.    
34       IF(MSTU(10).EQ.1) PM3=P(IPA+2,5)  
35       IF(MSTU(10).GE.2) PM3=ULMASS_HIJING(KF3) 
36       DO 100 I=IPA,IPA+2    
37       DO 100 J=1,5  
38       K(I,J)=0  
39       P(I,J)=0. 
40   100 V(I,J)=0. 
41     
42 C...Check flavours. 
43       KQ1=KCHG(KC1,2)*ISIGN(1,KF1)  
44       KQ2=KCHG(KC2,2)*ISIGN(1,KF2)  
45       KQ3=KCHG(KC3,2)*ISIGN(1,KF3)  
46       IF(KQ1.EQ.0.AND.KQ2.EQ.0.AND.KQ3.EQ.0) THEN   
47       ELSEIF(KQ1.NE.0.AND.KQ2.EQ.2.AND.(KQ1+KQ3.EQ.0.OR.KQ1+KQ3.EQ.4))  
48      &THEN  
49       ELSE  
50          CALL LUERRM_HIJING(2
51      $        ,'(LU3ENT_HIJING:) unphysical flavour combination')   
52       ENDIF 
53       K(IPA,2)=KF1  
54       K(IPA+1,2)=KF2    
55       K(IPA+2,2)=KF3    
56     
57 C...Store partons/particles in K vectors for normal case.   
58       IF(IP.GE.0) THEN  
59         K(IPA,1)=1  
60         IF(KQ1.NE.0.AND.(KQ2.NE.0.OR.KQ3.NE.0)) K(IPA,1)=2  
61         K(IPA+1,1)=1    
62         IF(KQ2.NE.0.AND.KQ3.NE.0) K(IPA+1,1)=2  
63         K(IPA+2,1)=1    
64     
65 C...Store partons in K vectors for parton shower evolution. 
66       ELSE  
67         IF(KQ1.EQ.0.OR.KQ2.EQ.0.OR.KQ3.EQ.0) CALL LUERRM_HIJING(2, 
68      &        '(LU3ENT_HIJING:) requested flavours can not develop'
69      $        //' parton shower')   
70         K(IPA,1)=3  
71         K(IPA+1,1)=3    
72         K(IPA+2,1)=3    
73         KCS=4   
74         IF(KQ1.EQ.-1) KCS=5 
75         K(IPA,KCS)=MSTU(5)*(IPA+1)  
76         K(IPA,9-KCS)=MSTU(5)*(IPA+2)    
77         K(IPA+1,KCS)=MSTU(5)*(IPA+2)    
78         K(IPA+1,9-KCS)=MSTU(5)*IPA  
79         K(IPA+2,KCS)=MSTU(5)*IPA    
80         K(IPA+2,9-KCS)=MSTU(5)*(IPA+1)  
81       ENDIF 
82     
83 C...Check kinematics.   
84       MKERR=0   
85       IF(0.5*X1*PECM.LE.PM1.OR.0.5*(2.-X1-X3)*PECM.LE.PM2.OR.   
86      &0.5*X3*PECM.LE.PM3) MKERR=1   
87       PA1=SQRT(MAX(0.,(0.5*X1*PECM)**2-PM1**2)) 
88       PA2=SQRT(MAX(0.,(0.5*(2.-X1-X3)*PECM)**2-PM2**2)) 
89       PA3=SQRT(MAX(0.,(0.5*X3*PECM)**2-PM3**2)) 
90       CTHE2=(PA3**2-PA1**2-PA2**2)/(2.*PA1*PA2) 
91       CTHE3=(PA2**2-PA1**2-PA3**2)/(2.*PA1*PA3) 
92       IF(ABS(CTHE2).GE.1.001.OR.ABS(CTHE3).GE.1.001) MKERR=1    
93       CTHE3=MAX(-1.,MIN(1.,CTHE3))  
94       IF(MKERR.NE.0) CALL LUERRM_HIJING(13,    
95      &'(LU3ENT_HIJING:) unphysical kinematical variable setup')    
96     
97 C...Store partons/particles in P vectors.   
98       P(IPA,3)=PA1  
99       P(IPA,4)=SQRT(PA1**2+PM1**2)  
100       P(IPA,5)=PM1  
101       P(IPA+2,1)=PA3*SQRT(1.-CTHE3**2)  
102       P(IPA+2,3)=PA3*CTHE3  
103       P(IPA+2,4)=SQRT(PA3**2+PM3**2)    
104       P(IPA+2,5)=PM3    
105       P(IPA+1,1)=-P(IPA+2,1)    
106       P(IPA+1,3)=-P(IPA,3)-P(IPA+2,3)   
107       P(IPA+1,4)=SQRT(P(IPA+1,1)**2+P(IPA+1,3)**2+PM2**2)   
108       P(IPA+1,5)=PM2    
109     
110 C...Set N. Optionally fragment/decay.   
111       N=IPA+2   
112       IF(IP.EQ.0) CALL LUEXEC_HIJING   
113     
114       RETURN    
115       END