C++InterfacetoTauola
tauola-F/pkorb.F
1  REAL FUNCTION pkorb(IF1,IF2)
2 **********************************************************************
3 *
4 * This function returns a real value
5 * needed in the CLEO version of KORALB/TAUOLA
6 * corresponding to a mass, width, mixing amplitude, or branching fraction
7 * depending on whether IF1 = 1, 2, 3, 4 respectively.
8 * The idea is to make minimal mods to the 3-rd party KORALB/TAUOLA code,
9 * so this function supplies all the CLEO-specific parameters.
10 *
11 * Alan Weinstein, ajw, 11/97
12 **********************************************************************
13 
14 * Arguments:
15  INTEGER IF1 ! input, flag for type of data required
16  INTEGER IF2 ! input, flag for type of data required
17 
18 * MC info
19 *#include "seq/clinc/qqpars.inc"
20 *#include "seq/clinc/qqprop.inc"
21 *#include "qqlib/seq/qqbrat.inc"
22 
23  INTEGER JAK1,JAK2,JAKP,JAKM,KTOM
24  COMMON / jaki / jak1,jak2,jakp,jakm,ktom
25  REAL*4 RRR(1)
26  REAL PARM(4,100)
27  integer imixpp(300)
28  INTEGER INIT,I,J
29  REAL C1270,C1402,A1270_KSPI,A1270_KRHO,A1402_KSPI,A1402_KRHO
30  REAL CG1,CG2,R,BRA1,BRKS
31  SAVE init,parm
32  DATA init/0/
33 
34 **********************************************************************
35 * Initialize return variable:
36  pkorb = 0.
37 
38 **********************************************************************
39 * Initialize:
40  IF (init.EQ.0) THEN
41  init = 1
42 
43 C WARNING: Isospin symmetry enforced, cleo or babar were not enforcing it.
44 C Simplification to be used for precision tau decay simulations.
45  bra1=0.0
46  brks=0.0
47 
48 C CALL VZERO(PARM,400)
49  DO i=1,4
50  DO j=1,100
51  parm(i,j) = 0
52  END DO
53  END DO
54 
55 C Youd better be using korb.dec, NOT decay.dec!!!!
56 C masses (needed in dist/inimas, formf/form*, etc)
57  parm(1, 1) = 1.777000 ! TAU
58  parm(1, 2) = 0. ! NUTA
59  parm(1, 3) = 0.000511 ! EL
60  parm(1, 4) = 0. ! NUEL
61  parm(1, 5) = 0.105658 ! MU
62  parm(1, 6) = 0. ! NUMU
63  parm(1, 7) = 0.134976 ! PIZ
64  parm(1, 8) = 0.139570 ! PI+
65  parm(1, 9) = 0.769900 ! RHO+
66  parm(1,10) = 1.275000 ! A1+
67  parm(1,11) = 0.493677 ! K+
68  parm(1,12) = 0.497670 ! KZ
69  parm(1,13) = 0.891590 ! K*+
70  parm(1,14) = 0.781940 ! OMEG
71  parm(1,15) = 1.370000 ! RHOP+
72  parm(1,16) = 1.700000 ! K*P+
73  parm(1,17) = 1.461000 ! A1P+
74  parm(1,18) = 1.300000 ! PIP+
75  parm(1,19) = 1.270000 ! K1A+
76  parm(1,20) = 1.402000 ! K1B+
77  parm(1,21) = 1.465000 ! RHOPP+
78  parm(1,22) = 1.700000 ! RHOPPP+
79 
80 C widths (needed in dist/inimas, formf/form*, etc)
81  parm(2, 1) = 0. ! TAU
82  parm(2, 2) = 0. ! NUTA
83  parm(2, 3) = 0. ! EL
84  parm(2, 4) = 0. ! NUEL
85  parm(2, 5) = 0. ! MU
86  parm(2, 6) = 0. ! NUMU
87  parm(2, 7) = 0. ! PIZ
88  parm(2, 8) = 0. ! PI+
89  parm(2, 9) = 0.1512 ! RHO+
90  parm(2,10) = 0.700 ! A1+
91  parm(2,11) = 0. ! K+
92  parm(2,12) = 0. ! KZ
93  parm(2,13) = 0.0498 ! K*+
94  parm(2,14) = 0.00843 ! OMEG
95  parm(2,15) = 0.510 ! RHOP+
96  parm(2,16) = 0.235 ! K*P+
97  parm(2,17) = 0.250 ! A1P+
98  parm(2,18) = 0.400 ! PIP+
99  parm(2,19) = 0.090 ! K1A+
100  parm(2,20) = 0.174 ! K1B+
101  parm(2,21) = 0.310 ! RHOPP+
102  parm(2,22) = 0.235 ! RHOPPP+
103 
104 C Now store mixing parameters for 2pi and 4pi FFs
105 C needed in tauola/fpik, tauola/bwigs, formf/form* , formf/curr :
106 
107  parm(3,15) = -0.145
108 
109  imixpp(205)=1
110  imixpp(207)=1
111  imixpp(209)=1
112  imixpp(211)=1
113  imixpp(201)=1
114  imixpp(203)=1
115  imixpp(213)=1
116  imixpp(215)=1
117 
118 
119  IF (imixpp(205).NE.0) parm(3,15) = -0.110
120  IF (imixpp(207).NE.0) parm(3,16) = -0.038
121  IF (imixpp(209).NE.0) parm(3,17) = 0.00
122  IF (imixpp(211).NE.0) parm(3,18) = 0.00
123  IF (imixpp(201).NE.0) parm(3,19) = 1.0
124  IF (imixpp(203).NE.0) parm(3,20) = 0.8
125  IF (imixpp(213).NE.0) parm(3,21) = -0.110
126  IF (imixpp(215).NE.0) parm(3,22) = -0.110
127 
128  print *,' KORB: rho/rhop -> pi-pi0 mixing:'
129  print *,' KORB: rho =',parm(1,9) ,parm(2,9)
130  print *,' KORB: rhop =',parm(1,15),parm(2,15),parm(3,15)
131  print *,' KORB: K*/K*prime -> Kpi mixing:'
132  print *,' KORB: kstp =',parm(1,16),parm(2,16),parm(3,16)
133  print *,' KORB: a1/a1prime -> 3pi, KKpi mixing:'
134  print *,' KORB: a1 =',parm(1,10),parm(2,10)
135  print *,' KORB: a1prim=',parm(1,17),parm(2,17),parm(3,17)
136  print *,' KORB: K1A/K1B -> Kpipi mixing:'
137  print *,' KORB: K1A =',parm(1,19),parm(2,19),parm(3,19)
138  print *,' KORB: K1B =',parm(1,20),parm(2,20),parm(3,20)
139  print *,' KORB: rho/rhop/rhopp -> 4pi mixing:'
140  print *,' KORB: rho =',parm(1,9) ,parm(2,9)
141  print *,' KORB: rhopp =',parm(1,21),parm(2,21),parm(3,21)
142  print *,' KORB: rhoppp=',parm(1,22),parm(2,22),parm(3,22)
143 
144 C amplitudes for curr_cleo.F:
145 C for (3pi)-pi0: 4pi phase space; rho0pi-pi0; rho-pi+pi-; rho+pi-pi-; pi-omega
146  parm(3,31) = 0.
147  parm(3,32) = 0.1242
148  parm(3,33) = 0.1604
149  parm(3,34) = 0.2711
150  parm(3,35) = 0.4443
151 C for pi-3pi0: 4pi phase space; rho-pi0pi0
152  parm(3,36) = 0.
153  parm(3,37) = 1.0
154 
155 C Modify amplitudes for 4pi form-factor in formf/curr, from korb.dec:
156 CCC IF (IPLIST(2,282).EQ.5) THEN
157  iplist=0
158  IF (iplist.EQ.5) THEN
159  parm(3,31) = 0.0000
160  parm(3,32) = 0.1242
161  parm(3,33) = 0.1604
162  parm(3,34) = 0.2711
163  parm(3,35) = 0.4443
164  parm(3,36) = 0.0000
165  parm(3,37) = 1.0000
166  END IF
167 
168  print *,' KORB: 3PI-PI0 PARAMS:',(parm(3,i),i=31,35)
169  print *,' KORB: PI-3PI0 PARAMS:',(parm(3,i),i=36,37)
170 
171 C The 4pi models are the most complicated in TAUOLA.
172 C If the user has not modified any parameters of the 4pi model,
173 C we can use the WTMAX determined with many trials.
174  IF (abs(parm(3,31)-0.0000).GT.0.0001 .OR.
175  1 abs(parm(3,32)-0.1242).GT.0.0001 .OR.
176  1 abs(parm(3,33)-0.1604).GT.0.0001 .OR.
177  1 abs(parm(3,34)-0.2711).GT.0.0001 .OR.
178  1 abs(parm(3,35)-0.4443).GT.0.0001 ) THEN
179  parm(3,38) = -1.
180  ELSE
181  parm(3,38) = 6.9673671e-14
182  END IF
183 
184  IF (abs(parm(3,36)-0.0000).GT.0.0001 .OR.
185  1 abs(parm(3,37)-1.0000).GT.0.0001 ) THEN
186  parm(3,39) = -1.
187  ELSE
188  parm(3,39) = 3.5374880e-13
189  END IF
190 
191 
192 C phases for curr_cleo.F:
193  parm(3,42) = -0.40
194  parm(3,43) = 0.00
195  parm(3,44) = -0.20+3.1416
196  parm(3,45) = -1.50
197 
198 C rho' contributions to rho' -> pi-omega:
199  parm(3,51) = -0.10
200  parm(3,52) = 1.00
201  parm(3,53) = -0.10
202  parm(3,54) = -0.04
203 
204 C rho' contribtions to rho' -> rhopipi:
205  parm(3,55) = 1.00
206  parm(3,56) = 0.14
207  parm(3,57) = -0.05
208  parm(3,58) = -0.05
209 
210 C rho contributions to rhopipi, rho -> 2pi:
211  parm(3,59) = 1.000
212  parm(3,60) = -0.145
213  parm(3,61) = 0.000
214 
215 C Set the BRs for (A1+ -> rho+ pi0) and (K*+ -> K0 pi+)
216 C needed in dist/taurdf:
217  parm(4,1) = 0.4920 ! BRA1+
218  parm(4,2) = 0.4920 ! BRA1-
219  parm(4,3) = 0.6660 ! BRKS+
220  parm(4,4) = 0.6660 ! BRKS-
221  parm(4,5) = 0.5 ! BRK0
222  parm(4,6) = 0.5 ! BRK0B
223 
224 C amplitude coefficients for tau -> K1(1270) / K1(1402)
225  c1270 = parm(3,19)
226  c1402 = parm(3,20)
227  IF (c1270.EQ.0.AND.c1402.EQ.0.) THEN
228  c1270 = 1.
229  c1402 = 0.6
230  END IF
231 C From PDG96, square roots of branching fractions:
232  a1270_kspi = sqrt(0.16)
233  a1270_krho = sqrt(0.42)
234  a1402_kspi = sqrt(0.94)
235  a1402_krho = sqrt(0.03)
236 C C-G coefficients for K1- -> CG1 * |K- pi0> + CG2 * |K0bar pi->
237  cg1 = -sqrt(2./3.)
238  cg2 = sqrt(1./3.)
239 C and the resulting amplitudes (times normalized FF):
240  parm(3,81) = c1270*a1270_kspi*cg1 ! K1270 -> K*0B pi-
241  parm(3,82) = c1402*a1402_kspi*cg1 ! K1402 -> K*0B pi-
242  parm(3,83) = c1270*a1270_krho*cg1 ! K1270 -> K0B rho-
243  parm(3,84) = c1402*a1402_krho*cg1 ! K1402 -> K0B rho-
244  parm(3,85) = c1270*a1270_kspi*cg2 ! K1270 -> K*- pi0
245  parm(3,86) = c1402*a1402_kspi*cg2 ! K1402 -> K*- pi0
246  parm(3,87) = c1270*a1270_krho*cg2 ! K1270 -> K- rho0
247  parm(3,88) = c1402*a1402_krho*cg2 ! K1402 -> K- rho0
248 
249  END IF
250 **********************************************************************
251 
252  r = 0.
253  IF (if1.GE.1 .AND. if1.LE.4 .AND. if2.GE.1 .AND. if2.LE.100) THEN
254  r = parm(if1,if2)
255 
256 CAJW 4/4/94 Better to decide on A1 br now, avoid DADMAA/DPHSAA problem.
257  IF (if1.EQ.4.AND.jak1.EQ.5) THEN
258  IF (if2.EQ.11) THEN
259 C Return the BR used in the last call:
260  r = bra1
261  ELSE IF (if2.EQ.1) THEN
262  bra1 = r
263  CALL ranmar(rrr,1)
264  IF (rrr(1).LT.bra1) THEN
265  r = 1. ! 3pi
266  ELSE
267  r = 0. ! pi-2pi0
268  END IF
269  bra1 = r
270  END IF
271  ELSEIF (if1.EQ.4.AND.jak1.EQ.7) THEN
272  IF (if2.EQ.13) THEN
273 C Return the BR used in the last call:
274  r = brks
275  ELSE IF (if2.EQ.3) THEN
276  brks = r
277  CALL ranmar(rrr,1)
278  IF (rrr(1).LT.brks) THEN
279  r = 1. ! K0 pi-
280  ELSE
281  r = 0. ! K- pi0
282  END IF
283  brks = r
284  END IF
285  END IF
286 
287  END IF
288 
289  pkorb = r
290  RETURN
291  END