279 double mt =
exp( -DGtime );
280 double pt =
exp( +DGtime );
281 double cDMt = cos( DMtime );
282 double sDMt = sin( DMtime );
286 EvtComplex gplus = 0.5 * ( mt * termplus + pt * terminus );
287 EvtComplex gminus = 0.5 * ( mt * termplus - pt * terminus );
293 if ( other_b == BSB ) {
330 double mass[10] = {
m_MJpsi, mKK, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
331 double Kmass[10] = {
m_MKp,
m_MKm, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
332 double muMass[10] = {
m_Mmu,
m_Mmu, 0.0, 0.0, 0.0,
333 0.0, 0.0, 0.0, 0.0, 0.0 };
351 for (
int k = 0; k <= 3; k++ ) {
352 thisparticle = p->
getDaug( k );
356 muplus = thisparticle;
360 muminus = thisparticle;
364 Kplus = thisparticle;
368 Kminus = thisparticle;
377 double p4KK_mass2 = p4KK.
mass2();
378 double p4KK_mass = p4KK.
mass();
379 double p4Bs_mass2 = p4Bs.
mass2();
380 double p4Bs_mass = p4Bs.
mass();
383 double p3Kp_KK_CMS = sqrt( ( p4KK_mass2 - pow(
m_MKp +
m_MKm, 2 ) ) *
388 double p3Jpsi_KK_CMS = sqrt( ( p4Bs_mass2 - pow( p4KK_mass +
m_MJpsi, 2 ) ) *
389 ( p4Bs_mass2 - pow( p4KK_mass -
m_MJpsi, 2 ) ) ) /
412 double X_KK_1 =
X_J( 1, p3Kp_KK_CMS, 0 );
413 double X_KK_2 =
X_J( 2, p3Kp_KK_CMS, 0 );
414 double X_NR_Jpsi_1 =
X_J( 1, p3Jpsi_KK_CMS, 1 );
415 double X_f0_Jpsi_1 =
X_J( 1, p3Jpsi_KK_CMS, 1 );
416 double X_phi_Jpsi_0 = 1.0;
417 double X_f2p_Jpsi_1 =
X_J( 1, p3Jpsi_KK_CMS, 1 );
420 double f_PHSP = sqrt( p3Jpsi_KK_CMS * p3Kp_KK_CMS );
421 double f_BMF_NR = p3Jpsi_KK_CMS;
422 double f_BMF_f0 = p3Jpsi_KK_CMS;
423 double f_BMF_phi = p3Kp_KK_CMS;
424 double f_BMF_f2p = p3Kp_KK_CMS * p3Kp_KK_CMS * p3Jpsi_KK_CMS;
448 EvtComplex Amp_p_NR = P_NR * X_KK_0 * X_NR_Jpsi_1 * f_BMF_NR * mp_hS_NR;
452 EvtComplex Amp_p_f0 = F_f0 * X_KK_0 * X_f0_Jpsi_1 * f_BMF_f0 * mp_h_f0;
458 EvtComplex Amp_p_phi = BW_phi * X_KK_1 * X_phi_Jpsi_0 * f_BMF_phi *
459 ( mp_h0_phi + mp_hp_phi + mp_hm_phi );
465 EvtComplex Amp_p_f2p = BW_f2p * X_KK_2 * X_f2p_Jpsi_1 * f_BMF_f2p *
466 ( mp_h0_f2p + mp_hp_f2p + mp_hm_f2p );
473 EvtComplex Amp_m_NR = P_NR * X_KK_0 * X_NR_Jpsi_1 * f_BMF_NR * mm_hS_NR;
477 EvtComplex Amp_m_f0 = F_f0 * X_KK_0 * X_f0_Jpsi_1 * f_BMF_f0 * mm_h_f0;
483 EvtComplex Amp_m_phi = BW_phi * X_KK_1 * X_phi_Jpsi_0 * f_BMF_phi *
484 ( mm_h0_phi + mm_hp_phi + mm_hm_phi );
490 EvtComplex Amp_m_f2p = BW_f2p * X_KK_2 * X_f2p_Jpsi_1 * f_BMF_f2p *
491 ( mm_h0_f2p + mm_hp_f2p + mm_hm_f2p );
495 ( Amp_p_NR + Amp_p_f0 + Amp_p_phi + Amp_p_f2p );
497 ( Amp_m_NR + Amp_m_f0 + Amp_m_phi + Amp_m_f2p );
500 vertex( 0, 1, Amp_tot_plus );
501 vertex( 1, 0, Amp_tot_minus );
552 const int JB,
const double q0,
const double M_KK_ll,
553 const double M_KK_ul,
const int fcntype )
const
555 const int bins = 1000;
556 const double bin_width = ( M_KK_ul - M_KK_ll ) /
static_cast<double>( bins );
557 const double sumMKpKm2 = pow(
m_MKp +
m_MKm, 2 );
558 const double diffMKpKm2 = pow(
m_MKp -
m_MKm, 2 );
559 const double MBs2 = pow(
m_MBs, 2 );
563 for (
int i = 0; i < bins; i++ ) {
564 const double M_KK_i = M_KK_ll +
static_cast<double>( i ) * bin_width;
565 const double M_KK_f = M_KK_ll +
static_cast<double>( i + 1 ) * bin_width;
566 const double M_KK_i_sq = M_KK_i * M_KK_i;
567 const double M_KK_f_sq = M_KK_f * M_KK_f;
569 const double p3Kp_KK_CMS_i = sqrt( ( M_KK_i_sq - sumMKpKm2 ) *
570 ( M_KK_i_sq - diffMKpKm2 ) ) /
572 const double p3Kp_KK_CMS_f = sqrt( ( M_KK_f_sq - sumMKpKm2 ) *
573 ( M_KK_f_sq - diffMKpKm2 ) ) /
576 const double p3Jpsi_Bs_CMS_i =
577 sqrt( ( MBs2 - pow( M_KK_i +
m_MJpsi, 2 ) ) *
578 ( MBs2 - pow( M_KK_i -
m_MJpsi, 2 ) ) ) /
580 const double p3Jpsi_Bs_CMS_f =
581 sqrt( ( MBs2 - pow( M_KK_f +
m_MJpsi, 2 ) ) *
582 ( MBs2 - pow( M_KK_f -
m_MJpsi, 2 ) ) ) /
585 const double f_PHSP_i = sqrt( p3Kp_KK_CMS_i * p3Jpsi_Bs_CMS_i );
586 const double f_PHSP_f = sqrt( p3Kp_KK_CMS_f * p3Jpsi_Bs_CMS_f );
588 const double f_MBF_KK_i = pow( p3Kp_KK_CMS_i, JR );
589 const double f_MBF_KK_f = pow( p3Kp_KK_CMS_f, JR );
591 const double f_MBF_Bs_i = pow( p3Jpsi_Bs_CMS_i, JB );
592 const double f_MBF_Bs_f = pow( p3Jpsi_Bs_CMS_f, JB );
594 const double X_JR_i =
X_J( JR, p3Kp_KK_CMS_i, 0 );
595 const double X_JR_f =
X_J( JR, p3Kp_KK_CMS_f, 0 );
597 const double X_JB_i =
X_J( JB, p3Jpsi_Bs_CMS_i, 1 );
598 const double X_JB_f =
X_J( JB, p3Jpsi_Bs_CMS_f, 1 );
600 EvtComplex fcn_i( 1.0, 0.0 ), fcn_f( 1.0, 0.0 );
602 if ( fcntype == 1 ) {
603 fcn_i =
Flatte( m0, M_KK_i );
604 fcn_f =
Flatte( m0, M_KK_f );
606 }
else if ( fcntype == 2 ) {
607 fcn_i =
Breit_Wigner( Gamma0, m0, M_KK_i, JR, q0, p3Kp_KK_CMS_i );
608 fcn_f =
Breit_Wigner( Gamma0, m0, M_KK_f, JR, q0, p3Kp_KK_CMS_f );
611 const EvtComplex a_i = f_PHSP_i * f_MBF_KK_i * f_MBF_Bs_i * X_JR_i *
614 const EvtComplex a_f = f_PHSP_f * f_MBF_KK_f * f_MBF_Bs_f * X_JR_f *
618 integral += 0.5 * bin_width * ( a_i * a_st_i + a_f * a_st_f );
621 return sqrt(
abs2( integral ) );
virtual void init(EvtId part_n, const EvtVector4R &p4)=0
void setAttribute(std::string attName, int attValue)
EvtParticle * getDaug(const int i)
void makeDaughters(size_t ndaug, const EvtId *id)