Page MenuHomeHEPForge

EvtISGW2FF.cpp
No OneTemporary

Size
46 KB
Referenced Files
None
Subscribers
None

EvtISGW2FF.cpp

//--------------------------------------------------------------------------
//
// Environment:
// This software is part of the EvtGen package developed jointly
// for the BaBar and CLEO collaborations. If you use all or part
// of it, please give an appropriate acknowledgement.
//
// Copyright Information: See EvtGen/COPYRIGHT
// Copyright (C) 1998 Caltech, UCSB
//
// Module: EvtISGW2FF.cc
//
// Description: Routine to implement semileptonic form factors
// according to the model ISGW2
//
// Modification history:
//
// DJL April 17, 1998 Module created
//
//------------------------------------------------------------------------
//
#include "EvtGenBase/EvtPatches.hh"
#include "EvtGenBase/EvtPatches.hh"
#include "EvtGenBase/EvtReport.hh"
#include "EvtGenModels/EvtISGW2FF.hh"
#include "EvtGenBase/EvtPDL.hh"
#include "EvtGenBase/EvtId.hh"
#include "EvtGenBase/EvtIdSet.hh"
#include "EvtGenBase/EvtConst.hh"
#include <string>
#include <math.h>
#include <stdlib.h>
using std::endl;
void EvtISGW2FF::getscalarff(EvtId parent,EvtId daught,
double t, double mass, double *fpf,
double *f0f ) {
//added by Lange Jan4,2000
static EvtId D0=EvtPDL::getId("D0");
static EvtId D0B=EvtPDL::getId("anti-D0");
static EvtId DP=EvtPDL::getId("D+");
static EvtId DM=EvtPDL::getId("D-");
static EvtId D3P0P=EvtPDL::getId("D_0*+");
static EvtId D3P0N=EvtPDL::getId("D_0*-");
static EvtId D3P00=EvtPDL::getId("D_0*0");
static EvtId D3P0B=EvtPDL::getId("anti-D_0*0");
static EvtId D21S0P=EvtPDL::getId("D(2S)+");
static EvtId D21S0N=EvtPDL::getId("D(2S)-");
static EvtId D21S00=EvtPDL::getId("D(2S)0");
static EvtId D21S0B=EvtPDL::getId("anti-D(2S)0");
static EvtId ETA2S=EvtPDL::getId("eta(2S)");
static EvtId PI2S0=EvtPDL::getId("pi(2S)0");
static EvtId PI2SP=EvtPDL::getId("pi(2S)+");
static EvtId PI2SM=EvtPDL::getId("pi(2S)-");
static EvtId PIP=EvtPDL::getId("pi+");
static EvtId PIM=EvtPDL::getId("pi-");
static EvtId PI0=EvtPDL::getId("pi0");
static EvtId A0P=EvtPDL::getId("a_0+");
static EvtId A0M=EvtPDL::getId("a_0-");
static EvtId A00=EvtPDL::getId("a_00");
static EvtId F0=EvtPDL::getId("f_0");
static EvtId F0PR=EvtPDL::getId("f'_0");
static EvtId ETA=EvtPDL::getId("eta");
static EvtId ETAPR=EvtPDL::getId("eta'");
static EvtId KP=EvtPDL::getId("K+");
static EvtId KM=EvtPDL::getId("K-");
static EvtId K0=EvtPDL::getId("K0");
static EvtId KB=EvtPDL::getId("anti-K0");
static EvtId K0S=EvtPDL::getId("K_S0");
static EvtId K0L=EvtPDL::getId("K_L0");
static EvtId K0STP=EvtPDL::getId("K_0*+");
static EvtId K0STM=EvtPDL::getId("K_0*-");
static EvtId K0ST0=EvtPDL::getId("K_0*0");
static EvtId K0STB=EvtPDL::getId("anti-K_0*0");
static EvtId DSP=EvtPDL::getId("D_s+");
static EvtId DSM=EvtPDL::getId("D_s-");
static EvtId D3P0SP=EvtPDL::getId("D_s0*+");
static EvtId D3P0SN=EvtPDL::getId("D_s0*-");
double fmf;
double mb=EvtPDL::getMeanMass(parent);
if (daught==PI0||daught==PIP||daught==PIM||daught==ETA||
daught==ETAPR||daught==D0||daught==D0B||daught==DP||
daught==DM||daught==KP||daught==KM||daught==K0||daught==K0S||
daught==K0L||daught==KB||daught==DSP||daught==DSM) {
EvtISGW2FF1S0(parent,daught,t,mass,fpf,&fmf);
}
if (daught==PI2S0||daught==PI2SP||daught==PI2SM||daught==ETA2S||
daught==D21S0P||daught==D21S0B||daught==D21S0N||daught==D21S00){
EvtISGW2FF21S0(parent,daught,t,mass,fpf,&fmf);
}
if (daught==A00||daught==A0P||daught==A0M||daught==F0||
daught==F0PR||daught==D3P0P||daught==D3P00||daught==D3P0B||
daught==D3P0N||daught==K0STM||daught==K0STB||daught==K0STP||
daught==D3P0SP||daught==D3P0SN||
daught==K0ST0) {
EvtISGW2FF3P0(parent,daught,t,mass,fpf,&fmf);
}
*f0f = (fmf/((mb*mb-mass*mass)/t))+(*fpf);
return ;
}
void EvtISGW2FF::gettensorff(EvtId parent,EvtId daught,
double t, double mass, double *hf,
double *kf, double *bpf, double *bmf ){
//added by Lange Jan4,2000
EvtISGW2FF3P2(parent,daught,t,mass,hf,kf,bpf,bmf);
return;
}
void EvtISGW2FF::getvectorff(EvtId parent,EvtId daught,
double t, double mass, double *a1f,
double *a2f, double *vf, double *a0f ){
double ff,gf,apf,amf;
//added by Lange Jan4,2000
static EvtId DST0=EvtPDL::getId("D*0");
static EvtId DSTB=EvtPDL::getId("anti-D*0");
static EvtId DSTP=EvtPDL::getId("D*+");
static EvtId DSTM=EvtPDL::getId("D*-");
static EvtId D1P1P=EvtPDL::getId("D_1+");
static EvtId D1P1N=EvtPDL::getId("D_1-");
static EvtId D1P10=EvtPDL::getId("D_10");
static EvtId D1P1B=EvtPDL::getId("anti-D_10");
static EvtId D3P1P=EvtPDL::getId("D'_1+");
static EvtId D3P1N=EvtPDL::getId("D'_1-");
static EvtId D3P10=EvtPDL::getId("D'_10");
static EvtId D3P1B=EvtPDL::getId("anti-D'_10");
static EvtId D23S1P=EvtPDL::getId("D*(2S)+");
static EvtId D23S1N=EvtPDL::getId("D*(2S)-");
static EvtId D23S10=EvtPDL::getId("D*(2S)0");
static EvtId D23S1B=EvtPDL::getId("anti-D*(2S)0");
static EvtId RHO2S0=EvtPDL::getId("rho(2S)0");
static EvtId RHO2SP=EvtPDL::getId("rho(2S)+");
static EvtId RHO2SM=EvtPDL::getId("rho(2S)-");
static EvtId OMEG2S=EvtPDL::getId("omega(2S)");
static EvtId RHOP=EvtPDL::getId("rho+");
static EvtId RHOM=EvtPDL::getId("rho-");
static EvtId RHO0=EvtPDL::getId("rho0");
static EvtId A1P=EvtPDL::getId("a_1+");
static EvtId A1M=EvtPDL::getId("a_1-");
static EvtId A10=EvtPDL::getId("a_10");
static EvtId B1P=EvtPDL::getId("b_1+");
static EvtId B1M=EvtPDL::getId("b_1-");
static EvtId B10=EvtPDL::getId("b_10");
static EvtId H1=EvtPDL::getId("h_1");
static EvtId H1PR=EvtPDL::getId("h'_1");
static EvtId F1=EvtPDL::getId("f_1");
static EvtId F1PR=EvtPDL::getId("f'_1");
static EvtId OMEG=EvtPDL::getId("omega");
static EvtId KSTP=EvtPDL::getId("K*+");
static EvtId KSTM=EvtPDL::getId("K*-");
static EvtId KST0=EvtPDL::getId("K*0");
static EvtId KSTB=EvtPDL::getId("anti-K*0");
static EvtId K1P=EvtPDL::getId("K_1+");
static EvtId K1M=EvtPDL::getId("K_1-");
static EvtId K10=EvtPDL::getId("K_10");
static EvtId K1B=EvtPDL::getId("anti-K_10");
static EvtId K1STP=EvtPDL::getId("K'_1+");
static EvtId K1STM=EvtPDL::getId("K'_1-");
static EvtId K1ST0=EvtPDL::getId("K'_10");
static EvtId K1STB=EvtPDL::getId("anti-K'_10");
static EvtId PHI=EvtPDL::getId("phi");
static EvtId D1P1SP=EvtPDL::getId("D_s1+");
static EvtId D1P1SN=EvtPDL::getId("D_s1-");
static EvtId D3P1SP=EvtPDL::getId("D'_s1+");
static EvtId D3P1SN=EvtPDL::getId("D'_s1-");
static EvtId DSSTP=EvtPDL::getId("D_s*+");
static EvtId DSSTM=EvtPDL::getId("D_s*-");
if (daught==DST0||daught==DSTP||daught==DSTM||daught==DSTB||
daught==OMEG||daught==RHO0||daught==RHOM||daught==RHOP||
daught==KSTP||daught==KSTM||daught==KST0||daught==KSTB||
daught==PHI||daught==DSSTP||daught==DSSTM) {
EvtISGW2FF3S1(parent,daught,t,mass,&ff,&gf,&apf,&amf);
}
if (daught==B10||daught==B1P||daught==B1M||daught==H1||
daught==H1PR||daught==D1P1P||daught==D1P10||daught==D1P1B||
daught==D1P1SP||daught==D1P1SN||
daught==D1P1N||daught==K10||daught==K1B||daught==K1P||
daught==K1M) {
EvtISGW2FF1P1(parent,daught,t,mass,&ff,&gf,&apf,&amf);
}
if (daught==RHO2S0||daught==RHO2SP||daught==RHO2SM||daught==OMEG2S||
daught==D23S1P||daught==D23S1B||daught==D23S1N||daught==D23S10){
EvtISGW2FF23S1(parent,daught,t,mass,&ff,&gf,&apf,&amf);
}
if (daught==A10||daught==A1P||daught==A1M||daught==F1||
daught==F1PR||daught==D3P1P||daught==D3P10||daught==D3P1B||
daught==D3P1N||daught==K1STM||daught==K1STB||daught==K1STP||
daught==D3P1SP||daught==D3P1SN||
daught==K1ST0) {
EvtISGW2FF3P1(parent,daught,t,mass,&ff,&gf,&apf,&amf);
}
// Need to stuff in some factors to make these the ffs that
// is used elsewhere...
double mb=EvtPDL::getMeanMass(parent);
*vf = (gf)*(mb+mass);
*a1f = (ff)/(mb+mass);
*a2f = -1.0*(apf)*(mb+mass);
double a3f = ((mb+mass)/(2.0*mass))*(*a1f) -
((mb-mass)/(2.0*mass))*(*a2f);
*a0f = a3f + ( (t*amf)/(2.0*mass));
return;
}
void EvtISGW2FF::EvtISGW2FF1S0 (EvtId parent,EvtId daugt,
double t, double mass, double *fpf, double *fmf ) {
double mtb, mbb(0.0);
double msd(0.0), mx,mb,nf(0.0),nfp(0.0);
double msq(0.0),bx2(0.0),mbx(0.0),mtx;
double zji,cji,gammaji,chiji,betaji_fppfm;
double rfppfm,rfpmfm,f3fppfm,f3fpmfm,fppfm,fpmfm,ai,f3;
double mqm,msb(0.0),bb2(0.0),mup,bbx2,tm,r2,betaji_fpmfm;
EvtId prnt=parent;
EvtId dgt=daugt;
//added by Lange Jan4,2000
static EvtIdSet theB("B+","B-","B0","anti-B0");
static EvtId D0=EvtPDL::getId("D0");
static EvtId D0B=EvtPDL::getId("anti-D0");
static EvtId DP=EvtPDL::getId("D+");
static EvtId DM=EvtPDL::getId("D-");
static EvtId PIP=EvtPDL::getId("pi+");
static EvtId PIM=EvtPDL::getId("pi-");
static EvtId PI0=EvtPDL::getId("pi0");
static EvtId ETA=EvtPDL::getId("eta");
static EvtId ETAPR=EvtPDL::getId("eta'");
static EvtId KP=EvtPDL::getId("K+");
static EvtId KM=EvtPDL::getId("K-");
static EvtId K0=EvtPDL::getId("K0");
static EvtId KB=EvtPDL::getId("anti-K0");
static EvtId K0S=EvtPDL::getId("K_S0");
static EvtId K0L=EvtPDL::getId("K_L0");
static EvtId DSP=EvtPDL::getId("D_s+");
static EvtId DSM=EvtPDL::getId("D_s-");
static EvtId BSB=EvtPDL::getId("anti-B_s0");
static EvtId BS0=EvtPDL::getId("B_s0");
if (theB.contains(prnt)) {
msb=5.2;
msd=0.33;
bb2=0.431*0.431;
mbb=5.31;
nf = 4.0;
if (dgt==PI0||dgt==PIP||dgt==PIM||dgt==ETA||dgt==ETAPR) {
msq=0.33;
bx2=0.406*0.406;
mbx=0.75*0.770+0.25*0.14;
nfp = 0.0;
}
else{
if (dgt==D0||dgt==D0B||dgt==DP||dgt==DM) {
msq=1.82;
bx2=0.45*0.45;
mbx=0.75*2.01+0.25*1.87;
nfp = 3.0;
}
else{
EvtGenReport(EVTGEN_ERROR,"EvtGen") << "Not implemented daugt:"<<daugt.getId()<<" in get_isgw_ff_1S0.\n";
}
}
}
else{
if (prnt==D0||prnt==D0B||prnt==DP||prnt==DM) {
msb=1.82;
msd=0.33;
bb2=0.45*0.45;
mbb=1.963;
nf = 3.0;
if (dgt==PIP||dgt==PIM||dgt==PI0||dgt==ETA||dgt==ETAPR) {
msq=0.33;
bx2=0.406*0.406;
mbx=0.75*0.770+0.25*0.14;
nfp = 0.0;
}
else{
if (dgt==K0||dgt==K0S||dgt==K0L||dgt==KB||dgt==KP||dgt==KM) {
msq=0.55;
bx2=0.44*0.44;
mbx=0.75*0.892+0.25*0.49767;
nfp = 2.0;
}
else{
EvtGenReport(EVTGEN_ERROR,"EvtGen") << "Not implemented daugt:"<<daugt.getId()<<" in get_isgw_ff_1S0.\n";
}
}
}
else{
if (prnt==DSP||prnt==DSM){
msb=1.82;
msd=0.55;
bb2=0.56*0.56;
mbb=1.968;
nf = 3.0;
if (dgt==K0||dgt==K0S||dgt==K0L||dgt==KB) {
msq=0.33;
bx2=0.44*0.44;
mbx=0.75*0.770+0.25*0.14;
nfp = 0.0;
}
else{
if (dgt==PI0||dgt==ETA||dgt==ETAPR) {
msq=0.33;
bx2=0.53*0.53;
mbx=0.75*0.892+0.25*0.49767;
nfp = 0.0;
}
else{
EvtGenReport(EVTGEN_ERROR,"EvtGen") << "Not implemented daugt:"<<daugt.getId()<<" in get_isgw_ff_1S0.\n";
}
}
}
else{
//BS -> cs constants added by djl on Jan. 21,1998
if (prnt==BS0||prnt==BSB){
msb=5.2;
msd=0.55;
bb2=0.54*0.54;
mbb=5.38;
nf = 4.0;
if (dgt==DSP||dgt==DSM) {
msq=1.82;
bx2=0.56*0.56;
mbx=0.75*2.11+0.25*1.97;
nfp = 3.0;
}
else if (dgt==KP||dgt==KM) {
msq=0.55;
bx2=0.44*0.44;
mbx=0.75*0.892+0.25*0.49767;
nfp = 2.0;
}
else{
EvtGenReport(EVTGEN_ERROR,"EvtGen") << "Not implemented daugt:"<<daugt.getId()<<" in get_isgw_ff_1S0.\n";
}
}
else{
EvtGenReport(EVTGEN_ERROR,"EvtGen") << "Not implemented parent in get_isgw_ff_1S0.\n";
EvtGenReport(EVTGEN_ERROR,"EvtGen") << "Parent:"<<parent.getId()<<endl;
}
}
}
}
mtb = msb + msd;
mtx = msq + msd;
mb=EvtPDL::getMeanMass(parent);
mx=mass;
mup=1.0/(1.0/msq+1.0/msb);
bbx2=0.5*(bb2+bx2);
tm=(mb-mx)*(mb-mx);
if ( t>tm ) t=0.99*tm;
mqm = 0.1;
r2=3.0/(4.0*msb*msq)+3*msd*msd/(2*mbb*mbx*bbx2) +
(16.0/(mbb*mbx*(33.0-2.0*nfp)))*
log(EvtGetas(mqm,mqm)/EvtGetas(msq,msq));
f3 = sqrt(mtx/mtb)*pow(sqrt(bx2*bb2)/bbx2,1.5) /
((1.0+r2*(tm-t)/12.0)*(1.0+r2*(tm-t)/12.0));
// for w use wt def with physical masses.
// EvtGenReport(EVTGEN_ERROR,"EvtGen") << "before w\n";
ai = -1.0* ( 6.0/( 33.0 - 2.0*nf));
cji = pow(( EvtGetas( msb,msb ) / EvtGetas( msq,msq ) ),ai);
zji = msq / msb;
gammaji = EvtGetGammaji( zji );
chiji = -1.0 - ( gammaji / ( 1- zji ));
betaji_fppfm = gammaji - (2.0/3.0)*chiji;
betaji_fpmfm = gammaji + (2.0/3.0)*chiji;
rfppfm = cji *(1.0 + betaji_fppfm*EvtGetas( msq,sqrt(msb*msq) )/EvtConst::pi);
rfpmfm = cji *(1.0 + betaji_fpmfm*EvtGetas( msq,sqrt(msb*msq) )/EvtConst::pi);
f3fppfm = f3*pow(( mbb / mtb ),-0.5)*pow((mbx/mtx),0.5);
f3fpmfm = f3*pow(( mbb / mtb ),0.5)*pow((mbx/mtx),-0.5);
fppfm = f3fppfm* rfppfm * ( 2.0 - ( ( mtx/msq)*(1- ( (msd*msq*bb2)
/(2.0*mup*mtx*bbx2)))));
fpmfm = f3fpmfm* rfpmfm * ( mtb/msq) * ( 1 - ( ( msd*msq*bb2)/
( 2.0*mup*mtx*bbx2)));
*fpf = (fppfm + fpmfm)/2.0;
*fmf = (fppfm - fpmfm)/2.0;
return;
} //get_ff_isgw_1s0
void EvtISGW2FF::EvtISGW2FF3S1(EvtId parent,EvtId daugt,double t,double mass,
double *f,double *g,double *ap,double *am){
//added by Lange Jan4,2000
static EvtId BP=EvtPDL::getId("B+");
static EvtId BM=EvtPDL::getId("B-");
static EvtId B0=EvtPDL::getId("B0");
static EvtId B0B=EvtPDL::getId("anti-B0");
static EvtId DST0=EvtPDL::getId("D*0");
static EvtId DSTB=EvtPDL::getId("anti-D*0");
static EvtId DSTP=EvtPDL::getId("D*+");
static EvtId DSTM=EvtPDL::getId("D*-");
static EvtId D0=EvtPDL::getId("D0");
static EvtId D0B=EvtPDL::getId("anti-D0");
static EvtId DP=EvtPDL::getId("D+");
static EvtId DM=EvtPDL::getId("D-");
static EvtId RHOP=EvtPDL::getId("rho+");
static EvtId RHOM=EvtPDL::getId("rho-");
static EvtId RHO0=EvtPDL::getId("rho0");
static EvtId OMEG=EvtPDL::getId("omega");
static EvtId KSTP=EvtPDL::getId("K*+");
static EvtId KSTM=EvtPDL::getId("K*-");
static EvtId KST0=EvtPDL::getId("K*0");
static EvtId KSTB=EvtPDL::getId("anti-K*0");
static EvtId PHI=EvtPDL::getId("phi");
static EvtId DSP=EvtPDL::getId("D_s+");
static EvtId DSM=EvtPDL::getId("D_s-");
static EvtId DSSTP=EvtPDL::getId("D_s*+");
static EvtId DSSTM=EvtPDL::getId("D_s*-");
static EvtId BSB=EvtPDL::getId("anti-B_s0");
static EvtId BS0=EvtPDL::getId("B_s0");
double cf(0.0),mtb,wt,msd(0.0),mup,f3f,msq(0.0),bb2(0.0),mum,mtx,bbx2,f3g;
double cji,bx2(0.0),f3appam,msb(0.0),tm,mbb(0.0),mbx(0.0);
double f3apmam,appam,apmam,mb,mx,f3;
double r_f,r_g,r_apmam, betaji_f,betaji_g;
double betaji_appam, betaji_apmam;
double mqm,r2,chiji,zji,ai,nf(0.0),nfp(0.0),gammaji;
EvtId prnt=parent;
EvtId dgt=daugt;
if (parent==B0||parent==B0B||parent==BP||parent==BM) {
msb=5.2;
msd=0.33;
bb2=0.431*0.431;
mbb=5.31;
nf = 4.0;
if (dgt==DST0||dgt==DSTP||dgt==DSTM||dgt==DSTB) {
cf=0.989;
msq=1.82;
bx2=0.38*0.38;
mbx=0.75*2.01+0.25*1.87;
nfp = 3.0;
}
else{
if (dgt==OMEG||dgt==RHO0||dgt==RHOM||dgt==RHOP) {
cf=0.905;
msq=0.33;
bx2=0.299*0.299;
mbx=0.75*0.770+0.25*0.14;
nfp = 0.0;
}
else{
EvtGenReport(EVTGEN_ERROR,"EvtGen") << "Not implemented daugt:"<<daugt.getId()<<" in get_isgw_ff_3S1.\n";
}
}
}
else{
if (prnt==D0||prnt==D0B||prnt==DP||prnt==DM) {
msb=1.82;
msd=0.33;
bb2=0.45*0.45;
mbb=1.963;
nf = 3.0;
if (dgt==KSTP||dgt==KSTM||dgt==KST0||dgt==KSTB) {
cf=0.928;
msq=0.55;
bx2=0.33*0.33;
mbx=0.75*0.892+0.25*0.494;
nfp = 2.0;
}
else{
if (dgt==RHO0||dgt==OMEG||dgt==RHOM||dgt==RHOP) {
cf=0.889;
msq=0.33;
bx2=0.299*0.299;
mbx=0.75*0.770+0.25*0.14;
nfp = 0.0;
}
else{
EvtGenReport(EVTGEN_ERROR,"EvtGen") << "Not implemented daugt:"<<daugt.getId()<<" in get_isgw_ff_3S1.\n";
}
}
}
else{
if (prnt==DSP||prnt==DSM){
msb=1.82;
msd=0.55;
bb2=0.56*0.56;
mbb=1.968;
nf = 3.0;
if (dgt==KSTB||dgt==KST0) {
cf=0.8731;
msq=0.55;
bx2=0.33*0.33;
mbx=0.87;
nfp = 2.0;
}
else{
if(dgt==PHI){
cf=0.911;
msq=0.55;
bx2=0.37*0.37;
mbx=0.97;
nfp = 2.0;
}
else{
EvtGenReport(EVTGEN_ERROR,"EvtGen") << "Not implemented daugt:"<<daugt.getId()<<" in get_isgw_ff_3S1.\n";
}
}
}
else{
//BS -> cs constants added by djl on Jan. 21,1998
if (prnt==BS0||prnt==BSB){
msb=5.2;
msd=0.55;
bb2=0.54*0.54;
mbb=5.38;
nf = 4.0;
if (dgt==DSSTP||dgt==DSSTM) {
cf=0.984;
msq=1.82;
bx2=0.49*0.49;
mbx=0.75*2.11+0.25*1.97;
nfp = 3.0;
}
else if (dgt==KSTP||dgt==KSTM||dgt==KST0||dgt==KSTB) {
cf=0.928;
msq=0.55;
bx2=0.33*0.33;
mbx=0.75*0.892+0.25*0.494;
nfp = 2.0;
}
else{
EvtGenReport(EVTGEN_ERROR,"EvtGen") << "Not implemented daugt:"<<daugt.getId()<<" in get_isgw_ff_1S0.\n";
}
}
else{
EvtGenReport(EVTGEN_ERROR,"EvtGen") << "Not implemented parent in get_isgw2_ff_3S1.\n";
}
}
}
}
mtb=msb+msd;
mtx=msq+msd;
mup=1.0/(1.0/msq+1.0/msb);
mum=1.0/(1.0/msq-1.0/msb);
bbx2=0.5*(bb2+bx2);
mb=EvtPDL::getMeanMass(parent);
mx=mass;
tm=(mb-mx)*(mb-mx);
if ( t > tm ) t = 0.99*tm;
wt=1.0+(tm-t)/(2.0*mbb*mbx);
mqm = 0.1;
r2=3.0/(4.0*msb*msq)+3*msd*msd/(2*mbb*mbx*bbx2) +
(16.0/(mbb*mbx*(33.0-2.0*nfp)))*
log(EvtGetas(mqm,mqm)/EvtGetas(msq,msq));
ai = -1.0* ( 6.0/( 33.0 - 2.0*nf));
cji = pow(( EvtGetas( msb,msb ) / EvtGetas( msq,msq ) ),ai);
zji = msq / msb;
gammaji = EvtGetGammaji( zji );
chiji = -1.0 - ( gammaji / ( 1- zji ));
betaji_g = (2.0/3.0)+gammaji;
betaji_f = (-2.0/3.0)+gammaji;
betaji_appam = -1.0-chiji+(4.0/(3.0*(1.0-zji)))+
(2.0*(1+zji)*gammaji/(3.0*(1.0-zji)*(1.0-zji)));
betaji_apmam = (1.0/3.0)-chiji-(4.0/(3.0*(1.0-zji)))-
(2.0*(1+zji)*gammaji/(3.0*(1.0-zji)*(1.0-zji)))+
gammaji;
r_g = cji*(1+(betaji_g*EvtGetas( msq,sqrt(mb*msq) )/(EvtConst::pi)));
r_f = cji*(1+(betaji_f*EvtGetas( msq,sqrt(mb*msq) )/(EvtConst::pi)));
r_apmam = cji*(1+(betaji_apmam*EvtGetas( msq,sqrt(mb*msq) )/(EvtConst::pi)));
f3=sqrt(mtx/mtb)*pow(sqrt(bx2*bb2)/bbx2,1.5)/
((1.0+r2*(tm-t)/12.0)*(1.0+r2*(tm-t)/12.0));
f3f=sqrt(mbx*mbb/(mtx*mtb))*f3;
f3g=sqrt(mtx*mtb/(mbx*mbb))*f3;
f3appam=sqrt(mtb*mtb*mtb*mbx/(mbb*mbb*mbb*mtx))*f3;
f3apmam=sqrt(mtx*mtb/(mbx*mbb))*f3;
*f=cf*mtb*(1+wt+msd*(wt-1)/(2*mup))*f3f*r_f;
*g=0.5*(1/msq-msd*bb2/(2*mum*mtx*bbx2))*f3g*r_g;
appam=cji*(msd*bx2*(1-msd*bx2/(2*mtb*bbx2))/
((1+wt)*msq*msb*bbx2)-
betaji_appam*EvtGetas( msq,sqrt(msq*mb) )/
(mtb*EvtConst::pi))*f3appam;
apmam=-1.0*(mtb/msb-msd*bx2/(2*mup*bbx2)+wt*msd*mtb*bx2*
(1-msd*bx2/(2*mtb*bbx2))/((wt+1)*msq*msb*bbx2))*
f3apmam*r_apmam/mtx;
*ap=0.5*(appam+apmam);
*am=0.5*(appam-apmam);
return;
}
void EvtISGW2FF::EvtISGW2FF21S0 (EvtId parent,EvtId daugt,
double t, double mass, double *fppf, double *fpmf ) {
//added by Lange Jan4,2000
static EvtId BP=EvtPDL::getId("B+");
static EvtId BM=EvtPDL::getId("B-");
static EvtId B0=EvtPDL::getId("B0");
static EvtId B0B=EvtPDL::getId("anti-B0");
static EvtId D0=EvtPDL::getId("D0");
static EvtId D0B=EvtPDL::getId("anti-D0");
static EvtId DP=EvtPDL::getId("D+");
static EvtId DM=EvtPDL::getId("D-");
static EvtId D21S0P=EvtPDL::getId("D(2S)+");
static EvtId D21S0N=EvtPDL::getId("D(2S)-");
static EvtId D21S00=EvtPDL::getId("D(2S)0");
static EvtId D21S0B=EvtPDL::getId("anti-D(2S)0");
static EvtId ETA2S=EvtPDL::getId("eta(2S)");
static EvtId PI2S0=EvtPDL::getId("pi(2S)0");
static EvtId PI2SP=EvtPDL::getId("pi(2S)+");
static EvtId PI2SM=EvtPDL::getId("pi(2S)-");
double mtb, mbb(0.0);
double msd(0.0), mx,mb,nfp(0.0);
double msq(0.0),bx2(0.0),mbx(0.0),mtx;
double f3fppfm,f3fpmfm,fppfm,fpmfm,f3;
double mqm,msb(0.0);
double r2,wt,tm,bb2(0.0),bbx2;
double tau,udef,vdef;
EvtId prnt=parent;
EvtId dgt=daugt;
if (prnt==B0||prnt==B0B||prnt==BP||prnt==BM) {
msb=5.2;
msd=0.33;
bb2=0.431*0.431;
mbb=0.75*5.325+0.25*5.279;
if (dgt==PI2S0||dgt==PI2SP||dgt==PI2SM||dgt==ETA2S) {
msq=0.33;
bx2=0.406*0.406;
mbx=0.75*1.45+0.25*1.300;
nfp = 0.0;
}
else{
if (dgt==D21S0P||dgt==D21S0B||dgt==D21S0N||dgt==D21S00) {
msq=1.82;
bx2=0.45*0.45;
mbx=0.75*2.64+0.25*2.58;
nfp=3.0;
}
else{
EvtGenReport(EVTGEN_ERROR,"EvtGen") << "Not implemented daugt in get_EvtISGW2_ff_21S0.\n";
}
}
}
else{
if (prnt==D0||prnt==D0B||prnt==DP||prnt==DM) {
msb=1.82;
msd=0.33;
bb2=0.45*0.45;
mbb=1.963;
if (dgt==PI2SP||dgt==PI2SM||dgt==PI2S0||dgt==ETA2S) {
msq=0.33;
bx2=0.406*0.406;
mbx=0.75*1.45+0.25*1.300;
nfp = 0.0;
}
else{
EvtGenReport(EVTGEN_ERROR,"EvtGen") << "Not implemented daugt in get_EvtISGW2_ff_21S0.\n";
}
}
else{
EvtGenReport(EVTGEN_ERROR,"EvtGen") << "Not implemented parent in get_EvtISGW2_ff_21S0.\n";
}
}
mtb = msb + msd;
mtx = msq + msd;
mb = EvtPDL::getMeanMass( parent );
mx = mass;
bbx2=0.5*(bb2+bx2);
tm=(mb-mx)*(mb-mx);
if (t>tm) t = 0.99*tm;
wt=1.0+(tm-t)/(2.0*mbb*mbx);
mqm = 0.1;
r2=3.0/(4.0*msb*msq)+3*msd*msd/(2*mbb*mbx*bbx2) +
(16.0/(mbb*mbx*(33.0-2.0*nfp)))*
log(EvtGetas(mqm)/EvtGetas(msq));
f3 = sqrt(mtx/mtb)*pow(sqrt(bx2*bb2)/bbx2,3.0/2.0) /
(pow((1.0+r2*(tm-t)/24.0),4.0));
f3fppfm = f3*pow(( mbb / mtb ),-0.5)*pow((mbx/mtx),0.5);
f3fpmfm = f3*pow(( mbb / mtb ),0.5)*pow((mbx/mtx),-0.5);
tau = msd*msd*bx2*(wt-1)/(bb2*bbx2);
udef = (( bb2-bx2)/(2.0*bbx2)) + ((bb2*tau)/(3.0*bbx2));
vdef = (bb2*(1.0+(msq/msb))/(6.0*bbx2))*(7.0 - ((bb2/bbx2)*(5+tau)));
fppfm = f3fppfm*sqrt(1.5)*((1.0-(msd/msq))*udef-(msd*vdef/msq));
fpmfm = f3fpmfm*sqrt(1.5)*(mtb/msq)*(udef+(msd*vdef/mtx));
*fppf = (fppfm + fpmfm) /2.0;
*fpmf = (fppfm - fpmfm) /2.0;
return;
} //get_ff_isgw_21s0
void EvtISGW2FF::EvtISGW2FF23S1 (EvtId parent,EvtId daugt,
double t, double mass, double *fpf, double *gpf,
double *appf, double *apmf ) {
//added by Lange Jan4,2000
static EvtId BP=EvtPDL::getId("B+");
static EvtId BM=EvtPDL::getId("B-");
static EvtId B0=EvtPDL::getId("B0");
static EvtId B0B=EvtPDL::getId("anti-B0");
static EvtId D0=EvtPDL::getId("D0");
static EvtId D0B=EvtPDL::getId("anti-D0");
static EvtId DP=EvtPDL::getId("D+");
static EvtId DM=EvtPDL::getId("D-");
static EvtId D23S1P=EvtPDL::getId("D*(2S)+");
static EvtId D23S1N=EvtPDL::getId("D*(2S)-");
static EvtId D23S10=EvtPDL::getId("D*(2S)0");
static EvtId D23S1B=EvtPDL::getId("anti-D*(2S)0");
static EvtId RHO2S0=EvtPDL::getId("rho(2S)0");
static EvtId RHO2SP=EvtPDL::getId("rho(2S)+");
static EvtId RHO2SM=EvtPDL::getId("rho(2S)-");
static EvtId OMEG2S=EvtPDL::getId("omega(2S)");
double mtb, mbb(0.0);
double msd(0.0), mx,mb,nfp(0.0);
double msq(0.0),bx2(0.0),mbx(0.0),mtx;
double f3appam,f3apmam,f3,appam,apmam,f3fp,f3gp;
double udef,tau,mum,bb2(0.0),bbx2,tm,wt,mqm,r2,msb(0.0);
double cfp(0.0);
EvtId prnt=parent;
EvtId dgt=daugt;
if (prnt==B0||prnt==B0B||prnt==BP||prnt==BM) {
msb=5.2;
msd=0.33;
bb2=0.431*0.431;
mbb=0.75*5.325+0.25*5.279;
if (dgt==RHO2S0||dgt==RHO2SP||dgt==RHO2SM||dgt==OMEG2S) {
cfp=0.776;
msq=0.33;
bx2=0.299*0.299;
mbx=0.75*1.45+0.25*1.300;
nfp = 0.0;
}
else{
if (dgt==D23S1N||dgt==D23S1P||dgt==D23S1B||dgt==D23S10) {
cfp=0.929;
msq=1.82;
bx2=0.38*0.38;
mbx=0.75*2.64+0.25*2.58;
nfp=3.0;
}
else{
EvtGenReport(EVTGEN_ERROR,"EvtGen") << "Not implemented daugt in get_isgw_ff_23P1.\n";
}
}
}
else{
if (prnt==D0||prnt==D0B||prnt==DP||prnt==DM) {
msb=1.82;
msd=0.33;
bb2=0.45*0.45;
mbb=1.963;
if (dgt==RHO2S0||dgt==RHO2SP||dgt==RHO2SM||dgt==OMEG2S) {
cfp=0.74;
msq=0.33;
bx2=0.299*0.299;
mbx=0.75*1.45+0.25*1.300;
nfp = 0.0;
}
else{
EvtGenReport(EVTGEN_ERROR,"EvtGen") << "Not implemented daugt in get_isgw_ff_23P1.\n";
}
}
else{
EvtGenReport(EVTGEN_ERROR,"EvtGen") << "Not implemented parent in get_isgw_ff_23P1.\n";
}
}
mtb = msb + msd;
mtx = msq + msd;
mb = EvtPDL::getMeanMass( parent );
mx = mass;
mum=1.0/(1.0/msq-1.0/msb);
bbx2=0.5*(bb2+bx2);
tm=(mb-mx)*(mb-mx);
if (t>tm) t = 0.99*tm;
wt=1.0+(tm-t)/(2.0*mbb*mbx);
mqm = 0.1;
r2=3.0/(4.0*msb*msq)+3*msd*msd/(2*mbb*mbx*bbx2) +
(16.0/(mbb*mbx*(33.0-2.0*nfp)))*
log(EvtGetas(mqm)/EvtGetas(msq));
f3 = sqrt(mtx/mtb)*pow(sqrt(bx2*bb2)/bbx2,3.0/2.0) /
(pow((1.0+r2*(tm-t)/24.0),4.0));
f3fp = f3*pow(( mbb / mtb ),0.5)*pow((mbx/mtx),0.5);
f3gp = f3*pow(( mbb / mtb ),-0.5)*pow((mbx/mtx),-0.5);
f3appam = f3*pow(( mbb / mtb ),-1.5)*pow((mbx/mtx),0.5);
f3apmam = f3*pow(( mbb / mtb ),-0.5)*pow((mbx/mtx),-0.5);
tau = msd*msd*bx2*(wt-1.0)/(bb2*bbx2);
udef = (( bb2-bx2)/(2.0*bbx2));
udef = udef + ((bb2*tau)/(3.0*bbx2));
*fpf = cfp*sqrt(1.5)*mtb*(1.0+wt)*udef*f3fp;
*gpf = sqrt(3.0/8.0)*f3gp*(((1.0/msq)-((msd*bb2)/(2.0*mum*mtx*bbx2)))*
udef + ( (msd*bb2*bx2)/(3.0*mum*mtx*bbx2*bbx2)));
appam = f3appam*sqrt(2.0/3.0)*(bb2/(msq*msb*bbx2))*((-7.0*msd*msd*bx2*
bx2*(1.0+(tau/7.0))/(8.0*mtb*bbx2*bbx2))+(5.0*msd*bx2*(1.0+
(tau/5.0))/(4.0*bbx2))+(3.0*msd*msd*bx2*bx2/(8.0*mtb*bb2*bbx2))-
(3.0*msd*bx2/(4.0*bb2)));
apmam = f3apmam*sqrt(3.0/2.0)*(mtb/(msb*mtx))*(1.0-(bb2*(1.0+(tau/7.0))/
bbx2)-(msd*bx2*(1.0-(5.0*bb2*(1.0+(tau/5.0))/(3.0*bbx2)))
/(2.0*mtb*bbx2))-(7.0*msd*msd*bb2*bx2/(12.0*msq*mtb*bbx2*bbx2))*
(1.0-(bx2/bbx2)+(bb2*tau/(7.0*bbx2))));
*appf = (appam + apmam) /2.0;
*apmf = (appam - apmam) /2.0;
return;
} //get_ff_isgw_23s1
void EvtISGW2FF::EvtISGW2FF1P1 (EvtId parent,EvtId daugt,
double t, double mass, double *rf, double *vf,
double *spf, double *smf ) {
//added by Lange Jan4,2000
static EvtId BP=EvtPDL::getId("B+");
static EvtId BM=EvtPDL::getId("B-");
static EvtId B0=EvtPDL::getId("B0");
static EvtId B0B=EvtPDL::getId("anti-B0");
static EvtId D0=EvtPDL::getId("D0");
static EvtId D0B=EvtPDL::getId("anti-D0");
static EvtId DP=EvtPDL::getId("D+");
static EvtId DM=EvtPDL::getId("D-");
static EvtId D1P1P=EvtPDL::getId("D_1+");
static EvtId D1P1N=EvtPDL::getId("D_1-");
static EvtId D1P10=EvtPDL::getId("D_10");
static EvtId D1P1B=EvtPDL::getId("anti-D_10");
static EvtId B1P=EvtPDL::getId("b_1+");
static EvtId B1M=EvtPDL::getId("b_1-");
static EvtId B10=EvtPDL::getId("b_10");
static EvtId H1=EvtPDL::getId("h_1");
static EvtId H1PR=EvtPDL::getId("h'_1");
static EvtId K1P=EvtPDL::getId("K_1+");
static EvtId K1M=EvtPDL::getId("K_1-");
static EvtId K10=EvtPDL::getId("K_10");
static EvtId K1B=EvtPDL::getId("anti-K_10");
static EvtId D1P1SP=EvtPDL::getId("D_s1+");
static EvtId D1P1SN=EvtPDL::getId("D_s1-");
static EvtId BSB=EvtPDL::getId("anti-B_s0");
static EvtId BS0=EvtPDL::getId("B_s0");
double mtb, mbb(0.0);
double msd(0.0), mx,mb,nfp(0.0);
double msq(0.0),bx2(0.0),mbx(0.0),mtx,f5;
double f5sppsm,f5spmsm;
double f5v,f5r,mup,mum,vv,rr,spmsm,sppsm;
double mqm,msb(0.0),bb2(0.0),bbx2,tm,wt,r2;
EvtId prnt=parent;
EvtId dgt=daugt;
if (prnt==B0||prnt==B0B||prnt==BP||prnt==BM) {
msb=5.2;
msd=0.33;
bb2=0.431*0.431;
mbb=5.31;
if (dgt==B10||dgt==B1P||dgt==B1M||dgt==H1||dgt==H1PR) {
msq=0.33;
bx2=0.275*0.275;
mbx=(3.0*1.123+0.98+5.0*1.32+3.0*1.26)/12.0;
nfp = 0.0;
}
else{
if (dgt==D1P1P||dgt==D1P10||dgt==D1P1B||dgt==D1P1N) {
msq=1.82;
bx2=0.33*0.33;
mbx=(5.0*2.46+3.0*2.42)/8.0;
nfp = 3.0;
}
else{
EvtGenReport(EVTGEN_ERROR,"EvtGen") << "Not implemented daugt in get_isgw_ff_1P1.\n";
}
}
}
else{
if (prnt==DM||prnt==DP||prnt==D0B||prnt==D0) {
msb=1.82;
msd=0.33;
bb2=0.45*0.45;
mbb=1.963;
if (dgt==B10||dgt==B1P||dgt==B1M||dgt==H1||dgt==H1PR) {
msq=0.33;
bx2=0.275*0.275;
mbx=(3.0*1.123+0.98+5.0*1.32+3.0*1.26)/12.0;
nfp = 0.0;
}
else{
if (dgt==K10||dgt==K1B||dgt==K1P||dgt==K1M) {
msq=0.55;
bx2=0.30*0.30;
mbx=(3.0*1.27+1.43+5.0*1.43+3.0*1.4)/12.0;
nfp = 2.0;
}
else{
EvtGenReport(EVTGEN_ERROR,"EvtGen") << "Not implemented daugt in get_isgw_ff_1P1.\n";
}
}
}
else{
//BS -> cs constants added by djl on Jan. 21,1998
if (prnt==BS0||prnt==BSB){
msb=5.2;
msd=0.55;
bb2=0.54*0.54;
mbb=5.38;
if (dgt==D1P1SP||dgt==D1P1SN) {
msq=1.82;
bx2=0.41*0.41;
mbx=(5.0*2.61+3.0*2.54)/8.0;
nfp = 3.0;
}
else if (dgt==K10||dgt==K1B||dgt==K1P||dgt==K1M) {
msq=0.55;
bx2=0.30*0.30;
mbx=(3.0*1.27+1.43+5.0*1.43+3.0*1.4)/12.0;
nfp = 2.0;
}
else{
EvtGenReport(EVTGEN_ERROR,"EvtGen") << "Not implemented daugt:"
<<daugt.getId()<<" in get_isgw_ff_1S0.\n";
}
}
else{
EvtGenReport(EVTGEN_ERROR,"EvtGen") << "Not implemented parent in get_isgw_ff_1P1.\n";
}
}
}
mtb = msb + msd;
mtx = msq + msd;
mb = EvtPDL::getMeanMass( parent );
mx = mass;
mup=1.0/(1.0/msq+1.0/msb);
mum=1.0/(1.0/msq-1.0/msb);
bbx2=0.5*(bb2+bx2);
tm=(mb-mx)*(mb-mx);
if (t>tm) t = 0.99*tm;
wt=1.0+(tm-t)/(2.0*mbb*mbx);
mqm = 0.1;
r2=3.0/(4.0*msb*msq)+3*msd*msd/(2*mbb*mbx*bbx2)+
(16.0/(mbb*mbx*(33.0-2.0*nfp)))*
log(EvtGetas(mqm,mqm)/EvtGetas(msq,msq));
f5 = sqrt(mtx/mtb)*pow(sqrt(bx2*bb2)/bbx2,5.0/2.0) /
(pow((1.0+r2*(tm-t)/18.0),3.0));
f5v = f5*pow(( mbb / mtb ),-0.5)*pow((mbx/mtx),-0.5);
f5r = f5*pow(( mbb / mtb ),0.5)*pow((mbx/mtx),0.5);
f5sppsm = f5*pow(( mbb / mtb ),-1.5)*pow((mbx/mtx),0.5);
f5spmsm = f5*pow(( mbb / mtb ),-0.5)*pow((mbx/mtx),-0.5);
if (msq == msd) {
vv = f5v*(((mtb*sqrt(bb2))/(4.0*sqrt(2.0)*msb*msq*mtx)) +
(((wt-1)*msd)/(6.0*sqrt(2.0*bb2)*mtx)));
rr = f5r*mtb*sqrt(bb2/2)*((1.0/mup)+((msd*mtx*(wt-1)*(wt-1))/
(3.0*msq*bb2)));
sppsm = msd*f5sppsm/(sqrt(2.0*bb2)*mtb)*(1.0-(msd/msq)+((msd*bb2)/
(2.0*mup*bbx2)));
spmsm = msd*f5spmsm/(sqrt(2.0*bb2)*msq)*(((4-wt)/3.0)- ( (msd*msq*bb2)/
(2.0*mtx*mup*bbx2)));
} else {
vv = -1.0*msd*f5v/(2.0*sqrt(3.0*bb2)*mtx)*
((wt+1)/2.0+bb2*mtb/(2.0*msd*msq*msb));
rr = -2.0*mtb*sqrt(bb2/3.0)*f5r*(1.0/msq + mtx*msd*(wt-1)/(2.0*bb2)*
((wt+1)/(2.0*msq)-msd*bb2/(2.0*mum*mtx*bbx2)));
sppsm = -1.0*sqrt(3.0)*msd*f5sppsm/(2.0*sqrt(bb2)*mtb)*(1 - msd/(3.0*msq) -
msd*bb2/(3.0*bbx2)*(1.0/(2.0*mum)-1.0/mup));
spmsm = -1.0*msd*f5spmsm/(2.0*sqrt(3.0*bb2)*mtx)*((2-wt)*mtx/msq +
msd*bb2/bbx2*(1.0/(2.0*mum)-1.0/mup));
}
//smooth out the mass(meson) dependence a little
double parMass=EvtPDL::getMeanMass(prnt);
double q2max = parMass*parMass + mass*mass - 2.0*parMass*mass;
double massNom= EvtPDL::getMeanMass(dgt);
double q2maxNom = parMass*parMass + massNom*massNom - 2.0*parMass*massNom;
double q2maxin=sqrt(q2maxNom/q2max);
if ( q2maxin > 1000. ) q2maxin=1000.;
vv*=q2maxin;
rr*=q2maxin;
sppsm*=q2maxin;
spmsm*=q2maxin;
*vf = vv;
*rf = rr;
*spf = (sppsm + spmsm)/2.0;
*smf = (sppsm - spmsm)/2.0;
return;
} //get_ff_isgw_1p1
void EvtISGW2FF::EvtISGW2FF3P1 (EvtId parent,EvtId daugt,
double t, double mass, double *lf, double *qf,
double *cpf, double *cmf ) {
//added by Lange Jan4,2000
static EvtId BP=EvtPDL::getId("B+");
static EvtId BM=EvtPDL::getId("B-");
static EvtId B0=EvtPDL::getId("B0");
static EvtId B0B=EvtPDL::getId("anti-B0");
static EvtId D0=EvtPDL::getId("D0");
static EvtId D0B=EvtPDL::getId("anti-D0");
static EvtId DP=EvtPDL::getId("D+");
static EvtId DM=EvtPDL::getId("D-");
static EvtId D3P1P=EvtPDL::getId("D'_1+");
static EvtId D3P1N=EvtPDL::getId("D'_1-");
static EvtId D3P10=EvtPDL::getId("D'_10");
static EvtId D3P1B=EvtPDL::getId("anti-D'_10");
static EvtId A1P=EvtPDL::getId("a_1+");
static EvtId A1M=EvtPDL::getId("a_1-");
static EvtId A10=EvtPDL::getId("a_10");
static EvtId F1=EvtPDL::getId("f_1");
static EvtId F1PR=EvtPDL::getId("f'_1");
static EvtId K1STP=EvtPDL::getId("K'_1+");
static EvtId K1STM=EvtPDL::getId("K'_1-");
static EvtId K1ST0=EvtPDL::getId("K'_10");
static EvtId K1STB=EvtPDL::getId("anti-K'_10");
static EvtId D3P1SP=EvtPDL::getId("D'_s1+");
static EvtId D3P1SN=EvtPDL::getId("D'_s1-");
static EvtId BSB=EvtPDL::getId("anti-B_s0");
static EvtId BS0=EvtPDL::getId("B_s0");
double mtb, mbb(0.0);
double msd(0.0), mx,mb,nfp(0.0);
double msq(0.0),bx2(0.0),mbx(0.0),mtx;
double f5cppcm,f5cpmcm,f5,ql,ll,cppcm,cpmcm,f5q,f5l;
double mqm,msb(0.0),bb2(0.0),mum,bbx2,tm,wt,r2;
EvtId prnt=parent;
EvtId dgt=daugt;
if (prnt==B0||prnt==B0B||prnt==BP||prnt==BM) {
msb=5.2;
msd=0.33;
bb2=0.431*0.431;
mbb=5.31;
if (dgt==A10||dgt==A1P||dgt==A1M||dgt==F1||dgt==F1PR) {
msq=0.33;
bx2=0.275*0.275;
mbx=(3.0*1.23+0.98+5.0*1.32+3.0*1.26)/12.0;
nfp = 0.0;
}
else{
if (dgt==D3P1P||dgt==D3P1N||dgt==D3P10||dgt==D3P1B) {
msq=1.82;
bx2=0.33*0.33;
mbx=(3.0*2.49+2.40)/4.0;
nfp = 3.0;
}
else{
EvtGenReport(EVTGEN_ERROR,"EvtGen") << "Not implemented daugt:"<<daugt.getId()<<" in get_isgw_ff_3P1.\n";
}
}
}
else{
if (prnt==D0||prnt==D0B||prnt==DP||prnt==DM) {
msb=1.82;
msd=0.33;
bb2=0.45*0.45;
mbb=1.963;
if (dgt==F1||dgt==F1PR||dgt==A10||dgt==A1P||dgt==A1M) {
msq=0.33;
bx2=0.275*0.275;
mbx=(3.0*1.23+0.98+5.0*1.32+3.0*1.26)/12.0;
nfp = 0.0;
}
else{
if (dgt==K1STM||dgt==K1STB||dgt==K1STP||dgt==K1ST0) {
msq=0.55;
bx2=0.30*0.30;
mbx=(3.0*1.40+1.43+5.0*1.43+3.0*1.27)/12.0;
nfp = 2.0;
}
else{
EvtGenReport(EVTGEN_ERROR,"EvtGen") << "Not implemented daugt:"<<daugt.getId()<<" in get_isgw_ff_3P1.\n";
}
}
}
else{
//BS -> cs constants added by djl on Jan. 21,1998
if (prnt==BS0||prnt==BSB){
msb=5.2;
msd=0.55;
bb2=0.54*0.54;
mbb=5.38;
if (dgt==D3P1SP||dgt==D3P1SN) {
msq=1.82;
bx2=0.41*0.41;
mbx=(3.0*2.54+2.46)/4.0;
nfp = 3.0;
}
else if (dgt==K1STM||dgt==K1STB||dgt==K1STP||dgt==K1ST0) {
msq=0.55;
bx2=0.30*0.30;
mbx=(3.0*1.40+1.43+5.0*1.43+3.0*1.27)/12.0;
nfp = 2.0;
}
else{
EvtGenReport(EVTGEN_ERROR,"EvtGen") << "Not implemented daugt:"<<daugt.getId()<<" in get_isgw_ff_1S0.\n";
}
}
else{
EvtGenReport(EVTGEN_ERROR,"EvtGen") << "Not implemented parent in get_isgw_ff_3P1.\n";
}
}
}
mtb = msb + msd;
mtx = msq + msd;
mb = EvtPDL::getMeanMass( parent );
mx = mass;
mum=1.0/(1.0/msq-1.0/msb);
bbx2=0.5*(bb2+bx2);
tm=(mb-mx)*(mb-mx);
if (t>tm) t = 0.99*tm;
wt=1.0+(tm-t)/(2.0*mbb*mbx);
mqm = 0.1;
r2=3.0/(4.0*msb*msq)+3*msd*msd/(2*mbb*mbx*bbx2) +
(16.0/(mbb*mbx*(33.0-2.0*nfp)))*
log(EvtGetas(mqm)/EvtGetas(msq));
f5 = sqrt(mtx/mtb)*pow(sqrt(bx2*bb2)/bbx2,5.0/2.0) /
(pow((1.0+r2*(tm-t)/18.0),3.0));
f5q = f5*pow(( mbb / mtb ),-0.5)*pow((mbx/mtx),-0.5);
f5l = f5*pow(( mbb / mtb ),0.5)*pow((mbx/mtx),0.5);
f5cppcm = f5*pow(( mbb / mtb ),-1.5)*pow((mbx/mtx),0.5);
f5cpmcm = f5*pow(( mbb / mtb ),-0.5)*pow((mbx/mtx),-0.5);
if (msq == msd) {
ql = -1.0*(msd*(5.0+wt)*f5q/(2.0*mtx*sqrt(bb2)*6.0));
ll = -1.0*mtb*sqrt(bb2)*f5l*(1/mum+ ( (msd*mtx*(wt-1)/bb2)*
( (5.0+wt)/(6.0*msq)-(msd*bb2)/(2.0*mum*mtx*bbx2))));
cppcm = (-1.0*(msd*mtx*f5cppcm/(2.0*msq*mtb*sqrt(bb2)))*
(1-(msd*msq*bb2)/(2.0*mtx*mum*bbx2)));
cpmcm = 1.0*(msd*mtx*f5cpmcm/(2.0*msq*mtb*sqrt(bb2)))*
(((wt+2.0)/3.0)-(msd*msq*bb2)/(2.0*mtx*mum*bbx2))
*(mtb/mtx);
} else {
ql = f5q*sqrt(1.0/6.0)*msd/(sqrt(bb2)*mtx)*
(1.0-bb2*mtb/(4.0*msd*msq*msb));
ll = f5l*sqrt(2.0/3.0)*mtb*sqrt(bb2)*(1.0/(2.0*msq) - 3.0/(2.0*msb) +
msd*mtx*(wt-1)/bb2*(1.0/msq-msd*bb2/(2.0*mum*mtx*bbx2)));
cppcm = msd*msd*bx2*f5cppcm/(sqrt(6.0)*mtb*msq*sqrt(bb2)*bbx2);
cpmcm = -sqrt(2.0/3.0)*msd*f5cpmcm/(sqrt(bb2)*mtx)*
(1+msd*bx2/(2.0*msq*bbx2));
}
//smooth out the mass(meson) dependence a little
double parMass=EvtPDL::getMeanMass(prnt);
double q2max = parMass*parMass + mass*mass - 2.0*parMass*mass;
double massNom= EvtPDL::getMeanMass(dgt);
double q2maxNom = parMass*parMass + massNom*massNom - 2.0*parMass*massNom;
double q2maxin=sqrt(q2maxNom/q2max);
if ( q2maxin > 1000. ) q2maxin=1000.;
ql*=q2maxin;
ll*=q2maxin;
cppcm*=q2maxin;
cpmcm*=q2maxin;
*qf = ql;
*lf = ll;
*cpf = (cppcm + cpmcm)/2.0;
*cmf = (cppcm - cpmcm)/2.0;
return;
} //get_ff_isgw_3p1
void EvtISGW2FF::EvtISGW2FF3P0 (EvtId parent,EvtId daugt,
double t, double mass, double *upf, double *umf ) {
//added by Lange Jan4,2000
static EvtId BP=EvtPDL::getId("B+");
static EvtId BM=EvtPDL::getId("B-");
static EvtId B0=EvtPDL::getId("B0");
static EvtId B0B=EvtPDL::getId("anti-B0");
static EvtId D0=EvtPDL::getId("D0");
static EvtId D0B=EvtPDL::getId("anti-D0");
static EvtId DP=EvtPDL::getId("D+");
static EvtId DM=EvtPDL::getId("D-");
static EvtId D3P0P=EvtPDL::getId("D_0*+");
static EvtId D3P0N=EvtPDL::getId("D_0*-");
static EvtId D3P00=EvtPDL::getId("D_0*0");
static EvtId D3P0B=EvtPDL::getId("anti-D_0*0");
static EvtId D3P0SP=EvtPDL::getId("D_s0*+");
static EvtId D3P0SN=EvtPDL::getId("D_s0*-");
static EvtId A0P=EvtPDL::getId("a_0+");
static EvtId A0M=EvtPDL::getId("a_0-");
static EvtId A00=EvtPDL::getId("a_00");
static EvtId F0=EvtPDL::getId("f_0");
static EvtId F0PR=EvtPDL::getId("f'_0");
static EvtId K0STP=EvtPDL::getId("K_0*+");
static EvtId K0STM=EvtPDL::getId("K_0*-");
static EvtId K0ST0=EvtPDL::getId("K_0*0");
static EvtId K0STB=EvtPDL::getId("anti-K_0*0");
static EvtId DSP=EvtPDL::getId("D_s+");
static EvtId DSM=EvtPDL::getId("D_s-");
static EvtId BSB=EvtPDL::getId("anti-B_s0");
static EvtId BS0=EvtPDL::getId("B_s0");
double mtb, mbb(0.0);
double msd(0.0), mx,mb,nfp(0.0);
double msq(0.0),bx2(0.0),mbx(0.0),mtx;
double f5uppum,f5upmum,uppum,upmum,f5;
double mqm,r2,bb2(0.0),bbx2,msb(0.0),tm;
EvtId prnt=parent;
EvtId dgt=daugt;
if (prnt==B0||prnt==B0B||prnt==BP||prnt==BM) {
msb=5.2;
msd=0.33;
bb2=0.431*0.431;
mbb=5.31;
if (dgt==A00||dgt==A0P||dgt==A0M||dgt==F0||dgt==F0PR) {
msq=0.33;
bx2=0.275*0.275;
mbx=(3.0*1.23+0.98+5.0*1.32+3.0*1.26)/12.0;
nfp = 0.0;
}
else{
if (dgt==D3P0P||dgt==D3P0N||dgt==D3P00||dgt==D3P0B) {
msq=1.82;
bx2=0.33*0.33;
mbx=(3.0*2.49+2.40)/4.0;
nfp = 3.0;
}
else{
EvtGenReport(EVTGEN_ERROR,"EvtGen") << "Not implemented daugt in get_EvtISGW2_ff_3P0.\n";
}
}
}
else{
if (prnt==D0||prnt==D0B||prnt==DP||prnt==DM) {
msb=1.82;
msd=0.33;
bb2=0.45*0.45;
mbb=1.963;
if (dgt==F0||dgt==F0PR||dgt==A00||dgt==A0P||dgt==A0M) {
msq=0.33;
bx2=0.275*0.275;
mbx=(3.0*1.23+0.98+5.0*1.32+3.0*1.26)/12.0;
nfp = 0.0;
}
else{
if (dgt==K0STM||dgt==K0STB||dgt==K0STP||dgt==K0ST0) {
msq=0.55;
bx2=0.30*0.30;
mbx=(3.0*1.40+1.43+5.0*1.43+3.0*1.27)/12.0;
nfp = 2.0;
}
else{
EvtGenReport(EVTGEN_ERROR,"EvtGen") << "Not implemented daugt in get_EvtISGW2_ff_3P0.\n";
}
}
}
else{
if (prnt==DSP||prnt==DSM){
msb=1.82;
msd=0.55;
bb2=0.56*0.56;
mbb=1.968;
if (dgt==F0||dgt==F0PR||dgt==A00||dgt==A0P||dgt==A0M) {
msq=0.55;
bx2=0.33*0.33;
mbx=(3.0*1.40+1.43+5.0*1.43+3.0*1.27)/12.0;
nfp = 2.0;
}
else{
if (dgt==K0STM||dgt==K0STB||dgt==K0STP||dgt==K0ST0) {
msq=0.33;
bx2=0.30*0.30;
mbx=(3.0*1.23+0.98+5.0*1.32+3.0*1.26)/12.0;
nfp = 0.0;
}
else{
EvtGenReport(EVTGEN_ERROR,"EvtGen") << "Not implemented daugt in get_EvtISGW2_ff_3P0.\n";
}
}
}
else{
//BS -> cs constants added by djl on Jan. 21,1998
if (prnt==BS0||prnt==BSB){
msb=5.2;
msd=0.55;
bb2=0.54*0.54;
mbb=5.38;
if (dgt==D3P0SP||dgt==D3P0SN) {
msq=1.82;
bx2=0.41*0.41;
mbx=(3.0*2.54+2.46)/4.0;
nfp = 3.0;
}
else if (dgt==K0STM||dgt==K0STB||dgt==K0STP||dgt==K0ST0) {
msq=0.55;
bx2=0.30*0.30;
mbx=(3.0*1.40+1.43+5.0*1.43+3.0*1.27)/12.0;
nfp = 2.0;
}
else{
EvtGenReport(EVTGEN_ERROR,"EvtGen") << "Not implemented daugt:"<<daugt.getId()<<" in get_isgw_ff_1S0.\n";
}
}
else{
EvtGenReport(EVTGEN_ERROR,"EvtGen") << "Not implemented parent in get_EvtISGW2_ff_3P0.\n";
}
}
}
}
mtb = msb + msd;
mtx = msq + msd;
mb = EvtPDL::getMeanMass( parent );
mx = mass;
bbx2=0.5*(bb2+bx2);
tm=(mb-mx)*(mb-mx);
if (t>tm) t = 0.99*tm;
mqm = 0.1;
r2=3.0/(4.0*msb*msq)+3*msd*msd/(2*mbb*mbx*bbx2) +
(16.0/(mbb*mbx*(33.0-2.0*nfp)))*
log(EvtGetas(mqm)/EvtGetas(msq));
f5 = sqrt(mtx/mtb)*pow(sqrt(bx2*bb2)/bbx2,5.0/2.0) /
(pow((1.0+r2*(tm-t)/18.0),3.0));
f5uppum = f5*pow(( mbb / mtb ),-0.5)*pow((mbx/mtx),0.5);
f5upmum = f5*pow(( mbb / mtb ),0.5)*pow((mbx/mtx),-0.5);
uppum = -1.0*f5uppum*sqrt(2.0/(3.0*bb2))*msd;
upmum = 1.0*f5upmum*sqrt(2.0/(3.0*bb2))*msd*mtb/mtx;
*upf = (uppum + upmum)/2.0;
*umf = (uppum - upmum)/2.0;
return;
}
void EvtISGW2FF::EvtISGW2FF3P2 (EvtId parent,EvtId daugt,
double t, double mass, double *hf, double *kf,
double *bpf, double *bmf ) {
//added by Lange Jan4,2000
static EvtId BP=EvtPDL::getId("B+");
static EvtId BM=EvtPDL::getId("B-");
static EvtId B0=EvtPDL::getId("B0");
static EvtId B0B=EvtPDL::getId("anti-B0");
static EvtId D0=EvtPDL::getId("D0");
static EvtId D0B=EvtPDL::getId("anti-D0");
static EvtId DP=EvtPDL::getId("D+");
static EvtId DM=EvtPDL::getId("D-");
static EvtId D3P2P=EvtPDL::getId("D_2*+");
static EvtId D3P2N=EvtPDL::getId("D_2*-");
static EvtId D3P20=EvtPDL::getId("D_2*0");
static EvtId D3P2B=EvtPDL::getId("anti-D_2*0");
static EvtId A2P=EvtPDL::getId("a_2+");
static EvtId A2M=EvtPDL::getId("a_2-");
static EvtId A20=EvtPDL::getId("a_20");
static EvtId F2=EvtPDL::getId("f_2");
static EvtId F2PR=EvtPDL::getId("f'_2");
static EvtId K2STP=EvtPDL::getId("K_2*+");
static EvtId K2STM=EvtPDL::getId("K_2*-");
static EvtId K2ST0=EvtPDL::getId("K_2*0");
static EvtId K2STB=EvtPDL::getId("anti-K_2*0");
static EvtId D3P2SP=EvtPDL::getId("D_s2*+");
static EvtId D3P2SN=EvtPDL::getId("D_s2*-");
static EvtId BSB=EvtPDL::getId("anti-B_s0");
static EvtId BS0=EvtPDL::getId("B_s0");
double mtb, mbb(0.0);
double msd(0.0), mx,mb,nfp(0.0);
double msq(0.0),bx2(0.0),mbx(0.0),mtx,f5;
double f5h,f5k,f5bppbm,f5bpmbm,bppbm,bpmbm;
double mqm,mum,mup,tm,wt,r2,bb2(0.0),bbx2;
double msb(0.0);
EvtId prnt=parent;
EvtId dgt=daugt;
if (prnt==B0||prnt==B0B||prnt==BP||prnt==BM) {
msb=5.2;
msd=0.33;
bb2=0.431*0.431;
mbb=5.31;
if (dgt==A20||dgt==A2P||dgt==A2M||dgt==F2||dgt==F2PR) {
msq=0.33;
bx2=0.275*0.275;
mbx=(3.0*1.23+0.98+5.0*1.32+3.0*1.26)/12.0;
nfp = 0.0;
}
else{
if (dgt==D3P2P||dgt==D3P2N||dgt==D3P20||dgt==D3P2B) {
msq=1.82;
bx2=0.33*0.33;
mbx=(5.0*2.46+3.0*2.42)/8.0;
nfp = 3.0;
}
else{
EvtGenReport(EVTGEN_ERROR,"EvtGen") << "Not implemented daugt in get_isgw_ff_3P2.\n";
}
}
}
else{
if (prnt==D0||prnt==D0B||prnt==DP||prnt==DM) {
msb=1.82;
msd=0.33;
bb2=0.45*0.45;
mbb=1.963;
if (dgt==F2||dgt==F2PR||dgt==A20||dgt==A2P||dgt==A2M) {
msq=0.33;
bx2=0.275*0.275;
mbx=(3.0*1.23+0.98+5.0*1.32+3.0*1.26)/12.0;
nfp = 0.0;
}
else{
if (dgt==K2STM||dgt==K2STB||dgt==K2STP||dgt==K2ST0) {
msq=0.55;
bx2=0.30*0.30;
mbx=(3.0*1.40+1.43+5.0*1.43+3.0*1.27)/12.0;
nfp = 2.0;
}
else{
EvtGenReport(EVTGEN_ERROR,"EvtGen") << "Not implemented daugt in get_isgw_ff_3P2.\n";
}
}
}
else{
//BS -> cs constants added by djl on Jan. 21,1998
if (prnt==BS0||prnt==BSB){
msb=5.2;
msd=0.55;
bb2=0.54*0.54;
mbb=5.38;
if (dgt==D3P2SP||dgt==D3P2SN) {
msq=1.82;
bx2=0.41*0.41;
mbx=(5.0*2.61+3.0*2.54)/8.0;
nfp = 3.0;
}
else if (dgt==K2STM||dgt==K2STB||dgt==K2STP||dgt==K2ST0) {
msq=0.55;
bx2=0.30*0.30;
mbx=(3.0*1.40+1.43+5.0*1.43+3.0*1.27)/12.0;
nfp = 2.0;
}
else{
EvtGenReport(EVTGEN_ERROR,"EvtGen") << "Not implemented daugt:"<<daugt.getId()<<" in get_isgw_ff_1S0.\n";
}
}
else{
EvtGenReport(EVTGEN_ERROR,"EvtGen") << "Not implemented parent in get_isgw_ff_3P2.\n";
}
}
}
mtb = msb + msd;
mtx = msq + msd;
mb = EvtPDL::getMeanMass( parent );
mx = mass;
mup=1.0/(1.0/msq+1.0/msb);
mum=1.0/(1.0/msq-1.0/msb);
bbx2=0.5*(bb2+bx2);
tm=(mb-mx)*(mb-mx);
if (t>tm) t = 0.99*tm;
wt=1.0+(tm-t)/(2.0*mbb*mbx);
mqm = 0.1;
r2=3.0/(4.0*msb*msq)+3*msd*msd/(2*mbb*mbx*bbx2)+
(16.0/(mbb*mbx*(33.0-2.0*nfp)))*
log(EvtGetas(mqm)/EvtGetas(msq));
f5 = sqrt(mtx/mtb)*pow(sqrt(bx2*bb2)/bbx2,5.0/2.0) /
(pow((1.0+r2*(tm-t)/18.0),3.0));
f5h = f5*pow(( mbb / mtb ),-1.5)*pow((mbx/mtx),-0.5);
f5k = f5*pow(( mbb / mtb ),-0.5)*pow((mbx/mtx),0.5);
f5bppbm = f5*pow(( mbb / mtb ),-2.5)*pow((mbx/mtx),0.5);
f5bpmbm = f5*pow(( mbb / mtb ),-1.5)*pow((mbx/mtx),-0.5);
*hf = f5h*(msd/(sqrt(8.0*bb2)*mtb))*((1.0/msq)-(msd*bb2/(2.0*mum*
mtx*bbx2)));
*kf = f5k*(msd/(sqrt(2.0*bb2)))*(1.0+wt);
bppbm = ((msd*msd*f5bppbm*bx2)/(sqrt(32.0*bb2)*msq*msb*mtb*bbx2))*
(1.0-(msd*bx2/(2.0*mtb*bbx2)));
bpmbm = -1.0*(msd*f5bpmbm/(sqrt(2.0*bb2)*msb*mtx))*(1.0-
((msd*msb*bx2)/(2.0*mup*mtb*bbx2))+((msd*bx2*(1.0-
((msd*bx2)/(2.0*mtb*bbx2))))/(4.0*msq*bbx2)));
*bpf = (bppbm + bpmbm)/2.0;
*bmf = (bppbm - bpmbm)/2.0;
return;
} //get_ff_isgw_1p1
double EvtISGW2FF::EvtGetGammaji ( double z )
{
double temp;
temp = 2+((2.0*z)/(1-z))*log(z);
temp = -1.0*temp;
return temp;
} //EvtGetGammaji
double EvtISGW2FF::EvtGetas ( double massq, double massx )
{
double lqcd2 = 0.04;
double nflav = 4;
double temp = 0.6;
if ( massx > 0.6 ) {
if ( massq < 1.85 ) {
nflav = 3.0;}
temp = 12.0*EvtConst::pi / ( 33.0 - 2.0*nflav) /
log( massx*massx/lqcd2);
}
return temp;
} //EvtGetas
double EvtISGW2FF::EvtGetas ( double mass )
{
double lqcd2 = 0.04;
double nflav = 4;
double temp = 0.6;
if ( mass > 0.6 ) {
if ( mass < 1.85 ) {
nflav = 3.0;}
temp = 12.0*EvtConst::pi / ( 33.0 - 2.0*nflav) /
log( mass*mass/lqcd2);
}
return temp;
} //EvtGetas
void EvtISGW2FF::getbaryonff(EvtId, EvtId, double, double, double*,
double*, double*, double*){
EvtGenReport(EVTGEN_ERROR,"EvtGen") << "Not implemented :getbaryonff in EvtISGW2FF.\n";
::abort();
}
void EvtISGW2FF::getdiracff(EvtId, EvtId, double, double, double*, double*,
double*, double*, double*, double*) {
EvtGenReport(EVTGEN_ERROR,"EvtGen") << "Not implemented :getdiracff in EvtISGW2FF.\n";
::abort();
}
void EvtISGW2FF::getraritaff(EvtId, EvtId, double, double, double*, double*,
double*, double*, double*, double*, double*, double*) {
EvtGenReport(EVTGEN_ERROR,"EvtGen") << "Not implemented :getraritaff in EvtISGW2FF.\n";
::abort();
}

File Metadata

Mime Type
text/x-c
Expires
Tue, Sep 30, 5:44 AM (4 h, 7 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
6541332
Default Alt Text
EvtISGW2FF.cpp (46 KB)

Event Timeline