a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
ZFitterWrapper Class Reference

ZFITTER C++ Interface Class. More...

#include <ZFitterWrapper.h>

Detailed Description

ZFITTER C++ Interface Class.

Definition at line 85 of file ZFitterWrapper.h.

Public Member Functions

double Af (const int INDF) const
 
double alphaMZ () const
 
void calcALR (const int INDF, const double SQRS, const double POL, double *XSPL, double *XSMI) const
 calculates a left-right polarization asymmetry More...
 
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 heavy atoms More...
 
void calcDXS (const int INDF, const double SQRS, const double CSA, double *DXS) const
 calculates a differential cross section w.r.t cos(theta) More...
 
void calcTauPol (const double SQRS, double *TAUPOL, double *TAUAFB) const
 calculates the tau polarization and tau polarization asymmetry More...
 
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, Gamma_Z and the weak couplings More...
 
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 More...
 
void calcXS_AFB (const int INDF, const double SQRS, double *XS, double *AFB) const
 calculates a cross section and a forward-backward asymmetry More...
 
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, Gamma_Z and the weak couplings More...
 
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, Gamma_Z and the weak couplings, assuming lepton universality More...
 
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, Gamma_Z and the weak couplings More...
 
std::string convertINDF (const int INDF) const
 
void CutInfo () const
 prints cut info with a ZFITTER subroutine More...
 
void FlagInfo () const
 prints flag info with a ZFITTER subroutine More...
 
double Gamma_f (const int INDF) const
 
double Gamma_had () const
 
double Gamma_inv () const
 
double Gamma_W () const
 
double Gamma_Z () const
 
const StandardModelgetModel () const
 
complex gZ_f (const int INDF) const
 effective coupling g_Z^f More...
 
complex kappaZ_f (const int INDF) const
 effective coupling kappa_Z^f More...
 
double Mw () const
 
void printConstants () const
 prints constants defined in ZFITTER More...
 
void printInputs () const
 prints input parameters More...
 
void printIntermediateResults () const
 prints intermediate results More...
 
complex rhoZ_f (const int INDF) const
 effective coupling rho_Z^f More...
 
double s2teff_f (const int INDF) 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 More...
 
void setAllFlags (const int flags[46], const int flagPrint) const
 sets flags (see Appendix B.2 in hep-ph/0507146) More...
 
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 setFlag (const std::string CHFLAG, const int IVALUE) const
 modifies the default values of flags which control various options More...
 
void setSprimeCut (const int INDF, const double s) const
 sets the s' cut More...
 
double sw2 () const
 
void test (const int IMISC) const
 Test program calculates cross sections and asymmetries as functions of \(\sqrt{s}\). More...
 
 ZFitterWrapper (const StandardModel &mySM)
 ZFitterWrapper constructor. More...
 

Private Member Functions

void calcCommonBlocks () const
 calculates a number of important EW parameters which are stored in common blocks for later use More...
 
double getCommonAIKAFZ (const int INDF) const
 
double getCommonAIROFZ (const int INDF) const
 
double getCommonAIVEFZ (const int INDF) const
 
double getCommonALLCH (const int INDF) const
 
double getCommonALLMS (const int INDF) const
 
double getCommonALPHST () const
 
double getCommonARKAFZ (const int INDF) const
 
double getCommonAROTFZ (const int INDF) const
 
double getCommonARROFZ (const int INDF) const
 
double getCommonARSEFZ (const int INDF) const
 
double getCommonARVEFZ (const int INDF) const
 
double getCommonPARTW (const int i) const
 
double getCommonPARTZ (const int INDF) const
 
double getCommonS2TEFF (const int INDF) const
 
double getCommonSIN2TW () const
 
double getCommonWIDTHS (const int INDF) const
 
void init (const int IPRINT) const
 initializes flag and cut variables with their default values. called by the constructors More...
 

Private Attributes

double AlsMzCache
 
double DAle5MzCache
 
double DMASS
 
bool IsFlagChanged
 
double MhCache
 
double MtCache
 
double MzCache
 
const StandardModelSM
 
double UMASS
 
