]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PYTHIA/jetset/luonia.F
Use tgt_ prefix for binary target directories
[u/mrichter/AliRoot.git] / PYTHIA / jetset / luonia.F
1  
2 C********************************************************************* 
3  
4       SUBROUTINE LUONIA(KFL,ECM) 
5  
6 C...Purpose: to generate Upsilon and toponium decays into three 
7 C...gluons or two gluons and a photon. 
8       COMMON/LUJETS/N,K(4000,5),P(4000,5),V(4000,5) 
9       COMMON/LUDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) 
10       COMMON/LUDAT2/KCHG(500,3),PMAS(500,4),PARF(2000),VCKM(4,4) 
11       SAVE /LUJETS/,/LUDAT1/,/LUDAT2/ 
12  
13 C...Printout. Check input parameters. 
14       IF(MSTU(12).GE.1) CALL LULIST(0) 
15       IF(KFL.LT.0.OR.KFL.GT.8) THEN 
16         CALL LUERRM(16,'(LUONIA:) called with unknown flavour code') 
17         IF(MSTU(21).GE.1) RETURN 
18       ENDIF 
19       IF(ECM.LT.PARJ(127)+2.02*PARF(101)) THEN 
20         CALL LUERRM(16,'(LUONIA:) called with too small CM energy') 
21         IF(MSTU(21).GE.1) RETURN 
22       ENDIF 
23  
24 C...Initial e+e- and onium state (optional). 
25       NC=0 
26       IF(MSTJ(115).GE.2) THEN 
27         NC=NC+2 
28         CALL LU1ENT(NC-1,11,0.5*ECM,0.,0.) 
29         K(NC-1,1)=21 
30         CALL LU1ENT(NC,-11,0.5*ECM,PARU(1),0.) 
31         K(NC,1)=21 
32       ENDIF 
33       KFLC=IABS(KFL) 
34       IF(MSTJ(115).GE.3.AND.KFLC.GE.5) THEN 
35         NC=NC+1 
36         KF=110*KFLC+3 
37         MSTU10=MSTU(10) 
38         MSTU(10)=1 
39         P(NC,5)=ECM 
40         CALL LU1ENT(NC,KF,ECM,0.,0.) 
41         K(NC,1)=21 
42         K(NC,3)=1 
43         MSTU(10)=MSTU10 
44       ENDIF 
45  
46 C...Choose x1 and x2 according to matrix element. 
47       NTRY=0 
48   100 X1=RLU(0) 
49       X2=RLU(0) 
50       X3=2.-X1-X2 
51       IF(X3.GE.1..OR.((1.-X1)/(X2*X3))**2+((1.-X2)/(X1*X3))**2+ 
52      &((1.-X3)/(X1*X2))**2.LE.2.*RLU(0)) GOTO 100 
53       NTRY=NTRY+1 
54       NJET=3 
55       IF(MSTJ(101).LE.4) CALL LU3ENT(NC+1,21,21,21,ECM,X1,X3) 
56       IF(MSTJ(101).GE.5) CALL LU3ENT(-(NC+1),21,21,21,ECM,X1,X3) 
57  
58 C...Photon-gluon-gluon events. Small system modifications. Jet origin. 
59       MSTU(111)=MSTJ(108) 
60       IF(MSTJ(108).EQ.2.AND.(MSTJ(101).EQ.0.OR.MSTJ(101).EQ.1)) 
61      &MSTU(111)=1 
62       PARU(112)=PARJ(121) 
63       IF(MSTU(111).EQ.2) PARU(112)=PARJ(122) 
64       QF=0. 
65       IF(KFLC.NE.0) QF=KCHG(KFLC,1)/3. 
66       RGAM=7.2*QF**2*PARU(101)/ULALPS(ECM**2) 
67       MK=0 
68       ECMC=ECM 
69       IF(RLU(0).GT.RGAM/(1.+RGAM)) THEN 
70         IF(1.-MAX(X1,X2,X3).LE.MAX((PARJ(126)/ECM)**2,PARJ(125))) 
71      &  NJET=2 
72         IF(NJET.EQ.2.AND.MSTJ(101).LE.4) CALL LU2ENT(NC+1,21,21,ECM) 
73         IF(NJET.EQ.2.AND.MSTJ(101).GE.5) CALL LU2ENT(-(NC+1),21,21,ECM) 
74       ELSE 
75         MK=1 
76         ECMC=SQRT(1.-X1)*ECM 
77         IF(ECMC.LT.2.*PARJ(127)) GOTO 100 
78         K(NC+1,1)=1 
79         K(NC+1,2)=22 
80         K(NC+1,4)=0 
81         K(NC+1,5)=0 
82         IF(MSTJ(101).GE.5) K(NC+2,4)=MSTU(5)*(NC+3) 
83         IF(MSTJ(101).GE.5) K(NC+2,5)=MSTU(5)*(NC+3) 
84         IF(MSTJ(101).GE.5) K(NC+3,4)=MSTU(5)*(NC+2) 
85         IF(MSTJ(101).GE.5) K(NC+3,5)=MSTU(5)*(NC+2) 
86         NJET=2 
87         IF(ECMC.LT.4.*PARJ(127)) THEN 
88           MSTU10=MSTU(10) 
89           MSTU(10)=1 
90           P(NC+2,5)=ECMC 
91           CALL LU1ENT(NC+2,83,0.5*(X2+X3)*ECM,PARU(1),0.) 
92           MSTU(10)=MSTU10 
93           NJET=0 
94         ENDIF 
95       ENDIF 
96       DO 110 IP=NC+1,N 
97       K(IP,3)=K(IP,3)+(MSTJ(115)/2)+(KFLC/5)*(MSTJ(115)/3)*(NC-1) 
98   110 CONTINUE 
99  
100 C...Differential cross-sections. Upper limit for cross-section. 
101       IF(MSTJ(106).EQ.1) THEN 
102         SQ2=SQRT(2.) 
103         HF1=1.-PARJ(131)*PARJ(132) 
104         HF3=PARJ(133)**2 
105         CT13=(X1*X3-2.*X1-2.*X3+2.)/(X1*X3) 
106         ST13=SQRT(1.-CT13**2) 
107         SIGL=0.5*X3**2*((1.-X2)**2+(1.-X3)**2)*ST13**2 
108         SIGU=(X1*(1.-X1))**2+(X2*(1.-X2))**2+(X3*(1.-X3))**2-SIGL 
109         SIGT=0.5*SIGL 
110         SIGI=(SIGL*CT13/ST13+0.5*X1*X3*(1.-X2)**2*ST13)/SQ2 
111         SIGMAX=(2.*HF1+HF3)*ABS(SIGU)+2.*(HF1+HF3)*ABS(SIGL)+2.*(HF1+ 
112      &  2.*HF3)*ABS(SIGT)+2.*SQ2*(HF1+2.*HF3)*ABS(SIGI) 
113  
114 C...Angular orientation of event. 
115   120   CHI=PARU(2)*RLU(0) 
116         CTHE=2.*RLU(0)-1. 
117         PHI=PARU(2)*RLU(0) 
118         CCHI=COS(CHI) 
119         SCHI=SIN(CHI) 
120         C2CHI=COS(2.*CHI) 
121         S2CHI=SIN(2.*CHI) 
122         THE=ACOS(CTHE) 
123         STHE=SIN(THE) 
124         C2PHI=COS(2.*(PHI-PARJ(134))) 
125         S2PHI=SIN(2.*(PHI-PARJ(134))) 
126         SIG=((1.+CTHE**2)*HF1+STHE**2*C2PHI*HF3)*SIGU+2.*(STHE**2*HF1- 
127      &  STHE**2*C2PHI*HF3)*SIGL+2.*(STHE**2*C2CHI*HF1+((1.+CTHE**2)* 
128      &  C2CHI*C2PHI-2.*CTHE*S2CHI*S2PHI)*HF3)*SIGT-2.*SQ2*(2.*STHE*CTHE* 
129      &  CCHI*HF1-2.*STHE*(CTHE*CCHI*C2PHI-SCHI*S2PHI)*HF3)*SIGI 
130         IF(SIG.LT.SIGMAX*RLU(0)) GOTO 120 
131         CALL LUDBRB(NC+1,N,0.,CHI,0D0,0D0,0D0) 
132         CALL LUDBRB(NC+1,N,THE,PHI,0D0,0D0,0D0) 
133       ENDIF 
134  
135 C...Generate parton shower. Rearrange along strings and check. 
136       IF(MSTJ(101).GE.5.AND.NJET.GE.2) THEN 
137         CALL LUSHOW(NC+MK+1,-NJET,ECMC) 
138         MSTJ14=MSTJ(14) 
139         IF(MSTJ(105).EQ.-1) MSTJ(14)=-1 
140         IF(MSTJ(105).GE.0) MSTU(28)=0 
141         CALL LUPREP(0) 
142         MSTJ(14)=MSTJ14 
143         IF(MSTJ(105).GE.0.AND.MSTU(28).NE.0) GOTO 100 
144       ENDIF 
145  
146 C...Generate fragmentation. Information for LUTABU: 
147       IF(MSTJ(105).EQ.1) CALL LUEXEC 
148       MSTU(161)=110*KFLC+3 
149       MSTU(162)=0 
150  
151       RETURN 
152       END