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