double V_TB
 

Constructor & Destructor Documentation

◆ ZFitterWrapper()

ZFitterWrapper::ZFitterWrapper ( const StandardModel mySM)

ZFitterWrapper constructor.

Parameters
[in]mySMreference to a StandardModel object

Definition at line 17 of file ZFitterWrapper.cpp.

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}
void init(const int IPRINT) const
initializes flag and cut variables with their default values. called by the constructors
const StandardModel & SM
void setAllFlags(const int flags[46], const int flagPrint) const
sets flags (see Appendix B.2 in hep-ph/0507146)

Member Function Documentation

◆ Af()

double ZFitterWrapper::Af ( const int  INDF) const
Parameters
[in]INDFfermion index
Returns
LR-asymmetry parameter A_f

Definition at line 191 of file ZFitterWrapper.cpp.

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}
double sw2() const
complex kappaZ_f(const int INDF) const
effective coupling kappa_Z^f
double getCommonALLCH(const int INDF) const

◆ alphaMZ()

double ZFitterWrapper::alphaMZ ( ) const
Returns
the electromagnetic coupling at Mz

Definition at line 203 of file ZFitterWrapper.cpp.

204{
206 return ( calqed_.ALQEDZ );
207}
struct @4 calqed_
void calcCommonBlocks() const
calculates a number of important EW parameters which are stored in common blocks for later use

◆ calcALR()

void ZFitterWrapper::calcALR ( const int  INDF,
const double  SQRS,
const double  POL,
double *  XSPL,
double *  XSMI 
) const

calculates a left-right polarization asymmetry

Parameters
[in]INDFfermion index
[in]SQRSsqrt(s)
[in]POLdegree of the longitudinal e^- polarization
[out]XSPLcross section for a given +POL
[out]XSMIcross section for a given -POL

Definition at line 285 of file ZFitterWrapper.cpp.

286 {
288 setSprimeCut(INDF, SQRS*SQRS);
289 zvlrsm_(&INDF, &SQRS, &MzCache, &MtCache, &MhCache, &DAle5MzCache, &V_TB,
290 &AlsMzCache, &POL, XSPL, XSMI);
291}
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 setSprimeCut(const int INDF, const double s) const
sets the s' cut

◆ calcAPV()

void ZFitterWrapper::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 heavy atoms

Parameters
[out]C1Ucoupling in the electron-quark parity-violating Hamiltonian
[out]C1Dcoupling in the electron-quark parity-violating Hamiltonian
[out]C2Ucoupling in the electron-quark parity-violating Hamiltonian
[out]C2Dcoupling in the electron-quark parity-violating Hamiltonian

Definition at line 293 of file ZFitterWrapper.cpp.

294{
296 double SIN2TW = getCommonSIN2TW();
298 C1U, C1D, C2U, C2D);
299}
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)
double SIN2TW
Definition: ZFitter-f2c.h:25
double getCommonSIN2TW() const

◆ calcCommonBlocks()

void ZFitterWrapper::calcCommonBlocks ( ) const
private

calculates a number of important EW parameters which are stored in common blocks for later use

Definition at line 465 of file ZFitterWrapper.cpp.

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}
void zvweak_(const double *ZMASS, const double *TMASS, const double *HMASS, const double *DAL5H, const double *V_TB, const double *ALFAS)
const double getMtpole() const
A get method to access the pole mass of the top quark.
Definition: QCD.h:600
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,...

◆ calcDXS()

void ZFitterWrapper::calcDXS ( const int  INDF,
const double  SQRS,
const double  CSA,
double *  DXS 
) const

calculates a differential cross section w.r.t cos(theta)

Parameters
[in]INDFfermion index
[in]SQRSsqrt(s)
[in]CSAcosine of scattering angle
[out]DXSdifferential cross section

Definition at line 268 of file ZFitterWrapper.cpp.

270{
272 setSprimeCut(INDF, SQRS*SQRS);
273 zvatsm_(&INDF, &SQRS, &MzCache, &MtCache, &MhCache, &DAle5MzCache, &V_TB,
274 &AlsMzCache, &CSA, DXS);
275}
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)

