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 
18 double 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 
64 double LEP2GIMR::sigmaFminusB_l_LEP2_GIMR(const QCD::lepton l, const double s,
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 
111 double 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 
155 double LEP2GIMR::sigmaFminusB_q_LEP2_GIMR(const QCD::quark q, const double s,
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 
201 double 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 
211 double 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 
221 double 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 
231 double 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 
241 double 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 
255 double 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 
269 double 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 
287 double 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 
305 double 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 
318 double 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 
331 double 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 
346 double 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 }
LEP2GIMR::SM
const StandardModel & SM
Definition: LEP2GIMR.h:48
StandardModel::cW2
virtual double cW2(const double Mw_i) const
The square of the cosine of the weak mixing angle in the on-shell scheme, denoted as .
Definition: StandardModel.cpp:1015
LEP2GIMR::deltaB1q
double deltaB1q(const QCD::quark q, const double GIMRParam_i[]) const
Definition: LEP2GIMR.cpp:269
LEP2GIMR::delta_gRe
Definition: LEP2GIMR.h:29
LEP2GIMR::C_RL
Definition: LEP2GIMR.h:29
LEP2GIMR::deltaB2l
double deltaB2l(const QCD::lepton l, const double GIMRParam_i[]) const
Definition: LEP2GIMR.cpp:346
LEP2GIMR.h
LEP2GIMR::deltaB2q
double deltaB2q(const QCD::quark q, const double GIMRParam_i[]) const
Definition: LEP2GIMR.cpp:287
LEP2GIMR::delta_gLf
Definition: LEP2GIMR.h:29
GammaZ
An observable class for the total decay width of the boson.
Definition: GammaZ.h:32
QCD::ELECTRON
Definition: QCD.h:312
Particle::getIsospin
double getIsospin() const
A get method to access the particle isospin.
Definition: Particle.h:115
StandardModel
A model class for the Standard Model.
Definition: StandardModel.h:477
LEP2GIMR::delta_GammaZ
Definition: LEP2GIMR.h:29
StandardModel::sW2
virtual double sW2(const double Mw_i) const
The square of the sine of the weak mixing angle in the on-shell scheme, denoted as .
Definition: StandardModel.cpp:1026
LEP2GIMR::delta_gLe
Definition: LEP2GIMR.h:29
LEP2GIMR::delta_gRf
Definition: LEP2GIMR.h:29
LEP2GIMR::gL_q
double gL_q(const QCD::quark q) const
Definition: LEP2GIMR.cpp:221
StandardModel::ale_OS
double ale_OS(const double mu, orders order=FULLNLO) const
The running electromagnetic coupling in the on-shell scheme.
Definition: StandardModel.cpp:533
LEP2GIMR::sigmaFminusB_q_LEP2_GIMR
double sigmaFminusB_q_LEP2_GIMR(const QCD::quark q, const double s, const double GIMRParam_i[]) const
Definition: LEP2GIMR.cpp:155
LEP2GIMR::C_LL
Definition: LEP2GIMR.h:29
LEP2GIMR::deltaB1l
double deltaB1l(const QCD::lepton l, const double GIMRParam_i[]) const
Definition: LEP2GIMR.cpp:331
LEP2GIMR::sigma_q_LEP2_GIMR
double sigma_q_LEP2_GIMR(const QCD::quark q, const double s, const double GIMRParam_i[]) const
Definition: LEP2GIMR.cpp:111
gslpp::sqrt
complex sqrt(const complex &z)
Definition: gslpp_complex.cpp:385
LEP2GIMR::C_LR
Definition: LEP2GIMR.h:29
Particle::getCharge
double getCharge() const
A get method to access the particle charge.
Definition: Particle.h:97
LEP2GIMR::deltaA2q
double deltaA2q(const QCD::quark q, const double GIMRParam_i[]) const
Definition: LEP2GIMR.cpp:255
QCD::getQuarks
Particle getQuarks(const QCD::quark q) const
A get method to access a quark as an object of the type Particle.
Definition: QCD.h:534
LEP2GIMR::gL_l
double gL_l(const QCD::lepton l) const
Definition: LEP2GIMR.cpp:201
QCD::quark
quark
An enum type for quarks.
Definition: QCD.h:323
LEP2GIMR::gR_l
double gR_l(const QCD::lepton l) const
Definition: LEP2GIMR.cpp:211
LEP2GIMR::gR_q
double gR_q(const QCD::quark q) const
Definition: LEP2GIMR.cpp:231
LEP2GIMR::C_RR
Definition: LEP2GIMR.h:29
StandardModel::getMz
double getMz() const
A get method to access the mass of the boson .
Definition: StandardModel.h:721
LEP2GIMR::delta_Mz2
Definition: LEP2GIMR.h:29
LEP2GIMR::deltaA1q
double deltaA1q(const QCD::quark q, const double GIMRParam_i[]) const
Definition: LEP2GIMR.cpp:241
LEP2GIMR::deltaA2l
double deltaA2l(const QCD::lepton l, const double GIMRParam_i[]) const
Definition: LEP2GIMR.cpp:318
LEP2GIMR::deltaA1l
double deltaA1l(const QCD::lepton l, const double GIMRParam_i[]) const
Definition: LEP2GIMR.cpp:305
LEP2GIMR::LEP2GIMR
LEP2GIMR(const StandardModel &SM_i)
LEP2GIMR constructor.
Definition: LEP2GIMR.cpp:11
StandardModel::Gamma_Z
virtual double Gamma_Z() const
The total decay width of the boson, .
Definition: StandardModel.cpp:1344
FULLNLO
Definition: OrderScheme.h:37
QCD::lepton
lepton
An enum type for leptons.
Definition: QCD.h:310
LEP2GIMR::sigma_l_LEP2_GIMR
double sigma_l_LEP2_GIMR(const QCD::lepton l, const double s, const double GIMRParam_i[]) const
Definition: LEP2GIMR.cpp:18
LEP2GIMR::sigmaFminusB_l_LEP2_GIMR
double sigmaFminusB_l_LEP2_GIMR(const QCD::lepton l, const double s, const double GIMRParam_i[]) const
Definition: LEP2GIMR.cpp:64
StandardModel::getLeptons
Particle getLeptons(const QCD::lepton p) const
A get method to retrieve the member object of a lepton.
Definition: StandardModel.h:712