/* Copyright (C) 1991-2012 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
. */
/* This header is separate from features.h so that the compiler can
include it implicitly at the start of every compilation. It must
not itself include or any other header that includes
because the implicit include comes before any feature
test macros that may be defined in a source file before it first
explicitly includes a system header. GCC knows the name of this
header in order to preinclude it. */
/* We do support the IEC 559 math functionality, real and complex. */
/* wchar_t uses ISO/IEC 10646 (2nd ed., published 2011-03-15) /
Unicode 6.0. */
/* We do not support C11 . */
REAL FUNCTION PKORB(IF1,IF2)
**********************************************************************
*
* This function returns a real value
* needed in the 1 version of KORALB/TAUOLA
* corresponding to a mass, width, mixing amplitude, or branching fraction
* depending on whether IF1 = 1, 2, 3, 4 respectively.
* The idea is to make minimal mods to the 3-rd party KORALB/TAUOLA code,
* so this function supplies all the 1-specific parameters.
*
* Alan Weinstein, ajw, 11/97
**********************************************************************
* Arguments:
INTEGER IF1 ! input, flag for type of data required
INTEGER IF2 ! input, flag for type of data required
* MC info
*#include "seq/clinc/qqpars.inc"
*#include "seq/clinc/qqprop.inc"
*#include "qqlib/seq/qqbrat.inc"
INTEGER JAK1,JAK2,JAKP,JAKM,KTOM
COMMON / JAKI / JAK1,JAK2,JAKP,JAKM,KTOM
REAL*4 RRR(1)
REAL PARM(4,100)
integer imixpp(300)
INTEGER INIT,I,J
REAL C1270,C1402,A1270_KSPI,A1270_KRHO,A1402_KSPI,A1402_KRHO
REAL CG1,CG2,R,BRA1,BRKS
SAVE INIT,PARM
DATA INIT/0/
**********************************************************************
* Initialize return variable:
PKORB = 0.
**********************************************************************
* Initialize:
IF (INIT.EQ.0) THEN
INIT = 1
C WARNING: Isospin symmetry enforced, cleo or babar were not enforcing it.
C Simplification to be used for precision tau decay simulations.
BRA1=0.0
BRKS=0.0
C CALL VZERO(PARM,400)
DO I=1,4
DO J=1,100
PARM(I,J) = 0
END DO
END DO
C Youd better be using korb.dec, NOT decay.dec!!!!
C masses (needed in dist/inimas, formf/form*, etc)
PARM(1, 1) = 1.777000 ! TAU
PARM(1, 2) = 0. ! NUTA
PARM(1, 3) = 0.000511 ! EL
PARM(1, 4) = 0. ! NUEL
PARM(1, 5) = 0.105658 ! MU
PARM(1, 6) = 0. ! NUMU
PARM(1, 7) = 0.134976 ! PIZ
PARM(1, 8) = 0.139570 ! PI+
PARM(1, 9) = 0.769900 ! RHO+
PARM(1,10) = 1.275000 ! A1+
PARM(1,11) = 0.493677 ! K+
PARM(1,12) = 0.497670 ! KZ
PARM(1,13) = 0.891590 ! K*+
PARM(1,14) = 0.781940 ! OMEG
PARM(1,15) = 1.370000 ! RHOP+
PARM(1,16) = 1.700000 ! K*P+
PARM(1,17) = 1.461000 ! A1P+
PARM(1,18) = 1.300000 ! PIP+
PARM(1,19) = 1.270000 ! K1A+
PARM(1,20) = 1.402000 ! K1B+
PARM(1,21) = 1.465000 ! RHOPP+
PARM(1,22) = 1.700000 ! RHOPPP+
C widths (needed in dist/inimas, formf/form*, etc)
PARM(2, 1) = 0. ! TAU
PARM(2, 2) = 0. ! NUTA
PARM(2, 3) = 0. ! EL
PARM(2, 4) = 0. ! NUEL
PARM(2, 5) = 0. ! MU
PARM(2, 6) = 0. ! NUMU
PARM(2, 7) = 0. ! PIZ
PARM(2, 8) = 0. ! PI+
PARM(2, 9) = 0.1512 ! RHO+
PARM(2,10) = 0.700 ! A1+
PARM(2,11) = 0. ! K+
PARM(2,12) = 0. ! KZ
PARM(2,13) = 0.0498 ! K*+
PARM(2,14) = 0.00843 ! OMEG
PARM(2,15) = 0.510 ! RHOP+
PARM(2,16) = 0.235 ! K*P+
PARM(2,17) = 0.250 ! A1P+
PARM(2,18) = 0.400 ! PIP+
PARM(2,19) = 0.090 ! K1A+
PARM(2,20) = 0.174 ! K1B+
PARM(2,21) = 0.310 ! RHOPP+
PARM(2,22) = 0.235 ! RHOPPP+
C Now store mixing parameters for 2pi and 4pi FFs
C needed in tauola/fpik, tauola/bwigs, formf/form* , formf/curr :
PARM(3,15) = -0.145
IMIXPP(205)=1
IMIXPP(207)=1
IMIXPP(209)=1
IMIXPP(211)=1
IMIXPP(201)=1
IMIXPP(203)=1
IMIXPP(213)=1
IMIXPP(215)=1
IF (IMIXPP(205).NE.0) PARM(3,15) = -0.110
IF (IMIXPP(207).NE.0) PARM(3,16) = -0.038
IF (IMIXPP(209).NE.0) PARM(3,17) = 0.00
IF (IMIXPP(211).NE.0) PARM(3,18) = 0.00
IF (IMIXPP(201).NE.0) PARM(3,19) = 1.0
IF (IMIXPP(203).NE.0) PARM(3,20) = 0.8
IF (IMIXPP(213).NE.0) PARM(3,21) = -0.110
IF (IMIXPP(215).NE.0) PARM(3,22) = -0.110
PRINT *,' KORB: rho/rhop -> pi-pi0 mixing:'
PRINT *,' KORB: rho =',PARM(1,9) ,PARM(2,9)
PRINT *,' KORB: rhop =',PARM(1,15),PARM(2,15),PARM(3,15)
PRINT *,' KORB: K*/K*prime -> Kpi mixing:'
PRINT *,' KORB: kstp =',PARM(1,16),PARM(2,16),PARM(3,16)
PRINT *,' KORB: a1/a1prime -> 3pi, KKpi mixing:'
PRINT *,' KORB: a1 =',PARM(1,10),PARM(2,10)
PRINT *,' KORB: a1prim=',PARM(1,17),PARM(2,17),PARM(3,17)
PRINT *,' KORB: K1A/K1B -> Kpipi mixing:'
PRINT *,' KORB: K1A =',PARM(1,19),PARM(2,19),PARM(3,19)
PRINT *,' KORB: K1B =',PARM(1,20),PARM(2,20),PARM(3,20)
PRINT *,' KORB: rho/rhop/rhopp -> 4pi mixing:'
PRINT *,' KORB: rho =',PARM(1,9) ,PARM(2,9)
PRINT *,' KORB: rhopp =',PARM(1,21),PARM(2,21),PARM(3,21)
PRINT *,' KORB: rhoppp=',PARM(1,22),PARM(2,22),PARM(3,22)
C amplitudes for curr_cleo.F:
C for (3pi)-pi0: 4pi phase space; rho0pi-pi0; rho-pi+pi-; rho+pi-pi-; pi-omega
PARM(3,31) = 0.
PARM(3,32) = 0.1242
PARM(3,33) = 0.1604
PARM(3,34) = 0.2711
PARM(3,35) = 0.4443
C for pi-3pi0: 4pi phase space; rho-pi0pi0
PARM(3,36) = 0.
PARM(3,37) = 1.0
C Modify amplitudes for 4pi form-factor in formf/curr, from korb.dec:
CCC IF (IPLIST(2,282).EQ.5) THEN
IPLIST=0
IF (IPLIST.EQ.5) THEN
PARM(3,31) = 0.0000
PARM(3,32) = 0.1242
PARM(3,33) = 0.1604
PARM(3,34) = 0.2711
PARM(3,35) = 0.4443
PARM(3,36) = 0.0000
PARM(3,37) = 1.0000
END IF
PRINT *,' KORB: 3PI-PI0 PARAMS:',(PARM(3,I),I=31,35)
PRINT *,' KORB: PI-3PI0 PARAMS:',(PARM(3,I),I=36,37)
C The 4pi models are the most complicated in TAUOLA.
C If the user has not modified any parameters of the 4pi model,
C we can use the WTMAX determined with many trials.
IF (ABS(PARM(3,31)-0.0000).GT.0.0001 .OR.
1 ABS(PARM(3,32)-0.1242).GT.0.0001 .OR.
1 ABS(PARM(3,33)-0.1604).GT.0.0001 .OR.
1 ABS(PARM(3,34)-0.2711).GT.0.0001 .OR.
1 ABS(PARM(3,35)-0.4443).GT.0.0001 ) THEN
PARM(3,38) = -1.
ELSE
PARM(3,38) = 6.9673671E-14
END IF
IF (ABS(PARM(3,36)-0.0000).GT.0.0001 .OR.
1 ABS(PARM(3,37)-1.0000).GT.0.0001 ) THEN
PARM(3,39) = -1.
ELSE
PARM(3,39) = 3.5374880E-13
END IF
C phases for curr_cleo.F:
PARM(3,42) = -0.40
PARM(3,43) = 0.00
PARM(3,44) = -0.20+3.1416
PARM(3,45) = -1.50
C rho' contributions to rho' -> pi-omega:
PARM(3,51) = -0.10
PARM(3,52) = 1.00
PARM(3,53) = -0.10
PARM(3,54) = -0.04
C rho' contribtions to rho' -> rhopipi:
PARM(3,55) = 1.00
PARM(3,56) = 0.14
PARM(3,57) = -0.05
PARM(3,58) = -0.05
C rho contributions to rhopipi, rho -> 2pi:
PARM(3,59) = 1.000
PARM(3,60) = -0.145
PARM(3,61) = 0.000
C Set the BRs for (A1+ -> rho+ pi0) and (K*+ -> K0 pi+)
C needed in dist/taurdf:
PARM(4,1) = 0.4920 ! BRA1+
PARM(4,2) = 0.4920 ! BRA1-
PARM(4,3) = 0.6660 ! BRKS+
PARM(4,4) = 0.6660 ! BRKS-
PARM(4,5) = 0.5 ! BRK0
PARM(4,6) = 0.5 ! BRK0B
C amplitude coefficients for tau -> K1(1270) / K1(1402)
C1270 = PARM(3,19)
C1402 = PARM(3,20)
IF (C1270.EQ.0.AND.C1402.EQ.0.) THEN
C1270 = 1.
C1402 = 0.6
END IF
C From PDG96, square roots of branching fractions:
A1270_KSPI = SQRT(0.16)
A1270_KRHO = SQRT(0.42)
A1402_KSPI = SQRT(0.94)
A1402_KRHO = SQRT(0.03)
C C-G coefficients for K1- -> CG1 * |K- pi0> + CG2 * |K0bar pi->
CG1 = -SQRT(2./3.)
CG2 = SQRT(1./3.)
C and the resulting amplitudes (times normalized FF):
PARM(3,81) = C1270*A1270_KSPI*CG1 ! K1270 -> K*0B pi-
PARM(3,82) = C1402*A1402_KSPI*CG1 ! K1402 -> K*0B pi-
PARM(3,83) = C1270*A1270_KRHO*CG1 ! K1270 -> K0B rho-
PARM(3,84) = C1402*A1402_KRHO*CG1 ! K1402 -> K0B rho-
PARM(3,85) = C1270*A1270_KSPI*CG2 ! K1270 -> K*- pi0
PARM(3,86) = C1402*A1402_KSPI*CG2 ! K1402 -> K*- pi0
PARM(3,87) = C1270*A1270_KRHO*CG2 ! K1270 -> K- rho0
PARM(3,88) = C1402*A1402_KRHO*CG2 ! K1402 -> K- rho0
END IF
**********************************************************************
R = 0.
IF (IF1.GE.1 .AND. IF1.LE.4 .AND. IF2.GE.1 .AND. IF2.LE.100) THEN
R = PARM(IF1,IF2)
CAJW 4/4/94 Better to decide on A1 br now, avoid DADMAA/DPHSAA problem.
IF (IF1.EQ.4.AND.JAK1.EQ.5) THEN
IF (IF2.EQ.11) THEN
C Return the BR used in the last call:
R = BRA1
ELSE IF (IF2.EQ.1) THEN
BRA1 = R
CALL RANMAR(RRR,1)
IF (RRR(1).LT.BRA1) THEN
R = 1. ! 3pi
ELSE
R = 0. ! pi-2pi0
END IF
BRA1 = R
END IF
ELSEIF (IF1.EQ.4.AND.JAK1.EQ.7) THEN
IF (IF2.EQ.13) THEN
C Return the BR used in the last call:
R = BRKS
ELSE IF (IF2.EQ.3) THEN
BRKS = R
CALL RANMAR(RRR,1)
IF (RRR(1).LT.BRKS) THEN
R = 1. ! K0 pi-
ELSE
R = 0. ! K- pi0
END IF
BRKS = R
END IF
END IF
END IF
PKORB = R
RETURN
END