]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ISAJET/code/evol03.F
First commit.
[u/mrichter/AliRoot.git] / ISAJET / code / evol03.F
1 #include "isajet/pilot.h"
2       SUBROUTINE EVOL03
3 C----------------------------------------------------------------------
4 C-
5 C-   Purpose and Methods : 
6 C-        Setup for process 3 (DRELLYAN)
7 C-        Lorentz frames and perform initial and final QCD jet
8 C-        evolution in leading-log approximation.
9 C-
10 C-   Created  13-AUG-1991   Frank E. Paige,Serban D. Protopopescu
11 C-
12 C----------------------------------------------------------------------
13 #if defined(CERNLIB_IMPNONE)
14       IMPLICIT NONE
15 #endif
16 #include "isajet/primar.inc"
17 #include "isajet/jetpar.inc"
18 #include "isajet/pjets.inc"
19 #include "isajet/jetset.inc"
20 #include "isajet/jwork.inc"
21 #include "isajet/jwork2.inc"
22 #include "isajet/q1q2.inc"
23 #include "isajet/frame.inc"
24 #include "isajet/wcon.inc"
25       REAL    EVOLMS,BP
26       INTEGER I,K,J,NJFINL
27 C----------------------------------------------------------------------
28 C
29 C          Add W momentum and recoil jets
30       N0JETS=NJSET+1
31       IF(.NOT.STDDY) THEN
32         DO 101 I=3,NJET
33           NJSET=NJSET+1
34           JORIG(NJSET)=JPACK*I
35           JTYPE(NJSET)=IDJETS(I)
36           JDCAY(NJSET)=0
37           DO 105 K=1,5
38 105       PJSET(K,NJSET)=PJETS(K,I)
39           IFRAME(I)=1
40 101     CONTINUE
41         NJSET=NJSET+1
42         N0W=NJSET
43         JORIG(NJSET)=0
44         JTYPE(NJSET)=IDENTW
45         JDCAY(NJSET)=(N0W+1)*JPACK+N0W+2
46         DO 120 K=1,5
47 120     PJSET(K,NJSET)=QWJET(K)
48       ENDIF
49 C
50 C          Add W decays
51       DO 110 I=1,2
52         NJSET=NJSET+1
53         JORIG(NJSET)=JPACK*I
54         JTYPE(NJSET)=IDJETS(I)
55         JDCAY(NJSET)=0
56         DO 115 K=1,5
57 115     PJSET(K,NJSET)=PJETS(K,I)
58         IFRAME(I)=2
59         IF(STDDY) IFRAME(I)=1
60 110   CONTINUE
61 C
62 C          Set flags and maximum off-shell masses and generate
63 C          initial QCD parton shower.
64 C
65       CALL ISTRAD(WFUDGE)
66 C
67       IF(NJSET.LT.0) RETURN
68 C
69 C          Final state evolution.
70 C          Define Lorentz frames and JMATCH pointers for jet evolution
71 C          and fragmentation.
72 C
73       IF(STDDY) THEN
74         CALL IFRAMS(3,4,1,.FALSE.)
75       ELSE
76         CALL IFRAMS(N0W+1,N0W+2,2,.FALSE.)
77         CALL IFRAMS(N0JETS,N0W,1,.FALSE.)          
78       ENDIF
79 C
80 C          Set maximum off-shell masses and JDCAY flags.
81 C
82       IF(STDDY) THEN
83         NJFINL=3
84         DO 310 J=3,4
85           IF(IABS(JTYPE(J)).LT.10) THEN
86             PJSET(5,J)=QMW
87             JDCAY(J)=-1
88           ENDIF
89 310     CONTINUE
90       ELSE
91         NJFINL=N0JETS
92         DO 320 J=N0W+1,N0W+2
93           IF(IABS(JTYPE(J)).LT.10) THEN
94             PJSET(5,J)=QMW
95             JDCAY(J)=-1
96           ENDIF
97 320     CONTINUE
98 C          Need fudge factor for DRELLYAN
99         DO 321 J=N0JETS,N0W
100           IF(IABS(JTYPE(J)).LT.10) THEN
101             PJSET(5,J)=EVOLMS(J,WFUDGE)
102             JDCAY(J)=-1
103           ENDIF
104 321     CONTINUE
105       ENDIF
106 C
107 C          Produce final-state QCD parton cascade
108 C
109       CALL QCDJET(NJFINL)
110 C
111 C          Reset FRAME using W momentum modified by evolution
112       IF(.NOT.STDDY) THEN
113         BP=0.
114         DO 400 K=1,3
115 400     BP=BP+FRAME(K,1)*PJSET(K,N0W)
116         BP=BP/FRAME(5,1)
117         DO 410 K=1,3
118           FRAME(K,2)=PJSET(K,N0W)+FRAME(K,1)*PJSET(4,N0W)/FRAME(5,1)
119      $    +FRAME(K,1)*BP/(FRAME(4,1)+FRAME(5,1))
120 410     CONTINUE
121         FRAME(4,2)=FRAME(4,1)*PJSET(4,N0W)/FRAME(5,1)+BP
122       ENDIF
123 C
124       RETURN
125       END