]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HIJING/hipyset1_35/lu3ent_hijing.F
-> Changes to triggering scheme for p-Pb
[u/mrichter/AliRoot.git] / HIJING / hipyset1_35 / lu3ent_hijing.F
CommitLineData
e74335a4 1* $Id$
2
3C*********************************************************************
4
5 SUBROUTINE LU3ENT_HIJING(IP,KF1,KF2,KF3,PECM,X1,X3)
6
7C...Purpose: to store three partons or particles in their CM frame,
8C...with the first along the +z axis and the third in the (x,z)
9C...plane with x > 0.
10#include "lujets_hijing.inc"
11#include "ludat1_hijing.inc"
12#include "ludat2_hijing.inc"
13
14C...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
26C...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
42C...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
57C...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
65C...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
83C...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
97C...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
110C...Set N. Optionally fragment/decay.
111 N=IPA+2
112 IF(IP.EQ.0) CALL LUEXEC_HIJING
113
114 RETURN
115 END