43 double q2 = ( q.
mass2() );
45 double a1,
a2, a0, v, t1, t2, t3;
47 double parentmass = parent->
mass();
50 q2, mesonmass,
a1,
a2, a0, v, t1, t2, t3 );
76 p4b.
set( parent->
mass(), 0.0, 0.0, 0.0 );
99 double mhatb = 4.4 / ( parentmass );
100 double mhatkstar = mesonmass / ( parentmass );
101 double shat = q2 / ( parentmass * parentmass );
104 a = c9eff * v * 2 / ( 1 + mhatkstar ) + 4 * mhatb * c7eff * t1 / shat;
106 b = ( 1 + mhatkstar ) *
107 ( c9eff *
a1 + 2 * mhatb * ( 1 - mhatkstar ) * c7eff * t2 / shat );
109 c = ( ( 1 - mhatkstar ) * c9eff *
a2 +
110 2 * mhatb * c7eff * ( t3 + ( 1 - mhatkstar * mhatkstar ) * t2 / shat ) ) /
111 ( 1 - mhatkstar * mhatkstar );
113 d = ( c9eff * ( ( 1 + mhatkstar ) *
a1 - ( 1 - mhatkstar ) *
a2 -
114 2 * mhatkstar * a0 ) -
115 2 * mhatb * c7eff * t3 ) /
118 e = 2 * c10eff * v / ( 1 + mhatkstar );
120 f = ( 1 + mhatkstar ) * c10eff *
a1;
122 g = c10eff *
a2 / ( 1 + mhatkstar );
125 ( ( 1 + mhatkstar ) *
a1 - ( 1 - mhatkstar ) *
a2 - 2 * mhatkstar * a0 ) /
130 static const EvtIdSet bmesons{
"B-",
"anti-B0",
"anti-B_s0" };
131 static const EvtIdSet bbarmesons{
"B+",
"B0",
"B_s0" };
139 lepPlus = ( charge1 > charge2 ) ? parent->
getDaug( 1 ) : parent->
getDaug( 2 );
140 lepMinus = ( charge1 < charge2 ) ? parent->
getDaug( 1 )
143 if ( bmesons.
contains( parentID ) ) {
165 if ( bbarmesons.
contains( parentID ) ) {
203 for ( i = 0; i < 3; i++ ) {
209 amp.
vertex( i, 0, 0, l11 * E1 + a11 * E2 );
210 amp.
vertex( i, 0, 1, l12 * E1 + a12 * E2 );
211 amp.
vertex( i, 1, 0, l21 * E1 + a21 * E2 );
212 amp.
vertex( i, 1, 1, l22 * E1 + a22 * E2 );
EvtVector4C EvtLeptonACurrent(const EvtDiracSpinor &d, const EvtDiracSpinor &dp)
EvtVector4C EvtLeptonVCurrent(const EvtDiracSpinor &d, const EvtDiracSpinor &dp)
std::ostream & EvtGenReport(EvtGenSeverity severity, const char *facility=nullptr)
EvtTensor4C dual(const EvtTensor4C &t2)
void vertex(const EvtComplex &)
bool contains(const EvtId &id) const
static EvtId getId(const std::string &name)
virtual EvtVector4C epsParent(int i) const
virtual EvtDiracSpinor spParent(int) const
const EvtVector4R & getP4() const
EvtParticle * getDaug(const int i)
static const EvtTensor4C & g()
void set(int i, double d)
EvtComplex GetC7Eff(double q2, bool nnlo=true)
EvtComplex GetC10Eff(double q2, bool nnlo=true)
EvtComplex GetC9Eff(double q2, bool nnlo=true, bool btod=false)
virtual void getVectorFF(EvtId, EvtId, double, double, double &, double &, double &, double &, double &, double &, double &)
void CalcAmp(EvtParticle *parent, EvtAmp &, EvtbTosllFF *formFactors) override
EvtTensor3C directProd(const EvtVector3C &c1, const EvtVector3C &c2)