a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
NPHiggs.cpp
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2013 HEPfit Collaboration
3  *
4  *
5  * For the licensing terms see doc/COPYING.
6  */
7 
8 #include "NPHiggs.h"
9 #include <stdexcept>
10 
11 
12 const std::string NPHiggs::NPHIGGSvars[NNPHIGGSvars]
13  = {"a", "b", "c_u", "c_d", "c_e", "d_3", "d_4", "LambdaNP"};
14 
16 : NPbase(), LambdaNP_in(0.0)
17 {
18  ModelParamMap.insert(std::make_pair("a", std::cref(a)));
19  ModelParamMap.insert(std::make_pair("b", std::cref(b)));
20  ModelParamMap.insert(std::make_pair("c_u", std::cref(c_u)));
21  ModelParamMap.insert(std::make_pair("c_d", std::cref(c_d)));
22  ModelParamMap.insert(std::make_pair("c_e", std::cref(c_e)));
23  ModelParamMap.insert(std::make_pair("d_3", std::cref(d_3)));
24  ModelParamMap.insert(std::make_pair("d_4", std::cref(d_4)));
25  ModelParamMap.insert(std::make_pair("LambdaNP", std::cref(LambdaNP_in)));
26 
27 }
28 
29 void NPHiggs::setParameter(const std::string name, const double& value)
30 {
31  if (name.compare("a") == 0)
32  a = value;
33  else if (name.compare("b") == 0)
34  b = value;
35  else if (name.compare("c_u") == 0)
36  c_u = value;
37  else if (name.compare("c_d") == 0)
38  c_d = value;
39  else if (name.compare("c_e") == 0)
40  c_e = value;
41  else if (name.compare("d_3") == 0)
42  d_3 = value;
43  else if (name.compare("d_4") == 0)
44  d_4 = value;
45  else if (name.compare("LambdaNP") == 0)
46  LambdaNP_in = value;
47  else
48  NPbase::setParameter(name, value);
49 }
50 
51 bool NPHiggs::CheckParameters(const std::map<std::string, double>& DPars)
52 {
53  for (int i = 0; i < NNPHIGGSvars; i++) {
54  if (DPars.find(NPHIGGSvars[i]) == DPars.end()) {
55  std::cout << "ERROR: Missing mandatory NPHiggs parameter "
56  << NPHIGGSvars[i] << std::endl;
59  }
60  }
61  return (NPbase::CheckParameters(DPars));
62 }
63 
65 
66 double NPHiggs::obliqueS() const
67 {
68  double Lambda;
69  if (LambdaNP_in != 0.0)
70  Lambda = LambdaNP_in;
71  else if (fabs(1.0 - a * a) < pow(10.0, -32.0))
72  Lambda = pow(10.0, 19.0);
73  else
74  Lambda = 4.0 * M_PI * v() / sqrt(fabs(1.0 - a * a));
75 
76  return ( 1.0 / 12.0 / M_PI * (1.0 - a * a) * log(Lambda * Lambda / mHl / mHl));
77 }
78 
79 double NPHiggs::obliqueT() const
80 {
81  double Lambda;
82  double cW2_SM = trueSM.cW2(); /* This has to be the SM value. */
83  if (LambdaNP_in != 0.0)
84  Lambda = LambdaNP_in;
85  else if (fabs(1.0 - a * a) < pow(10.0, -32.0))
86  Lambda = pow(10.0, 19.0);
87  else
88  Lambda = 4.0 * M_PI * v() / sqrt(fabs(1.0 - a * a));
89 
90  return ( -3.0 / 16.0 / M_PI / cW2_SM * (1.0 - a * a) * log(Lambda * Lambda / mHl / mHl));
91 }
92 
93 double NPHiggs::obliqueU() const
94 {
95  return 0.0;
96 }
97 
98 
StandardModel::cW2
virtual double cW2(const double Mw_i) const
The square of the cosine of the weak mixing angle in the on-shell scheme, denoted as .
Definition: StandardModel.cpp:1015
StandardModel::setParameter
virtual void setParameter(const std::string name, const double &value)
A method to set the value of a parameter of StandardModel.
Definition: StandardModel.cpp:257
StandardModel::v
virtual double v() const
The Higgs vacuum expectation value.
Definition: StandardModel.cpp:943
NPHiggs::setParameter
virtual void setParameter(const std::string name, const double &value)
A method to set the value of a parameter of the model.
Definition: NPHiggs.cpp:29
Model::addMissingModelParameter
void addMissingModelParameter(const std::string &missingParameterName)
Definition: Model.h:240
StandardModel::CheckParameters
virtual bool CheckParameters(const std::map< std::string, double > &DPars)
A method to check if all the mandatory parameters for StandardModel have been provided in model initi...
Definition: StandardModel.cpp:339
StandardModel::mHl
double mHl
The Higgs mass in GeV.
Definition: StandardModel.h:2558
gslpp::log
complex log(const complex &z)
Definition: gslpp_complex.cpp:342
NPHiggs::c_d
double c_d
The coupling .
Definition: NPHiggs.h:206
NPHiggs::a
double a
The coupling .
Definition: NPHiggs.h:203
NPHiggs.h
Model::ModelParamMap
std::map< std::string, std::reference_wrapper< const double > > ModelParamMap
Definition: Model.h:270
NPHiggs::obliqueU
virtual double obliqueU() const
The oblique parameter .
Definition: NPHiggs.cpp:93
NPHiggs::CheckParameters
virtual bool CheckParameters(const std::map< std::string, double > &DPars)
A method to check if all the mandatory parameters for the model have been provided in model initializ...
Definition: NPHiggs.cpp:51
NPHiggs::d_4
double d_4
The coupling .
Definition: NPHiggs.h:209
NPbase::trueSM
StandardModel trueSM
Definition: NPbase.h:2787
NPHiggs::NNPHIGGSvars
static const int NNPHIGGSvars
The number of the model parameters in NPHiggs.
Definition: NPHiggs.h:148
NPHiggs::NPHIGGSvars
static const std::string NPHIGGSvars[NNPHIGGSvars]
A string array containing the labels of the model parameters in NPHiggs.
Definition: NPHiggs.h:153
NPbase
The auxiliary base model class for other model classes.
Definition: NPbase.h:66
NPHiggs::NPHiggs
NPHiggs()
The default constructor.
Definition: NPHiggs.cpp:15
gslpp::pow
complex pow(const complex &z1, const complex &z2)
Definition: gslpp_complex.cpp:395
Model::raiseMissingModelParameterCount
void raiseMissingModelParameterCount()
Definition: Model.h:250
gslpp::sqrt
complex sqrt(const complex &z)
Definition: gslpp_complex.cpp:385
NPHiggs::obliqueT
virtual double obliqueT() const
The oblique parameter .
Definition: NPHiggs.cpp:79
NPHiggs::LambdaNP_in
double LambdaNP_in
The new physics scale .
Definition: NPHiggs.h:210
NPHiggs::obliqueS
virtual double obliqueS() const
The oblique parameter .
Definition: NPHiggs.cpp:66
NPHiggs::c_u
double c_u
The coupling .
Definition: NPHiggs.h:205
NPHiggs::b
double b
The coupling .
Definition: NPHiggs.h:204
Model::name
std::string name
The name of the model.
Definition: Model.h:275
NPHiggs::c_e
double c_e
The coupling .
Definition: NPHiggs.h:207
NPHiggs::d_3
double d_3
The coupling .
Definition: NPHiggs.h:208