a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
LEP2GIMR.cpp
Go to the documentation of this file.
1/*
2 * Copyright (C) 2012 HEPfit Collaboration
3 *
4 *
5 * For the licensing terms see doc/COPYING.
6 */
7
8#include "LEP2GIMR.h"
9
10
12: SM(SM_i)
13{
14}
15
16
17
18double LEP2GIMR::sigma_l_LEP2_GIMR(const QCD::lepton l, const double s,
19 const double GIMRParam_i[]) const
20{
21 double Mz = SM.getMz();
22 double Nf = 1.0;
24 double Ql = SM.getLeptons(l).getCharge();
25 double GammaZ = SM.Gamma_Z();
26 double deltaGammaZ = GIMRParam_i[delta_GammaZ];
27 double alpha = SM.ale_OS(sqrt(s), FULLNLO);
28 double alpha2 = alpha*alpha;
29 double deltaMzsq = GIMRParam_i[delta_Mz2];
30 double GRl = gR_l(l);
31 double GLl = gL_l(l);
32 double GRe = gR_l(StandardModel::ELECTRON);
33 double GLe = gL_l(StandardModel::ELECTRON);
34 double sW2 = SM.sW2();
35 double cW = sqrt(1. - SM.cW2());
36 double cW2 = cW*cW;
37 double CLL = GIMRParam_i[C_LL];
38 double CLR = GIMRParam_i[C_LR];
39 double CRL = GIMRParam_i[C_RL];
40 double CRR = GIMRParam_i[C_RR];
41 complex denom = complex(s - Mz*Mz, Mz*GammaZ, false);
42 complex chiZ = s/denom;
43 complex deltachiZ = chiZ/denom*(complex(deltaMzsq,-Mz*deltaGammaZ-GammaZ*deltaMzsq/(2.0*Mz)));
44 complex chideltachi = (chiZ*deltachiZ.conjugate()+chiZ.conjugate()*deltachiZ);
45 double dA1l=deltaA1l(l,GIMRParam_i);
46 double dA2l=deltaA2l(l,GIMRParam_i);
47 double dB1l=deltaB1l(l,GIMRParam_i);
48 double dB2l=deltaB2l(l,GIMRParam_i);
49
50
51 double ds = alpha/(6.0)*Nf*(CLL*(GLl*GLe/(cW2*sW2)*chiZ.real()+Ql*Qe)
52 + CLR*(GLe*GRl/(cW2*sW2)*chiZ.real()+Ql*Qe)
53 + CRL*(GLl*GRe/(cW2*sW2)*chiZ.real()+Qe*Ql)
54 + CRR*(GRl*GRe/(cW2*sW2)*chiZ.real()+Qe*Ql))
55 + 2.*alpha2*Nf*M_PI*Ql*Qe/(3.*cW2*sW2*s)*(chiZ.real()*(dA1l+dA2l)
56 + deltachiZ.real()*(GLl+GRl)*(GLe+GRe))
57 + alpha2*Nf*M_PI/(3.*cW2*cW2*sW2*sW2*s)*(2.*chiZ.abs2()*(dB1l+dB2l)
58 + chideltachi.real()*(GLl*GLl+GRl*GRl)*(GLe*GLe+GRe*GRe));
59
60 return ds;
61 }
62
63
65 const double GIMRParam_i[]) const
66{
67 double Mz = SM.getMz();
68 double Nf = 1.0;
70 double Ql = SM.getLeptons(l).getCharge();
71 double GammaZ = SM.Gamma_Z();
72 double deltaGammaZ = GIMRParam_i[delta_GammaZ];
73 double alpha = SM.ale_OS(sqrt(s), FULLNLO);
74 double alpha2 = alpha*alpha;
75 double deltaMzsq = GIMRParam_i[delta_Mz2];
76 double GRl = gR_l(l);
77 double GLl = gL_l(l);
78 double GRe = gR_l(StandardModel::ELECTRON);
79 double GLe = gL_l(StandardModel::ELECTRON);
80 double sW2 = SM.sW2();
81 double cW = sqrt(1. - SM.cW2());
82 double cW2 = cW*cW;
83 double CLL = GIMRParam_i[C_LL];
84 double CLR = GIMRParam_i[C_LR];
85 double CRL = GIMRParam_i[C_RL];
86 double CRR = GIMRParam_i[C_RR];
87 complex denom = complex(s - Mz*Mz, Mz*GammaZ, false);
88 complex chiZ = s/denom;
89 complex deltachiZ = chiZ/denom*(complex(deltaMzsq,-Mz*deltaGammaZ-GammaZ*deltaMzsq/(2.0*Mz)));
90 complex chideltachi = (chiZ*deltachiZ.conjugate()+chiZ.conjugate()*deltachiZ);
91 double dA1l=deltaA1l(l,GIMRParam_i);
92 double dA2l=deltaA2l(l,GIMRParam_i);
93 double dB1l=deltaB1l(l,GIMRParam_i);
94 double dB2l=deltaB2l(l,GIMRParam_i);
95
96
97 double ds = alpha/(8.0)*Nf*(CLL*(GLl*GLe/(cW2*sW2)*chiZ.real()+Ql*Qe)
98 - CLR*(GLe*GRl/(cW2*sW2)*chiZ.real()+Ql*Qe)
99 - CRL*(GLl*GRe/(cW2*sW2)*chiZ.real()+Qe*Ql)
100 + CRR*(GRl*GRe/(cW2*sW2)*chiZ.real()+Qe*Ql))
101 + alpha2*Nf*M_PI*Ql*Qe/(2.*cW2*sW2*s)*(chiZ.real()*(dA1l-dA2l)
102 + deltachiZ.real()*(GLl-GRl)*(GLe-GRe))
103 + alpha2*Nf*M_PI/(4.*cW2*cW2*sW2*sW2*s)*(2.*chiZ.abs2()*(dB1l-dB2l)
104 + chideltachi.real()*(GLl*GLl-GRl*GRl)*(GLe*GLe-GRe*GRe));
105
106 return ds;
107 }
108
109
110
111double LEP2GIMR::sigma_q_LEP2_GIMR(const QCD::quark q, const double s,
112 const double GIMRParam_i[]) const
113{
114 double Mz = SM.getMz();
115 double Nf = 3.0;
117 double Qq = SM.getQuarks(q).getCharge();
118 double GammaZ = SM.Gamma_Z();
119 double deltaGammaZ = GIMRParam_i[delta_GammaZ];
120 double alpha = SM.ale_OS(sqrt(s), FULLNLO);
121 double alpha2 = alpha*alpha;
122 double deltaMzsq = GIMRParam_i[delta_Mz2];
123 double GRq = gR_q(q);
124 double GLq = gL_q(q);
125 double GRe = gR_l(StandardModel::ELECTRON);
126 double GLe = gL_l(StandardModel::ELECTRON);
127 double sW2 = SM.sW2();
128 double cW = sqrt(1. - SM.cW2());
129 double cW2 = cW*cW;
130 double CLL = GIMRParam_i[C_LL];
131 double CLR = GIMRParam_i[C_LR];
132 double CRL = GIMRParam_i[C_RL];
133 double CRR = GIMRParam_i[C_RR];
134 complex denom = complex(s - Mz*Mz, Mz*GammaZ, false);
135 complex chiZ = s/denom;
136 complex deltachiZ = chiZ/denom*(complex(deltaMzsq,-Mz*deltaGammaZ-GammaZ*deltaMzsq/(2.0*Mz)));
137 complex chideltachi = (chiZ*deltachiZ.conjugate()+chiZ.conjugate()*deltachiZ);
138 double dA1q=deltaA1q(q,GIMRParam_i);
139 double dA2q=deltaA2q(q,GIMRParam_i);
140 double dB1q=deltaB1q(q,GIMRParam_i);
141 double dB2q=deltaB2q(q,GIMRParam_i);
142
143 double ds = alpha/(6.0)*Nf*(CLL*(GLq*GLe/(cW2*sW2)*chiZ.real()+Qq*Qe)
144 + CLR*(GLe*GRq/(cW2*sW2)*chiZ.real()+Qq*Qe)
145 + CRL*(GLq*GRe/(cW2*sW2)*chiZ.real()+Qe*Qq)
146 + CRR*(GRq*GRe/(cW2*sW2)*chiZ.real()+Qe*Qq))
147 + 2.*alpha2*Nf*M_PI*Qq*Qe/(3.*cW2*sW2*s)*(chiZ.real()*(dA1q+dA2q)
148 + deltachiZ.real()*(GLq+GRq)*(GLe+GRe))
149 + alpha2*Nf*M_PI/(3.*cW2*cW2*sW2*sW2*s)*(2.*chiZ.abs2()*(dB1q+dB2q)
150 + chideltachi.real()*(GLq*GLq+GRq*GRq)*(GLe*GLe+GRe*GRe));
151
152 return ds;
153 }
154
156 const double GIMRParam_i[]) const
157{
158 double Mz = SM.getMz();
159 double Nf = 3.0;
161 double Qq = SM.getQuarks(q).getCharge();
162 double GammaZ = SM.Gamma_Z();
163 double deltaGammaZ = GIMRParam_i[delta_GammaZ];
164 double alpha = SM.ale_OS(sqrt(s), FULLNLO);
165 double alpha2 = alpha*alpha;
166 double deltaMzsq = GIMRParam_i[delta_Mz2];
167 double GRq = gR_q(q);
168 double GLq = gL_q(q);
169 double GRe = gR_l(StandardModel::ELECTRON);
170 double GLe = gL_l(StandardModel::ELECTRON);
171 double sW2 = SM.sW2();
172 double cW = sqrt(1. - SM.cW2());
173 double cW2 = cW*cW;
174 double CLL = GIMRParam_i[C_LL];
175 double CLR = GIMRParam_i[C_LR];
176 double CRL = GIMRParam_i[C_RL];
177 double CRR = GIMRParam_i[C_RR];
178 complex denom = complex(s - Mz*Mz, Mz*GammaZ, false);
179 complex chiZ = s/denom;
180 complex deltachiZ = chiZ/denom*(complex(deltaMzsq,-Mz*deltaGammaZ-GammaZ*deltaMzsq/(2.0*Mz)));
181 complex chideltachi = (chiZ*deltachiZ.conjugate()+chiZ.conjugate()*deltachiZ);
182 double dA1q=deltaA1q(q,GIMRParam_i);
183 double dA2q=deltaA2q(q,GIMRParam_i);
184 double dB1q=deltaB1q(q,GIMRParam_i);
185 double dB2q=deltaB2q(q,GIMRParam_i);
186
187 double ds = alpha/(8.0)*Nf*(CLL*(GLq*GLe/(cW2*sW2)*chiZ.real()+Qq*Qe)
188 - CLR*(GLe*GRq/(cW2*sW2)*chiZ.real()+Qq*Qe)
189 - CRL*(GLq*GRe/(cW2*sW2)*chiZ.real()+Qe*Qq)
190 + CRR*(GRq*GRe/(cW2*sW2)*chiZ.real()+Qe*Qq))
191 + alpha2*Nf*M_PI*Qq*Qe/(4.*cW2*sW2*s)*(chiZ.real()*(dA1q-dA2q)
192 + deltachiZ.real()*(GLq-GRq)*(GLe-GRe))
193 + alpha2*Nf*M_PI/(4.*cW2*cW2*sW2*sW2*s)*(2.*chiZ.abs2()*(dB1q-dB2q)
194 + chideltachi.real()*(GLq*GLq-GRq*GRq)*(GLe*GLe-GRe*GRe));
195
196 return ds;
197 }
198
199
200
201double LEP2GIMR::gL_l(const QCD::lepton l) const
202{
203 double gA = SM.getLeptons(l).getIsospin();
204 double gV = SM.getLeptons(l).getIsospin()-2.0*SM.getLeptons(l).getCharge()*SM.sW2();
205 double gL = (gA + gV)/2.;
206
207 return gL;
208 }
209
210
211double LEP2GIMR::gR_l(const QCD::lepton l) const
212{
213 double gA = SM.getLeptons(l).getIsospin();
214 double gV = SM.getLeptons(l).getIsospin()-2.0*SM.getLeptons(l).getCharge()*SM.sW2();
215 double gR = (gV - gA)/2.;
216
217 return gR;
218 }
219
220
221double LEP2GIMR::gL_q(const QCD::quark q) const
222{
223 double gA = SM.getQuarks(q).getIsospin();
224 double gV = SM.getQuarks(q).getIsospin()-2.0*SM.getQuarks(q).getCharge()*SM.sW2();
225 double gL = (gA + gV)/2.;
226
227 return gL;
228 }
229
230
231double LEP2GIMR::gR_q(const QCD::quark q) const
232{
233 double gA = SM.getQuarks(q).getIsospin();
234 double gV = SM.getQuarks(q).getIsospin()-2.0*SM.getQuarks(q).getCharge()*SM.sW2();
235 double gR = (gV - gA)/2.;
236
237 return gR;
238 }
239
240
241double LEP2GIMR::deltaA1q(const QCD::quark q, const double GIMRParam_i[]) const
242{
243 double A1q;
244 double deltaGLf = GIMRParam_i[delta_gLf];
245 double deltaGRf = GIMRParam_i[delta_gRf];
246 double deltaGLe = GIMRParam_i[delta_gLe];
247 double deltaGRe = GIMRParam_i[delta_gRe];
248 A1q = deltaGLe * gL_q(q) + deltaGRe * gR_q(q)
249 + gL_l(StandardModel::ELECTRON) * deltaGLf
250 + gR_l(StandardModel::ELECTRON) * deltaGRf;
251
252 return A1q;
253}
254
255double LEP2GIMR::deltaA2q(const QCD::quark q, const double GIMRParam_i[]) const
256{
257 double A2q;
258 double deltaGLf = GIMRParam_i[delta_gLf];
259 double deltaGRf = GIMRParam_i[delta_gRf];
260 double deltaGLe = GIMRParam_i[delta_gLe];
261 double deltaGRe = GIMRParam_i[delta_gRe];
262 A2q = deltaGLe * gR_q(q) + deltaGRe * gL_q(q)
263 + gL_l(StandardModel::ELECTRON) * deltaGRf
264 + gR_l(StandardModel::ELECTRON) * deltaGLf;
265
266 return A2q;
267}
268
269double LEP2GIMR::deltaB1q(const QCD::quark q, const double GIMRParam_i[]) const
270{
271 double B1q;
272 double deltaGLf = GIMRParam_i[delta_gLf];
273 double deltaGRf = GIMRParam_i[delta_gRf];
274 double deltaGLe = GIMRParam_i[delta_gLe];
275 double deltaGRe = GIMRParam_i[delta_gRe];
276 double gL_q2 = gL_q(q) * gL_q(q);
277 double gR_q2 = gR_q(q) * gR_q(q);
280 B1q = gL_l(StandardModel::ELECTRON) * gL_q2 * deltaGLe
281 + gR_l(StandardModel::ELECTRON) * gR_q2 * deltaGRe
282 + gL_l2 * gL_q(q) * deltaGLf + gR_l2 * gR_q(q) * deltaGRf;
283
284 return B1q;
285}
286
287double LEP2GIMR::deltaB2q(const QCD::quark q, const double GIMRParam_i[]) const
288{
289 double B2q;
290 double deltaGLf = GIMRParam_i[delta_gLf];
291 double deltaGRf = GIMRParam_i[delta_gRf];
292 double deltaGLe = GIMRParam_i[delta_gLe];
293 double deltaGRe = GIMRParam_i[delta_gRe];
294 double gL_q2 = gL_q(q) * gL_q(q);
295 double gR_q2 = gR_q(q) * gR_q(q);
298 B2q = gL_l(StandardModel::ELECTRON) * gR_q2 * deltaGLe
299 + gR_l(StandardModel::ELECTRON) * gL_q2 * deltaGRe
300 + gR_l2 * gL_q(q) * deltaGLf + gL_l2 * gR_q(q) * deltaGRf;
301
302 return B2q;
303}
304
305double LEP2GIMR::deltaA1l(const QCD::lepton l, const double GIMRParam_i[]) const
306{
307 double A1l;
308 double deltaGLf = GIMRParam_i[delta_gLf];
309 double deltaGRf = GIMRParam_i[delta_gRf];
310 double deltaGLe = GIMRParam_i[delta_gLe];
311 double deltaGRe = GIMRParam_i[delta_gRe];
312 A1l = deltaGLe * gL_l(l) + deltaGRe * gR_l(l)
313 + gL_l(l) * deltaGLf + gR_l(l) * deltaGRf;
314
315 return A1l;
316}
317
318double LEP2GIMR::deltaA2l(const QCD::lepton l, const double GIMRParam_i[]) const
319{
320 double A2l;
321 double deltaGLf = GIMRParam_i[delta_gLf];
322 double deltaGRf = GIMRParam_i[delta_gRf];
323 double deltaGLe = GIMRParam_i[delta_gLe];
324 double deltaGRe = GIMRParam_i[delta_gRe];
325 A2l = deltaGLe * gR_l(l) + deltaGRe * gL_l(l)
326 + gL_l(l) * deltaGRf + gR_l(l) * deltaGLf;
327
328 return A2l;
329}
330
331double LEP2GIMR::deltaB1l(const QCD::lepton l, const double GIMRParam_i[]) const
332{
333 double B1l;
334 double deltaGLf = GIMRParam_i[delta_gLf];
335 double deltaGRf = GIMRParam_i[delta_gRf];
336 double deltaGLe = GIMRParam_i[delta_gLe];
337 double deltaGRe = GIMRParam_i[delta_gRe];
338 double gL_l2 = gL_l(l) * gL_l(l);
339 double gR_l2 = gR_l(l) * gR_l(l);
340 B1l = gL_l(l) * gL_l2 * deltaGLe + gR_l(l) * gR_l2 * deltaGRe
341 + gL_l2 * gL_l(l) * deltaGLf + gR_l2 * gR_l(l) * deltaGRf;
342
343 return B1l;
344}
345
346double LEP2GIMR::deltaB2l(const QCD::lepton l, const double GIMRParam_i[]) const
347{
348 double B2l;
349 double deltaGLf = GIMRParam_i[delta_gLf];
350 double deltaGRf = GIMRParam_i[delta_gRf];
351 double deltaGLe = GIMRParam_i[delta_gLe];
352 double deltaGRe = GIMRParam_i[delta_gRe];
353 double gL_l2 = gL_l(l) * gL_l(l);
354 double gR_l2 = gR_l(l) * gR_l(l);
355 B2l = gL_l(l) * gR_l2 * deltaGLe + gR_l(l) * gL_l2 * deltaGRe
356 + gR_l2 * gL_l(l) * deltaGLf + gL_l2 * gR_l(l) * deltaGRf;
357
358 return B2l;
359}
@ FULLNLO
Definition: OrderScheme.h:38
An observable class for the total decay width of the boson.
Definition: GammaZ.h:32
double deltaA2q(const QCD::quark q, const double GIMRParam_i[]) const
Definition: LEP2GIMR.cpp:255
double deltaB1l(const QCD::lepton l, const double GIMRParam_i[]) const
Definition: LEP2GIMR.cpp:331
double deltaB2l(const QCD::lepton l, const double GIMRParam_i[]) const
Definition: LEP2GIMR.cpp:346
double gL_q(const QCD::quark q) const
Definition: LEP2GIMR.cpp:221
double deltaA1q(const QCD::quark q, const double GIMRParam_i[]) const
Definition: LEP2GIMR.cpp:241
LEP2GIMR(const StandardModel &SM_i)
LEP2GIMR constructor.
Definition: LEP2GIMR.cpp:11
const StandardModel & SM
Definition: LEP2GIMR.h:48
double sigmaFminusB_l_LEP2_GIMR(const QCD::lepton l, const double s, const double GIMRParam_i[]) const
Definition: LEP2GIMR.cpp:64
double deltaB1q(const QCD::quark q, const double GIMRParam_i[]) const
Definition: LEP2GIMR.cpp:269
double deltaA1l(const QCD::lepton l, const double GIMRParam_i[]) const
Definition: LEP2GIMR.cpp:305
double sigma_l_LEP2_GIMR(const QCD::lepton l, const double s, const double GIMRParam_i[]) const
Definition: LEP2GIMR.cpp:18
double gR_l(const QCD::lepton l) const
Definition: LEP2GIMR.cpp:211
double deltaB2q(const QCD::quark q, const double GIMRParam_i[]) const
Definition: LEP2GIMR.cpp:287
double gL_l(const QCD::lepton l) const
Definition: LEP2GIMR.cpp:201
double gR_q(const QCD::quark q) const
Definition: LEP2GIMR.cpp:231
double sigmaFminusB_q_LEP2_GIMR(const QCD::quark q, const double s, const double GIMRParam_i[]) const
Definition: LEP2GIMR.cpp:155
@ delta_gLf
Definition: LEP2GIMR.h:29
@ C_RL
Definition: LEP2GIMR.h:29
@ C_LR
Definition: LEP2GIMR.h:29
@ C_RR
Definition: LEP2GIMR.h:29
@ delta_GammaZ
Definition: LEP2GIMR.h:29
@ delta_Mz2
Definition: LEP2GIMR.h:29
@ C_LL
Definition: LEP2GIMR.h:29
@ delta_gLe
Definition: LEP2GIMR.h:29
@ delta_gRe
Definition: LEP2GIMR.h:29
@ delta_gRf
Definition: LEP2GIMR.h:29
double sigma_q_LEP2_GIMR(const QCD::quark q, const double s, const double GIMRParam_i[]) const
Definition: LEP2GIMR.cpp:111
double deltaA2l(const QCD::lepton l, const double GIMRParam_i[]) const
Definition: LEP2GIMR.cpp:318
double getIsospin() const
A get method to access the particle isospin.
Definition: Particle.h:115
double getCharge() const
A get method to access the particle charge.
Definition: Particle.h:97
quark
An enum type for quarks.
Definition: QCD.h:323
lepton
An enum type for leptons.
Definition: QCD.h:310
@ ELECTRON
Definition: QCD.h:312
const Particle & getQuarks(const QCD::quark q) const
A get method to access a quark as an object of the type Particle.
Definition: QCD.h:536
A model class for the Standard Model.
const Particle & getLeptons(const QCD::lepton p) const
A get method to retrieve the member object of a lepton.
const double getMz() const
A get method to access the mass of the boson .
const double ale_OS(const double mu, orders order=FULLNLO) const
The running electromagnetic coupling in the on-shell scheme.
virtual const double Gamma_Z() const
The total decay width of the boson, .
virtual const double cW2(const double Mw_i) const
The square of the cosine of the weak mixing angle in the on-shell scheme, denoted as .
virtual const double sW2(const double Mw_i) const
The square of the sine of the weak mixing angle in the on-shell scheme, denoted as .
Test Observable.