◆ calcTauPol()

void ZFitterWrapper::calcTauPol ( const double  SQRS,
double *  TAUPOL,
double *  TAUAFB 
) const

calculates the tau polarization and tau polarization asymmetry

Parameters
[in]SQRSsqrt(s)
[out]TAUPOLtau polarization
[out]TAUAFBtau polarization forward-backward asymmetry

Definition at line 277 of file ZFitterWrapper.cpp.

278{
280 setSprimeCut(3, SQRS*SQRS);
282 &AlsMzCache, TAUPOL, TAUAFB);
283}
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)

◆ calcTauPol_2()

void ZFitterWrapper::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, Gamma_Z and the weak couplings

Parameters
[in]SQRSsqrt(s)
[in]GAMZ0the total width of Z
[in]MODEmeaning of XE/XF (electron/fermion), 0 for axial vector couplings, 1 for rho
[in]GVEeffective vector coupling (electron)
[in]XEaxial vector coupling or rho (electron)
[in]GVFeffective vector coupling (fermion)
[in]XFaxial vector coupling or rho (fermion)
[out]TAUPOLtau polarization
[out]TAUAFBtau polarization forward-backward asymmetry

Definition at line 337 of file ZFitterWrapper.cpp.

340{
342 setSprimeCut(3, SQRS*SQRS);
343 zutau_(&SQRS, &MzCache, &GAMZ0, &MODE, &GVE, &XE, &GVF, &XF, TAUPOL, TAUAFB);
344}
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)

◆ calcXS()

void ZFitterWrapper::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

Parameters
[in]INDFINDF fermion index
[in]SQRSsqrt(s)
[in]GAMZ0the total width of Z
[in]GAMEEthe e^+e^- partial width of Z
[in]GAMFFthe f\bar{f} partial width of Z
[out]XScross section in nb

Definition at line 301 of file ZFitterWrapper.cpp.

303{
305 setSprimeCut(INDF, SQRS*SQRS);
306 zuxsec_(&INDF, &SQRS, &MzCache, &GAMZ0, &GAMEE, &GAMFF, XS);
307}
void zuxsec_(const int *INDF, const double *SQRS, const double *ZMASS, const double *GAMZ0, const double *GAMEE, const double *GAMFF, double *XS)

◆ calcXS_AFB()

void ZFitterWrapper::calcXS_AFB ( const int  INDF,
const double  SQRS,
double *  XS,
double *  AFB 
) const

calculates a cross section and a forward-backward asymmetry

Parameters
[in]INDFfermion index
[in]SQRSsqrt(s)
[out]XScross section in nb
[out]AFBforward-backward asymmetry

Definition at line 259 of file ZFitterWrapper.cpp.

261{
263 setSprimeCut(INDF, SQRS*SQRS);
264 zvthsm_(&INDF, &SQRS, &MzCache, &MtCache, &MhCache, &DAle5MzCache, &V_TB,
265 &AlsMzCache, XS, AFB);
266}
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)

◆ calcXS_AFB_2()

void ZFitterWrapper::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, Gamma_Z and the weak couplings

Parameters
[in]INDFfermion index [1-9, 11]
[in]SQRSsqrt(s)
[in]GAMZ0the total width of Z
[in]MODEmeaning of XE/XF (electron/fermion), 0 for axial vector couplings, 1 for rho
[in]GVEeffective vector coupling (electron)
[in]XEaxial vector coupling or rho (electron)
[in]GVFeffective vector coupling (fermion)
[in]XFaxial vector coupling or rho (fermion)
[out]XScross section in nb
[out]AFBforward-backward asymmetry

Definition at line 309 of file ZFitterWrapper.cpp.

313{
315 setSprimeCut(INDF, SQRS*SQRS);
316 zuxsa_(&INDF, &SQRS, &MzCache, &GAMZ0, &MODE, &GVE, &XE, &GVF, &XF, XS, AFB);
317}
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)

◆ calcXS_AFB_3()

void ZFitterWrapper::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, Gamma_Z and the weak couplings, assuming lepton universality

