Merging the VirtualMC branch to the main development branch (HEAD)
[u/mrichter/AliRoot.git] / HIJING / hipyset1_35 / luxtot_hijing.F
1 * $Id$
2     
3 C*********************************************************************  
4     
5       SUBROUTINE LUXTOT_HIJING(KFL,ECM,XTOT)   
6     
7 C...Purpose: to calculate total cross-section, including initial    
8 C...state radiation effects.    
9 #include "ludat1_hijing.inc"
10 #include "ludat2_hijing.inc"
11     
12 C...Status, (optimized) Q^2 scale, alpha_strong.    
13       PARJ(151)=ECM 
14       MSTJ(119)=10*MSTJ(102)+KFL    
15       IF(MSTJ(111).EQ.0) THEN   
16         Q2R=ECM**2  
17       ELSEIF(MSTU(111).EQ.0) THEN   
18         PARJ(168)=MIN(1.,MAX(PARJ(128),EXP(-12.*PARU(1)/    
19      &  ((33.-2.*MSTU(112))*PARU(111)))))   
20         Q2R=PARJ(168)*ECM**2    
21       ELSE  
22         PARJ(168)=MIN(1.,MAX(PARJ(128),PARU(112)/ECM,   
23      &  (2.*PARU(112)/ECM)**2)) 
24         Q2R=PARJ(168)*ECM**2    
25       ENDIF 
26       ALSPI=ULALPS_HIJING(Q2R)/PARU(1) 
27     
28 C...QCD corrections factor in R.    
29       IF(MSTJ(101).EQ.0.OR.MSTJ(109).EQ.1) THEN 
30         RQCD=1. 
31       ELSEIF(IABS(MSTJ(101)).EQ.1.AND.MSTJ(109).EQ.0) THEN  
32         RQCD=1.+ALSPI   
33       ELSEIF(MSTJ(109).EQ.0) THEN   
34         RQCD=1.+ALSPI+(1.986-0.115*MSTU(118))*ALSPI**2  
35         IF(MSTJ(111).EQ.1) RQCD=MAX(1.,RQCD+(33.-2.*MSTU(112))/12.* 
36      &  LOG(PARJ(168))*ALSPI**2)    
37       ELSEIF(IABS(MSTJ(101)).EQ.1) THEN 
38         RQCD=1.+(3./4.)*ALSPI   
39       ELSE  
40         RQCD=1.+(3./4.)*ALSPI-(3./32.+0.519*MSTU(118))*ALSPI**2 
41       ENDIF 
42     
43 C...Calculate Z0 width if default value not acceptable. 
44       IF(MSTJ(102).GE.3) THEN   
45         RVA=3.*(3.+(4.*PARU(102)-1.)**2)+6.*RQCD*(2.+(1.-8.*PARU(102)/  
46      &  3.)**2+(4.*PARU(102)/3.-1.)**2) 
47         DO 100 KFLC=5,6 
48         VQ=1.   
49         IF(MOD(MSTJ(103),2).EQ.1) VQ=SQRT(MAX(0.,1.-(2.
50      $       *ULMASS_HIJING(KFLC)/ECM)**2))   
51         IF(KFLC.EQ.5) VF=4.*PARU(102)/3.-1. 
52         IF(KFLC.EQ.6) VF=1.-8.*PARU(102)/3. 
53   100   RVA=RVA+3.*RQCD*(0.5*VQ*(3.-VQ**2)*VF**2+VQ**3) 
54         PARJ(124)=PARU(101)*PARJ(123)*RVA/(48.*PARU(102)*(1.-PARU(102)))    
55       ENDIF 
56     
57 C...Calculate propagator and related constants for QFD case.    
58       POLL=1.-PARJ(131)*PARJ(132)   
59       IF(MSTJ(102).GE.2) THEN   
60         SFF=1./(16.*PARU(102)*(1.-PARU(102)))   
61         SFW=ECM**4/((ECM**2-PARJ(123)**2)**2+(PARJ(123)*PARJ(124))**2)  
62         SFI=SFW*(1.-(PARJ(123)/ECM)**2) 
63         VE=4.*PARU(102)-1.  
64         SF1I=SFF*(VE*POLL+PARJ(132)-PARJ(131))  
65         SF1W=SFF**2*((VE**2+1.)*POLL+2.*VE*(PARJ(132)-PARJ(131)))   
66         HF1I=SFI*SF1I   
67         HF1W=SFW*SF1W   
68       ENDIF 
69     
70 C...Loop over different flavours: charge, velocity. 
71       RTOT=0.   
72       RQQ=0.    
73       RQV=0.    
74       RVA=0.    
75       DO 110 KFLC=1,MAX(MSTJ(104),KFL)  
76       IF(KFL.GT.0.AND.KFLC.NE.KFL) GOTO 110 
77       MSTJ(93)=1    
78       PMQ=ULMASS_HIJING(KFLC)  
79       IF(ECM.LT.2.*PMQ+PARJ(127)) GOTO 110  
80       QF=KCHG(KFLC,1)/3.    
81       VQ=1. 
82       IF(MOD(MSTJ(103),2).EQ.1) VQ=SQRT(1.-(2.*PMQ/ECM)**2) 
83     
84 C...Calculate R and sum of charges for QED or QFD case. 
85       RQQ=RQQ+3.*QF**2*POLL 
86       IF(MSTJ(102).LE.1) THEN   
87         RTOT=RTOT+3.*0.5*VQ*(3.-VQ**2)*QF**2*POLL   
88       ELSE  
89         VF=SIGN(1.,QF)-4.*QF*PARU(102)  
90         RQV=RQV-6.*QF*VF*SF1I   
91         RVA=RVA+3.*(VF**2+1.)*SF1W  
92         RTOT=RTOT+3.*(0.5*VQ*(3.-VQ**2)*(QF**2*POLL-2.*QF*VF*HF1I+  
93      &  VF**2*HF1W)+VQ**3*HF1W) 
94       ENDIF 
95   110 CONTINUE  
96       RSUM=RQQ  
97       IF(MSTJ(102).GE.2) RSUM=RQQ+SFI*RQV+SFW*RVA   
98     
99 C...Calculate cross-section, including QCD corrections. 
100       PARJ(141)=RQQ 
101       PARJ(142)=RTOT    
102       PARJ(143)=RTOT*RQCD   
103       PARJ(144)=PARJ(143)   
104       PARJ(145)=PARJ(141)*86.8/ECM**2   
105       PARJ(146)=PARJ(142)*86.8/ECM**2   
106       PARJ(147)=PARJ(143)*86.8/ECM**2   
107       PARJ(148)=PARJ(147)   
108       PARJ(157)=RSUM*RQCD   
109       PARJ(158)=0.  
110       PARJ(159)=0.  
111       XTOT=PARJ(147)    
112       IF(MSTJ(107).LE.0) RETURN 
113     
114 C...Virtual cross-section.  
115       XKL=PARJ(135) 
116       XKU=MIN(PARJ(136),1.-(2.*PARJ(127)/ECM)**2)   
117       ALE=2.*LOG(ECM/ULMASS_HIJING(11))-1. 
118       SIGV=ALE/3.+2.*LOG(ECM**2/(ULMASS_HIJING(13)*ULMASS_HIJING(15)))/3
119      $     .-4./3.+1.526*LOG(ECM**2/0.932)   
120     
121 C...Soft and hard radiative cross-section in QED case.  
122       IF(MSTJ(102).LE.1) THEN   
123         SIGV=1.5*ALE-0.5+PARU(1)**2/3.+2.*SIGV  
124         SIGS=ALE*(2.*LOG(XKL)-LOG(1.-XKL)-XKL)  
125         SIGH=ALE*(2.*LOG(XKU/XKL)-LOG((1.-XKU)/(1.-XKL))-(XKU-XKL)) 
126     
127 C...Soft and hard radiative cross-section in QFD case.  
128       ELSE  
129         SZM=1.-(PARJ(123)/ECM)**2   
130         SZW=PARJ(123)*PARJ(124)/ECM**2  
131         PARJ(161)=-RQQ/RSUM 
132         PARJ(162)=-(RQQ+RQV+RVA)/RSUM   
133         PARJ(163)=(RQV*(1.-0.5*SZM-SFI)+RVA*(1.5-SZM-SFW))/RSUM 
134         PARJ(164)=(RQV*SZW**2*(1.-2.*SFW)+RVA*(2.*SFI+SZW**2-4.+3.*SZM- 
135      &  SZM**2))/(SZW*RSUM) 
136         SIGV=1.5*ALE-0.5+PARU(1)**2/3.+((2.*RQQ+SFI*RQV)/RSUM)*SIGV+    
137      &  (SZW*SFW*RQV/RSUM)*PARU(1)*20./9.   
138         SIGS=ALE*(2.*LOG(XKL)+PARJ(161)*LOG(1.-XKL)+PARJ(162)*XKL+  
139      &  PARJ(163)*LOG(((XKL-SZM)**2+SZW**2)/(SZM**2+SZW**2))+   
140      &  PARJ(164)*(ATAN((XKL-SZM)/SZW)-ATAN(-SZM/SZW))) 
141         SIGH=ALE*(2.*LOG(XKU/XKL)+PARJ(161)*LOG((1.-XKU)/(1.-XKL))+ 
142      &  PARJ(162)*(XKU-XKL)+PARJ(163)*LOG(((XKU-SZM)**2+SZW**2)/    
143      &  ((XKL-SZM)**2+SZW**2))+PARJ(164)*(ATAN((XKU-SZM)/SZW)-  
144      &  ATAN((XKL-SZM)/SZW)))   
145       ENDIF 
146     
147 C...Total cross-section and fraction of hard photon events. 
148       PARJ(160)=SIGH/(PARU(1)/PARU(101)+SIGV+SIGS+SIGH) 
149       PARJ(157)=RSUM*(1.+(PARU(101)/PARU(1))*(SIGV+SIGS+SIGH))*RQCD 
150       PARJ(144)=PARJ(157)   
151       PARJ(148)=PARJ(144)*86.8/ECM**2   
152       XTOT=PARJ(148)    
153     
154       RETURN    
155       END