]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HIJING/hijing1_36/hijels.F
More decay options
[u/mrichter/AliRoot.git] / HIJING / hijing1_36 / hijels.F
CommitLineData
e74335a4 1* $Id$
2C
3C
4C*******************************************************************
5CThis subroutine performs elastic scattering between two nucleons
6C
7C*******************************************************************
8 SUBROUTINE HIJELS(PSC1,PSC2)
9 IMPLICIT DOUBLE PRECISION(D)
10 DIMENSION PSC1(5),PSC2(5)
bc676b8e 11#define BLANKET_SAVE
e74335a4 12#include "hiparnt.inc"
13 SAVE
14C
15 CC=1.0-HINT1(12)/HINT1(13)
16 RR=(1.0-CC)*HINT1(13)/HINT1(12)/(1.0-HIPR1(33))-1.0
17 BB=0.5*(3.0+RR+SQRT(9.0+10.0*RR+RR**2))
18 EP=SQRT((PSC1(1)-PSC2(1))**2+(PSC1(2)-PSC2(2))**2
19 & +(PSC1(3)-PSC2(3))**2)
20 IF(EP.LE.0.1) RETURN
21 ELS0=98.0/EP+52.0*(1.0+RR)**2
22 PCM1=PSC1(1)+PSC2(1)
23 PCM2=PSC1(2)+PSC2(2)
24 PCM3=PSC1(3)+PSC2(3)
25 ECM=PSC1(4)+PSC2(4)
26 AM1=PSC1(5)**2
27 AM2=PSC2(5)**2
28 AMM=ECM**2-PCM1**2-PCM2**2-PCM3**2
29 IF(AMM.LE.PSC1(5)+PSC2(5)) RETURN
30C ********elastic scattering only when approaching
31C to each other
32 PMAX=(AMM**2+AM1**2+AM2**2-2.0*AMM*AM1-2.0*AMM*AM2
33 & -2.0*AM1*AM2)/4.0/AMM
34 PMAX=ABS(PMAX)
3520 TT=RLU_HIJING(0)*MIN(PMAX,1.5)
36 ELS=98.0*EXP(-2.8*TT)/EP
37 & +52.0*EXP(-9.2*TT)*(1.0+RR*EXP(-4.6*(BB-1.0)*TT))**2
38 IF(RLU_HIJING(0).GT.ELS/ELS0) GO TO 20
39 PHI=2.0*HIPR1(40)*RLU_HIJING(0)
40C
41 DBX=PCM1/ECM
42 DBY=PCM2/ECM
43 DBZ=PCM3/ECM
44 DB=SQRT(DBX**2+DBY**2+DBZ**2)
45 IF(DB.GT.0.99999999D0) THEN
46 DBX=DBX*(0.99999999D0/DB)
47 DBY=DBY*(0.99999999D0/DB)
48 DBZ=DBZ*(0.99999999D0/DB)
49 DB=0.99999999D0
50 WRITE(6,*) ' (HIJELS) boost vector too large'
51C ********Rescale boost vector if too close to unity.
52 ENDIF
53 DGA=1D0/SQRT(1D0-DB**2)
54C
55 DP1=SQRT(TT)*SIN(PHI)
56 DP2=SQRT(TT)*COS(PHI)
57 DP3=SQRT(PMAX-TT)
58 DP4=SQRT(PMAX+AM1)
59 DBP=DBX*DP1+DBY*DP2+DBZ*DP3
60 DGABP=DGA*(DGA*DBP/(1D0+DGA)+DP4)
61 PSC1(1)=DP1+DGABP*DBX
62 PSC1(2)=DP2+DGABP*DBY
63 PSC1(3)=DP3+DGABP*DBZ
64 PSC1(4)=DGA*(DP4+DBP)
65C
66 DP1=-SQRT(TT)*SIN(PHI)
67 DP2=-SQRT(TT)*COS(PHI)
68 DP3=-SQRT(PMAX-TT)
69 DP4=SQRT(PMAX+AM2)
70 DBP=DBX*DP1+DBY*DP2+DBZ*DP3
71 DGABP=DGA*(DGA*DBP/(1D0+DGA)+DP4)
72 PSC2(1)=DP1+DGABP*DBX
73 PSC2(2)=DP2+DGABP*DBY
74 PSC2(3)=DP3+DGABP*DBZ
75 PSC2(4)=DGA*(DP4+DBP)
76 RETURN
77 END