Parameters
[in]INDFfermion index [1-3, 11]
[in]SQRSsqrt(s)
[in]GAMZ0the total width of Z
[in]MODEmeaning of X2, 0 for axial vector coupling squared, 1 for rho squared
[in]GV2effective vector coupling squared
[in]X2eff. axial vector coupling or rho, squared
[out]XScross section in nb
[out]AFBforward-backward asymmetry
Attention
The couplings are squared.

Definition at line 319 of file ZFitterWrapper.cpp.

322{
324 setSprimeCut(INDF, SQRS*SQRS);
325 zuxsa2_(&INDF, &SQRS, &MzCache, &GAMZ0, &MODE, &GV2, &X2, XS, AFB);
326}
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)

◆ calcXS_AFB_4()

void ZFitterWrapper::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, Gamma_Z and the weak couplings

Parameters
[in]INDFfermion index
[in]SQRSsqrt(s)
[in]GAMZ0the total width of Z
[in]PFOURVE*AE*VF*AF
[in]PVAE2VE**2+AE**2
[in]PVAF2VF**2+AF**2
[out]XScross section in nb
[out]AFBforward-backward asymmetry

Definition at line 328 of file ZFitterWrapper.cpp.

331{
333 setSprimeCut(INDF, SQRS*SQRS);
334 zuxafb_(&INDF, &SQRS, &MzCache, &GAMZ0, &PFOUR, &PVAE2, &PVAF2, XS, AFB);
335}
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)

◆ convertINDF()

std::string ZFitterWrapper::convertINDF ( const int  INDF) const
Parameters
[in]INDFfermion index
Returns
string of the channel corresponding to INDF

Definition at line 434 of file ZFitterWrapper.cpp.

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}

◆ CutInfo()

void ZFitterWrapper::CutInfo ( ) const

prints cut info with a ZFITTER subroutine

Definition at line 155 of file ZFitterWrapper.cpp.

156{
157 const int mode = 1;
158 zuinfo_(&mode);
159}
void zuinfo_(const int *MODE)

◆ FlagInfo()

void ZFitterWrapper::FlagInfo ( ) const

prints flag info with a ZFITTER subroutine

Definition at line 93 of file ZFitterWrapper.cpp.

94{
95 const int mode = 0;
96 zuinfo_(&mode);
97}

◆ Gamma_f()

double ZFitterWrapper::Gamma_f ( const int  INDF) const
Parameters
[in]INDFfermion index
Returns
the partial decay width of the Z boson in GeV

Definition at line 233 of file ZFitterWrapper.cpp.

234{
236 return ( getCommonWIDTHS(INDF) );
237}
double getCommonWIDTHS(const int INDF) const

◆ Gamma_had()

double ZFitterWrapper::Gamma_had ( ) const
Returns
the hadronic width of the Z boson in GeV

Definition at line 245 of file ZFitterWrapper.cpp.

246{
248 return ( getCommonWIDTHS(10) );
249}

◆ Gamma_inv()

double ZFitterWrapper::Gamma_inv ( ) const
Returns
the invisible width of the Z boson in GeV

Definition at line 239 of file ZFitterWrapper.cpp.

240{
242 return ( 3.0*getCommonWIDTHS(0) );
243}

◆ Gamma_W()

double ZFitterWrapper::Gamma_W ( ) const
Returns
the total width of the W boson in GeV

Definition at line 215 of file ZFitterWrapper.cpp.

216{
218 return ( getCommonPARTW(2) );
219}
double getCommonPARTW(const int i) const

◆ Gamma_Z()

double ZFitterWrapper::Gamma_Z ( ) const
Returns
the total width of the Z boson in GeV

Definition at line 251 of file ZFitterWrapper.cpp.

252{
254 return ( getCommonWIDTHS(11) );
255}

◆ getCommonAIKAFZ()

double ZFitterWrapper::getCommonAIKAFZ ( const int  INDF) const
private
Parameters
INDF[in]INDF fermion index
Returns
Im[kappa_Z^f]

Definition at line 629 of file ZFitterWrapper.cpp.

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}
struct @3 cdzrkz_

