|
EvtGen
2.0.0
Monte Carlo generator of particle decays, in particular the weak decays of heavy flavour particles such as B mesons.
|
Go to the documentation of this file. 43 kappa = Mpsi / Mpsi2S; 49 double* a2f, double* vf, double* a0f ) 53 if ( whichfit == 0 ) { 62 if ( whichfit == 1 ) { 63 double Mpole2 = 4.5 * 4.5, den = 1. / ( 1. - q2 / Mpole2 ); 64 double FV = 0.11 * den, FAp = -0.074 * den, FA0 = 5.9 * den, 66 *vf = ( MBc + Mpsi ) * FV; 67 *a2f = -( MBc + Mpsi ) * FAp; 68 *a1f = FA0 / ( MBc + Mpsi ); 69 *a0f = ( q2 * FAm + ( MBc + Mpsi ) * ( *a1f ) - 70 ( MBc - Mpsi ) * ( *a2f ) ) / 73 } else if ( whichfit == 75 *vf = ( 0.49077824756158533 - 0.0012925655191347828 * q2 ) / 76 ( 1 - 0.06292520325875656 * q2 ); 77 *a0f = ( 0.4160345034630221 - 0.0024720095310225023 * q2 ) / 78 ( 1 - 0.061603451915567785 * q2 ); 79 *a1f = ( 0.4970212860605933 - 0.0067519730024654745 * q2 ) / 80 ( 1 - 0.050487026667172176 * q2 ); 81 *a2f = ( 0.7315284919705497 + 0.0014263826220727142 * q2 - 82 0.0006946090066269195 * q2 * q2 ) / 83 ( 1 - 0.04885587273651653 * q2 ); 87 << "Must choose 0 (a1f = 1), 1 (Kiselev), or 2 (Ebert).\n"; 90 } else if ( idVector == 92 if ( whichfit == 1 ) { 93 double Mpole2 = 4.5 * 4.5, den = 1. / ( 1. - q2 / Mpole2 ); 94 double FV = 0.11 * den * kappa / 3.1, 95 FAp = -0.074 * den * kappa / 4.9, 96 FA0 = 5.9 * den * kappa / 3.5, FAm = 0.12 * den * kappa / 2.3; 97 *vf = ( MBc + Mpsi2S ) * FV; 98 *a2f = -( MBc + Mpsi2S ) * FAp; 99 *a1f = FA0 / ( MBc + Mpsi2S ); 100 *a0f = ( q2 * FAm + ( MBc + Mpsi2S ) * ( *a1f ) - 101 ( MBc - Mpsi2S ) * ( *a2f ) ) / 104 } else if ( whichfit == 2 ) { 105 *vf = ( 0.24177223968739653 - 0.053589051007278135 * q2 ) / 106 ( 1 - 0.0977848994260899 * q2 ); 107 *a0f = ( 0.23996026570086615 - 0.03530198514007337 * q2 ) / 108 ( 1 - 0.09371162519983989 * q2 ); 109 *a1f = ( 0.17418379258849329 - 0.004129699022085851 * q2 * q2 ) / 110 ( 1 + 0.06607665248402918 * q2 ); 111 *a2f = ( 0.1352376939112041 - 0.040361722565209444 * q2 + 112 0.003343515369431853 * q2 * q2 ) / 113 ( 1 - 0.1463698128333418 * q2 ); 117 << "Must choose 0 (a1f = 1), 1 (Kiselev), or 2 (Ebert).\n"; 120 } else if ( idVector == EvtPDL::getId( "chi_c1" ).getId() ) { 121 if ( whichfit == 3 ) { 122 double SoverD = ( MBc + Mchi ) / ( MBc - Mchi ); 123 double DoverS = ( MBc - Mchi ) / ( MBc + Mchi ); 124 double ratio = q2 / ( MBc * MBc ); 126 double vf_0 = SoverD * 0.36; 130 double a2f_0 = SoverD * 0.15; 131 double a2f_c1 = 1.22; 132 double a2f_c2 = -0.08; 134 double a1f_0 = DoverS * 0.85; 135 double a1f_c1 = -0.51; 136 double a1f_c2 = -1.38; 139 double a0f_c1 = 2.99; 140 double a0f_c2 = 0.023; 142 *vf = vf_0 * exp( vf_c1 * ratio + vf_c2 * ratio * ratio ); 143 *a2f = a2f_0 * exp( a2f_c1 * ratio + a2f_c2 * ratio * ratio ); 144 *a1f = a1f_0 * exp( a1f_c1 * ratio + a1f_c2 * ratio * ratio ); 145 *a0f = a0f_0 * exp( a0f_c1 * ratio + a0f_c2 * ratio * ratio ); 149 << "Must choose 0 (a1f = 1) or 3 (Wang).\n"; 154 if ( whichfit == 1 ) { 156 double Mpole2 = 6.2 * 6.2, den = ( 1. - q2 / Mpole2 ); 157 if ( fabs( den ) < 1e-10 ) { 163 double FV = 0.20 / den, FAp = -0.062 / den, FA0 = 3.6, 165 *vf = ( MBc + MD0 ) * FV; 166 *a2f = -( MBc + MD0 ) * FAp; 167 *a1f = FA0 / ( MBc + MD0 ); 168 *a0f = ( q2 * FAm + ( MBc + MD0 ) * ( *a1f ) - 169 ( MBc - MD0 ) * ( *a2f ) ) / 173 } else if ( whichfit == 2 ) { 175 double ratio = q2 / MBc / MBc; 176 double const fV_0 = 0.202, fV_a = 1.38, fV_b = 1.31; 177 double const fA2_0 = 0.22, fA2_a = 2.44, fA2_b = -1.21; 178 double const fA0_0 = 0.144, fA0_a = 1.18, fA0_b = 1.39; 179 double const fA1_0 = 0.174, fA1_a = 1.69, fA1_b = -0.219; 181 *vf = fV_0 / ( 1 - fV_a * ratio - fV_b * ratio * ratio ); 182 *a2f = fA2_0 / ( 1 - fA2_a * ratio - fA2_b * ratio * ratio ); 183 *a0f = fA0_0 / ( 1 - fA0_a * ratio - fA0_b * ratio * ratio ); 184 *a1f = fA1_0 / ( 1 - fA1_a * ratio - fA1_b * ratio * ratio ); 188 << "FF should be 0 (a1f = 1), 1 (Kiselev 2002) or 2 (Ebert).\n"; 193 << "Only J/psi, psi(2S), chi_c1 and D*0/anti-D*0 implemented.\n"; 201 << "Not implemented :getscalarff in EvtBCVFF.\n"; 209 << "Not implemented :gettensorff in EvtBCVFF.\n"; 217 << "Not implemented :getbaryonff in EvtBCVFF.\n"; 222 double*, double*, double*, double* ) 225 << "Not implemented :getdiracff in EvtBCVFF.\n"; 230 double*, double*, double*, double*, double*, double* ) 233 << "Not implemented :getraritaff in EvtBCVFF.\n";
void getraritaff(EvtId, EvtId, double, double, double *, double *, double *, double *, double *, double *, double *, double *) override
void getdiracff(EvtId, EvtId, double, double, double *, double *, double *, double *, double *, double *) override
std::ostream & EvtGenReport(EvtGenSeverity severity, const char *facility=0)
void getscalarff(EvtId, EvtId, double, double, double *, double *) override
void getbaryonff(EvtId, EvtId, double, double, double *, double *, double *, double *) override
static double getMeanMass(EvtId i)
void getvectorff(EvtId parent, EvtId daught, double t, double mass, double *a1f, double *a2f, double *vf, double *a0f) override
void gettensorff(EvtId, EvtId, double, double, double *, double *, double *, double *) override
static EvtId getId(const std::string &name)
EvtBCVFF(int idV, int fit)
EvtComplex exp(const EvtComplex &c)
|