55 double q2 = ( q.
mass2() );
57 double hf, kf, bpf, bmf;
63 double costhl_flag = 1.0;
65 if ( parent->
getId() == D0 || parent->
getId() == D0B ||
66 parent->
getId() == DP || parent->
getId() == DM ) {
69 if ( parent->
getId() == DSP || parent->
getId() == DSM ) {
72 hf = hf * costhl_flag;
75 p4b.
set( parent->
mass(), 0.0, 0.0, 0.0 );
102 double q2max = p4b.
mass2() + p4meson.mass2() -
103 2.0 * p4b.
mass() * p4meson.mass();
104 double q2maxin = 1.0 / q2max;
108 ep_meson_bb[0] = ep_meson_b[0] * ( p4b );
109 ep_meson_bb[1] = ep_meson_b[1] * ( p4b );
110 ep_meson_bb[2] = ep_meson_b[2] * ( p4b );
111 ep_meson_bb[3] = ep_meson_b[3] * ( p4b );
112 ep_meson_bb[4] = ep_meson_b[4] * ( p4b );
117 if ( l_num == EM || l_num == MUM || l_num == TAUM ) {
120 tds0 = tdual.
cont2( ep_meson_b[0] ) - kf * ep_meson_b[0] -
121 bpf * ep_meson_bb[0] * pp - bmf * ep_meson_bb[0] * pm;
124 tds1 = tdual.
cont2( ep_meson_b[1] ) - kf * ep_meson_b[1] -
125 bpf * ep_meson_bb[1] * pp - bmf * ep_meson_bb[1] * pm;
128 tds2 = tdual.
cont2( ep_meson_b[2] ) - kf * ep_meson_b[2] -
129 bpf * ep_meson_bb[2] * pp - bmf * ep_meson_bb[2] * pm;
132 tds3 = tdual.
cont2( ep_meson_b[3] ) - kf * ep_meson_b[3] -
133 bpf * ep_meson_bb[3] * pp - bmf * ep_meson_bb[3] * pm;
136 tds4 = tdual.
cont2( ep_meson_b[4] ) - kf * ep_meson_b[4] -
137 bpf * ep_meson_bb[4] * pp - bmf * ep_meson_bb[4] * pm;
145 if ( l_num == EP || l_num == MUP || l_num == TAUP ) {
148 tds0 = tdual.
cont2( ep_meson_b[0] ) - kf * ep_meson_b[0] -
149 bpf * ep_meson_bb[0] * pp - bmf * ep_meson_bb[0] * pm;
152 tds1 = tdual.
cont2( ep_meson_b[1] ) - kf * ep_meson_b[1] -
153 bpf * ep_meson_bb[1] * pp - bmf * ep_meson_bb[1] * pm;
156 tds2 = tdual.
cont2( ep_meson_b[2] ) - kf * ep_meson_b[2] -
157 bpf * ep_meson_bb[2] * pp - bmf * ep_meson_bb[2] * pm;
160 tds3 = tdual.
cont2( ep_meson_b[3] ) - kf * ep_meson_b[3] -
161 bpf * ep_meson_bb[3] * pp - bmf * ep_meson_bb[3] * pm;
164 tds4 = tdual.
cont2( ep_meson_b[4] ) - kf * ep_meson_b[4] -
165 bpf * ep_meson_bb[4] * pp - bmf * ep_meson_bb[4] * pm;
174 <<
"dfnb89agngri wrong lepton number\n";
178 amp.
vertex( 0, 0, l1 * tds0 );
179 amp.
vertex( 0, 1, l2 * tds0 );
181 amp.
vertex( 1, 0, l1 * tds1 );
182 amp.
vertex( 1, 1, l2 * tds1 );
184 amp.
vertex( 2, 0, l1 * tds2 );
185 amp.
vertex( 2, 1, l2 * tds2 );
187 amp.
vertex( 3, 0, l1 * tds3 );
188 amp.
vertex( 3, 1, l2 * tds3 );
190 amp.
vertex( 4, 0, l1 * tds4 );
191 amp.
vertex( 4, 1, l2 * tds4 );
virtual EvtTensor4C epsTensorParent(int i) const
EvtTensor3C directProd(const EvtVector3C &c1, const EvtVector3C &c2)
void CalcAmp(EvtParticle *parent, EvtAmp &, EvtSemiLeptonicFF *FormFactors) override
EvtTensor4C dual(const EvtTensor4C &t2)
std::ostream & EvtGenReport(EvtGenSeverity severity, const char *facility=0)
Evt3Rank3C conj(const Evt3Rank3C &t2)
EvtVector4C cont2(const EvtVector4C &v4) const
void set(int i, double d)
virtual EvtDiracSpinor spParent(int) const
void vertex(const EvtComplex &)
static EvtId getId(const std::string &name)
const EvtVector4R & getP4() const
virtual EvtDiracSpinor spParentNeutrino() const
EvtVector4C EvtLeptonVACurrent(const EvtDiracSpinor &d, const EvtDiracSpinor &dp)
virtual void gettensorff(EvtId parent, EvtId daught, double t, double mass, double *a1f, double *a2f, double *vf, double *a0f)=0
EvtParticle * getDaug(int i)