◆ getCommonAIROFZ()

double ZFitterWrapper::getCommonAIROFZ ( const int  INDF) const
private
Parameters
INDF[in]INDF fermion index
Returns
Im[rho_Z^f]

Definition at line 619 of file ZFitterWrapper.cpp.

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}

◆ getCommonAIVEFZ()

double ZFitterWrapper::getCommonAIVEFZ ( const int  INDF) const
private
Parameters
INDF[in]INDF fermion index
Returns
Im[g_Z^f]

Definition at line 639 of file ZFitterWrapper.cpp.

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}

◆ getCommonALLCH()

double ZFitterWrapper::getCommonALLCH ( const int  INDF) const
private
Parameters
INDFfermion index
Returns
fermion charge

Definition at line 516 of file ZFitterWrapper.cpp.

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}
struct @1 zfchms_

◆ getCommonALLMS()

double ZFitterWrapper::getCommonALLMS ( const int  INDF) const
private
Parameters
INDFfermion index
Returns
fermion mass in GeV

Definition at line 526 of file ZFitterWrapper.cpp.

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}

◆ getCommonALPHST()

double ZFitterWrapper::getCommonALPHST ( ) const
private
Returns
alpha_s(Mz)

Definition at line 496 of file ZFitterWrapper.cpp.

497{
498 return zupars_.ALPHST;
499}
struct @0 zupars_

◆ getCommonARKAFZ()

double ZFitterWrapper::getCommonARKAFZ ( const int  INDF) const
private
Parameters
INDF[in]INDF fermion index
Returns
Re[kappa_Z^f]

Definition at line 579 of file ZFitterWrapper.cpp.

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}

◆ getCommonAROTFZ()

double ZFitterWrapper::getCommonAROTFZ ( const int  INDF) const
private
Parameters
INDF[in]INDF fermion index
Returns
Re[rho_Z^f]

Definition at line 609 of file ZFitterWrapper.cpp.

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}

◆ getCommonARROFZ()

double ZFitterWrapper::getCommonARROFZ ( const int  INDF) const
private
Parameters
INDF[in]INDF fermion index
Returns
(rho_Z^f)'

Definition at line 569 of file ZFitterWrapper.cpp.

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}

◆ getCommonARSEFZ()

double ZFitterWrapper::getCommonARSEFZ ( const int  INDF) const
private
Parameters
INDF[in]INDF fermion index
Returns
effective weak mixing angles \sin^2\theta_{eff}^f

Definition at line 599 of file ZFitterWrapper.cpp.

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}

◆ getCommonARVEFZ()

double ZFitterWrapper::getCommonARVEFZ ( const int  INDF) const
private
Parameters
INDF[in]INDF fermion index
Returns
Re[g_Z^f]

Definition at line 589 of file ZFitterWrapper.cpp.

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}

◆ getCommonPARTW()

double ZFitterWrapper::getCommonPARTW ( const int  i) const
private
Parameters
[in]i0:leptons, 1:quarks, 3:total
Returns
partial or total W widths in GeV

Definition at line 556 of file ZFitterWrapper.cpp.

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}
struct @2 partzw_

◆ getCommonPARTZ()

double ZFitterWrapper::getCommonPARTZ ( const int  INDF) const
private
Parameters
[in]INDFfermion index
Returns
partial or total Z widths in GeV

Definition at line 546 of file ZFitterWrapper.cpp.

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}

◆ getCommonS2TEFF()

double ZFitterWrapper::getCommonS2TEFF ( const int  INDF) const
private
Parameters
[in]INDFfermion index
Returns
an auxiliary quantity, which do not coincide with the effective weak mixing angle

Definition at line 506 of file ZFitterWrapper.cpp.

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}

◆ getCommonSIN2TW()

double ZFitterWrapper::getCommonSIN2TW ( ) const
private
Returns
sin^2theta_w = 1 - Mw^2/Mz^2

Definition at line 501 of file ZFitterWrapper.cpp.

502{
503 return zupars_.SIN2TW;
504}

◆ getCommonWIDTHS()

