33 const float pi = 3.14159;
36 3.67e-3 * cos( 60 / 180 *
pi ) );
42 -0.000813 * cos( 60 / 180 *
pi ) );
45 const double EvtBBScalar::x[] = {420.96, -10485.50, 100639.97, -433916.61,
59 _f1Map.insert( make_pair(
string(
"K" ), dummy ) );
62 _f0Map.insert( make_pair(
string(
"K" ), dummy ) );
67 _f1Map.insert( make_pair(
string(
"pi" ), dummy ) );
70 _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";
118 return -sqrt( 1.5 ) *
G_p( t );
121 return -sqrt( 0.5 ) * (
G_p( t ) + 2 *
G_n( t ) );
124 return -
G_p( t ) - 2 *
G_n( t );
127 return G_p( t ) -
G_n( t );
130 return sqrt( 0.5 ) * (
G_p( t ) -
G_n( t ) );
133 return sqrt( 1.5 ) * (
G_p( t ) +
G_n( t ) );
136 <<
"EvtBBScalar::baryonF1F2: Don't know what to do with this type as the first or second baryon\n";
143 static const double gamma = 2.148;
144 static const double Lambda_0 = 0.3;
146 for (
size_t i = 0; i < params.size(); ++i ) {
147 result += params[i] / pow( t, static_cast<int>( i + 1 ) );
149 return result * pow( log( t / pow( Lambda_0, 2 ) ), -gamma );
154 const vector<double> v_x(
x,
x + 5 );
160 const vector<double> v_y(
y,
y + 2 );
168 return -1 / sqrt( 6. ) * (
D_A( t ) + 3 *
F_A( t ) );
171 return 1 / sqrt( 2. ) * (
D_A( t ) -
F_A( t ) );
174 return D_A( t ) -
F_A( t );
177 return D_A( t ) +
F_A( t );
180 return 1 / sqrt( 2. ) * (
D_A( t ) +
F_A( t ) );
183 return -1 / sqrt( 6. ) * (
D_A( t ) - 3 *
F_A( t ) );
186 <<
"EvtBBScalar::baryon_gA: Don't know what to do with this type as the first or second baryon\n";
195 return -1 / sqrt( 6. ) * (
D_P( t ) + 3 *
F_P( t ) );
198 return 1 / sqrt( 2. ) * (
D_P( t ) -
F_P( t ) );
201 return D_P( t ) -
F_P( t );
204 return D_P( t ) +
F_P( t );
207 return 1 / sqrt( 2. ) * (
D_P( t ) +
F_P( t ) );
210 return -1 / sqrt( 6. ) * (
D_P( t ) - 3 *
F_P( t ) );
213 <<
"EvtBBScalar::baryon_gP: Don't know what to do with this type as the first or second baryon\n";
222 return -1 / sqrt( 6. ) * (
D_S( t ) + 3 *
F_S( t ) );
225 return 1 / sqrt( 2. ) * (
D_S( t ) -
F_S( t ) );
228 return D_S( t ) -
F_S( t );
231 return D_S( t ) +
F_S( t );
234 return 1 / sqrt( 2. ) * (
D_S( t ) +
F_S( t ) );
237 return -1 / sqrt( 6. ) * (
D_S( t ) - 3 *
F_S( t ) );
240 <<
"EvtBBScalar::baryon_fS: Don't know what to do with this type as the first or second baryon\n";
247 const double d_tilde[] = {
x[0] - 1.5 *
y[0], -478};
248 const vector<double> v_d_tilde( d_tilde, d_tilde + 2 );
254 const double f_tilde[] = {2. / 3 *
x[0] + 0.5 *
y[0], -478};
255 const vector<double> v_f_tilde( f_tilde, f_tilde + 2 );
261 const double d_bar[] = {1.5 *
y[0] *
_massRatio, 0};
262 const vector<double> v_d_bar( d_bar, d_bar + 2 );
268 const double f_bar[] = {(
x[0] - 0.5 *
y[0] ) *
_massRatio, 0};
269 const vector<double> v_f_bar( f_bar, f_bar + 2 );
316 <<
"EvtBBScalar::init: Can only deal with Kaons or pions as the third particle\n" 317 <<
"\tFound: " << scalarId << endl;
344 EvtVector4R scalarMomentum = theScalar->getP4Lab();
349 for (
int i = 0; i < 2; ++i ) {
351 for (
int j = 0; j < 2; ++j ) {
355 for (
int index = 0; index < 4; ++index ) {
360 antiP_Pol, index ) );
377 double mv2 = f.
mV * f.
mV;
378 return f.
value / ( ( 1 - t / mv2 ) * ( 1 - f.
sigma1 * t / mv2 +
379 f.
sigma2 * t * t / mv2 / mv2 ) );
386 double mv2 = f.
mV * f.
mV;
392 V_tb * V_ts_star *
a4;
399 double mB2 = p4B.
mass2();
400 double mScalar2 = p4Scalar.
mass2();
401 double t = ( p4B - p4Scalar ).mass2();
402 return ( ( p4B + p4Scalar ) - ( mB2 - mScalar2 ) / t * ( p4B - p4Scalar ) ) *
404 ( mB2 - mScalar2 ) / t * ( p4B - p4Scalar ) *
B_pi_f0( t );
425 for (
int i = 0; i < 4; ++i ) {
433 return Adjb1Pol * gammaA;
444 for (
int i = 0; i < 4; ++i ) {
448 double mSum = baryon1->
mass() + baryon2->
mass();
451 for (
int mu = 0; mu < 0; ++mu ) {
453 for (
int i = 0; i < 4; ++i ) {
456 momentum.
set( mu, dummy );
460 mSum * momentum.
get( index ) ) *
473 for (
int mu = 0; mu < 4; ++mu ) {
475 for (
int i = 0; i < 4; ++i ) {
478 baryonSumP4.
set( mu, dummy );
481 return baryonSumP4.
get( index ) / (
m_b -
m_u ) *
double baryonF1F2(double t) const
double F_P(double t) const
double B_pi_f0(double t) const
double F_A(double t) const
EvtDiracSpinor adjoint() const
static const EvtTensor4C & g()
double D_A(double t) const
EvtVector4R getP4Lab() const
void set(int, const EvtComplex &)
double G_n(double t) const
const EvtVector4C amp_A(const EvtVector4R &p4B, const EvtVector4R &p4Scalar)
double D_S(double t) const
std::ostream & EvtGenReport(EvtGenSeverity severity, const char *facility=0)
static const EvtComplex const_C
EvtDiracSpinor spParent(int i) const override
const EvtAmp & amplitude() const
double formFactorFit(double t, const std::vector< double > ¶ms) const
const EvtComplex amp_B(const EvtDiracParticle *baryon1, const EvtDiracSpinor &b1Pol, const EvtDiracParticle *baryon2, const EvtDiracSpinor &b2Pol, int index)
std::bitset< nBaryons > _baryonCombination
const EvtComplex amp_C_pseudoscalarPart(const EvtDiracSpinor &b1Pol, const EvtDiracSpinor &b2Pol, double t)
double baryon_fS(double t) const
void setProbMax(double prbmx)
std::map< std::string, FormFactor > _f0Map
static const EvtComplex V_us_star
static const EvtComplex V_tb
const EvtComplex amp_B_vectorPart(const EvtDiracParticle *baryon1, const EvtDiracSpinor &b1Pol, const EvtDiracParticle *baryon2, const EvtDiracSpinor &b2Pol, int index)
static const EvtGammaMatrix & g(int)
void vertex(const EvtComplex &)
double initializePhaseSpace(unsigned int numdaughter, EvtId *daughters, bool forceResetMasses=false, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)
double B_pi_f1(double t) const
void decay(EvtParticle *p) override
double baryon_gP(double t) const
void checkNDaug(int d1, int d2=-1)
void checkSpinParent(EvtSpinType::spintype sp)
double baryon_hA(double t) const
void checkNArg(int a1, int a2=-1, int a3=-1, int a4=-1)
void setKnownBaryonTypes(const EvtId &baryon)
static EvtId getId(const std::string &name)
void checkSpinDaughter(int d1, EvtSpinType::spintype sp)
static const EvtComplex a1
std::string getName() override
double G_p(double t) const
void initProbMax() override
EvtBBScalar * clone() override
const EvtComplex & get(int) const
EvtParticle * getDaug(int i)
static const EvtComplex V_ts_star
static const EvtComplex I
static const EvtGammaMatrix & id()
static const EvtComplex V_ub
double D_P(double t) const
const EvtComplex amp_B_axialPart(const EvtDiracParticle *baryon1, const EvtDiracSpinor &b1Pol, const EvtDiracParticle *baryon2, const EvtDiracSpinor &b2Pol, int index)
const EvtComplex amp_C(const EvtDiracParticle *baryon1, const EvtDiracSpinor &b1Pol, const EvtDiracParticle *baryon2, const EvtDiracSpinor &b2Pol, int index)
static const EvtComplex const_B
static double getMass(EvtId i)
static const EvtComplex a4
const EvtComplex & get(int i, int j) const
double F_S(double t) const
static const EvtComplex a6
double baryon_gA(double t) const
const EvtComplex amp_C_scalarPart(const EvtDiracSpinor &b1Pol, const EvtDiracSpinor &b2Pol, double t)
static const EvtGammaMatrix & g5()
static int getStdHep(EvtId id)
std::map< std::string, FormFactor > _f1Map
EvtId getDaug(int i) const