39 {
40
41
42
44 double q2 = (
q.mass2() );
45
46 double fp, f0, ft;
48 double parentmass = parent->
mass();
49
51 f0, ft );
52
54 bool btod = false;
55 bool nnlo = true;
61 btod = true;
62
63 EvtVector4R p4b;
64 p4b.
set( parent->
mass(), 0.0, 0.0, 0.0 );
65
66 EvtVector4C l11, l12;
67 EvtVector4C l21, l22;
68
69 EvtVector4C a11, a12;
70 EvtVector4C a21, a22;
71
73
74 EvtVector4C T1, T2;
75
76 EvtVector4R phat = p4b / parentmass;
77 EvtVector4R qhat =
q / parentmass;
78
82
83
84 double mbhat = 4.4 / ( parentmass );
85
86 double mkhat = mesonmass / ( parentmass );
87 double shat = q2 / ( parentmass * parentmass );
88
89 double fm = ( f0 - fp ) * ( 1 - mkhat * mkhat ) / shat;
90
91 EvtComplex aprime;
92 aprime = c9eff * fp + 2.0 * mbhat * c7eff * ft / ( 1 + mkhat );
93 EvtComplex bprime;
94 bprime = c9eff * fm - 2 * mbhat * c7eff * ft * ( 1 - mkhat ) / shat;
95
96 EvtComplex cprime;
97 cprime = c10eff * fp;
98 EvtComplex dprime;
99 dprime = c10eff * fm;
100
101 static EvtIdSet leptons( "e-", "mu-", "tau-" );
102 static EvtIdSet antileptons( "e+", "mu+", "tau+" );
103
104 if ( leptons.contains( l_num ) )
105 {
106
107 T1 = aprime * phat + bprime * qhat;
108 T2 = cprime * phat + dprime * qhat;
109
126 }
127 else
128 {
129 if ( antileptons.contains( l_num ) )
130 {
131
132 T1 = aprime * phat + bprime * qhat;
133 T2 = cprime * phat + dprime * qhat;
134
143
152 }
153 else {
report(
ERROR,
"EvtGen" ) <<
"Wrong lepton number\n"; }
154 }
155
156 amp.
vertex( 0, 0, l11 * T1 + a11 * T2 );
157 amp.
vertex( 0, 1, l12 * T1 + a12 * T2 );
158 amp.
vertex( 1, 0, l21 * T1 + a21 * T2 );
159 amp.
vertex( 1, 1, l22 * T1 + a22 * T2 );
160}
EvtVector4C EvtLeptonACurrent(const EvtDiracSpinor &d, const EvtDiracSpinor &dp)
EvtVector4C EvtLeptonVCurrent(const EvtDiracSpinor &d, const EvtDiracSpinor &dp)
ostream & report(Severity severity, const char *facility)
****INTEGER imax DOUBLE PRECISION m_pi *DOUBLE PRECISION m_amfin DOUBLE PRECISION m_Chfin DOUBLE PRECISION m_Xenph DOUBLE PRECISION m_sinw2 DOUBLE PRECISION m_GFermi DOUBLE PRECISION m_MfinMin DOUBLE PRECISION m_ta2 INTEGER m_out INTEGER m_KeyFSR INTEGER m_KeyQCD *COMMON c_Semalib $ !copy of input $ !CMS energy $ !beam mass $ !final mass $ !beam charge $ !final charge $ !smallest final mass $ !Z mass $ !Z width $ !EW mixing angle $ !Gmu Fermi $ alphaQED at q
void vertex(const EvtComplex &)
static EvtId getId(const std::string &name)
virtual EvtDiracSpinor spParent(int) const
const EvtVector4R & getP4() const
EvtParticle * getDaug(int i)
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 getScalarFF(EvtId parent, EvtId daught, double t, double mass, double &fp, double &f0, double &ft)