double ZFitterWrapper::getCommonWIDTHS ( const int  INDF) const
private
Parameters
[in]INDFfermion index
Returns
partial and total decay widths of Z in GeV

Definition at line 536 of file ZFitterWrapper.cpp.

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}

◆ getModel()

const StandardModel & ZFitterWrapper::getModel ( ) const
inline

Definition at line 408 of file ZFitterWrapper.h.

408 {
409 return SM;
410 }

◆ gZ_f()

complex ZFitterWrapper::gZ_f ( const int  INDF) const

effective coupling g_Z^f

Parameters
[in]INDFfermion index
Returns
g_Z^f

Definition at line 180 of file ZFitterWrapper.cpp.

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}
double getCommonARVEFZ(const int INDF) const
double getCommonAIVEFZ(const int INDF) const

◆ init()

void ZFitterWrapper::init ( const int  IPRINT) const
private

initializes flag and cut variables with their default values. called by the constructors

Parameters
[in]IPRINT0 for no output
Attention
This method must be called before any other ZFITTER routine.

Definition at line 460 of file ZFitterWrapper.cpp.

461{
462 zuinit_(&IPRINT);
463}
void zuinit_(const int *IPRINT)

◆ kappaZ_f()

complex ZFitterWrapper::kappaZ_f ( const int  INDF) const

effective coupling kappa_Z^f

Parameters
[in]INDFfermion index
Returns
kappa_Z^f

Definition at line 172 of file ZFitterWrapper.cpp.

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}
double getCommonARKAFZ(const int INDF) const
double getCommonAIKAFZ(const int INDF) const

◆ Mw()

double ZFitterWrapper::Mw ( ) const
Returns
the W boson mass

Definition at line 209 of file ZFitterWrapper.cpp.

210{
212 return ( MzCache*sqrt(1.0 - getCommonSIN2TW()) );
213}

◆ printConstants()

void ZFitterWrapper::printConstants ( ) const

prints constants defined in ZFITTER

Definition at line 349 of file ZFitterWrapper.cpp.

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}
std::string convertINDF(const int INDF) const
double getCommonALLMS(const int INDF) const

◆ printInputs()

void ZFitterWrapper::printInputs ( ) const

prints input parameters

Definition at line 362 of file ZFitterWrapper.cpp.

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}

◆ printIntermediateResults()

void ZFitterWrapper::printIntermediateResults ( ) const

prints intermediate results

Definition at line 376 of file ZFitterWrapper.cpp.

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}
double Mw() const
double getCommonS2TEFF(const int INDF) const
double getCommonAROTFZ(const int INDF) const
double getCommonARSEFZ(const int INDF) const
double getCommonARROFZ(const int INDF) const
double getCommonAIROFZ(const int INDF) const

◆ rhoZ_f()

complex ZFitterWrapper::rhoZ_f ( const int  INDF) const

effective coupling rho_Z^f

Parameters
[in]INDFfermion index
Returns
rho_Z^f

Definition at line 164 of file ZFitterWrapper.cpp.

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}

◆ s2teff_f()

double ZFitterWrapper::s2teff_f ( const int  INDF) const
Parameters
[in]INDFfermion index
Returns
the effective weak mixing angle

Definition at line 227 of file ZFitterWrapper.cpp.

228{
230 return ( getCommonARSEFZ(INDF) );
231}

◆ setAllCuts()

void ZFitterWrapper::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

Parameters
[in]ICUTcontrols thekinds of cuts to be used
[in]ACOLacolinearity cut
[in]EMINminimum fermion energy
[in]S_PRs'
[in]ANG0minimum polar angle theta (deg)
[in]ANG1maximum polar angle theta (deg)
[in]SPPs cut for for the secondary pairs, ISPP+FSPP
[in]flagPrintprints flags if flagPrint=1

Definition at line 109 of file ZFitterWrapper.cpp.

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}
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

◆ setAllFlags()

void ZFitterWrapper::setAllFlags ( const int  flags[46],
const int  flagPrint 
) const

sets flags (see Appendix B.2 in hep-ph/0507146)

