NPHiggs.cpp
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2013 HEPfit Collaboration
3  * All rights reserved.
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::pair<std::string, boost::reference_wrapper<const double> >("a", boost::cref(a)));
19  ModelParamMap.insert(std::pair<std::string, boost::reference_wrapper<const double> >("b", boost::cref(b)));
20  ModelParamMap.insert(std::pair<std::string, boost::reference_wrapper<const double> >("c_u", boost::cref(c_u)));
21  ModelParamMap.insert(std::pair<std::string, boost::reference_wrapper<const double> >("c_d", boost::cref(c_d)));
22  ModelParamMap.insert(std::pair<std::string, boost::reference_wrapper<const double> >("c_e", boost::cref(c_e)));
23  ModelParamMap.insert(std::pair<std::string, boost::reference_wrapper<const double> >("d_3", boost::cref(d_3)));
24  ModelParamMap.insert(std::pair<std::string, boost::reference_wrapper<const double> >("d_4", boost::cref(d_4)));
25  ModelParamMap.insert(std::pair<std::string, boost::reference_wrapper<const double> >("LambdaNP", boost::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;
57  return false;
58  }
59  }
60  return (NPbase::CheckParameters(DPars));
61 }
62 
64 
65 double NPHiggs::obliqueS() const
66 {
67  double Lambda;
68  if (LambdaNP_in != 0.0)
69  Lambda = LambdaNP_in;
70  else if (fabs(1.0 - a * a) < pow(10.0, -32.0))
71  Lambda = pow(10.0, 19.0);
72  else
73  Lambda = 4.0 * M_PI * v() / sqrt(fabs(1.0 - a * a));
74 
75  return ( 1.0 / 12.0 / M_PI * (1.0 - a * a) * log(Lambda * Lambda / mHl / mHl));
76 }
77 
78 double NPHiggs::obliqueT() const
79 {
80  double Lambda;
81  double cW2_SM = trueSM.cW2(); /* This has to be the SM value. */
82  if (LambdaNP_in != 0.0)
83  Lambda = LambdaNP_in;
84  else if (fabs(1.0 - a * a) < pow(10.0, -32.0))
85  Lambda = pow(10.0, 19.0);
86  else
87  Lambda = 4.0 * M_PI * v() / sqrt(fabs(1.0 - a * a));
88 
89  return ( -3.0 / 16.0 / M_PI / cW2_SM * (1.0 - a * a) * log(Lambda * Lambda / mHl / mHl));
90 }
91 
92 double NPHiggs::obliqueU() const
93 {
94  return 0.0;
95 }
96 
97 
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
The auxiliary base model class for other model classes.
Definition: NPbase.h:66
double a
The coupling .
Definition: NPHiggs.h:203
NPHiggs()
The default constructor.
Definition: NPHiggs.cpp:15
double c_u
The coupling .
Definition: NPHiggs.h:205
virtual double obliqueT() const
The oblique parameter .
Definition: NPHiggs.cpp:78
static const int NNPHIGGSvars
The number of the model parameters in NPHiggs.
Definition: NPHiggs.h:148
complex pow(const complex &z1, const complex &z2)
virtual double obliqueU() const
The oblique parameter .
Definition: NPHiggs.cpp:92
StandardModel trueSM
Definition: NPbase.h:543
double c_e
The coupling .
Definition: NPHiggs.h:207
double d_3
The coupling .
Definition: NPHiggs.h:208
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
double mHl
The Higgs mass in GeV.
double LambdaNP_in
The new physics scale .
Definition: NPHiggs.h:210
virtual double obliqueS() const
The oblique parameter .
Definition: NPHiggs.cpp:65
double b
The coupling .
Definition: NPHiggs.h:204
virtual double v() const
The Higgs vacuum expectation value. where is the Fermi constant, measured through muon decays...
virtual void setParameter(const std::string name, const double &value)
A method to set the value of a parameter of StandardModel.
double c_d
The coupling .
Definition: NPHiggs.h:206
double d_4
The coupling .
Definition: NPHiggs.h:209
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...
static const std::string NPHIGGSvars[NNPHIGGSvars]
A string array containing the labels of the model parameters in NPHiggs.
Definition: NPHiggs.h:153
complex log(const complex &z)
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 ...
std::map< std::string, boost::reference_wrapper< const double > > ModelParamMap
Definition: Model.h:200
complex sqrt(const complex &z)