32const float pi = 3.14159;
35 EvtComplex( 3.67e-3 * cos( 60 / 180 *
pi ), 3.67e-3 * cos( 60 / 180 *
pi ) );
41 -0.000813 * cos( 60 / 180 *
pi ) );
59 m_f1Map.insert( make_pair(
string(
"K" ), dummy ) );
62 m_f0Map.insert( make_pair(
string(
"K" ), dummy ) );
67 m_f1Map.insert( make_pair(
string(
"pi" ), dummy ) );
70 m_f0Map.insert( make_pair(
string(
"pi" ), dummy ) );
75 return "B_TO_2BARYON_SCALAR";
109 <<
"EvtBBScalar::init: Don't know what to do with this type as the first or second baryon\n";
119 return -sqrt( 1.5 ) *
G_p( t );
122 return -sqrt( 0.5 ) * (
G_p( t ) + 2 *
G_n( t ) );
125 return -
G_p( t ) - 2 *
G_n( t );
128 return G_p( t ) -
G_n( t );
131 return sqrt( 0.5 ) * (
G_p( t ) -
G_n( t ) );
134 return sqrt( 1.5 ) * (
G_p( t ) +
G_n( t ) );
137 <<
"EvtBBScalar::baryonF1F2: Don't know what to do with this type as the first or second baryon\n";
144 static const double gamma = 2.148;
145 static const double Lambda_0 = 0.3;
147 for (
size_t i = 0; i < params.size(); ++i ) {
148 result += params[i] / pow( t,
static_cast<int>( i + 1 ) );
150 return result * pow( log( t / pow( Lambda_0, 2 ) ), -gamma );
155 const vector<double> v_x(
m_x,
m_x + 5 );
161 const vector<double> v_y(
m_y,
m_y + 2 );
170 return -1 / sqrt( 6. ) * (
D_A( t ) + 3 *
F_A( t ) );
173 return 1 / sqrt( 2. ) * (
D_A( t ) -
F_A( t ) );
176 return D_A( t ) -
F_A( t );
179 return D_A( t ) +
F_A( t );
182 return 1 / sqrt( 2. ) * (
D_A( t ) +
F_A( t ) );
185 return -1 / sqrt( 6. ) * (
D_A( t ) - 3 *
F_A( t ) );
188 <<
"EvtBBScalar::baryon_gA: Don't know what to do with this type as the first or second baryon\n";
198 return -1 / sqrt( 6. ) * (
D_P( t ) + 3 *
F_P( t ) );
201 return 1 / sqrt( 2. ) * (
D_P( t ) -
F_P( t ) );
204 return D_P( t ) -
F_P( t );
207 return D_P( t ) +
F_P( t );
210 return 1 / sqrt( 2. ) * (
D_P( t ) +
F_P( t ) );
213 return -1 / sqrt( 6. ) * (
D_P( t ) - 3 *
F_P( t ) );
216 <<
"EvtBBScalar::baryon_gP: Don't know what to do with this type as the first or second baryon\n";
226 return -1 / sqrt( 6. ) * (
D_S( t ) + 3 *
F_S( t ) );
229 return 1 / sqrt( 2. ) * (
D_S( t ) -
F_S( t ) );
232 return D_S( t ) -
F_S( t );
235 return D_S( t ) +
F_S( t );
238 return 1 / sqrt( 2. ) * (
D_S( t ) +
F_S( t ) );
241 return -1 / sqrt( 6. ) * (
D_S( t ) - 3 *
F_S( t ) );
244 <<
"EvtBBScalar::baryon_fS: Don't know what to do with this type as the first or second baryon\n";
251 const double d_tilde[] = {
m_x[0] - 1.5 *
m_y[0], -478 };
252 const vector<double> v_d_tilde( d_tilde, d_tilde + 2 );
258 const double f_tilde[] = { 2. / 3 *
m_x[0] + 0.5 *
m_y[0], -478 };
259 const vector<double> v_f_tilde( f_tilde, f_tilde + 2 );
266 const vector<double> v_d_bar( d_bar, d_bar + 2 );
273 const vector<double> v_f_bar( f_bar, f_bar + 2 );
320 <<
"EvtBBScalar::init: Can only deal with Kaons or pions as the third particle\n"
321 <<
"\tFound: " << scalarId << endl;
353 for (
int i = 0; i < 2; ++i ) {
355 for (
int j = 0; j < 2; ++j ) {
359 for (
int index = 0; index < 4; ++index ) {
362 theAntiP, antiP_Pol, index ) +
364 theAntiP, antiP_Pol, index ) );
397 m_V_tb * m_V_ts_star * m_a4;
404 double mB2 = p4B.
mass2();
405 double mScalar2 = p4Scalar.
mass2();
406 double t = ( p4B - p4Scalar ).mass2();
407 return ( ( p4B + p4Scalar ) - ( mB2 - mScalar2 ) / t * ( p4B - p4Scalar ) ) *
409 ( mB2 - mScalar2 ) / t * ( p4B - p4Scalar ) *
B_pi_f0( t );
430 for (
int i = 0; i < 4; ++i ) {
438 return Adjb1Pol * gammaA;
449 for (
int i = 0; i < 4; ++i ) {
453 double mSum = baryon1->
mass() + baryon2->
mass();
456 for (
int mu = 0; mu < 0; ++mu ) {
458 for (
int i = 0; i < 4; ++i ) {
461 momentum.
set( mu, dummy );
465 mSum * momentum.
get( index ) ) *
478 for (
int mu = 0; mu < 4; ++mu ) {
480 for (
int i = 0; i < 4; ++i ) {
483 baryonSumP4.
set( mu, dummy );
486 return baryonSumP4.
get( index ) / (
m_mb -
m_mu ) *
std::ostream & EvtGenReport(EvtGenSeverity severity, const char *facility=nullptr)
double B_pi_f0(double t) const
std::map< std::string, FormFactor > m_f1Map
double G_n(double t) const
double baryon_hA(double t) const
static const EvtComplex m_V_tb
void initProbMax() override
static const EvtComplex m_const_C
void decay(EvtParticle *p) override
const EvtComplex amp_C_pseudoscalarPart(const EvtDiracSpinor &b1Pol, const EvtDiracSpinor &b2Pol, double t)
static const double m_y[]
double F_S(double t) const
static const EvtComplex m_a4
static const EvtComplex m_V_us_star
const EvtComplex amp_C_scalarPart(const EvtDiracSpinor &b1Pol, const EvtDiracSpinor &b2Pol, double t)
double baryon_fS(double t) const
std::bitset< nBaryons > m_baryonCombination
EvtBBScalar * clone() const override
static const double m_x[]
const EvtComplex amp_C(const EvtDiracParticle *baryon1, const EvtDiracSpinor &b1Pol, const EvtDiracParticle *baryon2, const EvtDiracSpinor &b2Pol, int index)
void setKnownBaryonTypes(const EvtId &baryon)
static const EvtComplex m_a6
const EvtComplex amp_B_vectorPart(const EvtDiracParticle *baryon1, const EvtDiracSpinor &b1Pol, const EvtDiracParticle *baryon2, const EvtDiracSpinor &b2Pol, int index)
static const EvtComplex m_a1
double D_A(double t) const
static const EvtComplex m_V_ub
static const EvtComplex m_I
double baryonF1F2(double t) const
double G_p(double t) const
double F_A(double t) const
const EvtComplex amp_B(const EvtDiracParticle *baryon1, const EvtDiracSpinor &b1Pol, const EvtDiracParticle *baryon2, const EvtDiracSpinor &b2Pol, int index)
std::string getName() const override
static const EvtComplex m_V_ts_star
double F_P(double t) const
const EvtComplex amp_B_axialPart(const EvtDiracParticle *baryon1, const EvtDiracSpinor &b1Pol, const EvtDiracParticle *baryon2, const EvtDiracSpinor &b2Pol, int index)
const EvtVector4C amp_A(const EvtVector4R &p4B, const EvtVector4R &p4Scalar)
double formFactorFit(double t, const std::vector< double > ¶ms) const
double B_pi_f1(double t) const
double D_S(double t) const
double baryon_gP(double t) const
static const EvtComplex m_const_B
double baryon_gA(double t) const
double D_P(double t) const
std::map< std::string, FormFactor > m_f0Map
const EvtAmp & amplitude() const
void vertex(const EvtComplex &)
void checkSpinDaughter(int d1, EvtSpinType::spintype sp)
void checkSpinParent(EvtSpinType::spintype sp)
void setProbMax(double prbmx)
EvtId getDaug(int i) const
void checkNDaug(int d1, int d2=-1)
void checkNArg(int a1, int a2=-1, int a3=-1, int a4=-1)
const EvtId * getDaugs() const
EvtDiracSpinor spParent(int i) const override
EvtDiracSpinor adjoint() const
static const EvtGammaMatrix & id()
static const EvtGammaMatrix & g(int)
static const EvtGammaMatrix & g5()
static int getStdHep(EvtId id)
static double getMass(EvtId i)
static EvtId getId(const std::string &name)
double initializePhaseSpace(size_t numdaughter, const EvtId *daughters, bool forceResetMasses=false, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)
EvtParticle * getDaug(const int i)
EvtVector4R getP4Lab() const
const EvtComplex & get(int i, int j) const
static const EvtTensor4C & g()
void set(int, const EvtComplex &)
const EvtComplex & get(int) const