]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HIJING/hijing1_36/hijfrg.F
Small modif to switch of gluon radiation and pT kick for triggered jets.
[u/mrichter/AliRoot.git] / HIJING / hijing1_36 / hijfrg.F
1 * $Id$
2
3 C
4 C
5 C
6 C
7         SUBROUTINE HIJFRG(JTP,NTP,IERROR)
8 C       NTP=1, fragment proj string, NTP=2, targ string, 
9 C       NTP=3, independent 
10 C       strings from jets.  JTP is the line number of the string
11 C*******Fragment all leading strings of proj and targ**************
12 C       IHNT2(1)=atomic #, IHNT2(2)=proton #(=-1 if anti-proton)  *
13 C******************************************************************
14 #include "hiparnt.inc"
15 #include "hijdat.inc"
16 #include "histrng.inc"
17 #include "hijjet1.inc"
18 #include "hijjet2.inc"
19 C
20 #include "lujets_hijing.inc"
21 #include "ludat1_hijing.inc"
22         SAVE
23         
24         IERROR=0
25         CALL LUEDIT_HIJING(0)
26         N=0
27 C                       ********initialize the document lines
28         IF(NTP.EQ.3) THEN
29                 ISG=JTP
30                 N=NJSG(ISG)
31                 DO 100 I=1,NJSG(ISG)
32                         K(I,1)=K1SG(ISG,I)
33                         K(I,2)=K2SG(ISG,I)
34                         P(I,1)=PXSG(ISG,I)
35                         P(I,2)=PYSG(ISG,I)
36                         P(I,3)=PZSG(ISG,I)
37                         P(I,4)=PESG(ISG,I)
38                         P(I,5)=PMSG(ISG,I)
39 100             CONTINUE
40 C               IF(IHPR2(1).GT.0) CALL ATTRAD(IERROR)
41 c               IF(IERROR.NE.0) RETURN
42 C               CALL LULIST_HIJING(1)
43                 CALL LUEXEC_HIJING
44                 RETURN
45         ENDIF
46 C
47         IF(NTP.EQ.2) GO TO 200
48         IF(JTP.GT.IHNT2(1))   RETURN
49         IF(NFP(JTP,5).NE.3.AND.NFP(JTP,3).NE.0
50      &      .AND.NPJ(JTP).EQ.0.AND.NFP(JTP,10).EQ.0) GO TO 1000
51         IF(NFP(JTP,15).EQ.-1) THEN
52                 KF1=NFP(JTP,2)
53                 KF2=NFP(JTP,1)
54                 PQ21=PP(JTP,6)
55                 PQ22=PP(JTP,7)
56                 PQ11=PP(JTP,8)
57                 PQ12=PP(JTP,9)
58                 AM1=PP(JTP,15)
59                 AM2=PP(JTP,14)
60         ELSE
61                 KF1=NFP(JTP,1)
62                 KF2=NFP(JTP,2)
63                 PQ21=PP(JTP,8)
64                 PQ22=PP(JTP,9)
65                 PQ11=PP(JTP,6)
66                 PQ12=PP(JTP,7)
67                 AM1=PP(JTP,14)
68                 AM2=PP(JTP,15)  
69         ENDIF
70 C       ********for NFP(JTP,15)=-1 NFP(JTP,1) IS IN -Z DIRECTION
71         PB1=PQ11+PQ21
72         PB2=PQ12+PQ22
73         PB3=PP(JTP,3)
74         PECM=PP(JTP,5)
75         BTZ=PB3/PP(JTP,4)
76         IF((ABS(PB1-PP(JTP,1)).GT.0.01.OR.
77      &    ABS(PB2-PP(JTP,2)).GT.0.01).AND.IHPR2(10).NE.0)
78      &    WRITE(6,*) '  Pt of Q and QQ do not sum to the total'
79
80         GO TO 300
81
82 200     IF(JTP.GT.IHNT2(3))  RETURN
83         IF(NFT(JTP,5).NE.3.AND.NFT(JTP,3).NE.0
84      &     .AND.NTJ(JTP).EQ.0.AND.NFT(JTP,10).EQ.0) GO TO 1200
85         IF(NFT(JTP,15).EQ.1) THEN
86                 KF1=NFT(JTP,1)
87                 KF2=NFT(JTP,2)
88                 PQ11=PT(JTP,6)
89                 PQ12=PT(JTP,7)
90                 PQ21=PT(JTP,8)
91                 PQ22=PT(JTP,9)
92                 AM1=PT(JTP,14)
93                 AM2=PT(JTP,15)
94         ELSE
95                 KF1=NFT(JTP,2)
96                 KF2=NFT(JTP,1)
97                 PQ11=PT(JTP,8)
98                 PQ12=PT(JTP,9)
99                 PQ21=PT(JTP,6)
100                 PQ22=PT(JTP,7)
101                 AM1=PT(JTP,15)
102                 AM2=PT(JTP,14)
103         ENDIF   
104 C       ********for NFT(JTP,15)=1 NFT(JTP,1) IS IN +Z DIRECTION
105         PB1=PQ11+PQ21
106         PB2=PQ12+PQ22
107         PB3=PT(JTP,3)
108         PECM=PT(JTP,5)
109         BTZ=PB3/PT(JTP,4)
110
111         IF((ABS(PB1-PT(JTP,1)).GT.0.01.OR.
112      &     ABS(PB2-PT(JTP,2)).GT.0.01).AND.IHPR2(10).NE.0)
113      &     WRITE(6,*) '  Pt of Q and QQ do not sum to the total'
114
115 300     IF(PECM.LT.HIPR1(1)) THEN
116            IERROR=1
117            IF(IHPR2(10).EQ.0) RETURN
118            WRITE(6,*) ' ECM=',PECM,' energy of the string is too small'
119            RETURN
120         ENDIF
121         AMT=PECM**2+PB1**2+PB2**2
122         AMT1=AM1**2+PQ11**2+PQ12**2
123         AMT2=AM2**2+PQ21**2+PQ22**2
124         PZCM=SQRT(ABS(AMT**2+AMT1**2+AMT2**2-2.0*AMT*AMT1
125      &       -2.0*AMT*AMT2-2.0*AMT1*AMT2))/2.0/SQRT(AMT)
126 C               *******PZ of end-partons in c.m. frame of the string
127         K(1,1)=2
128         K(1,2)=KF1
129         P(1,1)=PQ11
130         P(1,2)=PQ12
131         P(1,3)=PZCM
132         P(1,4)=SQRT(AMT1+PZCM**2)
133         P(1,5)=AM1
134         K(2,1)=1
135         K(2,2)=KF2
136         P(2,1)=PQ21
137         P(2,2)=PQ22
138         P(2,3)=-PZCM
139         P(2,4)=SQRT(AMT2+PZCM**2)
140         P(2,5)=AM2
141         N=2
142 C*****
143         CALL HIROBO(0.0,0.0,0.0,0.0,BTZ)
144         JETOT=0
145         IF((PQ21**2+PQ22**2).GT.(PQ11**2+PQ12**2)) THEN
146                 PMAX1=P(2,1)
147                 PMAX2=P(2,2)
148                 PMAX3=P(2,3)
149         ELSE
150                 PMAX1=P(1,1)
151                 PMAX2=P(1,2)
152                 PMAX3=P(1,3)
153         ENDIF
154         IF(NTP.EQ.1) THEN
155                 PP(JTP,10)=PMAX1
156                 PP(JTP,11)=PMAX2
157                 PP(JTP,12)=PMAX3
158         ELSE IF(NTP.EQ.2) THEN
159                 PT(JTP,10)=PMAX1
160                 PT(JTP,11)=PMAX2
161                 PT(JTP,12)=PMAX3
162         ENDIF
163 C*******************attach produced jets to the leading partons****
164         IF(NTP.EQ.1.AND.NPJ(JTP).NE.0) THEN
165                 JETOT=NPJ(JTP)
166 C               IF(NPJ(JTP).GE.2) CALL HIJSRT(JTP,1)
167 C                       ********sort jets in order of y
168                 IEX=0
169                 IF((ABS(KF1).GT.1000.AND.KF1.LT.0)
170      &                  .OR.(ABS(KF1).LT.1000.AND.KF1.GT.0)) IEX=1
171                 DO 520 I=N,2,-1
172                 DO 520 J=1,5
173                         II=NPJ(JTP)+I
174                         K(II,J)=K(I,J)
175                         P(II,J)=P(I,J)
176                         V(II,J)=V(I,J)
177 520             CONTINUE
178                 DO 540 I=1,NPJ(JTP)
179                         DO 542 J=1,5
180                                 K(I+1,J)=0
181                                 V(I+1,J)=0
182 542                     CONTINUE                                
183                         I0=I
184                         IF(IEX.EQ.1) I0=NPJ(JTP)-I+1
185 C                               ********reverse the order of jets
186                         KK1=KFPJ(JTP,I0)
187                         K(I+1,1)=2
188                         K(I+1,2)=KK1
189                         IF(KK1.NE.21 .AND. KK1.NE.0)  K(I+1,1)=
190      &                    1+(ABS(KK1)+(2*IEX-1)*KK1)/2/ABS(KK1)
191                         P(I+1,1)=PJPX(JTP,I0)
192                         P(I+1,2)=PJPY(JTP,I0)
193                         P(I+1,3)=PJPZ(JTP,I0)
194                         P(I+1,4)=PJPE(JTP,I0)
195                         P(I+1,5)=PJPM(JTP,I0)
196 540             CONTINUE
197                 N=N+NPJ(JTP)
198         ELSE IF(NTP.EQ.2.AND.NTJ(JTP).NE.0) THEN
199                 JETOT=NTJ(JTP)
200 c               IF(NTJ(JTP).GE.2)  CALL HIJSRT(JTP,2)
201 C                       ********sort jets in order of y
202                 IEX=1
203                 IF((ABS(KF2).GT.1000.AND.KF2.LT.0)
204      &                  .OR.(ABS(KF2).LT.1000.AND.KF2.GT.0)) IEX=0
205                 DO 560 I=N,2,-1
206                 DO 560 J=1,5
207                         II=NTJ(JTP)+I
208                         K(II,J)=K(I,J)
209                         P(II,J)=P(I,J)
210                         V(II,J)=V(I,J)
211 560             CONTINUE
212                 DO 580 I=1,NTJ(JTP)
213                         DO 582 J=1,5
214                                 K(I+1,J)=0
215                                 V(I+1,J)=0
216 582                     CONTINUE                                
217                         I0=I
218                         IF(IEX.EQ.1) I0=NTJ(JTP)-I+1
219 C                               ********reverse the order of jets
220                         KK1=KFTJ(JTP,I0)
221                         K(I+1,1)=2
222                         K(I+1,2)=KK1
223                         IF(KK1.NE.21 .AND. KK1.NE.0) K(I+1,1)=
224      &                     1+(ABS(KK1)+(2*IEX-1)*KK1)/2/ABS(KK1)
225                         P(I+1,1)=PJTX(JTP,I0)
226                         P(I+1,2)=PJTY(JTP,I0)
227                         P(I+1,3)=PJTZ(JTP,I0)
228                         P(I+1,4)=PJTE(JTP,I0)
229                         P(I+1,5)=PJTM(JTP,I0)
230 580             CONTINUE
231                 N=N+NTJ(JTP)
232         ENDIF
233         IF(IHPR2(1).GT.0.AND.RLU_HIJING(0).LE.HIDAT(3)) THEN
234              HIDAT20=HIDAT(2)
235              HIPR150=HIPR1(5)
236              IF(IHPR2(8).EQ.0.AND.IHPR2(3).EQ.0.AND.IHPR2(9).EQ.0)
237      &                  HIDAT(2)=2.0
238              IF(HINT1(1).GE.1000.0.AND.JETOT.EQ.0)THEN
239                 HIDAT(2)=3.0
240                 HIPR1(5)=5.0
241              ENDIF
242              CALL ATTRAD(IERROR)
243              HIDAT(2)=HIDAT20
244              HIPR1(5)=HIPR150
245         ELSE IF(JETOT.EQ.0.AND.IHPR2(1).GT.0.AND.
246      &                       HINT1(1).GE.1000.0.AND.
247      &          RLU_HIJING(0).LE.0.8) THEN
248                 HIDAT20=HIDAT(2)
249                 HIPR150=HIPR1(5)
250                 HIDAT(2)=3.0
251                 HIPR1(5)=5.0
252              IF(IHPR2(8).EQ.0.AND.IHPR2(3).EQ.0.AND.IHPR2(9).EQ.0)
253      &                  HIDAT(2)=2.0
254                 CALL ATTRAD(IERROR)
255                 HIDAT(2)=HIDAT20
256                 HIPR1(5)=HIPR150
257         ENDIF
258         IF(IERROR.NE.0) RETURN
259 C               ******** conduct soft radiations
260 C****************************
261 C
262 C
263 C       CALL LULIST_HIJING(1)
264         CALL LUEXEC_HIJING
265         RETURN
266
267 1000    N=1
268         K(1,1)=1
269         K(1,2)=NFP(JTP,3)
270         DO 1100 JJ=1,5
271                 P(1,JJ)=PP(JTP,JJ)
272 1100            CONTINUE
273 C                       ********proj remain as a nucleon or delta
274         CALL LUEXEC_HIJING
275 C       call LULIST_HIJING(1)
276         RETURN
277 C
278 1200    N=1
279         K(1,1)=1
280         K(1,2)=NFT(JTP,3)
281         DO 1300 JJ=1,5
282                 P(1,JJ)=PT(JTP,JJ)
283 1300    CONTINUE
284 C                       ********targ remain as a nucleon or delta
285         CALL LUEXEC_HIJING
286 C       call LULIST_HIJING(1)
287         RETURN
288         END