Parameters
[in]flagsthe array of the flags
[in]flagPrintprints flags if flagPrint=1

Definition at line 62 of file ZFitterWrapper.cpp.

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}
void setFlag(const std::string CHFLAG, const int IVALUE) const
modifies the default values of flags which control various options

◆ setCuts()

void ZFitterWrapper::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

@bfief defines kinematic and geometric cuts for each fermion channel

Parameters
[in]INDFfermion index
[in]ICUTflag for cuts, -1, 0, 1, 2 or 3
[in]ACOLacolinearity cut
[in]EMINminimum fermion energy
[in]S_PRs'
[in]ANG0minimum polar angle theta (deg)
[in]ANG1maximum polar angle theta (deg)
[in]SIPPs cut for the secondary pairs, ISPP+FSPP

Definition at line 102 of file ZFitterWrapper.cpp.

105{
106 zucuts_(&INDF, &ICUT, &ACOL, &EMIN, &S_PR, &ANG0, &ANG1, &SIPP);
107}
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)

◆ setFlag()

void ZFitterWrapper::setFlag ( const std::string  CHFLAG,
const int  IVALUE 
) const

modifies the default values of flags which control various options

Parameters
[in]CHFLAGthe string identifer of a ZFITTER flag
[in]IVALUEthe value to assign to the flag
Attention
must be called before ZUWEAK

Definition at line 56 of file ZFitterWrapper.cpp.

57{
58 zuflag_(CHFLAG.c_str(), &IVALUE, CHFLAG.size());
59 IsFlagChanged = true;
60}
void zuflag_(const char *CHFLAG, const int *IVALUE, long int CHFLAG_SIZE)

◆ setSprimeCut()

void ZFitterWrapper::setSprimeCut ( const int  INDF,
const double  s 
) const

sets the s' cut

Parameters
[in]INDFfermion index
[in]sinvariant-mass-squared for e+ e- in the initial state

Definition at line 139 of file ZFitterWrapper.cpp.

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}
Test Observable.

◆ sw2()

double ZFitterWrapper::sw2 ( ) const
Returns
the weak mixing angle

Definition at line 221 of file ZFitterWrapper.cpp.

222{
224 return ( getCommonSIN2TW() );
225}

◆ test()

void ZFitterWrapper::test ( const int  IMISC) const

Test program calculates cross sections and asymmetries as functions of \(\sqrt{s}\).

Parameters
[in]IMISC0 for non-scaled \(\rho_Z^f\)'s and 1 for scaled \(\rho_Z^f\)'s

Definition at line 452 of file ZFitterWrapper.cpp.

453{
454 zftest_(&IMISC);
455}
void zftest_(const int *IMISC)

Member Data Documentation

◆ AlsMzCache

double ZFitterWrapper::AlsMzCache
private

Definition at line 421 of file ZFitterWrapper.h.

◆ DAle5MzCache

double ZFitterWrapper::DAle5MzCache
private

Definition at line 421 of file ZFitterWrapper.h.

◆ DMASS

double ZFitterWrapper::DMASS
private

Definition at line 426 of file ZFitterWrapper.h.

◆ IsFlagChanged

bool ZFitterWrapper::IsFlagChanged
mutableprivate

Definition at line 418 of file ZFitterWrapper.h.

◆ MhCache

double ZFitterWrapper::MhCache
private

Definition at line 421 of file ZFitterWrapper.h.

◆ MtCache

double ZFitterWrapper::MtCache
private

Definition at line 421 of file ZFitterWrapper.h.

◆ MzCache

double ZFitterWrapper::MzCache
mutableprivate

Definition at line 421 of file ZFitterWrapper.h.

◆ SM

const StandardModel& ZFitterWrapper::SM
private

Definition at line 416 of file ZFitterWrapper.h.

◆ UMASS

double ZFitterWrapper::UMASS
private

Definition at line 425 of file ZFitterWrapper.h.

◆ V_TB

double ZFitterWrapper::V_TB
private

Definition at line 424 of file ZFitterWrapper.h.


The documentation for this class was generated from the following files: