34 #include <type_traits> 43 typedef std::complex<double> complex;
56 order operator++(order & o){
57 return o =
static_cast<order
>(o + 1);
61 order operator--(order & o){
62 return o =
static_cast<order
>(o - 1);
65 std::string to_string(order o);
67 std::ostream& operator<<(std::ostream& os, order o);
70 using namespace pert_order;
75 constexpr
SM operator|(
SM a,
SM b){
76 typedef std::underlying_type<SM>::type SM_type;
77 return static_cast<SM>(
static_cast<SM_type
>(a) | static_cast<SM_type>(b));
81 SM & operator|=(
SM & a,
SM b){
86 constexpr
SM operator&(
SM a,
SM b){
87 typedef std::underlying_type<SM>::type SM_type;
88 return static_cast<SM>(
static_cast<SM_type
>(a) & static_cast<SM_type>(b));
114 constexpr
bool operator!(
SM a){
118 std::string to_string(
SM s);
120 std::ostream& operator<<(std::ostream& os,
SM s);
152 std::array<double,3> v_Coulomb = {{1.,1.,1.}};
154 std::array<double,2> v_delta = {{1.,1.}};
156 std::array<double,2> v_r2inv = {{1.,1.}};
158 std::array<double,2> v_p2 = {{1.,1.}};
160 std::array<double,1> v_kinetic = {{1.}};
162 std::array<double,1> ultrasoft = {{1.}};
164 std::array<double,1> v_Higgs = {{1.}};
166 std::array<double,1> v_QED_Coulomb = {{1.}};
168 std::array<double,1> v_width2 = {{1.}};
170 std::array<double,1> v_width_kinetic = {{1.}};
172 std::array<double,1> width_ep = {{1.}};
174 std::array<double,3> cv = {{1.,1.,1.}};
176 std::array<double,2> cv_Higgs = {{1.,1.}};
178 std::array<double,1> Cv_QED = {{1.}};
180 std::array<double,1> Cv_WZ = {{1.}};
182 std::array<double,1> Ca_QED = {{1.}};
184 std::array<double,1> Ca_WZ = {{1.}};
186 std::array<double,2> dv = {{1.,1.}};
188 std::array<double,1> ca = {{1.}};
190 std::array<double, 2> nonresonant = {{1., 1.}};
193 struct alpha_s_options{
198 std::string to_string(alpha_s_options o);
201 std::numeric_limits<double>::has_quiet_NaN,
202 "Quiet NaN not available" 238 alpha_s_options alpha_s_mu0 = {
239 std::numeric_limits<double>::quiet_NaN(),
240 std::numeric_limits<double>::quiet_NaN()
255 double Yukawa_factor = 1;
268 double invariant_mass_cut = std::numeric_limits<double>::quiet_NaN();
291 double r4 = std::numeric_limits<double>::quiet_NaN();
362 bool double_light_insertion =
false;
372 bool ISR_const =
false;
375 std::string to_string(
options const & opt);
382 struct top_properties{
398 double mu,
double m, order o,
options opt
412 double sqrt_s,
double mu,
double m, order o,
options opt
425 double mu,
double m, order o,
options opt
439 double sqrt_s, scales mu, top_properties M, order o,
options opt
442 double sqrt_s,
double mu, top_properties M, order o,
options opt
445 std::ostream& operator<<(std::ostream& os,
options const & obt);
503 double invariant_mass_cut;
507 std::array<double, detail::last_coupling + 1> c_q;
520 bool double_light_insertion;
524 parameters gen_bottom_parameters(
525 double mu,
double m, order o,
528 parameters gen_bottom_parameters(
529 double sqrt_s,
double mu,
double m, order o,
532 parameters gen_bottom_parameters(
533 double sqrt_s, scales mu,
double m, order o,
536 parameters gen_top_parameters(
537 double mu,
double m, order o,
540 parameters gen_top_parameters(
541 double mu, top_properties M, order o,
544 parameters gen_top_parameters(
545 double sqrt_s,
double mu, top_properties M, order o,
548 parameters gen_top_parameters(
549 double sqrt_s, scales mu, top_properties M, order o,
553 std::string to_string(parameters
const & p);
All Standard Model corrections.
No corrections beyond QCD.
Definition: alpha_s.hpp:37
SM beyond_QCD
Definition: parameters.hpp:318
bool resonant_only
Definition: parameters.hpp:338
double alpha
Definition: parameters.hpp:297
contribution_factors contributions
Definition: parameters.hpp:217
options top_options()
Default option settings for top-related functions.
SM
Standard Model effects beyond QCD.
Definition: parameters.hpp:100
Default strong coupling constants.
std::string top_internal_settings(double mu, double m, order o, options opt)
Describe internal settings for top-related functions.
Corrections due to photons.
bool expand_s
Definition: parameters.hpp:351
double mu_alpha
Definition: parameters.hpp:303
constexpr double m_Higgs
Default value for mass of the Higgs boson.
Definition: constants.hpp:60
production_channel
Production channels.
Definition: parameters.hpp:123
Options for functions.
Definition: parameters.hpp:210
constexpr double alpha_s_mZ
Default value for strong coupling at the scale mZ.
Definition: constants.hpp:42
std::string bottom_internal_settings(double mu, double m, order o, options opt)
Describe internal settings for bottom-related functions.
Production only via S-wave photon or Z.
scheme mass_scheme
Definition: parameters.hpp:325
Corrections due to the physical Higgs boson.
options bottom_options()
Default option settings for bottom-related functions.
Production only via a virtual photon.
Definitions of mass schemes.
Mass scheme.
Definition: mass_schemes.hpp:73
Multiplicative coefficients for the potentials and current matching coefficients. ...
Definition: parameters.hpp:150