Skip to content

Commit

Permalink
add mw_pole calculation to weinberg_angle class
Browse files Browse the repository at this point in the history
  • Loading branch information
Markus-Bach committed Jul 24, 2017
1 parent adeda5e commit 1a592aa
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 0 deletions.
11 changes: 11 additions & 0 deletions templates/weinberg_angle.cpp.in
Original file line number Diff line number Diff line change
Expand Up @@ -106,11 +106,17 @@ void CLASSNAME::set_sm_parameters(const Sm_parameters& sm_parameters_)
sm_parameters = sm_parameters_;
}

double CLASSNAME::get_mw_pole()
{
return mw_pole;
}

/**
* Calculates the DR-bar weak mixing angle \f$\sin\hat{\theta}_W\f$ as
* defined in Eq. (C.3) from hep-ph/9606211 given the Fermi constant,
* the Z-boson pole mass and the DR-bar electromagnetic coupling as input
* and taking the tree-level value of the \f$\hat{\rho}\f$ parameter into account.
* Furthermore the W boson pole mass is determined from the final result.
*
* The function throws an exception of type NoSinThetaWConvergenceError if the
* iterative procedure to determine the weak mixing angle does not converge.
Expand Down Expand Up @@ -201,6 +207,11 @@ double CLASSNAME::calculate(double sinThetaW_start)
if (not_converged)
throw NoSinThetaWConvergenceError(number_of_iterations, sinThetaW_new);

const double rhohat_ratio_final =
1.0 / (1.0 - calculate_delta_rho_hat(sinThetaW_new));
mw_pole =
Sqrt(Sqr(mz) * rhohat_tree * rhohat_ratio_final * (1 - Sqr(sinThetaW_new)));

return sinThetaW_new;
}

Expand Down
2 changes: 2 additions & 0 deletions templates/weinberg_angle.hpp.in
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ public:
void disable_dvb_bsm(); ///< disable bsm wave, vertex and box corrections
void set_model(const @ModelName@_mass_eigenstates*); ///< set pointer to investigated model
void set_sm_parameters(const Sm_parameters&); ///< set sm_parameters member variable
double get_mw_pole(); ///< get pole mass of W boson

/// calculates and returns the sine of the Weinberg angle
double calculate(double sinThetaW_start = 0.48);
Expand All @@ -65,6 +66,7 @@ private:
double pizzt_MZ{0.}; ///< transverse Z self-energy at p^2 = MZ^2
double piwwt_MW{0.}; ///< transverse W self-energy at p^2 = MW^2
double piwwt_0{0.}; ///< transverse W self-energy at p^2 = 0
double mw_pole{0.}; ///< pole mass of W boson to be calculated from muon decay

double calculate_rho_hat_tree() const;
double calculate_delta_rho_hat(double) const;
Expand Down

0 comments on commit 1a592aa

Please sign in to comment.