1 /* copyright(c) 1991-2012 free software foundation, inc.
2 this file is part of the gnu c library.
4 the gnu c library is free software; you can redistribute it and/or
5 modify it under the terms of the gnu lesser general
Public
6 license as published by the free software foundation; either
7 version 2.1 of the license, or(at your option) any later version.
9 the gnu c library is distributed in the hope that it will be useful,
10 but without any warranty; without even the implied warranty of
11 merchantability or fitness for a particular purpose. see the gnu
12 lesser general
Public license for more details.
14 you should have received a copy of the gnu lesser general
Public
15 license along with the gnu c library;
if not, see
16 <http://www.gnu.org/licenses/>. */
19 /* this header is separate from features.h so that the compiler can
20 include it implicitly at the start of every compilation. it must
21 not itself include <features.h> or any other header that includes
22 <features.h> because the
implicit include comes before any feature
23 test macros that may be defined in a source file before it first
24 explicitly includes a system header. gcc knows the name of this
25 header in order to preinclude it. */
27 /* we
do support the iec 559 math functionality,
real and complex. */
29 /* wchar_t uses iso/iec 10646 (2nd ed., published 2011-03-15) /
32 /* we
do not support c11 <threads.h>. */
34 REAL FUNCTION pkorb(IF1,IF2)
35 **********************************************************************
37 * this
function returns a real value
38 * needed in the 1 version of koralb/tauola
39 * corresponding to a mass, width, mixing amplitude, or branching fraction
40 * depending on whether if1 = 1, 2, 3, 4 respectively.
41 * the idea is to make minimal mods to the 3-rd party koralb/tauola code,
42 * so this
function supplies all the 1-specific parameters.
44 * alan weinstein, ajw, 11/97
45 **********************************************************************
52 *
#include "seq/clinc/qqpars.inc"
53 *
#include "seq/clinc/qqprop.inc"
54 *
#include "qqlib/seq/qqbrat.inc"
56 INTEGER jak1,jak2,jakp,jakm,ktom
57 COMMON / jaki / jak1,jak2,jakp,jakm,ktom
62 REAL c1270,c1402,a1270_kspi,a1270_krho,a1402_kspi,a1402_krho
63 REAL cg1,cg2,r,bra1,brks
67 **********************************************************************
68 * initialize
return variable:
71 **********************************************************************
76 c warning: isospin symmetry enforced, cleo or babar were not enforcing it.
77 c simplification to be used for precision tau decay simulations.
81 c CALL vzero(parm,400)
88 c youd better be using korb.dec, not decay.dec
89 c masses(needed in dist/inimas, formf/form*, etc)
100 parm(1,11) = 0.493677
101 parm(1,12) = 0.497670
102 parm(1,13) = 0.891590
103 parm(1,14) = 0.781940
104 parm(1,15) = 1.370000
105 parm(1,16) = 1.700000
106 parm(1,17) = 1.461000
107 parm(1,18) = 1.300000
108 parm(1,19) = 1.270000
109 parm(1,20) = 1.402000
110 parm(1,21) = 1.465000
111 parm(1,22) = 1.700000
113 c widths(needed in dist/inimas, formf/form*, etc)
137 c now store mixing parameters for 2pi and 4pi ffs
138 c needed in tauola/fpik, tauola/bwigs, formf/form* , formf/curr :
152 IF (imixpp(205).NE.0) parm(3,15) = -0.110
153 IF (imixpp(207).NE.0) parm(3,16) = -0.038
154 IF (imixpp(209).NE.0) parm(3,17) = 0.00
155 IF (imixpp(211).NE.0) parm(3,18) = 0.00
156 IF (imixpp(201).NE.0) parm(3,19) = 1.0
157 IF (imixpp(203).NE.0) parm(3,20) = 0.8
158 IF (imixpp(213).NE.0) parm(3,21) = -0.110
159 IF (imixpp(215).NE.0) parm(3,22) = -0.110
161 print *,
' KORB: rho/rhop -> pi-pi0 mixing:'
162 print *,
' KORB: rho =',parm(1,9) ,parm(2,9)
163 print *,
' KORB: rhop =',parm(1,15),parm(2,15),parm(3,15)
164 print *,
' KORB: K*/K*prime -> Kpi mixing:'
165 print *,
' KORB: kstp =',parm(1,16),parm(2,16),parm(3,16)
166 print *,
' KORB: a1/a1prime -> 3pi, KKpi mixing:'
167 print *,
' KORB: a1 =',parm(1,10),parm(2,10)
168 print *,
' KORB: a1prim=',parm(1,17),parm(2,17),parm(3,17)
169 print *,
' KORB: K1A/K1B -> Kpipi mixing:'
170 print *,
' KORB: K1A =',parm(1,19),parm(2,19),parm(3,19)
171 print *,
' KORB: K1B =',parm(1,20),parm(2,20),parm(3,20)
172 print *,
' KORB: rho/rhop/rhopp -> 4pi mixing:'
173 print *,
' KORB: rho =',parm(1,9) ,parm(2,9)
174 print *,
' KORB: rhopp =',parm(1,21),parm(2,21),parm(3,21)
175 print *,
' KORB: rhoppp=',parm(1,22),parm(2,22),parm(3,22)
177 c amplitudes for curr_cleo.f:
178 c for(3pi)-pi0: 4pi phase space; rho0pi-pi0; rho-pi+pi-; rho+pi-pi-; pi-omega
184 c for pi-3pi0: 4pi phase space; rho-pi0pi0
188 c modify amplitudes for 4pi form-factor in formf/curr, from korb.dec:
189 ccc
IF (iplist(2,282).EQ.5)
THEN
191 IF (iplist.EQ.5)
THEN
201 print *,
' KORB: 3PI-PI0 PARAMS:',(parm(3,i),i=31,35)
202 print *,
' KORB: PI-3PI0 PARAMS:',(parm(3,i),i=36,37)
204 c the 4pi models are the most complicated in tauola.
205 c
If the user has not modified any parameters of the 4pi model,
206 c we can
use the wtmax determined with many trials.
207 IF (abs(parm(3,31)-0.0000).GT.0.0001 .OR.
208 1 abs(parm(3,32)-0.1242).GT.0.0001 .OR.
209 1 abs(parm(3,33)-0.1604).GT.0.0001 .OR.
210 1 abs(parm(3,34)-0.2711).GT.0.0001 .OR.
211 1 abs(parm(3,35)-0.4443).GT.0.0001 )
THEN
214 parm(3,38) = 6.9673671e-14
217 IF (abs(parm(3,36)-0.0000).GT.0.0001 .OR.
218 1 abs(parm(3,37)-1.0000).GT.0.0001 )
THEN
221 parm(3,39) = 3.5374880e-13
225 c phases for curr_cleo.f:
228 parm(3,44) = -0.20+3.1416
231 c rho
' contributions to rho' -> pi-omega:
237 c rho
' contribtions to rho' -> rhopipi:
243 c rho contributions to rhopipi, rho -> 2pi:
248 c set the brs for(a1+ -> rho+ pi0) and(k*+ -> k0 pi+)
249 c needed in dist/taurdf:
257 c amplitude coefficients for tau -> k1(1270) / k1(1402)
260 IF (c1270.EQ.0.AND.c1402.EQ.0.)
THEN
264 c from pdg96, square roots of branching fractions:
265 a1270_kspi = sqrt(0.16)
266 a1270_krho = sqrt(0.42)
267 a1402_kspi = sqrt(0.94)
268 a1402_krho = sqrt(0.03)
269 c c-g coefficients for k1- -> cg1 * |k- pi0> + cg2 * |k0bar pi->
272 c and the resulting amplitudes(times normalized ff):
273 parm(3,81) = c1270*a1270_kspi*cg1
274 parm(3,82) = c1402*a1402_kspi*cg1
275 parm(3,83) = c1270*a1270_krho*cg1
276 parm(3,84) = c1402*a1402_krho*cg1
277 parm(3,85) = c1270*a1270_kspi*cg2
278 parm(3,86) = c1402*a1402_kspi*cg2
279 parm(3,87) = c1270*a1270_krho*cg2
280 parm(3,88) = c1402*a1402_krho*cg2
283 **********************************************************************
286 IF (if1.GE.1 .AND. if1.LE.4 .AND. if2.GE.1 .AND. if2.LE.100)
THEN
289 cajw 4/4/94 better to decide on a1 br now, avoid dadmaa/dphsaa problem.
290 IF (if1.EQ.4.AND.jak1.EQ.5)
THEN
292 c
Return the br used in the last call:
294 ELSE IF (if2.EQ.1)
THEN
297 IF (rrr(1).LT.bra1)
THEN
304 ELSEIF (if1.EQ.4.AND.jak1.EQ.7)
THEN
306 c
Return the br used in the last call:
308 ELSE IF (if2.EQ.3)
THEN
311 IF (rrr(1).LT.brks)
THEN