40 {
41
42
43
46 double q2 = (
q.mass2());
47
48
49 double a1,a2,a0,
v,t1,t2,t3;
51 double parentmass = parent->
mass();
52
55 q2,
56 mesonmass,
58
59
61 bool btod = false;
62 bool nnlo = true;
63 if
64 (
69 )
70 btod = true;
71
73 p4b.
set(parent->
mass(),0.0,0.0,0.0);
75
78
81
83
84
85
90
95
96 double mhatb=4.4/(parentmass);
97 double mhatkstar=mesonmass/(parentmass);
98 double shat=q2/(parentmass*parentmass);
99
100
102 a=c9eff*
v*2/(1+mhatkstar)+4*mhatb*c7eff*t1/shat;
104 b=(1+mhatkstar)*(c9eff*a1+2*mhatb*(1-mhatkstar)*c7eff*t2/shat);
106 c=((1-mhatkstar)*c9eff*a2+
107 2*mhatb*c7eff*(t3+(1-mhatkstar*mhatkstar)*t2/shat))/
108 (1-mhatkstar*mhatkstar);
110 d=(c9eff*((1+mhatkstar)*a1-(1-mhatkstar)*a2-2*mhatkstar*a0)
111 -2*mhatb*c7eff*t3)/shat;
113 e=2*c10eff*
v/(1+mhatkstar);
115 f=(1+mhatkstar)*c10eff*a1;
117 g=c10eff*a2/(1+mhatkstar);
119 h=c10eff*((1+mhatkstar)*a1-(1-mhatkstar)*a2-2*mhatkstar*a0)/shat;
120
122
123 static EvtIdSet bmesons(
"B-",
"anti-B0");
124 static EvtIdSet bbarmesons(
"B+",
"B0");
125
128
131
132 lepPlus = (charge1 > charge2) ? parent->
getDaug(1) : parent->
getDaug(2);
133 lepMinus = (charge1 < charge2) ? parent->
getDaug(1) : parent->
getDaug(2);
134
135
136
137
138
139 if (bmesons.contains(parentID)) {
140
145
150
152 lepMinus->spParent(0));
154 lepMinus->spParent(0));
156 lepMinus->spParent(1));
158 lepMinus->spParent(1));
159
161 lepMinus->spParent(0));
163 lepMinus->spParent(0));
165 lepMinus->spParent(1));
167 lepMinus->spParent(1));
168
169 } else {
170
171 if (bbarmesons.contains(parentID)) {
172
177
182
184 lepMinus->spParent(1));
186 lepMinus->spParent(1));
188 lepMinus->spParent(0));
190 lepMinus->spParent(0));
191
193 lepMinus->spParent(1));
195 lepMinus->spParent(1));
197 lepMinus->spParent(0));
199 lepMinus->spParent(0));
200
201 }
202 else{
204 }
205 }
206
207
208 int i;
209
210 for(i=0;i<3;i++){
212
215
216 amp.
vertex(i,0,0,l11*E1+a11*E2);
217 amp.
vertex(i,0,1,l12*E1+a12*E2);
218 amp.
vertex(i,1,0,l21*E1+a21*E2);
219 amp.
vertex(i,1,1,l22*E1+a22*E2);
220 }
221}
Evt3Rank3C directProd(const EvtVector3C &c1, const EvtVector3C &c2, const EvtVector3C &c3)
EvtVector4C EvtLeptonACurrent(const EvtDiracSpinor &d, const EvtDiracSpinor &dp)
EvtVector4C EvtLeptonVCurrent(const EvtDiracSpinor &d, const EvtDiracSpinor &dp)
ostream & report(Severity severity, const char *facility)
EvtTensor3C eps(const EvtVector3R &v)
EvtTensor4C dual(const EvtTensor4C &t2)
****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
**********Class see also m_nmax DOUBLE PRECISION m_amel DOUBLE PRECISION m_x2 DOUBLE PRECISION m_alfinv DOUBLE PRECISION m_Xenph INTEGER m_KeyWtm INTEGER m_idyfs DOUBLE PRECISION m_zini DOUBLE PRECISION m_q2 DOUBLE PRECISION m_Wt_KF DOUBLE PRECISION m_WtCut INTEGER m_KFfin *COMMON c_KarLud $ !Input CMS energy[GeV] $ !CMS energy after beam spread beam strahlung[GeV] $ !Beam energy spread[GeV] $ !z boost due to beam spread $ !electron beam mass *ff pair spectrum $ !minimum v
void vertex(const EvtComplex &)
static EvtId getId(const std::string &name)
virtual EvtVector4C epsParent(int i) const
const EvtVector4R & getP4() const
EvtParticle * getDaug(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 parent, EvtId daught, double t, double mass, double &a1, double &a2, double &a0, double &v, double &t1, double &t2, double &t3)
TFile f("ana_bhabha660a_dqa_mcPat_zy_old.root")