]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HIJING/hijing1_36/hijset.F
Stand-alone library for ESD. Possibility to use only root and lidESD.so for analysis...
[u/mrichter/AliRoot.git] / HIJING / hijing1_36 / hijset.F
1 * $Id$
2 C
3 C
4 C
5         SUBROUTINE HIJSET(EFRM,FRAME,PROJ,TARG,IAP,IZP,IAT,IZT)
6         CHARACTER FRAME*4,PROJ*4,TARG*4,EFRAME*4
7         DOUBLE PRECISION  DD1,DD2,DD3,DD4
8 #include "histrng.inc"
9 #include "hijcrdn.inc"
10 #include "hiparnt.inc"
11 #include "hijdat.inc"
12 #include "ludat1_hijing.inc"
13         EXTERNAL FNKICK,FNKICK2,FNSTRU,FNSTRUM,FNSTRUS
14         SAVE
15         CALL TITLE
16         IHNT2(1)=IAP
17         IHNT2(2)=IZP
18         IHNT2(3)=IAT
19         IHNT2(4)=IZT
20         IHNT2(5)=0
21         IHNT2(6)=0
22 C
23         HINT1(8)=MAX(ULMASS_HIJING(2112),ULMASS_HIJING(2212))
24         HINT1(9)=HINT1(8)
25 C
26         IF(PROJ.NE.'A') THEN
27                 IF(PROJ.EQ.'P') THEN
28                     IHNT2(5)=2212
29                 ELSE IF(PROJ.EQ.'PBAR') THEN 
30                     IHNT2(5)=-2212
31                 ELSE IF(PROJ.EQ.'PI+') THEN
32                     IHNT2(5)=211
33                 ELSE IF(PROJ.EQ.'PI-') THEN
34                     IHNT2(5)=-211
35                 ELSE IF(PROJ.EQ.'K+') THEN
36                     IHNT2(5)=321
37                 ELSE IF(PROJ.EQ.'K-') THEN
38                     IHNT2(5)=-321
39                 ELSE IF(PROJ.EQ.'N') THEN
40                     IHNT2(5)=2112
41                 ELSE IF(PROJ.EQ.'NBAR') THEN
42                     IHNT2(5)=-2112
43                 ELSE
44                     WRITE(6,*) PROJ, 'wrong or unavailable proj name'
45                     STOP
46                 ENDIF
47                 HINT1(8)=ULMASS_HIJING(IHNT2(5))
48         ENDIF
49         IF(TARG.NE.'A') THEN
50                 IF(TARG.EQ.'P') THEN
51                     IHNT2(6)=2212
52                 ELSE IF(TARG.EQ.'PBAR') THEN 
53                     IHNT2(6)=-2212
54                 ELSE IF(TARG.EQ.'PI+') THEN
55                     IHNT2(6)=211
56                 ELSE IF(TARG.EQ.'PI-') THEN
57                     IHNT2(6)=-211
58                 ELSE IF(TARG.EQ.'K+') THEN
59                     IHNT2(6)=321
60                 ELSE IF(TARG.EQ.'K-') THEN
61                     IHNT2(6)=-321
62                 ELSE IF(TARG.EQ.'N') THEN
63                     IHNT2(6)=2112
64                 ELSE IF(TARG.EQ.'NBAR') THEN
65                     IHNT2(6)=-2112
66                 ELSE
67                     WRITE(6,*) TARG,'wrong or unavailable targ name'
68                     STOP
69                 ENDIF
70                 HINT1(9)=ULMASS_HIJING(IHNT2(6))
71         ENDIF
72
73 C...Switch off decay of pi0, K0S, Lambda, Sigma+-, Xi0-, Omega-.
74         IF(IHPR2(12).GT.0) THEN
75         CALL LUGIVE_HIJING('MDCY(C111,1)=0')
76         CALL LUGIVE_HIJING('MDCY(C310,1)=0')
77            CALL LUGIVE_HIJING('MDCY(C411,1)=0;MDCY(C-411,1)=0')
78            CALL LUGIVE_HIJING('MDCY(C421,1)=0;MDCY(C-421,1)=0')
79            CALL LUGIVE_HIJING('MDCY(C431,1)=0;MDCY(C-431,1)=0')
80            CALL LUGIVE_HIJING('MDCY(C511,1)=0;MDCY(C-511,1)=0')
81            CALL LUGIVE_HIJING('MDCY(C521,1)=0;MDCY(C-521,1)=0')
82            CALL LUGIVE_HIJING('MDCY(C531,1)=0;MDCY(C-531,1)=0')
83         CALL LUGIVE_HIJING('MDCY(C3122,1)=0;MDCY(C-3122,1)=0')
84         CALL LUGIVE_HIJING('MDCY(C3112,1)=0;MDCY(C-3112,1)=0')
85         CALL LUGIVE_HIJING('MDCY(C3212,1)=0;MDCY(C-3212,1)=0')
86         CALL LUGIVE_HIJING('MDCY(C3222,1)=0;MDCY(C-3222,1)=0')
87         CALL LUGIVE_HIJING('MDCY(C3312,1)=0;MDCY(C-3312,1)=0')
88         CALL LUGIVE_HIJING('MDCY(C3322,1)=0;MDCY(C-3322,1)=0')
89         CALL LUGIVE_HIJING('MDCY(C3334,1)=0;MDCY(C-3334,1)=0')
90         ENDIF
91         MSTU(12)=0
92         MSTU(21)=1
93         IF(IHPR2(10).EQ.0) THEN
94                 MSTU(22)=0
95                 MSTU(25)=0
96                 MSTU(26)=0
97         ENDIF
98         MSTJ(12)=IHPR2(11)
99         PARJ(21)=HIPR1(2)
100         PARJ(41)=HIPR1(3)
101         PARJ(42)=HIPR1(4)
102 C                       ******** set up for jetset
103         IF(FRAME.EQ.'LAB') THEN
104            DD1=EFRM
105            DD2=HINT1(8)
106            DD3=HINT1(9)
107            HINT1(1)=SQRT(HINT1(8)**2+2.0*HINT1(9)*EFRM+HINT1(9)**2)
108            DD4=DSQRT(DD1**2-DD2**2)/(DD1+DD3)
109            HINT1(2)=DD4
110            HINT1(3)=0.5*DLOG((1.D0+DD4)/(1.D0-DD4))
111            DD4=DSQRT(DD1**2-DD2**2)/DD1
112            HINT1(4)=0.5*DLOG((1.D0+DD4)/(1.D0-DD4))
113            HINT1(5)=0.0
114            HINT1(6)=EFRM
115            HINT1(7)=HINT1(9)
116         ELSE IF(FRAME.EQ.'CMS') THEN
117            HINT1(1)=EFRM
118            HINT1(2)=0.0
119            HINT1(3)=0.0
120            DD1=HINT1(1)
121            DD2=HINT1(8)
122            DD3=HINT1(9)
123            DD4=DSQRT(1.D0-4.D0*DD2**2/DD1**2)
124            HINT1(4)=0.5*DLOG((1.D0+DD4)/(1.D0-DD4))
125            DD4=DSQRT(1.D0-4.D0*DD3**2/DD1**2)
126            HINT1(5)=-0.5*DLOG((1.D0+DD4)/(1.D0-DD4))
127            HINT1(6)=HINT1(1)/2.0
128            HINT1(7)=HINT1(1)/2.0
129         ENDIF
130 C               ********define Lorentz transform to lab frame
131 c
132 C               ********calculate the cross sections involved with
133 C                       nucleon collisions.
134         IF(IHNT2(1).GT.1) THEN
135                 CALL HIJWDS(IHNT2(1),1,RMAX)
136                 HIPR1(34)=RMAX
137 C                       ********set up Wood-Sax distr for proj.
138         ENDIF
139         IF(IHNT2(3).GT.1) THEN
140                 CALL HIJWDS(IHNT2(3),2,RMAX)
141                 HIPR1(35)=RMAX
142 C                       ********set up Wood-Sax distr for  targ.
143         ENDIF
144 C
145 C
146         I=0
147 20      I=I+1
148         IF(I.EQ.10) GO TO 30
149         IF(HIDAT0(10,I).LE.HINT1(1)) GO TO 20
150 30      IF(I.EQ.1) I=2
151         DO 40 J=1,9
152            HIDAT(J)=HIDAT0(J,I-1)+(HIDAT0(J,I)-HIDAT0(J,I-1))
153      &     *(HINT1(1)-HIDAT0(10,I-1))/(HIDAT0(10,I)-HIDAT0(10,I-1))
154 40      CONTINUE
155         HIPR1(31)=HIDAT(5)
156         HIPR1(30)=2.0*HIDAT(5)
157 C
158 C
159         CALL HIJCRS
160 C
161         IF(IHPR2(5).NE.0) THEN
162                 CALL HIFUN(3,0.0,36.0,FNKICK)
163 C               ********booking for generating pt**2 for pt kick
164         ENDIF
165         CALL HIFUN(7,0.0,6.0,FNKICK2)
166         CALL HIFUN(4,0.0,1.0,FNSTRU)
167         CALL HIFUN(5,0.0,1.0,FNSTRUM)
168         CALL HIFUN(6,0.0,1.0,FNSTRUS)
169 C               ********booking for x distribution of valence quarks
170         EFRAME='Ecm'
171         IF(FRAME.EQ.'LAB') EFRAME='Elab'
172         WRITE(6,100) EFRAME,EFRM,PROJ,IHNT2(1),IHNT2(2),
173      &               TARG,IHNT2(3),IHNT2(4) 
174 100     FORMAT(//10X,'**************************************************'/
175      &  10X,'*',48X,'*'/
176      &  10X,'*         HIJING has been initialized at         *'/
177      &  10X,'*',13X,A4,'= ',F10.2,' GeV/n',13X,'*'/
178      &  10X,'*',48X,'*'/
179      &  10X,'*',8X,'for ',
180      &  A4,'(',I3,',',I3,')',' + ',A4,'(',I3,',',I3,')',7X,'*'/
181      &  10X,'**************************************************')
182         RETURN
183         END