a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
ZFitterWrapper.cpp
Go to the documentation of this file.
1/*
2 * Copyright (C) 2012 HEPfit Collaboration
3 * All rights reserved.
4 *
5 * For the licensing terms see doc/COPYING.
6 */
7
8#include <stdlib.h>
9#include <iostream>
10#include <iomanip>
11#include <cmath>
12#include "ZFitter-f2c.h"
13#include "ZFitterWrapper.h"
14#include <stdexcept>
15
16
18: SM(SM_i)
19{
20 MzCache = 0.0;
21 MtCache = 0.0;
22 MhCache = 0.0;
23 AlsMzCache = 0.0;
24 DAle5MzCache = 0.0;
25
26 // constants
27 V_TB = 1.0;
28 UMASS = 0.1;
29 DMASS = 0.1;
30
31 init(0);
32
33 // Flags [default: AMT4=4, ISPP=2, ALEM = 3, FINR = 1]
34 int AFBC = 1, SCAL = 0, SCRE = 0, AMT4 = 6, BORN = 0,
35 BOXD = 1, CONV = 1, FINR = 0, FOT2 = 3, GAMS = 1,
36 DIAG = 1, INTF = 0, BARB = 2, PART = 0, POWR = 1,
37 PRNT = 0, ALEM = 2, QCDC = 3, VPOL = 1, WEAK = 1,
38 FTJR = 1, EXPR = 0, EXPF = 0, HIGS = 0, AFMT = 3,
39 CZAK = 1, PREC = 10,HIG2 = 0, ALE2 = 3, GFER = 2,
40 ISPP = 2, FSRS = 1, MISC = 0, MISD = 1, IPFC = 5,
41 IPSC = 0, IPTO = 3, FBHO = 0, FSPP = 0, FUNA = 0,
42 ASCR = 1, SFSR = 1, ENUE = 1, TUPV = 1, DMWW = 0,
43 DSWW = 0;
44
45 int flags[46] = {AFBC, SCAL, SCRE, AMT4, BORN, BOXD, CONV, FINR, FOT2, GAMS,
46 DIAG, INTF, BARB, PART, POWR, PRNT, ALEM, QCDC, VPOL, WEAK,
47 FTJR, EXPR, EXPF, HIGS, AFMT, CZAK, PREC, HIG2, ALE2, GFER,
48 ISPP, FSRS, MISC, MISD, IPFC, IPSC, IPTO, FBHO, FSPP, FUNA,
49 ASCR, SFSR, ENUE, TUPV, DMWW, DSWW};
50 setAllFlags(flags, 0);
51}
52
53
55
56void ZFitterWrapper::setFlag(const std::string CHFLAG, const int IVALUE) const
57{
58 zuflag_(CHFLAG.c_str(), &IVALUE, CHFLAG.size());
59 IsFlagChanged = true;
60}
61
62void ZFitterWrapper::setAllFlags(const int flags[46], const int flagPrint) const
63{
64
65 std::string flagNames[46]
66 = {"AFBC", "SCAL", "SCRE", "AMT4", "BORN",
67 "BOXD", "CONV", "FINR", "FOT2", "GAMS",
68 "DIAG", "INTF", "BARB", "PART", "POWR",
69 "PRNT", "ALEM", "QCDC", "VPOL", "WEAK",
70 "FTJR", "EXPR", "EXPF", "HIGS", "AFMT",
71 "CZAK", "PREC", "HIG2", "ALE2", "GFER",
72 "ISPP", "FSRS", "MISC", "MISD", "IPFC",
73 "IPSC", "IPTO", "FBHO", "FSPP", "FUNA",
74 "ASCR", "SFSR", "ENUE", "TUPV", "DMWW",
75 "DSWW" };
76
77 /* set flags */
78 int i;
79 for (i=0; i<46; i++) {
80 setFlag(flagNames[i].c_str(), flags[i]);
81 }
82
83 /* print flags if flagPrint=1 */
84 if (flagPrint==1) {
85 for (i=0; i<46; i++) {
86 std::cout << " " << flagNames[i].c_str() << ": " << flags[i];
87 if ((i+1)%5==0) std::cout << std::endl;
88 }
89 std::cout << std::endl << std::endl;
90 }
91}
92
94{
95 const int mode = 0;
96 zuinfo_(&mode);
97}
98
99
101
102void ZFitterWrapper::setCuts(const int INDF, const int ICUT, const double ACOL,
103 const double EMIN, const double S_PR, const double ANG0,
104 const double ANG1, const double SIPP) const
105{
106 zucuts_(&INDF, &ICUT, &ACOL, &EMIN, &S_PR, &ANG0, &ANG1, &SIPP);
107}
108
109void ZFitterWrapper::setAllCuts(const int ICUT[12], const double ACOL[12],
110 const double EMIN[12], const double S_PR[12],
111 const double ANG0[12], const double ANG1[12],
112 const double SPP[12], const int flagPrint) const
113{
114 /* set cuts */
115 int indexFermion;
116 for (indexFermion=0; indexFermion<12; indexFermion++) {
117 setCuts(indexFermion, ICUT[indexFermion], ACOL[indexFermion],
118 EMIN[indexFermion], S_PR[indexFermion], ANG0[indexFermion],
119 ANG1[indexFermion], SPP[indexFermion]);
120 }
121
122 /* print cuts if flagPrint=1 */
123 if (flagPrint==1) {
124 std::cout << " Channel ICUT ACOL EMIN S_PR ANG0 ANG1 SPP"
125 << std::endl;
126 for (indexFermion=0; indexFermion<12; indexFermion++) {
127 std::cout << std::setw(9) << convertINDF(indexFermion)
128 << std::setw(4) << ICUT[indexFermion]
129 << std::setw(7) << ACOL[indexFermion]
130 << std::setw(7) << EMIN[indexFermion]
131 << std::setw(9) << S_PR[indexFermion]
132 << std::setw(5) << ANG0[indexFermion]
133 << std::setw(5) << ANG1[indexFermion]
134 << std::setw(9) << SPP[indexFermion] << std::endl;
135 }
136 }
137}
138
139void ZFitterWrapper::setSprimeCut(const int INDF, const double s) const
140{
141 // Cuts
142 int ICUT;
143 double ACOL, EMIN, S_PR, ANG0, ANG1, SPP;
144 ICUT = -1;
145 //ICUT = 1;
146 ACOL = 0.0;// for ICUT=0,2,3
147 EMIN = 0.0;// for ICUT=0,2,3
148 S_PR = 0.85*0.85*s;// for ICUT=-1,1
149 ANG0 = 0.0;
150 ANG1 = 180.0;
151 SPP = 0.0;// for FSPP=1,2
152 setCuts(INDF, ICUT, ACOL, EMIN, S_PR, ANG0, ANG1, SPP);
153}
154
156{
157 const int mode = 1;
158 zuinfo_(&mode);
159}
160
161
163
164complex ZFitterWrapper::rhoZ_f(const int INDF) const
165{
166 if (INDF<0 || INDF>11)
167 throw std::runtime_error("Error in ZFitterWrapper::rhoZ_f");
169 return complex(getCommonAROTFZ(INDF), getCommonAIROFZ(INDF), false);
170}
171
172complex ZFitterWrapper::kappaZ_f(const int INDF) const
173{
174 if (INDF<0 || INDF>11)
175 throw std::runtime_error("Error in ZFitterWrapper::kappaZ_f");
177 return complex(getCommonARKAFZ(INDF), getCommonAIKAFZ(INDF), false);
178}
179
180complex ZFitterWrapper::gZ_f(const int INDF) const
181{
182 if (INDF<0 || INDF>11)
183 throw std::runtime_error("Error in ZFitterWrapper::gZ_f");
185 return complex(getCommonARVEFZ(INDF), getCommonAIVEFZ(INDF), false);
186}
187
188
190
191double ZFitterWrapper::Af(const int INDF) const
192{
193 if (INDF<0 || INDF>9)
194 throw std::runtime_error("Error in ZFitterWrapper::Af");
195 double Qf = getCommonALLCH(INDF);
196 double Re_gVf_over_gAf = 1.0 - 4.0*fabs(Qf)*kappaZ_f(INDF).real()*sw2();
197 return ( 2.0*Re_gVf_over_gAf/(1.0 + Re_gVf_over_gAf*Re_gVf_over_gAf) );
198}
199
200
202
204{
206 return ( calqed_.ALQEDZ );
207}
208
209double ZFitterWrapper::Mw() const
210{
212 return ( MzCache*sqrt(1.0 - getCommonSIN2TW()) );
213}
214
216{
218 return ( getCommonPARTW(2) );
219}
220
222{
224 return ( getCommonSIN2TW() );
225}
226
227double ZFitterWrapper::s2teff_f(const int INDF) const
228{
230 return ( getCommonARSEFZ(INDF) );
231}
232
233double ZFitterWrapper::Gamma_f(const int INDF) const
234{
236 return ( getCommonWIDTHS(INDF) );
237}
238
240{
242 return ( 3.0*getCommonWIDTHS(0) );
243}
244
246{
248 return ( getCommonWIDTHS(10) );
249}
250
252{
254 return ( getCommonWIDTHS(11) );
255}
256
258
259void ZFitterWrapper::calcXS_AFB(const int INDF, const double SQRS,
260 double *XS, double *AFB) const
261{
263 setSprimeCut(INDF, SQRS*SQRS);
264 zvthsm_(&INDF, &SQRS, &MzCache, &MtCache, &MhCache, &DAle5MzCache, &V_TB,
265 &AlsMzCache, XS, AFB);
266}
267
268void ZFitterWrapper::calcDXS(const int INDF, const double SQRS,
269 const double CSA, double *DXS) const
270{
272 setSprimeCut(INDF, SQRS*SQRS);
273 zvatsm_(&INDF, &SQRS, &MzCache, &MtCache, &MhCache, &DAle5MzCache, &V_TB,
274 &AlsMzCache, &CSA, DXS);
275}
276
277void ZFitterWrapper::calcTauPol(const double SQRS, double *TAUPOL, double *TAUAFB) const
278{
280 setSprimeCut(3, SQRS*SQRS);
282 &AlsMzCache, TAUPOL, TAUAFB);
283}
284
285void ZFitterWrapper::calcALR(const int INDF, const double SQRS, const double POL,
286 double *XSPL, double *XSMI) const {
288 setSprimeCut(INDF, SQRS*SQRS);
289 zvlrsm_(&INDF, &SQRS, &MzCache, &MtCache, &MhCache, &DAle5MzCache, &V_TB,
290 &AlsMzCache, &POL, XSPL, XSMI);
291}
292
293void ZFitterWrapper::calcAPV(double *C1U, double *C1D, double *C2U, double *C2D) const
294{
296 double SIN2TW = getCommonSIN2TW();
298 C1U, C1D, C2U, C2D);
299}
300
301void ZFitterWrapper::calcXS(const int INDF, const double SQRS, const double GAMZ0,
302 const double GAMEE, const double GAMFF, double *XS) const
303{
305 setSprimeCut(INDF, SQRS*SQRS);
306 zuxsec_(&INDF, &SQRS, &MzCache, &GAMZ0, &GAMEE, &GAMFF, XS);
307}
308
309void ZFitterWrapper::calcXS_AFB_2(const int INDF, const double SQRS, const double GAMZ0,
310 const int MODE, const double GVE, const double XE,
311 const double GVF, const double XF,
312 double *XS, double *AFB) const
313{
315 setSprimeCut(INDF, SQRS*SQRS);
316 zuxsa_(&INDF, &SQRS, &MzCache, &GAMZ0, &MODE, &GVE, &XE, &GVF, &XF, XS, AFB);
317}
318
319void ZFitterWrapper::calcXS_AFB_3(const int INDF, const double SQRS, const double GAMZ0,
320 const int MODE, const double GV2, const double X2,
321 double *XS, double *AFB) const
322{
324 setSprimeCut(INDF, SQRS*SQRS);
325 zuxsa2_(&INDF, &SQRS, &MzCache, &GAMZ0, &MODE, &GV2, &X2, XS, AFB);
326}
327
328void ZFitterWrapper::calcXS_AFB_4(const int INDF, const double SQRS, const double GAMZ0,
329 const double PFOUR, const double PVAE2,
330 const double PVAF2, double *XS, double *AFB) const
331{
333 setSprimeCut(INDF, SQRS*SQRS);
334 zuxafb_(&INDF, &SQRS, &MzCache, &GAMZ0, &PFOUR, &PVAE2, &PVAF2, XS, AFB);
335}
336
337void ZFitterWrapper::calcTauPol_2(const double SQRS, const double GAMZ0, const int MODE,
338 const double GVE, const double XE, const double GVF,
339 const double XF, double *TAUPOL, double *TAUAFB) const
340{
342 setSprimeCut(3, SQRS*SQRS);
343 zutau_(&SQRS, &MzCache, &GAMZ0, &MODE, &GVE, &XE, &GVF, &XF, TAUPOL, TAUAFB);
344}
345
346
348
350{
351 std::cout << "------------ Constants ------------" << std::endl;
352 std::cout << " Channel charges masses" << std::endl;
353 int indexFermion;
354 for (indexFermion=0; indexFermion<10; indexFermion++) {
355 std::cout << std::setw(9) << convertINDF(indexFermion)
356 << std::setw(11) << getCommonALLCH(indexFermion)
357 << std::setw(13) << getCommonALLMS(indexFermion) << std::endl;
358 }
359 std::cout << std::endl;
360}
361
363{
364 std::cout << "----- Input parameters -----" << std::endl;
365 std::cout << " ZMASS = " << SM.getMz() << std::endl;
366 std::cout << " TMASS = " << SM.getMtpole() << std::endl;
367 std::cout << " HMASS = " << SM.getMHl() << std::endl;
368 std::cout << " ALFAS = " << SM.getAlsMz() << std::endl;
369 std::cout << " DAL5H = " << SM.getDAle5Mz() << std::endl;
370 std::cout << " V_TB = " << V_TB << std::endl;
371 std::cout << " UMASS = " << UMASS << std::endl;
372 std::cout << " DMASS = " << DMASS << std::endl;
373 std::cout << std::endl;
374}
375
377{
378 std::cout << "----- Intermediate Results -----" << std::endl;
379
381
382 std::cout << "Mw = " << Mw() << " sin^2(theta_W) = "
383 << getCommonSIN2TW() << std::endl << std::endl;
384
385 std::cout << "Z decays:" << std::endl;
386 std::cout << " Channel Gamma (rho_Z^f)' Re[rho_Z^f] Im[rho_Z^f] "
387 << "Re[g_Z^f] Im[g_Z^f] Re[k_Z^f] Im[k_Z^f] "
388 << "sin^2(th_eff^f)[ARSEFZ] sin^2(th_eff^f)[S2TEFF]"
389 << std::endl;
390 int indexFermion;
391 for (indexFermion=0; indexFermion<10; indexFermion++) {
392 std::cout << std::setw(9) << convertINDF(indexFermion)
393 //<< std::setw(11) << getCommonPARTZ(indexFermion) // TEST
394 << std::setw(11) << getCommonWIDTHS(indexFermion)
395 << std::setw(9) << getCommonARROFZ(indexFermion)
396 << std::setw(9) << getCommonAROTFZ(indexFermion)
397 << std::setw(13) << getCommonAIROFZ(indexFermion)
398 << std::setw(11) << getCommonARVEFZ(indexFermion)
399 << std::setw(12) << getCommonAIVEFZ(indexFermion)
400 << std::setw(9) << getCommonARKAFZ(indexFermion)
401 << std::setw(11) << getCommonAIKAFZ(indexFermion)
402 << std::setw(10) << getCommonARSEFZ(indexFermion)
403 //<< std::setw(10) << getCommonS2TEFF(indexFermion) // TEST
404 << std::endl;
405 }
406 for (indexFermion=10; indexFermion<12; indexFermion++) {
407 std::cout << std::setw(9) << convertINDF(indexFermion)
408 << std::setw(10) << getCommonWIDTHS(indexFermion)
409 << std::endl;
410 }
411 std::cout << std::endl;
412
413 std::cout << "W decays:" << std::endl;
414 std::cout << " Gamma(W->leptons) = " << getCommonPARTW(0) << std::endl;
415 std::cout << " Gamma(W->quarks) = " << getCommonPARTW(1) << std::endl;
416 std::cout << " Gamma(W->total) = " << getCommonPARTW(2) << std::endl;
417 std::cout << std::endl;
418
419 /* test for sin^2(theta_eff^f) */
420 std::cout << " Channel sin^2(th_eff^f)[ARSEFZ] sin^2(th_eff^f)[S2TEFF] "
421 << "Re[k_Z^f]*sin^2(theta_W) " << std::endl;
422 for (indexFermion = 0; indexFermion < 10; indexFermion++) {
423 std::cout << std::setw(9) << convertINDF(indexFermion)
424 << std::setw(10) << getCommonARSEFZ(indexFermion)
425 << std::setw(10) << getCommonS2TEFF(indexFermion)
426 << std::setw(10)
427 << getCommonARKAFZ(indexFermion)*getCommonSIN2TW()
428 << std::endl;
429 }
430 std::cout << std::endl;
431
432}
433
434std::string ZFitterWrapper::convertINDF(const int INDF) const
435{
436 std::string channel;
437 if (INDF==0) channel="nu,nubar";
438 if (INDF==1) channel="e+,e-";
439 if (INDF==2) channel="mu+,mu-";
440 if (INDF==3) channel="tau+,tau-";
441 if (INDF==4) channel="u,ubar";
442 if (INDF==5) channel="d,dbar";
443 if (INDF==6) channel="c,cbar";
444 if (INDF==7) channel="s,sbar";
445 if (INDF==8) channel="t,tbar";
446 if (INDF==9) channel="b,bbar";
447 if (INDF==10) channel="hadron";
448 if (INDF==11) channel="total";
449 return channel;
450}
451
452void ZFitterWrapper::test(const int IMISC) const
453{
454 zftest_(&IMISC);
455}
456
457
459
460void ZFitterWrapper::init(const int IPRINT) const
461{
462 zuinit_(&IPRINT);
463}
464
466{
467 double MzTMP = SM.getMz();
468 double MtTMP = SM.getMtpole();
469 double MhTMP = SM.getMHl();
470 double AlsMzTMP = SM.getAlsMz();
471 double DAle5MzTMP = SM.getDAle5Mz();
472
473 // TEST
474 //std::cout << MzTMP << " " << MtTMP << " " << MhTMP << " "
475 // << AlsMzTMP << " " << DAle5MzTMP << std::endl;
476 //std::cout << MzCache << " " << MtCache << " " << MhCache << " "
477 // << AlsMzCache << " " << DAle5MzCache << std::endl;
478
479 if (MzTMP != MzCache || MtTMP != MtCache || MhTMP != MhCache ||
480 AlsMzTMP != AlsMzCache || DAle5MzTMP != DAle5MzCache ||
481 IsFlagChanged == true) {
482 MzCache = MzTMP;
483 MtCache = MtTMP;
484 MhCache = MhTMP;
485 AlsMzCache = AlsMzTMP;
486 DAle5MzCache = DAle5MzTMP;
487 //std::cout << "ZFitterWrapper::calcCommonBlocks() is working" << std::endl;
489 IsFlagChanged = false;
490 }
491}
492
493
495
497{
498 return zupars_.ALPHST;
499}
500
502{
503 return zupars_.SIN2TW;
504}
505
506double ZFitterWrapper::getCommonS2TEFF(const int INDF) const
507{
508 if (INDF < 12) {
509 return zupars_.S2TEFF[INDF];
510 } else {
511 std::cout << "S2TEFF[INDF < 12]" << std::endl;
512 exit(EXIT_FAILURE);
513 }
514}
515
516double ZFitterWrapper::getCommonALLCH(const int INDF) const
517{
518 if (INDF < 12) {
519 return zfchms_.ALLCH[INDF];
520 } else {
521 std::cout << "ALLCH[INDF < 12]" << std::endl;
522 exit(EXIT_FAILURE);
523 }
524}
525
526double ZFitterWrapper::getCommonALLMS(const int INDF) const
527{
528 if (INDF < 12) {
529 return zfchms_.ALLMS[INDF];
530 } else {
531 std::cout << "ALLMS[INDF < 12]" << std::endl;
532 exit(EXIT_FAILURE);
533 }
534}
535
536double ZFitterWrapper::getCommonWIDTHS(const int INDF) const
537{
538 if (INDF < 12) {
539 return zupars_.WIDTHS[INDF]*0.001;
540 } else {
541 std::cout << "WIDTHS[INDF < 12]" << std::endl;
542 exit(EXIT_FAILURE);
543 }
544}
545
546double ZFitterWrapper::getCommonPARTZ(const int INDF) const
547{
548 if (INDF < 12) {
549 return partzw_.PARTZ[INDF]*0.001;
550 } else {
551 std::cout << "PARTZ[INDF < 12]" << std::endl;
552 exit(EXIT_FAILURE);
553 }
554}
555
556double ZFitterWrapper::getCommonPARTW(const int i) const
557{
558 if (i < 3) {
559 return partzw_.PARTW[i]*0.001;
560 } else {
561 std::cout << "PARTW[i < 3]" << std::endl;
562 exit(EXIT_FAILURE);
563 }
564}
565
566
568
569double ZFitterWrapper::getCommonARROFZ(const int INDF) const
570{
571 if (INDF < 11) {
572 return cdzrkz_.ARROFZ[INDF];
573 } else {
574 std::cout << "ARROFZ[INDF < 11]" << std::endl;
575 exit(EXIT_FAILURE);
576 }
577}
578
579double ZFitterWrapper::getCommonARKAFZ(const int INDF) const
580{
581 if (INDF < 11) {
582 return cdzrkz_.ARKAFZ[INDF];
583 } else {
584 std::cout << "ARKAFZ[INDF < 11]" << std::endl;
585 exit(EXIT_FAILURE);
586 }
587}
588
589double ZFitterWrapper::getCommonARVEFZ(const int INDF) const
590{
591 if (INDF < 11) {
592 return cdzrkz_.ARVEFZ[INDF];
593 } else {
594 std::cout << "ARVEFZ[INDF < 11]" << std::endl;
595 exit(EXIT_FAILURE);
596 }
597}
598
599double ZFitterWrapper::getCommonARSEFZ(const int INDF) const
600{
601 if (INDF < 11) {
602 return cdzrkz_.ARSEFZ[INDF];
603 } else {
604 std::cout << "ARSEFZ[INDF < 11]" << std::endl;
605 exit(EXIT_FAILURE);
606 }
607}
608
609double ZFitterWrapper::getCommonAROTFZ(const int INDF) const
610{
611 if (INDF < 11) {
612 return cdzrkz_.AROTFZ[INDF];
613 } else {
614 std::cout << "AROTFZ[INDF < 11]" << std::endl;
615 exit(EXIT_FAILURE);
616 }
617}
618
619double ZFitterWrapper::getCommonAIROFZ(const int INDF) const
620{
621 if (INDF < 11) {
622 return cdzrkz_.AIROFZ[INDF];
623 } else {
624 std::cout << "AIROFZ[INDF < 11]" << std::endl;
625 exit(EXIT_FAILURE);
626 }
627}
628
629double ZFitterWrapper::getCommonAIKAFZ(const int INDF) const
630{
631 if (INDF < 11) {
632 return cdzrkz_.AIKAFZ[INDF];
633 } else {
634 std::cout << "AIKAFZ[INDF < 11]" << std::endl;
635 exit(EXIT_FAILURE);
636 }
637}
638
639double ZFitterWrapper::getCommonAIVEFZ(const int INDF) const
640{
641 if (INDF < 11) {
642 return cdzrkz_.AIVEFZ[INDF];
643 } else {
644 std::cout << "AIVEFZ[INDF < 12]" << std::endl;
645 exit(EXIT_FAILURE);
646 }
647}
648
649
651
void zvtpsm_(const double *SQRS, const double *ZMASS, const double *TMASS, const double *HMASS, const double *DAL5H, const double *V_TB, const double *ALFAS, double *TAUPOL, double *TAUAFB)
void zuxsa_(const int *INDF, const double *SQRS, const double *ZMASS, const double *GAMZ0, const int *MODE, const double *GVE, const double *XE, const double *GVF, const double *XF, double *XS, double *AFB)
void zutau_(const double *SQRS, const double *ZMASS, const double *GAMZ0, const int *MODE, const double *GVE, const double *XE, const double *GVF, const double *XF, double *TAUPOL, double *TAUAFB)
void zuxsec_(const int *INDF, const double *SQRS, const double *ZMASS, const double *GAMZ0, const double *GAMEE, const double *GAMFF, double *XS)
void zuxsa2_(const int *INDF, const double *SQRS, const double *ZMASS, const double *GAMZ0, const int *MODE, const double *GV2, const double *X2, double *XS, double *AFB)
struct @3 cdzrkz_
void zftest_(const int *IMISC)
void zvweak_(const double *ZMASS, const double *TMASS, const double *HMASS, const double *DAL5H, const double *V_TB, const double *ALFAS)
struct @1 zfchms_
struct @0 zupars_
void zuinit_(const int *IPRINT)
struct @4 calqed_
struct @2 partzw_
void zvthsm_(const int *INDF, const double *SQRS, const double *ZMASS, const double *TMASS, const double *HMASS, const double *DAL5H, const double *V_TB, const double *ALFAS, double *XS, double *AFB)
void zvlrsm_(const int *INDF, const double *SQRS, const double *ZMASS, const double *TMASS, const double *HMASS, const double *DAL5H, const double *V_TB, const double *ALFAS, const double *POL, double *XSPL, double *XSMI)
void zvatsm_(const int *INDF, const double *SQRS, const double *ZMASS, const double *TMASS, const double *HMASS, const double *DAL5H, const double *V_TB, const double *ALFAS, const double *CSA, double *DXS)
void zuxafb_(const int *INDF, const double *SQRS, const double *ZMASS, const double *GAMZ0, const double *PFOUR, const double *PVAE2, const double *PVAF2, double *XS, double *AFB)
void zu_apv_(const double *ZMASS, const double *TMASS, const double *HMASS, const double *SIN2TW, const double *UMASS, const double *DMASS, double *C1U, double *C1D, double *C2U, double *C2D)
void zuflag_(const char *CHFLAG, const int *IVALUE, long int CHFLAG_SIZE)
double SIN2TW
Definition: ZFitter-f2c.h:25
void zuinfo_(const int *MODE)
void zucuts_(const int *INDF, const int *ICUT, const double *ACOL, const double *EMIN, const double *S_PR, const double *ANG0, const double *ANG1, const double *SIPP)
const double getMtpole() const
A get method to access the pole mass of the top quark.
Definition: QCD.h:600
A model class for the Standard Model.
const double getMz() const
A get method to access the mass of the boson .
const double getAlsMz() const
A get method to access the value of .
virtual const double getMHl() const
A get method to retrieve the Higgs mass .
const double getDAle5Mz() const
A get method to retrieve the five-flavour hadronic contribution to the electromagnetic coupling,...
double sw2() const
void setFlag(const std::string CHFLAG, const int IVALUE) const
modifies the default values of flags which control various options
double alphaMZ() const
std::string convertINDF(const int INDF) const
void CutInfo() const
prints cut info with a ZFITTER subroutine
double getCommonARVEFZ(const int INDF) const
void printIntermediateResults() const
prints intermediate results
void printConstants() const
prints constants defined in ZFITTER
void calcXS_AFB_3(const int INDF, const double SQRS, const double GAMZ0, const int MODE, const double GV2, const double X2, double *XS, double *AFB) const
calculates a cross section and a forward-backward asymmetry as functions of s, Mz,...
double Mw() const
void FlagInfo() const
prints flag info with a ZFITTER subroutine
void calcALR(const int INDF, const double SQRS, const double POL, double *XSPL, double *XSMI) const
calculates a left-right polarization asymmetry
void init(const int IPRINT) const
initializes flag and cut variables with their default values. called by the constructors
double getCommonS2TEFF(const int INDF) const
void calcCommonBlocks() const
calculates a number of important EW parameters which are stored in common blocks for later use
double getCommonAROTFZ(const int INDF) const
double getCommonSIN2TW() const
complex kappaZ_f(const int INDF) const
effective coupling kappa_Z^f
void calcXS_AFB_2(const int INDF, const double SQRS, const double GAMZ0, const int MODE, const double GVE, const double XE, const double GVF, const double XF, double *XS, double *AFB) const
calculates a cross section and a forward-backward asymmetry as functions of s, Mz,...
void printInputs() const
prints input parameters
void setSprimeCut(const int INDF, const double s) const
sets the s' cut
double getCommonPARTW(const int i) const
void calcXS_AFB(const int INDF, const double SQRS, double *XS, double *AFB) const
calculates a cross section and a forward-backward asymmetry
double Af(const int INDF) const
void calcAPV(double *C1U, double *C1D, double *C2U, double *C2D) const
calculates C_1u, C_1d, C_2u and C_2d with an exp. input from atomic parity violation measurements in ...
double getCommonARSEFZ(const int INDF) const
double s2teff_f(const int INDF) const
void calcTauPol(const double SQRS, double *TAUPOL, double *TAUAFB) const
calculates the tau polarization and tau polarization asymmetry
double getCommonARKAFZ(const int INDF) const
double getCommonPARTZ(const int INDF) const
double getCommonAIKAFZ(const int INDF) const
double Gamma_Z() const
double Gamma_f(const int INDF) const
const StandardModel & SM
ZFitterWrapper(const StandardModel &mySM)
ZFitterWrapper constructor.
double getCommonALLMS(const int INDF) const
void calcDXS(const int INDF, const double SQRS, const double CSA, double *DXS) const
calculates a differential cross section w.r.t cos(theta)
double getCommonARROFZ(const int INDF) const
void setCuts(const int INDF, const int ICUT, const double ACOL, const double EMIN, const double S_PR, const double ANG0, const double ANG1, const double SIPP) const
void calcXS(const int INDF, const double SQRS, const double GAMZ0, const double GAMEE, const double GAMFF, double *XS) const
calculates a cross section as a function of s, Mz, Gamma_Z, Gamma_e, Gamma_f
double Gamma_W() const
void calcTauPol_2(const double SQRS, const double GAMZ0, const int MODE, const double GVE, const double XE, const double GVF, const double XF, double *TAUPOL, double *TAUAFB) const
calculates the tau polarization and tau polarization asymmetry as functions of s, Mz,...
void calcXS_AFB_4(const int INDF, const double SQRS, const double GAMZ0, const double PFOUR, const double PVAE2, const double PVAF2, double *XS, double *AFB) const
calculates a cross section and a forward-backward asymmetry as functions of s, Mz,...
double Gamma_had() const
void setAllCuts(const int ICUT[12], const double ACOL[12], const double EMIN[12], const double S_PR[12], const double ANG0[12], const double ANG1[12], const double SPP[12], const int flagPrint) const
sets cuts
complex rhoZ_f(const int INDF) const
effective coupling rho_Z^f
double getCommonAIROFZ(const int INDF) const
double getCommonAIVEFZ(const int INDF) const
double getCommonALPHST() const
double Gamma_inv() const
double getCommonALLCH(const int INDF) const
complex gZ_f(const int INDF) const
effective coupling g_Z^f
void test(const int IMISC) const
Test program calculates cross sections and asymmetries as functions of .
double getCommonWIDTHS(const int INDF) const
void setAllFlags(const int flags[46], const int flagPrint) const
sets flags (see Appendix B.2 in hep-ph/0507146)
Test Observable.