]>
Commit | Line | Data |
---|---|---|
e74335a4 | 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 |