Skip to content

Commit

Permalink
put helper functions into anonymous namespace
Browse files Browse the repository at this point in the history
  • Loading branch information
Alexander Voigt authored and Alexander Voigt committed Dec 21, 2016
1 parent ff8570e commit 1526619
Show file tree
Hide file tree
Showing 2 changed files with 64 additions and 31 deletions.
62 changes: 42 additions & 20 deletions src/lowe.cpp
@@ -1,7 +1,24 @@
// ====================================================================
// This file is part of FlexibleSUSY.
//
// FlexibleSUSY is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published
// by the Free Software Foundation, either version 3 of the License,
// or (at your option) any later version.
//
// FlexibleSUSY is distributed in the hope that it will be useful, but
// WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with FlexibleSUSY. If not, see
// <http://www.gnu.org/licenses/>.
// ====================================================================

/** \file lowe.cpp
- Project: SOFTSUSY
- Author: Ben Allanach
- Author: Ben Allanach, Alexander Voigt
- Manual: hep-ph/0104145, Comp. Phys. Comm. 143 (2002) 305
- Webpage: http://hepforge.cedar.ac.uk/softsusy/
*/
Expand All @@ -14,9 +31,33 @@
#include "wrappers.hpp"

#include <iostream>
#include <cmath>

namespace softsusy {

namespace {

// Given a value of mt, and alphas(MZ), find alphas(mt) to 1 loops in qcd:
// it's a very good approximation at these scales, better than 10^-3 accuracy
double getAsmt(double mtop, double alphasMz) {
using std::log;
return alphasMz /
(1.0 - 23.0 * alphasMz / (6.0 * M_PI) * log(MZ / mtop));
}

// Input pole mass of top and alphaS(mt), outputs running mass mt(mt)
// including one-loop standard model correction only
double getRunMt(double poleMt, double asmt) {
return poleMt / (1.0 + (4.0 / (3.0 * M_PI)) * asmt);
}

// Given pole mass and alphaS(MZ), returns running top mass -- one loop qcd
double getRunMtFromMz(double poleMt, double asMZ) {
return getRunMt(poleMt, getAsmt(poleMt, asMZ));
}

} // anonymous namespace

const std::array<std::string, NUMBER_OF_LOW_ENERGY_INPUT_PARAMETERS> QedQcd_input_parmeter_names = {
"alpha_em_MSbar_at_MZ",
"alpha_s_MSbar_at_MZ",
Expand Down Expand Up @@ -561,25 +602,6 @@ Eigen::ArrayXd QedQcd::runSMGauge(double end, const Eigen::ArrayXd& alphas)
return y;
}

// Given pole mass and alphaS(MZ), returns running top mass -- one loop qcd
double getRunMtFromMz(double poleMt, double asMZ) {
return getRunMt(poleMt, getAsmt(poleMt, asMZ));
}

// Input pole mass of top and alphaS(mt), outputs running mass mt(mt)
// including one-loop standard model correction only
double getRunMt(double poleMt, double asmt) {
return poleMt / (1.0 + (4.0 / (3.0 * PI)) * asmt);
}

// Given a value of mt, and alphas(MZ), find alphas(mt) to 1 loops in qcd:
// it's a very good approximation at these scales, better than 10^-3 accuracy
double getAsmt(double mtop, double alphasMz) {
using std::log;
return alphasMz /
(1.0 - 23.0 * alphasMz / (6.0 * PI) * log(MZ / mtop));
}

void QedQcd::set_input(const Eigen::ArrayXd& pars)
{
input = pars;
Expand Down
33 changes: 22 additions & 11 deletions src/lowe.h
@@ -1,12 +1,28 @@
// ====================================================================
// This file is part of FlexibleSUSY.
//
// FlexibleSUSY is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published
// by the Free Software Foundation, either version 3 of the License,
// or (at your option) any later version.
//
// FlexibleSUSY is distributed in the hope that it will be useful, but
// WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with FlexibleSUSY. If not, see
// <http://www.gnu.org/licenses/>.
// ====================================================================

/** \file lowe.h
- Project: SOFTSUSY
- Author: Ben Allanach
- Author: Ben Allanach, Alexander Voigt
- Manual: hep-ph/0104145, Comp. Phys. Comm. 143 (2002) 305
- Webpage: http://hepforge.cedar.ac.uk/softsusy/
\brief QedQcd object contains Standard Model quark and lepton
masses. It integrates them using 3 loop qcd x 1 loop qed effective theory.
*/

#ifndef LOWE_H
Expand Down Expand Up @@ -123,6 +139,8 @@ class QedQcd: public flexiblesusy::Beta_function
/// sets all input parameters
void set_input(const Eigen::ArrayXd&);

/// Displays input parameters
Eigen::ArrayXd displayInput() const { return input; }
/// Display pole top mass
double displayPoleMt() const { return input(MT_pole); };
/// Display pole tau mass
Expand All @@ -145,6 +163,8 @@ class QedQcd: public flexiblesusy::Beta_function
double displayNeutrinoPoleMass(int i) const { return input(Mv1_pole + i - 1); }
/// Returns a single gauge structure constant
double displayAlpha(leGauge ai) const { return a(ai - 1); };
/// Returns gauge structure constants
Eigen::ArrayXd displayAlphas() const { return a; }
/// Returns input value alpha_em(MZ)
double displayAlphaEmInput() const { return input(alpha_em_MSbar_at_MZ); }
/// Returns input value alpha_s(MZ)
Expand Down Expand Up @@ -215,15 +235,6 @@ class QedQcd: public flexiblesusy::Beta_function
/// Formatted output from QedQcd object
std::ostream & operator<<(std::ostream &, const QedQcd &);

/// Input pole mass of top and alphaS(mt), outputs running mass mt(mt)
/// including one-loop standard model correction only
double getRunMt(double poleMt, double asmt);
/// Given a value of mt, and alphas(MZ), find alphas(mt) to 1 loops in qcd:
/// it's a very good approximation at these scales, better than 10^-3 accuracy
double getAsmt(double mtop, double alphasMz);
/// Given pole mass and alphaS(MZ), returns running top mass -- one loop qcd
double getRunMtFromMz(double poleMt, double asMZ);

bool operator ==(const QedQcd&, const QedQcd&);

} // namespace softsusy
Expand Down

0 comments on commit 1526619

Please sign in to comment.